From 6b724c8fce31d5e70eae4eacc1a7d32b3e73b6a7 Mon Sep 17 00:00:00 2001 From: kiki <info@digitigrafo.it> Date: Fri, 1 Jun 2018 18:27:36 +0200 Subject: [PATCH] wordpress 4.9.6 --- readme.html | 2 +- wp-activate.php | 4 +- wp-admin/about.php | 38 +- wp-admin/admin-ajax.php | 2 + wp-admin/credits.php | 15 +- wp-admin/css/about-rtl.css | 3 - wp-admin/css/about-rtl.min.css | 2 +- wp-admin/css/about.css | 3 - wp-admin/css/about.min.css | 2 +- wp-admin/css/common-rtl.css | 23 +- wp-admin/css/common-rtl.min.css | 4 +- wp-admin/css/common.css | 23 +- wp-admin/css/common.min.css | 4 +- wp-admin/css/edit-rtl.css | 102 + wp-admin/css/edit-rtl.min.css | 2 +- wp-admin/css/edit.css | 102 + wp-admin/css/edit.min.css | 2 +- wp-admin/css/forms-rtl.css | 197 +- wp-admin/css/forms-rtl.min.css | 2 +- wp-admin/css/forms.css | 197 +- wp-admin/css/forms.min.css | 2 +- wp-admin/css/login-rtl.css | 11 + wp-admin/css/login-rtl.min.css | 2 +- wp-admin/css/login.css | 11 + wp-admin/css/login.min.css | 2 +- wp-admin/css/nav-menus-rtl.css | 3 +- wp-admin/css/nav-menus-rtl.min.css | 2 +- wp-admin/css/nav-menus.css | 3 +- wp-admin/css/nav-menus.min.css | 2 +- wp-admin/custom-header.php | 6 +- wp-admin/customize.php | 6 +- wp-admin/edit-comments.php | 2 +- wp-admin/edit-tags.php | 10 +- wp-admin/edit.php | 2 +- wp-admin/freedoms.php | 19 +- wp-admin/includes/admin-filters.php | 22 + wp-admin/includes/ajax-actions.php | 401 +- wp-admin/includes/bookmark.php | 2 +- .../includes/class-wp-community-events.php | 37 +- .../includes/class-wp-internal-pointers.php | 43 +- .../includes/class-wp-media-list-table.php | 8 + .../includes/class-wp-ms-users-list-table.php | 4 + .../includes/class-wp-users-list-table.php | 4 + wp-admin/includes/file.php | 449 +- wp-admin/includes/image.php | 2 +- wp-admin/includes/misc.php | 586 +- wp-admin/includes/plugin-install.php | 10 +- wp-admin/includes/plugin.php | 27 + wp-admin/includes/post.php | 4 + wp-admin/includes/schema.php | 3 + wp-admin/includes/theme.php | 4 +- wp-admin/includes/upgrade.php | 46 + wp-admin/includes/user.php | 1028 ++ wp-admin/js/customize-controls.js | 6 +- wp-admin/js/customize-controls.min.js | 4 +- wp-admin/js/customize-nav-menus.js | 2 +- wp-admin/js/customize-nav-menus.min.js | 2 +- wp-admin/js/image-edit.js | 2 +- wp-admin/js/image-edit.min.js | 2 +- wp-admin/js/post.js | 1 + wp-admin/js/xfn.js | 256 + wp-admin/js/xfn.min.js | 2 +- wp-admin/media-upload.php | 4 +- wp-admin/menu.php | 22 +- wp-admin/nav-menus.php | 2 +- wp-admin/network/site-users.php | 2 +- wp-admin/options-media.php | 16 +- wp-admin/options.php | 4 +- wp-admin/post-new.php | 2 +- wp-admin/press-this.php | 2 +- wp-admin/privacy.php | 228 +- wp-admin/term.php | 2 +- wp-admin/themes.php | 8 +- wp-admin/tools.php | 80 +- wp-admin/user-new.php | 8 +- wp-admin/users.php | 4 +- wp-admin/widgets.php | 2 +- wp-comments-post.php | 9 +- wp-content/plugins/akismet/.htaccess | 34 + wp-content/plugins/akismet/LICENSE.txt | 339 + wp-content/plugins/akismet/_inc/akismet.css | 586 + wp-content/plugins/akismet/_inc/akismet.js | 276 + wp-content/plugins/akismet/_inc/form.js | 30 + .../plugins/akismet/_inc/img/logo-full-2x.png | Bin 0 -> 5052 bytes wp-content/plugins/akismet/akismet.php | 66 + .../plugins/akismet/class.akismet-admin.php | 1131 ++ .../plugins/akismet/class.akismet-cli.php | 91 + .../akismet/class.akismet-rest-api.php | 271 + .../plugins/akismet/class.akismet-widget.php | 114 + wp-content/plugins/akismet/class.akismet.php | 1391 ++ wp-content/plugins/akismet/index.php | 2 + wp-content/plugins/akismet/readme.txt | 411 + wp-content/plugins/akismet/views/config.php | 231 + wp-content/plugins/akismet/views/get.php | 6 + wp-content/plugins/akismet/views/notice.php | 135 + wp-content/plugins/akismet/views/start.php | 102 + wp-content/plugins/akismet/views/stats.php | 11 + wp-content/plugins/akismet/wrapper.php | 213 + wp-content/plugins/hello.php | 81 + wp-content/themes/twentyfifteen/footer.php | 9 +- wp-content/themes/twentyfifteen/readme.txt | 9 +- wp-content/themes/twentyfifteen/rtl.css | 3 + wp-content/themes/twentyfifteen/style.css | 26 +- wp-content/themes/twentyseventeen/README.txt | 12 +- .../assets/css/colors-dark.css | 6 + .../twentyseventeen/inc/color-patterns.php | 7 + wp-content/themes/twentyseventeen/rtl.css | 4 + wp-content/themes/twentyseventeen/style.css | 22 +- .../template-parts/footer/site-info.php | 9 +- wp-content/themes/twentysixteen/footer.php | 9 +- wp-content/themes/twentysixteen/readme.txt | 9 +- wp-content/themes/twentysixteen/rtl.css | 16 +- wp-content/themes/twentysixteen/style.css | 22 +- wp-includes/IXR/class-IXR-message.php | 12 +- wp-includes/capabilities.php | 23 + wp-includes/class-wp-customize-manager.php | 4 +- wp-includes/class-wp-editor.php | 12 +- wp-includes/class-wp-theme.php | 17 +- wp-includes/class-wp-xmlrpc-server.php | 2 +- wp-includes/comment-template.php | 18 +- wp-includes/comment.php | 259 +- wp-includes/compat.php | 40 + wp-includes/css/editor-rtl.css | 30 +- wp-includes/css/editor-rtl.min.css | 2 +- wp-includes/css/editor.css | 30 +- wp-includes/css/editor.min.css | 2 +- wp-includes/css/wp-pointer-rtl.css | 16 +- wp-includes/css/wp-pointer-rtl.min.css | 2 +- wp-includes/css/wp-pointer.css | 16 +- wp-includes/css/wp-pointer.min.css | 2 +- .../class-wp-customize-theme-control.php | 2 +- wp-includes/default-filters.php | 12 +- wp-includes/functions.php | 224 +- wp-includes/general-template.php | 14 +- wp-includes/http.php | 2 +- .../js/imgareaselect/jquery.imgareaselect.js | 2 +- .../imgareaselect/jquery.imgareaselect.min.js | 2 +- wp-includes/js/media-models.js | 29 +- wp-includes/js/media-models.min.js | 2 +- wp-includes/js/media-views.js | 72 +- wp-includes/js/media-views.min.js | 8 +- .../js/tinymce/plugins/charmap/plugin.js | 1830 ++- .../js/tinymce/plugins/charmap/plugin.min.js | 2 +- .../js/tinymce/plugins/colorpicker/plugin.js | 347 +- .../tinymce/plugins/colorpicker/plugin.min.js | 2 +- .../js/tinymce/plugins/compat3x/plugin.js | 7 +- .../js/tinymce/plugins/compat3x/plugin.min.js | 2 +- .../tinymce/plugins/directionality/plugin.js | 255 +- .../plugins/directionality/plugin.min.js | 2 +- .../js/tinymce/plugins/fullscreen/plugin.js | 444 +- .../tinymce/plugins/fullscreen/plugin.min.js | 2 +- wp-includes/js/tinymce/plugins/hr/plugin.js | 171 +- .../js/tinymce/plugins/hr/plugin.min.js | 2 +- .../js/tinymce/plugins/image/plugin.js | 2354 +-- .../js/tinymce/plugins/image/plugin.min.js | 2 +- wp-includes/js/tinymce/plugins/link/plugin.js | 1747 +-- .../js/tinymce/plugins/link/plugin.min.js | 2 +- .../js/tinymce/plugins/lists/plugin.js | 2710 ++-- .../js/tinymce/plugins/lists/plugin.min.js | 2 +- .../js/tinymce/plugins/media/plugin.js | 2746 ++-- .../js/tinymce/plugins/media/plugin.min.js | 2 +- .../js/tinymce/plugins/paste/plugin.js | 3799 ++--- .../js/tinymce/plugins/paste/plugin.min.js | 2 +- .../js/tinymce/plugins/tabfocus/plugin.js | 418 +- .../js/tinymce/plugins/tabfocus/plugin.min.js | 2 +- .../js/tinymce/plugins/textcolor/plugin.js | 783 +- .../tinymce/plugins/textcolor/plugin.min.js | 2 +- .../skins/lightgray/content.inline.min.css | 2 +- .../tinymce/skins/lightgray/content.min.css | 2 +- .../tinymce/skins/lightgray/fonts/tinymce.eot | Bin 17572 -> 18808 bytes .../tinymce/skins/lightgray/fonts/tinymce.svg | 2 +- .../tinymce/skins/lightgray/fonts/tinymce.ttf | Bin 17408 -> 18644 bytes .../skins/lightgray/fonts/tinymce.woff | Bin 17484 -> 18720 bytes .../js/tinymce/skins/lightgray/skin.min.css | 2 +- .../js/tinymce/skins/wordpress/wp-content.css | 5 + wp-includes/js/tinymce/themes/inlite/theme.js | 12488 +++++++++++++--- .../js/tinymce/themes/inlite/theme.min.js | 2 +- wp-includes/js/tinymce/themes/modern/theme.js | 11857 +++++++++++++-- .../js/tinymce/themes/modern/theme.min.js | 2 +- wp-includes/js/tinymce/tinymce.min.js | 19 +- wp-includes/js/tinymce/utils/validate.js | 4 +- wp-includes/js/tinymce/wp-tinymce.js.gz | Bin 214099 -> 209550 bytes wp-includes/js/wp-ajax-response.js | 2 +- wp-includes/js/wp-ajax-response.min.js | 2 +- wp-includes/js/wp-api.js | 39 +- wp-includes/js/wp-api.min.js | 2 +- wp-includes/kses.php | 3 +- wp-includes/link-template.php | 81 + wp-includes/media.php | 81 +- wp-includes/post.php | 61 +- wp-includes/query.php | 3 +- .../class-wp-rest-post-types-controller.php | 7 + .../class-wp-rest-users-controller.php | 26 +- wp-includes/script-loader.php | 20 +- wp-includes/theme.php | 3 +- wp-includes/user.php | 832 + wp-includes/version.php | 4 +- wp-login.php | 44 +- wp-signup.php | 2 + 199 files changed, 39832 insertions(+), 14106 deletions(-) create mode 100644 wp-content/plugins/akismet/.htaccess create mode 100644 wp-content/plugins/akismet/LICENSE.txt create mode 100644 wp-content/plugins/akismet/_inc/akismet.css create mode 100644 wp-content/plugins/akismet/_inc/akismet.js create mode 100644 wp-content/plugins/akismet/_inc/form.js create mode 100644 wp-content/plugins/akismet/_inc/img/logo-full-2x.png create mode 100644 wp-content/plugins/akismet/akismet.php create mode 100644 wp-content/plugins/akismet/class.akismet-admin.php create mode 100644 wp-content/plugins/akismet/class.akismet-cli.php create mode 100644 wp-content/plugins/akismet/class.akismet-rest-api.php create mode 100644 wp-content/plugins/akismet/class.akismet-widget.php create mode 100644 wp-content/plugins/akismet/class.akismet.php create mode 100644 wp-content/plugins/akismet/index.php create mode 100644 wp-content/plugins/akismet/readme.txt create mode 100644 wp-content/plugins/akismet/views/config.php create mode 100644 wp-content/plugins/akismet/views/get.php create mode 100644 wp-content/plugins/akismet/views/notice.php create mode 100644 wp-content/plugins/akismet/views/start.php create mode 100644 wp-content/plugins/akismet/views/stats.php create mode 100644 wp-content/plugins/akismet/wrapper.php create mode 100644 wp-content/plugins/hello.php diff --git a/readme.html b/readme.html index 8f4906425..031c0761a 100644 --- a/readme.html +++ b/readme.html @@ -58,7 +58,7 @@ <h3>Recommendations</h3> <ul> - <li><a href="https://secure.php.net/">PHP</a> version <strong>7</strong> or higher.</li> + <li><a href="https://secure.php.net/">PHP</a> version <strong>7.2</strong> or higher.</li> <li><a href="https://www.mysql.com/">MySQL</a> version <strong>5.6</strong> or higher.</li> <li>The <a href="https://httpd.apache.org/docs/2.2/mod/mod_rewrite.html">mod_rewrite</a> Apache module.</li> <li><a href="https://wordpress.org/news/2016/12/moving-toward-ssl/">HTTPS</a> support.</li> diff --git a/wp-activate.php b/wp-activate.php index 1a7d1ecdb..6aae1ca8a 100644 --- a/wp-activate.php +++ b/wp-activate.php @@ -18,6 +18,8 @@ if ( !is_multisite() ) { die(); } +nocache_headers(); + if ( is_object( $wp_object_cache ) ) $wp_object_cache->cache_enabled = false; @@ -110,7 +112,7 @@ get_header( 'wp-activate' ); printf( /* translators: 1: site URL, 2: username, 3: user email, 4: lost password URL */ __( 'Your site at %1$s is active. You may now log in to your site using your chosen username of “%2$s”. Please check your email inbox at %3$s for your password and login instructions. If you do not receive an email, please check your junk or spam folder. If you still do not receive an email within an hour, you can <a href="%4$s">reset your password</a>.' ), - sprintf( '<a href="http://%s">%s</a>', $signup->domain ), + sprintf( '<a href="http://%1$s">%1$s</a>', $signup->domain ), $signup->user_login, $signup->user_email, wp_lostpassword_url() diff --git a/wp-admin/about.php b/wp-admin/about.php index f1ee62173..cc8ca1198 100644 --- a/wp-admin/about.php +++ b/wp-admin/about.php @@ -27,11 +27,47 @@ include( ABSPATH . 'wp-admin/admin-header.php' ); <a href="about.php" class="nav-tab nav-tab-active"><?php _e( 'What’s New' ); ?></a> <a href="credits.php" class="nav-tab"><?php _e( 'Credits' ); ?></a> <a href="freedoms.php" class="nav-tab"><?php _e( 'Freedoms' ); ?></a> - <a href="privacy.php" class="nav-tab"><?php _e( 'Privacy' ); ?></a> + <a href="freedoms.php?privacy-notice" class="nav-tab"><?php _e( 'Privacy' ); ?></a> </h2> <div class="changelog point-releases"> <h3><?php _e( 'Maintenance and Security Releases' ); ?></h3> + <p> + <?php + printf( + /* translators: 1: WordPress version number, 2: plural number of bugs. */ + _n( + '<strong>Version %1$s</strong> addressed %2$s bug.', + '<strong>Version %1$s</strong> addressed %2$s bugs.', + 18 + ), + '4.9.6', + number_format_i18n( 18 ) + ); + ?> + <?php + /* translators: %s: Codex URL */ + printf( __( 'For more information, see <a href="%s">the release notes</a>.' ), 'https://codex.wordpress.org/Version_4.9.6' ); + ?> + </p> + <p> + <?php + printf( + /* translators: 1: WordPress version number, 2: plural number of bugs. */ + _n( + '<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bug.', + '<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bugs.', + 28 + ), + '4.9.5', + number_format_i18n( 28 ) + ); + ?> + <?php + /* translators: %s: Codex URL */ + printf( __( 'For more information, see <a href="%s">the release notes</a>.' ), 'https://codex.wordpress.org/Version_4.9.5' ); + ?> + </p> <p> <?php printf( diff --git a/wp-admin/admin-ajax.php b/wp-admin/admin-ajax.php index 8a1533254..cbef0787d 100644 --- a/wp-admin/admin-ajax.php +++ b/wp-admin/admin-ajax.php @@ -65,6 +65,8 @@ $core_actions_post = array( 'generate-password', 'save-wporg-username', 'delete-plugin', 'search-plugins', 'search-install-plugins', 'activate-plugin', 'update-theme', 'delete-theme', 'install-theme', 'get-post-thumbnail-html', 'get-community-events', 'edit-theme-plugin-file', + 'wp-privacy-export-personal-data', + 'wp-privacy-erase-personal-data', ); // Deprecated diff --git a/wp-admin/credits.php b/wp-admin/credits.php index 7c6df4bca..1ec2d6702 100644 --- a/wp-admin/credits.php +++ b/wp-admin/credits.php @@ -28,7 +28,7 @@ include( ABSPATH . 'wp-admin/admin-header.php' ); <a href="about.php" class="nav-tab"><?php _e( 'What’s New' ); ?></a> <a href="credits.php" class="nav-tab nav-tab-active"><?php _e( 'Credits' ); ?></a> <a href="freedoms.php" class="nav-tab"><?php _e( 'Freedoms' ); ?></a> - <a href="privacy.php" class="nav-tab"><?php _e( 'Privacy' ); ?></a> + <a href="freedoms.php?privacy-notice" class="nav-tab"><?php _e( 'Privacy' ); ?></a> </h2> <div class="about-wrap-content"> @@ -52,6 +52,12 @@ if ( ! $credits ) { echo '<p class="about-description">' . __( 'WordPress is created by a worldwide team of passionate individuals.' ) . "</p>\n"; +echo '<p>' . sprintf( + /* translators: %s: https://make.wordpress.org/ */ + __( 'Want to see your name in lights on this page? <a href="%s">Get involved in WordPress</a>.' ), + __( 'https://make.wordpress.org/' ) +) . '</p>'; + foreach ( $credits['groups'] as $group_slug => $group_data ) { if ( $group_data['name'] ) { if ( 'Translators' == $group_data['name'] ) { @@ -101,13 +107,6 @@ foreach ( $credits['groups'] as $group_slug => $group_data ) { } ?> -<p class="clear"><?php - /* translators: %s: https://make.wordpress.org/ */ - printf( __( 'Want to see your name in lights on this page? <a href="%s">Get involved in WordPress</a>.' ), - __( 'https://make.wordpress.org/' ) - ); -?></p> - </div> </div> <?php diff --git a/wp-admin/css/about-rtl.css b/wp-admin/css/about-rtl.css index 297d4cf97..086ebd398 100644 --- a/wp-admin/css/about-rtl.css +++ b/wp-admin/css/about-rtl.css @@ -260,10 +260,8 @@ .about-wrap .two-col-text { -webkit-column-count: 2; - -moz-column-count: 2; column-count: 2; -webkit-column-gap: 40px; - -moz-column-gap: 40px; column-gap: 40px; } @@ -551,7 +549,6 @@ @media screen and (max-width: 782px) { .about-wrap .two-col-text { -webkit-column-count: 1; - -moz-column-count: 1; column-count: 1; } diff --git a/wp-admin/css/about-rtl.min.css b/wp-admin/css/about-rtl.min.css index 6d70c31b4..ac682c7ab 100644 --- a/wp-admin/css/about-rtl.min.css +++ b/wp-admin/css/about-rtl.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -.about-wrap{position:relative;margin:25px 20px 0 40px;max-width:1050px;font-size:15px}.about-wrap.full-width-layout{max-width:1200px}.about-wrap-content{max-width:1050px}.about-wrap .notice,.about-wrap div.error,.about-wrap div.updated{display:none!important}.about-wrap hr{border:0;height:0;margin:0;border-top:1px solid rgba(0,0,0,.1)}.about-wrap img{margin:0;max-width:100%;height:auto;vertical-align:middle}.about-wrap .jetpack-video-wrapper{margin-bottom:0}.wp-badge{background:url(../images/w-logo-white.png?ver=20160308) center 25px no-repeat #0073aa;background-size:80px 80px;color:#fff;font-size:14px;text-align:center;font-weight:600;margin:5px 0 0;padding-top:120px;height:40px;display:inline-block;width:140px;text-rendering:optimizeLegibility;box-shadow:0 1px 3px rgba(0,0,0,.2)}.svg .wp-badge{background-image:url(../images/wordpress-logo-white.svg?ver=20160308)}.about-wrap .wp-badge{position:absolute;top:0;left:0}.about-wrap .nav-tab{padding-left:15px;padding-right:15px;font-size:18px}.about-wrap p{line-height:1.5;font-size:14px}.about-wrap .feature-section p{max-width:55em;margin-right:auto;margin-left:auto}.about-wrap h1{margin:.2em 0 0 200px;padding:0;color:#32373c;line-height:1.2em;font-size:2.8em;font-weight:400}.about-wrap h2{margin:40px 0 .6em;font-size:2.7em;line-height:1.3;font-weight:300;text-align:center}.about-wrap h3{margin:1.25em 0 .6em;font-size:1.4em;line-height:1.5}.about-wrap h4{color:#23282d}.about-wrap .changelog h2{font-size:1.4em;font-weight:600;text-align:right}.about-wrap .embed-container,.about-wrap .featured-image,.about-wrap .lead-description{text-align:center}.about-wrap .changelog h3{margin:1.33em 0;font-size:1em;line-height:inherit;color:#23282d}.about-wrap code,.about-wrap ol li p{font-size:14px;font-weight:400}.about-wrap .about-description,.about-wrap .about-text{margin-top:1.4em;font-weight:400;line-height:1.6em;font-size:19px}.about-wrap .about-text{margin:1em 0 1em 200px;min-height:60px;color:#555d66}.about-wrap [class$="-col"]{display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;flex-wrap:wrap}.about-wrap .feature-section.one-col{margin:0 auto;max-width:700px}.about-wrap .inline-svg img{max-width:100%;width:100%;height:auto}.about-wrap .inline-svg.full-width{margin-bottom:120px}.about-wrap [class$="-col"] .col{-webkit-box-flex:1;flex:1}.about-wrap .two-col .col{min-width:47%;max-width:47%}.about-wrap .three-col .col{-webkit-align-self:flex-start;align-self:flex-start;min-width:31%;max-width:31%}.about-wrap .two-col img{margin-bottom:1.5em}.about-wrap .feature-video .mejs-controls{display:none!important}.about-wrap .feature-video .mejs-overlay-loading span{background:0 0}.about-wrap .point-releases{margin-top:5px;border-bottom:1px solid #ddd}.about-wrap .changelog.point-releases h3{padding-top:35px}.about-wrap .changelog.point-releases h3:first-child{padding-top:7px}.about-wrap .feature-section.two-col h3{margin-top:0}.about-wrap .feature-section h4{margin:1.4em 0 .6em;font-size:1em}.about-wrap .feature-section p{margin-top:.6em}.about-wrap .lead-description{font-size:1.5em}.about-wrap .two-col-text{-webkit-column-count:2;-moz-column-count:2;column-count:2;-webkit-column-gap:40px;-moz-column-gap:40px;column-gap:40px}.about-wrap .two-col-text p:first-of-type{margin-top:0}.about-wrap .native-fonts p,.about-wrap .streamlined-updates p{margin-bottom:3em}.about-wrap .headline-feature.feature-video{position:relative;margin:40px 0;padding-bottom:56.25%;width:100%;max-width:100%;height:0;text-align:center}.about-wrap .changelog.feature-section .col,.about-wrap .feature-section .col{margin-top:40px}.about-wrap .feature-video embed{position:absolute;top:0;right:0;width:100%;height:100%}.about-wrap .feature-section{overflow:hidden;padding:0 0 40px}.about-wrap .feature-section.no-heading{padding-top:35px}.about-wrap .feature-section .media-container{overflow:hidden}.about-wrap .feature-section img{margin-bottom:1em}.about-wrap .embed-container iframe,.about-wrap .wp-embedded-content{max-width:100%}.about-wrap .changelog{margin-bottom:40px}.about-wrap .return-to-dashboard{margin:30px -5px 0 0;font-size:14px;font-weight:600}.about-wrap .return-to-dashboard a{text-decoration:none;padding:0 5px}.about-wrap .floating-header-section{display:-ms-grid;display:grid;grid-gap:0 60px;-ms-grid-columns:5fr 11fr;grid-template-columns:5fr 11fr;max-width:1020px;margin:0 auto 120px}.about-wrap .floating-header-section .section-header{-ms-grid-column:1;grid-column:1;position:relative;min-width:230px;max-width:300px}.about-wrap .floating-header-section h2{margin:0;text-align:right;position:absolute}.about-wrap .floating-header-section .section-content{-ms-grid-column:2;grid-column:2;display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;-webkit-box-align:start;align-items:flex-start;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-flex:2;flex-grow:2;flex-shrink:0}.about-wrap .floating-header-section .section-item{-webkit-box-flex:1;flex-grow:1;max-width:calc(50% - 30px)}.about-wrap .floating-header-section .section-item:nth-child(1),.about-wrap .floating-header-section .section-item:nth-child(2){margin-bottom:60px}.about-wrap .floating-header-section .section-item:nth-child(1):nth-last-child(2),.about-wrap .floating-header-section .section-item:nth-child(2):nth-last-child(1){margin-bottom:0}.about-wrap .floating-header-section.has-long-title{display:block}.about-wrap .floating-header-section.has-long-title .section-header{max-width:100%}.about-wrap .floating-header-section.has-long-title h2{position:static;margin-bottom:60px}.about-wrap .floating-header-section.has-long-title .section-content{-webkit-box-pack:start;justify-content:flex-start}.about-wrap .floating-header-section.has-long-title .section-item{max-width:300px;margin-bottom:0}.about-wrap .floating-header-section.has-long-title .section-item+.section-item{margin-right:60px}.about-wrap h3.wp-people-group{margin:2.6em 0 1.33em;padding:0;font-size:16px;line-height:inherit}.about-wrap .wp-people-group{padding:0 5px;margin:0 -5px 0 -15px}.about-wrap .compact{margin-bottom:0}.about-wrap .wp-person{display:inline-block;vertical-align:top;margin-left:10px;padding-bottom:15px;height:70px;width:280px}.about-wrap .compact .wp-person{height:auto;width:180px;padding-bottom:0;margin-bottom:0}.about-wrap .wp-person .gravatar{float:right;margin:0 0 10px 10px;padding:1px;width:60px;height:60px}.about-wrap .compact .wp-person .gravatar{width:30px;height:30px}.about-wrap .wp-person .web{margin:6px 0 2px;font-size:16px;font-weight:400;line-height:2em;text-decoration:none}.about-wrap .wp-person .title{display:block}.about-wrap #wp-people-group-validators+p.wp-credits-list{margin-top:0}.about-wrap p.wp-credits-list a{white-space:nowrap}.freedoms-php .about-wrap ol{margin:40px 60px}.freedoms-php .about-wrap ol li{list-style-type:decimal;font-weight:600}.freedoms-php .about-wrap ol p{font-weight:400;margin:.6em 0}@media screen and (max-width:1250px){.about-wrap .floating-header-section.has-long-title .section-item:nth-child(1),.about-wrap .floating-header-section.has-long-title .section-item:nth-child(2){margin:0 0 60px}.about-wrap .floating-header-section.has-long-title .section-item:nth-child(3),.about-wrap .floating-header-section.has-long-title .section-item:nth-child(4){margin:0}.about-wrap .floating-header-section.has-long-title .section-item:nth-child(2),.about-wrap .floating-header-section.has-long-title .section-item:nth-child(4){margin-right:60px}}@media screen and (max-width:782px){.about-wrap .two-col-text{-webkit-column-count:1;-moz-column-count:1;column-count:1}.about-wrap .three-col .col,.about-wrap .two-col .col{min-width:48%!important}.about-wrap .three-col img{display:block;margin:0 auto}.about-wrap .floating-header-section{display:block}.about-wrap .floating-header-section .section-content,.about-wrap .floating-header-section .section-header{max-width:100%}.about-wrap .floating-header-section h2{position:static;margin-bottom:60px}}@media only screen and (max-width:500px){.about-wrap{margin-left:20px;margin-right:10px}.about-wrap .about-text,.about-wrap h1{margin-left:0}.about-wrap .about-text{margin-bottom:.25em}.about-wrap .wp-badge{position:relative;margin-bottom:1.5em;width:100%}.about-wrap .three-col .col,.about-wrap .two-col .col{min-width:100%!important}.about-wrap .under-the-hood.one-col .col,.about-wrap .under-the-hood.three-col .col,.about-wrap .under-the-hood.two-col .col{margin-bottom:2em;padding-bottom:0}.about-wrap .under-the-hood:nth-of-type(2n),.about-wrap .under-the-hood:nth-of-type(3n){margin-top:0}.about-wrap .under-the-hood:nth-of-type(2n) h3,.about-wrap .under-the-hood:nth-of-type(3n) h3{margin-top:0}.about-wrap .floating-header-section{margin-bottom:60px;grid-gap:30px 0}.about-wrap .inline-svg.full-width{margin-bottom:60px}.about-wrap .floating-header-section h2{word-break:break-all;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.about-wrap .floating-header-section .section-content .section-item{max-width:100%;margin:0 0 60px}} \ No newline at end of file +.about-wrap{position:relative;margin:25px 20px 0 40px;max-width:1050px;font-size:15px}.about-wrap.full-width-layout{max-width:1200px}.about-wrap-content{max-width:1050px}.about-wrap .notice,.about-wrap div.error,.about-wrap div.updated{display:none!important}.about-wrap hr{border:0;height:0;margin:0;border-top:1px solid rgba(0,0,0,.1)}.about-wrap img{margin:0;max-width:100%;height:auto;vertical-align:middle}.about-wrap .jetpack-video-wrapper{margin-bottom:0}.wp-badge{background:url(../images/w-logo-white.png?ver=20160308) center 25px no-repeat #0073aa;background-size:80px 80px;color:#fff;font-size:14px;text-align:center;font-weight:600;margin:5px 0 0;padding-top:120px;height:40px;display:inline-block;width:140px;text-rendering:optimizeLegibility;box-shadow:0 1px 3px rgba(0,0,0,.2)}.svg .wp-badge{background-image:url(../images/wordpress-logo-white.svg?ver=20160308)}.about-wrap .wp-badge{position:absolute;top:0;left:0}.about-wrap .nav-tab{padding-left:15px;padding-right:15px;font-size:18px}.about-wrap p{line-height:1.5;font-size:14px}.about-wrap .feature-section p{max-width:55em;margin-right:auto;margin-left:auto}.about-wrap h1{margin:.2em 0 0 200px;padding:0;color:#32373c;line-height:1.2em;font-size:2.8em;font-weight:400}.about-wrap h2{margin:40px 0 .6em;font-size:2.7em;line-height:1.3;font-weight:300;text-align:center}.about-wrap h3{margin:1.25em 0 .6em;font-size:1.4em;line-height:1.5}.about-wrap h4{color:#23282d}.about-wrap .changelog h2{font-size:1.4em;font-weight:600;text-align:right}.about-wrap .embed-container,.about-wrap .featured-image,.about-wrap .lead-description{text-align:center}.about-wrap .changelog h3{margin:1.33em 0;font-size:1em;line-height:inherit;color:#23282d}.about-wrap code,.about-wrap ol li p{font-size:14px;font-weight:400}.about-wrap .about-description,.about-wrap .about-text{margin-top:1.4em;font-weight:400;line-height:1.6em;font-size:19px}.about-wrap .about-text{margin:1em 0 1em 200px;min-height:60px;color:#555d66}.about-wrap [class$="-col"]{display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;flex-wrap:wrap}.about-wrap .feature-section.one-col{margin:0 auto;max-width:700px}.about-wrap .inline-svg img{max-width:100%;width:100%;height:auto}.about-wrap .inline-svg.full-width{margin-bottom:120px}.about-wrap [class$="-col"] .col{-webkit-box-flex:1;flex:1}.about-wrap .two-col .col{min-width:47%;max-width:47%}.about-wrap .three-col .col{-webkit-align-self:flex-start;align-self:flex-start;min-width:31%;max-width:31%}.about-wrap .two-col img{margin-bottom:1.5em}.about-wrap .feature-video .mejs-controls{display:none!important}.about-wrap .feature-video .mejs-overlay-loading span{background:0 0}.about-wrap .point-releases{margin-top:5px;border-bottom:1px solid #ddd}.about-wrap .changelog.point-releases h3{padding-top:35px}.about-wrap .changelog.point-releases h3:first-child{padding-top:7px}.about-wrap .feature-section.two-col h3{margin-top:0}.about-wrap .feature-section h4{margin:1.4em 0 .6em;font-size:1em}.about-wrap .feature-section p{margin-top:.6em}.about-wrap .lead-description{font-size:1.5em}.about-wrap .two-col-text{-webkit-column-count:2;column-count:2;-webkit-column-gap:40px;column-gap:40px}.about-wrap .two-col-text p:first-of-type{margin-top:0}.about-wrap .native-fonts p,.about-wrap .streamlined-updates p{margin-bottom:3em}.about-wrap .headline-feature.feature-video{position:relative;margin:40px 0;padding-bottom:56.25%;width:100%;max-width:100%;height:0;text-align:center}.about-wrap .changelog.feature-section .col,.about-wrap .feature-section .col{margin-top:40px}.about-wrap .feature-video embed{position:absolute;top:0;right:0;width:100%;height:100%}.about-wrap .feature-section{overflow:hidden;padding:0 0 40px}.about-wrap .feature-section.no-heading{padding-top:35px}.about-wrap .feature-section .media-container{overflow:hidden}.about-wrap .feature-section img{margin-bottom:1em}.about-wrap .embed-container iframe,.about-wrap .wp-embedded-content{max-width:100%}.about-wrap .changelog{margin-bottom:40px}.about-wrap .return-to-dashboard{margin:30px -5px 0 0;font-size:14px;font-weight:600}.about-wrap .return-to-dashboard a{text-decoration:none;padding:0 5px}.about-wrap .floating-header-section{display:-ms-grid;display:grid;grid-gap:0 60px;-ms-grid-columns:5fr 11fr;grid-template-columns:5fr 11fr;max-width:1020px;margin:0 auto 120px}.about-wrap .floating-header-section .section-header{-ms-grid-column:1;grid-column:1;position:relative;min-width:230px;max-width:300px}.about-wrap .floating-header-section h2{margin:0;text-align:right;position:absolute}.about-wrap .floating-header-section .section-content{-ms-grid-column:2;grid-column:2;display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;-webkit-box-align:start;align-items:flex-start;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-flex:2;flex-grow:2;flex-shrink:0}.about-wrap .floating-header-section .section-item{-webkit-box-flex:1;flex-grow:1;max-width:calc(50% - 30px)}.about-wrap .floating-header-section .section-item:nth-child(1),.about-wrap .floating-header-section .section-item:nth-child(2){margin-bottom:60px}.about-wrap .floating-header-section .section-item:nth-child(1):nth-last-child(2),.about-wrap .floating-header-section .section-item:nth-child(2):nth-last-child(1){margin-bottom:0}.about-wrap .floating-header-section.has-long-title{display:block}.about-wrap .floating-header-section.has-long-title .section-header{max-width:100%}.about-wrap .floating-header-section.has-long-title h2{position:static;margin-bottom:60px}.about-wrap .floating-header-section.has-long-title .section-content{-webkit-box-pack:start;justify-content:flex-start}.about-wrap .floating-header-section.has-long-title .section-item{max-width:300px;margin-bottom:0}.about-wrap .floating-header-section.has-long-title .section-item+.section-item{margin-right:60px}.about-wrap h3.wp-people-group{margin:2.6em 0 1.33em;padding:0;font-size:16px;line-height:inherit}.about-wrap .wp-people-group{padding:0 5px;margin:0 -5px 0 -15px}.about-wrap .compact{margin-bottom:0}.about-wrap .wp-person{display:inline-block;vertical-align:top;margin-left:10px;padding-bottom:15px;height:70px;width:280px}.about-wrap .compact .wp-person{height:auto;width:180px;padding-bottom:0;margin-bottom:0}.about-wrap .wp-person .gravatar{float:right;margin:0 0 10px 10px;padding:1px;width:60px;height:60px}.about-wrap .compact .wp-person .gravatar{width:30px;height:30px}.about-wrap .wp-person .web{margin:6px 0 2px;font-size:16px;font-weight:400;line-height:2em;text-decoration:none}.about-wrap .wp-person .title{display:block}.about-wrap #wp-people-group-validators+p.wp-credits-list{margin-top:0}.about-wrap p.wp-credits-list a{white-space:nowrap}.freedoms-php .about-wrap ol{margin:40px 60px}.freedoms-php .about-wrap ol li{list-style-type:decimal;font-weight:600}.freedoms-php .about-wrap ol p{font-weight:400;margin:.6em 0}@media screen and (max-width:1250px){.about-wrap .floating-header-section.has-long-title .section-item:nth-child(1),.about-wrap .floating-header-section.has-long-title .section-item:nth-child(2){margin:0 0 60px}.about-wrap .floating-header-section.has-long-title .section-item:nth-child(3),.about-wrap .floating-header-section.has-long-title .section-item:nth-child(4){margin:0}.about-wrap .floating-header-section.has-long-title .section-item:nth-child(2),.about-wrap .floating-header-section.has-long-title .section-item:nth-child(4){margin-right:60px}}@media screen and (max-width:782px){.about-wrap .two-col-text{-webkit-column-count:1;column-count:1}.about-wrap .three-col .col,.about-wrap .two-col .col{min-width:48%!important}.about-wrap .three-col img{display:block;margin:0 auto}.about-wrap .floating-header-section{display:block}.about-wrap .floating-header-section .section-content,.about-wrap .floating-header-section .section-header{max-width:100%}.about-wrap .floating-header-section h2{position:static;margin-bottom:60px}}@media only screen and (max-width:500px){.about-wrap{margin-left:20px;margin-right:10px}.about-wrap .about-text,.about-wrap h1{margin-left:0}.about-wrap .about-text{margin-bottom:.25em}.about-wrap .wp-badge{position:relative;margin-bottom:1.5em;width:100%}.about-wrap .three-col .col,.about-wrap .two-col .col{min-width:100%!important}.about-wrap .under-the-hood.one-col .col,.about-wrap .under-the-hood.three-col .col,.about-wrap .under-the-hood.two-col .col{margin-bottom:2em;padding-bottom:0}.about-wrap .under-the-hood:nth-of-type(2n),.about-wrap .under-the-hood:nth-of-type(3n){margin-top:0}.about-wrap .under-the-hood:nth-of-type(2n) h3,.about-wrap .under-the-hood:nth-of-type(3n) h3{margin-top:0}.about-wrap .floating-header-section{margin-bottom:60px;grid-gap:30px 0}.about-wrap .inline-svg.full-width{margin-bottom:60px}.about-wrap .floating-header-section h2{word-break:break-all;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.about-wrap .floating-header-section .section-content .section-item{max-width:100%;margin:0 0 60px}} \ No newline at end of file diff --git a/wp-admin/css/about.css b/wp-admin/css/about.css index c9d6f16aa..5b6c501ae 100644 --- a/wp-admin/css/about.css +++ b/wp-admin/css/about.css @@ -260,10 +260,8 @@ .about-wrap .two-col-text { -webkit-column-count: 2; - -moz-column-count: 2; column-count: 2; -webkit-column-gap: 40px; - -moz-column-gap: 40px; column-gap: 40px; } @@ -551,7 +549,6 @@ @media screen and (max-width: 782px) { .about-wrap .two-col-text { -webkit-column-count: 1; - -moz-column-count: 1; column-count: 1; } diff --git a/wp-admin/css/about.min.css b/wp-admin/css/about.min.css index c0447311a..6f82b33d1 100644 --- a/wp-admin/css/about.min.css +++ b/wp-admin/css/about.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -.about-wrap{position:relative;margin:25px 40px 0 20px;max-width:1050px;font-size:15px}.about-wrap.full-width-layout{max-width:1200px}.about-wrap-content{max-width:1050px}.about-wrap .notice,.about-wrap div.error,.about-wrap div.updated{display:none!important}.about-wrap hr{border:0;height:0;margin:0;border-top:1px solid rgba(0,0,0,.1)}.about-wrap img{margin:0;max-width:100%;height:auto;vertical-align:middle}.about-wrap .jetpack-video-wrapper{margin-bottom:0}.wp-badge{background:url(../images/w-logo-white.png?ver=20160308) center 25px no-repeat #0073aa;background-size:80px 80px;color:#fff;font-size:14px;text-align:center;font-weight:600;margin:5px 0 0;padding-top:120px;height:40px;display:inline-block;width:140px;text-rendering:optimizeLegibility;box-shadow:0 1px 3px rgba(0,0,0,.2)}.svg .wp-badge{background-image:url(../images/wordpress-logo-white.svg?ver=20160308)}.about-wrap .wp-badge{position:absolute;top:0;right:0}.about-wrap .nav-tab{padding-right:15px;padding-left:15px;font-size:18px}.about-wrap p{line-height:1.5;font-size:14px}.about-wrap .feature-section p{max-width:55em;margin-left:auto;margin-right:auto}.about-wrap h1{margin:.2em 200px 0 0;padding:0;color:#32373c;line-height:1.2em;font-size:2.8em;font-weight:400}.about-wrap h2{margin:40px 0 .6em;font-size:2.7em;line-height:1.3;font-weight:300;text-align:center}.about-wrap h3{margin:1.25em 0 .6em;font-size:1.4em;line-height:1.5}.about-wrap h4{color:#23282d}.about-wrap .changelog h2{font-size:1.4em;font-weight:600;text-align:left}.about-wrap .embed-container,.about-wrap .featured-image,.about-wrap .lead-description{text-align:center}.about-wrap .changelog h3{margin:1.33em 0;font-size:1em;line-height:inherit;color:#23282d}.about-wrap code,.about-wrap ol li p{font-size:14px;font-weight:400}.about-wrap .about-description,.about-wrap .about-text{margin-top:1.4em;font-weight:400;line-height:1.6em;font-size:19px}.about-wrap .about-text{margin:1em 200px 1em 0;min-height:60px;color:#555d66}.about-wrap [class$="-col"]{display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;flex-wrap:wrap}.about-wrap .feature-section.one-col{margin:0 auto;max-width:700px}.about-wrap .inline-svg img{max-width:100%;width:100%;height:auto}.about-wrap .inline-svg.full-width{margin-bottom:120px}.about-wrap [class$="-col"] .col{-webkit-box-flex:1;flex:1}.about-wrap .two-col .col{min-width:47%;max-width:47%}.about-wrap .three-col .col{-webkit-align-self:flex-start;align-self:flex-start;min-width:31%;max-width:31%}.about-wrap .two-col img{margin-bottom:1.5em}.about-wrap .feature-video .mejs-controls{display:none!important}.about-wrap .feature-video .mejs-overlay-loading span{background:0 0}.about-wrap .point-releases{margin-top:5px;border-bottom:1px solid #ddd}.about-wrap .changelog.point-releases h3{padding-top:35px}.about-wrap .changelog.point-releases h3:first-child{padding-top:7px}.about-wrap .feature-section.two-col h3{margin-top:0}.about-wrap .feature-section h4{margin:1.4em 0 .6em;font-size:1em}.about-wrap .feature-section p{margin-top:.6em}.about-wrap .lead-description{font-size:1.5em}.about-wrap .two-col-text{-webkit-column-count:2;-moz-column-count:2;column-count:2;-webkit-column-gap:40px;-moz-column-gap:40px;column-gap:40px}.about-wrap .two-col-text p:first-of-type{margin-top:0}.about-wrap .native-fonts p,.about-wrap .streamlined-updates p{margin-bottom:3em}.about-wrap .headline-feature.feature-video{position:relative;margin:40px 0;padding-bottom:56.25%;width:100%;max-width:100%;height:0;text-align:center}.about-wrap .changelog.feature-section .col,.about-wrap .feature-section .col{margin-top:40px}.about-wrap .feature-video embed{position:absolute;top:0;left:0;width:100%;height:100%}.about-wrap .feature-section{overflow:hidden;padding:0 0 40px}.about-wrap .feature-section.no-heading{padding-top:35px}.about-wrap .feature-section .media-container{overflow:hidden}.about-wrap .feature-section img{margin-bottom:1em}.about-wrap .embed-container iframe,.about-wrap .wp-embedded-content{max-width:100%}.about-wrap .changelog{margin-bottom:40px}.about-wrap .return-to-dashboard{margin:30px 0 0 -5px;font-size:14px;font-weight:600}.about-wrap .return-to-dashboard a{text-decoration:none;padding:0 5px}.about-wrap .floating-header-section{display:-ms-grid;display:grid;grid-gap:0 60px;-ms-grid-columns:5fr 11fr;grid-template-columns:5fr 11fr;max-width:1020px;margin:0 auto 120px}.about-wrap .floating-header-section .section-header{-ms-grid-column:1;grid-column:1;position:relative;min-width:230px;max-width:300px}.about-wrap .floating-header-section h2{margin:0;text-align:left;position:absolute}.about-wrap .floating-header-section .section-content{-ms-grid-column:2;grid-column:2;display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;-webkit-box-align:start;align-items:flex-start;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-flex:2;flex-grow:2;flex-shrink:0}.about-wrap .floating-header-section .section-item{-webkit-box-flex:1;flex-grow:1;max-width:calc(50% - 30px)}.about-wrap .floating-header-section .section-item:nth-child(1),.about-wrap .floating-header-section .section-item:nth-child(2){margin-bottom:60px}.about-wrap .floating-header-section .section-item:nth-child(1):nth-last-child(2),.about-wrap .floating-header-section .section-item:nth-child(2):nth-last-child(1){margin-bottom:0}.about-wrap .floating-header-section.has-long-title{display:block}.about-wrap .floating-header-section.has-long-title .section-header{max-width:100%}.about-wrap .floating-header-section.has-long-title h2{position:static;margin-bottom:60px}.about-wrap .floating-header-section.has-long-title .section-content{-webkit-box-pack:start;justify-content:flex-start}.about-wrap .floating-header-section.has-long-title .section-item{max-width:300px;margin-bottom:0}.about-wrap .floating-header-section.has-long-title .section-item+.section-item{margin-left:60px}.about-wrap h3.wp-people-group{margin:2.6em 0 1.33em;padding:0;font-size:16px;line-height:inherit}.about-wrap .wp-people-group{padding:0 5px;margin:0 -15px 0 -5px}.about-wrap .compact{margin-bottom:0}.about-wrap .wp-person{display:inline-block;vertical-align:top;margin-right:10px;padding-bottom:15px;height:70px;width:280px}.about-wrap .compact .wp-person{height:auto;width:180px;padding-bottom:0;margin-bottom:0}.about-wrap .wp-person .gravatar{float:left;margin:0 10px 10px 0;padding:1px;width:60px;height:60px}.about-wrap .compact .wp-person .gravatar{width:30px;height:30px}.about-wrap .wp-person .web{margin:6px 0 2px;font-size:16px;font-weight:400;line-height:2em;text-decoration:none}.about-wrap .wp-person .title{display:block}.about-wrap #wp-people-group-validators+p.wp-credits-list{margin-top:0}.about-wrap p.wp-credits-list a{white-space:nowrap}.freedoms-php .about-wrap ol{margin:40px 60px}.freedoms-php .about-wrap ol li{list-style-type:decimal;font-weight:600}.freedoms-php .about-wrap ol p{font-weight:400;margin:.6em 0}@media screen and (max-width:1250px){.about-wrap .floating-header-section.has-long-title .section-item:nth-child(1),.about-wrap .floating-header-section.has-long-title .section-item:nth-child(2){margin:0 0 60px}.about-wrap .floating-header-section.has-long-title .section-item:nth-child(3),.about-wrap .floating-header-section.has-long-title .section-item:nth-child(4){margin:0}.about-wrap .floating-header-section.has-long-title .section-item:nth-child(2),.about-wrap .floating-header-section.has-long-title .section-item:nth-child(4){margin-left:60px}}@media screen and (max-width:782px){.about-wrap .two-col-text{-webkit-column-count:1;-moz-column-count:1;column-count:1}.about-wrap .three-col .col,.about-wrap .two-col .col{min-width:48%!important}.about-wrap .three-col img{display:block;margin:0 auto}.about-wrap .floating-header-section{display:block}.about-wrap .floating-header-section .section-content,.about-wrap .floating-header-section .section-header{max-width:100%}.about-wrap .floating-header-section h2{position:static;margin-bottom:60px}}@media only screen and (max-width:500px){.about-wrap{margin-right:20px;margin-left:10px}.about-wrap .about-text,.about-wrap h1{margin-right:0}.about-wrap .about-text{margin-bottom:.25em}.about-wrap .wp-badge{position:relative;margin-bottom:1.5em;width:100%}.about-wrap .three-col .col,.about-wrap .two-col .col{min-width:100%!important}.about-wrap .under-the-hood.one-col .col,.about-wrap .under-the-hood.three-col .col,.about-wrap .under-the-hood.two-col .col{margin-bottom:2em;padding-bottom:0}.about-wrap .under-the-hood:nth-of-type(2n),.about-wrap .under-the-hood:nth-of-type(3n){margin-top:0}.about-wrap .under-the-hood:nth-of-type(2n) h3,.about-wrap .under-the-hood:nth-of-type(3n) h3{margin-top:0}.about-wrap .floating-header-section{margin-bottom:60px;grid-gap:30px 0}.about-wrap .inline-svg.full-width{margin-bottom:60px}.about-wrap .floating-header-section h2{word-break:break-all;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.about-wrap .floating-header-section .section-content .section-item{max-width:100%;margin:0 0 60px}} \ No newline at end of file +.about-wrap{position:relative;margin:25px 40px 0 20px;max-width:1050px;font-size:15px}.about-wrap.full-width-layout{max-width:1200px}.about-wrap-content{max-width:1050px}.about-wrap .notice,.about-wrap div.error,.about-wrap div.updated{display:none!important}.about-wrap hr{border:0;height:0;margin:0;border-top:1px solid rgba(0,0,0,.1)}.about-wrap img{margin:0;max-width:100%;height:auto;vertical-align:middle}.about-wrap .jetpack-video-wrapper{margin-bottom:0}.wp-badge{background:url(../images/w-logo-white.png?ver=20160308) center 25px no-repeat #0073aa;background-size:80px 80px;color:#fff;font-size:14px;text-align:center;font-weight:600;margin:5px 0 0;padding-top:120px;height:40px;display:inline-block;width:140px;text-rendering:optimizeLegibility;box-shadow:0 1px 3px rgba(0,0,0,.2)}.svg .wp-badge{background-image:url(../images/wordpress-logo-white.svg?ver=20160308)}.about-wrap .wp-badge{position:absolute;top:0;right:0}.about-wrap .nav-tab{padding-right:15px;padding-left:15px;font-size:18px}.about-wrap p{line-height:1.5;font-size:14px}.about-wrap .feature-section p{max-width:55em;margin-left:auto;margin-right:auto}.about-wrap h1{margin:.2em 200px 0 0;padding:0;color:#32373c;line-height:1.2em;font-size:2.8em;font-weight:400}.about-wrap h2{margin:40px 0 .6em;font-size:2.7em;line-height:1.3;font-weight:300;text-align:center}.about-wrap h3{margin:1.25em 0 .6em;font-size:1.4em;line-height:1.5}.about-wrap h4{color:#23282d}.about-wrap .changelog h2{font-size:1.4em;font-weight:600;text-align:left}.about-wrap .embed-container,.about-wrap .featured-image,.about-wrap .lead-description{text-align:center}.about-wrap .changelog h3{margin:1.33em 0;font-size:1em;line-height:inherit;color:#23282d}.about-wrap code,.about-wrap ol li p{font-size:14px;font-weight:400}.about-wrap .about-description,.about-wrap .about-text{margin-top:1.4em;font-weight:400;line-height:1.6em;font-size:19px}.about-wrap .about-text{margin:1em 200px 1em 0;min-height:60px;color:#555d66}.about-wrap [class$="-col"]{display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;flex-wrap:wrap}.about-wrap .feature-section.one-col{margin:0 auto;max-width:700px}.about-wrap .inline-svg img{max-width:100%;width:100%;height:auto}.about-wrap .inline-svg.full-width{margin-bottom:120px}.about-wrap [class$="-col"] .col{-webkit-box-flex:1;flex:1}.about-wrap .two-col .col{min-width:47%;max-width:47%}.about-wrap .three-col .col{-webkit-align-self:flex-start;align-self:flex-start;min-width:31%;max-width:31%}.about-wrap .two-col img{margin-bottom:1.5em}.about-wrap .feature-video .mejs-controls{display:none!important}.about-wrap .feature-video .mejs-overlay-loading span{background:0 0}.about-wrap .point-releases{margin-top:5px;border-bottom:1px solid #ddd}.about-wrap .changelog.point-releases h3{padding-top:35px}.about-wrap .changelog.point-releases h3:first-child{padding-top:7px}.about-wrap .feature-section.two-col h3{margin-top:0}.about-wrap .feature-section h4{margin:1.4em 0 .6em;font-size:1em}.about-wrap .feature-section p{margin-top:.6em}.about-wrap .lead-description{font-size:1.5em}.about-wrap .two-col-text{-webkit-column-count:2;column-count:2;-webkit-column-gap:40px;column-gap:40px}.about-wrap .two-col-text p:first-of-type{margin-top:0}.about-wrap .native-fonts p,.about-wrap .streamlined-updates p{margin-bottom:3em}.about-wrap .headline-feature.feature-video{position:relative;margin:40px 0;padding-bottom:56.25%;width:100%;max-width:100%;height:0;text-align:center}.about-wrap .changelog.feature-section .col,.about-wrap .feature-section .col{margin-top:40px}.about-wrap .feature-video embed{position:absolute;top:0;left:0;width:100%;height:100%}.about-wrap .feature-section{overflow:hidden;padding:0 0 40px}.about-wrap .feature-section.no-heading{padding-top:35px}.about-wrap .feature-section .media-container{overflow:hidden}.about-wrap .feature-section img{margin-bottom:1em}.about-wrap .embed-container iframe,.about-wrap .wp-embedded-content{max-width:100%}.about-wrap .changelog{margin-bottom:40px}.about-wrap .return-to-dashboard{margin:30px 0 0 -5px;font-size:14px;font-weight:600}.about-wrap .return-to-dashboard a{text-decoration:none;padding:0 5px}.about-wrap .floating-header-section{display:-ms-grid;display:grid;grid-gap:0 60px;-ms-grid-columns:5fr 11fr;grid-template-columns:5fr 11fr;max-width:1020px;margin:0 auto 120px}.about-wrap .floating-header-section .section-header{-ms-grid-column:1;grid-column:1;position:relative;min-width:230px;max-width:300px}.about-wrap .floating-header-section h2{margin:0;text-align:left;position:absolute}.about-wrap .floating-header-section .section-content{-ms-grid-column:2;grid-column:2;display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;-webkit-box-align:start;align-items:flex-start;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-flow:row wrap;-webkit-box-flex:2;flex-grow:2;flex-shrink:0}.about-wrap .floating-header-section .section-item{-webkit-box-flex:1;flex-grow:1;max-width:calc(50% - 30px)}.about-wrap .floating-header-section .section-item:nth-child(1),.about-wrap .floating-header-section .section-item:nth-child(2){margin-bottom:60px}.about-wrap .floating-header-section .section-item:nth-child(1):nth-last-child(2),.about-wrap .floating-header-section .section-item:nth-child(2):nth-last-child(1){margin-bottom:0}.about-wrap .floating-header-section.has-long-title{display:block}.about-wrap .floating-header-section.has-long-title .section-header{max-width:100%}.about-wrap .floating-header-section.has-long-title h2{position:static;margin-bottom:60px}.about-wrap .floating-header-section.has-long-title .section-content{-webkit-box-pack:start;justify-content:flex-start}.about-wrap .floating-header-section.has-long-title .section-item{max-width:300px;margin-bottom:0}.about-wrap .floating-header-section.has-long-title .section-item+.section-item{margin-left:60px}.about-wrap h3.wp-people-group{margin:2.6em 0 1.33em;padding:0;font-size:16px;line-height:inherit}.about-wrap .wp-people-group{padding:0 5px;margin:0 -15px 0 -5px}.about-wrap .compact{margin-bottom:0}.about-wrap .wp-person{display:inline-block;vertical-align:top;margin-right:10px;padding-bottom:15px;height:70px;width:280px}.about-wrap .compact .wp-person{height:auto;width:180px;padding-bottom:0;margin-bottom:0}.about-wrap .wp-person .gravatar{float:left;margin:0 10px 10px 0;padding:1px;width:60px;height:60px}.about-wrap .compact .wp-person .gravatar{width:30px;height:30px}.about-wrap .wp-person .web{margin:6px 0 2px;font-size:16px;font-weight:400;line-height:2em;text-decoration:none}.about-wrap .wp-person .title{display:block}.about-wrap #wp-people-group-validators+p.wp-credits-list{margin-top:0}.about-wrap p.wp-credits-list a{white-space:nowrap}.freedoms-php .about-wrap ol{margin:40px 60px}.freedoms-php .about-wrap ol li{list-style-type:decimal;font-weight:600}.freedoms-php .about-wrap ol p{font-weight:400;margin:.6em 0}@media screen and (max-width:1250px){.about-wrap .floating-header-section.has-long-title .section-item:nth-child(1),.about-wrap .floating-header-section.has-long-title .section-item:nth-child(2){margin:0 0 60px}.about-wrap .floating-header-section.has-long-title .section-item:nth-child(3),.about-wrap .floating-header-section.has-long-title .section-item:nth-child(4){margin:0}.about-wrap .floating-header-section.has-long-title .section-item:nth-child(2),.about-wrap .floating-header-section.has-long-title .section-item:nth-child(4){margin-left:60px}}@media screen and (max-width:782px){.about-wrap .two-col-text{-webkit-column-count:1;column-count:1}.about-wrap .three-col .col,.about-wrap .two-col .col{min-width:48%!important}.about-wrap .three-col img{display:block;margin:0 auto}.about-wrap .floating-header-section{display:block}.about-wrap .floating-header-section .section-content,.about-wrap .floating-header-section .section-header{max-width:100%}.about-wrap .floating-header-section h2{position:static;margin-bottom:60px}}@media only screen and (max-width:500px){.about-wrap{margin-right:20px;margin-left:10px}.about-wrap .about-text,.about-wrap h1{margin-right:0}.about-wrap .about-text{margin-bottom:.25em}.about-wrap .wp-badge{position:relative;margin-bottom:1.5em;width:100%}.about-wrap .three-col .col,.about-wrap .two-col .col{min-width:100%!important}.about-wrap .under-the-hood.one-col .col,.about-wrap .under-the-hood.three-col .col,.about-wrap .under-the-hood.two-col .col{margin-bottom:2em;padding-bottom:0}.about-wrap .under-the-hood:nth-of-type(2n),.about-wrap .under-the-hood:nth-of-type(3n){margin-top:0}.about-wrap .under-the-hood:nth-of-type(2n) h3,.about-wrap .under-the-hood:nth-of-type(3n) h3{margin-top:0}.about-wrap .floating-header-section{margin-bottom:60px;grid-gap:30px 0}.about-wrap .inline-svg.full-width{margin-bottom:60px}.about-wrap .floating-header-section h2{word-break:break-all;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto}.about-wrap .floating-header-section .section-content .section-item{max-width:100%;margin:0 0 60px}} \ No newline at end of file diff --git a/wp-admin/css/common-rtl.css b/wp-admin/css/common-rtl.css index 494afdcda..e4048263d 100644 --- a/wp-admin/css/common-rtl.css +++ b/wp-admin/css/common-rtl.css @@ -2981,7 +2981,8 @@ img { /* Metabox collapse arrow indicators */ .sidebar-name .toggle-indicator:before, .js .meta-box-sortables .postbox .toggle-indicator:before, -.bulk-action-notice .toggle-indicator:before { +.bulk-action-notice .toggle-indicator:before, +.privacy-text-box .toggle-indicator:before { content: "\f142"; display: inline-block; font: normal 20px/1 dashicons; @@ -2993,7 +2994,8 @@ img { .js .widgets-holder-wrap.closed .toggle-indicator:before, .js .meta-box-sortables .postbox.closed .handlediv .toggle-indicator:before, -.bulk-action-notice .bulk-action-errors-collapsed .toggle-indicator:before { +.bulk-action-notice .bulk-action-errors-collapsed .toggle-indicator:before, +.privacy-text-box.closed .toggle-indicator:before { content: "\f140"; } @@ -3943,23 +3945,6 @@ img { } } -.options-media-php br { - display: none; -} - -@media screen and (max-width: 375px) { - .options-media-php input[type="number"][name*="_size_"] { - margin: 5px 0; - } - .options-media-php label[for*="_size_h"]:before { - content: ''; - display: block; - } - .options-media-php br { - display: block; - } -} - @media screen and (max-width: 320px) { /* Prevent default center alignment and larger font for the Right Now widget when the network dashboard is viewed on a small mobile device. */ diff --git a/wp-admin/css/common-rtl.min.css b/wp-admin/css/common-rtl.min.css index 398c91d8c..c3a9bc477 100644 --- a/wp-admin/css/common-rtl.min.css +++ b/wp-admin/css/common-rtl.min.css @@ -1,9 +1,9 @@ /*! This file is auto-generated */ -.button.updated-message,a{transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out}#ajax-loading,.ajax-feedback,.ajax-loading,.imgedit-wait-spin,.list-ajax-loading,.spinner,.wp-header-end{visibility:hidden}.filter-group,.postbox-container .meta-box-sortables,.wp-filter,html.wp-toolbar{box-sizing:border-box}#docs-list,#plugin-information .section,#template textarea,.code,.ltr,code{direction:ltr}#wpwrap{height:auto;min-height:100%;width:100%;position:relative;-webkit-font-smoothing:subpixel-antialiased}#wpcontent{height:100%;padding-right:20px}#wpcontent,#wpfooter{margin-right:160px}.folded #wpcontent,.folded #wpfooter{margin-right:36px}#wpbody-content{padding-bottom:65px;float:right;width:100%;overflow:visible!important}.inner-sidebar{float:left;clear:left;display:none;width:281px;position:relative}.columns-2 .inner-sidebar{margin-left:auto;width:286px;display:block}.columns-2 .inner-sidebar #side-sortables,.inner-sidebar #side-sortables{min-height:300px;width:280px;padding:0}.has-right-sidebar .inner-sidebar{display:block}.has-right-sidebar #post-body{float:right;clear:right;width:100%;margin-left:-2000px}.has-right-sidebar #post-body-content{margin-left:300px;float:none;width:auto}#col-left{float:right;width:35%}#col-right{float:left;width:65%}#col-left .col-wrap{padding:0 0 0 6px}#col-right .col-wrap{padding:0 6px 0 0}.alignleft{float:right}.alignright{float:left}#publishing-action .spinner,#save-post,.subsubsub{float:right}.textleft{text-align:right}.textright{text-align:left}.clear{clear:both}.wp-clearfix:after{content:"";display:table;clear:both}.screen-reader-text,.screen-reader-text span,.ui-helper-hidden-accessible{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}#templateside,.misc-pub-filename,.pre,.widefat *{word-wrap:break-word}.screen-reader-shortcut{position:absolute;top:-1000em}.screen-reader-shortcut:focus{right:6px;top:-25px;height:auto;width:auto;display:block;font-size:14px;font-weight:600;padding:15px 23px 14px;background:#f1f1f1;color:#0073aa;z-index:100000;line-height:normal;box-shadow:0 0 2px 2px rgba(0,0,0,.6);text-decoration:none;outline:0}.hidden,.js .closed .inside,.js .hide-if-js,.js .wp-core-ui .hide-if-js,.js.wp-core-ui .hide-if-js,.no-js .hide-if-no-js,.no-js .wp-core-ui .hide-if-no-js,.no-js.wp-core-ui .hide-if-no-js{display:none}#menu-management .menu-edit,#menu-settings-column .accordion-container,.comment-ays,.feature-filter,.imgedit-group,.manage-menus,.menu-item-handle,.popular-tags,.stuffbox,.widget-inside,.widget-top,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04)}.comment-ays,.feature-filter,.imgedit-group,.popular-tags,.stuffbox,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{background:#fff}body,html{height:100%;margin:0;padding:0}body{background:#f1f1f1;color:#444;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:13px;line-height:1.4em;min-width:600px}body.iframe{min-width:0;padding-top:1px}body.modal-open{overflow:hidden}body.mobile.modal-open #wpwrap{overflow:hidden;position:fixed;height:100%}iframe,img{border:0}td{font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit}a{color:#0073aa}a,div{outline:0}a:active,a:hover{color:#00a0d2}.wp-person a:focus .gravatar,a:focus,a:focus .media-icon img{color:#124964;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}h1,h2,h3{color:#23282d}.ie8 a:focus{outline:#5b9dd9 solid 1px}#adminmenu a:focus,.screen-reader-text:focus{box-shadow:none;outline:0}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}p{font-size:13px;line-height:1.5;margin:1em 0}blockquote{margin:1em}dd,li{margin-bottom:6px}h1,h2,h3,h4,h5,h6{display:block;font-weight:600}h1{font-size:2em;margin:.67em 0}h2,h3{font-size:1.3em;margin:1em 0}.update-core-php h2{margin-top:2em}.update-messages h2,.update-php h2,h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}ol,ul{padding:0}ul{list-style:none}ol{list-style-type:decimal;margin-right:2em}ul.ul-disc{list-style:disc}ul.ul-square{list-style:square}ol.ol-decimal{list-style:decimal}ol.ol-decimal,ul.ul-disc,ul.ul-square{margin-right:1.8em}ol.ol-decimal>li,ul.ul-disc>li,ul.ul-square>li{margin:0 0 .5em}.code,code{font-family:Consolas,Monaco,monospace;unicode-bidi:embed}code,kbd{padding:3px 5px 2px;margin:0 1px;background:#eaeaea;background:rgba(0,0,0,.07);font-size:13px}.subsubsub{list-style:none;margin:8px 0 0;padding:0;font-size:13px;color:#666}.subsubsub a{line-height:2;padding:.2em;text-decoration:none}.subsubsub a .count,.subsubsub a.current .count{color:#555d66;font-weight:400}.subsubsub a.current{font-weight:600;border:none}.subsubsub li{display:inline-block;margin:0;padding:0;white-space:nowrap}.widefat{border-spacing:0;width:100%;clear:both;margin:0}.widefat a,.widefat button.button-link{text-decoration:none}.widefat td,.widefat th{padding:8px 10px}.widefat thead td,.widefat thead th{border-bottom:1px solid #e1e1e1}.widefat tfoot td,.widefat tfoot th{border-top:1px solid #e1e1e1;border-bottom:none}.widefat .no-items td{border-bottom-width:0}.widefat td{vertical-align:top}.widefat td,.widefat td ol,.widefat td p,.widefat td ul{font-size:13px;line-height:1.5em}.widefat tfoot td,.widefat th,.widefat thead td{text-align:right;line-height:1.3em;font-size:14px}.updates-table td input,.widefat tfoot td input,.widefat th input,.widefat thead td input{margin:0 8px 0 0;padding:0;vertical-align:text-top}.widefat .check-column{width:2.2em;padding:6px 0 25px;vertical-align:top}.updates-table tbody td.check-column,.widefat tbody th.check-column,.widefat tfoot td.check-column,.widefat thead td.check-column{padding:11px 3px 0 0}.widefat tfoot td.check-column,.widefat thead td.check-column{padding-top:4px;vertical-align:middle}.update-php div.error,.update-php div.updated{margin-right:0}.no-js .widefat tfoot .check-column input,.no-js .widefat thead .check-column input{display:none}.column-comments,.column-links,.column-posts,.widefat .num{text-align:center}.widefat th#comments{vertical-align:middle}.wrap{margin:10px 2px 0 20px}.postbox .inside h2,.wrap [class$=icon32]+h2,.wrap h1,.wrap>h2:first-child{font-size:23px;font-weight:400;margin:0;padding:9px 0 4px;line-height:29px}.wrap h1.wp-heading-inline{display:inline-block;margin-left:5px}.wp-header-end{margin:-2px 0 0}.subtitle{margin:0;padding-right:25px;color:#555d66;font-size:14px;font-weight:400;line-height:1}.wrap .add-new-h2,.wrap .add-new-h2:active,.wrap .page-title-action,.wrap .page-title-action:active{margin-right:4px;padding:4px 8px;position:relative;top:-3px;text-decoration:none;border:none;border:1px solid #ccc;border-radius:2px;background:#f7f7f7;text-shadow:none;font-weight:600;font-size:13px;line-height:normal;color:#0073aa;cursor:pointer;outline:0}.wrap .wp-heading-inline+.page-title-action{margin-right:0}.wrap .add-new-h2:hover,.wrap .page-title-action:hover{border-color:#008EC2;background:#00a0d2;color:#fff}.page-title-action:focus{color:#124964}.ac_match,.highlight,.subsubsub a.current{color:#000}.wrap .page-title-action:focus{border-color:#5b9dd9;box-shadow:0 0 2px rgba(30,140,190,.8)}.wrap h1.long-header{padding-left:0}.wp-dialog{background-color:#fff}#available-widgets .widget-top:hover,#widgets-left .widget-in-question .widget-top,#widgets-left .widget-top:hover,.widgets-chooser ul,div#widgets-right .widget-top:hover{border-color:#999;box-shadow:0 1px 2px rgba(0,0,0,.1)}.sorthelper{background-color:#ccf3fa}.alternate,.striped>tbody>:nth-child(odd),ul.striped>:nth-child(odd){background-color:#f9f9f9}.bar{background-color:#e8e8e8;border-left-color:#99d}.highlight{background-color:#e4f2fd}.wp-ui-primary{color:#fff;background-color:#32373c}.wp-ui-text-primary{color:#32373c}.wp-ui-highlight{color:#fff;background-color:#1e8cbe}.wp-ui-text-highlight{color:#1e8cbe}.wp-ui-notification{color:#fff;background-color:#d54e21}.wp-ui-text-notification{color:#d54e21}.wp-ui-text-icon{color:#82878c}img.emoji{display:inline!important;border:none!important;height:1em!important;width:1em!important;margin:0 .07em!important;vertical-align:-.1em!important;background:0 0!important;padding:0!important;box-shadow:none!important}#nav-menu-footer,#nav-menu-header,#your-profile #rich_editing,.checkbox,.control-section .accordion-section-title,.menu-item-handle,.postbox .hndle,.side-info,.sidebar-name,.stuffbox .hndle,.widefat tfoot td,.widefat tfoot th,.widefat thead td,.widefat thead th,.widget .widget-top{line-height:1.4em}.menu-item-handle,.widget .widget-top{background:#fafafa;color:#23282d}.postbox .hndle,.stuffbox .hndle{border-bottom:1px solid #eee;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.quicktags,.search{background-color:#ccc;color:#000;font-size:12px}.icon32{display:none}#bulk-titles div a:before,.notice-dismiss:before,.tagchecklist .ntdelbutton .remove-tag-icon:before,.welcome-panel .welcome-panel-close:before{background:0 0;color:#72777c;content:"\f153";display:block;font:400 16px/20px dashicons;speak:none;height:20px;text-align:center;width:20px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.welcome-panel .welcome-panel-close:before{margin:0}#bulk-titles div a:before{margin:1px 0}.tagchecklist .ntdelbutton .remove-tag-icon:before{margin-right:2px;border-radius:50%;color:#0073aa;line-height:1.28}.tagchecklist .ntdelbutton:focus{outline:0}#bulk-titles div a:focus:before,#bulk-titles div a:hover:before,.tagchecklist .ntdelbutton:focus .remove-tag-icon:before,.tagchecklist .ntdelbutton:hover .remove-tag-icon:before,.welcome-panel .welcome-panel-close:focus:before,.welcome-panel .welcome-panel-close:hover:before{color:#c00}.tagchecklist .ntdelbutton:focus .remove-tag-icon:before{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.key-labels label{line-height:24px}b,strong{font-weight:600}.pre{white-space:pre-wrap}#namediv td.first,.nav-tab,.no-break,.star-rating{white-space:nowrap}.howto{color:#666;font-style:italic;display:block}p.install-help{margin:8px 0;font-style:italic}hr{border:0;border-top:1px solid #ddd;border-bottom:1px solid #fafafa}#all-plugins-table .plugins a.delete,#delete-link a.delete,#media-items a.delete,#media-items a.delete-permanently,#nav-menu-footer .menu-delete,#search-plugins-table .plugins a.delete,.plugins a.delete,.row-actions span.delete a,.row-actions span.spam a,.row-actions span.trash a,.submitbox .submitdelete{color:#a00}#all-plugins-table .plugins a.delete:hover,#delete-link a.delete:hover,#media-items a.delete-permanently:hover,#media-items a.delete:hover,#nav-menu-footer .menu-delete:hover,#search-plugins-table .plugins a.delete:hover,.file-error,.plugins a.delete:hover,.row-actions .delete a:hover,.row-actions .spam a:hover,.row-actions .trash a:hover,.submitbox .submitdelete:hover,abbr.required,span.required{color:#dc3232;border:none}#major-publishing-actions{padding:10px;clear:both;border-top:1px solid #ddd;background:#f5f5f5}#delete-action{float:right;line-height:28px}#delete-link{line-height:28px;vertical-align:middle;text-align:right;margin-right:8px}#delete-link a{text-decoration:none}#publishing-action{text-align:left;float:left;line-height:23px}#misc-publishing-actions{padding:6px 0 0}.misc-pub-section{padding:6px 10px 8px}#minor-publishing-actions{padding:10px 10px 0;text-align:left}.preview{float:left}#sticky-span{margin-right:18px}.approve,.unapproved .unapprove{display:none}.spam .approve,.trash .approve,.unapproved .approve{display:inline}td.action-links,th.action-links{text-align:left}#misc-publishing-actions .notice{margin-right:10px;margin-left:10px}.wp-filter{display:inline-block;position:relative;margin:12px 0 25px;padding:0 10px;width:100%;box-shadow:0 1px 1px rgba(0,0,0,.04);border:1px solid #e5e5e5;background:#fff;color:#555;font-size:13px}.wp-filter a{text-decoration:none}.filter-count{display:inline-block;vertical-align:middle;min-width:4em}.filter-count .count,.title-count{display:inline-block;position:relative;top:-1px;padding:4px 10px;border-radius:30px;background:#72777c;color:#fff;font-size:14px;font-weight:600}.title-count{display:inline;top:-3px;margin-right:5px;margin-left:20px}.filter-links li>a,.wp-filter .search-form.search-plugins{display:inline-block}.filter-items{float:right}.filter-links,.filter-links li{display:inline-block;margin:0}.filter-links li>a{margin:0 10px;padding:15px 0;border-bottom:4px solid #fff;color:#666;cursor:pointer}.filter-links .current{box-shadow:none;border-bottom:4px solid #666;color:#23282d}.filter-links li>a:focus,.filter-links li>a:hover,.show-filters .filter-links a.current:focus,.show-filters .filter-links a.current:hover{color:#00a0d2}.wp-filter .search-form{float:left;margin:10px 0}.wp-filter .search-form input[type=search]{margin:0;padding:3px 5px;width:280px;max-width:100%;font-size:16px;font-weight:300;line-height:1.5}.wp-filter .search-form select{margin:0;height:32px;vertical-align:top}.wp-filter .button.drawer-toggle{margin:10px 9px 0;padding:0 6px 0 10px;border-color:transparent;background-color:transparent;color:#666;vertical-align:baseline;box-shadow:none}.wp-filter .drawer-toggle:before{content:"\f111";margin:0 0 0 5px;color:#72777c;font:400 16px/1 dashicons;vertical-align:text-bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-filter .button.drawer-toggle:focus,.wp-filter .button.drawer-toggle:hover,.wp-filter .drawer-toggle:focus:before,.wp-filter .drawer-toggle:hover:before{background-color:transparent;color:#00a0d2}.wp-filter .button.drawer-toggle:focus:active,.wp-filter .button.drawer-toggle:hover{border-color:transparent}.wp-filter .button.drawer-toggle:focus{border-color:#5b9dd9}.wp-filter .button.drawer-toggle:active{background:0 0;box-shadow:none;-webkit-transform:none;transform:none}.wp-filter .drawer-toggle.current:before{color:#fff}.filter-drawer,.wp-filter .favorites-form{display:none;margin:0 -20px 0 -10px;padding:20px;border-top:1px solid #eee;background:#fafafa;overflow:hidden}.show-favorites-form .favorites-form,.show-filters .filter-drawer{display:block}.show-filters .filter-links a.current{border-bottom:none}.show-filters .wp-filter .button.drawer-toggle{border-radius:2px;background:#72777c;color:#fff}.filter-group,.filtered-by .tag{border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04)}.show-filters .wp-filter .drawer-toggle:focus,.show-filters .wp-filter .drawer-toggle:hover{background:#2ea2cc}.show-filters .wp-filter .drawer-toggle:before{color:#fff}.filter-group{position:relative;float:right;margin:0 0 0 1%;padding:20px 10px 10px;width:24%;background:#fff}.filter-group legend{position:absolute;top:10px;display:block;margin:0;padding:0;font-size:1em;font-weight:600}.filter-drawer .filter-group-feature{margin:28px 0 0;list-style-type:none;font-size:12px}.filter-drawer .filter-group-feature input,.filter-drawer .filter-group-feature label{line-height:16px}.filter-drawer .filter-group-feature input{position:absolute;margin:0}.filter-group .filter-group-feature label{display:block;margin:14px 23px 14px 0}.filter-drawer .buttons{clear:both;margin-bottom:20px}.filter-drawer .filter-group+.buttons{margin-bottom:0;padding-top:20px}.filter-drawer .buttons .button span{display:inline-block;opacity:.8;font-size:12px;text-indent:10px}.wp-filter .button.clear-filters{display:none;margin-right:10px}.wp-filter .button-link.edit-filters{padding:0 5px;line-height:28px}.filtered-by{display:none;margin:0}.filtered-by>span{font-weight:600}.filtered-by a{margin-right:10px}.filtered-by .tags{display:inline}.filtered-by .tag{margin:0 5px;padding:4px 8px;background:#fff;font-size:11px}.filters-applied .filter-drawer .buttons,.filters-applied .filter-drawer br,.filters-applied .filter-group{display:none!important}.filters-applied .filtered-by{display:block}.filters-applied .filter-drawer{padding:20px}.error .content-filterable,.loading-content .content-filterable,.show-filters .content-filterable,.show-filters .favorites-form,.show-filters.filters-applied.loading-content .content-filterable{display:none}.show-filters.filters-applied .content-filterable{display:block}.loading-content .spinner{display:block;margin:40px auto 0;float:none}@media only screen and (max-width:1120px){.filter-drawer{border-bottom:1px solid #eee}.filter-group{margin-bottom:0;margin-top:5px;width:100%}.filter-group li{margin:10px 0}}@media only screen and (max-width:1000px){.filter-items{float:none}.wp-filter .media-toolbar-primary,.wp-filter .media-toolbar-secondary,.wp-filter .search-form{float:none;position:relative;max-width:100%}}@media only screen and (max-width:782px){.filter-group li{padding:0;width:50%}}@media only screen and (max-width:320px){.filter-count{display:none}.wp-filter .drawer-toggle{margin:10px 0}.filter-group li,.wp-filter .search-form input[type=search]{width:100%}}.notice,div.error,div.updated{background:#fff;border-right:4px solid #fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:5px 15px 2px;padding:1px 12px}div[class=update-message]{padding:.5em 0 .5em 12px}.form-table td .notice p,.notice p,.notice-title,div.error p,div.updated p{margin:.5em 0;padding:2px}.error a{text-decoration:underline}.updated a{padding-bottom:2px}.notice-alt{box-shadow:none}.notice-large{padding:10px 20px}.notice-title{display:inline-block;color:#23282d;font-size:18px}.wp-core-ui .notice.is-dismissible{padding-left:38px;position:relative}.notice-dismiss{position:absolute;top:0;left:1px;border:none;margin:0;padding:9px;background:0 0;color:#72777c;cursor:pointer}.notice-dismiss:active:before,.notice-dismiss:focus:before,.notice-dismiss:hover:before{color:#c00}.notice-dismiss:focus{outline:0;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ie8 .notice-dismiss:focus{outline:#5b9dd9 solid 1px}.notice-success,div.updated{border-right-color:#46b450}.notice-success.notice-alt{background-color:#ecf7ed}.notice-warning{border-right-color:#ffb900}.notice-warning.notice-alt{background-color:#fff8e5}.notice-error,div.error{border-right-color:#dc3232}.notice-error.notice-alt{background-color:#fbeaea}.notice-info{border-right-color:#00a0d2}.notice-info.notice-alt{background-color:#e5f5fa}.button.installed:before,.button.installing:before,.button.updated-message:before,.button.updating-message:before,.import-php .updating-message:before,.update-message p:before,.updated-message p:before,.updating-message p:before{display:inline-block;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.media-upload-form .notice,.media-upload-form div.error,.wrap .notice,.wrap div.error,.wrap div.updated{margin:5px 0 15px}.wrap #templateside .notice{display:block;margin:0;padding:5px 8px;font-weight:600;text-decoration:none}.wrap #templateside span.notice{margin-right:-12px}#templateside li.notice a{padding:0}.button.installing:before,.button.updating-message:before,.import-php .updating-message:before,.update-message p:before,.updating-message p:before{color:#f56e28;content:"\f463"}.button.installing:before,.button.updating-message:before,.import-php .updating-message:before,.updating-message p:before{-webkit-animation:rotation 2s infinite linear;animation:rotation 2s infinite linear}.button.updated-message:before,.installed p:before,.updated-message p:before{color:#79ba49;content:'\f147'}.update-message.notice-error p:before{color:#dc3232;content:"\f534"}.import-php .updating-message:before,.wrap .notice p:before{margin-left:6px;vertical-align:bottom}#update-nag,.update-nag{display:inline-block;line-height:19px;padding:11px 15px;font-size:14px;text-align:right;margin:25px 2px 0 20px;background-color:#fff;border-right:4px solid #ffba00;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}#screen-meta,ul#dismissed-updates{display:none}form.upgrade{margin-top:8px}form.upgrade .hint{font-style:italic;font-size:85%;margin:-.5em 0 2em}.update-php .spinner{float:none;margin:-4px 0}#ajax-response.alignleft{margin-right:2em}.button.installed:before,.button.installing:before,.button.updated-message:before,.button.updating-message:before{margin:3px -2px 0 5px}.button-primary.updating-message:before{color:#fff}.button-primary.updated-message:before{color:#66c6e4}@media aural{.button.installed:before,.button.installing:before,.update-message p:before,.wrap .notice p:before{speak:none}}#adminmenu a,#catlist a,#taglist a{text-decoration:none}#contextual-help-wrap,#screen-options-wrap{margin:0;padding:8px 20px 12px;position:relative}#contextual-help-wrap{overflow:auto;margin-right:0!important}#screen-meta-links{margin:0 0 0 20px}#screen-meta{margin:0 0 -1px 20px;position:relative;background-color:#fff;border:1px solid #ddd;border-top:none;box-shadow:0 1px 0 rgba(0,0,0,.025)}#contextual-help-link-wrap,#screen-options-link-wrap{float:left;height:28px;margin:0 6px 0 0;border:1px solid #ddd;border-top:none;background:#fff;box-shadow:0 1px 1px -1px rgba(0,0,0,.1)}#screen-meta-links .screen-meta-toggle{position:relative;top:0}#screen-meta-links .show-settings{border:0;background:0 0;border-radius:0;color:#72777c;line-height:1.7;padding:3px 16px 3px 6px}#screen-meta-links .show-settings:active,#screen-meta-links .show-settings:focus,#screen-meta-links .show-settings:hover{color:#32373c}#screen-meta-links .show-settings:active{box-shadow:none;-webkit-transform:none;transform:none}#screen-meta-links .show-settings:after{left:0;content:"\f140";font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 0 0 5px;bottom:2px;position:relative;vertical-align:bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#72777c}#templateside ul li a,.contextual-help-tabs a,.nav-tab{text-decoration:none}#screen-meta-links .screen-meta-active:after{content:"\f142"}.toggle-arrow{background-repeat:no-repeat;background-position:top right;background-color:transparent;height:22px;line-height:22px;display:block}.toggle-arrow-active{background-position:bottom right}#contextual-help-wrap h5,#screen-options-wrap h5,#screen-options-wrap legend{margin:0;padding:8px 0;font-size:13px;font-weight:600}.hndle a,.widefat tfoot td,.widefat th,.widefat thead td{font-weight:400}.ie8 #screen-options-wrap legend{color:inherit}.metabox-prefs label{display:inline-block;padding-left:15px;line-height:30px}#number-of-columns{display:inline-block;vertical-align:middle;line-height:30px}.metabox-prefs input[type=checkbox]{margin-top:0;margin-left:6px}.metabox-prefs label input,.metabox-prefs label input[type=checkbox]{margin:-4px 0 0 5px}.metabox-prefs .columns-prefs label input{margin:-1px 0 0 2px}.metabox-prefs label a{display:none}.metabox-prefs .screen-options input,.metabox-prefs .screen-options label{margin-top:0;margin-bottom:0;vertical-align:middle}.metabox-prefs .screen-options .screen-per-page{margin-left:15px}.metabox-prefs .screen-options label{line-height:28px;padding-left:0}.screen-options+.screen-options{margin-top:10px}.metabox-prefs .submit{margin-top:1em;padding:0}#contextual-help-wrap{padding:0}#contextual-help-columns{position:relative}#contextual-help-back{position:absolute;top:0;bottom:0;right:150px;left:170px;border:1px solid #e1e1e1;border-top:none;border-bottom:none;background:#f6fbfd}#contextual-help-wrap.no-sidebar #contextual-help-back{left:0;border-left-width:0;border-bottom-left-radius:2px}.contextual-help-tabs{float:right;width:150px;margin:0}.contextual-help-tabs ul{margin:1em 0}.contextual-help-tabs li{margin-bottom:0;list-style-type:none;border-style:solid;border-width:0 2px 0 0;border-color:transparent}.contextual-help-tabs a{display:block;padding:5px 12px 5px 5px;line-height:18px;border:1px solid transparent;border-left:none;border-right:none}.contextual-help-tabs a:hover{color:#32373c}.contextual-help-tabs .active{padding:0;margin:0 0 0 -1px;border-right:2px solid #00a0d2;background:#f6fbfd;box-shadow:0 2px 0 rgba(0,0,0,.02),0 1px 0 rgba(0,0,0,.02)}.contextual-help-tabs .active a{border-color:#e1e1e1;color:#32373c}.contextual-help-tabs-wrap{padding:0 20px;overflow:auto}.help-tab-content{display:none;margin:0 0 12px 22px;line-height:1.6em}.help-tab-content.active{display:block}.help-tab-content ul li{list-style-type:disc;margin-right:18px}.contextual-help-sidebar{width:150px;float:left;padding:0 12px 0 8px;overflow:auto}html.wp-toolbar{padding-top:32px}.widefat td,.widefat th{color:#555}.widefat ol,.widefat p,.widefat tfoot tr td,.widefat tfoot tr th,.widefat thead tr td,.widefat thead tr th,.widefat ul{color:#32373c}.widefat td p{margin:2px 0 .8em}.widefat .column-comment p{margin:.6em 0}.widefat .column-comment ul{list-style:outside;margin-right:2em}.postbox-container{float:right}#wpbody-content .metabox-holder{padding-top:10px}.metabox-holder .postbox-container .empty-container{border:3px dashed #b4b9be;height:250px;position:relative}.metabox-holder .postbox-container .empty-container:after{content:attr(data-emptystring);margin:auto;position:absolute;top:0;right:0;bottom:0;left:0;height:1em;width:200px;text-align:center;color:#ccc;font-size:18px;display:none}.columns-2 #postbox-container-3 .empty-container,.columns-2 #postbox-container-4 .empty-container,.columns-3 #postbox-container-4 .empty-container,.metabox-holder.columns-1 .postbox-container .empty-container{border:0;height:0;min-height:0}#post-body-content{width:100%;min-width:463px;float:right}#post-body.columns-2 #postbox-container-1{float:left;margin-left:-300px;width:280px}#post-body.columns-2 #side-sortables{min-height:250px}@media only screen and (max-width:799px){#wpbody-content .metabox-holder .postbox-container .empty-container{border:0;height:0;min-height:0}}.js .postbox .hndle,.js .widget .widget-top{cursor:move}.hndle a{font-size:11px}#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:hover,#dashboard_right_now .versions .b,#ed_reply_toolbar #ed_reply_strong,#pass-strength-result.short,#pass-strength-result.strong,#post-status-display,#post-visibility-display,.feature-filter .feature-name,.item-controls .item-order a,.media-item .percent,.nav-tab,.plugins .name{font-weight:600}.postbox .handlediv{display:none;float:left;width:36px;height:36px;margin:0;padding:0;border:0;background:0 0;cursor:pointer}.js .postbox .handlediv{display:block}.sortable-placeholder{border:1px dashed #b4b9be;margin-bottom:20px}.postbox,.stuffbox{margin-bottom:20px;padding:0;line-height:1}.postbox .inside,.stuffbox .inside{padding:0 12px 12px;line-height:1.4em;font-size:13px}.postbox .inside{margin:11px 0;position:relative}.postbox .inside>p:last-child,.rss-widget ul li:last-child{margin-bottom:1px!important}.postbox.closed h3{border:none;box-shadow:none}.postbox table.form-table{margin-bottom:0}.postbox table.widefat{box-shadow:none}.temp-border{border:1px dotted #ccc}.columns-prefs label{padding:0 0 0 10px}#wpfooter{position:absolute;bottom:0;right:0;left:0;padding:10px 20px;color:#555d66}#wpfooter p{font-size:13px;margin:0;line-height:20px}#footer-thankyou{font-style:italic}.nav-tab{float:right;border:1px solid #ccc;border-bottom:none;margin-right:.5em;padding:5px 10px;font-size:14px;line-height:24px;background:#e5e5e5;color:#555}.nav-tab-small .nav-tab,h3 .nav-tab{padding:5px 14px;font-size:12px;line-height:16px}.nav-tab:focus,.nav-tab:hover{background-color:#fff;color:#444}.nav-tab-active,.nav-tab:focus:active{box-shadow:none}.nav-tab-active{margin-bottom:-1px;color:#444}.nav-tab-active,.nav-tab-active:focus,.nav-tab-active:focus:active,.nav-tab-active:hover{border-bottom:1px solid #f1f1f1;background:#f1f1f1;color:#000}.nav-tab-wrapper,.wrap h2.nav-tab-wrapper,h1.nav-tab-wrapper{border-bottom:1px solid #ccc;margin:0;padding-top:9px;padding-bottom:0;line-height:inherit}.nav-tab-wrapper:not(.wp-clearfix):after{content:"";display:table;clear:both}.ie8 .nav-tab-wrapper{display:inline-block;width:100%;vertical-align:top}.spinner{background:url(../images/spinner.gif) no-repeat;background-size:20px 20px;display:inline-block;float:left;vertical-align:middle;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:4px 10px 0}.loading-content .spinner,.spinner.is-active{visibility:visible}#template>div{margin-left:16em}#template .notice{margin-top:1em;margin-left:3%}#template .notice p{width:auto}#template .submit .spinner{float:none}.metabox-holder .postbox>h3,.metabox-holder .stuffbox>h3,.metabox-holder h2.hndle,.metabox-holder h3.hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.nav-menus-php .metabox-holder h3{padding:10px 14px 11px 10px;line-height:21px}.plugin-install #description,.plugin-install-network #description{width:60%}table .column-rating,table .column-visible,table .vers{text-align:right}.attention,.error-message{color:#dc3232;font-weight:600}body.iframe{height:98%}.lp-show-latest p{display:none}#howto,.importer-action,.importer-desc,.importer-title{display:block}.lp-show-latest .lp-error p,.lp-show-latest p:last-child{display:block}.media-icon{width:62px;text-align:center}.media-icon img{border:1px solid #e5e5e5;border:1px solid rgba(0,0,0,.07)}#howto{font-size:11px;margin:0 5px}.importers{font-size:16px;width:auto}.importers td{padding-left:14px;line-height:1.5em}.importers .import-system{max-width:250px}.importers td.desc{max-width:500px}.post-categories,.post-categories li{display:inline}.importer-title{color:#000;font-size:14px;font-weight:400;margin-bottom:.2em}.importer-action{line-height:20px;color:#555;margin-bottom:1em}#post-body #post-body-content #namediv h2,#post-body #post-body-content #namediv h3{margin-top:0}.edit-comment-author{font-size:14px;line-height:1.4;font-weight:600;color:#222;margin:2px 9px 0 0}#namediv h2 label,#namediv h3 label{vertical-align:baseline}#namediv table{width:100%}#namediv td.first{width:10px}#namediv input{width:98%}#namediv p{margin:10px 0}#submitdiv h3{margin-bottom:0!important}.checkbox,.post-categories,.zerosize,fieldset{margin:0;padding:0}.zerosize{height:0;width:0;border:0;overflow:hidden;position:absolute}br.clear{height:2px;line-height:2px}.checkbox{border:none}fieldset{border:0}div.star-holder{position:relative;height:17px;width:100px;background:url(../images/stars.png?ver=20121108) bottom left repeat-x}div.star-holder .star-rating{background:url(../images/stars.png?ver=20121108) top left repeat-x;height:17px;float:right}.star-rating .star{display:inline-block;width:20px;height:20px;-webkit-font-smoothing:antialiased;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;vertical-align:top;transition:color .1s ease-in 0;text-align:center;color:#ffb900}.star-rating .star-full:before{content:"\f155"}.star-rating .star-half:before{content:"\f459"}.rtl .star-rating .star-half{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}.star-rating .star-empty:before{content:"\f154"}div.action-links{font-weight:400;margin:6px 0 0}#plugin-information{background:#fff;position:fixed;top:0;left:0;bottom:0;right:0;height:100%;padding:0}#plugin-information-scrollable{overflow:auto;-webkit-overflow-scrolling:touch;height:100%}#plugin-information-title{padding:0 26px;background:#f5f5f5;font-size:22px;font-weight:600;line-height:56px;position:relative;height:56px}#plugin-information-title.with-banner{margin-left:0;height:250px;background-size:cover}#plugin-information-title h2{font-size:1em;font-weight:600;padding:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#plugin-information-title.with-banner h2{position:relative;font-family:"Helvetica Neue",sans-serif;display:inline-block;font-size:30px;line-height:50px;box-sizing:border-box;max-width:100%;padding:0 15px;margin-top:174px;color:#fff;background:rgba(30,30,30,.9);text-shadow:0 1px 3px rgba(0,0,0,.4);box-shadow:0 0 30px rgba(255,255,255,.1);border-radius:8px}#plugin-information-title div.vignette{display:none}#plugin-information-title.with-banner div.vignette{position:absolute;display:block;top:0;right:0;height:250px;width:100%;background:0 0;box-shadow:inset 0 0 50px 4px rgba(0,0,0,.2),inset 0 -1px 0 rgba(0,0,0,.1)}#plugin-information-tabs{padding:0 16px;position:relative;left:0;right:0;min-height:36px;font-size:0;z-index:1;border-bottom:1px solid #ddd;background:#f3f3f3}#plugin-information-tabs a{position:relative;display:inline-block;padding:9px 10px;margin:0;height:18px;line-height:18px;font-size:14px;text-decoration:none;transition:none}#plugin-information-tabs a.current{margin:0 -1px -1px;background:#fff;border:1px solid #ddd;border-bottom-color:#fff;padding-top:8px;color:#32373c}#plugin-information-tabs.with-banner a.current{border-top:none;padding-top:9px}#plugin-information-tabs a:active,#plugin-information-tabs a:focus{outline:0}#plugin-information-content{overflow:hidden;background:#fff;position:relative;top:0;left:0;right:0;min-height:100%;min-height:calc(100% - 152px)}#plugin-information-content.with-banner{min-height:calc(100% - 346px)}#section-holder{position:relative;top:0;left:250px;bottom:0;right:0;margin-left:250px;padding:10px 26px 99999px;margin-bottom:-99939px}#section-holder .updated{margin:16px 0}#plugin-information .fyi{float:left;position:relative;top:0;left:0;padding:16px 16px 99999px;margin-bottom:-99939px;width:217px;border-right:1px solid #ddd;background:#f3f3f3;color:#666}#plugin-information .fyi strong{color:#444}#plugin-information .fyi h3{font-weight:600;text-transform:uppercase;font-size:12px;color:#666;margin:24px 0 8px}#plugin-information .fyi h2{font-size:.9em;margin-bottom:0;margin-left:0}#plugin-information .fyi ul{padding:0;margin:0;list-style:none}#plugin-information .fyi li{margin:0 0 10px}#plugin-information .fyi-description{margin-top:0}#plugin-information .counter-container{margin:3px 0}#plugin-information .counter-label{float:right;margin-left:5px;min-width:55px}#plugin-information .counter-back{height:17px;width:92px;background-color:#e5e5e5;float:right}#plugin-information .counter-bar{height:17px;background-color:#ffc733;float:right}#plugin-information .counter-count{margin-right:5px}#plugin-information .fyi ul.contributors{margin-top:10px}#plugin-information .fyi ul.contributors li{display:inline-block;margin-left:8px;vertical-align:middle}#plugin-information .fyi ul.contributors li img{vertical-align:middle;margin-left:4px}#plugin-information-footer{padding:13px 16px;position:absolute;left:0;bottom:0;right:0;height:33px;border-top:1px solid #ddd;background:#f3f3f3}#plugin-information .section ol,#plugin-information .section ul{list-style-type:disc;margin-left:24px}#plugin-information .section,#plugin-information .section p{font-size:14px;line-height:1.7}#plugin-information #section-screenshots ol{list-style:none;margin:0}#plugin-information #section-screenshots li img{vertical-align:text-top;margin-top:16px;max-width:100%;width:auto;height:auto;box-shadow:0 1px 2px rgba(0,0,0,.3)}#plugin-information #section-screenshots li p{font-style:italic;padding-left:20px}#plugin-information pre{padding:7px;overflow:auto;border:1px solid #ccc}#plugin-information blockquote{border-right:2px solid #ddd;color:#666;font-style:italic;margin:1em 0;padding:0 1em 0 0}#plugin-information .review{overflow:hidden;width:100%;margin-bottom:20px;border-bottom:1px solid #e5e5e5}#plugin-information .review-title-section{overflow:hidden}#plugin-information .review-title-section h4{display:inline-block;float:left;margin:0 6px 0 0}#plugin-information .reviewer-info p{clear:both;margin:0;padding-top:2px}#plugin-information .reviewer-info .avatar{float:left;margin:4px 6px 0 0}#plugin-information .reviewer-info .star-rating{float:left}#plugin-information .review-meta{float:left;margin-left:.75em}#plugin-information .review-body{float:left;width:100%}.plugin-version-author-uri{font-size:13px}.update-php .button.button-primary{margin-left:1em}@media screen and (max-width:771px){#plugin-information-title.with-banner,#plugin-information-title.with-banner div.vignette{height:100px}#plugin-information-title.with-banner h2{margin-top:30px;font-size:20px;line-height:40px;max-width:85%}#plugin-information-tabs{overflow:hidden;padding:0;height:auto}#plugin-information-tabs a.current{margin-bottom:0;border-bottom:none}#plugin-information .fyi{float:none;border:1px solid #ddd;position:static;width:auto;margin:26px 26px 0;padding-bottom:0}#section-holder{position:static;margin:0;padding-bottom:70px}#plugin-information .fyi h3,#plugin-information .fyi small{display:none}#plugin-information-footer{padding:12px 16px 0;height:46px}}#TB_window.plugin-details-modal{background:#fcfcfc}#TB_window.plugin-details-modal.thickbox-loading:before{content:"";display:block;width:20px;height:20px;position:absolute;right:50%;top:50%;z-index:-1;margin:-10px -10px 0 0;background:url(../images/spinner.gif) center no-repeat #fcfcfc;background-size:20px 20px;-webkit-transform:translateZ(0);transform:translateZ(0)}.plugin-details-modal #TB_ajaxWindowTitle,.plugin-details-modal .tb-close-icon{display:none}.tree-folder,[role=treeitem] li{position:relative}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#TB_window.plugin-details-modal.thickbox-loading:before{background-image:url(../images/spinner-2x.gif)}}.plugin-details-modal #TB_title{float:right;height:1px}.plugin-details-modal #TB_closeWindowButton{right:auto;left:-30px;color:#eee}.plugin-details-modal #TB_closeWindowButton:focus,.plugin-details-modal #TB_closeWindowButton:hover{color:#00a0d2;outline:0;box-shadow:none}.plugin-details-modal #TB_closeWindowButton:after{content:"\f335";font:400 32px/29px dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media screen and (max-width:830px){.plugin-details-modal #TB_closeWindowButton{left:0;top:-30px}}img{border:none}.bulk-action-notice .toggle-indicator:before,.js .meta-box-sortables .postbox .toggle-indicator:before,.sidebar-name .toggle-indicator:before{content:"\f142";display:inline-block;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.bulk-action-notice .bulk-action-errors-collapsed .toggle-indicator:before,.js .meta-box-sortables .postbox.closed .handlediv .toggle-indicator:before,.js .widgets-holder-wrap.closed .toggle-indicator:before{content:"\f140"}.js .postbox .handlediv .toggle-indicator:before{margin-top:4px;width:20px;border-radius:50%;text-indent:-1px}#template .CodeMirror,#template textarea,#templateside>ul{box-sizing:border-box;min-height:60vh;height:calc(100vh - 295px);border:1px solid #ddd}.rtl.js .postbox .handlediv .toggle-indicator:before{text-indent:1px}.bulk-action-notice .toggle-indicator:before{line-height:16px;vertical-align:top;color:#72777c}.js .postbox .handlediv:focus{box-shadow:none;outline:0}.js .postbox .handlediv:focus .toggle-indicator:before{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#photo-add-url-div input[type=text]{width:300px}.alignleft h2{margin:0}#template textarea{font-family:Consolas,Monaco,monospace;font-size:13px;background:#f9f9f9;-moz-tab-size:4;-o-tab-size:4;tab-size:4}#template .CodeMirror,#template textarea{width:100%}#templateside>h2{padding-top:6px;padding-bottom:7px;margin:0}#templateside ol,#templateside ul{margin:0;padding:0}#templateside>ul{margin-top:0;overflow:auto;padding:0;background-color:#f7f7f7;border-right:none}#templateside ul ul{padding-right:12px}#templateside>ul>li>ul[role=group]{padding-right:0}[role=treeitem][aria-expanded=false]>ul{display:none}[role=treeitem] span[aria-hidden]{display:inline;font-family:dashicons;font-size:20px;position:absolute;pointer-events:none}[role=treeitem][aria-expanded=false]>.folder-label .icon:after{content:"\f141"}[role=treeitem][aria-expanded=true]>.folder-label .icon:after{content:"\f140"}[role=treeitem] .folder-label{display:block;padding:3px 12px 3px 3px;cursor:pointer}[role=treeitem]{outline:0}[role=treeitem] .folder-label.focus{color:#124964;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}[role=treeitem] .folder-label.hover,[role=treeitem].hover{background-color:#eaeaea}.tree-folder{margin:0}.tree-folder .tree-folder::after{content:' ';display:block;position:absolute;right:2px;border-right:1px solid #ccc;top:-13px;bottom:10px}.tree-folder>li::before{content:' ';position:absolute;display:block;border-right:1px solid #ccc;right:2px;top:-5px;height:18px;width:7px;border-bottom:1px solid #ccc}.tree-folder>li::after{content:' ';position:absolute;display:block;border-right:1px solid #ccc;right:2px;bottom:-7px;top:0}#templateside .current-file{margin:-4px 0 -2px}.tree-folder>.current-file::before{right:4px;height:15px;width:0;border-right:none;top:3px}.tree-folder>.current-file::after{bottom:-4px;height:7px;right:2px;top:auto}.tree-folder li:last-child>.tree-folder::after,.tree-folder>li:last-child::after{display:none}#theme-plugin-editor-label{display:inline-block;margin-bottom:1em;font-weight:600}.fileedit-sub #plugin,.fileedit-sub #theme{max-width:40%}.fileedit-sub .alignright{text-align:left}#template p{width:97%}#file-editor-linting-error{margin-top:1em;margin-bottom:1em}#file-editor-linting-error>.notice{margin:0;display:inline-block}#file-editor-linting-error>.notice>p{width:auto}#template .submit{margin-top:1em;padding:0}#template .submit input[type=submit][disabled]{cursor:not-allowed}#templateside{float:left;width:16em}#postcustomstuff p.submit{margin:0}#templateside h4{margin:1em 0 0}#templateside li{margin:4px 0}#templateside li:not(.howto) a,.theme-editor-php .highlight{display:block;padding:3px 12px 3px 0;text-decoration:none}#templateside li:not(.howto)>a:first-of-type{padding-top:0}#templateside li.howto{padding:6px 12px 12px}.theme-editor-php .highlight{margin:-3px -12px -3px 3px}#templateside .highlight{border:none;font-weight:600}.nonessential{color:#666;font-size:11px;font-style:italic;padding-right:12px}#documentation{margin-top:10px}#documentation label{line-height:22px;vertical-align:baseline;font-weight:600}.fileedit-sub{padding:10px 0 8px;line-height:180%}#file-editor-warning .file-editor-warning-content{margin:25px}.accordion-section-title:after,.control-section .accordion-section-title:after,.nav-menus-php .item-edit:before,.widget-top .widget-action .toggle-indicator:before{content:"\f140";font:400 20px/1 dashicons;speak:none;display:block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.widget-top .widget-action .toggle-indicator:before{padding:1px 0 1px 2px;border-radius:50%}.accordion-section-title:after,.handlediv,.item-edit,.postbox .handlediv.button-link,.toggle-indicator{color:#72777c}.widget-action{color:#555d66}.accordion-section-title:hover:after,.handlediv:focus,.handlediv:hover,.item-edit:focus,.item-edit:hover,.postbox .handlediv.button-link:focus,.postbox .handlediv.button-link:hover,.sidebar-name:hover .toggle-indicator,.widget-action:focus,.widget-top:hover .widget-action{color:#23282d}.widget-top .widget-action:focus .toggle-indicator:before{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.accordion-section-title:after,.control-section .accordion-section-title:after{float:left;left:20px;top:-2px}#customize-info.open .accordion-section-title:after,.control-section.open .accordion-section-title:after,.nav-menus-php .menu-item-edit-active .item-edit:before,.widget.open .widget-top .widget-action .toggle-indicator:before{content:"\f142"}/*! +.button.updated-message,a{transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out}#ajax-loading,.ajax-feedback,.ajax-loading,.imgedit-wait-spin,.list-ajax-loading,.spinner,.wp-header-end{visibility:hidden}.filter-group,.postbox-container .meta-box-sortables,.wp-filter,html.wp-toolbar{box-sizing:border-box}#docs-list,#plugin-information .section,#template textarea,.code,.ltr,code{direction:ltr}#wpwrap{height:auto;min-height:100%;width:100%;position:relative;-webkit-font-smoothing:subpixel-antialiased}#wpcontent{height:100%;padding-right:20px}#wpcontent,#wpfooter{margin-right:160px}.folded #wpcontent,.folded #wpfooter{margin-right:36px}#wpbody-content{padding-bottom:65px;float:right;width:100%;overflow:visible!important}.inner-sidebar{float:left;clear:left;display:none;width:281px;position:relative}.columns-2 .inner-sidebar{margin-left:auto;width:286px;display:block}.columns-2 .inner-sidebar #side-sortables,.inner-sidebar #side-sortables{min-height:300px;width:280px;padding:0}.has-right-sidebar .inner-sidebar{display:block}.has-right-sidebar #post-body{float:right;clear:right;width:100%;margin-left:-2000px}.has-right-sidebar #post-body-content{margin-left:300px;float:none;width:auto}#col-left{float:right;width:35%}#col-right{float:left;width:65%}#col-left .col-wrap{padding:0 0 0 6px}#col-right .col-wrap{padding:0 6px 0 0}.alignleft{float:right}.alignright{float:left}#publishing-action .spinner,#save-post,.subsubsub{float:right}.textleft{text-align:right}.textright{text-align:left}.clear{clear:both}.wp-clearfix:after{content:"";display:table;clear:both}.screen-reader-text,.screen-reader-text span,.ui-helper-hidden-accessible{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}#templateside,.misc-pub-filename,.pre,.widefat *{word-wrap:break-word}.screen-reader-shortcut{position:absolute;top:-1000em}.screen-reader-shortcut:focus{right:6px;top:-25px;height:auto;width:auto;display:block;font-size:14px;font-weight:600;padding:15px 23px 14px;background:#f1f1f1;color:#0073aa;z-index:100000;line-height:normal;box-shadow:0 0 2px 2px rgba(0,0,0,.6);text-decoration:none;outline:0}.hidden,.js .closed .inside,.js .hide-if-js,.js .wp-core-ui .hide-if-js,.js.wp-core-ui .hide-if-js,.no-js .hide-if-no-js,.no-js .wp-core-ui .hide-if-no-js,.no-js.wp-core-ui .hide-if-no-js{display:none}#menu-management .menu-edit,#menu-settings-column .accordion-container,.comment-ays,.feature-filter,.imgedit-group,.manage-menus,.menu-item-handle,.popular-tags,.stuffbox,.widget-inside,.widget-top,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04)}.comment-ays,.feature-filter,.imgedit-group,.popular-tags,.stuffbox,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{background:#fff}body,html{height:100%;margin:0;padding:0}body{background:#f1f1f1;color:#444;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:13px;line-height:1.4em;min-width:600px}body.iframe{min-width:0;padding-top:1px}body.modal-open{overflow:hidden}body.mobile.modal-open #wpwrap{overflow:hidden;position:fixed;height:100%}iframe,img{border:0}td{font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit}a{color:#0073aa}a,div{outline:0}a:active,a:hover{color:#00a0d2}.wp-person a:focus .gravatar,a:focus,a:focus .media-icon img{color:#124964;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}h1,h2,h3{color:#23282d}.ie8 a:focus{outline:#5b9dd9 solid 1px}#adminmenu a:focus,.screen-reader-text:focus{box-shadow:none;outline:0}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}p{font-size:13px;line-height:1.5;margin:1em 0}blockquote{margin:1em}dd,li{margin-bottom:6px}h1,h2,h3,h4,h5,h6{display:block;font-weight:600}h1{font-size:2em;margin:.67em 0}h2,h3{font-size:1.3em;margin:1em 0}.update-core-php h2{margin-top:2em}.update-messages h2,.update-php h2,h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}ol,ul{padding:0}ul{list-style:none}ol{list-style-type:decimal;margin-right:2em}ul.ul-disc{list-style:disc}ul.ul-square{list-style:square}ol.ol-decimal{list-style:decimal}ol.ol-decimal,ul.ul-disc,ul.ul-square{margin-right:1.8em}ol.ol-decimal>li,ul.ul-disc>li,ul.ul-square>li{margin:0 0 .5em}.code,code{font-family:Consolas,Monaco,monospace;unicode-bidi:embed}code,kbd{padding:3px 5px 2px;margin:0 1px;background:#eaeaea;background:rgba(0,0,0,.07);font-size:13px}.subsubsub{list-style:none;margin:8px 0 0;padding:0;font-size:13px;color:#666}.subsubsub a{line-height:2;padding:.2em;text-decoration:none}.subsubsub a .count,.subsubsub a.current .count{color:#555d66;font-weight:400}.subsubsub a.current{font-weight:600;border:none}.subsubsub li{display:inline-block;margin:0;padding:0;white-space:nowrap}.widefat{border-spacing:0;width:100%;clear:both;margin:0}.widefat a,.widefat button.button-link{text-decoration:none}.widefat td,.widefat th{padding:8px 10px}.widefat thead td,.widefat thead th{border-bottom:1px solid #e1e1e1}.widefat tfoot td,.widefat tfoot th{border-top:1px solid #e1e1e1;border-bottom:none}.widefat .no-items td{border-bottom-width:0}.widefat td{vertical-align:top}.widefat td,.widefat td ol,.widefat td p,.widefat td ul{font-size:13px;line-height:1.5em}.widefat tfoot td,.widefat th,.widefat thead td{text-align:right;line-height:1.3em;font-size:14px}.updates-table td input,.widefat tfoot td input,.widefat th input,.widefat thead td input{margin:0 8px 0 0;padding:0;vertical-align:text-top}.widefat .check-column{width:2.2em;padding:6px 0 25px;vertical-align:top}.updates-table tbody td.check-column,.widefat tbody th.check-column,.widefat tfoot td.check-column,.widefat thead td.check-column{padding:11px 3px 0 0}.widefat tfoot td.check-column,.widefat thead td.check-column{padding-top:4px;vertical-align:middle}.update-php div.error,.update-php div.updated{margin-right:0}.no-js .widefat tfoot .check-column input,.no-js .widefat thead .check-column input{display:none}.column-comments,.column-links,.column-posts,.widefat .num{text-align:center}.widefat th#comments{vertical-align:middle}.wrap{margin:10px 2px 0 20px}.postbox .inside h2,.wrap [class$=icon32]+h2,.wrap h1,.wrap>h2:first-child{font-size:23px;font-weight:400;margin:0;padding:9px 0 4px;line-height:29px}.wrap h1.wp-heading-inline{display:inline-block;margin-left:5px}.wp-header-end{margin:-2px 0 0}.subtitle{margin:0;padding-right:25px;color:#555d66;font-size:14px;font-weight:400;line-height:1}.wrap .add-new-h2,.wrap .add-new-h2:active,.wrap .page-title-action,.wrap .page-title-action:active{margin-right:4px;padding:4px 8px;position:relative;top:-3px;text-decoration:none;border:none;border:1px solid #ccc;border-radius:2px;background:#f7f7f7;text-shadow:none;font-weight:600;font-size:13px;line-height:normal;color:#0073aa;cursor:pointer;outline:0}.wrap .wp-heading-inline+.page-title-action{margin-right:0}.wrap .add-new-h2:hover,.wrap .page-title-action:hover{border-color:#008EC2;background:#00a0d2;color:#fff}.page-title-action:focus{color:#124964}.ac_match,.highlight,.subsubsub a.current{color:#000}.wrap .page-title-action:focus{border-color:#5b9dd9;box-shadow:0 0 2px rgba(30,140,190,.8)}.wrap h1.long-header{padding-left:0}.wp-dialog{background-color:#fff}#available-widgets .widget-top:hover,#widgets-left .widget-in-question .widget-top,#widgets-left .widget-top:hover,.widgets-chooser ul,div#widgets-right .widget-top:hover{border-color:#999;box-shadow:0 1px 2px rgba(0,0,0,.1)}.sorthelper{background-color:#ccf3fa}.alternate,.striped>tbody>:nth-child(odd),ul.striped>:nth-child(odd){background-color:#f9f9f9}.bar{background-color:#e8e8e8;border-left-color:#99d}.highlight{background-color:#e4f2fd}.wp-ui-primary{color:#fff;background-color:#32373c}.wp-ui-text-primary{color:#32373c}.wp-ui-highlight{color:#fff;background-color:#1e8cbe}.wp-ui-text-highlight{color:#1e8cbe}.wp-ui-notification{color:#fff;background-color:#d54e21}.wp-ui-text-notification{color:#d54e21}.wp-ui-text-icon{color:#82878c}img.emoji{display:inline!important;border:none!important;height:1em!important;width:1em!important;margin:0 .07em!important;vertical-align:-.1em!important;background:0 0!important;padding:0!important;box-shadow:none!important}#nav-menu-footer,#nav-menu-header,#your-profile #rich_editing,.checkbox,.control-section .accordion-section-title,.menu-item-handle,.postbox .hndle,.side-info,.sidebar-name,.stuffbox .hndle,.widefat tfoot td,.widefat tfoot th,.widefat thead td,.widefat thead th,.widget .widget-top{line-height:1.4em}.menu-item-handle,.widget .widget-top{background:#fafafa;color:#23282d}.postbox .hndle,.stuffbox .hndle{border-bottom:1px solid #eee;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.quicktags,.search{background-color:#ccc;color:#000;font-size:12px}.icon32{display:none}#bulk-titles div a:before,.notice-dismiss:before,.tagchecklist .ntdelbutton .remove-tag-icon:before,.welcome-panel .welcome-panel-close:before{background:0 0;color:#72777c;content:"\f153";display:block;font:400 16px/20px dashicons;speak:none;height:20px;text-align:center;width:20px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.welcome-panel .welcome-panel-close:before{margin:0}#bulk-titles div a:before{margin:1px 0}.tagchecklist .ntdelbutton .remove-tag-icon:before{margin-right:2px;border-radius:50%;color:#0073aa;line-height:1.28}.tagchecklist .ntdelbutton:focus{outline:0}#bulk-titles div a:focus:before,#bulk-titles div a:hover:before,.tagchecklist .ntdelbutton:focus .remove-tag-icon:before,.tagchecklist .ntdelbutton:hover .remove-tag-icon:before,.welcome-panel .welcome-panel-close:focus:before,.welcome-panel .welcome-panel-close:hover:before{color:#c00}.tagchecklist .ntdelbutton:focus .remove-tag-icon:before{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.key-labels label{line-height:24px}b,strong{font-weight:600}.pre{white-space:pre-wrap}#namediv td.first,.nav-tab,.no-break,.star-rating{white-space:nowrap}.howto{color:#666;font-style:italic;display:block}p.install-help{margin:8px 0;font-style:italic}hr{border:0;border-top:1px solid #ddd;border-bottom:1px solid #fafafa}#all-plugins-table .plugins a.delete,#delete-link a.delete,#media-items a.delete,#media-items a.delete-permanently,#nav-menu-footer .menu-delete,#search-plugins-table .plugins a.delete,.plugins a.delete,.row-actions span.delete a,.row-actions span.spam a,.row-actions span.trash a,.submitbox .submitdelete{color:#a00}#all-plugins-table .plugins a.delete:hover,#delete-link a.delete:hover,#media-items a.delete-permanently:hover,#media-items a.delete:hover,#nav-menu-footer .menu-delete:hover,#search-plugins-table .plugins a.delete:hover,.file-error,.plugins a.delete:hover,.row-actions .delete a:hover,.row-actions .spam a:hover,.row-actions .trash a:hover,.submitbox .submitdelete:hover,abbr.required,span.required{color:#dc3232;border:none}#major-publishing-actions{padding:10px;clear:both;border-top:1px solid #ddd;background:#f5f5f5}#delete-action{float:right;line-height:28px}#delete-link{line-height:28px;vertical-align:middle;text-align:right;margin-right:8px}#delete-link a{text-decoration:none}#publishing-action{text-align:left;float:left;line-height:23px}#misc-publishing-actions{padding:6px 0 0}.misc-pub-section{padding:6px 10px 8px}#minor-publishing-actions{padding:10px 10px 0;text-align:left}.preview{float:left}#sticky-span{margin-right:18px}.approve,.unapproved .unapprove{display:none}.spam .approve,.trash .approve,.unapproved .approve{display:inline}td.action-links,th.action-links{text-align:left}#misc-publishing-actions .notice{margin-right:10px;margin-left:10px}.wp-filter{display:inline-block;position:relative;margin:12px 0 25px;padding:0 10px;width:100%;box-shadow:0 1px 1px rgba(0,0,0,.04);border:1px solid #e5e5e5;background:#fff;color:#555;font-size:13px}.wp-filter a{text-decoration:none}.filter-count{display:inline-block;vertical-align:middle;min-width:4em}.filter-count .count,.title-count{display:inline-block;position:relative;top:-1px;padding:4px 10px;border-radius:30px;background:#72777c;color:#fff;font-size:14px;font-weight:600}.title-count{display:inline;top:-3px;margin-right:5px;margin-left:20px}.filter-links li>a,.wp-filter .search-form.search-plugins{display:inline-block}.filter-items{float:right}.filter-links,.filter-links li{display:inline-block;margin:0}.filter-links li>a{margin:0 10px;padding:15px 0;border-bottom:4px solid #fff;color:#666;cursor:pointer}.filter-links .current{box-shadow:none;border-bottom:4px solid #666;color:#23282d}.filter-links li>a:focus,.filter-links li>a:hover,.show-filters .filter-links a.current:focus,.show-filters .filter-links a.current:hover{color:#00a0d2}.wp-filter .search-form{float:left;margin:10px 0}.wp-filter .search-form input[type=search]{margin:0;padding:3px 5px;width:280px;max-width:100%;font-size:16px;font-weight:300;line-height:1.5}.wp-filter .search-form select{margin:0;height:32px;vertical-align:top}.wp-filter .button.drawer-toggle{margin:10px 9px 0;padding:0 6px 0 10px;border-color:transparent;background-color:transparent;color:#666;vertical-align:baseline;box-shadow:none}.wp-filter .drawer-toggle:before{content:"\f111";margin:0 0 0 5px;color:#72777c;font:400 16px/1 dashicons;vertical-align:text-bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-filter .button.drawer-toggle:focus,.wp-filter .button.drawer-toggle:hover,.wp-filter .drawer-toggle:focus:before,.wp-filter .drawer-toggle:hover:before{background-color:transparent;color:#00a0d2}.wp-filter .button.drawer-toggle:focus:active,.wp-filter .button.drawer-toggle:hover{border-color:transparent}.wp-filter .button.drawer-toggle:focus{border-color:#5b9dd9}.wp-filter .button.drawer-toggle:active{background:0 0;box-shadow:none;-webkit-transform:none;transform:none}.wp-filter .drawer-toggle.current:before{color:#fff}.filter-drawer,.wp-filter .favorites-form{display:none;margin:0 -20px 0 -10px;padding:20px;border-top:1px solid #eee;background:#fafafa;overflow:hidden}.show-favorites-form .favorites-form,.show-filters .filter-drawer{display:block}.show-filters .filter-links a.current{border-bottom:none}.show-filters .wp-filter .button.drawer-toggle{border-radius:2px;background:#72777c;color:#fff}.filter-group,.filtered-by .tag{border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04)}.show-filters .wp-filter .drawer-toggle:focus,.show-filters .wp-filter .drawer-toggle:hover{background:#2ea2cc}.show-filters .wp-filter .drawer-toggle:before{color:#fff}.filter-group{position:relative;float:right;margin:0 0 0 1%;padding:20px 10px 10px;width:24%;background:#fff}.filter-group legend{position:absolute;top:10px;display:block;margin:0;padding:0;font-size:1em;font-weight:600}.filter-drawer .filter-group-feature{margin:28px 0 0;list-style-type:none;font-size:12px}.filter-drawer .filter-group-feature input,.filter-drawer .filter-group-feature label{line-height:16px}.filter-drawer .filter-group-feature input{position:absolute;margin:0}.filter-group .filter-group-feature label{display:block;margin:14px 23px 14px 0}.filter-drawer .buttons{clear:both;margin-bottom:20px}.filter-drawer .filter-group+.buttons{margin-bottom:0;padding-top:20px}.filter-drawer .buttons .button span{display:inline-block;opacity:.8;font-size:12px;text-indent:10px}.wp-filter .button.clear-filters{display:none;margin-right:10px}.wp-filter .button-link.edit-filters{padding:0 5px;line-height:28px}.filtered-by{display:none;margin:0}.filtered-by>span{font-weight:600}.filtered-by a{margin-right:10px}.filtered-by .tags{display:inline}.filtered-by .tag{margin:0 5px;padding:4px 8px;background:#fff;font-size:11px}.filters-applied .filter-drawer .buttons,.filters-applied .filter-drawer br,.filters-applied .filter-group{display:none!important}.filters-applied .filtered-by{display:block}.filters-applied .filter-drawer{padding:20px}.error .content-filterable,.loading-content .content-filterable,.show-filters .content-filterable,.show-filters .favorites-form,.show-filters.filters-applied.loading-content .content-filterable{display:none}.show-filters.filters-applied .content-filterable{display:block}.loading-content .spinner{display:block;margin:40px auto 0;float:none}@media only screen and (max-width:1120px){.filter-drawer{border-bottom:1px solid #eee}.filter-group{margin-bottom:0;margin-top:5px;width:100%}.filter-group li{margin:10px 0}}@media only screen and (max-width:1000px){.filter-items{float:none}.wp-filter .media-toolbar-primary,.wp-filter .media-toolbar-secondary,.wp-filter .search-form{float:none;position:relative;max-width:100%}}@media only screen and (max-width:782px){.filter-group li{padding:0;width:50%}}@media only screen and (max-width:320px){.filter-count{display:none}.wp-filter .drawer-toggle{margin:10px 0}.filter-group li,.wp-filter .search-form input[type=search]{width:100%}}.notice,div.error,div.updated{background:#fff;border-right:4px solid #fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:5px 15px 2px;padding:1px 12px}div[class=update-message]{padding:.5em 0 .5em 12px}.form-table td .notice p,.notice p,.notice-title,div.error p,div.updated p{margin:.5em 0;padding:2px}.error a{text-decoration:underline}.updated a{padding-bottom:2px}.notice-alt{box-shadow:none}.notice-large{padding:10px 20px}.notice-title{display:inline-block;color:#23282d;font-size:18px}.wp-core-ui .notice.is-dismissible{padding-left:38px;position:relative}.notice-dismiss{position:absolute;top:0;left:1px;border:none;margin:0;padding:9px;background:0 0;color:#72777c;cursor:pointer}.notice-dismiss:active:before,.notice-dismiss:focus:before,.notice-dismiss:hover:before{color:#c00}.notice-dismiss:focus{outline:0;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ie8 .notice-dismiss:focus{outline:#5b9dd9 solid 1px}.notice-success,div.updated{border-right-color:#46b450}.notice-success.notice-alt{background-color:#ecf7ed}.notice-warning{border-right-color:#ffb900}.notice-warning.notice-alt{background-color:#fff8e5}.notice-error,div.error{border-right-color:#dc3232}.notice-error.notice-alt{background-color:#fbeaea}.notice-info{border-right-color:#00a0d2}.notice-info.notice-alt{background-color:#e5f5fa}.button.installed:before,.button.installing:before,.button.updated-message:before,.button.updating-message:before,.import-php .updating-message:before,.update-message p:before,.updated-message p:before,.updating-message p:before{display:inline-block;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.media-upload-form .notice,.media-upload-form div.error,.wrap .notice,.wrap div.error,.wrap div.updated{margin:5px 0 15px}.wrap #templateside .notice{display:block;margin:0;padding:5px 8px;font-weight:600;text-decoration:none}.wrap #templateside span.notice{margin-right:-12px}#templateside li.notice a{padding:0}.button.installing:before,.button.updating-message:before,.import-php .updating-message:before,.update-message p:before,.updating-message p:before{color:#f56e28;content:"\f463"}.button.installing:before,.button.updating-message:before,.import-php .updating-message:before,.updating-message p:before{-webkit-animation:rotation 2s infinite linear;animation:rotation 2s infinite linear}.button.updated-message:before,.installed p:before,.updated-message p:before{color:#79ba49;content:'\f147'}.update-message.notice-error p:before{color:#dc3232;content:"\f534"}.import-php .updating-message:before,.wrap .notice p:before{margin-left:6px;vertical-align:bottom}#update-nag,.update-nag{display:inline-block;line-height:19px;padding:11px 15px;font-size:14px;text-align:right;margin:25px 2px 0 20px;background-color:#fff;border-right:4px solid #ffba00;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}#screen-meta,ul#dismissed-updates{display:none}form.upgrade{margin-top:8px}form.upgrade .hint{font-style:italic;font-size:85%;margin:-.5em 0 2em}.update-php .spinner{float:none;margin:-4px 0}#ajax-response.alignleft{margin-right:2em}.button.installed:before,.button.installing:before,.button.updated-message:before,.button.updating-message:before{margin:3px -2px 0 5px}.button-primary.updating-message:before{color:#fff}.button-primary.updated-message:before{color:#66c6e4}@media aural{.button.installed:before,.button.installing:before,.update-message p:before,.wrap .notice p:before{speak:none}}#adminmenu a,#catlist a,#taglist a{text-decoration:none}#contextual-help-wrap,#screen-options-wrap{margin:0;padding:8px 20px 12px;position:relative}#contextual-help-wrap{overflow:auto;margin-right:0!important}#screen-meta-links{margin:0 0 0 20px}#screen-meta{margin:0 0 -1px 20px;position:relative;background-color:#fff;border:1px solid #ddd;border-top:none;box-shadow:0 1px 0 rgba(0,0,0,.025)}#contextual-help-link-wrap,#screen-options-link-wrap{float:left;height:28px;margin:0 6px 0 0;border:1px solid #ddd;border-top:none;background:#fff;box-shadow:0 1px 1px -1px rgba(0,0,0,.1)}#screen-meta-links .screen-meta-toggle{position:relative;top:0}#screen-meta-links .show-settings{border:0;background:0 0;border-radius:0;color:#72777c;line-height:1.7;padding:3px 16px 3px 6px}#screen-meta-links .show-settings:active,#screen-meta-links .show-settings:focus,#screen-meta-links .show-settings:hover{color:#32373c}#screen-meta-links .show-settings:active{box-shadow:none;-webkit-transform:none;transform:none}#screen-meta-links .show-settings:after{left:0;content:"\f140";font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 0 0 5px;bottom:2px;position:relative;vertical-align:bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#72777c}#templateside ul li a,.contextual-help-tabs a,.nav-tab{text-decoration:none}#screen-meta-links .screen-meta-active:after{content:"\f142"}.toggle-arrow{background-repeat:no-repeat;background-position:top right;background-color:transparent;height:22px;line-height:22px;display:block}.toggle-arrow-active{background-position:bottom right}#contextual-help-wrap h5,#screen-options-wrap h5,#screen-options-wrap legend{margin:0;padding:8px 0;font-size:13px;font-weight:600}.hndle a,.widefat tfoot td,.widefat th,.widefat thead td{font-weight:400}.ie8 #screen-options-wrap legend{color:inherit}.metabox-prefs label{display:inline-block;padding-left:15px;line-height:30px}#number-of-columns{display:inline-block;vertical-align:middle;line-height:30px}.metabox-prefs input[type=checkbox]{margin-top:0;margin-left:6px}.metabox-prefs label input,.metabox-prefs label input[type=checkbox]{margin:-4px 0 0 5px}.metabox-prefs .columns-prefs label input{margin:-1px 0 0 2px}.metabox-prefs label a{display:none}.metabox-prefs .screen-options input,.metabox-prefs .screen-options label{margin-top:0;margin-bottom:0;vertical-align:middle}.metabox-prefs .screen-options .screen-per-page{margin-left:15px}.metabox-prefs .screen-options label{line-height:28px;padding-left:0}.screen-options+.screen-options{margin-top:10px}.metabox-prefs .submit{margin-top:1em;padding:0}#contextual-help-wrap{padding:0}#contextual-help-columns{position:relative}#contextual-help-back{position:absolute;top:0;bottom:0;right:150px;left:170px;border:1px solid #e1e1e1;border-top:none;border-bottom:none;background:#f6fbfd}#contextual-help-wrap.no-sidebar #contextual-help-back{left:0;border-left-width:0;border-bottom-left-radius:2px}.contextual-help-tabs{float:right;width:150px;margin:0}.contextual-help-tabs ul{margin:1em 0}.contextual-help-tabs li{margin-bottom:0;list-style-type:none;border-style:solid;border-width:0 2px 0 0;border-color:transparent}.contextual-help-tabs a{display:block;padding:5px 12px 5px 5px;line-height:18px;border:1px solid transparent;border-left:none;border-right:none}.contextual-help-tabs a:hover{color:#32373c}.contextual-help-tabs .active{padding:0;margin:0 0 0 -1px;border-right:2px solid #00a0d2;background:#f6fbfd;box-shadow:0 2px 0 rgba(0,0,0,.02),0 1px 0 rgba(0,0,0,.02)}.contextual-help-tabs .active a{border-color:#e1e1e1;color:#32373c}.contextual-help-tabs-wrap{padding:0 20px;overflow:auto}.help-tab-content{display:none;margin:0 0 12px 22px;line-height:1.6em}.help-tab-content.active{display:block}.help-tab-content ul li{list-style-type:disc;margin-right:18px}.contextual-help-sidebar{width:150px;float:left;padding:0 12px 0 8px;overflow:auto}html.wp-toolbar{padding-top:32px}.widefat td,.widefat th{color:#555}.widefat ol,.widefat p,.widefat tfoot tr td,.widefat tfoot tr th,.widefat thead tr td,.widefat thead tr th,.widefat ul{color:#32373c}.widefat td p{margin:2px 0 .8em}.widefat .column-comment p{margin:.6em 0}.widefat .column-comment ul{list-style:outside;margin-right:2em}.postbox-container{float:right}#wpbody-content .metabox-holder{padding-top:10px}.metabox-holder .postbox-container .empty-container{border:3px dashed #b4b9be;height:250px;position:relative}.metabox-holder .postbox-container .empty-container:after{content:attr(data-emptystring);margin:auto;position:absolute;top:0;right:0;bottom:0;left:0;height:1em;width:200px;text-align:center;color:#ccc;font-size:18px;display:none}.columns-2 #postbox-container-3 .empty-container,.columns-2 #postbox-container-4 .empty-container,.columns-3 #postbox-container-4 .empty-container,.metabox-holder.columns-1 .postbox-container .empty-container{border:0;height:0;min-height:0}#post-body-content{width:100%;min-width:463px;float:right}#post-body.columns-2 #postbox-container-1{float:left;margin-left:-300px;width:280px}#post-body.columns-2 #side-sortables{min-height:250px}@media only screen and (max-width:799px){#wpbody-content .metabox-holder .postbox-container .empty-container{border:0;height:0;min-height:0}}.js .postbox .hndle,.js .widget .widget-top{cursor:move}.hndle a{font-size:11px}#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:hover,#dashboard_right_now .versions .b,#ed_reply_toolbar #ed_reply_strong,#pass-strength-result.short,#pass-strength-result.strong,#post-status-display,#post-visibility-display,.feature-filter .feature-name,.item-controls .item-order a,.media-item .percent,.nav-tab,.plugins .name{font-weight:600}.postbox .handlediv{display:none;float:left;width:36px;height:36px;margin:0;padding:0;border:0;background:0 0;cursor:pointer}.js .postbox .handlediv{display:block}.sortable-placeholder{border:1px dashed #b4b9be;margin-bottom:20px}.postbox,.stuffbox{margin-bottom:20px;padding:0;line-height:1}.postbox .inside,.stuffbox .inside{padding:0 12px 12px;line-height:1.4em;font-size:13px}.postbox .inside{margin:11px 0;position:relative}.postbox .inside>p:last-child,.rss-widget ul li:last-child{margin-bottom:1px!important}.postbox.closed h3{border:none;box-shadow:none}.postbox table.form-table{margin-bottom:0}.postbox table.widefat{box-shadow:none}.temp-border{border:1px dotted #ccc}.columns-prefs label{padding:0 0 0 10px}#wpfooter{position:absolute;bottom:0;right:0;left:0;padding:10px 20px;color:#555d66}#wpfooter p{font-size:13px;margin:0;line-height:20px}#footer-thankyou{font-style:italic}.nav-tab{float:right;border:1px solid #ccc;border-bottom:none;margin-right:.5em;padding:5px 10px;font-size:14px;line-height:24px;background:#e5e5e5;color:#555}.nav-tab-small .nav-tab,h3 .nav-tab{padding:5px 14px;font-size:12px;line-height:16px}.nav-tab:focus,.nav-tab:hover{background-color:#fff;color:#444}.nav-tab-active,.nav-tab:focus:active{box-shadow:none}.nav-tab-active{margin-bottom:-1px;color:#444}.nav-tab-active,.nav-tab-active:focus,.nav-tab-active:focus:active,.nav-tab-active:hover{border-bottom:1px solid #f1f1f1;background:#f1f1f1;color:#000}.nav-tab-wrapper,.wrap h2.nav-tab-wrapper,h1.nav-tab-wrapper{border-bottom:1px solid #ccc;margin:0;padding-top:9px;padding-bottom:0;line-height:inherit}.nav-tab-wrapper:not(.wp-clearfix):after{content:"";display:table;clear:both}.ie8 .nav-tab-wrapper{display:inline-block;width:100%;vertical-align:top}.spinner{background:url(../images/spinner.gif) no-repeat;background-size:20px 20px;display:inline-block;float:left;vertical-align:middle;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:4px 10px 0}.loading-content .spinner,.spinner.is-active{visibility:visible}#template>div{margin-left:16em}#template .notice{margin-top:1em;margin-left:3%}#template .notice p{width:auto}#template .submit .spinner{float:none}.metabox-holder .postbox>h3,.metabox-holder .stuffbox>h3,.metabox-holder h2.hndle,.metabox-holder h3.hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.nav-menus-php .metabox-holder h3{padding:10px 14px 11px 10px;line-height:21px}.plugin-install #description,.plugin-install-network #description{width:60%}table .column-rating,table .column-visible,table .vers{text-align:right}.attention,.error-message{color:#dc3232;font-weight:600}body.iframe{height:98%}.lp-show-latest p{display:none}#howto,.importer-action,.importer-desc,.importer-title{display:block}.lp-show-latest .lp-error p,.lp-show-latest p:last-child{display:block}.media-icon{width:62px;text-align:center}.media-icon img{border:1px solid #e5e5e5;border:1px solid rgba(0,0,0,.07)}#howto{font-size:11px;margin:0 5px}.importers{font-size:16px;width:auto}.importers td{padding-left:14px;line-height:1.5em}.importers .import-system{max-width:250px}.importers td.desc{max-width:500px}.post-categories,.post-categories li{display:inline}.importer-title{color:#000;font-size:14px;font-weight:400;margin-bottom:.2em}.importer-action{line-height:20px;color:#555;margin-bottom:1em}#post-body #post-body-content #namediv h2,#post-body #post-body-content #namediv h3{margin-top:0}.edit-comment-author{font-size:14px;line-height:1.4;font-weight:600;color:#222;margin:2px 9px 0 0}#namediv h2 label,#namediv h3 label{vertical-align:baseline}#namediv table{width:100%}#namediv td.first{width:10px}#namediv input{width:98%}#namediv p{margin:10px 0}#submitdiv h3{margin-bottom:0!important}.checkbox,.post-categories,.zerosize,fieldset{margin:0;padding:0}.zerosize{height:0;width:0;border:0;overflow:hidden;position:absolute}br.clear{height:2px;line-height:2px}.checkbox{border:none}fieldset{border:0}div.star-holder{position:relative;height:17px;width:100px;background:url(../images/stars.png?ver=20121108) bottom left repeat-x}div.star-holder .star-rating{background:url(../images/stars.png?ver=20121108) top left repeat-x;height:17px;float:right}.star-rating .star{display:inline-block;width:20px;height:20px;-webkit-font-smoothing:antialiased;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;vertical-align:top;transition:color .1s ease-in 0;text-align:center;color:#ffb900}.star-rating .star-full:before{content:"\f155"}.star-rating .star-half:before{content:"\f459"}.rtl .star-rating .star-half{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}.star-rating .star-empty:before{content:"\f154"}div.action-links{font-weight:400;margin:6px 0 0}#plugin-information{background:#fff;position:fixed;top:0;left:0;bottom:0;right:0;height:100%;padding:0}#plugin-information-scrollable{overflow:auto;-webkit-overflow-scrolling:touch;height:100%}#plugin-information-title{padding:0 26px;background:#f5f5f5;font-size:22px;font-weight:600;line-height:56px;position:relative;height:56px}#plugin-information-title.with-banner{margin-left:0;height:250px;background-size:cover}#plugin-information-title h2{font-size:1em;font-weight:600;padding:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#plugin-information-title.with-banner h2{position:relative;font-family:"Helvetica Neue",sans-serif;display:inline-block;font-size:30px;line-height:50px;box-sizing:border-box;max-width:100%;padding:0 15px;margin-top:174px;color:#fff;background:rgba(30,30,30,.9);text-shadow:0 1px 3px rgba(0,0,0,.4);box-shadow:0 0 30px rgba(255,255,255,.1);border-radius:8px}#plugin-information-title div.vignette{display:none}#plugin-information-title.with-banner div.vignette{position:absolute;display:block;top:0;right:0;height:250px;width:100%;background:0 0;box-shadow:inset 0 0 50px 4px rgba(0,0,0,.2),inset 0 -1px 0 rgba(0,0,0,.1)}#plugin-information-tabs{padding:0 16px;position:relative;left:0;right:0;min-height:36px;font-size:0;z-index:1;border-bottom:1px solid #ddd;background:#f3f3f3}#plugin-information-tabs a{position:relative;display:inline-block;padding:9px 10px;margin:0;height:18px;line-height:18px;font-size:14px;text-decoration:none;transition:none}#plugin-information-tabs a.current{margin:0 -1px -1px;background:#fff;border:1px solid #ddd;border-bottom-color:#fff;padding-top:8px;color:#32373c}#plugin-information-tabs.with-banner a.current{border-top:none;padding-top:9px}#plugin-information-tabs a:active,#plugin-information-tabs a:focus{outline:0}#plugin-information-content{overflow:hidden;background:#fff;position:relative;top:0;left:0;right:0;min-height:100%;min-height:calc(100% - 152px)}#plugin-information-content.with-banner{min-height:calc(100% - 346px)}#section-holder{position:relative;top:0;left:250px;bottom:0;right:0;margin-left:250px;padding:10px 26px 99999px;margin-bottom:-99939px}#section-holder .updated{margin:16px 0}#plugin-information .fyi{float:left;position:relative;top:0;left:0;padding:16px 16px 99999px;margin-bottom:-99939px;width:217px;border-right:1px solid #ddd;background:#f3f3f3;color:#666}#plugin-information .fyi strong{color:#444}#plugin-information .fyi h3{font-weight:600;text-transform:uppercase;font-size:12px;color:#666;margin:24px 0 8px}#plugin-information .fyi h2{font-size:.9em;margin-bottom:0;margin-left:0}#plugin-information .fyi ul{padding:0;margin:0;list-style:none}#plugin-information .fyi li{margin:0 0 10px}#plugin-information .fyi-description{margin-top:0}#plugin-information .counter-container{margin:3px 0}#plugin-information .counter-label{float:right;margin-left:5px;min-width:55px}#plugin-information .counter-back{height:17px;width:92px;background-color:#e5e5e5;float:right}#plugin-information .counter-bar{height:17px;background-color:#ffc733;float:right}#plugin-information .counter-count{margin-right:5px}#plugin-information .fyi ul.contributors{margin-top:10px}#plugin-information .fyi ul.contributors li{display:inline-block;margin-left:8px;vertical-align:middle}#plugin-information .fyi ul.contributors li img{vertical-align:middle;margin-left:4px}#plugin-information-footer{padding:13px 16px;position:absolute;left:0;bottom:0;right:0;height:33px;border-top:1px solid #ddd;background:#f3f3f3}#plugin-information .section ol,#plugin-information .section ul{list-style-type:disc;margin-left:24px}#plugin-information .section,#plugin-information .section p{font-size:14px;line-height:1.7}#plugin-information #section-screenshots ol{list-style:none;margin:0}#plugin-information #section-screenshots li img{vertical-align:text-top;margin-top:16px;max-width:100%;width:auto;height:auto;box-shadow:0 1px 2px rgba(0,0,0,.3)}#plugin-information #section-screenshots li p{font-style:italic;padding-left:20px}#plugin-information pre{padding:7px;overflow:auto;border:1px solid #ccc}#plugin-information blockquote{border-right:2px solid #ddd;color:#666;font-style:italic;margin:1em 0;padding:0 1em 0 0}#plugin-information .review{overflow:hidden;width:100%;margin-bottom:20px;border-bottom:1px solid #e5e5e5}#plugin-information .review-title-section{overflow:hidden}#plugin-information .review-title-section h4{display:inline-block;float:left;margin:0 6px 0 0}#plugin-information .reviewer-info p{clear:both;margin:0;padding-top:2px}#plugin-information .reviewer-info .avatar{float:left;margin:4px 6px 0 0}#plugin-information .reviewer-info .star-rating{float:left}#plugin-information .review-meta{float:left;margin-left:.75em}#plugin-information .review-body{float:left;width:100%}.plugin-version-author-uri{font-size:13px}.update-php .button.button-primary{margin-left:1em}@media screen and (max-width:771px){#plugin-information-title.with-banner,#plugin-information-title.with-banner div.vignette{height:100px}#plugin-information-title.with-banner h2{margin-top:30px;font-size:20px;line-height:40px;max-width:85%}#plugin-information-tabs{overflow:hidden;padding:0;height:auto}#plugin-information-tabs a.current{margin-bottom:0;border-bottom:none}#plugin-information .fyi{float:none;border:1px solid #ddd;position:static;width:auto;margin:26px 26px 0;padding-bottom:0}#section-holder{position:static;margin:0;padding-bottom:70px}#plugin-information .fyi h3,#plugin-information .fyi small{display:none}#plugin-information-footer{padding:12px 16px 0;height:46px}}#TB_window.plugin-details-modal{background:#fcfcfc}#TB_window.plugin-details-modal.thickbox-loading:before{content:"";display:block;width:20px;height:20px;position:absolute;right:50%;top:50%;z-index:-1;margin:-10px -10px 0 0;background:url(../images/spinner.gif) center no-repeat #fcfcfc;background-size:20px 20px;-webkit-transform:translateZ(0);transform:translateZ(0)}.plugin-details-modal #TB_ajaxWindowTitle,.plugin-details-modal .tb-close-icon{display:none}.tree-folder,[role=treeitem] li{position:relative}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#TB_window.plugin-details-modal.thickbox-loading:before{background-image:url(../images/spinner-2x.gif)}}.plugin-details-modal #TB_title{float:right;height:1px}.plugin-details-modal #TB_closeWindowButton{right:auto;left:-30px;color:#eee}.plugin-details-modal #TB_closeWindowButton:focus,.plugin-details-modal #TB_closeWindowButton:hover{color:#00a0d2;outline:0;box-shadow:none}.plugin-details-modal #TB_closeWindowButton:after{content:"\f335";font:400 32px/29px dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media screen and (max-width:830px){.plugin-details-modal #TB_closeWindowButton{left:0;top:-30px}}img{border:none}.bulk-action-notice .toggle-indicator:before,.js .meta-box-sortables .postbox .toggle-indicator:before,.privacy-text-box .toggle-indicator:before,.sidebar-name .toggle-indicator:before{content:"\f142";display:inline-block;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.bulk-action-notice .bulk-action-errors-collapsed .toggle-indicator:before,.js .meta-box-sortables .postbox.closed .handlediv .toggle-indicator:before,.js .widgets-holder-wrap.closed .toggle-indicator:before,.privacy-text-box.closed .toggle-indicator:before{content:"\f140"}.js .postbox .handlediv .toggle-indicator:before{margin-top:4px;width:20px;border-radius:50%;text-indent:-1px}#template .CodeMirror,#template textarea,#templateside>ul{box-sizing:border-box;min-height:60vh;height:calc(100vh - 295px);border:1px solid #ddd}.rtl.js .postbox .handlediv .toggle-indicator:before{text-indent:1px}.bulk-action-notice .toggle-indicator:before{line-height:16px;vertical-align:top;color:#72777c}.js .postbox .handlediv:focus{box-shadow:none;outline:0}.js .postbox .handlediv:focus .toggle-indicator:before{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#photo-add-url-div input[type=text]{width:300px}.alignleft h2{margin:0}#template textarea{font-family:Consolas,Monaco,monospace;font-size:13px;background:#f9f9f9;-moz-tab-size:4;-o-tab-size:4;tab-size:4}#template .CodeMirror,#template textarea{width:100%}#templateside>h2{padding-top:6px;padding-bottom:7px;margin:0}#templateside ol,#templateside ul{margin:0;padding:0}#templateside>ul{margin-top:0;overflow:auto;padding:0;background-color:#f7f7f7;border-right:none}#templateside ul ul{padding-right:12px}#templateside>ul>li>ul[role=group]{padding-right:0}[role=treeitem][aria-expanded=false]>ul{display:none}[role=treeitem] span[aria-hidden]{display:inline;font-family:dashicons;font-size:20px;position:absolute;pointer-events:none}[role=treeitem][aria-expanded=false]>.folder-label .icon:after{content:"\f141"}[role=treeitem][aria-expanded=true]>.folder-label .icon:after{content:"\f140"}[role=treeitem] .folder-label{display:block;padding:3px 12px 3px 3px;cursor:pointer}[role=treeitem]{outline:0}[role=treeitem] .folder-label.focus{color:#124964;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}[role=treeitem] .folder-label.hover,[role=treeitem].hover{background-color:#eaeaea}.tree-folder{margin:0}.tree-folder .tree-folder::after{content:' ';display:block;position:absolute;right:2px;border-right:1px solid #ccc;top:-13px;bottom:10px}.tree-folder>li::before{content:' ';position:absolute;display:block;border-right:1px solid #ccc;right:2px;top:-5px;height:18px;width:7px;border-bottom:1px solid #ccc}.tree-folder>li::after{content:' ';position:absolute;display:block;border-right:1px solid #ccc;right:2px;bottom:-7px;top:0}#templateside .current-file{margin:-4px 0 -2px}.tree-folder>.current-file::before{right:4px;height:15px;width:0;border-right:none;top:3px}.tree-folder>.current-file::after{bottom:-4px;height:7px;right:2px;top:auto}.tree-folder li:last-child>.tree-folder::after,.tree-folder>li:last-child::after{display:none}#theme-plugin-editor-label{display:inline-block;margin-bottom:1em;font-weight:600}.fileedit-sub #plugin,.fileedit-sub #theme{max-width:40%}.fileedit-sub .alignright{text-align:left}#template p{width:97%}#file-editor-linting-error{margin-top:1em;margin-bottom:1em}#file-editor-linting-error>.notice{margin:0;display:inline-block}#file-editor-linting-error>.notice>p{width:auto}#template .submit{margin-top:1em;padding:0}#template .submit input[type=submit][disabled]{cursor:not-allowed}#templateside{float:left;width:16em}#postcustomstuff p.submit{margin:0}#templateside h4{margin:1em 0 0}#templateside li{margin:4px 0}#templateside li:not(.howto) a,.theme-editor-php .highlight{display:block;padding:3px 12px 3px 0;text-decoration:none}#templateside li:not(.howto)>a:first-of-type{padding-top:0}#templateside li.howto{padding:6px 12px 12px}.theme-editor-php .highlight{margin:-3px -12px -3px 3px}#templateside .highlight{border:none;font-weight:600}.nonessential{color:#666;font-size:11px;font-style:italic;padding-right:12px}#documentation{margin-top:10px}#documentation label{line-height:22px;vertical-align:baseline;font-weight:600}.fileedit-sub{padding:10px 0 8px;line-height:180%}#file-editor-warning .file-editor-warning-content{margin:25px}.accordion-section-title:after,.control-section .accordion-section-title:after,.nav-menus-php .item-edit:before,.widget-top .widget-action .toggle-indicator:before{content:"\f140";font:400 20px/1 dashicons;speak:none;display:block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.widget-top .widget-action .toggle-indicator:before{padding:1px 0 1px 2px;border-radius:50%}.accordion-section-title:after,.handlediv,.item-edit,.postbox .handlediv.button-link,.toggle-indicator{color:#72777c}.widget-action{color:#555d66}.accordion-section-title:hover:after,.handlediv:focus,.handlediv:hover,.item-edit:focus,.item-edit:hover,.postbox .handlediv.button-link:focus,.postbox .handlediv.button-link:hover,.sidebar-name:hover .toggle-indicator,.widget-action:focus,.widget-top:hover .widget-action{color:#23282d}.widget-top .widget-action:focus .toggle-indicator:before{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.accordion-section-title:after,.control-section .accordion-section-title:after{float:left;left:20px;top:-2px}#customize-info.open .accordion-section-title:after,.control-section.open .accordion-section-title:after,.nav-menus-php .menu-item-edit-active .item-edit:before,.widget.open .widget-top .widget-action .toggle-indicator:before{content:"\f142"}/*! * jQuery UI Draggable/Sortable 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license - */.ui-draggable-handle,.ui-sortable-handle{touch-action:none}.accordion-section{border-bottom:1px solid #ddd;margin:0}.accordion-section.open .accordion-section-content,.no-js .accordion-section .accordion-section-content{display:block}.accordion-section.open:hover{border-bottom-color:#ddd}.accordion-section-content{display:none;padding:10px 20px 15px;overflow:hidden;background:#fff}.accordion-section-title{margin:0;padding:12px 15px 15px;position:relative;border-right:1px solid #ddd;border-left:1px solid #ddd;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.js .accordion-section-title{cursor:pointer}.js .accordion-section-title:after{position:absolute;top:12px;left:10px;z-index:1}.accordion-section-title:focus{outline:0}.accordion-section-title:focus:after,.accordion-section-title:hover:after{border-color:#a0a5aa transparent}.cannot-expand .accordion-section-title{cursor:auto}.cannot-expand .accordion-section-title:after{display:none}.control-section .accordion-section-title,.customize-pane-child .accordion-section-title{border-right:none;border-left:none;padding:10px 14px 11px 10px;line-height:21px;background:#fff}.control-section .accordion-section-title:after,.customize-pane-child .accordion-section-title:after{top:calc(50% - 10px)}.js .control-section .accordion-section-title:focus,.js .control-section .accordion-section-title:hover,.js .control-section.open .accordion-section-title,.js .control-section:hover .accordion-section-title{color:#23282d;background:#f5f5f5}.control-section.open .accordion-section-title{border-bottom:1px solid #ddd}.network-admin .edit-site-actions{margin-top:0}.my-sites{display:block;overflow:auto;zoom:1}.my-sites li{display:block;padding:8px 3%;min-height:130px;margin:0}@media only screen and (max-width:599px){.my-sites li{min-height:0}}@media only screen and (min-width:600px){.my-sites.striped li{background-color:#fff;position:relative}.my-sites.striped li:after{content:"";width:1px;height:100%;position:absolute;top:0;left:0;background:#ccc}}@media only screen and (min-width:600px) and (max-width:699px){.my-sites li{float:right;width:44%}.my-sites.striped li{background-color:#fff}.my-sites.striped li:nth-of-type(2n+1){clear:right}.my-sites.striped li:nth-of-type(2n+2):after{content:none}.my-sites li:nth-of-type(4n+1),.my-sites li:nth-of-type(4n+2){background-color:#f9f9f9}}@media only screen and (min-width:700px) and (max-width:1199px){.my-sites li{float:right;width:27.333333%;background-color:#fff}.my-sites.striped li:nth-of-type(3n+3):after{content:none}.my-sites li:nth-of-type(6n+1),.my-sites li:nth-of-type(6n+2),.my-sites li:nth-of-type(6n+3){background-color:#f9f9f9}}@media only screen and (min-width:1200px) and (max-width:1399px){.my-sites li{float:right;width:21%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(4n+1){clear:right}.my-sites.striped li:nth-of-type(4n+4):after{content:none}.my-sites li:nth-of-type(8n+1),.my-sites li:nth-of-type(8n+2),.my-sites li:nth-of-type(8n+3),.my-sites li:nth-of-type(8n+4){background-color:#f9f9f9}}@media only screen and (min-width:1400px) and (max-width:1599px){.my-sites li{float:right;width:16%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(5n+1){clear:right}.my-sites.striped li:nth-of-type(5n+5):after{content:none}.my-sites li:nth-of-type(10n+1),.my-sites li:nth-of-type(10n+2),.my-sites li:nth-of-type(10n+3),.my-sites li:nth-of-type(10n+4),.my-sites li:nth-of-type(10n+5){background-color:#f9f9f9}}@media only screen and (min-width:1600px){.my-sites li{float:right;width:12.666666%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(6n+1){clear:right}.my-sites.striped li:nth-of-type(6n+6):after{content:none}.my-sites li:nth-of-type(12n+1),.my-sites li:nth-of-type(12n+2),.my-sites li:nth-of-type(12n+3),.my-sites li:nth-of-type(12n+4),.my-sites li:nth-of-type(12n+5),.my-sites li:nth-of-type(12n+6){background-color:#f9f9f9}}.my-sites li a{text-decoration:none}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){div.star-holder,div.star-holder .star-rating{background:url(../images/stars-2x.png?ver=20121108) bottom left repeat-x;background-size:21px 37px}.spinner{background-image:url(../images/spinner-2x.gif)}#bulk-titles div a,#bulk-titles div a:hover,#screen-meta-links a.show-settings,.curtime #timestamp,.meta-box-sortables .postbox:hover .handlediv,.sidebar-name .toggle-indicator,.sidebar-name:hover .toggle-indicator,.widget-top .widget-action,.widget-top .widget-action:hover{background:0 0!important}}@-ms-viewport{width:device-width}@media screen and (max-width:782px){#col-left,#col-right,#templateside{float:none;width:auto}html.wp-toolbar{padding-top:46px}body{min-width:240px;overflow-x:hidden}body *{-webkit-tap-highlight-color:rgba(0,0,0,0)!important}#wpcontent{position:relative;margin-right:0;padding-right:10px}#wpbody-content{padding-bottom:100px}.wrap{margin-left:12px;margin-right:0}#col-left .col-wrap,#col-right .col-wrap{padding:0}#collapse-menu,#screen-meta,#screen-meta-links,.post-format-select{display:none!important}#documentation label[for=docs-list],.fileedit-sub .alignright label{display:block}.wrap h1.wp-heading-inline{margin-bottom:.5em}.wrap .add-new-h2,.wrap .add-new-h2:active,.wrap .page-title-action,.wrap .page-title-action:active{padding:10px 15px;font-size:14px;white-space:nowrap}.media-upload-form div.error,.notice,.wrap div.error,.wrap div.updated{margin:20px 0 10px;padding:5px 10px;font-size:14px;line-height:175%}.wp-core-ui .notice.is-dismissible{padding-left:46px}.notice-dismiss{padding:13px}.wrap .icon32+h2{margin-top:-2px}.wp-responsive-open #wpbody{left:-16em}code{word-wrap:break-word}.postbox{font-size:14px}.metabox-holder .postbox>h3,.metabox-holder .stuffbox>h3,.metabox-holder h2,.metabox-holder h3.hndle{padding:12px}.postbox .handlediv{margin-top:3px}.subsubsub{font-size:16px;text-align:center;margin-bottom:15px}#templateside>ul{border-right:1px solid #ddd}#templateside li{margin:0}#templateside li:not(.howto) a{display:block;padding:5px}#templateside li.howto{padding:12px}#templateside .highlight{padding:5px;margin-right:-5px;margin-top:-5px}#template .notice,#template>div{float:none;margin:1em 0;width:auto}#template .CodeMirror,#template textarea{box-sizing:border-box;width:100%}#templateside ul ul{padding-right:1.5em}[role=treeitem] .folder-label{display:block;padding:5px}#documentation input[type=button],.fileedit-sub input[type=submit]{margin-bottom:0;padding:8px 18px}.tree-folder .tree-folder::after,.tree-folder>li::after,.tree-folder>li::before{right:-8px}.tree-folder>li::before{top:0;height:13px}.tree-folder>.current-file::before{right:-5px;top:7px;width:4px}.tree-folder>.current-file::after{height:9px;right:-8px}.wrap #templateside span.notice{margin-right:-5px;width:100%}.fileedit-sub .alignright{float:right;margin-top:15px;width:100%;text-align:right}.fileedit-sub #plugin,.fileedit-sub #theme{margin-right:0;max-width:70%}#documentation select[name=docs-list]{margin-right:0;max-width:60%}#comments-form .checkforspam,#wpfooter{display:none}.edit-comment-author{margin:2px 0 0}.filter-drawer .filter-group-feature input,.filter-drawer .filter-group-feature label{line-height:25px}.filter-drawer .filter-group-feature label{margin-right:32px}.wp-filter .button.drawer-toggle{font-size:13px;line-height:26px;height:28px}}@media screen and (max-width:600px){#wpwrap.wp-responsive-open,div#post-body.metabox-holder.columns-1{overflow-x:hidden}html.wp-toolbar{padding-top:0}#wpbody{padding-top:46px}.nav-tab-wrapper,.wrap h2.nav-tab-wrapper,h1.nav-tab-wrapper{border-bottom:0}h1 .nav-tab,h2 .nav-tab,h3 .nav-tab{margin:10px 0 0 10px;border-bottom:1px solid #ccc}}.options-media-php br{display:none}@media screen and (max-width:375px){.options-media-php input[type=number][name*="_size_"]{margin:5px 0}.options-media-php label[for*="_size_h"]:before{content:'';display:block}.options-media-php br{display:block}}@media screen and (max-width:320px){#network_dashboard_right_now .subsubsub{font-size:14px;text-align:right}} \ No newline at end of file + */.ui-draggable-handle,.ui-sortable-handle{touch-action:none}.accordion-section{border-bottom:1px solid #ddd;margin:0}.accordion-section.open .accordion-section-content,.no-js .accordion-section .accordion-section-content{display:block}.accordion-section.open:hover{border-bottom-color:#ddd}.accordion-section-content{display:none;padding:10px 20px 15px;overflow:hidden;background:#fff}.accordion-section-title{margin:0;padding:12px 15px 15px;position:relative;border-right:1px solid #ddd;border-left:1px solid #ddd;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.js .accordion-section-title{cursor:pointer}.js .accordion-section-title:after{position:absolute;top:12px;left:10px;z-index:1}.accordion-section-title:focus{outline:0}.accordion-section-title:focus:after,.accordion-section-title:hover:after{border-color:#a0a5aa transparent}.cannot-expand .accordion-section-title{cursor:auto}.cannot-expand .accordion-section-title:after{display:none}.control-section .accordion-section-title,.customize-pane-child .accordion-section-title{border-right:none;border-left:none;padding:10px 14px 11px 10px;line-height:21px;background:#fff}.control-section .accordion-section-title:after,.customize-pane-child .accordion-section-title:after{top:calc(50% - 10px)}.js .control-section .accordion-section-title:focus,.js .control-section .accordion-section-title:hover,.js .control-section.open .accordion-section-title,.js .control-section:hover .accordion-section-title{color:#23282d;background:#f5f5f5}.control-section.open .accordion-section-title{border-bottom:1px solid #ddd}.network-admin .edit-site-actions{margin-top:0}.my-sites{display:block;overflow:auto;zoom:1}.my-sites li{display:block;padding:8px 3%;min-height:130px;margin:0}@media only screen and (max-width:599px){.my-sites li{min-height:0}}@media only screen and (min-width:600px){.my-sites.striped li{background-color:#fff;position:relative}.my-sites.striped li:after{content:"";width:1px;height:100%;position:absolute;top:0;left:0;background:#ccc}}@media only screen and (min-width:600px) and (max-width:699px){.my-sites li{float:right;width:44%}.my-sites.striped li{background-color:#fff}.my-sites.striped li:nth-of-type(2n+1){clear:right}.my-sites.striped li:nth-of-type(2n+2):after{content:none}.my-sites li:nth-of-type(4n+1),.my-sites li:nth-of-type(4n+2){background-color:#f9f9f9}}@media only screen and (min-width:700px) and (max-width:1199px){.my-sites li{float:right;width:27.333333%;background-color:#fff}.my-sites.striped li:nth-of-type(3n+3):after{content:none}.my-sites li:nth-of-type(6n+1),.my-sites li:nth-of-type(6n+2),.my-sites li:nth-of-type(6n+3){background-color:#f9f9f9}}@media only screen and (min-width:1200px) and (max-width:1399px){.my-sites li{float:right;width:21%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(4n+1){clear:right}.my-sites.striped li:nth-of-type(4n+4):after{content:none}.my-sites li:nth-of-type(8n+1),.my-sites li:nth-of-type(8n+2),.my-sites li:nth-of-type(8n+3),.my-sites li:nth-of-type(8n+4){background-color:#f9f9f9}}@media only screen and (min-width:1400px) and (max-width:1599px){.my-sites li{float:right;width:16%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(5n+1){clear:right}.my-sites.striped li:nth-of-type(5n+5):after{content:none}.my-sites li:nth-of-type(10n+1),.my-sites li:nth-of-type(10n+2),.my-sites li:nth-of-type(10n+3),.my-sites li:nth-of-type(10n+4),.my-sites li:nth-of-type(10n+5){background-color:#f9f9f9}}@media only screen and (min-width:1600px){.my-sites li{float:right;width:12.666666%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(6n+1){clear:right}.my-sites.striped li:nth-of-type(6n+6):after{content:none}.my-sites li:nth-of-type(12n+1),.my-sites li:nth-of-type(12n+2),.my-sites li:nth-of-type(12n+3),.my-sites li:nth-of-type(12n+4),.my-sites li:nth-of-type(12n+5),.my-sites li:nth-of-type(12n+6){background-color:#f9f9f9}}.my-sites li a{text-decoration:none}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){div.star-holder,div.star-holder .star-rating{background:url(../images/stars-2x.png?ver=20121108) bottom left repeat-x;background-size:21px 37px}.spinner{background-image:url(../images/spinner-2x.gif)}#bulk-titles div a,#bulk-titles div a:hover,#screen-meta-links a.show-settings,.curtime #timestamp,.meta-box-sortables .postbox:hover .handlediv,.sidebar-name .toggle-indicator,.sidebar-name:hover .toggle-indicator,.widget-top .widget-action,.widget-top .widget-action:hover{background:0 0!important}}@-ms-viewport{width:device-width}@media screen and (max-width:782px){#col-left,#col-right,#templateside{float:none;width:auto}html.wp-toolbar{padding-top:46px}body{min-width:240px;overflow-x:hidden}body *{-webkit-tap-highlight-color:rgba(0,0,0,0)!important}#wpcontent{position:relative;margin-right:0;padding-right:10px}#wpbody-content{padding-bottom:100px}.wrap{margin-left:12px;margin-right:0}#col-left .col-wrap,#col-right .col-wrap{padding:0}#collapse-menu,#screen-meta,#screen-meta-links,.post-format-select{display:none!important}#documentation label[for=docs-list],.fileedit-sub .alignright label{display:block}.wrap h1.wp-heading-inline{margin-bottom:.5em}.wrap .add-new-h2,.wrap .add-new-h2:active,.wrap .page-title-action,.wrap .page-title-action:active{padding:10px 15px;font-size:14px;white-space:nowrap}.media-upload-form div.error,.notice,.wrap div.error,.wrap div.updated{margin:20px 0 10px;padding:5px 10px;font-size:14px;line-height:175%}.wp-core-ui .notice.is-dismissible{padding-left:46px}.notice-dismiss{padding:13px}.wrap .icon32+h2{margin-top:-2px}.wp-responsive-open #wpbody{left:-16em}code{word-wrap:break-word}.postbox{font-size:14px}.metabox-holder .postbox>h3,.metabox-holder .stuffbox>h3,.metabox-holder h2,.metabox-holder h3.hndle{padding:12px}.postbox .handlediv{margin-top:3px}.subsubsub{font-size:16px;text-align:center;margin-bottom:15px}#templateside>ul{border-right:1px solid #ddd}#templateside li{margin:0}#templateside li:not(.howto) a{display:block;padding:5px}#templateside li.howto{padding:12px}#templateside .highlight{padding:5px;margin-right:-5px;margin-top:-5px}#template .notice,#template>div{float:none;margin:1em 0;width:auto}#template .CodeMirror,#template textarea{box-sizing:border-box;width:100%}#templateside ul ul{padding-right:1.5em}[role=treeitem] .folder-label{display:block;padding:5px}#documentation input[type=button],.fileedit-sub input[type=submit]{margin-bottom:0;padding:8px 18px}.tree-folder .tree-folder::after,.tree-folder>li::after,.tree-folder>li::before{right:-8px}.tree-folder>li::before{top:0;height:13px}.tree-folder>.current-file::before{right:-5px;top:7px;width:4px}.tree-folder>.current-file::after{height:9px;right:-8px}.wrap #templateside span.notice{margin-right:-5px;width:100%}.fileedit-sub .alignright{float:right;margin-top:15px;width:100%;text-align:right}.fileedit-sub #plugin,.fileedit-sub #theme{margin-right:0;max-width:70%}#documentation select[name=docs-list]{margin-right:0;max-width:60%}#comments-form .checkforspam,#wpfooter{display:none}.edit-comment-author{margin:2px 0 0}.filter-drawer .filter-group-feature input,.filter-drawer .filter-group-feature label{line-height:25px}.filter-drawer .filter-group-feature label{margin-right:32px}.wp-filter .button.drawer-toggle{font-size:13px;line-height:26px;height:28px}}@media screen and (max-width:600px){#wpwrap.wp-responsive-open,div#post-body.metabox-holder.columns-1{overflow-x:hidden}html.wp-toolbar{padding-top:0}#wpbody{padding-top:46px}.nav-tab-wrapper,.wrap h2.nav-tab-wrapper,h1.nav-tab-wrapper{border-bottom:0}h1 .nav-tab,h2 .nav-tab,h3 .nav-tab{margin:10px 0 0 10px;border-bottom:1px solid #ccc}}@media screen and (max-width:320px){#network_dashboard_right_now .subsubsub{font-size:14px;text-align:right}} \ No newline at end of file diff --git a/wp-admin/css/common.css b/wp-admin/css/common.css index 0298dbdcb..ac3a7c6b6 100644 --- a/wp-admin/css/common.css +++ b/wp-admin/css/common.css @@ -2981,7 +2981,8 @@ img { /* Metabox collapse arrow indicators */ .sidebar-name .toggle-indicator:before, .js .meta-box-sortables .postbox .toggle-indicator:before, -.bulk-action-notice .toggle-indicator:before { +.bulk-action-notice .toggle-indicator:before, +.privacy-text-box .toggle-indicator:before { content: "\f142"; display: inline-block; font: normal 20px/1 dashicons; @@ -2993,7 +2994,8 @@ img { .js .widgets-holder-wrap.closed .toggle-indicator:before, .js .meta-box-sortables .postbox.closed .handlediv .toggle-indicator:before, -.bulk-action-notice .bulk-action-errors-collapsed .toggle-indicator:before { +.bulk-action-notice .bulk-action-errors-collapsed .toggle-indicator:before, +.privacy-text-box.closed .toggle-indicator:before { content: "\f140"; } @@ -3943,23 +3945,6 @@ img { } } -.options-media-php br { - display: none; -} - -@media screen and (max-width: 375px) { - .options-media-php input[type="number"][name*="_size_"] { - margin: 5px 0; - } - .options-media-php label[for*="_size_h"]:before { - content: ''; - display: block; - } - .options-media-php br { - display: block; - } -} - @media screen and (max-width: 320px) { /* Prevent default center alignment and larger font for the Right Now widget when the network dashboard is viewed on a small mobile device. */ diff --git a/wp-admin/css/common.min.css b/wp-admin/css/common.min.css index e602ef623..7be7bcde6 100644 --- a/wp-admin/css/common.min.css +++ b/wp-admin/css/common.min.css @@ -1,9 +1,9 @@ /*! This file is auto-generated */ -.button.updated-message,a{transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out}#ajax-loading,.ajax-feedback,.ajax-loading,.imgedit-wait-spin,.list-ajax-loading,.spinner,.wp-header-end{visibility:hidden}.filter-group,.postbox-container .meta-box-sortables,.wp-filter,html.wp-toolbar{box-sizing:border-box}#docs-list,#plugin-information .section,#template textarea,.code,.ltr,code{direction:ltr}#wpwrap{height:auto;min-height:100%;width:100%;position:relative;-webkit-font-smoothing:subpixel-antialiased}#wpcontent{height:100%;padding-left:20px}#wpcontent,#wpfooter{margin-left:160px}.folded #wpcontent,.folded #wpfooter{margin-left:36px}#wpbody-content{padding-bottom:65px;float:left;width:100%;overflow:visible!important}.inner-sidebar{float:right;clear:right;display:none;width:281px;position:relative}.columns-2 .inner-sidebar{margin-right:auto;width:286px;display:block}.columns-2 .inner-sidebar #side-sortables,.inner-sidebar #side-sortables{min-height:300px;width:280px;padding:0}.has-right-sidebar .inner-sidebar{display:block}.has-right-sidebar #post-body{float:left;clear:left;width:100%;margin-right:-2000px}.has-right-sidebar #post-body-content{margin-right:300px;float:none;width:auto}#col-left{float:left;width:35%}#col-right{float:right;width:65%}#col-left .col-wrap{padding:0 6px 0 0}#col-right .col-wrap{padding:0 0 0 6px}.alignleft{float:left}.alignright{float:right}#publishing-action .spinner,#save-post,.subsubsub{float:left}.textleft{text-align:left}.textright{text-align:right}.clear{clear:both}.wp-clearfix:after{content:"";display:table;clear:both}.screen-reader-text,.screen-reader-text span,.ui-helper-hidden-accessible{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}#templateside,.misc-pub-filename,.pre,.widefat *{word-wrap:break-word}.screen-reader-shortcut{position:absolute;top:-1000em}.screen-reader-shortcut:focus{left:6px;top:-25px;height:auto;width:auto;display:block;font-size:14px;font-weight:600;padding:15px 23px 14px;background:#f1f1f1;color:#0073aa;z-index:100000;line-height:normal;box-shadow:0 0 2px 2px rgba(0,0,0,.6);text-decoration:none;outline:0}.hidden,.js .closed .inside,.js .hide-if-js,.js .wp-core-ui .hide-if-js,.js.wp-core-ui .hide-if-js,.no-js .hide-if-no-js,.no-js .wp-core-ui .hide-if-no-js,.no-js.wp-core-ui .hide-if-no-js{display:none}#menu-management .menu-edit,#menu-settings-column .accordion-container,.comment-ays,.feature-filter,.imgedit-group,.manage-menus,.menu-item-handle,.popular-tags,.stuffbox,.widget-inside,.widget-top,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04)}.comment-ays,.feature-filter,.imgedit-group,.popular-tags,.stuffbox,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{background:#fff}body,html{height:100%;margin:0;padding:0}body{background:#f1f1f1;color:#444;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:13px;line-height:1.4em;min-width:600px}body.iframe{min-width:0;padding-top:1px}body.modal-open{overflow:hidden}body.mobile.modal-open #wpwrap{overflow:hidden;position:fixed;height:100%}iframe,img{border:0}td{font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit}a{color:#0073aa}a,div{outline:0}a:active,a:hover{color:#00a0d2}.wp-person a:focus .gravatar,a:focus,a:focus .media-icon img{color:#124964;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}h1,h2,h3{color:#23282d}.ie8 a:focus{outline:#5b9dd9 solid 1px}#adminmenu a:focus,.screen-reader-text:focus{box-shadow:none;outline:0}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}p{font-size:13px;line-height:1.5;margin:1em 0}blockquote{margin:1em}dd,li{margin-bottom:6px}h1,h2,h3,h4,h5,h6{display:block;font-weight:600}h1{font-size:2em;margin:.67em 0}h2,h3{font-size:1.3em;margin:1em 0}.update-core-php h2{margin-top:2em}.update-messages h2,.update-php h2,h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}ol,ul{padding:0}ul{list-style:none}ol{list-style-type:decimal;margin-left:2em}ul.ul-disc{list-style:disc}ul.ul-square{list-style:square}ol.ol-decimal{list-style:decimal}ol.ol-decimal,ul.ul-disc,ul.ul-square{margin-left:1.8em}ol.ol-decimal>li,ul.ul-disc>li,ul.ul-square>li{margin:0 0 .5em}.code,code{font-family:Consolas,Monaco,monospace;unicode-bidi:embed}code,kbd{padding:3px 5px 2px;margin:0 1px;background:#eaeaea;background:rgba(0,0,0,.07);font-size:13px}.subsubsub{list-style:none;margin:8px 0 0;padding:0;font-size:13px;color:#666}.subsubsub a{line-height:2;padding:.2em;text-decoration:none}.subsubsub a .count,.subsubsub a.current .count{color:#555d66;font-weight:400}.subsubsub a.current{font-weight:600;border:none}.subsubsub li{display:inline-block;margin:0;padding:0;white-space:nowrap}.widefat{border-spacing:0;width:100%;clear:both;margin:0}.widefat a,.widefat button.button-link{text-decoration:none}.widefat td,.widefat th{padding:8px 10px}.widefat thead td,.widefat thead th{border-bottom:1px solid #e1e1e1}.widefat tfoot td,.widefat tfoot th{border-top:1px solid #e1e1e1;border-bottom:none}.widefat .no-items td{border-bottom-width:0}.widefat td{vertical-align:top}.widefat td,.widefat td ol,.widefat td p,.widefat td ul{font-size:13px;line-height:1.5em}.widefat tfoot td,.widefat th,.widefat thead td{text-align:left;line-height:1.3em;font-size:14px}.updates-table td input,.widefat tfoot td input,.widefat th input,.widefat thead td input{margin:0 0 0 8px;padding:0;vertical-align:text-top}.widefat .check-column{width:2.2em;padding:6px 0 25px;vertical-align:top}.updates-table tbody td.check-column,.widefat tbody th.check-column,.widefat tfoot td.check-column,.widefat thead td.check-column{padding:11px 0 0 3px}.widefat tfoot td.check-column,.widefat thead td.check-column{padding-top:4px;vertical-align:middle}.update-php div.error,.update-php div.updated{margin-left:0}.no-js .widefat tfoot .check-column input,.no-js .widefat thead .check-column input{display:none}.column-comments,.column-links,.column-posts,.widefat .num{text-align:center}.widefat th#comments{vertical-align:middle}.wrap{margin:10px 20px 0 2px}.postbox .inside h2,.wrap [class$=icon32]+h2,.wrap h1,.wrap>h2:first-child{font-size:23px;font-weight:400;margin:0;padding:9px 0 4px;line-height:29px}.wrap h1.wp-heading-inline{display:inline-block;margin-right:5px}.wp-header-end{margin:-2px 0 0}.subtitle{margin:0;padding-left:25px;color:#555d66;font-size:14px;font-weight:400;line-height:1}.wrap .add-new-h2,.wrap .add-new-h2:active,.wrap .page-title-action,.wrap .page-title-action:active{margin-left:4px;padding:4px 8px;position:relative;top:-3px;text-decoration:none;border:none;border:1px solid #ccc;border-radius:2px;background:#f7f7f7;text-shadow:none;font-weight:600;font-size:13px;line-height:normal;color:#0073aa;cursor:pointer;outline:0}.wrap .wp-heading-inline+.page-title-action{margin-left:0}.wrap .add-new-h2:hover,.wrap .page-title-action:hover{border-color:#008EC2;background:#00a0d2;color:#fff}.page-title-action:focus{color:#124964}.ac_match,.highlight,.subsubsub a.current{color:#000}.wrap .page-title-action:focus{border-color:#5b9dd9;box-shadow:0 0 2px rgba(30,140,190,.8)}.wrap h1.long-header{padding-right:0}.wp-dialog{background-color:#fff}#available-widgets .widget-top:hover,#widgets-left .widget-in-question .widget-top,#widgets-left .widget-top:hover,.widgets-chooser ul,div#widgets-right .widget-top:hover{border-color:#999;box-shadow:0 1px 2px rgba(0,0,0,.1)}.sorthelper{background-color:#ccf3fa}.alternate,.striped>tbody>:nth-child(odd),ul.striped>:nth-child(odd){background-color:#f9f9f9}.bar{background-color:#e8e8e8;border-right-color:#99d}.highlight{background-color:#e4f2fd}.wp-ui-primary{color:#fff;background-color:#32373c}.wp-ui-text-primary{color:#32373c}.wp-ui-highlight{color:#fff;background-color:#1e8cbe}.wp-ui-text-highlight{color:#1e8cbe}.wp-ui-notification{color:#fff;background-color:#d54e21}.wp-ui-text-notification{color:#d54e21}.wp-ui-text-icon{color:#82878c}img.emoji{display:inline!important;border:none!important;height:1em!important;width:1em!important;margin:0 .07em!important;vertical-align:-.1em!important;background:0 0!important;padding:0!important;box-shadow:none!important}#nav-menu-footer,#nav-menu-header,#your-profile #rich_editing,.checkbox,.control-section .accordion-section-title,.menu-item-handle,.postbox .hndle,.side-info,.sidebar-name,.stuffbox .hndle,.widefat tfoot td,.widefat tfoot th,.widefat thead td,.widefat thead th,.widget .widget-top{line-height:1.4em}.menu-item-handle,.widget .widget-top{background:#fafafa;color:#23282d}.postbox .hndle,.stuffbox .hndle{border-bottom:1px solid #eee;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.quicktags,.search{background-color:#ccc;color:#000;font-size:12px}.icon32{display:none}#bulk-titles div a:before,.notice-dismiss:before,.tagchecklist .ntdelbutton .remove-tag-icon:before,.welcome-panel .welcome-panel-close:before{background:0 0;color:#72777c;content:"\f153";display:block;font:400 16px/20px dashicons;speak:none;height:20px;text-align:center;width:20px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.welcome-panel .welcome-panel-close:before{margin:0}#bulk-titles div a:before{margin:1px 0}.tagchecklist .ntdelbutton .remove-tag-icon:before{margin-left:2px;border-radius:50%;color:#0073aa;line-height:1.28}.tagchecklist .ntdelbutton:focus{outline:0}#bulk-titles div a:focus:before,#bulk-titles div a:hover:before,.tagchecklist .ntdelbutton:focus .remove-tag-icon:before,.tagchecklist .ntdelbutton:hover .remove-tag-icon:before,.welcome-panel .welcome-panel-close:focus:before,.welcome-panel .welcome-panel-close:hover:before{color:#c00}.tagchecklist .ntdelbutton:focus .remove-tag-icon:before{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.key-labels label{line-height:24px}b,strong{font-weight:600}.pre{white-space:pre-wrap}#namediv td.first,.nav-tab,.no-break,.star-rating{white-space:nowrap}.howto{color:#666;font-style:italic;display:block}p.install-help{margin:8px 0;font-style:italic}hr{border:0;border-top:1px solid #ddd;border-bottom:1px solid #fafafa}#all-plugins-table .plugins a.delete,#delete-link a.delete,#media-items a.delete,#media-items a.delete-permanently,#nav-menu-footer .menu-delete,#search-plugins-table .plugins a.delete,.plugins a.delete,.row-actions span.delete a,.row-actions span.spam a,.row-actions span.trash a,.submitbox .submitdelete{color:#a00}#all-plugins-table .plugins a.delete:hover,#delete-link a.delete:hover,#media-items a.delete-permanently:hover,#media-items a.delete:hover,#nav-menu-footer .menu-delete:hover,#search-plugins-table .plugins a.delete:hover,.file-error,.plugins a.delete:hover,.row-actions .delete a:hover,.row-actions .spam a:hover,.row-actions .trash a:hover,.submitbox .submitdelete:hover,abbr.required,span.required{color:#dc3232;border:none}#major-publishing-actions{padding:10px;clear:both;border-top:1px solid #ddd;background:#f5f5f5}#delete-action{float:left;line-height:28px}#delete-link{line-height:28px;vertical-align:middle;text-align:left;margin-left:8px}#delete-link a{text-decoration:none}#publishing-action{text-align:right;float:right;line-height:23px}#misc-publishing-actions{padding:6px 0 0}.misc-pub-section{padding:6px 10px 8px}#minor-publishing-actions{padding:10px 10px 0;text-align:right}.preview{float:right}#sticky-span{margin-left:18px}.approve,.unapproved .unapprove{display:none}.spam .approve,.trash .approve,.unapproved .approve{display:inline}td.action-links,th.action-links{text-align:right}#misc-publishing-actions .notice{margin-left:10px;margin-right:10px}.wp-filter{display:inline-block;position:relative;margin:12px 0 25px;padding:0 10px;width:100%;box-shadow:0 1px 1px rgba(0,0,0,.04);border:1px solid #e5e5e5;background:#fff;color:#555;font-size:13px}.wp-filter a{text-decoration:none}.filter-count{display:inline-block;vertical-align:middle;min-width:4em}.filter-count .count,.title-count{display:inline-block;position:relative;top:-1px;padding:4px 10px;border-radius:30px;background:#72777c;color:#fff;font-size:14px;font-weight:600}.title-count{display:inline;top:-3px;margin-left:5px;margin-right:20px}.filter-links li>a,.wp-filter .search-form.search-plugins{display:inline-block}.filter-items{float:left}.filter-links,.filter-links li{display:inline-block;margin:0}.filter-links li>a{margin:0 10px;padding:15px 0;border-bottom:4px solid #fff;color:#666;cursor:pointer}.filter-links .current{box-shadow:none;border-bottom:4px solid #666;color:#23282d}.filter-links li>a:focus,.filter-links li>a:hover,.show-filters .filter-links a.current:focus,.show-filters .filter-links a.current:hover{color:#00a0d2}.wp-filter .search-form{float:right;margin:10px 0}.wp-filter .search-form input[type=search]{margin:0;padding:3px 5px;width:280px;max-width:100%;font-size:16px;font-weight:300;line-height:1.5}.wp-filter .search-form select{margin:0;height:32px;vertical-align:top}.wp-filter .button.drawer-toggle{margin:10px 9px 0;padding:0 10px 0 6px;border-color:transparent;background-color:transparent;color:#666;vertical-align:baseline;box-shadow:none}.wp-filter .drawer-toggle:before{content:"\f111";margin:0 5px 0 0;color:#72777c;font:400 16px/1 dashicons;vertical-align:text-bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-filter .button.drawer-toggle:focus,.wp-filter .button.drawer-toggle:hover,.wp-filter .drawer-toggle:focus:before,.wp-filter .drawer-toggle:hover:before{background-color:transparent;color:#00a0d2}.wp-filter .button.drawer-toggle:focus:active,.wp-filter .button.drawer-toggle:hover{border-color:transparent}.wp-filter .button.drawer-toggle:focus{border-color:#5b9dd9}.wp-filter .button.drawer-toggle:active{background:0 0;box-shadow:none;-webkit-transform:none;transform:none}.wp-filter .drawer-toggle.current:before{color:#fff}.filter-drawer,.wp-filter .favorites-form{display:none;margin:0 -10px 0 -20px;padding:20px;border-top:1px solid #eee;background:#fafafa;overflow:hidden}.show-favorites-form .favorites-form,.show-filters .filter-drawer{display:block}.show-filters .filter-links a.current{border-bottom:none}.show-filters .wp-filter .button.drawer-toggle{border-radius:2px;background:#72777c;color:#fff}.filter-group,.filtered-by .tag{border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04)}.show-filters .wp-filter .drawer-toggle:focus,.show-filters .wp-filter .drawer-toggle:hover{background:#2ea2cc}.show-filters .wp-filter .drawer-toggle:before{color:#fff}.filter-group{position:relative;float:left;margin:0 1% 0 0;padding:20px 10px 10px;width:24%;background:#fff}.filter-group legend{position:absolute;top:10px;display:block;margin:0;padding:0;font-size:1em;font-weight:600}.filter-drawer .filter-group-feature{margin:28px 0 0;list-style-type:none;font-size:12px}.filter-drawer .filter-group-feature input,.filter-drawer .filter-group-feature label{line-height:16px}.filter-drawer .filter-group-feature input{position:absolute;margin:0}.filter-group .filter-group-feature label{display:block;margin:14px 0 14px 23px}.filter-drawer .buttons{clear:both;margin-bottom:20px}.filter-drawer .filter-group+.buttons{margin-bottom:0;padding-top:20px}.filter-drawer .buttons .button span{display:inline-block;opacity:.8;font-size:12px;text-indent:10px}.wp-filter .button.clear-filters{display:none;margin-left:10px}.wp-filter .button-link.edit-filters{padding:0 5px;line-height:28px}.filtered-by{display:none;margin:0}.filtered-by>span{font-weight:600}.filtered-by a{margin-left:10px}.filtered-by .tags{display:inline}.filtered-by .tag{margin:0 5px;padding:4px 8px;background:#fff;font-size:11px}.filters-applied .filter-drawer .buttons,.filters-applied .filter-drawer br,.filters-applied .filter-group{display:none!important}.filters-applied .filtered-by{display:block}.filters-applied .filter-drawer{padding:20px}.error .content-filterable,.loading-content .content-filterable,.show-filters .content-filterable,.show-filters .favorites-form,.show-filters.filters-applied.loading-content .content-filterable{display:none}.show-filters.filters-applied .content-filterable{display:block}.loading-content .spinner{display:block;margin:40px auto 0;float:none}@media only screen and (max-width:1120px){.filter-drawer{border-bottom:1px solid #eee}.filter-group{margin-bottom:0;margin-top:5px;width:100%}.filter-group li{margin:10px 0}}@media only screen and (max-width:1000px){.filter-items{float:none}.wp-filter .media-toolbar-primary,.wp-filter .media-toolbar-secondary,.wp-filter .search-form{float:none;position:relative;max-width:100%}}@media only screen and (max-width:782px){.filter-group li{padding:0;width:50%}}@media only screen and (max-width:320px){.filter-count{display:none}.wp-filter .drawer-toggle{margin:10px 0}.filter-group li,.wp-filter .search-form input[type=search]{width:100%}}.notice,div.error,div.updated{background:#fff;border-left:4px solid #fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:5px 15px 2px;padding:1px 12px}div[class=update-message]{padding:.5em 12px .5em 0}.form-table td .notice p,.notice p,.notice-title,div.error p,div.updated p{margin:.5em 0;padding:2px}.error a{text-decoration:underline}.updated a{padding-bottom:2px}.notice-alt{box-shadow:none}.notice-large{padding:10px 20px}.notice-title{display:inline-block;color:#23282d;font-size:18px}.wp-core-ui .notice.is-dismissible{padding-right:38px;position:relative}.notice-dismiss{position:absolute;top:0;right:1px;border:none;margin:0;padding:9px;background:0 0;color:#72777c;cursor:pointer}.notice-dismiss:active:before,.notice-dismiss:focus:before,.notice-dismiss:hover:before{color:#c00}.notice-dismiss:focus{outline:0;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ie8 .notice-dismiss:focus{outline:#5b9dd9 solid 1px}.notice-success,div.updated{border-left-color:#46b450}.notice-success.notice-alt{background-color:#ecf7ed}.notice-warning{border-left-color:#ffb900}.notice-warning.notice-alt{background-color:#fff8e5}.notice-error,div.error{border-left-color:#dc3232}.notice-error.notice-alt{background-color:#fbeaea}.notice-info{border-left-color:#00a0d2}.notice-info.notice-alt{background-color:#e5f5fa}.button.installed:before,.button.installing:before,.button.updated-message:before,.button.updating-message:before,.import-php .updating-message:before,.update-message p:before,.updated-message p:before,.updating-message p:before{display:inline-block;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.media-upload-form .notice,.media-upload-form div.error,.wrap .notice,.wrap div.error,.wrap div.updated{margin:5px 0 15px}.wrap #templateside .notice{display:block;margin:0;padding:5px 8px;font-weight:600;text-decoration:none}.wrap #templateside span.notice{margin-left:-12px}#templateside li.notice a{padding:0}.button.installing:before,.button.updating-message:before,.import-php .updating-message:before,.update-message p:before,.updating-message p:before{color:#f56e28;content:"\f463"}.button.installing:before,.button.updating-message:before,.import-php .updating-message:before,.updating-message p:before{-webkit-animation:rotation 2s infinite linear;animation:rotation 2s infinite linear}.button.updated-message:before,.installed p:before,.updated-message p:before{color:#79ba49;content:'\f147'}.update-message.notice-error p:before{color:#dc3232;content:"\f534"}.import-php .updating-message:before,.wrap .notice p:before{margin-right:6px;vertical-align:bottom}#update-nag,.update-nag{display:inline-block;line-height:19px;padding:11px 15px;font-size:14px;text-align:left;margin:25px 20px 0 2px;background-color:#fff;border-left:4px solid #ffba00;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}#screen-meta,ul#dismissed-updates{display:none}form.upgrade{margin-top:8px}form.upgrade .hint{font-style:italic;font-size:85%;margin:-.5em 0 2em}.update-php .spinner{float:none;margin:-4px 0}#ajax-response.alignleft{margin-left:2em}.button.installed:before,.button.installing:before,.button.updated-message:before,.button.updating-message:before{margin:3px 5px 0 -2px}.button-primary.updating-message:before{color:#fff}.button-primary.updated-message:before{color:#66c6e4}@media aural{.button.installed:before,.button.installing:before,.update-message p:before,.wrap .notice p:before{speak:none}}#adminmenu a,#catlist a,#taglist a{text-decoration:none}#contextual-help-wrap,#screen-options-wrap{margin:0;padding:8px 20px 12px;position:relative}#contextual-help-wrap{overflow:auto;margin-left:0!important}#screen-meta-links{margin:0 20px 0 0}#screen-meta{margin:0 20px -1px 0;position:relative;background-color:#fff;border:1px solid #ddd;border-top:none;box-shadow:0 1px 0 rgba(0,0,0,.025)}#contextual-help-link-wrap,#screen-options-link-wrap{float:right;height:28px;margin:0 0 0 6px;border:1px solid #ddd;border-top:none;background:#fff;box-shadow:0 1px 1px -1px rgba(0,0,0,.1)}#screen-meta-links .screen-meta-toggle{position:relative;top:0}#screen-meta-links .show-settings{border:0;background:0 0;border-radius:0;color:#72777c;line-height:1.7;padding:3px 6px 3px 16px}#screen-meta-links .show-settings:active,#screen-meta-links .show-settings:focus,#screen-meta-links .show-settings:hover{color:#32373c}#screen-meta-links .show-settings:active{box-shadow:none;-webkit-transform:none;transform:none}#screen-meta-links .show-settings:after{right:0;content:"\f140";font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 5px 0 0;bottom:2px;position:relative;vertical-align:bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#72777c}#templateside ul li a,.contextual-help-tabs a,.nav-tab{text-decoration:none}#screen-meta-links .screen-meta-active:after{content:"\f142"}.toggle-arrow{background-repeat:no-repeat;background-position:top left;background-color:transparent;height:22px;line-height:22px;display:block}.toggle-arrow-active{background-position:bottom left}#contextual-help-wrap h5,#screen-options-wrap h5,#screen-options-wrap legend{margin:0;padding:8px 0;font-size:13px;font-weight:600}.hndle a,.widefat tfoot td,.widefat th,.widefat thead td{font-weight:400}.ie8 #screen-options-wrap legend{color:inherit}.metabox-prefs label{display:inline-block;padding-right:15px;line-height:30px}#number-of-columns{display:inline-block;vertical-align:middle;line-height:30px}.metabox-prefs input[type=checkbox]{margin-top:0;margin-right:6px}.metabox-prefs label input,.metabox-prefs label input[type=checkbox]{margin:-4px 5px 0 0}.metabox-prefs .columns-prefs label input{margin:-1px 2px 0 0}.metabox-prefs label a{display:none}.metabox-prefs .screen-options input,.metabox-prefs .screen-options label{margin-top:0;margin-bottom:0;vertical-align:middle}.metabox-prefs .screen-options .screen-per-page{margin-right:15px}.metabox-prefs .screen-options label{line-height:28px;padding-right:0}.screen-options+.screen-options{margin-top:10px}.metabox-prefs .submit{margin-top:1em;padding:0}#contextual-help-wrap{padding:0}#contextual-help-columns{position:relative}#contextual-help-back{position:absolute;top:0;bottom:0;left:150px;right:170px;border:1px solid #e1e1e1;border-top:none;border-bottom:none;background:#f6fbfd}#contextual-help-wrap.no-sidebar #contextual-help-back{right:0;border-right-width:0;border-bottom-right-radius:2px}.contextual-help-tabs{float:left;width:150px;margin:0}.contextual-help-tabs ul{margin:1em 0}.contextual-help-tabs li{margin-bottom:0;list-style-type:none;border-style:solid;border-width:0 0 0 2px;border-color:transparent}.contextual-help-tabs a{display:block;padding:5px 5px 5px 12px;line-height:18px;border:1px solid transparent;border-right:none;border-left:none}.contextual-help-tabs a:hover{color:#32373c}.contextual-help-tabs .active{padding:0;margin:0 -1px 0 0;border-left:2px solid #00a0d2;background:#f6fbfd;box-shadow:0 2px 0 rgba(0,0,0,.02),0 1px 0 rgba(0,0,0,.02)}.contextual-help-tabs .active a{border-color:#e1e1e1;color:#32373c}.contextual-help-tabs-wrap{padding:0 20px;overflow:auto}.help-tab-content{display:none;margin:0 22px 12px 0;line-height:1.6em}.help-tab-content.active{display:block}.help-tab-content ul li{list-style-type:disc;margin-left:18px}.contextual-help-sidebar{width:150px;float:right;padding:0 8px 0 12px;overflow:auto}html.wp-toolbar{padding-top:32px}.widefat td,.widefat th{color:#555}.widefat ol,.widefat p,.widefat tfoot tr td,.widefat tfoot tr th,.widefat thead tr td,.widefat thead tr th,.widefat ul{color:#32373c}.widefat td p{margin:2px 0 .8em}.widefat .column-comment p{margin:.6em 0}.widefat .column-comment ul{list-style:outside;margin-left:2em}.postbox-container{float:left}#wpbody-content .metabox-holder{padding-top:10px}.metabox-holder .postbox-container .empty-container{border:3px dashed #b4b9be;height:250px;position:relative}.metabox-holder .postbox-container .empty-container:after{content:attr(data-emptystring);margin:auto;position:absolute;top:0;left:0;bottom:0;right:0;height:1em;width:200px;text-align:center;color:#ccc;font-size:18px;display:none}.columns-2 #postbox-container-3 .empty-container,.columns-2 #postbox-container-4 .empty-container,.columns-3 #postbox-container-4 .empty-container,.metabox-holder.columns-1 .postbox-container .empty-container{border:0;height:0;min-height:0}#post-body-content{width:100%;min-width:463px;float:left}#post-body.columns-2 #postbox-container-1{float:right;margin-right:-300px;width:280px}#post-body.columns-2 #side-sortables{min-height:250px}@media only screen and (max-width:799px){#wpbody-content .metabox-holder .postbox-container .empty-container{border:0;height:0;min-height:0}}.js .postbox .hndle,.js .widget .widget-top{cursor:move}.hndle a{font-size:11px}#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:hover,#dashboard_right_now .versions .b,#ed_reply_toolbar #ed_reply_strong,#pass-strength-result.short,#pass-strength-result.strong,#post-status-display,#post-visibility-display,.feature-filter .feature-name,.item-controls .item-order a,.media-item .percent,.nav-tab,.plugins .name{font-weight:600}.postbox .handlediv{display:none;float:right;width:36px;height:36px;margin:0;padding:0;border:0;background:0 0;cursor:pointer}.js .postbox .handlediv{display:block}.sortable-placeholder{border:1px dashed #b4b9be;margin-bottom:20px}.postbox,.stuffbox{margin-bottom:20px;padding:0;line-height:1}.postbox .inside,.stuffbox .inside{padding:0 12px 12px;line-height:1.4em;font-size:13px}.postbox .inside{margin:11px 0;position:relative}.postbox .inside>p:last-child,.rss-widget ul li:last-child{margin-bottom:1px!important}.postbox.closed h3{border:none;box-shadow:none}.postbox table.form-table{margin-bottom:0}.postbox table.widefat{box-shadow:none}.temp-border{border:1px dotted #ccc}.columns-prefs label{padding:0 10px 0 0}#wpfooter{position:absolute;bottom:0;left:0;right:0;padding:10px 20px;color:#555d66}#wpfooter p{font-size:13px;margin:0;line-height:20px}#footer-thankyou{font-style:italic}.nav-tab{float:left;border:1px solid #ccc;border-bottom:none;margin-left:.5em;padding:5px 10px;font-size:14px;line-height:24px;background:#e5e5e5;color:#555}.nav-tab-small .nav-tab,h3 .nav-tab{padding:5px 14px;font-size:12px;line-height:16px}.nav-tab:focus,.nav-tab:hover{background-color:#fff;color:#444}.nav-tab-active,.nav-tab:focus:active{box-shadow:none}.nav-tab-active{margin-bottom:-1px;color:#444}.nav-tab-active,.nav-tab-active:focus,.nav-tab-active:focus:active,.nav-tab-active:hover{border-bottom:1px solid #f1f1f1;background:#f1f1f1;color:#000}.nav-tab-wrapper,.wrap h2.nav-tab-wrapper,h1.nav-tab-wrapper{border-bottom:1px solid #ccc;margin:0;padding-top:9px;padding-bottom:0;line-height:inherit}.nav-tab-wrapper:not(.wp-clearfix):after{content:"";display:table;clear:both}.ie8 .nav-tab-wrapper{display:inline-block;width:100%;vertical-align:top}.spinner{background:url(../images/spinner.gif) no-repeat;background-size:20px 20px;display:inline-block;float:right;vertical-align:middle;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:4px 10px 0}.loading-content .spinner,.spinner.is-active{visibility:visible}#template>div{margin-right:16em}#template .notice{margin-top:1em;margin-right:3%}#template .notice p{width:auto}#template .submit .spinner{float:none}.metabox-holder .postbox>h3,.metabox-holder .stuffbox>h3,.metabox-holder h2.hndle,.metabox-holder h3.hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.nav-menus-php .metabox-holder h3{padding:10px 10px 11px 14px;line-height:21px}.plugin-install #description,.plugin-install-network #description{width:60%}table .column-rating,table .column-visible,table .vers{text-align:left}.attention,.error-message{color:#dc3232;font-weight:600}body.iframe{height:98%}.lp-show-latest p{display:none}#howto,.importer-action,.importer-desc,.importer-title{display:block}.lp-show-latest .lp-error p,.lp-show-latest p:last-child{display:block}.media-icon{width:62px;text-align:center}.media-icon img{border:1px solid #e5e5e5;border:1px solid rgba(0,0,0,.07)}#howto{font-size:11px;margin:0 5px}.importers{font-size:16px;width:auto}.importers td{padding-right:14px;line-height:1.5em}.importers .import-system{max-width:250px}.importers td.desc{max-width:500px}.post-categories,.post-categories li{display:inline}.importer-title{color:#000;font-size:14px;font-weight:400;margin-bottom:.2em}.importer-action{line-height:20px;color:#555;margin-bottom:1em}#post-body #post-body-content #namediv h2,#post-body #post-body-content #namediv h3{margin-top:0}.edit-comment-author{font-size:14px;line-height:1.4;font-weight:600;color:#222;margin:2px 0 0 9px}#namediv h2 label,#namediv h3 label{vertical-align:baseline}#namediv table{width:100%}#namediv td.first{width:10px}#namediv input{width:98%}#namediv p{margin:10px 0}#submitdiv h3{margin-bottom:0!important}.checkbox,.post-categories,.zerosize,fieldset{margin:0;padding:0}.zerosize{height:0;width:0;border:0;overflow:hidden;position:absolute}br.clear{height:2px;line-height:2px}.checkbox{border:none}fieldset{border:0}div.star-holder{position:relative;height:17px;width:100px;background:url(../images/stars.png?ver=20121108) bottom left repeat-x}div.star-holder .star-rating{background:url(../images/stars.png?ver=20121108) top left repeat-x;height:17px;float:left}.star-rating .star{display:inline-block;width:20px;height:20px;-webkit-font-smoothing:antialiased;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;vertical-align:top;transition:color .1s ease-in 0;text-align:center;color:#ffb900}.star-rating .star-full:before{content:"\f155"}.star-rating .star-half:before{content:"\f459"}.rtl .star-rating .star-half{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}.star-rating .star-empty:before{content:"\f154"}div.action-links{font-weight:400;margin:6px 0 0}#plugin-information{background:#fff;position:fixed;top:0;right:0;bottom:0;left:0;height:100%;padding:0}#plugin-information-scrollable{overflow:auto;-webkit-overflow-scrolling:touch;height:100%}#plugin-information-title{padding:0 26px;background:#f5f5f5;font-size:22px;font-weight:600;line-height:56px;position:relative;height:56px}#plugin-information-title.with-banner{margin-right:0;height:250px;background-size:cover}#plugin-information-title h2{font-size:1em;font-weight:600;padding:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#plugin-information-title.with-banner h2{position:relative;font-family:"Helvetica Neue",sans-serif;display:inline-block;font-size:30px;line-height:50px;box-sizing:border-box;max-width:100%;padding:0 15px;margin-top:174px;color:#fff;background:rgba(30,30,30,.9);text-shadow:0 1px 3px rgba(0,0,0,.4);box-shadow:0 0 30px rgba(255,255,255,.1);border-radius:8px}#plugin-information-title div.vignette{display:none}#plugin-information-title.with-banner div.vignette{position:absolute;display:block;top:0;left:0;height:250px;width:100%;background:0 0;box-shadow:inset 0 0 50px 4px rgba(0,0,0,.2),inset 0 -1px 0 rgba(0,0,0,.1)}#plugin-information-tabs{padding:0 16px;position:relative;right:0;left:0;min-height:36px;font-size:0;z-index:1;border-bottom:1px solid #ddd;background:#f3f3f3}#plugin-information-tabs a{position:relative;display:inline-block;padding:9px 10px;margin:0;height:18px;line-height:18px;font-size:14px;text-decoration:none;transition:none}#plugin-information-tabs a.current{margin:0 -1px -1px;background:#fff;border:1px solid #ddd;border-bottom-color:#fff;padding-top:8px;color:#32373c}#plugin-information-tabs.with-banner a.current{border-top:none;padding-top:9px}#plugin-information-tabs a:active,#plugin-information-tabs a:focus{outline:0}#plugin-information-content{overflow:hidden;background:#fff;position:relative;top:0;right:0;left:0;min-height:100%;min-height:calc(100% - 152px)}#plugin-information-content.with-banner{min-height:calc(100% - 346px)}#section-holder{position:relative;top:0;right:250px;bottom:0;left:0;margin-right:250px;padding:10px 26px 99999px;margin-bottom:-99939px}#section-holder .updated{margin:16px 0}#plugin-information .fyi{float:right;position:relative;top:0;right:0;padding:16px 16px 99999px;margin-bottom:-99939px;width:217px;border-left:1px solid #ddd;background:#f3f3f3;color:#666}#plugin-information .fyi strong{color:#444}#plugin-information .fyi h3{font-weight:600;text-transform:uppercase;font-size:12px;color:#666;margin:24px 0 8px}#plugin-information .fyi h2{font-size:.9em;margin-bottom:0;margin-right:0}#plugin-information .fyi ul{padding:0;margin:0;list-style:none}#plugin-information .fyi li{margin:0 0 10px}#plugin-information .fyi-description{margin-top:0}#plugin-information .counter-container{margin:3px 0}#plugin-information .counter-label{float:left;margin-right:5px;min-width:55px}#plugin-information .counter-back{height:17px;width:92px;background-color:#e5e5e5;float:left}#plugin-information .counter-bar{height:17px;background-color:#ffc733;float:left}#plugin-information .counter-count{margin-left:5px}#plugin-information .fyi ul.contributors{margin-top:10px}#plugin-information .fyi ul.contributors li{display:inline-block;margin-right:8px;vertical-align:middle}#plugin-information .fyi ul.contributors li img{vertical-align:middle;margin-right:4px}#plugin-information-footer{padding:13px 16px;position:absolute;right:0;bottom:0;left:0;height:33px;border-top:1px solid #ddd;background:#f3f3f3}#plugin-information .section ol,#plugin-information .section ul{list-style-type:disc;margin-left:24px}#plugin-information .section,#plugin-information .section p{font-size:14px;line-height:1.7}#plugin-information #section-screenshots ol{list-style:none;margin:0}#plugin-information #section-screenshots li img{vertical-align:text-top;margin-top:16px;max-width:100%;width:auto;height:auto;box-shadow:0 1px 2px rgba(0,0,0,.3)}#plugin-information #section-screenshots li p{font-style:italic;padding-left:20px}#plugin-information pre{padding:7px;overflow:auto;border:1px solid #ccc}#plugin-information blockquote{border-left:2px solid #ddd;color:#666;font-style:italic;margin:1em 0;padding:0 0 0 1em}#plugin-information .review{overflow:hidden;width:100%;margin-bottom:20px;border-bottom:1px solid #e5e5e5}#plugin-information .review-title-section{overflow:hidden}#plugin-information .review-title-section h4{display:inline-block;float:left;margin:0 6px 0 0}#plugin-information .reviewer-info p{clear:both;margin:0;padding-top:2px}#plugin-information .reviewer-info .avatar{float:left;margin:4px 6px 0 0}#plugin-information .reviewer-info .star-rating{float:left}#plugin-information .review-meta{float:left;margin-left:.75em}#plugin-information .review-body{float:left;width:100%}.plugin-version-author-uri{font-size:13px}.update-php .button.button-primary{margin-right:1em}@media screen and (max-width:771px){#plugin-information-title.with-banner,#plugin-information-title.with-banner div.vignette{height:100px}#plugin-information-title.with-banner h2{margin-top:30px;font-size:20px;line-height:40px;max-width:85%}#plugin-information-tabs{overflow:hidden;padding:0;height:auto}#plugin-information-tabs a.current{margin-bottom:0;border-bottom:none}#plugin-information .fyi{float:none;border:1px solid #ddd;position:static;width:auto;margin:26px 26px 0;padding-bottom:0}#section-holder{position:static;margin:0;padding-bottom:70px}#plugin-information .fyi h3,#plugin-information .fyi small{display:none}#plugin-information-footer{padding:12px 16px 0;height:46px}}#TB_window.plugin-details-modal{background:#fcfcfc}#TB_window.plugin-details-modal.thickbox-loading:before{content:"";display:block;width:20px;height:20px;position:absolute;left:50%;top:50%;z-index:-1;margin:-10px 0 0 -10px;background:url(../images/spinner.gif) center no-repeat #fcfcfc;background-size:20px 20px;-webkit-transform:translateZ(0);transform:translateZ(0)}.plugin-details-modal #TB_ajaxWindowTitle,.plugin-details-modal .tb-close-icon{display:none}.tree-folder,[role=treeitem] li{position:relative}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#TB_window.plugin-details-modal.thickbox-loading:before{background-image:url(../images/spinner-2x.gif)}}.plugin-details-modal #TB_title{float:left;height:1px}.plugin-details-modal #TB_closeWindowButton{left:auto;right:-30px;color:#eee}.plugin-details-modal #TB_closeWindowButton:focus,.plugin-details-modal #TB_closeWindowButton:hover{color:#00a0d2;outline:0;box-shadow:none}.plugin-details-modal #TB_closeWindowButton:after{content:"\f335";font:400 32px/29px dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media screen and (max-width:830px){.plugin-details-modal #TB_closeWindowButton{right:0;top:-30px}}img{border:none}.bulk-action-notice .toggle-indicator:before,.js .meta-box-sortables .postbox .toggle-indicator:before,.sidebar-name .toggle-indicator:before{content:"\f142";display:inline-block;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.bulk-action-notice .bulk-action-errors-collapsed .toggle-indicator:before,.js .meta-box-sortables .postbox.closed .handlediv .toggle-indicator:before,.js .widgets-holder-wrap.closed .toggle-indicator:before{content:"\f140"}.js .postbox .handlediv .toggle-indicator:before{margin-top:4px;width:20px;border-radius:50%;text-indent:-1px}#template .CodeMirror,#template textarea,#templateside>ul{box-sizing:border-box;min-height:60vh;height:calc(100vh - 295px);border:1px solid #ddd}.rtl.js .postbox .handlediv .toggle-indicator:before{text-indent:1px}.bulk-action-notice .toggle-indicator:before{line-height:16px;vertical-align:top;color:#72777c}.js .postbox .handlediv:focus{box-shadow:none;outline:0}.js .postbox .handlediv:focus .toggle-indicator:before{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#photo-add-url-div input[type=text]{width:300px}.alignleft h2{margin:0}#template textarea{font-family:Consolas,Monaco,monospace;font-size:13px;background:#f9f9f9;-moz-tab-size:4;-o-tab-size:4;tab-size:4}#template .CodeMirror,#template textarea{width:100%}#templateside>h2{padding-top:6px;padding-bottom:7px;margin:0}#templateside ol,#templateside ul{margin:0;padding:0}#templateside>ul{margin-top:0;overflow:auto;padding:0;background-color:#f7f7f7;border-left:none}#templateside ul ul{padding-left:12px}#templateside>ul>li>ul[role=group]{padding-left:0}[role=treeitem][aria-expanded=false]>ul{display:none}[role=treeitem] span[aria-hidden]{display:inline;font-family:dashicons;font-size:20px;position:absolute;pointer-events:none}[role=treeitem][aria-expanded=false]>.folder-label .icon:after{content:"\f139"}[role=treeitem][aria-expanded=true]>.folder-label .icon:after{content:"\f140"}[role=treeitem] .folder-label{display:block;padding:3px 3px 3px 12px;cursor:pointer}[role=treeitem]{outline:0}[role=treeitem] .folder-label.focus{color:#124964;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}[role=treeitem] .folder-label.hover,[role=treeitem].hover{background-color:#eaeaea}.tree-folder{margin:0}.tree-folder .tree-folder::after{content:' ';display:block;position:absolute;left:2px;border-left:1px solid #ccc;top:-13px;bottom:10px}.tree-folder>li::before{content:' ';position:absolute;display:block;border-left:1px solid #ccc;left:2px;top:-5px;height:18px;width:7px;border-bottom:1px solid #ccc}.tree-folder>li::after{content:' ';position:absolute;display:block;border-left:1px solid #ccc;left:2px;bottom:-7px;top:0}#templateside .current-file{margin:-4px 0 -2px}.tree-folder>.current-file::before{left:4px;height:15px;width:0;border-left:none;top:3px}.tree-folder>.current-file::after{bottom:-4px;height:7px;left:2px;top:auto}.tree-folder li:last-child>.tree-folder::after,.tree-folder>li:last-child::after{display:none}#theme-plugin-editor-label{display:inline-block;margin-bottom:1em;font-weight:600}.fileedit-sub #plugin,.fileedit-sub #theme{max-width:40%}.fileedit-sub .alignright{text-align:right}#template p{width:97%}#file-editor-linting-error{margin-top:1em;margin-bottom:1em}#file-editor-linting-error>.notice{margin:0;display:inline-block}#file-editor-linting-error>.notice>p{width:auto}#template .submit{margin-top:1em;padding:0}#template .submit input[type=submit][disabled]{cursor:not-allowed}#templateside{float:right;width:16em}#postcustomstuff p.submit{margin:0}#templateside h4{margin:1em 0 0}#templateside li{margin:4px 0}#templateside li:not(.howto) a,.theme-editor-php .highlight{display:block;padding:3px 0 3px 12px;text-decoration:none}#templateside li:not(.howto)>a:first-of-type{padding-top:0}#templateside li.howto{padding:6px 12px 12px}.theme-editor-php .highlight{margin:-3px 3px -3px -12px}#templateside .highlight{border:none;font-weight:600}.nonessential{color:#666;font-size:11px;font-style:italic;padding-left:12px}#documentation{margin-top:10px}#documentation label{line-height:22px;vertical-align:baseline;font-weight:600}.fileedit-sub{padding:10px 0 8px;line-height:180%}#file-editor-warning .file-editor-warning-content{margin:25px}.accordion-section-title:after,.control-section .accordion-section-title:after,.nav-menus-php .item-edit:before,.widget-top .widget-action .toggle-indicator:before{content:"\f140";font:400 20px/1 dashicons;speak:none;display:block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.widget-top .widget-action .toggle-indicator:before{padding:1px 2px 1px 0;border-radius:50%}.accordion-section-title:after,.handlediv,.item-edit,.postbox .handlediv.button-link,.toggle-indicator{color:#72777c}.widget-action{color:#555d66}.accordion-section-title:hover:after,.handlediv:focus,.handlediv:hover,.item-edit:focus,.item-edit:hover,.postbox .handlediv.button-link:focus,.postbox .handlediv.button-link:hover,.sidebar-name:hover .toggle-indicator,.widget-action:focus,.widget-top:hover .widget-action{color:#23282d}.widget-top .widget-action:focus .toggle-indicator:before{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.accordion-section-title:after,.control-section .accordion-section-title:after{float:right;right:20px;top:-2px}#customize-info.open .accordion-section-title:after,.control-section.open .accordion-section-title:after,.nav-menus-php .menu-item-edit-active .item-edit:before,.widget.open .widget-top .widget-action .toggle-indicator:before{content:"\f142"}/*! +.button.updated-message,a{transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out}#ajax-loading,.ajax-feedback,.ajax-loading,.imgedit-wait-spin,.list-ajax-loading,.spinner,.wp-header-end{visibility:hidden}.filter-group,.postbox-container .meta-box-sortables,.wp-filter,html.wp-toolbar{box-sizing:border-box}#docs-list,#plugin-information .section,#template textarea,.code,.ltr,code{direction:ltr}#wpwrap{height:auto;min-height:100%;width:100%;position:relative;-webkit-font-smoothing:subpixel-antialiased}#wpcontent{height:100%;padding-left:20px}#wpcontent,#wpfooter{margin-left:160px}.folded #wpcontent,.folded #wpfooter{margin-left:36px}#wpbody-content{padding-bottom:65px;float:left;width:100%;overflow:visible!important}.inner-sidebar{float:right;clear:right;display:none;width:281px;position:relative}.columns-2 .inner-sidebar{margin-right:auto;width:286px;display:block}.columns-2 .inner-sidebar #side-sortables,.inner-sidebar #side-sortables{min-height:300px;width:280px;padding:0}.has-right-sidebar .inner-sidebar{display:block}.has-right-sidebar #post-body{float:left;clear:left;width:100%;margin-right:-2000px}.has-right-sidebar #post-body-content{margin-right:300px;float:none;width:auto}#col-left{float:left;width:35%}#col-right{float:right;width:65%}#col-left .col-wrap{padding:0 6px 0 0}#col-right .col-wrap{padding:0 0 0 6px}.alignleft{float:left}.alignright{float:right}#publishing-action .spinner,#save-post,.subsubsub{float:left}.textleft{text-align:left}.textright{text-align:right}.clear{clear:both}.wp-clearfix:after{content:"";display:table;clear:both}.screen-reader-text,.screen-reader-text span,.ui-helper-hidden-accessible{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}#templateside,.misc-pub-filename,.pre,.widefat *{word-wrap:break-word}.screen-reader-shortcut{position:absolute;top:-1000em}.screen-reader-shortcut:focus{left:6px;top:-25px;height:auto;width:auto;display:block;font-size:14px;font-weight:600;padding:15px 23px 14px;background:#f1f1f1;color:#0073aa;z-index:100000;line-height:normal;box-shadow:0 0 2px 2px rgba(0,0,0,.6);text-decoration:none;outline:0}.hidden,.js .closed .inside,.js .hide-if-js,.js .wp-core-ui .hide-if-js,.js.wp-core-ui .hide-if-js,.no-js .hide-if-no-js,.no-js .wp-core-ui .hide-if-no-js,.no-js.wp-core-ui .hide-if-no-js{display:none}#menu-management .menu-edit,#menu-settings-column .accordion-container,.comment-ays,.feature-filter,.imgedit-group,.manage-menus,.menu-item-handle,.popular-tags,.stuffbox,.widget-inside,.widget-top,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04)}.comment-ays,.feature-filter,.imgedit-group,.popular-tags,.stuffbox,.widgets-holder-wrap,.wp-editor-container,p.popular-tags,table.widefat{background:#fff}body,html{height:100%;margin:0;padding:0}body{background:#f1f1f1;color:#444;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:13px;line-height:1.4em;min-width:600px}body.iframe{min-width:0;padding-top:1px}body.modal-open{overflow:hidden}body.mobile.modal-open #wpwrap{overflow:hidden;position:fixed;height:100%}iframe,img{border:0}td{font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit}a{color:#0073aa}a,div{outline:0}a:active,a:hover{color:#00a0d2}.wp-person a:focus .gravatar,a:focus,a:focus .media-icon img{color:#124964;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}h1,h2,h3{color:#23282d}.ie8 a:focus{outline:#5b9dd9 solid 1px}#adminmenu a:focus,.screen-reader-text:focus{box-shadow:none;outline:0}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}p{font-size:13px;line-height:1.5;margin:1em 0}blockquote{margin:1em}dd,li{margin-bottom:6px}h1,h2,h3,h4,h5,h6{display:block;font-weight:600}h1{font-size:2em;margin:.67em 0}h2,h3{font-size:1.3em;margin:1em 0}.update-core-php h2{margin-top:2em}.update-messages h2,.update-php h2,h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}ol,ul{padding:0}ul{list-style:none}ol{list-style-type:decimal;margin-left:2em}ul.ul-disc{list-style:disc}ul.ul-square{list-style:square}ol.ol-decimal{list-style:decimal}ol.ol-decimal,ul.ul-disc,ul.ul-square{margin-left:1.8em}ol.ol-decimal>li,ul.ul-disc>li,ul.ul-square>li{margin:0 0 .5em}.code,code{font-family:Consolas,Monaco,monospace;unicode-bidi:embed}code,kbd{padding:3px 5px 2px;margin:0 1px;background:#eaeaea;background:rgba(0,0,0,.07);font-size:13px}.subsubsub{list-style:none;margin:8px 0 0;padding:0;font-size:13px;color:#666}.subsubsub a{line-height:2;padding:.2em;text-decoration:none}.subsubsub a .count,.subsubsub a.current .count{color:#555d66;font-weight:400}.subsubsub a.current{font-weight:600;border:none}.subsubsub li{display:inline-block;margin:0;padding:0;white-space:nowrap}.widefat{border-spacing:0;width:100%;clear:both;margin:0}.widefat a,.widefat button.button-link{text-decoration:none}.widefat td,.widefat th{padding:8px 10px}.widefat thead td,.widefat thead th{border-bottom:1px solid #e1e1e1}.widefat tfoot td,.widefat tfoot th{border-top:1px solid #e1e1e1;border-bottom:none}.widefat .no-items td{border-bottom-width:0}.widefat td{vertical-align:top}.widefat td,.widefat td ol,.widefat td p,.widefat td ul{font-size:13px;line-height:1.5em}.widefat tfoot td,.widefat th,.widefat thead td{text-align:left;line-height:1.3em;font-size:14px}.updates-table td input,.widefat tfoot td input,.widefat th input,.widefat thead td input{margin:0 0 0 8px;padding:0;vertical-align:text-top}.widefat .check-column{width:2.2em;padding:6px 0 25px;vertical-align:top}.updates-table tbody td.check-column,.widefat tbody th.check-column,.widefat tfoot td.check-column,.widefat thead td.check-column{padding:11px 0 0 3px}.widefat tfoot td.check-column,.widefat thead td.check-column{padding-top:4px;vertical-align:middle}.update-php div.error,.update-php div.updated{margin-left:0}.no-js .widefat tfoot .check-column input,.no-js .widefat thead .check-column input{display:none}.column-comments,.column-links,.column-posts,.widefat .num{text-align:center}.widefat th#comments{vertical-align:middle}.wrap{margin:10px 20px 0 2px}.postbox .inside h2,.wrap [class$=icon32]+h2,.wrap h1,.wrap>h2:first-child{font-size:23px;font-weight:400;margin:0;padding:9px 0 4px;line-height:29px}.wrap h1.wp-heading-inline{display:inline-block;margin-right:5px}.wp-header-end{margin:-2px 0 0}.subtitle{margin:0;padding-left:25px;color:#555d66;font-size:14px;font-weight:400;line-height:1}.wrap .add-new-h2,.wrap .add-new-h2:active,.wrap .page-title-action,.wrap .page-title-action:active{margin-left:4px;padding:4px 8px;position:relative;top:-3px;text-decoration:none;border:none;border:1px solid #ccc;border-radius:2px;background:#f7f7f7;text-shadow:none;font-weight:600;font-size:13px;line-height:normal;color:#0073aa;cursor:pointer;outline:0}.wrap .wp-heading-inline+.page-title-action{margin-left:0}.wrap .add-new-h2:hover,.wrap .page-title-action:hover{border-color:#008EC2;background:#00a0d2;color:#fff}.page-title-action:focus{color:#124964}.ac_match,.highlight,.subsubsub a.current{color:#000}.wrap .page-title-action:focus{border-color:#5b9dd9;box-shadow:0 0 2px rgba(30,140,190,.8)}.wrap h1.long-header{padding-right:0}.wp-dialog{background-color:#fff}#available-widgets .widget-top:hover,#widgets-left .widget-in-question .widget-top,#widgets-left .widget-top:hover,.widgets-chooser ul,div#widgets-right .widget-top:hover{border-color:#999;box-shadow:0 1px 2px rgba(0,0,0,.1)}.sorthelper{background-color:#ccf3fa}.alternate,.striped>tbody>:nth-child(odd),ul.striped>:nth-child(odd){background-color:#f9f9f9}.bar{background-color:#e8e8e8;border-right-color:#99d}.highlight{background-color:#e4f2fd}.wp-ui-primary{color:#fff;background-color:#32373c}.wp-ui-text-primary{color:#32373c}.wp-ui-highlight{color:#fff;background-color:#1e8cbe}.wp-ui-text-highlight{color:#1e8cbe}.wp-ui-notification{color:#fff;background-color:#d54e21}.wp-ui-text-notification{color:#d54e21}.wp-ui-text-icon{color:#82878c}img.emoji{display:inline!important;border:none!important;height:1em!important;width:1em!important;margin:0 .07em!important;vertical-align:-.1em!important;background:0 0!important;padding:0!important;box-shadow:none!important}#nav-menu-footer,#nav-menu-header,#your-profile #rich_editing,.checkbox,.control-section .accordion-section-title,.menu-item-handle,.postbox .hndle,.side-info,.sidebar-name,.stuffbox .hndle,.widefat tfoot td,.widefat tfoot th,.widefat thead td,.widefat thead th,.widget .widget-top{line-height:1.4em}.menu-item-handle,.widget .widget-top{background:#fafafa;color:#23282d}.postbox .hndle,.stuffbox .hndle{border-bottom:1px solid #eee;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.quicktags,.search{background-color:#ccc;color:#000;font-size:12px}.icon32{display:none}#bulk-titles div a:before,.notice-dismiss:before,.tagchecklist .ntdelbutton .remove-tag-icon:before,.welcome-panel .welcome-panel-close:before{background:0 0;color:#72777c;content:"\f153";display:block;font:400 16px/20px dashicons;speak:none;height:20px;text-align:center;width:20px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.welcome-panel .welcome-panel-close:before{margin:0}#bulk-titles div a:before{margin:1px 0}.tagchecklist .ntdelbutton .remove-tag-icon:before{margin-left:2px;border-radius:50%;color:#0073aa;line-height:1.28}.tagchecklist .ntdelbutton:focus{outline:0}#bulk-titles div a:focus:before,#bulk-titles div a:hover:before,.tagchecklist .ntdelbutton:focus .remove-tag-icon:before,.tagchecklist .ntdelbutton:hover .remove-tag-icon:before,.welcome-panel .welcome-panel-close:focus:before,.welcome-panel .welcome-panel-close:hover:before{color:#c00}.tagchecklist .ntdelbutton:focus .remove-tag-icon:before{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.key-labels label{line-height:24px}b,strong{font-weight:600}.pre{white-space:pre-wrap}#namediv td.first,.nav-tab,.no-break,.star-rating{white-space:nowrap}.howto{color:#666;font-style:italic;display:block}p.install-help{margin:8px 0;font-style:italic}hr{border:0;border-top:1px solid #ddd;border-bottom:1px solid #fafafa}#all-plugins-table .plugins a.delete,#delete-link a.delete,#media-items a.delete,#media-items a.delete-permanently,#nav-menu-footer .menu-delete,#search-plugins-table .plugins a.delete,.plugins a.delete,.row-actions span.delete a,.row-actions span.spam a,.row-actions span.trash a,.submitbox .submitdelete{color:#a00}#all-plugins-table .plugins a.delete:hover,#delete-link a.delete:hover,#media-items a.delete-permanently:hover,#media-items a.delete:hover,#nav-menu-footer .menu-delete:hover,#search-plugins-table .plugins a.delete:hover,.file-error,.plugins a.delete:hover,.row-actions .delete a:hover,.row-actions .spam a:hover,.row-actions .trash a:hover,.submitbox .submitdelete:hover,abbr.required,span.required{color:#dc3232;border:none}#major-publishing-actions{padding:10px;clear:both;border-top:1px solid #ddd;background:#f5f5f5}#delete-action{float:left;line-height:28px}#delete-link{line-height:28px;vertical-align:middle;text-align:left;margin-left:8px}#delete-link a{text-decoration:none}#publishing-action{text-align:right;float:right;line-height:23px}#misc-publishing-actions{padding:6px 0 0}.misc-pub-section{padding:6px 10px 8px}#minor-publishing-actions{padding:10px 10px 0;text-align:right}.preview{float:right}#sticky-span{margin-left:18px}.approve,.unapproved .unapprove{display:none}.spam .approve,.trash .approve,.unapproved .approve{display:inline}td.action-links,th.action-links{text-align:right}#misc-publishing-actions .notice{margin-left:10px;margin-right:10px}.wp-filter{display:inline-block;position:relative;margin:12px 0 25px;padding:0 10px;width:100%;box-shadow:0 1px 1px rgba(0,0,0,.04);border:1px solid #e5e5e5;background:#fff;color:#555;font-size:13px}.wp-filter a{text-decoration:none}.filter-count{display:inline-block;vertical-align:middle;min-width:4em}.filter-count .count,.title-count{display:inline-block;position:relative;top:-1px;padding:4px 10px;border-radius:30px;background:#72777c;color:#fff;font-size:14px;font-weight:600}.title-count{display:inline;top:-3px;margin-left:5px;margin-right:20px}.filter-links li>a,.wp-filter .search-form.search-plugins{display:inline-block}.filter-items{float:left}.filter-links,.filter-links li{display:inline-block;margin:0}.filter-links li>a{margin:0 10px;padding:15px 0;border-bottom:4px solid #fff;color:#666;cursor:pointer}.filter-links .current{box-shadow:none;border-bottom:4px solid #666;color:#23282d}.filter-links li>a:focus,.filter-links li>a:hover,.show-filters .filter-links a.current:focus,.show-filters .filter-links a.current:hover{color:#00a0d2}.wp-filter .search-form{float:right;margin:10px 0}.wp-filter .search-form input[type=search]{margin:0;padding:3px 5px;width:280px;max-width:100%;font-size:16px;font-weight:300;line-height:1.5}.wp-filter .search-form select{margin:0;height:32px;vertical-align:top}.wp-filter .button.drawer-toggle{margin:10px 9px 0;padding:0 10px 0 6px;border-color:transparent;background-color:transparent;color:#666;vertical-align:baseline;box-shadow:none}.wp-filter .drawer-toggle:before{content:"\f111";margin:0 5px 0 0;color:#72777c;font:400 16px/1 dashicons;vertical-align:text-bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-filter .button.drawer-toggle:focus,.wp-filter .button.drawer-toggle:hover,.wp-filter .drawer-toggle:focus:before,.wp-filter .drawer-toggle:hover:before{background-color:transparent;color:#00a0d2}.wp-filter .button.drawer-toggle:focus:active,.wp-filter .button.drawer-toggle:hover{border-color:transparent}.wp-filter .button.drawer-toggle:focus{border-color:#5b9dd9}.wp-filter .button.drawer-toggle:active{background:0 0;box-shadow:none;-webkit-transform:none;transform:none}.wp-filter .drawer-toggle.current:before{color:#fff}.filter-drawer,.wp-filter .favorites-form{display:none;margin:0 -10px 0 -20px;padding:20px;border-top:1px solid #eee;background:#fafafa;overflow:hidden}.show-favorites-form .favorites-form,.show-filters .filter-drawer{display:block}.show-filters .filter-links a.current{border-bottom:none}.show-filters .wp-filter .button.drawer-toggle{border-radius:2px;background:#72777c;color:#fff}.filter-group,.filtered-by .tag{border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04)}.show-filters .wp-filter .drawer-toggle:focus,.show-filters .wp-filter .drawer-toggle:hover{background:#2ea2cc}.show-filters .wp-filter .drawer-toggle:before{color:#fff}.filter-group{position:relative;float:left;margin:0 1% 0 0;padding:20px 10px 10px;width:24%;background:#fff}.filter-group legend{position:absolute;top:10px;display:block;margin:0;padding:0;font-size:1em;font-weight:600}.filter-drawer .filter-group-feature{margin:28px 0 0;list-style-type:none;font-size:12px}.filter-drawer .filter-group-feature input,.filter-drawer .filter-group-feature label{line-height:16px}.filter-drawer .filter-group-feature input{position:absolute;margin:0}.filter-group .filter-group-feature label{display:block;margin:14px 0 14px 23px}.filter-drawer .buttons{clear:both;margin-bottom:20px}.filter-drawer .filter-group+.buttons{margin-bottom:0;padding-top:20px}.filter-drawer .buttons .button span{display:inline-block;opacity:.8;font-size:12px;text-indent:10px}.wp-filter .button.clear-filters{display:none;margin-left:10px}.wp-filter .button-link.edit-filters{padding:0 5px;line-height:28px}.filtered-by{display:none;margin:0}.filtered-by>span{font-weight:600}.filtered-by a{margin-left:10px}.filtered-by .tags{display:inline}.filtered-by .tag{margin:0 5px;padding:4px 8px;background:#fff;font-size:11px}.filters-applied .filter-drawer .buttons,.filters-applied .filter-drawer br,.filters-applied .filter-group{display:none!important}.filters-applied .filtered-by{display:block}.filters-applied .filter-drawer{padding:20px}.error .content-filterable,.loading-content .content-filterable,.show-filters .content-filterable,.show-filters .favorites-form,.show-filters.filters-applied.loading-content .content-filterable{display:none}.show-filters.filters-applied .content-filterable{display:block}.loading-content .spinner{display:block;margin:40px auto 0;float:none}@media only screen and (max-width:1120px){.filter-drawer{border-bottom:1px solid #eee}.filter-group{margin-bottom:0;margin-top:5px;width:100%}.filter-group li{margin:10px 0}}@media only screen and (max-width:1000px){.filter-items{float:none}.wp-filter .media-toolbar-primary,.wp-filter .media-toolbar-secondary,.wp-filter .search-form{float:none;position:relative;max-width:100%}}@media only screen and (max-width:782px){.filter-group li{padding:0;width:50%}}@media only screen and (max-width:320px){.filter-count{display:none}.wp-filter .drawer-toggle{margin:10px 0}.filter-group li,.wp-filter .search-form input[type=search]{width:100%}}.notice,div.error,div.updated{background:#fff;border-left:4px solid #fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:5px 15px 2px;padding:1px 12px}div[class=update-message]{padding:.5em 12px .5em 0}.form-table td .notice p,.notice p,.notice-title,div.error p,div.updated p{margin:.5em 0;padding:2px}.error a{text-decoration:underline}.updated a{padding-bottom:2px}.notice-alt{box-shadow:none}.notice-large{padding:10px 20px}.notice-title{display:inline-block;color:#23282d;font-size:18px}.wp-core-ui .notice.is-dismissible{padding-right:38px;position:relative}.notice-dismiss{position:absolute;top:0;right:1px;border:none;margin:0;padding:9px;background:0 0;color:#72777c;cursor:pointer}.notice-dismiss:active:before,.notice-dismiss:focus:before,.notice-dismiss:hover:before{color:#c00}.notice-dismiss:focus{outline:0;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ie8 .notice-dismiss:focus{outline:#5b9dd9 solid 1px}.notice-success,div.updated{border-left-color:#46b450}.notice-success.notice-alt{background-color:#ecf7ed}.notice-warning{border-left-color:#ffb900}.notice-warning.notice-alt{background-color:#fff8e5}.notice-error,div.error{border-left-color:#dc3232}.notice-error.notice-alt{background-color:#fbeaea}.notice-info{border-left-color:#00a0d2}.notice-info.notice-alt{background-color:#e5f5fa}.button.installed:before,.button.installing:before,.button.updated-message:before,.button.updating-message:before,.import-php .updating-message:before,.update-message p:before,.updated-message p:before,.updating-message p:before{display:inline-block;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.media-upload-form .notice,.media-upload-form div.error,.wrap .notice,.wrap div.error,.wrap div.updated{margin:5px 0 15px}.wrap #templateside .notice{display:block;margin:0;padding:5px 8px;font-weight:600;text-decoration:none}.wrap #templateside span.notice{margin-left:-12px}#templateside li.notice a{padding:0}.button.installing:before,.button.updating-message:before,.import-php .updating-message:before,.update-message p:before,.updating-message p:before{color:#f56e28;content:"\f463"}.button.installing:before,.button.updating-message:before,.import-php .updating-message:before,.updating-message p:before{-webkit-animation:rotation 2s infinite linear;animation:rotation 2s infinite linear}.button.updated-message:before,.installed p:before,.updated-message p:before{color:#79ba49;content:'\f147'}.update-message.notice-error p:before{color:#dc3232;content:"\f534"}.import-php .updating-message:before,.wrap .notice p:before{margin-right:6px;vertical-align:bottom}#update-nag,.update-nag{display:inline-block;line-height:19px;padding:11px 15px;font-size:14px;text-align:left;margin:25px 20px 0 2px;background-color:#fff;border-left:4px solid #ffba00;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}#screen-meta,ul#dismissed-updates{display:none}form.upgrade{margin-top:8px}form.upgrade .hint{font-style:italic;font-size:85%;margin:-.5em 0 2em}.update-php .spinner{float:none;margin:-4px 0}#ajax-response.alignleft{margin-left:2em}.button.installed:before,.button.installing:before,.button.updated-message:before,.button.updating-message:before{margin:3px 5px 0 -2px}.button-primary.updating-message:before{color:#fff}.button-primary.updated-message:before{color:#66c6e4}@media aural{.button.installed:before,.button.installing:before,.update-message p:before,.wrap .notice p:before{speak:none}}#adminmenu a,#catlist a,#taglist a{text-decoration:none}#contextual-help-wrap,#screen-options-wrap{margin:0;padding:8px 20px 12px;position:relative}#contextual-help-wrap{overflow:auto;margin-left:0!important}#screen-meta-links{margin:0 20px 0 0}#screen-meta{margin:0 20px -1px 0;position:relative;background-color:#fff;border:1px solid #ddd;border-top:none;box-shadow:0 1px 0 rgba(0,0,0,.025)}#contextual-help-link-wrap,#screen-options-link-wrap{float:right;height:28px;margin:0 0 0 6px;border:1px solid #ddd;border-top:none;background:#fff;box-shadow:0 1px 1px -1px rgba(0,0,0,.1)}#screen-meta-links .screen-meta-toggle{position:relative;top:0}#screen-meta-links .show-settings{border:0;background:0 0;border-radius:0;color:#72777c;line-height:1.7;padding:3px 6px 3px 16px}#screen-meta-links .show-settings:active,#screen-meta-links .show-settings:focus,#screen-meta-links .show-settings:hover{color:#32373c}#screen-meta-links .show-settings:active{box-shadow:none;-webkit-transform:none;transform:none}#screen-meta-links .show-settings:after{right:0;content:"\f140";font:400 20px/1 dashicons;speak:none;display:inline-block;padding:0 5px 0 0;bottom:2px;position:relative;vertical-align:bottom;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important;color:#72777c}#templateside ul li a,.contextual-help-tabs a,.nav-tab{text-decoration:none}#screen-meta-links .screen-meta-active:after{content:"\f142"}.toggle-arrow{background-repeat:no-repeat;background-position:top left;background-color:transparent;height:22px;line-height:22px;display:block}.toggle-arrow-active{background-position:bottom left}#contextual-help-wrap h5,#screen-options-wrap h5,#screen-options-wrap legend{margin:0;padding:8px 0;font-size:13px;font-weight:600}.hndle a,.widefat tfoot td,.widefat th,.widefat thead td{font-weight:400}.ie8 #screen-options-wrap legend{color:inherit}.metabox-prefs label{display:inline-block;padding-right:15px;line-height:30px}#number-of-columns{display:inline-block;vertical-align:middle;line-height:30px}.metabox-prefs input[type=checkbox]{margin-top:0;margin-right:6px}.metabox-prefs label input,.metabox-prefs label input[type=checkbox]{margin:-4px 5px 0 0}.metabox-prefs .columns-prefs label input{margin:-1px 2px 0 0}.metabox-prefs label a{display:none}.metabox-prefs .screen-options input,.metabox-prefs .screen-options label{margin-top:0;margin-bottom:0;vertical-align:middle}.metabox-prefs .screen-options .screen-per-page{margin-right:15px}.metabox-prefs .screen-options label{line-height:28px;padding-right:0}.screen-options+.screen-options{margin-top:10px}.metabox-prefs .submit{margin-top:1em;padding:0}#contextual-help-wrap{padding:0}#contextual-help-columns{position:relative}#contextual-help-back{position:absolute;top:0;bottom:0;left:150px;right:170px;border:1px solid #e1e1e1;border-top:none;border-bottom:none;background:#f6fbfd}#contextual-help-wrap.no-sidebar #contextual-help-back{right:0;border-right-width:0;border-bottom-right-radius:2px}.contextual-help-tabs{float:left;width:150px;margin:0}.contextual-help-tabs ul{margin:1em 0}.contextual-help-tabs li{margin-bottom:0;list-style-type:none;border-style:solid;border-width:0 0 0 2px;border-color:transparent}.contextual-help-tabs a{display:block;padding:5px 5px 5px 12px;line-height:18px;border:1px solid transparent;border-right:none;border-left:none}.contextual-help-tabs a:hover{color:#32373c}.contextual-help-tabs .active{padding:0;margin:0 -1px 0 0;border-left:2px solid #00a0d2;background:#f6fbfd;box-shadow:0 2px 0 rgba(0,0,0,.02),0 1px 0 rgba(0,0,0,.02)}.contextual-help-tabs .active a{border-color:#e1e1e1;color:#32373c}.contextual-help-tabs-wrap{padding:0 20px;overflow:auto}.help-tab-content{display:none;margin:0 22px 12px 0;line-height:1.6em}.help-tab-content.active{display:block}.help-tab-content ul li{list-style-type:disc;margin-left:18px}.contextual-help-sidebar{width:150px;float:right;padding:0 8px 0 12px;overflow:auto}html.wp-toolbar{padding-top:32px}.widefat td,.widefat th{color:#555}.widefat ol,.widefat p,.widefat tfoot tr td,.widefat tfoot tr th,.widefat thead tr td,.widefat thead tr th,.widefat ul{color:#32373c}.widefat td p{margin:2px 0 .8em}.widefat .column-comment p{margin:.6em 0}.widefat .column-comment ul{list-style:outside;margin-left:2em}.postbox-container{float:left}#wpbody-content .metabox-holder{padding-top:10px}.metabox-holder .postbox-container .empty-container{border:3px dashed #b4b9be;height:250px;position:relative}.metabox-holder .postbox-container .empty-container:after{content:attr(data-emptystring);margin:auto;position:absolute;top:0;left:0;bottom:0;right:0;height:1em;width:200px;text-align:center;color:#ccc;font-size:18px;display:none}.columns-2 #postbox-container-3 .empty-container,.columns-2 #postbox-container-4 .empty-container,.columns-3 #postbox-container-4 .empty-container,.metabox-holder.columns-1 .postbox-container .empty-container{border:0;height:0;min-height:0}#post-body-content{width:100%;min-width:463px;float:left}#post-body.columns-2 #postbox-container-1{float:right;margin-right:-300px;width:280px}#post-body.columns-2 #side-sortables{min-height:250px}@media only screen and (max-width:799px){#wpbody-content .metabox-holder .postbox-container .empty-container{border:0;height:0;min-height:0}}.js .postbox .hndle,.js .widget .widget-top{cursor:move}.hndle a{font-size:11px}#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:hover,#dashboard_right_now .versions .b,#ed_reply_toolbar #ed_reply_strong,#pass-strength-result.short,#pass-strength-result.strong,#post-status-display,#post-visibility-display,.feature-filter .feature-name,.item-controls .item-order a,.media-item .percent,.nav-tab,.plugins .name{font-weight:600}.postbox .handlediv{display:none;float:right;width:36px;height:36px;margin:0;padding:0;border:0;background:0 0;cursor:pointer}.js .postbox .handlediv{display:block}.sortable-placeholder{border:1px dashed #b4b9be;margin-bottom:20px}.postbox,.stuffbox{margin-bottom:20px;padding:0;line-height:1}.postbox .inside,.stuffbox .inside{padding:0 12px 12px;line-height:1.4em;font-size:13px}.postbox .inside{margin:11px 0;position:relative}.postbox .inside>p:last-child,.rss-widget ul li:last-child{margin-bottom:1px!important}.postbox.closed h3{border:none;box-shadow:none}.postbox table.form-table{margin-bottom:0}.postbox table.widefat{box-shadow:none}.temp-border{border:1px dotted #ccc}.columns-prefs label{padding:0 10px 0 0}#wpfooter{position:absolute;bottom:0;left:0;right:0;padding:10px 20px;color:#555d66}#wpfooter p{font-size:13px;margin:0;line-height:20px}#footer-thankyou{font-style:italic}.nav-tab{float:left;border:1px solid #ccc;border-bottom:none;margin-left:.5em;padding:5px 10px;font-size:14px;line-height:24px;background:#e5e5e5;color:#555}.nav-tab-small .nav-tab,h3 .nav-tab{padding:5px 14px;font-size:12px;line-height:16px}.nav-tab:focus,.nav-tab:hover{background-color:#fff;color:#444}.nav-tab-active,.nav-tab:focus:active{box-shadow:none}.nav-tab-active{margin-bottom:-1px;color:#444}.nav-tab-active,.nav-tab-active:focus,.nav-tab-active:focus:active,.nav-tab-active:hover{border-bottom:1px solid #f1f1f1;background:#f1f1f1;color:#000}.nav-tab-wrapper,.wrap h2.nav-tab-wrapper,h1.nav-tab-wrapper{border-bottom:1px solid #ccc;margin:0;padding-top:9px;padding-bottom:0;line-height:inherit}.nav-tab-wrapper:not(.wp-clearfix):after{content:"";display:table;clear:both}.ie8 .nav-tab-wrapper{display:inline-block;width:100%;vertical-align:top}.spinner{background:url(../images/spinner.gif) no-repeat;background-size:20px 20px;display:inline-block;float:right;vertical-align:middle;opacity:.7;filter:alpha(opacity=70);width:20px;height:20px;margin:4px 10px 0}.loading-content .spinner,.spinner.is-active{visibility:visible}#template>div{margin-right:16em}#template .notice{margin-top:1em;margin-right:3%}#template .notice p{width:auto}#template .submit .spinner{float:none}.metabox-holder .postbox>h3,.metabox-holder .stuffbox>h3,.metabox-holder h2.hndle,.metabox-holder h3.hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}.nav-menus-php .metabox-holder h3{padding:10px 10px 11px 14px;line-height:21px}.plugin-install #description,.plugin-install-network #description{width:60%}table .column-rating,table .column-visible,table .vers{text-align:left}.attention,.error-message{color:#dc3232;font-weight:600}body.iframe{height:98%}.lp-show-latest p{display:none}#howto,.importer-action,.importer-desc,.importer-title{display:block}.lp-show-latest .lp-error p,.lp-show-latest p:last-child{display:block}.media-icon{width:62px;text-align:center}.media-icon img{border:1px solid #e5e5e5;border:1px solid rgba(0,0,0,.07)}#howto{font-size:11px;margin:0 5px}.importers{font-size:16px;width:auto}.importers td{padding-right:14px;line-height:1.5em}.importers .import-system{max-width:250px}.importers td.desc{max-width:500px}.post-categories,.post-categories li{display:inline}.importer-title{color:#000;font-size:14px;font-weight:400;margin-bottom:.2em}.importer-action{line-height:20px;color:#555;margin-bottom:1em}#post-body #post-body-content #namediv h2,#post-body #post-body-content #namediv h3{margin-top:0}.edit-comment-author{font-size:14px;line-height:1.4;font-weight:600;color:#222;margin:2px 0 0 9px}#namediv h2 label,#namediv h3 label{vertical-align:baseline}#namediv table{width:100%}#namediv td.first{width:10px}#namediv input{width:98%}#namediv p{margin:10px 0}#submitdiv h3{margin-bottom:0!important}.checkbox,.post-categories,.zerosize,fieldset{margin:0;padding:0}.zerosize{height:0;width:0;border:0;overflow:hidden;position:absolute}br.clear{height:2px;line-height:2px}.checkbox{border:none}fieldset{border:0}div.star-holder{position:relative;height:17px;width:100px;background:url(../images/stars.png?ver=20121108) bottom left repeat-x}div.star-holder .star-rating{background:url(../images/stars.png?ver=20121108) top left repeat-x;height:17px;float:left}.star-rating .star{display:inline-block;width:20px;height:20px;-webkit-font-smoothing:antialiased;font-size:20px;line-height:1;font-family:dashicons;text-decoration:inherit;font-weight:400;font-style:normal;vertical-align:top;transition:color .1s ease-in 0;text-align:center;color:#ffb900}.star-rating .star-full:before{content:"\f155"}.star-rating .star-half:before{content:"\f459"}.rtl .star-rating .star-half{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}.star-rating .star-empty:before{content:"\f154"}div.action-links{font-weight:400;margin:6px 0 0}#plugin-information{background:#fff;position:fixed;top:0;right:0;bottom:0;left:0;height:100%;padding:0}#plugin-information-scrollable{overflow:auto;-webkit-overflow-scrolling:touch;height:100%}#plugin-information-title{padding:0 26px;background:#f5f5f5;font-size:22px;font-weight:600;line-height:56px;position:relative;height:56px}#plugin-information-title.with-banner{margin-right:0;height:250px;background-size:cover}#plugin-information-title h2{font-size:1em;font-weight:600;padding:0;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#plugin-information-title.with-banner h2{position:relative;font-family:"Helvetica Neue",sans-serif;display:inline-block;font-size:30px;line-height:50px;box-sizing:border-box;max-width:100%;padding:0 15px;margin-top:174px;color:#fff;background:rgba(30,30,30,.9);text-shadow:0 1px 3px rgba(0,0,0,.4);box-shadow:0 0 30px rgba(255,255,255,.1);border-radius:8px}#plugin-information-title div.vignette{display:none}#plugin-information-title.with-banner div.vignette{position:absolute;display:block;top:0;left:0;height:250px;width:100%;background:0 0;box-shadow:inset 0 0 50px 4px rgba(0,0,0,.2),inset 0 -1px 0 rgba(0,0,0,.1)}#plugin-information-tabs{padding:0 16px;position:relative;right:0;left:0;min-height:36px;font-size:0;z-index:1;border-bottom:1px solid #ddd;background:#f3f3f3}#plugin-information-tabs a{position:relative;display:inline-block;padding:9px 10px;margin:0;height:18px;line-height:18px;font-size:14px;text-decoration:none;transition:none}#plugin-information-tabs a.current{margin:0 -1px -1px;background:#fff;border:1px solid #ddd;border-bottom-color:#fff;padding-top:8px;color:#32373c}#plugin-information-tabs.with-banner a.current{border-top:none;padding-top:9px}#plugin-information-tabs a:active,#plugin-information-tabs a:focus{outline:0}#plugin-information-content{overflow:hidden;background:#fff;position:relative;top:0;right:0;left:0;min-height:100%;min-height:calc(100% - 152px)}#plugin-information-content.with-banner{min-height:calc(100% - 346px)}#section-holder{position:relative;top:0;right:250px;bottom:0;left:0;margin-right:250px;padding:10px 26px 99999px;margin-bottom:-99939px}#section-holder .updated{margin:16px 0}#plugin-information .fyi{float:right;position:relative;top:0;right:0;padding:16px 16px 99999px;margin-bottom:-99939px;width:217px;border-left:1px solid #ddd;background:#f3f3f3;color:#666}#plugin-information .fyi strong{color:#444}#plugin-information .fyi h3{font-weight:600;text-transform:uppercase;font-size:12px;color:#666;margin:24px 0 8px}#plugin-information .fyi h2{font-size:.9em;margin-bottom:0;margin-right:0}#plugin-information .fyi ul{padding:0;margin:0;list-style:none}#plugin-information .fyi li{margin:0 0 10px}#plugin-information .fyi-description{margin-top:0}#plugin-information .counter-container{margin:3px 0}#plugin-information .counter-label{float:left;margin-right:5px;min-width:55px}#plugin-information .counter-back{height:17px;width:92px;background-color:#e5e5e5;float:left}#plugin-information .counter-bar{height:17px;background-color:#ffc733;float:left}#plugin-information .counter-count{margin-left:5px}#plugin-information .fyi ul.contributors{margin-top:10px}#plugin-information .fyi ul.contributors li{display:inline-block;margin-right:8px;vertical-align:middle}#plugin-information .fyi ul.contributors li img{vertical-align:middle;margin-right:4px}#plugin-information-footer{padding:13px 16px;position:absolute;right:0;bottom:0;left:0;height:33px;border-top:1px solid #ddd;background:#f3f3f3}#plugin-information .section ol,#plugin-information .section ul{list-style-type:disc;margin-left:24px}#plugin-information .section,#plugin-information .section p{font-size:14px;line-height:1.7}#plugin-information #section-screenshots ol{list-style:none;margin:0}#plugin-information #section-screenshots li img{vertical-align:text-top;margin-top:16px;max-width:100%;width:auto;height:auto;box-shadow:0 1px 2px rgba(0,0,0,.3)}#plugin-information #section-screenshots li p{font-style:italic;padding-left:20px}#plugin-information pre{padding:7px;overflow:auto;border:1px solid #ccc}#plugin-information blockquote{border-left:2px solid #ddd;color:#666;font-style:italic;margin:1em 0;padding:0 0 0 1em}#plugin-information .review{overflow:hidden;width:100%;margin-bottom:20px;border-bottom:1px solid #e5e5e5}#plugin-information .review-title-section{overflow:hidden}#plugin-information .review-title-section h4{display:inline-block;float:left;margin:0 6px 0 0}#plugin-information .reviewer-info p{clear:both;margin:0;padding-top:2px}#plugin-information .reviewer-info .avatar{float:left;margin:4px 6px 0 0}#plugin-information .reviewer-info .star-rating{float:left}#plugin-information .review-meta{float:left;margin-left:.75em}#plugin-information .review-body{float:left;width:100%}.plugin-version-author-uri{font-size:13px}.update-php .button.button-primary{margin-right:1em}@media screen and (max-width:771px){#plugin-information-title.with-banner,#plugin-information-title.with-banner div.vignette{height:100px}#plugin-information-title.with-banner h2{margin-top:30px;font-size:20px;line-height:40px;max-width:85%}#plugin-information-tabs{overflow:hidden;padding:0;height:auto}#plugin-information-tabs a.current{margin-bottom:0;border-bottom:none}#plugin-information .fyi{float:none;border:1px solid #ddd;position:static;width:auto;margin:26px 26px 0;padding-bottom:0}#section-holder{position:static;margin:0;padding-bottom:70px}#plugin-information .fyi h3,#plugin-information .fyi small{display:none}#plugin-information-footer{padding:12px 16px 0;height:46px}}#TB_window.plugin-details-modal{background:#fcfcfc}#TB_window.plugin-details-modal.thickbox-loading:before{content:"";display:block;width:20px;height:20px;position:absolute;left:50%;top:50%;z-index:-1;margin:-10px 0 0 -10px;background:url(../images/spinner.gif) center no-repeat #fcfcfc;background-size:20px 20px;-webkit-transform:translateZ(0);transform:translateZ(0)}.plugin-details-modal #TB_ajaxWindowTitle,.plugin-details-modal .tb-close-icon{display:none}.tree-folder,[role=treeitem] li{position:relative}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#TB_window.plugin-details-modal.thickbox-loading:before{background-image:url(../images/spinner-2x.gif)}}.plugin-details-modal #TB_title{float:left;height:1px}.plugin-details-modal #TB_closeWindowButton{left:auto;right:-30px;color:#eee}.plugin-details-modal #TB_closeWindowButton:focus,.plugin-details-modal #TB_closeWindowButton:hover{color:#00a0d2;outline:0;box-shadow:none}.plugin-details-modal #TB_closeWindowButton:after{content:"\f335";font:400 32px/29px dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media screen and (max-width:830px){.plugin-details-modal #TB_closeWindowButton{right:0;top:-30px}}img{border:none}.bulk-action-notice .toggle-indicator:before,.js .meta-box-sortables .postbox .toggle-indicator:before,.privacy-text-box .toggle-indicator:before,.sidebar-name .toggle-indicator:before{content:"\f142";display:inline-block;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.bulk-action-notice .bulk-action-errors-collapsed .toggle-indicator:before,.js .meta-box-sortables .postbox.closed .handlediv .toggle-indicator:before,.js .widgets-holder-wrap.closed .toggle-indicator:before,.privacy-text-box.closed .toggle-indicator:before{content:"\f140"}.js .postbox .handlediv .toggle-indicator:before{margin-top:4px;width:20px;border-radius:50%;text-indent:-1px}#template .CodeMirror,#template textarea,#templateside>ul{box-sizing:border-box;min-height:60vh;height:calc(100vh - 295px);border:1px solid #ddd}.rtl.js .postbox .handlediv .toggle-indicator:before{text-indent:1px}.bulk-action-notice .toggle-indicator:before{line-height:16px;vertical-align:top;color:#72777c}.js .postbox .handlediv:focus{box-shadow:none;outline:0}.js .postbox .handlediv:focus .toggle-indicator:before{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#photo-add-url-div input[type=text]{width:300px}.alignleft h2{margin:0}#template textarea{font-family:Consolas,Monaco,monospace;font-size:13px;background:#f9f9f9;-moz-tab-size:4;-o-tab-size:4;tab-size:4}#template .CodeMirror,#template textarea{width:100%}#templateside>h2{padding-top:6px;padding-bottom:7px;margin:0}#templateside ol,#templateside ul{margin:0;padding:0}#templateside>ul{margin-top:0;overflow:auto;padding:0;background-color:#f7f7f7;border-left:none}#templateside ul ul{padding-left:12px}#templateside>ul>li>ul[role=group]{padding-left:0}[role=treeitem][aria-expanded=false]>ul{display:none}[role=treeitem] span[aria-hidden]{display:inline;font-family:dashicons;font-size:20px;position:absolute;pointer-events:none}[role=treeitem][aria-expanded=false]>.folder-label .icon:after{content:"\f139"}[role=treeitem][aria-expanded=true]>.folder-label .icon:after{content:"\f140"}[role=treeitem] .folder-label{display:block;padding:3px 3px 3px 12px;cursor:pointer}[role=treeitem]{outline:0}[role=treeitem] .folder-label.focus{color:#124964;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}[role=treeitem] .folder-label.hover,[role=treeitem].hover{background-color:#eaeaea}.tree-folder{margin:0}.tree-folder .tree-folder::after{content:' ';display:block;position:absolute;left:2px;border-left:1px solid #ccc;top:-13px;bottom:10px}.tree-folder>li::before{content:' ';position:absolute;display:block;border-left:1px solid #ccc;left:2px;top:-5px;height:18px;width:7px;border-bottom:1px solid #ccc}.tree-folder>li::after{content:' ';position:absolute;display:block;border-left:1px solid #ccc;left:2px;bottom:-7px;top:0}#templateside .current-file{margin:-4px 0 -2px}.tree-folder>.current-file::before{left:4px;height:15px;width:0;border-left:none;top:3px}.tree-folder>.current-file::after{bottom:-4px;height:7px;left:2px;top:auto}.tree-folder li:last-child>.tree-folder::after,.tree-folder>li:last-child::after{display:none}#theme-plugin-editor-label{display:inline-block;margin-bottom:1em;font-weight:600}.fileedit-sub #plugin,.fileedit-sub #theme{max-width:40%}.fileedit-sub .alignright{text-align:right}#template p{width:97%}#file-editor-linting-error{margin-top:1em;margin-bottom:1em}#file-editor-linting-error>.notice{margin:0;display:inline-block}#file-editor-linting-error>.notice>p{width:auto}#template .submit{margin-top:1em;padding:0}#template .submit input[type=submit][disabled]{cursor:not-allowed}#templateside{float:right;width:16em}#postcustomstuff p.submit{margin:0}#templateside h4{margin:1em 0 0}#templateside li{margin:4px 0}#templateside li:not(.howto) a,.theme-editor-php .highlight{display:block;padding:3px 0 3px 12px;text-decoration:none}#templateside li:not(.howto)>a:first-of-type{padding-top:0}#templateside li.howto{padding:6px 12px 12px}.theme-editor-php .highlight{margin:-3px 3px -3px -12px}#templateside .highlight{border:none;font-weight:600}.nonessential{color:#666;font-size:11px;font-style:italic;padding-left:12px}#documentation{margin-top:10px}#documentation label{line-height:22px;vertical-align:baseline;font-weight:600}.fileedit-sub{padding:10px 0 8px;line-height:180%}#file-editor-warning .file-editor-warning-content{margin:25px}.accordion-section-title:after,.control-section .accordion-section-title:after,.nav-menus-php .item-edit:before,.widget-top .widget-action .toggle-indicator:before{content:"\f140";font:400 20px/1 dashicons;speak:none;display:block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-decoration:none!important}.widget-top .widget-action .toggle-indicator:before{padding:1px 2px 1px 0;border-radius:50%}.accordion-section-title:after,.handlediv,.item-edit,.postbox .handlediv.button-link,.toggle-indicator{color:#72777c}.widget-action{color:#555d66}.accordion-section-title:hover:after,.handlediv:focus,.handlediv:hover,.item-edit:focus,.item-edit:hover,.postbox .handlediv.button-link:focus,.postbox .handlediv.button-link:hover,.sidebar-name:hover .toggle-indicator,.widget-action:focus,.widget-top:hover .widget-action{color:#23282d}.widget-top .widget-action:focus .toggle-indicator:before{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.accordion-section-title:after,.control-section .accordion-section-title:after{float:right;right:20px;top:-2px}#customize-info.open .accordion-section-title:after,.control-section.open .accordion-section-title:after,.nav-menus-php .menu-item-edit-active .item-edit:before,.widget.open .widget-top .widget-action .toggle-indicator:before{content:"\f142"}/*! * jQuery UI Draggable/Sortable 1.11.4 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license - */.ui-draggable-handle,.ui-sortable-handle{touch-action:none}.accordion-section{border-bottom:1px solid #ddd;margin:0}.accordion-section.open .accordion-section-content,.no-js .accordion-section .accordion-section-content{display:block}.accordion-section.open:hover{border-bottom-color:#ddd}.accordion-section-content{display:none;padding:10px 20px 15px;overflow:hidden;background:#fff}.accordion-section-title{margin:0;padding:12px 15px 15px;position:relative;border-left:1px solid #ddd;border-right:1px solid #ddd;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.js .accordion-section-title{cursor:pointer}.js .accordion-section-title:after{position:absolute;top:12px;right:10px;z-index:1}.accordion-section-title:focus{outline:0}.accordion-section-title:focus:after,.accordion-section-title:hover:after{border-color:#a0a5aa transparent}.cannot-expand .accordion-section-title{cursor:auto}.cannot-expand .accordion-section-title:after{display:none}.control-section .accordion-section-title,.customize-pane-child .accordion-section-title{border-left:none;border-right:none;padding:10px 10px 11px 14px;line-height:21px;background:#fff}.control-section .accordion-section-title:after,.customize-pane-child .accordion-section-title:after{top:calc(50% - 10px)}.js .control-section .accordion-section-title:focus,.js .control-section .accordion-section-title:hover,.js .control-section.open .accordion-section-title,.js .control-section:hover .accordion-section-title{color:#23282d;background:#f5f5f5}.control-section.open .accordion-section-title{border-bottom:1px solid #ddd}.network-admin .edit-site-actions{margin-top:0}.my-sites{display:block;overflow:auto;zoom:1}.my-sites li{display:block;padding:8px 3%;min-height:130px;margin:0}@media only screen and (max-width:599px){.my-sites li{min-height:0}}@media only screen and (min-width:600px){.my-sites.striped li{background-color:#fff;position:relative}.my-sites.striped li:after{content:"";width:1px;height:100%;position:absolute;top:0;right:0;background:#ccc}}@media only screen and (min-width:600px) and (max-width:699px){.my-sites li{float:left;width:44%}.my-sites.striped li{background-color:#fff}.my-sites.striped li:nth-of-type(2n+1){clear:left}.my-sites.striped li:nth-of-type(2n+2):after{content:none}.my-sites li:nth-of-type(4n+1),.my-sites li:nth-of-type(4n+2){background-color:#f9f9f9}}@media only screen and (min-width:700px) and (max-width:1199px){.my-sites li{float:left;width:27.333333%;background-color:#fff}.my-sites.striped li:nth-of-type(3n+3):after{content:none}.my-sites li:nth-of-type(6n+1),.my-sites li:nth-of-type(6n+2),.my-sites li:nth-of-type(6n+3){background-color:#f9f9f9}}@media only screen and (min-width:1200px) and (max-width:1399px){.my-sites li{float:left;width:21%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(4n+1){clear:left}.my-sites.striped li:nth-of-type(4n+4):after{content:none}.my-sites li:nth-of-type(8n+1),.my-sites li:nth-of-type(8n+2),.my-sites li:nth-of-type(8n+3),.my-sites li:nth-of-type(8n+4){background-color:#f9f9f9}}@media only screen and (min-width:1400px) and (max-width:1599px){.my-sites li{float:left;width:16%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(5n+1){clear:left}.my-sites.striped li:nth-of-type(5n+5):after{content:none}.my-sites li:nth-of-type(10n+1),.my-sites li:nth-of-type(10n+2),.my-sites li:nth-of-type(10n+3),.my-sites li:nth-of-type(10n+4),.my-sites li:nth-of-type(10n+5){background-color:#f9f9f9}}@media only screen and (min-width:1600px){.my-sites li{float:left;width:12.666666%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(6n+1){clear:left}.my-sites.striped li:nth-of-type(6n+6):after{content:none}.my-sites li:nth-of-type(12n+1),.my-sites li:nth-of-type(12n+2),.my-sites li:nth-of-type(12n+3),.my-sites li:nth-of-type(12n+4),.my-sites li:nth-of-type(12n+5),.my-sites li:nth-of-type(12n+6){background-color:#f9f9f9}}.my-sites li a{text-decoration:none}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){div.star-holder,div.star-holder .star-rating{background:url(../images/stars-2x.png?ver=20121108) bottom left repeat-x;background-size:21px 37px}.spinner{background-image:url(../images/spinner-2x.gif)}#bulk-titles div a,#bulk-titles div a:hover,#screen-meta-links a.show-settings,.curtime #timestamp,.meta-box-sortables .postbox:hover .handlediv,.sidebar-name .toggle-indicator,.sidebar-name:hover .toggle-indicator,.widget-top .widget-action,.widget-top .widget-action:hover{background:0 0!important}}@-ms-viewport{width:device-width}@media screen and (max-width:782px){#col-left,#col-right,#templateside{float:none;width:auto}html.wp-toolbar{padding-top:46px}body{min-width:240px;overflow-x:hidden}body *{-webkit-tap-highlight-color:rgba(0,0,0,0)!important}#wpcontent{position:relative;margin-left:0;padding-left:10px}#wpbody-content{padding-bottom:100px}.wrap{margin-right:12px;margin-left:0}#col-left .col-wrap,#col-right .col-wrap{padding:0}#collapse-menu,#screen-meta,#screen-meta-links,.post-format-select{display:none!important}#documentation label[for=docs-list],.fileedit-sub .alignright label{display:block}.wrap h1.wp-heading-inline{margin-bottom:.5em}.wrap .add-new-h2,.wrap .add-new-h2:active,.wrap .page-title-action,.wrap .page-title-action:active{padding:10px 15px;font-size:14px;white-space:nowrap}.media-upload-form div.error,.notice,.wrap div.error,.wrap div.updated{margin:20px 0 10px;padding:5px 10px;font-size:14px;line-height:175%}.wp-core-ui .notice.is-dismissible{padding-right:46px}.notice-dismiss{padding:13px}.wrap .icon32+h2{margin-top:-2px}.wp-responsive-open #wpbody{right:-16em}code{word-wrap:break-word}.postbox{font-size:14px}.metabox-holder .postbox>h3,.metabox-holder .stuffbox>h3,.metabox-holder h2,.metabox-holder h3.hndle{padding:12px}.postbox .handlediv{margin-top:3px}.subsubsub{font-size:16px;text-align:center;margin-bottom:15px}#templateside>ul{border-left:1px solid #ddd}#templateside li{margin:0}#templateside li:not(.howto) a{display:block;padding:5px}#templateside li.howto{padding:12px}#templateside .highlight{padding:5px;margin-left:-5px;margin-top:-5px}#template .notice,#template>div{float:none;margin:1em 0;width:auto}#template .CodeMirror,#template textarea{box-sizing:border-box;width:100%}#templateside ul ul{padding-left:1.5em}[role=treeitem] .folder-label{display:block;padding:5px}#documentation input[type=button],.fileedit-sub input[type=submit]{margin-bottom:0;padding:8px 18px}.tree-folder .tree-folder::after,.tree-folder>li::after,.tree-folder>li::before{left:-8px}.tree-folder>li::before{top:0;height:13px}.tree-folder>.current-file::before{left:-5px;top:7px;width:4px}.tree-folder>.current-file::after{height:9px;left:-8px}.wrap #templateside span.notice{margin-left:-5px;width:100%}.fileedit-sub .alignright{float:left;margin-top:15px;width:100%;text-align:left}.fileedit-sub #plugin,.fileedit-sub #theme{margin-left:0;max-width:70%}#documentation select[name=docs-list]{margin-left:0;max-width:60%}#comments-form .checkforspam,#wpfooter{display:none}.edit-comment-author{margin:2px 0 0}.filter-drawer .filter-group-feature input,.filter-drawer .filter-group-feature label{line-height:25px}.filter-drawer .filter-group-feature label{margin-left:32px}.wp-filter .button.drawer-toggle{font-size:13px;line-height:26px;height:28px}}@media screen and (max-width:600px){#wpwrap.wp-responsive-open,div#post-body.metabox-holder.columns-1{overflow-x:hidden}html.wp-toolbar{padding-top:0}#wpbody{padding-top:46px}.nav-tab-wrapper,.wrap h2.nav-tab-wrapper,h1.nav-tab-wrapper{border-bottom:0}h1 .nav-tab,h2 .nav-tab,h3 .nav-tab{margin:10px 10px 0 0;border-bottom:1px solid #ccc}}.options-media-php br{display:none}@media screen and (max-width:375px){.options-media-php input[type=number][name*="_size_"]{margin:5px 0}.options-media-php label[for*="_size_h"]:before{content:'';display:block}.options-media-php br{display:block}}@media screen and (max-width:320px){#network_dashboard_right_now .subsubsub{font-size:14px;text-align:left}} \ No newline at end of file + */.ui-draggable-handle,.ui-sortable-handle{touch-action:none}.accordion-section{border-bottom:1px solid #ddd;margin:0}.accordion-section.open .accordion-section-content,.no-js .accordion-section .accordion-section-content{display:block}.accordion-section.open:hover{border-bottom-color:#ddd}.accordion-section-content{display:none;padding:10px 20px 15px;overflow:hidden;background:#fff}.accordion-section-title{margin:0;padding:12px 15px 15px;position:relative;border-left:1px solid #ddd;border-right:1px solid #ddd;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.js .accordion-section-title{cursor:pointer}.js .accordion-section-title:after{position:absolute;top:12px;right:10px;z-index:1}.accordion-section-title:focus{outline:0}.accordion-section-title:focus:after,.accordion-section-title:hover:after{border-color:#a0a5aa transparent}.cannot-expand .accordion-section-title{cursor:auto}.cannot-expand .accordion-section-title:after{display:none}.control-section .accordion-section-title,.customize-pane-child .accordion-section-title{border-left:none;border-right:none;padding:10px 10px 11px 14px;line-height:21px;background:#fff}.control-section .accordion-section-title:after,.customize-pane-child .accordion-section-title:after{top:calc(50% - 10px)}.js .control-section .accordion-section-title:focus,.js .control-section .accordion-section-title:hover,.js .control-section.open .accordion-section-title,.js .control-section:hover .accordion-section-title{color:#23282d;background:#f5f5f5}.control-section.open .accordion-section-title{border-bottom:1px solid #ddd}.network-admin .edit-site-actions{margin-top:0}.my-sites{display:block;overflow:auto;zoom:1}.my-sites li{display:block;padding:8px 3%;min-height:130px;margin:0}@media only screen and (max-width:599px){.my-sites li{min-height:0}}@media only screen and (min-width:600px){.my-sites.striped li{background-color:#fff;position:relative}.my-sites.striped li:after{content:"";width:1px;height:100%;position:absolute;top:0;right:0;background:#ccc}}@media only screen and (min-width:600px) and (max-width:699px){.my-sites li{float:left;width:44%}.my-sites.striped li{background-color:#fff}.my-sites.striped li:nth-of-type(2n+1){clear:left}.my-sites.striped li:nth-of-type(2n+2):after{content:none}.my-sites li:nth-of-type(4n+1),.my-sites li:nth-of-type(4n+2){background-color:#f9f9f9}}@media only screen and (min-width:700px) and (max-width:1199px){.my-sites li{float:left;width:27.333333%;background-color:#fff}.my-sites.striped li:nth-of-type(3n+3):after{content:none}.my-sites li:nth-of-type(6n+1),.my-sites li:nth-of-type(6n+2),.my-sites li:nth-of-type(6n+3){background-color:#f9f9f9}}@media only screen and (min-width:1200px) and (max-width:1399px){.my-sites li{float:left;width:21%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(4n+1){clear:left}.my-sites.striped li:nth-of-type(4n+4):after{content:none}.my-sites li:nth-of-type(8n+1),.my-sites li:nth-of-type(8n+2),.my-sites li:nth-of-type(8n+3),.my-sites li:nth-of-type(8n+4){background-color:#f9f9f9}}@media only screen and (min-width:1400px) and (max-width:1599px){.my-sites li{float:left;width:16%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(5n+1){clear:left}.my-sites.striped li:nth-of-type(5n+5):after{content:none}.my-sites li:nth-of-type(10n+1),.my-sites li:nth-of-type(10n+2),.my-sites li:nth-of-type(10n+3),.my-sites li:nth-of-type(10n+4),.my-sites li:nth-of-type(10n+5){background-color:#f9f9f9}}@media only screen and (min-width:1600px){.my-sites li{float:left;width:12.666666%;padding:8px 2%;background-color:#fff}.my-sites.striped li:nth-of-type(6n+1){clear:left}.my-sites.striped li:nth-of-type(6n+6):after{content:none}.my-sites li:nth-of-type(12n+1),.my-sites li:nth-of-type(12n+2),.my-sites li:nth-of-type(12n+3),.my-sites li:nth-of-type(12n+4),.my-sites li:nth-of-type(12n+5),.my-sites li:nth-of-type(12n+6){background-color:#f9f9f9}}.my-sites li a{text-decoration:none}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){div.star-holder,div.star-holder .star-rating{background:url(../images/stars-2x.png?ver=20121108) bottom left repeat-x;background-size:21px 37px}.spinner{background-image:url(../images/spinner-2x.gif)}#bulk-titles div a,#bulk-titles div a:hover,#screen-meta-links a.show-settings,.curtime #timestamp,.meta-box-sortables .postbox:hover .handlediv,.sidebar-name .toggle-indicator,.sidebar-name:hover .toggle-indicator,.widget-top .widget-action,.widget-top .widget-action:hover{background:0 0!important}}@-ms-viewport{width:device-width}@media screen and (max-width:782px){#col-left,#col-right,#templateside{float:none;width:auto}html.wp-toolbar{padding-top:46px}body{min-width:240px;overflow-x:hidden}body *{-webkit-tap-highlight-color:rgba(0,0,0,0)!important}#wpcontent{position:relative;margin-left:0;padding-left:10px}#wpbody-content{padding-bottom:100px}.wrap{margin-right:12px;margin-left:0}#col-left .col-wrap,#col-right .col-wrap{padding:0}#collapse-menu,#screen-meta,#screen-meta-links,.post-format-select{display:none!important}#documentation label[for=docs-list],.fileedit-sub .alignright label{display:block}.wrap h1.wp-heading-inline{margin-bottom:.5em}.wrap .add-new-h2,.wrap .add-new-h2:active,.wrap .page-title-action,.wrap .page-title-action:active{padding:10px 15px;font-size:14px;white-space:nowrap}.media-upload-form div.error,.notice,.wrap div.error,.wrap div.updated{margin:20px 0 10px;padding:5px 10px;font-size:14px;line-height:175%}.wp-core-ui .notice.is-dismissible{padding-right:46px}.notice-dismiss{padding:13px}.wrap .icon32+h2{margin-top:-2px}.wp-responsive-open #wpbody{right:-16em}code{word-wrap:break-word}.postbox{font-size:14px}.metabox-holder .postbox>h3,.metabox-holder .stuffbox>h3,.metabox-holder h2,.metabox-holder h3.hndle{padding:12px}.postbox .handlediv{margin-top:3px}.subsubsub{font-size:16px;text-align:center;margin-bottom:15px}#templateside>ul{border-left:1px solid #ddd}#templateside li{margin:0}#templateside li:not(.howto) a{display:block;padding:5px}#templateside li.howto{padding:12px}#templateside .highlight{padding:5px;margin-left:-5px;margin-top:-5px}#template .notice,#template>div{float:none;margin:1em 0;width:auto}#template .CodeMirror,#template textarea{box-sizing:border-box;width:100%}#templateside ul ul{padding-left:1.5em}[role=treeitem] .folder-label{display:block;padding:5px}#documentation input[type=button],.fileedit-sub input[type=submit]{margin-bottom:0;padding:8px 18px}.tree-folder .tree-folder::after,.tree-folder>li::after,.tree-folder>li::before{left:-8px}.tree-folder>li::before{top:0;height:13px}.tree-folder>.current-file::before{left:-5px;top:7px;width:4px}.tree-folder>.current-file::after{height:9px;left:-8px}.wrap #templateside span.notice{margin-left:-5px;width:100%}.fileedit-sub .alignright{float:left;margin-top:15px;width:100%;text-align:left}.fileedit-sub #plugin,.fileedit-sub #theme{margin-left:0;max-width:70%}#documentation select[name=docs-list]{margin-left:0;max-width:60%}#comments-form .checkforspam,#wpfooter{display:none}.edit-comment-author{margin:2px 0 0}.filter-drawer .filter-group-feature input,.filter-drawer .filter-group-feature label{line-height:25px}.filter-drawer .filter-group-feature label{margin-left:32px}.wp-filter .button.drawer-toggle{font-size:13px;line-height:26px;height:28px}}@media screen and (max-width:600px){#wpwrap.wp-responsive-open,div#post-body.metabox-holder.columns-1{overflow-x:hidden}html.wp-toolbar{padding-top:0}#wpbody{padding-top:46px}.nav-tab-wrapper,.wrap h2.nav-tab-wrapper,h1.nav-tab-wrapper{border-bottom:0}h1 .nav-tab,h2 .nav-tab,h3 .nav-tab{margin:10px 10px 0 0;border-bottom:1px solid #ccc}}@media screen and (max-width:320px){#network_dashboard_right_now .subsubsub{font-size:14px;text-align:left}} \ No newline at end of file diff --git a/wp-admin/css/edit-rtl.css b/wp-admin/css/edit-rtl.css index fa8162f2c..793d6d452 100644 --- a/wp-admin/css/edit-rtl.css +++ b/wp-admin/css/edit-rtl.css @@ -646,6 +646,93 @@ span.wp-media-buttons-icon:before { margin-bottom: 20px; } +/* Suggested text for privacy policy */ +.wp-privacy-policy-guide { + max-width: 1000px; +} + +.privacy-text-box { + width: calc(100% - 260px); +} + +.privacy-text-box-toc { + float: left; + width: 250px; + background-color: #fff; +} + +.privacy-text-box-toc p { + margin: 0; + padding: 0.7em 1em; + border-bottom: 1px solid #eee; +} + +.privacy-text-box-toc ol { + margin-right: 2em; +} + +.wp-privacy-policy-guide h3 { + font-size: 1.2em; + margin: 1em 0 0.5em; +} + +.privacy-text-section .privacy-text-copy { + float: left; +} + +.privacy-text-section { + position: relative; + border-top: 1px solid #e3e3e3; +} + +.privacy-text-box-head, +.privacy-text-section.text-removed { + padding-bottom: 12px; +} + +.text-removed .policy-text { + font-style: italic; + color: #666; + font-weight: 600; +} + +.privacy-text-actions { + height: 32px; + line-height: 32px; + padding-bottom: 6px; +} + +.wp-privacy-policy-guide .policy-text h2 { + margin: 1.2em 0 1em; + padding: 0; +} + +.suggested-policy-content { + font-style: italic; +} + +.privacy-text-section a.return-to-top { + float: left; + margin-left: -250px; + margin-top: 6px; +} + +.hide-privacy-policy-tutorial .privacy-policy-tutorial { + visibility: hidden; +} + +.wp-suggested-text p { + font-style: italic; +} + +.wp-suggested-text p.privacy-policy-tutorial { + font-style: normal; +} + +.notice.wp-pp-notice { + margin: 15px 0 3px; +} + /*------------------------------------------------------------------------------ 11.1 - Custom Fields ------------------------------------------------------------------------------*/ @@ -1570,4 +1657,19 @@ table.links-table { .links-table td { padding: 10px 0; } + + .privacy-text-box { + width: auto; + } + + .privacy-text-box-toc { + float: none; + width: auto; + height: 100%; + } + + .privacy-text-section a.return-to-top { + float: none; + margin: 0; + } } diff --git a/wp-admin/css/edit-rtl.min.css b/wp-admin/css/edit-rtl.min.css index 84d4bd06b..c69ffbe9b 100644 --- a/wp-admin/css/edit-rtl.min.css +++ b/wp-admin/css/edit-rtl.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -#pending,#poststuff #titlewrap{border:0;padding:0}#pending,#poststuff #post-body{padding:0}#editable-post-name-full,body.post-new-php .submitbox .submitdelete{display:none}#post-status-info,.postbox{box-shadow:0 1px 1px rgba(0,0,0,.04)}#titlediv,#wp-content-editor-container,.postbox,form#tags-filter{position:relative}#poststuff{padding-top:10px;min-width:763px}#poststuff .postbox-container{width:100%}#poststuff #post-body.columns-2{margin-left:300px}#show-comments{overflow:hidden}#save-action .spinner,#show-comments a{float:right}#show-comments .spinner{float:none;margin-top:0}#lost-connection-notice .spinner{visibility:visible;float:right;margin:0 0 0 5px}#titlediv label{cursor:text}#titlediv div.inside{margin:0}#titlediv #title{padding:3px 8px;font-size:1.7em;line-height:100%;height:1.7em;width:100%;outline:0;margin:0 0 3px;background-color:#fff}#titlediv #title-prompt-text{color:#72777c;position:absolute;font-size:1.7em;padding:11px 10px}input#link_description,input#link_url{width:98%}#pending{background:100% none;font-size:11px;margin-top:-1px}#comment-link-box,#edit-slug-box{line-height:24px;min-height:25px;margin-top:5px;padding:0 10px;color:#666}#edit-slug-box .cancel{margin-left:10px;padding:0;font-size:11px}#comment-link-box{margin:5px 0;padding:0 5px}#editable-post-name{font-weight:600}#editable-post-name input{font-size:13px;font-weight:400;height:24px;margin:0;width:16em}.postarea h3 label{float:right}.submitbox .submit a:hover{text-decoration:underline}.submitbox .submit input{margin-bottom:8px;margin-left:4px;padding:6px}#post-status-select{margin-top:3px}#post-body #normal-sortables{min-height:50px}.postbox{min-width:255px;border:1px solid #e5e5e5;background:#fff}#trackback_url{width:99%}#normal-sortables .postbox .submit{background:0 0;border:0;float:left;padding:0 12px;margin:0}.category-add input[type=text],.category-add select{width:100%;max-width:260px;vertical-align:baseline}#side-sortables .category-add input[type=text],#side-sortables .category-add select{margin:0 0 1em}#side-sortables .add-menu-item-tabs li,.wp-tab-bar li,ul.category-tabs li{display:inline;line-height:1.35em}.no-js .category-tabs li.hide-if-no-js{display:none}#side-sortables .add-menu-item-tabs a,.category-tabs a,.wp-tab-bar a{text-decoration:none}#post-body ul.add-menu-item-tabs li.tabs a,#post-body ul.category-tabs li.tabs a,#side-sortables .add-menu-item-tabs .tabs a,#side-sortables .category-tabs .tabs a,.wp-tab-bar .wp-tab-active a{color:#32373c}.category-tabs{margin:8px 0 5px}#category-adder h4{margin:0}.taxonomy-add-new{display:inline-block;margin:10px 0;font-weight:600}#side-sortables .add-menu-item-tabs,.wp-tab-bar{margin-bottom:3px}#normal-sortables .postbox #replyrow .submit{float:none;margin:0;padding:5px 7px 10px;overflow:hidden}#side-sortables .submitbox .submit .preview,#side-sortables .submitbox .submit a.preview:hover,#side-sortables .submitbox .submit input{border:0}ul.add-menu-item-tabs,ul.category-tabs,ul.wp-tab-bar{margin-top:12px}ul.add-menu-item-tabs li,ul.category-tabs li{border:1px solid transparent;position:relative}.wp-tab-active,ul.add-menu-item-tabs li.tabs,ul.category-tabs li.tabs{border:1px solid #ddd;border-bottom-color:#fdfdfd;background-color:#fdfdfd}ul.add-menu-item-tabs li,ul.category-tabs li,ul.wp-tab-bar li{padding:3px 5px 6px}#set-post-thumbnail{display:inline-block;max-width:100%}.ui-tabs-hide,.wp-editor-expand #content-resize-handle,.wp-hidden-children .wp-hidden-child{display:none}#postimagediv .inside img{max-width:100%;height:auto;width:auto;vertical-align:top;background-image:linear-gradient(-45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%,#c4c4c4),linear-gradient(-45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%,#c4c4c4);background-position:100% 0,10px 10px;background-size:20px 20px}#post-body .tagsdiv #newtag{margin-left:5px;width:16em}#side-sortables input#post_password{width:94%}#side-sortables .tagsdiv #newtag{width:68%}#post-status-info{width:100%;border-spacing:0;border:1px solid #e5e5e5;border-top:none;background-color:#f7f7f7;z-index:999}#post-status-info td{font-size:12px}.autosave-info{padding:2px 10px;text-align:left}#editorcontent #post-status-info{border:none}#content-resize-handle{background:url(../images/resize.gif) left bottom no-repeat;width:12px;cursor:row-resize}.rtl #content-resize-handle{background-image:url(../images/resize-rtl.gif);background-position:left bottom}#postdivrich #content{resize:none}#wp-word-count{display:block;padding:2px 10px}.wp-editor-expand #wp-content-editor-tools{z-index:1000;border-bottom:1px solid #e5e5e5}.wp-editor-expand #wp-content-editor-container{box-shadow:none;margin-top:-1px;border-bottom:0 none}.wp-editor-expand div.mce-statusbar{z-index:1}.wp-editor-expand #post-status-info{border-top:1px solid #e5e5e5}.wp-editor-expand div.mce-toolbar-grp{z-index:999}.mce-fullscreen #wp-content-wrap .mce-edit-area,.mce-fullscreen #wp-content-wrap .mce-menubar,.mce-fullscreen #wp-content-wrap .mce-statusbar,.mce-fullscreen #wp-content-wrap .mce-toolbar-grp{position:static!important;width:auto!important;padding:0!important}.mce-fullscreen #wp-content-wrap .mce-statusbar{visibility:visible!important}.mce-fullscreen #wp-content-wrap .mce-tinymce .mce-wp-dfw,.mce-fullscreen #wp-content-wrap .mce-wp-dfw,.post-php.mce-fullscreen #wpadminbar{display:none}#wp-content-editor-tools{background-color:#f1f1f1;padding-top:20px}#poststuff #post-body.columns-2 #side-sortables{width:280px}#timestampdiv select{height:21px;line-height:14px;padding:0;vertical-align:top;font-size:12px}#aa,#hh,#jj,#mn{padding:1px;font-size:12px}#hh,#jj,#mn{width:2em}#aa{width:3.4em}.curtime #timestamp{padding:2px 0 1px;display:inline!important;height:auto!important}#post-body #visibility:before,#post-body .misc-pub-post-status:before,#post-body .misc-pub-revisions:before,.curtime #timestamp:before,span.wp-media-buttons-icon:before{color:#82878c}#post-body #visibility:before,#post-body .misc-pub-post-status:before,#post-body .misc-pub-revisions:before,.curtime #timestamp:before{font:400 20px/1 dashicons;speak:none;display:inline-block;margin-right:-1px;padding-left:3px;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#post-body .misc-pub-post-status:before{content:"\f173"}#post-body #visibility:before{content:"\f177"}.curtime #timestamp:before{content:"\f145";position:relative;top:-1px}#post-body .misc-pub-revisions:before{content:"\f321"}#timestampdiv{padding-top:5px;line-height:23px}#timestampdiv p{margin:8px 0 6px}#timestampdiv input{border-width:1px;border-style:solid}.notification-dialog{position:fixed;top:30%;max-height:70%;right:50%;width:450px;margin-right:-225px;background:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);line-height:1.5;z-index:1000005;overflow-y:auto}.notification-dialog-background{position:fixed;top:0;right:0;left:0;bottom:0;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:1000000}#post-lock-dialog .post-locked-message,#post-lock-dialog .post-taken-over{margin:25px}#file-editor-warning .button,#post-lock-dialog .post-locked-message a.button{margin-left:10px}#post-lock-dialog .post-locked-avatar{float:right;margin:0 0 20px 20px}#post-lock-dialog .wp-tab-first{outline:0}#post-lock-dialog .locked-saving img{float:right;margin-left:3px}#post-lock-dialog.saved .locked-saved,#post-lock-dialog.saving .locked-saving{display:inline}#excerpt{display:block;margin:12px 0 0;height:4em;width:100%}.tagchecklist{margin-right:14px;font-size:12px;overflow:auto}.tagchecklist br{display:none}.tagchecklist strong{margin-right:-8px;position:absolute}.tagchecklist>li{float:right;margin-left:25px;font-size:13px;line-height:1.8em;cursor:default;max-width:100%;overflow:hidden;text-overflow:ellipsis}.tagchecklist .ntdelbutton{position:absolute;width:24px;height:24px;border:none;margin:0 -19px 0 0;padding:0;background:0 0;cursor:pointer;text-indent:0}#poststuff .stuffbox>h3,#poststuff h2,#poststuff h3.hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}#poststuff .inside{margin:6px 0 0}#poststuff .inside #page_template,#poststuff .inside #parent_id{max-width:100%}.ie8 #poststuff .inside #page_template,.ie8 #poststuff .inside #parent_id{width:250px}.post-attributes-label-wrapper{margin-bottom:.5em}.post-attributes-label{vertical-align:baseline;font-weight:600}#post-visibility-select{line-height:1.5em;margin-top:3px}#linksubmitdiv .inside,#poststuff #submitdiv .inside{margin:0;padding:0}#post-body-content,.edit-form-section{margin-bottom:20px}#postcustomstuff thead th{padding:5px 8px 8px;background-color:#f1f1f1}#postcustom #postcustomstuff .submit{border:0;float:none;padding:0 8px 8px}#side-sortables #postcustom #postcustomstuff .submit{margin:0;padding:0}#side-sortables #postcustom #postcustomstuff #the-list textarea{height:85px}#side-sortables #postcustom #postcustomstuff td.left input,#side-sortables #postcustom #postcustomstuff td.left select,#side-sortables #postcustomstuff #newmetaleft a{margin:3px 3px 0}#postcustomstuff table{margin:0;width:100%;border:1px solid #ddd;border-spacing:0;background-color:#f9f9f9}#postcustomstuff tr{vertical-align:top}#postcustomstuff table input,#postcustomstuff table select,#postcustomstuff table textarea{width:96%;margin:8px}#side-sortables #postcustomstuff table input,#side-sortables #postcustomstuff table select,#side-sortables #postcustomstuff table textarea{margin:3px}#postcustomstuff td.left,#postcustomstuff th.left{width:38%}#postcustomstuff .submit input{margin:0;width:auto}#postcustomstuff #newmetaleft a{display:inline-block;margin:0 8px 8px;text-decoration:none}.no-js #postcustomstuff #enternew{display:none}#post-body-content .compat-attachment-fields{margin-bottom:20px}.compat-attachment-fields th{padding-top:5px;padding-left:10px}#select-featured-image{padding:4px 0;overflow:hidden}#select-featured-image img{max-width:100%;height:auto;margin-bottom:10px}#select-featured-image a{float:right;clear:both}#select-featured-image .remove{display:none;margin-top:10px}.js #select-featured-image.has-featured-image .remove{display:inline-block}.no-js #select-featured-image .choose{display:none}.post-state-format{overflow:hidden;display:inline-block;vertical-align:middle;height:20px;width:20px;margin-left:5px;margin-top:-4px}.post-state-format:before{display:block;height:20px;width:20px;font:400 20px/1 dashicons!important;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.post-format-icon:before,.post-state-format:before{color:#ddd;transition:all .1s ease-in-out}a.post-format-icon:hover:before,a.post-state-format:hover:before{color:#00a0d2}#post-formats-select{line-height:2em}#post-formats-select .post-format-icon:before{top:5px}input.post-format{margin-top:1px}label.post-format-icon{margin-right:0;padding:2px 0}.post-format-icon:before{position:relative;display:inline-block;margin-left:7px;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.post-format-icon.post-format-standard:before,.post-state-format.post-format-standard:before,a.post-state-format.format-standard:before{content:"\f109"}.post-format-icon.post-format-image:before,.post-state-format.post-format-image:before,a.post-state-format.format-image:before{content:"\f128"}.post-format-icon.post-format-gallery:before,.post-state-format.post-format-gallery:before,a.post-state-format.format-gallery:before{content:"\f161"}.post-format-icon.post-format-audio:before,.post-state-format.post-format-audio:before,a.post-state-format.format-audio:before{content:"\f127"}.post-format-icon.post-format-video:before,.post-state-format.post-format-video:before,a.post-state-format.format-video:before{content:"\f126"}.post-format-icon.post-format-chat:before,.post-state-format.post-format-chat:before,a.post-state-format.format-chat:before{content:"\f125"}.post-format-icon.post-format-status:before,.post-state-format.post-format-status:before,a.post-state-format.format-status:before{content:"\f130"}.post-format-icon.post-format-aside:before,.post-state-format.post-format-aside:before,a.post-state-format.format-aside:before{content:"\f123"}.post-format-icon.post-format-quote:before,.post-state-format.post-format-quote:before,a.post-state-format.format-quote:before{content:"\f122"}.post-format-icon.post-format-link:before,.post-state-format.post-format-link:before,a.post-state-format.format-link:before{content:"\f103"}.category-adder{margin-right:120px;padding:4px 0}.category-adder h4{margin:0 0 8px}#side-sortables .category-adder{margin:0}.categorydiv div.tabs-panel,.customlinkdiv div.tabs-panel,.posttypediv div.tabs-panel,.taxonomydiv div.tabs-panel,.wp-tab-panel{min-height:42px;max-height:200px;overflow:auto;padding:0 .9em;border:1px solid #ddd;background-color:#fdfdfd}div.tabs-panel-active{display:block}div.tabs-panel-inactive{display:none}#front-page-warning,#front-static-pages ul,.categorydiv ul.categorychecklist ul,.customlinkdiv ul.categorychecklist ul,.inline-editor ul.cat-checklist ul,.posttypediv ul.categorychecklist ul,.taxonomydiv ul.categorychecklist ul,ul.export-filters{margin-right:18px}ul.categorychecklist li{margin:0;padding:0;line-height:22px;word-wrap:break-word}.categorydiv .tabs-panel,.customlinkdiv .tabs-panel,.posttypediv .tabs-panel,.taxonomydiv .tabs-panel{border-width:3px;border-style:solid}.form-wrap label{display:block;padding:2px 0}.form-field input[type=text],.form-field input[type=password],.form-field input[type=email],.form-field input[type=number],.form-field input[type=search],.form-field input[type=tel],.form-field input[type=url],.form-field textarea{border-style:solid;border-width:1px;width:95%}.form-wrap p,p.description{margin:2px 0 5px;color:#666}.form-wrap p,p.description,p.help,span.description{font-size:13px;font-style:italic}.form-wrap .form-field{margin:1em 0;padding:0}.form-wrap .form-field #parent{max-width:100%}.col-wrap h2{margin:12px 0;font-size:1.1em}.col-wrap p.submit{margin-top:-10px}.edit-term-notes{margin-top:2em}#poststuff .tagsdiv .howto{margin:0 0 6px}.ajaxtag .newtag{position:relative}.tagsdiv .newtag{width:180px}.tagsdiv .the-tags{display:block;height:60px;margin:0 auto;overflow:auto;width:260px}#post-body-content .tagsdiv .the-tags{margin:0 5px}p.popular-tags{border:none;line-height:2em;padding:8px 12px 12px;text-align:justify}p.popular-tags a{padding:0 3px}.tagcloud{width:97%;margin:0 0 40px;text-align:justify}.tagcloud h2{margin:2px 0 12px}.the-tagcloud ul{margin:0}.the-tagcloud ul li{display:inline-block}.ac_results{display:none;margin:-1px 0 0;padding:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;background-color:#fff}.wp-customizer .ac_results{z-index:500000}.ac_results li{margin:0;padding:5px 10px;white-space:nowrap;text-align:right}.ac_over .ac_match,.ac_results .ac_over{background-color:#0073aa;color:#fff;cursor:pointer}.ac_match{text-decoration:underline}#edittag{max-width:800px}.edit-tag-actions{margin-top:20px;overflow:hidden;padding:10px;margin-left:10px}.comment-php .wp-editor-area{height:200px}.comment-ays td,.comment-ays th{padding:10px 15px}.comment-ays .comment-content ul{list-style:outside;margin-right:2em}.comment-ays .comment-content a[href]:after{content:'(' attr(href) ')';display:inline-block;padding:0 4px;color:#72777C;font-size:13px;word-break:break-all}.comment-ays .comment-content p.edit-comment{margin-top:10px}.comment-ays .comment-content p.edit-comment a[href]:after{content:'';padding:0}#comment-status-radio label,.links-table td,.links-table th{padding:5px 0}.comment-ays-submit .button-cancel{margin-right:1em}.spam-undo-inside,.trash-undo-inside{margin:1px 0 1px 8px;line-height:16px}.spam-undo-inside .avatar,.trash-undo-inside .avatar{height:20px;width:20px;margin-left:8px;vertical-align:middle}.stuffbox .editcomment{clear:none}#comment-status-radio p{margin:3px 0 5px}#comment-status-radio input{margin:2px 0 5px 3px;vertical-align:middle}table.links-table{width:100%;border-spacing:0}.links-table th{font-weight:400;text-align:right;vertical-align:top;min-width:80px;width:20%;word-wrap:break-word}.links-table td label{margin-left:8px}.links-table td input[type=text],.links-table td textarea{width:100%}.links-table #link_rel{max-width:280px}#qt_content_dfw,#wp-content-wrap .mce-wp-dfw{display:none}.wp-editor-expand #qt_content_dfw,.wp-editor-expand #wp-content-wrap .mce-wp-dfw{display:inline-block}.focus-on #screen-meta,.focus-on #screen-meta-links,.focus-on #wp-toolbar,.focus-on #wpfooter,.focus-on .page-title-action,.focus-on .postbox-container>*,.focus-on .update-nag,.focus-on .wrap>h1,.focus-on div.error,.focus-on div.notice,.focus-on div.updated{opacity:0;transition-duration:.6s;transition-property:opacity;transition-timing-function:ease-in-out}.focus-on #wp-toolbar{opacity:.3}.focus-off #screen-meta,.focus-off #screen-meta-links,.focus-off #wp-toolbar,.focus-off #wpfooter,.focus-off .page-title-action,.focus-off .postbox-container>*,.focus-off .update-nag,.focus-off .wrap>h1,.focus-off div.error,.focus-off div.notice,.focus-off div.updated{opacity:1;transition-duration:.2s;transition-property:opacity;transition-timing-function:ease-in-out}.focus-off #wp-toolbar{-webkit-transform:translate(0,0)}.focus-on #adminmenuback,.focus-on #adminmenuwrap{transition-duration:.6s;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;transition-timing-function:ease-in-out;-webkit-transform:translateX(100%);transform:translateX(100%)}.focus-off #adminmenuback,.focus-off #adminmenuwrap{-webkit-transform:translateX(0);transform:translateX(0);transition-duration:.2s;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;transition-timing-function:ease-in-out}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#content-resize-handle,#post-body .wp_themeSkin .mceStatusbar a.mceResize{background:url(../images/resize-2x.gif) left bottom no-repeat;background-size:11px 11px}.rtl #content-resize-handle,.rtl #post-body .wp_themeSkin .mceStatusbar a.mceResize{background-image:url(../images/resize-rtl-2x.gif);background-position:left bottom}}@media only screen and (max-width:850px){#poststuff{min-width:0}#wpbody-content #poststuff #post-body{margin:0}#wpbody-content #post-body.columns-2 #postbox-container-1{margin-left:0;width:100%}#poststuff #postbox-container-1 #side-sortables:empty,#poststuff #postbox-container-1 .empty-container{border:0;height:0;min-height:0}#poststuff #post-body.columns-2 #side-sortables{min-height:0;width:auto}.columns-prefs,.screen-layout{display:none}}@media screen and (max-width:782px){.wp-core-ui .edit-tag-actions .button-primary{margin-bottom:0}#post-body-content{min-width:0}#titlediv #title-prompt-text{padding:10px}#poststuff .stuffbox>h3,#poststuff h2,#poststuff h3.hndle{padding:12px}.post-format-options{padding-left:0}.post-format-options a{margin-left:5px;margin-bottom:5px;min-width:52px}.post-format-options .post-format-title{font-size:11px}.post-format-options a div{height:28px;width:28px}.post-format-options a div:before{font-size:26px!important}#post-visibility-select{line-height:280%}.wp-core-ui .save-post-visibility,.wp-core-ui .save-timestamp{vertical-align:middle;margin-left:15px}.timestamp-wrap select#mm{display:block;width:100%;margin-bottom:10px}.timestamp-wrap #aa,.timestamp-wrap #hh,.timestamp-wrap #jj,.timestamp-wrap #mn{padding:12px 3px;font-size:14px;margin-bottom:5px;width:auto;text-align:center}ul.category-tabs{margin:30px 0 15px}.tagsdiv .newtag,ul.categorychecklist li{margin-bottom:15px}ul.category-tabs li.tabs{padding:15px}ul.categorychecklist ul{margin-top:15px}.category-add input[type=text],.category-add select{max-width:none;margin-bottom:15px}.tagsdiv .newtag{width:100%;height:auto}.tagchecklist{margin:25px 10px}.tagchecklist>li{font-size:16px;line-height:1.4}#commentstatusdiv p{line-height:2.8}.mceToolbar *{white-space:normal!important}.mceToolbar td,.mceToolbar tr{float:right!important}.wp_themeSkin a.mceButton{width:30px;height:30px}.wp_themeSkin .mceButton .mceIcon{margin-top:5px;margin-right:5px}.wp_themeSkin .mceSplitButton{margin-top:1px}.wp_themeSkin .mceSplitButton td a.mceAction{padding:6px 6px 6px 3px}.wp_themeSkin .mceSplitButton td a.mceOpen,.wp_themeSkin .mceSplitButtonEnabled:hover td a.mceOpen{padding-top:6px;padding-bottom:6px;background-position:1px 6px}.wp_themeSkin table.mceListBox{margin:5px}div.quicktags-toolbar input{padding:10px 20px}button.wp-switch-editor{font-size:16px;line-height:1em;margin:7px 7px 0 0;padding:8px 12px}#wp-content-media-buttons a{font-size:14px;padding:6px 10px}.wp-media-buttons span.jetpack-contact-form-icon,.wp-media-buttons span.wp-media-buttons-icon{width:22px!important;margin-right:-2px!important}.wp-media-buttons #insert-jetpack-contact-form span.jetpack-contact-form-icon:before,.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font-size:20px!important}#content_wp_fullscreen{display:none}.misc-pub-section{padding:20px 10px}.misc-pub-section>a{float:left;font-size:16px}#delete-action,#publishing-action{line-height:47px}#publishing-action .spinner{float:none;margin-top:-2px}.comment-ays td,.comment-ays th{padding-bottom:0}.comment-ays td{padding-top:6px}.links-table #link_rel{max-width:none}.links-table td,.links-table th{padding:10px 0}} \ No newline at end of file +#pending,#poststuff #titlewrap{border:0;padding:0}#pending,#poststuff #post-body{padding:0}#editable-post-name-full,body.post-new-php .submitbox .submitdelete{display:none}#post-status-info,.postbox{box-shadow:0 1px 1px rgba(0,0,0,.04)}#titlediv,#wp-content-editor-container,.postbox,form#tags-filter{position:relative}#poststuff{padding-top:10px;min-width:763px}#poststuff .postbox-container{width:100%}#poststuff #post-body.columns-2{margin-left:300px}#show-comments{overflow:hidden}#save-action .spinner,#show-comments a{float:right}#show-comments .spinner{float:none;margin-top:0}#lost-connection-notice .spinner{visibility:visible;float:right;margin:0 0 0 5px}#titlediv label{cursor:text}#titlediv div.inside{margin:0}#titlediv #title{padding:3px 8px;font-size:1.7em;line-height:100%;height:1.7em;width:100%;outline:0;margin:0 0 3px;background-color:#fff}#titlediv #title-prompt-text{color:#72777c;position:absolute;font-size:1.7em;padding:11px 10px}input#link_description,input#link_url{width:98%}#pending{background:100% none;font-size:11px;margin-top:-1px}#comment-link-box,#edit-slug-box{line-height:24px;min-height:25px;margin-top:5px;padding:0 10px;color:#666}#edit-slug-box .cancel{margin-left:10px;padding:0;font-size:11px}#comment-link-box{margin:5px 0;padding:0 5px}#editable-post-name{font-weight:600}#editable-post-name input{font-size:13px;font-weight:400;height:24px;margin:0;width:16em}.postarea h3 label{float:right}.submitbox .submit a:hover{text-decoration:underline}.submitbox .submit input{margin-bottom:8px;margin-left:4px;padding:6px}#post-status-select{margin-top:3px}#post-body #normal-sortables{min-height:50px}.postbox{min-width:255px;border:1px solid #e5e5e5;background:#fff}#trackback_url{width:99%}#normal-sortables .postbox .submit{background:0 0;border:0;float:left;padding:0 12px;margin:0}.category-add input[type=text],.category-add select{width:100%;max-width:260px;vertical-align:baseline}#side-sortables .category-add input[type=text],#side-sortables .category-add select{margin:0 0 1em}#side-sortables .add-menu-item-tabs li,.wp-tab-bar li,ul.category-tabs li{display:inline;line-height:1.35em}.no-js .category-tabs li.hide-if-no-js{display:none}#side-sortables .add-menu-item-tabs a,.category-tabs a,.wp-tab-bar a{text-decoration:none}#post-body ul.add-menu-item-tabs li.tabs a,#post-body ul.category-tabs li.tabs a,#side-sortables .add-menu-item-tabs .tabs a,#side-sortables .category-tabs .tabs a,.wp-tab-bar .wp-tab-active a{color:#32373c}.category-tabs{margin:8px 0 5px}#category-adder h4{margin:0}.taxonomy-add-new{display:inline-block;margin:10px 0;font-weight:600}#side-sortables .add-menu-item-tabs,.wp-tab-bar{margin-bottom:3px}#normal-sortables .postbox #replyrow .submit{float:none;margin:0;padding:5px 7px 10px;overflow:hidden}#side-sortables .submitbox .submit .preview,#side-sortables .submitbox .submit a.preview:hover,#side-sortables .submitbox .submit input{border:0}ul.add-menu-item-tabs,ul.category-tabs,ul.wp-tab-bar{margin-top:12px}ul.add-menu-item-tabs li,ul.category-tabs li{border:1px solid transparent;position:relative}.wp-tab-active,ul.add-menu-item-tabs li.tabs,ul.category-tabs li.tabs{border:1px solid #ddd;border-bottom-color:#fdfdfd;background-color:#fdfdfd}ul.add-menu-item-tabs li,ul.category-tabs li,ul.wp-tab-bar li{padding:3px 5px 6px}#set-post-thumbnail{display:inline-block;max-width:100%}.ui-tabs-hide,.wp-editor-expand #content-resize-handle,.wp-hidden-children .wp-hidden-child{display:none}#postimagediv .inside img{max-width:100%;height:auto;width:auto;vertical-align:top;background-image:linear-gradient(-45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%,#c4c4c4),linear-gradient(-45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%,#c4c4c4);background-position:100% 0,10px 10px;background-size:20px 20px}#post-body .tagsdiv #newtag{margin-left:5px;width:16em}#side-sortables input#post_password{width:94%}#side-sortables .tagsdiv #newtag{width:68%}#post-status-info{width:100%;border-spacing:0;border:1px solid #e5e5e5;border-top:none;background-color:#f7f7f7;z-index:999}#post-status-info td{font-size:12px}.autosave-info{padding:2px 10px;text-align:left}#editorcontent #post-status-info{border:none}#content-resize-handle{background:url(../images/resize.gif) left bottom no-repeat;width:12px;cursor:row-resize}.rtl #content-resize-handle{background-image:url(../images/resize-rtl.gif);background-position:left bottom}#postdivrich #content{resize:none}#wp-word-count{display:block;padding:2px 10px}.wp-editor-expand #wp-content-editor-tools{z-index:1000;border-bottom:1px solid #e5e5e5}.wp-editor-expand #wp-content-editor-container{box-shadow:none;margin-top:-1px;border-bottom:0 none}.wp-editor-expand div.mce-statusbar{z-index:1}.wp-editor-expand #post-status-info{border-top:1px solid #e5e5e5}.wp-editor-expand div.mce-toolbar-grp{z-index:999}.mce-fullscreen #wp-content-wrap .mce-edit-area,.mce-fullscreen #wp-content-wrap .mce-menubar,.mce-fullscreen #wp-content-wrap .mce-statusbar,.mce-fullscreen #wp-content-wrap .mce-toolbar-grp{position:static!important;width:auto!important;padding:0!important}.mce-fullscreen #wp-content-wrap .mce-statusbar{visibility:visible!important}.mce-fullscreen #wp-content-wrap .mce-tinymce .mce-wp-dfw,.mce-fullscreen #wp-content-wrap .mce-wp-dfw,.post-php.mce-fullscreen #wpadminbar{display:none}#wp-content-editor-tools{background-color:#f1f1f1;padding-top:20px}#poststuff #post-body.columns-2 #side-sortables{width:280px}#timestampdiv select{height:21px;line-height:14px;padding:0;vertical-align:top;font-size:12px}#aa,#hh,#jj,#mn{padding:1px;font-size:12px}#hh,#jj,#mn{width:2em}#aa{width:3.4em}.curtime #timestamp{padding:2px 0 1px;display:inline!important;height:auto!important}#post-body #visibility:before,#post-body .misc-pub-post-status:before,#post-body .misc-pub-revisions:before,.curtime #timestamp:before,span.wp-media-buttons-icon:before{color:#82878c}#post-body #visibility:before,#post-body .misc-pub-post-status:before,#post-body .misc-pub-revisions:before,.curtime #timestamp:before{font:400 20px/1 dashicons;speak:none;display:inline-block;margin-right:-1px;padding-left:3px;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.suggested-policy-content,.wp-suggested-text p{font-style:italic}#post-body .misc-pub-post-status:before{content:"\f173"}#post-body #visibility:before{content:"\f177"}.curtime #timestamp:before{content:"\f145";position:relative;top:-1px}#post-body .misc-pub-revisions:before{content:"\f321"}#timestampdiv{padding-top:5px;line-height:23px}#timestampdiv p{margin:8px 0 6px}#timestampdiv input{border-width:1px;border-style:solid}.notification-dialog{position:fixed;top:30%;max-height:70%;right:50%;width:450px;margin-right:-225px;background:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);line-height:1.5;z-index:1000005;overflow-y:auto}.notification-dialog-background{position:fixed;top:0;right:0;left:0;bottom:0;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:1000000}#post-lock-dialog .post-locked-message,#post-lock-dialog .post-taken-over{margin:25px}#file-editor-warning .button,#post-lock-dialog .post-locked-message a.button{margin-left:10px}#post-lock-dialog .post-locked-avatar{float:right;margin:0 0 20px 20px}#post-lock-dialog .wp-tab-first{outline:0}#post-lock-dialog .locked-saving img{float:right;margin-left:3px}#post-lock-dialog.saved .locked-saved,#post-lock-dialog.saving .locked-saving{display:inline}#excerpt{display:block;margin:12px 0 0;height:4em;width:100%}.tagchecklist{margin-right:14px;font-size:12px;overflow:auto}.tagchecklist br{display:none}.tagchecklist strong{margin-right:-8px;position:absolute}.tagchecklist>li{float:right;margin-left:25px;font-size:13px;line-height:1.8em;cursor:default;max-width:100%;overflow:hidden;text-overflow:ellipsis}.tagchecklist .ntdelbutton{position:absolute;width:24px;height:24px;border:none;margin:0 -19px 0 0;padding:0;background:0 0;cursor:pointer;text-indent:0}#poststuff .stuffbox>h3,#poststuff h2,#poststuff h3.hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}#poststuff .inside{margin:6px 0 0}#poststuff .inside #page_template,#poststuff .inside #parent_id{max-width:100%}.ie8 #poststuff .inside #page_template,.ie8 #poststuff .inside #parent_id{width:250px}.post-attributes-label-wrapper{margin-bottom:.5em}.post-attributes-label{vertical-align:baseline;font-weight:600}#post-visibility-select{line-height:1.5em;margin-top:3px}#linksubmitdiv .inside,#poststuff #submitdiv .inside{margin:0;padding:0}#post-body-content,.edit-form-section{margin-bottom:20px}.wp-privacy-policy-guide{max-width:1000px}.privacy-text-box{width:calc(100% - 260px)}.privacy-text-box-toc{float:left;width:250px;background-color:#fff}.privacy-text-box-toc p{margin:0;padding:.7em 1em;border-bottom:1px solid #eee}.privacy-text-box-toc ol{margin-right:2em}.wp-privacy-policy-guide h3{font-size:1.2em;margin:1em 0 .5em}.privacy-text-section .privacy-text-copy{float:left}.privacy-text-section{position:relative;border-top:1px solid #e3e3e3}.privacy-text-box-head,.privacy-text-section.text-removed{padding-bottom:12px}.text-removed .policy-text{font-style:italic;color:#666;font-weight:600}.privacy-text-actions{height:32px;line-height:32px;padding-bottom:6px}.wp-privacy-policy-guide .policy-text h2{margin:1.2em 0 1em;padding:0}.privacy-text-section a.return-to-top{float:left;margin-left:-250px;margin-top:6px}.hide-privacy-policy-tutorial .privacy-policy-tutorial{visibility:hidden}.wp-suggested-text p.privacy-policy-tutorial{font-style:normal}.notice.wp-pp-notice{margin:15px 0 3px}#postcustomstuff thead th{padding:5px 8px 8px;background-color:#f1f1f1}#postcustom #postcustomstuff .submit{border:0;float:none;padding:0 8px 8px}#side-sortables #postcustom #postcustomstuff .submit{margin:0;padding:0}#side-sortables #postcustom #postcustomstuff #the-list textarea{height:85px}#side-sortables #postcustom #postcustomstuff td.left input,#side-sortables #postcustom #postcustomstuff td.left select,#side-sortables #postcustomstuff #newmetaleft a{margin:3px 3px 0}#postcustomstuff table{margin:0;width:100%;border:1px solid #ddd;border-spacing:0;background-color:#f9f9f9}#postcustomstuff tr{vertical-align:top}#postcustomstuff table input,#postcustomstuff table select,#postcustomstuff table textarea{width:96%;margin:8px}#side-sortables #postcustomstuff table input,#side-sortables #postcustomstuff table select,#side-sortables #postcustomstuff table textarea{margin:3px}#postcustomstuff td.left,#postcustomstuff th.left{width:38%}#postcustomstuff .submit input{margin:0;width:auto}#postcustomstuff #newmetaleft a{display:inline-block;margin:0 8px 8px;text-decoration:none}.no-js #postcustomstuff #enternew{display:none}#post-body-content .compat-attachment-fields{margin-bottom:20px}.compat-attachment-fields th{padding-top:5px;padding-left:10px}#select-featured-image{padding:4px 0;overflow:hidden}#select-featured-image img{max-width:100%;height:auto;margin-bottom:10px}#select-featured-image a{float:right;clear:both}#select-featured-image .remove{display:none;margin-top:10px}.js #select-featured-image.has-featured-image .remove{display:inline-block}.no-js #select-featured-image .choose{display:none}.post-state-format{overflow:hidden;display:inline-block;vertical-align:middle;height:20px;width:20px;margin-left:5px;margin-top:-4px}.post-state-format:before{display:block;height:20px;width:20px;font:400 20px/1 dashicons!important;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.post-format-icon:before,.post-state-format:before{color:#ddd;transition:all .1s ease-in-out}a.post-format-icon:hover:before,a.post-state-format:hover:before{color:#00a0d2}#post-formats-select{line-height:2em}#post-formats-select .post-format-icon:before{top:5px}input.post-format{margin-top:1px}label.post-format-icon{margin-right:0;padding:2px 0}.post-format-icon:before{position:relative;display:inline-block;margin-left:7px;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.post-format-icon.post-format-standard:before,.post-state-format.post-format-standard:before,a.post-state-format.format-standard:before{content:"\f109"}.post-format-icon.post-format-image:before,.post-state-format.post-format-image:before,a.post-state-format.format-image:before{content:"\f128"}.post-format-icon.post-format-gallery:before,.post-state-format.post-format-gallery:before,a.post-state-format.format-gallery:before{content:"\f161"}.post-format-icon.post-format-audio:before,.post-state-format.post-format-audio:before,a.post-state-format.format-audio:before{content:"\f127"}.post-format-icon.post-format-video:before,.post-state-format.post-format-video:before,a.post-state-format.format-video:before{content:"\f126"}.post-format-icon.post-format-chat:before,.post-state-format.post-format-chat:before,a.post-state-format.format-chat:before{content:"\f125"}.post-format-icon.post-format-status:before,.post-state-format.post-format-status:before,a.post-state-format.format-status:before{content:"\f130"}.post-format-icon.post-format-aside:before,.post-state-format.post-format-aside:before,a.post-state-format.format-aside:before{content:"\f123"}.post-format-icon.post-format-quote:before,.post-state-format.post-format-quote:before,a.post-state-format.format-quote:before{content:"\f122"}.post-format-icon.post-format-link:before,.post-state-format.post-format-link:before,a.post-state-format.format-link:before{content:"\f103"}.category-adder{margin-right:120px;padding:4px 0}.category-adder h4{margin:0 0 8px}#side-sortables .category-adder{margin:0}.categorydiv div.tabs-panel,.customlinkdiv div.tabs-panel,.posttypediv div.tabs-panel,.taxonomydiv div.tabs-panel,.wp-tab-panel{min-height:42px;max-height:200px;overflow:auto;padding:0 .9em;border:1px solid #ddd;background-color:#fdfdfd}div.tabs-panel-active{display:block}div.tabs-panel-inactive{display:none}#front-page-warning,#front-static-pages ul,.categorydiv ul.categorychecklist ul,.customlinkdiv ul.categorychecklist ul,.inline-editor ul.cat-checklist ul,.posttypediv ul.categorychecklist ul,.taxonomydiv ul.categorychecklist ul,ul.export-filters{margin-right:18px}ul.categorychecklist li{margin:0;padding:0;line-height:22px;word-wrap:break-word}.categorydiv .tabs-panel,.customlinkdiv .tabs-panel,.posttypediv .tabs-panel,.taxonomydiv .tabs-panel{border-width:3px;border-style:solid}.form-wrap label{display:block;padding:2px 0}.form-field input[type=text],.form-field input[type=password],.form-field input[type=email],.form-field input[type=number],.form-field input[type=search],.form-field input[type=tel],.form-field input[type=url],.form-field textarea{border-style:solid;border-width:1px;width:95%}.form-wrap p,p.description{margin:2px 0 5px;color:#666}.form-wrap p,p.description,p.help,span.description{font-size:13px;font-style:italic}.form-wrap .form-field{margin:1em 0;padding:0}.form-wrap .form-field #parent{max-width:100%}.col-wrap h2{margin:12px 0;font-size:1.1em}.col-wrap p.submit{margin-top:-10px}.edit-term-notes{margin-top:2em}#poststuff .tagsdiv .howto{margin:0 0 6px}.ajaxtag .newtag{position:relative}.tagsdiv .newtag{width:180px}.tagsdiv .the-tags{display:block;height:60px;margin:0 auto;overflow:auto;width:260px}#post-body-content .tagsdiv .the-tags{margin:0 5px}p.popular-tags{border:none;line-height:2em;padding:8px 12px 12px;text-align:justify}p.popular-tags a{padding:0 3px}.tagcloud{width:97%;margin:0 0 40px;text-align:justify}.tagcloud h2{margin:2px 0 12px}.the-tagcloud ul{margin:0}.the-tagcloud ul li{display:inline-block}.ac_results{display:none;margin:-1px 0 0;padding:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;background-color:#fff}.wp-customizer .ac_results{z-index:500000}.ac_results li{margin:0;padding:5px 10px;white-space:nowrap;text-align:right}.ac_over .ac_match,.ac_results .ac_over{background-color:#0073aa;color:#fff;cursor:pointer}.ac_match{text-decoration:underline}#edittag{max-width:800px}.edit-tag-actions{margin-top:20px;overflow:hidden;padding:10px;margin-left:10px}.comment-php .wp-editor-area{height:200px}.comment-ays td,.comment-ays th{padding:10px 15px}.comment-ays .comment-content ul{list-style:outside;margin-right:2em}.comment-ays .comment-content a[href]:after{content:'(' attr(href) ')';display:inline-block;padding:0 4px;color:#72777C;font-size:13px;word-break:break-all}.comment-ays .comment-content p.edit-comment{margin-top:10px}.comment-ays .comment-content p.edit-comment a[href]:after{content:'';padding:0}#comment-status-radio label,.links-table td,.links-table th{padding:5px 0}.comment-ays-submit .button-cancel{margin-right:1em}.spam-undo-inside,.trash-undo-inside{margin:1px 0 1px 8px;line-height:16px}.spam-undo-inside .avatar,.trash-undo-inside .avatar{height:20px;width:20px;margin-left:8px;vertical-align:middle}.stuffbox .editcomment{clear:none}#comment-status-radio p{margin:3px 0 5px}#comment-status-radio input{margin:2px 0 5px 3px;vertical-align:middle}table.links-table{width:100%;border-spacing:0}.links-table th{font-weight:400;text-align:right;vertical-align:top;min-width:80px;width:20%;word-wrap:break-word}.links-table td label{margin-left:8px}.links-table td input[type=text],.links-table td textarea{width:100%}.links-table #link_rel{max-width:280px}#qt_content_dfw,#wp-content-wrap .mce-wp-dfw{display:none}.wp-editor-expand #qt_content_dfw,.wp-editor-expand #wp-content-wrap .mce-wp-dfw{display:inline-block}.focus-on #screen-meta,.focus-on #screen-meta-links,.focus-on #wp-toolbar,.focus-on #wpfooter,.focus-on .page-title-action,.focus-on .postbox-container>*,.focus-on .update-nag,.focus-on .wrap>h1,.focus-on div.error,.focus-on div.notice,.focus-on div.updated{opacity:0;transition-duration:.6s;transition-property:opacity;transition-timing-function:ease-in-out}.focus-on #wp-toolbar{opacity:.3}.focus-off #screen-meta,.focus-off #screen-meta-links,.focus-off #wp-toolbar,.focus-off #wpfooter,.focus-off .page-title-action,.focus-off .postbox-container>*,.focus-off .update-nag,.focus-off .wrap>h1,.focus-off div.error,.focus-off div.notice,.focus-off div.updated{opacity:1;transition-duration:.2s;transition-property:opacity;transition-timing-function:ease-in-out}.focus-off #wp-toolbar{-webkit-transform:translate(0,0)}.focus-on #adminmenuback,.focus-on #adminmenuwrap{transition-duration:.6s;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;transition-timing-function:ease-in-out;-webkit-transform:translateX(100%);transform:translateX(100%)}.focus-off #adminmenuback,.focus-off #adminmenuwrap{-webkit-transform:translateX(0);transform:translateX(0);transition-duration:.2s;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;transition-timing-function:ease-in-out}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#content-resize-handle,#post-body .wp_themeSkin .mceStatusbar a.mceResize{background:url(../images/resize-2x.gif) left bottom no-repeat;background-size:11px 11px}.rtl #content-resize-handle,.rtl #post-body .wp_themeSkin .mceStatusbar a.mceResize{background-image:url(../images/resize-rtl-2x.gif);background-position:left bottom}}@media only screen and (max-width:850px){#poststuff{min-width:0}#wpbody-content #poststuff #post-body{margin:0}#wpbody-content #post-body.columns-2 #postbox-container-1{margin-left:0;width:100%}#poststuff #postbox-container-1 #side-sortables:empty,#poststuff #postbox-container-1 .empty-container{border:0;height:0;min-height:0}#poststuff #post-body.columns-2 #side-sortables{min-height:0;width:auto}.columns-prefs,.screen-layout{display:none}}@media screen and (max-width:782px){.wp-core-ui .edit-tag-actions .button-primary{margin-bottom:0}#post-body-content{min-width:0}#titlediv #title-prompt-text{padding:10px}#poststuff .stuffbox>h3,#poststuff h2,#poststuff h3.hndle{padding:12px}.post-format-options{padding-left:0}.post-format-options a{margin-left:5px;margin-bottom:5px;min-width:52px}.post-format-options .post-format-title{font-size:11px}.post-format-options a div{height:28px;width:28px}.post-format-options a div:before{font-size:26px!important}#post-visibility-select{line-height:280%}.wp-core-ui .save-post-visibility,.wp-core-ui .save-timestamp{vertical-align:middle;margin-left:15px}.timestamp-wrap select#mm{display:block;width:100%;margin-bottom:10px}.timestamp-wrap #aa,.timestamp-wrap #hh,.timestamp-wrap #jj,.timestamp-wrap #mn{padding:12px 3px;font-size:14px;margin-bottom:5px;width:auto;text-align:center}ul.category-tabs{margin:30px 0 15px}.tagsdiv .newtag,ul.categorychecklist li{margin-bottom:15px}ul.category-tabs li.tabs{padding:15px}ul.categorychecklist ul{margin-top:15px}.category-add input[type=text],.category-add select{max-width:none;margin-bottom:15px}.tagsdiv .newtag{width:100%;height:auto}.tagchecklist{margin:25px 10px}.tagchecklist>li{font-size:16px;line-height:1.4}#commentstatusdiv p{line-height:2.8}.mceToolbar *{white-space:normal!important}.mceToolbar td,.mceToolbar tr{float:right!important}.wp_themeSkin a.mceButton{width:30px;height:30px}.wp_themeSkin .mceButton .mceIcon{margin-top:5px;margin-right:5px}.wp_themeSkin .mceSplitButton{margin-top:1px}.wp_themeSkin .mceSplitButton td a.mceAction{padding:6px 6px 6px 3px}.wp_themeSkin .mceSplitButton td a.mceOpen,.wp_themeSkin .mceSplitButtonEnabled:hover td a.mceOpen{padding-top:6px;padding-bottom:6px;background-position:1px 6px}.wp_themeSkin table.mceListBox{margin:5px}div.quicktags-toolbar input{padding:10px 20px}button.wp-switch-editor{font-size:16px;line-height:1em;margin:7px 7px 0 0;padding:8px 12px}#wp-content-media-buttons a{font-size:14px;padding:6px 10px}.wp-media-buttons span.jetpack-contact-form-icon,.wp-media-buttons span.wp-media-buttons-icon{width:22px!important;margin-right:-2px!important}.wp-media-buttons #insert-jetpack-contact-form span.jetpack-contact-form-icon:before,.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font-size:20px!important}#content_wp_fullscreen{display:none}.misc-pub-section{padding:20px 10px}.misc-pub-section>a{float:left;font-size:16px}#delete-action,#publishing-action{line-height:47px}#publishing-action .spinner{float:none;margin-top:-2px}.comment-ays td,.comment-ays th{padding-bottom:0}.comment-ays td{padding-top:6px}.links-table #link_rel{max-width:none}.links-table td,.links-table th{padding:10px 0}.privacy-text-box{width:auto}.privacy-text-box-toc{float:none;width:auto;height:100%}.privacy-text-section a.return-to-top{float:none;margin:0}} \ No newline at end of file diff --git a/wp-admin/css/edit.css b/wp-admin/css/edit.css index 5f49475f5..1c3f8b413 100644 --- a/wp-admin/css/edit.css +++ b/wp-admin/css/edit.css @@ -646,6 +646,93 @@ span.wp-media-buttons-icon:before { margin-bottom: 20px; } +/* Suggested text for privacy policy */ +.wp-privacy-policy-guide { + max-width: 1000px; +} + +.privacy-text-box { + width: calc(100% - 260px); +} + +.privacy-text-box-toc { + float: right; + width: 250px; + background-color: #fff; +} + +.privacy-text-box-toc p { + margin: 0; + padding: 0.7em 1em; + border-bottom: 1px solid #eee; +} + +.privacy-text-box-toc ol { + margin-left: 2em; +} + +.wp-privacy-policy-guide h3 { + font-size: 1.2em; + margin: 1em 0 0.5em; +} + +.privacy-text-section .privacy-text-copy { + float: right; +} + +.privacy-text-section { + position: relative; + border-top: 1px solid #e3e3e3; +} + +.privacy-text-box-head, +.privacy-text-section.text-removed { + padding-bottom: 12px; +} + +.text-removed .policy-text { + font-style: italic; + color: #666; + font-weight: 600; +} + +.privacy-text-actions { + height: 32px; + line-height: 32px; + padding-bottom: 6px; +} + +.wp-privacy-policy-guide .policy-text h2 { + margin: 1.2em 0 1em; + padding: 0; +} + +.suggested-policy-content { + font-style: italic; +} + +.privacy-text-section a.return-to-top { + float: right; + margin-right: -250px; + margin-top: 6px; +} + +.hide-privacy-policy-tutorial .privacy-policy-tutorial { + visibility: hidden; +} + +.wp-suggested-text p { + font-style: italic; +} + +.wp-suggested-text p.privacy-policy-tutorial { + font-style: normal; +} + +.notice.wp-pp-notice { + margin: 15px 0 3px; +} + /*------------------------------------------------------------------------------ 11.1 - Custom Fields ------------------------------------------------------------------------------*/ @@ -1570,4 +1657,19 @@ table.links-table { .links-table td { padding: 10px 0; } + + .privacy-text-box { + width: auto; + } + + .privacy-text-box-toc { + float: none; + width: auto; + height: 100%; + } + + .privacy-text-section a.return-to-top { + float: none; + margin: 0; + } } diff --git a/wp-admin/css/edit.min.css b/wp-admin/css/edit.min.css index 933bd0ed0..b8e15195d 100644 --- a/wp-admin/css/edit.min.css +++ b/wp-admin/css/edit.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -#pending,#poststuff #titlewrap{border:0;padding:0}#pending,#poststuff #post-body{padding:0}#editable-post-name-full,body.post-new-php .submitbox .submitdelete{display:none}#post-status-info,.postbox{box-shadow:0 1px 1px rgba(0,0,0,.04)}#titlediv,#wp-content-editor-container,.postbox,form#tags-filter{position:relative}#poststuff{padding-top:10px;min-width:763px}#poststuff .postbox-container{width:100%}#poststuff #post-body.columns-2{margin-right:300px}#show-comments{overflow:hidden}#save-action .spinner,#show-comments a{float:left}#show-comments .spinner{float:none;margin-top:0}#lost-connection-notice .spinner{visibility:visible;float:left;margin:0 5px 0 0}#titlediv label{cursor:text}#titlediv div.inside{margin:0}#titlediv #title{padding:3px 8px;font-size:1.7em;line-height:100%;height:1.7em;width:100%;outline:0;margin:0 0 3px;background-color:#fff}#titlediv #title-prompt-text{color:#72777c;position:absolute;font-size:1.7em;padding:11px 10px}input#link_description,input#link_url{width:98%}#pending{background:0 none;font-size:11px;margin-top:-1px}#comment-link-box,#edit-slug-box{line-height:24px;min-height:25px;margin-top:5px;padding:0 10px;color:#666}#edit-slug-box .cancel{margin-right:10px;padding:0;font-size:11px}#comment-link-box{margin:5px 0;padding:0 5px}#editable-post-name{font-weight:600}#editable-post-name input{font-size:13px;font-weight:400;height:24px;margin:0;width:16em}.postarea h3 label{float:left}.submitbox .submit a:hover{text-decoration:underline}.submitbox .submit input{margin-bottom:8px;margin-right:4px;padding:6px}#post-status-select{margin-top:3px}#post-body #normal-sortables{min-height:50px}.postbox{min-width:255px;border:1px solid #e5e5e5;background:#fff}#trackback_url{width:99%}#normal-sortables .postbox .submit{background:0 0;border:0;float:right;padding:0 12px;margin:0}.category-add input[type=text],.category-add select{width:100%;max-width:260px;vertical-align:baseline}#side-sortables .category-add input[type=text],#side-sortables .category-add select{margin:0 0 1em}#side-sortables .add-menu-item-tabs li,.wp-tab-bar li,ul.category-tabs li{display:inline;line-height:1.35em}.no-js .category-tabs li.hide-if-no-js{display:none}#side-sortables .add-menu-item-tabs a,.category-tabs a,.wp-tab-bar a{text-decoration:none}#post-body ul.add-menu-item-tabs li.tabs a,#post-body ul.category-tabs li.tabs a,#side-sortables .add-menu-item-tabs .tabs a,#side-sortables .category-tabs .tabs a,.wp-tab-bar .wp-tab-active a{color:#32373c}.category-tabs{margin:8px 0 5px}#category-adder h4{margin:0}.taxonomy-add-new{display:inline-block;margin:10px 0;font-weight:600}#side-sortables .add-menu-item-tabs,.wp-tab-bar{margin-bottom:3px}#normal-sortables .postbox #replyrow .submit{float:none;margin:0;padding:5px 7px 10px;overflow:hidden}#side-sortables .submitbox .submit .preview,#side-sortables .submitbox .submit a.preview:hover,#side-sortables .submitbox .submit input{border:0}ul.add-menu-item-tabs,ul.category-tabs,ul.wp-tab-bar{margin-top:12px}ul.add-menu-item-tabs li,ul.category-tabs li{border:1px solid transparent;position:relative}.wp-tab-active,ul.add-menu-item-tabs li.tabs,ul.category-tabs li.tabs{border:1px solid #ddd;border-bottom-color:#fdfdfd;background-color:#fdfdfd}ul.add-menu-item-tabs li,ul.category-tabs li,ul.wp-tab-bar li{padding:3px 5px 6px}#set-post-thumbnail{display:inline-block;max-width:100%}.ui-tabs-hide,.wp-editor-expand #content-resize-handle,.wp-hidden-children .wp-hidden-child{display:none}#postimagediv .inside img{max-width:100%;height:auto;width:auto;vertical-align:top;background-image:linear-gradient(45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%,#c4c4c4),linear-gradient(45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%,#c4c4c4);background-position:0 0,10px 10px;background-size:20px 20px}#post-body .tagsdiv #newtag{margin-right:5px;width:16em}#side-sortables input#post_password{width:94%}#side-sortables .tagsdiv #newtag{width:68%}#post-status-info{width:100%;border-spacing:0;border:1px solid #e5e5e5;border-top:none;background-color:#f7f7f7;z-index:999}#post-status-info td{font-size:12px}.autosave-info{padding:2px 10px;text-align:right}#editorcontent #post-status-info{border:none}#content-resize-handle{background:url(../images/resize.gif) right bottom no-repeat;width:12px;cursor:row-resize}.rtl #content-resize-handle{background-image:url(../images/resize-rtl.gif);background-position:left bottom}#postdivrich #content{resize:none}#wp-word-count{display:block;padding:2px 10px}.wp-editor-expand #wp-content-editor-tools{z-index:1000;border-bottom:1px solid #e5e5e5}.wp-editor-expand #wp-content-editor-container{box-shadow:none;margin-top:-1px;border-bottom:0 none}.wp-editor-expand div.mce-statusbar{z-index:1}.wp-editor-expand #post-status-info{border-top:1px solid #e5e5e5}.wp-editor-expand div.mce-toolbar-grp{z-index:999}.mce-fullscreen #wp-content-wrap .mce-edit-area,.mce-fullscreen #wp-content-wrap .mce-menubar,.mce-fullscreen #wp-content-wrap .mce-statusbar,.mce-fullscreen #wp-content-wrap .mce-toolbar-grp{position:static!important;width:auto!important;padding:0!important}.mce-fullscreen #wp-content-wrap .mce-statusbar{visibility:visible!important}.mce-fullscreen #wp-content-wrap .mce-tinymce .mce-wp-dfw,.mce-fullscreen #wp-content-wrap .mce-wp-dfw,.post-php.mce-fullscreen #wpadminbar{display:none}#wp-content-editor-tools{background-color:#f1f1f1;padding-top:20px}#poststuff #post-body.columns-2 #side-sortables{width:280px}#timestampdiv select{height:21px;line-height:14px;padding:0;vertical-align:top;font-size:12px}#aa,#hh,#jj,#mn{padding:1px;font-size:12px}#hh,#jj,#mn{width:2em}#aa{width:3.4em}.curtime #timestamp{padding:2px 0 1px;display:inline!important;height:auto!important}#post-body #visibility:before,#post-body .misc-pub-post-status:before,#post-body .misc-pub-revisions:before,.curtime #timestamp:before,span.wp-media-buttons-icon:before{color:#82878c}#post-body #visibility:before,#post-body .misc-pub-post-status:before,#post-body .misc-pub-revisions:before,.curtime #timestamp:before{font:400 20px/1 dashicons;speak:none;display:inline-block;margin-left:-1px;padding-right:3px;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#post-body .misc-pub-post-status:before{content:"\f173"}#post-body #visibility:before{content:"\f177"}.curtime #timestamp:before{content:"\f145";position:relative;top:-1px}#post-body .misc-pub-revisions:before{content:"\f321"}#timestampdiv{padding-top:5px;line-height:23px}#timestampdiv p{margin:8px 0 6px}#timestampdiv input{border-width:1px;border-style:solid}.notification-dialog{position:fixed;top:30%;max-height:70%;left:50%;width:450px;margin-left:-225px;background:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);line-height:1.5;z-index:1000005;overflow-y:auto}.notification-dialog-background{position:fixed;top:0;left:0;right:0;bottom:0;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:1000000}#post-lock-dialog .post-locked-message,#post-lock-dialog .post-taken-over{margin:25px}#file-editor-warning .button,#post-lock-dialog .post-locked-message a.button{margin-right:10px}#post-lock-dialog .post-locked-avatar{float:left;margin:0 20px 20px 0}#post-lock-dialog .wp-tab-first{outline:0}#post-lock-dialog .locked-saving img{float:left;margin-right:3px}#post-lock-dialog.saved .locked-saved,#post-lock-dialog.saving .locked-saving{display:inline}#excerpt{display:block;margin:12px 0 0;height:4em;width:100%}.tagchecklist{margin-left:14px;font-size:12px;overflow:auto}.tagchecklist br{display:none}.tagchecklist strong{margin-left:-8px;position:absolute}.tagchecklist>li{float:left;margin-right:25px;font-size:13px;line-height:1.8em;cursor:default;max-width:100%;overflow:hidden;text-overflow:ellipsis}.tagchecklist .ntdelbutton{position:absolute;width:24px;height:24px;border:none;margin:0 0 0 -19px;padding:0;background:0 0;cursor:pointer;text-indent:0}#poststuff .stuffbox>h3,#poststuff h2,#poststuff h3.hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}#poststuff .inside{margin:6px 0 0}#poststuff .inside #page_template,#poststuff .inside #parent_id{max-width:100%}.ie8 #poststuff .inside #page_template,.ie8 #poststuff .inside #parent_id{width:250px}.post-attributes-label-wrapper{margin-bottom:.5em}.post-attributes-label{vertical-align:baseline;font-weight:600}#post-visibility-select{line-height:1.5em;margin-top:3px}#linksubmitdiv .inside,#poststuff #submitdiv .inside{margin:0;padding:0}#post-body-content,.edit-form-section{margin-bottom:20px}#postcustomstuff thead th{padding:5px 8px 8px;background-color:#f1f1f1}#postcustom #postcustomstuff .submit{border:0;float:none;padding:0 8px 8px}#side-sortables #postcustom #postcustomstuff .submit{margin:0;padding:0}#side-sortables #postcustom #postcustomstuff #the-list textarea{height:85px}#side-sortables #postcustom #postcustomstuff td.left input,#side-sortables #postcustom #postcustomstuff td.left select,#side-sortables #postcustomstuff #newmetaleft a{margin:3px 3px 0}#postcustomstuff table{margin:0;width:100%;border:1px solid #ddd;border-spacing:0;background-color:#f9f9f9}#postcustomstuff tr{vertical-align:top}#postcustomstuff table input,#postcustomstuff table select,#postcustomstuff table textarea{width:96%;margin:8px}#side-sortables #postcustomstuff table input,#side-sortables #postcustomstuff table select,#side-sortables #postcustomstuff table textarea{margin:3px}#postcustomstuff td.left,#postcustomstuff th.left{width:38%}#postcustomstuff .submit input{margin:0;width:auto}#postcustomstuff #newmetaleft a{display:inline-block;margin:0 8px 8px;text-decoration:none}.no-js #postcustomstuff #enternew{display:none}#post-body-content .compat-attachment-fields{margin-bottom:20px}.compat-attachment-fields th{padding-top:5px;padding-right:10px}#select-featured-image{padding:4px 0;overflow:hidden}#select-featured-image img{max-width:100%;height:auto;margin-bottom:10px}#select-featured-image a{float:left;clear:both}#select-featured-image .remove{display:none;margin-top:10px}.js #select-featured-image.has-featured-image .remove{display:inline-block}.no-js #select-featured-image .choose{display:none}.post-state-format{overflow:hidden;display:inline-block;vertical-align:middle;height:20px;width:20px;margin-right:5px;margin-top:-4px}.post-state-format:before{display:block;height:20px;width:20px;font:400 20px/1 dashicons!important;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.post-format-icon:before,.post-state-format:before{color:#ddd;transition:all .1s ease-in-out}a.post-format-icon:hover:before,a.post-state-format:hover:before{color:#00a0d2}#post-formats-select{line-height:2em}#post-formats-select .post-format-icon:before{top:5px}input.post-format{margin-top:1px}label.post-format-icon{margin-left:0;padding:2px 0}.post-format-icon:before{position:relative;display:inline-block;margin-right:7px;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.post-format-icon.post-format-standard:before,.post-state-format.post-format-standard:before,a.post-state-format.format-standard:before{content:"\f109"}.post-format-icon.post-format-image:before,.post-state-format.post-format-image:before,a.post-state-format.format-image:before{content:"\f128"}.post-format-icon.post-format-gallery:before,.post-state-format.post-format-gallery:before,a.post-state-format.format-gallery:before{content:"\f161"}.post-format-icon.post-format-audio:before,.post-state-format.post-format-audio:before,a.post-state-format.format-audio:before{content:"\f127"}.post-format-icon.post-format-video:before,.post-state-format.post-format-video:before,a.post-state-format.format-video:before{content:"\f126"}.post-format-icon.post-format-chat:before,.post-state-format.post-format-chat:before,a.post-state-format.format-chat:before{content:"\f125"}.post-format-icon.post-format-status:before,.post-state-format.post-format-status:before,a.post-state-format.format-status:before{content:"\f130"}.post-format-icon.post-format-aside:before,.post-state-format.post-format-aside:before,a.post-state-format.format-aside:before{content:"\f123"}.post-format-icon.post-format-quote:before,.post-state-format.post-format-quote:before,a.post-state-format.format-quote:before{content:"\f122"}.post-format-icon.post-format-link:before,.post-state-format.post-format-link:before,a.post-state-format.format-link:before{content:"\f103"}.category-adder{margin-left:120px;padding:4px 0}.category-adder h4{margin:0 0 8px}#side-sortables .category-adder{margin:0}.categorydiv div.tabs-panel,.customlinkdiv div.tabs-panel,.posttypediv div.tabs-panel,.taxonomydiv div.tabs-panel,.wp-tab-panel{min-height:42px;max-height:200px;overflow:auto;padding:0 .9em;border:1px solid #ddd;background-color:#fdfdfd}div.tabs-panel-active{display:block}div.tabs-panel-inactive{display:none}#front-page-warning,#front-static-pages ul,.categorydiv ul.categorychecklist ul,.customlinkdiv ul.categorychecklist ul,.inline-editor ul.cat-checklist ul,.posttypediv ul.categorychecklist ul,.taxonomydiv ul.categorychecklist ul,ul.export-filters{margin-left:18px}ul.categorychecklist li{margin:0;padding:0;line-height:22px;word-wrap:break-word}.categorydiv .tabs-panel,.customlinkdiv .tabs-panel,.posttypediv .tabs-panel,.taxonomydiv .tabs-panel{border-width:3px;border-style:solid}.form-wrap label{display:block;padding:2px 0}.form-field input[type=text],.form-field input[type=password],.form-field input[type=email],.form-field input[type=number],.form-field input[type=search],.form-field input[type=tel],.form-field input[type=url],.form-field textarea{border-style:solid;border-width:1px;width:95%}.form-wrap p,p.description{margin:2px 0 5px;color:#666}.form-wrap p,p.description,p.help,span.description{font-size:13px;font-style:italic}.form-wrap .form-field{margin:1em 0;padding:0}.form-wrap .form-field #parent{max-width:100%}.col-wrap h2{margin:12px 0;font-size:1.1em}.col-wrap p.submit{margin-top:-10px}.edit-term-notes{margin-top:2em}#poststuff .tagsdiv .howto{margin:0 0 6px}.ajaxtag .newtag{position:relative}.tagsdiv .newtag{width:180px}.tagsdiv .the-tags{display:block;height:60px;margin:0 auto;overflow:auto;width:260px}#post-body-content .tagsdiv .the-tags{margin:0 5px}p.popular-tags{border:none;line-height:2em;padding:8px 12px 12px;text-align:justify}p.popular-tags a{padding:0 3px}.tagcloud{width:97%;margin:0 0 40px;text-align:justify}.tagcloud h2{margin:2px 0 12px}.the-tagcloud ul{margin:0}.the-tagcloud ul li{display:inline-block}.ac_results{display:none;margin:-1px 0 0;padding:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;background-color:#fff}.wp-customizer .ac_results{z-index:500000}.ac_results li{margin:0;padding:5px 10px;white-space:nowrap;text-align:left}.ac_over .ac_match,.ac_results .ac_over{background-color:#0073aa;color:#fff;cursor:pointer}.ac_match{text-decoration:underline}#edittag{max-width:800px}.edit-tag-actions{margin-top:20px;overflow:hidden;padding:10px;margin-right:10px}.comment-php .wp-editor-area{height:200px}.comment-ays td,.comment-ays th{padding:10px 15px}.comment-ays .comment-content ul{list-style:outside;margin-left:2em}.comment-ays .comment-content a[href]:after{content:'(' attr(href) ')';display:inline-block;padding:0 4px;color:#72777C;font-size:13px;word-break:break-all}.comment-ays .comment-content p.edit-comment{margin-top:10px}.comment-ays .comment-content p.edit-comment a[href]:after{content:'';padding:0}#comment-status-radio label,.links-table td,.links-table th{padding:5px 0}.comment-ays-submit .button-cancel{margin-left:1em}.spam-undo-inside,.trash-undo-inside{margin:1px 8px 1px 0;line-height:16px}.spam-undo-inside .avatar,.trash-undo-inside .avatar{height:20px;width:20px;margin-right:8px;vertical-align:middle}.stuffbox .editcomment{clear:none}#comment-status-radio p{margin:3px 0 5px}#comment-status-radio input{margin:2px 3px 5px 0;vertical-align:middle}table.links-table{width:100%;border-spacing:0}.links-table th{font-weight:400;text-align:left;vertical-align:top;min-width:80px;width:20%;word-wrap:break-word}.links-table td label{margin-right:8px}.links-table td input[type=text],.links-table td textarea{width:100%}.links-table #link_rel{max-width:280px}#qt_content_dfw,#wp-content-wrap .mce-wp-dfw{display:none}.wp-editor-expand #qt_content_dfw,.wp-editor-expand #wp-content-wrap .mce-wp-dfw{display:inline-block}.focus-on #screen-meta,.focus-on #screen-meta-links,.focus-on #wp-toolbar,.focus-on #wpfooter,.focus-on .page-title-action,.focus-on .postbox-container>*,.focus-on .update-nag,.focus-on .wrap>h1,.focus-on div.error,.focus-on div.notice,.focus-on div.updated{opacity:0;transition-duration:.6s;transition-property:opacity;transition-timing-function:ease-in-out}.focus-on #wp-toolbar{opacity:.3}.focus-off #screen-meta,.focus-off #screen-meta-links,.focus-off #wp-toolbar,.focus-off #wpfooter,.focus-off .page-title-action,.focus-off .postbox-container>*,.focus-off .update-nag,.focus-off .wrap>h1,.focus-off div.error,.focus-off div.notice,.focus-off div.updated{opacity:1;transition-duration:.2s;transition-property:opacity;transition-timing-function:ease-in-out}.focus-off #wp-toolbar{-webkit-transform:translate(0,0)}.focus-on #adminmenuback,.focus-on #adminmenuwrap{transition-duration:.6s;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;transition-timing-function:ease-in-out;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.focus-off #adminmenuback,.focus-off #adminmenuwrap{-webkit-transform:translateX(0);transform:translateX(0);transition-duration:.2s;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;transition-timing-function:ease-in-out}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#content-resize-handle,#post-body .wp_themeSkin .mceStatusbar a.mceResize{background:url(../images/resize-2x.gif) right bottom no-repeat;background-size:11px 11px}.rtl #content-resize-handle,.rtl #post-body .wp_themeSkin .mceStatusbar a.mceResize{background-image:url(../images/resize-rtl-2x.gif);background-position:left bottom}}@media only screen and (max-width:850px){#poststuff{min-width:0}#wpbody-content #poststuff #post-body{margin:0}#wpbody-content #post-body.columns-2 #postbox-container-1{margin-right:0;width:100%}#poststuff #postbox-container-1 #side-sortables:empty,#poststuff #postbox-container-1 .empty-container{border:0;height:0;min-height:0}#poststuff #post-body.columns-2 #side-sortables{min-height:0;width:auto}.columns-prefs,.screen-layout{display:none}}@media screen and (max-width:782px){.wp-core-ui .edit-tag-actions .button-primary{margin-bottom:0}#post-body-content{min-width:0}#titlediv #title-prompt-text{padding:10px}#poststuff .stuffbox>h3,#poststuff h2,#poststuff h3.hndle{padding:12px}.post-format-options{padding-right:0}.post-format-options a{margin-right:5px;margin-bottom:5px;min-width:52px}.post-format-options .post-format-title{font-size:11px}.post-format-options a div{height:28px;width:28px}.post-format-options a div:before{font-size:26px!important}#post-visibility-select{line-height:280%}.wp-core-ui .save-post-visibility,.wp-core-ui .save-timestamp{vertical-align:middle;margin-right:15px}.timestamp-wrap select#mm{display:block;width:100%;margin-bottom:10px}.timestamp-wrap #aa,.timestamp-wrap #hh,.timestamp-wrap #jj,.timestamp-wrap #mn{padding:12px 3px;font-size:14px;margin-bottom:5px;width:auto;text-align:center}ul.category-tabs{margin:30px 0 15px}.tagsdiv .newtag,ul.categorychecklist li{margin-bottom:15px}ul.category-tabs li.tabs{padding:15px}ul.categorychecklist ul{margin-top:15px}.category-add input[type=text],.category-add select{max-width:none;margin-bottom:15px}.tagsdiv .newtag{width:100%;height:auto}.tagchecklist{margin:25px 10px}.tagchecklist>li{font-size:16px;line-height:1.4}#commentstatusdiv p{line-height:2.8}.mceToolbar *{white-space:normal!important}.mceToolbar td,.mceToolbar tr{float:left!important}.wp_themeSkin a.mceButton{width:30px;height:30px}.wp_themeSkin .mceButton .mceIcon{margin-top:5px;margin-left:5px}.wp_themeSkin .mceSplitButton{margin-top:1px}.wp_themeSkin .mceSplitButton td a.mceAction{padding:6px 3px 6px 6px}.wp_themeSkin .mceSplitButton td a.mceOpen,.wp_themeSkin .mceSplitButtonEnabled:hover td a.mceOpen{padding-top:6px;padding-bottom:6px;background-position:1px 6px}.wp_themeSkin table.mceListBox{margin:5px}div.quicktags-toolbar input{padding:10px 20px}button.wp-switch-editor{font-size:16px;line-height:1em;margin:7px 0 0 7px;padding:8px 12px}#wp-content-media-buttons a{font-size:14px;padding:6px 10px}.wp-media-buttons span.jetpack-contact-form-icon,.wp-media-buttons span.wp-media-buttons-icon{width:22px!important;margin-left:-2px!important}.wp-media-buttons #insert-jetpack-contact-form span.jetpack-contact-form-icon:before,.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font-size:20px!important}#content_wp_fullscreen{display:none}.misc-pub-section{padding:20px 10px}.misc-pub-section>a{float:right;font-size:16px}#delete-action,#publishing-action{line-height:47px}#publishing-action .spinner{float:none;margin-top:-2px}.comment-ays td,.comment-ays th{padding-bottom:0}.comment-ays td{padding-top:6px}.links-table #link_rel{max-width:none}.links-table td,.links-table th{padding:10px 0}} \ No newline at end of file +#pending,#poststuff #titlewrap{border:0;padding:0}#pending,#poststuff #post-body{padding:0}#editable-post-name-full,body.post-new-php .submitbox .submitdelete{display:none}#post-status-info,.postbox{box-shadow:0 1px 1px rgba(0,0,0,.04)}#titlediv,#wp-content-editor-container,.postbox,form#tags-filter{position:relative}#poststuff{padding-top:10px;min-width:763px}#poststuff .postbox-container{width:100%}#poststuff #post-body.columns-2{margin-right:300px}#show-comments{overflow:hidden}#save-action .spinner,#show-comments a{float:left}#show-comments .spinner{float:none;margin-top:0}#lost-connection-notice .spinner{visibility:visible;float:left;margin:0 5px 0 0}#titlediv label{cursor:text}#titlediv div.inside{margin:0}#titlediv #title{padding:3px 8px;font-size:1.7em;line-height:100%;height:1.7em;width:100%;outline:0;margin:0 0 3px;background-color:#fff}#titlediv #title-prompt-text{color:#72777c;position:absolute;font-size:1.7em;padding:11px 10px}input#link_description,input#link_url{width:98%}#pending{background:0 none;font-size:11px;margin-top:-1px}#comment-link-box,#edit-slug-box{line-height:24px;min-height:25px;margin-top:5px;padding:0 10px;color:#666}#edit-slug-box .cancel{margin-right:10px;padding:0;font-size:11px}#comment-link-box{margin:5px 0;padding:0 5px}#editable-post-name{font-weight:600}#editable-post-name input{font-size:13px;font-weight:400;height:24px;margin:0;width:16em}.postarea h3 label{float:left}.submitbox .submit a:hover{text-decoration:underline}.submitbox .submit input{margin-bottom:8px;margin-right:4px;padding:6px}#post-status-select{margin-top:3px}#post-body #normal-sortables{min-height:50px}.postbox{min-width:255px;border:1px solid #e5e5e5;background:#fff}#trackback_url{width:99%}#normal-sortables .postbox .submit{background:0 0;border:0;float:right;padding:0 12px;margin:0}.category-add input[type=text],.category-add select{width:100%;max-width:260px;vertical-align:baseline}#side-sortables .category-add input[type=text],#side-sortables .category-add select{margin:0 0 1em}#side-sortables .add-menu-item-tabs li,.wp-tab-bar li,ul.category-tabs li{display:inline;line-height:1.35em}.no-js .category-tabs li.hide-if-no-js{display:none}#side-sortables .add-menu-item-tabs a,.category-tabs a,.wp-tab-bar a{text-decoration:none}#post-body ul.add-menu-item-tabs li.tabs a,#post-body ul.category-tabs li.tabs a,#side-sortables .add-menu-item-tabs .tabs a,#side-sortables .category-tabs .tabs a,.wp-tab-bar .wp-tab-active a{color:#32373c}.category-tabs{margin:8px 0 5px}#category-adder h4{margin:0}.taxonomy-add-new{display:inline-block;margin:10px 0;font-weight:600}#side-sortables .add-menu-item-tabs,.wp-tab-bar{margin-bottom:3px}#normal-sortables .postbox #replyrow .submit{float:none;margin:0;padding:5px 7px 10px;overflow:hidden}#side-sortables .submitbox .submit .preview,#side-sortables .submitbox .submit a.preview:hover,#side-sortables .submitbox .submit input{border:0}ul.add-menu-item-tabs,ul.category-tabs,ul.wp-tab-bar{margin-top:12px}ul.add-menu-item-tabs li,ul.category-tabs li{border:1px solid transparent;position:relative}.wp-tab-active,ul.add-menu-item-tabs li.tabs,ul.category-tabs li.tabs{border:1px solid #ddd;border-bottom-color:#fdfdfd;background-color:#fdfdfd}ul.add-menu-item-tabs li,ul.category-tabs li,ul.wp-tab-bar li{padding:3px 5px 6px}#set-post-thumbnail{display:inline-block;max-width:100%}.ui-tabs-hide,.wp-editor-expand #content-resize-handle,.wp-hidden-children .wp-hidden-child{display:none}#postimagediv .inside img{max-width:100%;height:auto;width:auto;vertical-align:top;background-image:linear-gradient(45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%,#c4c4c4),linear-gradient(45deg,#c4c4c4 25%,transparent 25%,transparent 75%,#c4c4c4 75%,#c4c4c4);background-position:0 0,10px 10px;background-size:20px 20px}#post-body .tagsdiv #newtag{margin-right:5px;width:16em}#side-sortables input#post_password{width:94%}#side-sortables .tagsdiv #newtag{width:68%}#post-status-info{width:100%;border-spacing:0;border:1px solid #e5e5e5;border-top:none;background-color:#f7f7f7;z-index:999}#post-status-info td{font-size:12px}.autosave-info{padding:2px 10px;text-align:right}#editorcontent #post-status-info{border:none}#content-resize-handle{background:url(../images/resize.gif) right bottom no-repeat;width:12px;cursor:row-resize}.rtl #content-resize-handle{background-image:url(../images/resize-rtl.gif);background-position:left bottom}#postdivrich #content{resize:none}#wp-word-count{display:block;padding:2px 10px}.wp-editor-expand #wp-content-editor-tools{z-index:1000;border-bottom:1px solid #e5e5e5}.wp-editor-expand #wp-content-editor-container{box-shadow:none;margin-top:-1px;border-bottom:0 none}.wp-editor-expand div.mce-statusbar{z-index:1}.wp-editor-expand #post-status-info{border-top:1px solid #e5e5e5}.wp-editor-expand div.mce-toolbar-grp{z-index:999}.mce-fullscreen #wp-content-wrap .mce-edit-area,.mce-fullscreen #wp-content-wrap .mce-menubar,.mce-fullscreen #wp-content-wrap .mce-statusbar,.mce-fullscreen #wp-content-wrap .mce-toolbar-grp{position:static!important;width:auto!important;padding:0!important}.mce-fullscreen #wp-content-wrap .mce-statusbar{visibility:visible!important}.mce-fullscreen #wp-content-wrap .mce-tinymce .mce-wp-dfw,.mce-fullscreen #wp-content-wrap .mce-wp-dfw,.post-php.mce-fullscreen #wpadminbar{display:none}#wp-content-editor-tools{background-color:#f1f1f1;padding-top:20px}#poststuff #post-body.columns-2 #side-sortables{width:280px}#timestampdiv select{height:21px;line-height:14px;padding:0;vertical-align:top;font-size:12px}#aa,#hh,#jj,#mn{padding:1px;font-size:12px}#hh,#jj,#mn{width:2em}#aa{width:3.4em}.curtime #timestamp{padding:2px 0 1px;display:inline!important;height:auto!important}#post-body #visibility:before,#post-body .misc-pub-post-status:before,#post-body .misc-pub-revisions:before,.curtime #timestamp:before,span.wp-media-buttons-icon:before{color:#82878c}#post-body #visibility:before,#post-body .misc-pub-post-status:before,#post-body .misc-pub-revisions:before,.curtime #timestamp:before{font:400 20px/1 dashicons;speak:none;display:inline-block;margin-left:-1px;padding-right:3px;vertical-align:top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.suggested-policy-content,.wp-suggested-text p{font-style:italic}#post-body .misc-pub-post-status:before{content:"\f173"}#post-body #visibility:before{content:"\f177"}.curtime #timestamp:before{content:"\f145";position:relative;top:-1px}#post-body .misc-pub-revisions:before{content:"\f321"}#timestampdiv{padding-top:5px;line-height:23px}#timestampdiv p{margin:8px 0 6px}#timestampdiv input{border-width:1px;border-style:solid}.notification-dialog{position:fixed;top:30%;max-height:70%;left:50%;width:450px;margin-left:-225px;background:#fff;box-shadow:0 3px 6px rgba(0,0,0,.3);line-height:1.5;z-index:1000005;overflow-y:auto}.notification-dialog-background{position:fixed;top:0;left:0;right:0;bottom:0;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:1000000}#post-lock-dialog .post-locked-message,#post-lock-dialog .post-taken-over{margin:25px}#file-editor-warning .button,#post-lock-dialog .post-locked-message a.button{margin-right:10px}#post-lock-dialog .post-locked-avatar{float:left;margin:0 20px 20px 0}#post-lock-dialog .wp-tab-first{outline:0}#post-lock-dialog .locked-saving img{float:left;margin-right:3px}#post-lock-dialog.saved .locked-saved,#post-lock-dialog.saving .locked-saving{display:inline}#excerpt{display:block;margin:12px 0 0;height:4em;width:100%}.tagchecklist{margin-left:14px;font-size:12px;overflow:auto}.tagchecklist br{display:none}.tagchecklist strong{margin-left:-8px;position:absolute}.tagchecklist>li{float:left;margin-right:25px;font-size:13px;line-height:1.8em;cursor:default;max-width:100%;overflow:hidden;text-overflow:ellipsis}.tagchecklist .ntdelbutton{position:absolute;width:24px;height:24px;border:none;margin:0 0 0 -19px;padding:0;background:0 0;cursor:pointer;text-indent:0}#poststuff .stuffbox>h3,#poststuff h2,#poststuff h3.hndle{font-size:14px;padding:8px 12px;margin:0;line-height:1.4}#poststuff .inside{margin:6px 0 0}#poststuff .inside #page_template,#poststuff .inside #parent_id{max-width:100%}.ie8 #poststuff .inside #page_template,.ie8 #poststuff .inside #parent_id{width:250px}.post-attributes-label-wrapper{margin-bottom:.5em}.post-attributes-label{vertical-align:baseline;font-weight:600}#post-visibility-select{line-height:1.5em;margin-top:3px}#linksubmitdiv .inside,#poststuff #submitdiv .inside{margin:0;padding:0}#post-body-content,.edit-form-section{margin-bottom:20px}.wp-privacy-policy-guide{max-width:1000px}.privacy-text-box{width:calc(100% - 260px)}.privacy-text-box-toc{float:right;width:250px;background-color:#fff}.privacy-text-box-toc p{margin:0;padding:.7em 1em;border-bottom:1px solid #eee}.privacy-text-box-toc ol{margin-left:2em}.wp-privacy-policy-guide h3{font-size:1.2em;margin:1em 0 .5em}.privacy-text-section .privacy-text-copy{float:right}.privacy-text-section{position:relative;border-top:1px solid #e3e3e3}.privacy-text-box-head,.privacy-text-section.text-removed{padding-bottom:12px}.text-removed .policy-text{font-style:italic;color:#666;font-weight:600}.privacy-text-actions{height:32px;line-height:32px;padding-bottom:6px}.wp-privacy-policy-guide .policy-text h2{margin:1.2em 0 1em;padding:0}.privacy-text-section a.return-to-top{float:right;margin-right:-250px;margin-top:6px}.hide-privacy-policy-tutorial .privacy-policy-tutorial{visibility:hidden}.wp-suggested-text p.privacy-policy-tutorial{font-style:normal}.notice.wp-pp-notice{margin:15px 0 3px}#postcustomstuff thead th{padding:5px 8px 8px;background-color:#f1f1f1}#postcustom #postcustomstuff .submit{border:0;float:none;padding:0 8px 8px}#side-sortables #postcustom #postcustomstuff .submit{margin:0;padding:0}#side-sortables #postcustom #postcustomstuff #the-list textarea{height:85px}#side-sortables #postcustom #postcustomstuff td.left input,#side-sortables #postcustom #postcustomstuff td.left select,#side-sortables #postcustomstuff #newmetaleft a{margin:3px 3px 0}#postcustomstuff table{margin:0;width:100%;border:1px solid #ddd;border-spacing:0;background-color:#f9f9f9}#postcustomstuff tr{vertical-align:top}#postcustomstuff table input,#postcustomstuff table select,#postcustomstuff table textarea{width:96%;margin:8px}#side-sortables #postcustomstuff table input,#side-sortables #postcustomstuff table select,#side-sortables #postcustomstuff table textarea{margin:3px}#postcustomstuff td.left,#postcustomstuff th.left{width:38%}#postcustomstuff .submit input{margin:0;width:auto}#postcustomstuff #newmetaleft a{display:inline-block;margin:0 8px 8px;text-decoration:none}.no-js #postcustomstuff #enternew{display:none}#post-body-content .compat-attachment-fields{margin-bottom:20px}.compat-attachment-fields th{padding-top:5px;padding-right:10px}#select-featured-image{padding:4px 0;overflow:hidden}#select-featured-image img{max-width:100%;height:auto;margin-bottom:10px}#select-featured-image a{float:left;clear:both}#select-featured-image .remove{display:none;margin-top:10px}.js #select-featured-image.has-featured-image .remove{display:inline-block}.no-js #select-featured-image .choose{display:none}.post-state-format{overflow:hidden;display:inline-block;vertical-align:middle;height:20px;width:20px;margin-right:5px;margin-top:-4px}.post-state-format:before{display:block;height:20px;width:20px;font:400 20px/1 dashicons!important;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.post-format-icon:before,.post-state-format:before{color:#ddd;transition:all .1s ease-in-out}a.post-format-icon:hover:before,a.post-state-format:hover:before{color:#00a0d2}#post-formats-select{line-height:2em}#post-formats-select .post-format-icon:before{top:5px}input.post-format{margin-top:1px}label.post-format-icon{margin-left:0;padding:2px 0}.post-format-icon:before{position:relative;display:inline-block;margin-right:7px;font:400 20px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.post-format-icon.post-format-standard:before,.post-state-format.post-format-standard:before,a.post-state-format.format-standard:before{content:"\f109"}.post-format-icon.post-format-image:before,.post-state-format.post-format-image:before,a.post-state-format.format-image:before{content:"\f128"}.post-format-icon.post-format-gallery:before,.post-state-format.post-format-gallery:before,a.post-state-format.format-gallery:before{content:"\f161"}.post-format-icon.post-format-audio:before,.post-state-format.post-format-audio:before,a.post-state-format.format-audio:before{content:"\f127"}.post-format-icon.post-format-video:before,.post-state-format.post-format-video:before,a.post-state-format.format-video:before{content:"\f126"}.post-format-icon.post-format-chat:before,.post-state-format.post-format-chat:before,a.post-state-format.format-chat:before{content:"\f125"}.post-format-icon.post-format-status:before,.post-state-format.post-format-status:before,a.post-state-format.format-status:before{content:"\f130"}.post-format-icon.post-format-aside:before,.post-state-format.post-format-aside:before,a.post-state-format.format-aside:before{content:"\f123"}.post-format-icon.post-format-quote:before,.post-state-format.post-format-quote:before,a.post-state-format.format-quote:before{content:"\f122"}.post-format-icon.post-format-link:before,.post-state-format.post-format-link:before,a.post-state-format.format-link:before{content:"\f103"}.category-adder{margin-left:120px;padding:4px 0}.category-adder h4{margin:0 0 8px}#side-sortables .category-adder{margin:0}.categorydiv div.tabs-panel,.customlinkdiv div.tabs-panel,.posttypediv div.tabs-panel,.taxonomydiv div.tabs-panel,.wp-tab-panel{min-height:42px;max-height:200px;overflow:auto;padding:0 .9em;border:1px solid #ddd;background-color:#fdfdfd}div.tabs-panel-active{display:block}div.tabs-panel-inactive{display:none}#front-page-warning,#front-static-pages ul,.categorydiv ul.categorychecklist ul,.customlinkdiv ul.categorychecklist ul,.inline-editor ul.cat-checklist ul,.posttypediv ul.categorychecklist ul,.taxonomydiv ul.categorychecklist ul,ul.export-filters{margin-left:18px}ul.categorychecklist li{margin:0;padding:0;line-height:22px;word-wrap:break-word}.categorydiv .tabs-panel,.customlinkdiv .tabs-panel,.posttypediv .tabs-panel,.taxonomydiv .tabs-panel{border-width:3px;border-style:solid}.form-wrap label{display:block;padding:2px 0}.form-field input[type=text],.form-field input[type=password],.form-field input[type=email],.form-field input[type=number],.form-field input[type=search],.form-field input[type=tel],.form-field input[type=url],.form-field textarea{border-style:solid;border-width:1px;width:95%}.form-wrap p,p.description{margin:2px 0 5px;color:#666}.form-wrap p,p.description,p.help,span.description{font-size:13px;font-style:italic}.form-wrap .form-field{margin:1em 0;padding:0}.form-wrap .form-field #parent{max-width:100%}.col-wrap h2{margin:12px 0;font-size:1.1em}.col-wrap p.submit{margin-top:-10px}.edit-term-notes{margin-top:2em}#poststuff .tagsdiv .howto{margin:0 0 6px}.ajaxtag .newtag{position:relative}.tagsdiv .newtag{width:180px}.tagsdiv .the-tags{display:block;height:60px;margin:0 auto;overflow:auto;width:260px}#post-body-content .tagsdiv .the-tags{margin:0 5px}p.popular-tags{border:none;line-height:2em;padding:8px 12px 12px;text-align:justify}p.popular-tags a{padding:0 3px}.tagcloud{width:97%;margin:0 0 40px;text-align:justify}.tagcloud h2{margin:2px 0 12px}.the-tagcloud ul{margin:0}.the-tagcloud ul li{display:inline-block}.ac_results{display:none;margin:-1px 0 0;padding:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;background-color:#fff}.wp-customizer .ac_results{z-index:500000}.ac_results li{margin:0;padding:5px 10px;white-space:nowrap;text-align:left}.ac_over .ac_match,.ac_results .ac_over{background-color:#0073aa;color:#fff;cursor:pointer}.ac_match{text-decoration:underline}#edittag{max-width:800px}.edit-tag-actions{margin-top:20px;overflow:hidden;padding:10px;margin-right:10px}.comment-php .wp-editor-area{height:200px}.comment-ays td,.comment-ays th{padding:10px 15px}.comment-ays .comment-content ul{list-style:outside;margin-left:2em}.comment-ays .comment-content a[href]:after{content:'(' attr(href) ')';display:inline-block;padding:0 4px;color:#72777C;font-size:13px;word-break:break-all}.comment-ays .comment-content p.edit-comment{margin-top:10px}.comment-ays .comment-content p.edit-comment a[href]:after{content:'';padding:0}#comment-status-radio label,.links-table td,.links-table th{padding:5px 0}.comment-ays-submit .button-cancel{margin-left:1em}.spam-undo-inside,.trash-undo-inside{margin:1px 8px 1px 0;line-height:16px}.spam-undo-inside .avatar,.trash-undo-inside .avatar{height:20px;width:20px;margin-right:8px;vertical-align:middle}.stuffbox .editcomment{clear:none}#comment-status-radio p{margin:3px 0 5px}#comment-status-radio input{margin:2px 3px 5px 0;vertical-align:middle}table.links-table{width:100%;border-spacing:0}.links-table th{font-weight:400;text-align:left;vertical-align:top;min-width:80px;width:20%;word-wrap:break-word}.links-table td label{margin-right:8px}.links-table td input[type=text],.links-table td textarea{width:100%}.links-table #link_rel{max-width:280px}#qt_content_dfw,#wp-content-wrap .mce-wp-dfw{display:none}.wp-editor-expand #qt_content_dfw,.wp-editor-expand #wp-content-wrap .mce-wp-dfw{display:inline-block}.focus-on #screen-meta,.focus-on #screen-meta-links,.focus-on #wp-toolbar,.focus-on #wpfooter,.focus-on .page-title-action,.focus-on .postbox-container>*,.focus-on .update-nag,.focus-on .wrap>h1,.focus-on div.error,.focus-on div.notice,.focus-on div.updated{opacity:0;transition-duration:.6s;transition-property:opacity;transition-timing-function:ease-in-out}.focus-on #wp-toolbar{opacity:.3}.focus-off #screen-meta,.focus-off #screen-meta-links,.focus-off #wp-toolbar,.focus-off #wpfooter,.focus-off .page-title-action,.focus-off .postbox-container>*,.focus-off .update-nag,.focus-off .wrap>h1,.focus-off div.error,.focus-off div.notice,.focus-off div.updated{opacity:1;transition-duration:.2s;transition-property:opacity;transition-timing-function:ease-in-out}.focus-off #wp-toolbar{-webkit-transform:translate(0,0)}.focus-on #adminmenuback,.focus-on #adminmenuwrap{transition-duration:.6s;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;transition-timing-function:ease-in-out;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.focus-off #adminmenuback,.focus-off #adminmenuwrap{-webkit-transform:translateX(0);transform:translateX(0);transition-duration:.2s;transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;transition-timing-function:ease-in-out}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#content-resize-handle,#post-body .wp_themeSkin .mceStatusbar a.mceResize{background:url(../images/resize-2x.gif) right bottom no-repeat;background-size:11px 11px}.rtl #content-resize-handle,.rtl #post-body .wp_themeSkin .mceStatusbar a.mceResize{background-image:url(../images/resize-rtl-2x.gif);background-position:left bottom}}@media only screen and (max-width:850px){#poststuff{min-width:0}#wpbody-content #poststuff #post-body{margin:0}#wpbody-content #post-body.columns-2 #postbox-container-1{margin-right:0;width:100%}#poststuff #postbox-container-1 #side-sortables:empty,#poststuff #postbox-container-1 .empty-container{border:0;height:0;min-height:0}#poststuff #post-body.columns-2 #side-sortables{min-height:0;width:auto}.columns-prefs,.screen-layout{display:none}}@media screen and (max-width:782px){.wp-core-ui .edit-tag-actions .button-primary{margin-bottom:0}#post-body-content{min-width:0}#titlediv #title-prompt-text{padding:10px}#poststuff .stuffbox>h3,#poststuff h2,#poststuff h3.hndle{padding:12px}.post-format-options{padding-right:0}.post-format-options a{margin-right:5px;margin-bottom:5px;min-width:52px}.post-format-options .post-format-title{font-size:11px}.post-format-options a div{height:28px;width:28px}.post-format-options a div:before{font-size:26px!important}#post-visibility-select{line-height:280%}.wp-core-ui .save-post-visibility,.wp-core-ui .save-timestamp{vertical-align:middle;margin-right:15px}.timestamp-wrap select#mm{display:block;width:100%;margin-bottom:10px}.timestamp-wrap #aa,.timestamp-wrap #hh,.timestamp-wrap #jj,.timestamp-wrap #mn{padding:12px 3px;font-size:14px;margin-bottom:5px;width:auto;text-align:center}ul.category-tabs{margin:30px 0 15px}.tagsdiv .newtag,ul.categorychecklist li{margin-bottom:15px}ul.category-tabs li.tabs{padding:15px}ul.categorychecklist ul{margin-top:15px}.category-add input[type=text],.category-add select{max-width:none;margin-bottom:15px}.tagsdiv .newtag{width:100%;height:auto}.tagchecklist{margin:25px 10px}.tagchecklist>li{font-size:16px;line-height:1.4}#commentstatusdiv p{line-height:2.8}.mceToolbar *{white-space:normal!important}.mceToolbar td,.mceToolbar tr{float:left!important}.wp_themeSkin a.mceButton{width:30px;height:30px}.wp_themeSkin .mceButton .mceIcon{margin-top:5px;margin-left:5px}.wp_themeSkin .mceSplitButton{margin-top:1px}.wp_themeSkin .mceSplitButton td a.mceAction{padding:6px 3px 6px 6px}.wp_themeSkin .mceSplitButton td a.mceOpen,.wp_themeSkin .mceSplitButtonEnabled:hover td a.mceOpen{padding-top:6px;padding-bottom:6px;background-position:1px 6px}.wp_themeSkin table.mceListBox{margin:5px}div.quicktags-toolbar input{padding:10px 20px}button.wp-switch-editor{font-size:16px;line-height:1em;margin:7px 0 0 7px;padding:8px 12px}#wp-content-media-buttons a{font-size:14px;padding:6px 10px}.wp-media-buttons span.jetpack-contact-form-icon,.wp-media-buttons span.wp-media-buttons-icon{width:22px!important;margin-left:-2px!important}.wp-media-buttons #insert-jetpack-contact-form span.jetpack-contact-form-icon:before,.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font-size:20px!important}#content_wp_fullscreen{display:none}.misc-pub-section{padding:20px 10px}.misc-pub-section>a{float:right;font-size:16px}#delete-action,#publishing-action{line-height:47px}#publishing-action .spinner{float:none;margin-top:-2px}.comment-ays td,.comment-ays th{padding-bottom:0}.comment-ays td{padding-top:6px}.links-table #link_rel{max-width:none}.links-table td,.links-table th{padding:10px 0}.privacy-text-box{width:auto}.privacy-text-box-toc{float:none;width:auto;height:100%}.privacy-text-section a.return-to-top{float:none;margin:0}} \ No newline at end of file diff --git a/wp-admin/css/forms-rtl.css b/wp-admin/css/forms-rtl.css index be23d2d45..dff8430e9 100644 --- a/wp-admin/css/forms-rtl.css +++ b/wp-admin/css/forms-rtl.css @@ -438,7 +438,15 @@ fieldset label, vertical-align: middle; } -.options-media-php label[for*="_size_"], +.options-media-php [for*="_size_"] { + min-width: 10em; + vertical-align: baseline; +} + +.options-media-php .small-text[name*="_size_"] { + margin: 0 0 1em; +} + #misc-publishing-actions label { vertical-align: baseline; } @@ -1068,6 +1076,143 @@ table.form-table td .updated p { clear: both; } +/*------------------------------------------------------------------------------ + Privacy Policy settings screen +------------------------------------------------------------------------------*/ +.tools-privacy-policy-page form { + margin-bottom: 1.3em; +} + +.tools-privacy-policy-page input.button, +.tools-privacy-policy-page select { + margin-right: 6px; +} + +.tools-privacy-edit { + margin: 1.5em 0; +} + +.tools-privacy-policy-page span { + line-height: 2em; +} + +.privacy_requests .column-email { + width: 40%; +} + +.privacy_requests .column-type { + text-align: center; +} + +.privacy_requests thead td:first-child, +.privacy_requests tfoot td:first-child { + border-right: 4px solid #fff; +} + +.privacy_requests tbody th { + border-right: 4px solid #fff; + background: #fff; + box-shadow: inset 0 -1px 0 rgba(0,0,0,0.1); +} + +.privacy_requests tbody .has-request-results th { + box-shadow: none; +} + +.privacy_requests tbody .request-results th .notice { + margin: 0 0 5px; +} + +.privacy_requests tbody td { + background: #fff; + box-shadow: inset 0 -1px 0 rgba(0,0,0,0.1); +} + +.privacy_requests tbody .has-request-results td { + box-shadow: none; +} + +.privacy_requests .next_steps .button { + height: auto; + line-height: 1.5; + padding: 4px 10px; + word-break: break-all; + white-space: unset; +} + +.privacy_requests .status-request-confirmed th, +.privacy_requests .status-request-confirmed td { + background-color: #f7fcfe; + border-right-color: #00a0d2; +} + +.privacy_requests .status-request-failed th, +.privacy_requests .status-request-failed td { + background-color: #fef7f1; + border-right-color: #d64d21; +} + +.privacy_requests .export_personal_data_failed a { + vertical-align: baseline; +} + +.status-label { + font-weight: bold; +} + +.status-label.status-request-pending { + font-weight: normal; + font-style: italic; + color: #6c7781; +} + +.status-label.status-request-failed { + color: #aa0000; + font-weight: bold; +} + +.wp-privacy-request-form { + clear: both; +} + +.wp-privacy-request-form-field { + margin: 1.5em 0; +} + +.wp-privacy-request-form label { + font-weight: bold; + line-height: 1.5; + padding-bottom: .5em; + display: block; +} + +.wp-privacy-request-form input { + line-height: 1.5; + margin: 0; +} + +.email-personal-data::before { + display: inline-block; + font: normal 20px/1 dashicons; + margin: 3px -2px 0 5px; + speak: none; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + vertical-align: top; +} + +.email-personal-data--sending::before { + color: #f56e28; + content: "\f463"; + -webkit-animation: rotation 2s infinite linear; + animation: rotation 2s infinite linear; +} + +.email-personal-data--sent::before { + color: #79ba49; + content: "\f147"; +} + /* =Media Queries -------------------------------------------------------------- */ @@ -1345,6 +1490,34 @@ table.form-table td .updated p { max-width: 6.25em; margin: 0; } + + /* Privacy Policy settings screen */ + .tools-privacy-policy-page form.wp-create-privacy-page { + margin-bottom: 1em; + } + + .tools-privacy-policy-page input#set-page, + .tools-privacy-policy-page select { + margin: 10px 0 0; + } + + .tools-privacy-policy-page .wp-create-privacy-page span { + display: block; + margin-bottom: 1em; + } + + .tools-privacy-policy-page .wp-create-privacy-page .button { + margin-right: 0; + } + + .wp-list-table.privacy_requests tr:not(.inline-edit-row):not(.no-items) td.column-primary:not(.check-column) { + display: table-cell; + } + + .wp-list-table.privacy_requests.widefat th input, + .wp-list-table.privacy_requests.widefat thead td input { + margin-right: 5px; + } } @media only screen and (max-width: 768px) { @@ -1395,3 +1568,25 @@ table.form-table td .updated p { margin-left: 0.5em; } } + +@-webkit-keyframes rotation { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(-359deg); + transform: rotate(-359deg); + } +} + +@keyframes rotation { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(-359deg); + transform: rotate(-359deg); + } +} diff --git a/wp-admin/css/forms-rtl.min.css b/wp-admin/css/forms-rtl.min.css index bf50a01a2..bc5ddfc71 100644 --- a/wp-admin/css/forms-rtl.min.css +++ b/wp-admin/css/forms-rtl.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -#your-profile label+a,.wp-admin select,fieldset label,label{vertical-align:middle}#pass-strength-result,.color-option,input,textarea{box-sizing:border-box}#pressthis-code-wrap,textarea{overflow:auto}input[type=text],input[type=search],input[type=radio],input[type=tel],input[type=time],input[type=url],input[type=week],input[type=password],input[type=checkbox],input[type=color],input[type=date],input[type=datetime],input[type=datetime-local],input[type=email],input[type=month],input[type=number],select,textarea{border:1px solid #ddd;box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#32373c;outline:0;transition:50ms border-color ease-in-out}input[type=text]:focus,input[type=search]:focus,input[type=radio]:focus,input[type=tel]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type=password]:focus,input[type=checkbox]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,select:focus,textarea:focus{border-color:#5b9dd9;box-shadow:0 0 2px rgba(30,140,190,.8)}input[type=url],input[type=email]{direction:ltr}input[type=number]{height:28px;line-height:1}input[type=radio],input[type=checkbox]{border:1px solid #b4b9be;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 0 0 4px;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;box-shadow:inset 0 1px 2px rgba(0,0,0,.1);transition:.05s border-color ease-in-out}input[type=radio]:checked+label:before{color:#82878c}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#00a0d2}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox],td>input[type=checkbox]{margin-top:0}.wp-admin p label input[type=checkbox]{margin-top:-4px}.wp-admin p label input[type=radio]{margin-top:-2px}input[type=radio]{border-radius:50%;margin-left:4px;line-height:10px}input[type=radio]:checked:before,input[type=checkbox]:checked:before{float:right;display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#pass1-text,.pw-weak,.show-password #pass1{display:none}input[type=checkbox]:checked:before{content:"\f147";margin:-3px -4px 0 0;color:#1e8cbe}input[type=radio]:checked:before{content:"\2022";text-indent:-9999px;border-radius:50px;font-size:24px;width:6px;height:6px;margin:4px;line-height:16px;background-color:#1e8cbe}@-moz-document url-prefix(){.form-table input.tog,input[type=radio],input[type=checkbox]{margin-bottom:-1px}}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration{display:none}.ie8 input[type=password]{font-family:sans-serif}button,input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit}input,select,textarea{font-size:14px;border-radius:0}textarea{padding:2px 6px;line-height:1.4;resize:vertical}.wp-admin input[type=file]{padding:3px 0;cursor:pointer}label{cursor:pointer}input,select{margin:1px;padding:3px 5px}input.code{padding-top:6px}textarea.code{line-height:1.4;padding:4px 6px 1px}input.readonly,input[readonly],textarea.readonly,textarea[readonly]{background-color:#eee}::-webkit-input-placeholder{color:#72777c}::-moz-placeholder{color:#72777c;opacity:1}:-ms-input-placeholder{color:#72777c}.form-invalid input,.form-invalid input:focus,.form-invalid select,.form-invalid select:focus{border-color:#dc3232!important;box-shadow:0 0 2px rgba(204,0,0,.8)}.form-table .form-required.form-invalid td:after{content:"\f534";font:400 20px/1 dashicons;color:#dc3232;margin-right:-25px;vertical-align:middle}.form-table .form-required.user-pass1-wrap.form-invalid td:after{content:''}.form-table .form-required.user-pass1-wrap.form-invalid .password-input-wrapper:after{content:'\f534';font:400 20px/1 dashicons;color:#dc3232;margin:0 -29px 0 6px;vertical-align:middle}.form-input-tip{color:#666}input.disabled,input:disabled,select.disabled,select:disabled,textarea.disabled,textarea:disabled{background:rgba(255,255,255,.5);border-color:rgba(222,222,222,.75);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);color:rgba(51,51,51,.5)}input[type=file].disabled,input[type=file]:disabled,input[type=range].disabled,input[type=range]:disabled{background:0 0;box-shadow:none;cursor:default}input[type=radio].disabled,input[type=radio].disabled:checked:before,input[type=radio]:disabled,input[type=radio]:disabled:checked:before,input[type=checkbox].disabled,input[type=checkbox].disabled:checked:before,input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked:before{opacity:.7}.wp-admin select{padding:2px;line-height:28px;height:28px}.wp-admin .button-cancel{padding:0 5px;line-height:2}.meta-box-sortables select{max-width:100%}.wp-admin select[multiple]{height:auto}.submit{padding:1.5em 0;margin:5px 0;border-bottom-right-radius:3px;border-bottom-left-radius:3px;border:none}form p.submit a.cancel:hover{text-decoration:none}p.submit{text-align:right;max-width:100%;margin-top:20px;padding-top:10px}.textright p.submit{border:none;text-align:left}table.form-table+input+input+p.submit,table.form-table+input+p.submit,table.form-table+p.submit{border-top:none;padding-top:0}#major-publishing-actions input,#minor-publishing-actions .preview,#minor-publishing-actions input{text-align:center}input.all-options,textarea.all-options{width:250px}input.large-text,textarea.large-text{width:99%}.regular-text{width:25em}input.small-text{width:50px;padding:1px 6px}input[type=number].small-text{width:65px}input.tiny-text{width:35px}input[type=number].tiny-text{width:45px}#doaction,#doaction2,#post-query-submit{margin:1px 0 0 8px}.tablenav #changeit,.tablenav #clear-recent-list,.tablenav #delete_all,.wp-filter #delete_all{margin-top:1px}.tablenav .actions select{float:right;margin-left:6px;max-width:200px}.ie8 .tablenav .actions select{width:155px}.ie8 .tablenav .actions select#cat{width:200px}#timezone_string option{margin-right:1em}button.wp-hide-pw>.dashicons{position:relative;top:3px}#misc-publishing-actions label,.options-media-php label[for*="_size_"]{vertical-align:baseline}#pass-strength-result{background-color:#eee;border:1px solid #ddd;color:#23282d;margin:-2px 1px 5px 5px;padding:3px 5px;text-align:center;width:25em;opacity:0}#pass-strength-result.short{background-color:#f1adad;border-color:#e35b5b;opacity:1}#pass-strength-result.bad{background-color:#fbc5a9;border-color:#f78b53;opacity:1}#pass-strength-result.good{background-color:#ffe399;border-color:#ffc733;opacity:1}#pass-strength-result.strong{background-color:#c1e1b9;border-color:#83c373;opacity:1}#pass1-text.short,#pass1.short{border-color:#e35b5b}#pass1-text.bad,#pass1.bad{border-color:#f78b53}#pass1-text.good,#pass1.good{border-color:#ffc733}#pass1-text.strong,#pass1.strong{border-color:#83c373}.indicator-hint{padding-top:8px}.show-password #pass1-text{display:inline-block}.form-table span.description.important{font-size:12px}p.search-box{float:left;margin:0}.network-admin.themes-php p.search-box{clear:right}.search-box input[name="s"],.tablenav .search-plugins input[name="s"],.tagsdiv .newtag{float:right;height:28px;margin:0 0 0 4px}.js.plugins-php .search-box .wp-filter-search{margin:0;width:280px;font-size:16px;font-weight:300;line-height:1.5;padding:3px 5px;height:32px}input[type=text].ui-autocomplete-loading,input[type=email].ui-autocomplete-loading{background-image:url(../images/loading.gif);background-repeat:no-repeat;background-position:left center;visibility:visible}input.ui-autocomplete-input.open{border-bottom-color:transparent}ul#add-to-blog-users{margin:0 14px 0 0}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;box-shadow:0 1px 2px rgba(30,140,190,.8);background-color:#fff}.ui-autocomplete li{margin-bottom:0;padding:4px 10px;white-space:nowrap;text-align:right;cursor:pointer}.ui-autocomplete .ui-state-focus{background-color:#ddd}.wp-tags-autocomplete .ui-state-focus{background-color:#0073aa;color:#fff}.form-table{border-collapse:collapse;margin-top:.5em;width:100%;clear:both}.form-table,.form-table td,.form-table td p,.form-table th{font-size:14px}.form-table td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle}.form-table th,.form-wrap label{color:#23282d;font-weight:400;text-shadow:none;vertical-align:baseline}.form-table th{vertical-align:top;text-align:right;padding:20px 0 20px 10px;width:200px;line-height:1.3;font-weight:600}.form-table .td-full,.form-table th.th-full{width:auto;padding:20px 0 20px 10px;font-weight:400}.form-table td p{margin-top:4px;margin-bottom:0}.form-table .date-time-doc{margin-top:1em}.form-table p.timezone-info{margin:1em 0}.form-table td fieldset label{margin:.25em 0 .5em!important;display:inline-block}.form-table td fieldset label,.form-table td fieldset li,.form-table td fieldset p{line-height:1.4em}.form-table input.tog,.form-table input[type=radio]{margin-top:-4px;margin-left:4px;float:none}.form-table .pre{padding:8px;margin:0}table.form-table td .updated{font-size:13px}table.form-table td .updated p{font-size:13px;margin:.3em 0}#profile-page .form-table textarea{width:500px;margin-bottom:6px}#profile-page .form-table #rich_editing{margin-left:5px}#your-profile legend{font-size:22px}#display_name{width:15em}#adduser .form-field input,#createuser .form-field input{width:25em}.color-option{display:inline-block;width:24%;padding:5px 15px 15px;margin-bottom:3px;cursor:pointer}.color-option.selected,.color-option:hover{background:#ddd}.color-palette{width:100%;border-spacing:0;border-collapse:collapse}.color-palette td{height:20px;padding:0;border:none}.tool-box .title{margin:8px 0;font-size:18px;font-weight:400;line-height:24px}.label-responsive{vertical-align:middle}#export-filters p{margin:0 0 1em}#export-filters p.submit{margin:7px 0 5px}.card{position:relative;margin-top:20px;padding:.7em 2em 1em;min-width:255px;max-width:520px;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}.pressthis h4{margin:2em 0 1em}.pressthis textarea{width:100%;font-size:1em}.pressthis-bookmarklet-wrapper{margin:20px 0 8px;vertical-align:top;position:relative;z-index:1}.pressthis-bookmarklet,.pressthis-bookmarklet:active,.pressthis-bookmarklet:focus,.pressthis-bookmarklet:hover{display:inline-block;position:relative;cursor:move;color:#32373c;background:#e5e5e5;border-radius:5px;border:1px solid #b4b9be;font-style:normal;line-height:16px;font-size:14px;text-decoration:none}.pressthis-bookmarklet:active{outline:0}.pressthis-bookmarklet:after{content:"";width:70%;height:55%;z-index:-1;position:absolute;left:10px;bottom:9px;background:0 0;-webkit-transform:skew(-20deg) rotate(-6deg);transform:skew(-20deg) rotate(-6deg);box-shadow:0 10px 8px rgba(0,0,0,.6)}.pressthis-bookmarklet:hover:after{-webkit-transform:skew(-20deg) rotate(-9deg);transform:skew(-20deg) rotate(-9deg);box-shadow:0 10px 8px rgba(0,0,0,.7)}.pressthis-bookmarklet span{display:inline-block;margin:0;padding:0 9px 8px 12px}.pressthis-bookmarklet span:before{color:#72777c;font:400 20px/1 dashicons;content:"\f157";position:relative;display:inline-block;top:4px;margin-left:4px}.pressthis-js-toggle,.pressthis-js-toggle.button.button{margin-right:10px;padding:0;height:auto;vertical-align:top}.pressthis-js-toggle .dashicons{margin:5px 7px 6px 8px;color:#555d66}.timezone-info code{white-space:nowrap}.defaultavatarpicker .avatar{margin:2px 0;vertical-align:middle}.options-general-php .date-time-text{display:inline-block;min-width:10em}.options-general-php input.small-text{width:56px}.options-general-php .spinner{float:none;margin:-3px 3px 0}.options-general-php .language-install-spinner,.settings-php .language-install-spinner{display:inline-block;float:none;margin:-3px 5px 0;vertical-align:middle}.form-table.permalink-structure .available-structure-tags li{float:right;margin-left:5px}.setup-php textarea{max-width:100%}.form-field #site-address{max-width:25em}.form-field #domain{max-width:22em}.form-field #admin-email,.form-field #blog_last_updated,.form-field #blog_registered,.form-field #path,.form-field #site-title{max-width:25em}.form-field #path{margin-bottom:5px}#search-sites,#search-users{max-width:100%}.request-filesystem-credentials-dialog{display:none;visibility:visible}.request-filesystem-credentials-dialog .notification-dialog{top:10%;max-height:85%}.request-filesystem-credentials-dialog-content{margin:25px}#request-filesystem-credentials-title{font-size:1.3em;margin:1em 0}.request-filesystem-credentials-form legend{font-size:1em;padding:1.33em 0 0;font-weight:600}.request-filesystem-credentials-form input[type=text],.request-filesystem-credentials-form input[type=password]{display:block}.request-filesystem-credentials-dialog input[type=text],.request-filesystem-credentials-dialog input[type=password]{width:100%}.request-filesystem-credentials-form .field-title{font-weight:600}.request-filesystem-credentials-dialog label[for=hostname],.request-filesystem-credentials-dialog label[for=public_key],.request-filesystem-credentials-dialog label[for=private_key]{display:block;margin-bottom:1em}.request-filesystem-credentials-dialog .request-filesystem-credentials-action-buttons{text-align:left}.request-filesystem-credentials-dialog label[for=ftp]{margin-left:10px}.request-filesystem-credentials-dialog #auth-keys-desc{margin-bottom:0}#request-filesystem-credentials-dialog .button:not(:last-child){margin-left:10px}#request-filesystem-credentials-form .cancel-button{display:none}#request-filesystem-credentials-dialog .cancel-button{display:inline}.request-filesystem-credentials-dialog .ftp-password,.request-filesystem-credentials-dialog .ftp-username{float:none;width:auto}.request-filesystem-credentials-dialog .ftp-username{margin-bottom:1em}.request-filesystem-credentials-dialog .ftp-password{margin:0}.request-filesystem-credentials-dialog .ftp-password em{color:#888}.request-filesystem-credentials-dialog label{display:block;line-height:1.5;margin-bottom:1em}.request-filesystem-credentials-form #ssh-keys legend{font-size:1.3em}.request-filesystem-credentials-form .notice{margin:0 0 20px;clear:both}@media screen and (max-width:782px){#pass-strength-result,.form-table{box-sizing:border-box}textarea{-webkit-appearance:none}input[type=text],input[type=search],input[type=password],input[type=email],input[type=number]{-webkit-appearance:none;padding:6px 10px}input[type=number]{height:40px}input.code{padding-bottom:5px;padding-top:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox],input[type=checkbox]{-webkit-appearance:none;padding:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox]{margin-bottom:8px}.widefat tfoot td input[type=checkbox]:before,.widefat th input[type=checkbox]:before,.widefat thead td input[type=checkbox]:before,input[type=checkbox]:checked:before{font:400 30px/1 dashicons;margin:-3px -5px}input[type=radio],input[type=checkbox]{height:25px;width:25px}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox]{margin-top:-3px}input[type=radio]:checked:before{vertical-align:middle;width:9px;height:9px;margin:7px;line-height:16px}.wp-upload-form input[type=submit]{margin-top:10px}#wpbody select{height:36px;font-size:16px}.wp-admin .button-cancel{padding:0;font-size:14px}#adduser .form-field input,#createuser .form-field input{width:100%}.form-table td,.form-table th,.label-responsive{display:block;width:auto;vertical-align:middle}.label-responsive{margin:.5em 0}.export-filters li{margin-bottom:0}.form-table .color-palette td{display:table-cell;width:15px}.form-table table.color-palette{margin-left:10px}input,textarea{font-size:16px}#profile-page .form-table textarea,.form-table span.description,.form-table td input[type=text],.form-table td input[type=password],.form-table td input[type=email],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;box-sizing:border-box}.form-table .form-required.form-invalid td:after{float:left;margin:-30px 0 0 3px}#wpbody .form-table td select{height:40px}.form-table input[type=text].small-text,input[type=text].small-text,input[type=search].small-text,input[type=password].small-text,input[type=number].small-text{width:auto;max-width:4.375em;display:inline;padding:3px 6px;margin:0 3px}#pass-strength-result{width:100%;padding:8px}p.search-box{float:none;position:absolute;bottom:0;width:98%;height:90px;margin-bottom:20px}p.search-box input[name="s"]{height:auto;float:none;width:100%;margin-bottom:10px;vertical-align:middle;-webkit-appearance:none}p.search-box input[type=submit]{margin-bottom:10px}.form-table span.description{display:inline;padding:4px 0 0;line-height:1.4em;font-size:14px}.form-table th{padding-top:10px;padding-bottom:0;border-bottom:0}.form-table td{margin-bottom:0;padding-bottom:6px;padding-top:4px;padding-right:0}.form-table.permalink-structure td code{margin-right:32px}.form-table.permalink-structure td input[type=text]{margin-right:32px;margin-top:4px;width:96%}.form-table input.regular-text{width:100%}.form-table label{font-size:14px}.form-table fieldset label{display:block}#local-time,#utc-time{display:block;float:none;margin-top:.5em}.form-field #domain{max-width:none}.wp-pwd{position:relative}.wp-pwd [type=text],.wp-pwd [type=password]{padding-left:40px}.wp-pwd button.button{background:0 0;border:none;box-shadow:none;line-height:2;margin:0;padding:5px 10px;position:absolute;left:0;top:0}.wp-pwd button.button:active,.wp-pwd button.button:focus,.wp-pwd button.button:hover{background:0 0}.wp-pwd .button .text{display:none}.options-general-php input[type=text].small-text{max-width:6.25em;margin:0}}@media only screen and (max-width:768px){.form-field input[type=text],.form-field input[type=password],.form-field input[type=email],.form-field select,.form-field textarea{width:99%}.form-wrap .form-field{padding:0}#profile-page .form-table textarea{max-width:400px;width:auto}}@media only screen and (max-height:480px),screen and (max-width:450px){.file-editor-warning .notification-dialog,.request-filesystem-credentials-dialog .notification-dialog{width:100%;height:100%;max-height:100%;position:fixed;top:0;margin:0;right:0}}@media screen and (max-width:600px){.color-option{width:49%}}@media only screen and (max-width:320px){.options-general-php .date-time-text.date-time-custom-text{min-width:0;margin-left:.5em}} \ No newline at end of file +#your-profile label+a,.wp-admin select,fieldset label,label{vertical-align:middle}#pass-strength-result,.color-option,input,textarea{box-sizing:border-box}#pressthis-code-wrap,textarea{overflow:auto}input[type=text],input[type=search],input[type=radio],input[type=tel],input[type=time],input[type=url],input[type=week],input[type=password],input[type=checkbox],input[type=color],input[type=date],input[type=datetime],input[type=datetime-local],input[type=email],input[type=month],input[type=number],select,textarea{border:1px solid #ddd;box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#32373c;outline:0;transition:50ms border-color ease-in-out}input[type=text]:focus,input[type=search]:focus,input[type=radio]:focus,input[type=tel]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type=password]:focus,input[type=checkbox]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,select:focus,textarea:focus{border-color:#5b9dd9;box-shadow:0 0 2px rgba(30,140,190,.8)}input[type=url],input[type=email]{direction:ltr}input[type=number]{height:28px;line-height:1}input[type=radio],input[type=checkbox]{border:1px solid #b4b9be;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 0 0 4px;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;box-shadow:inset 0 1px 2px rgba(0,0,0,.1);transition:.05s border-color ease-in-out}input[type=radio]:checked+label:before{color:#82878c}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#00a0d2}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox],td>input[type=checkbox]{margin-top:0}.wp-admin p label input[type=checkbox]{margin-top:-4px}.wp-admin p label input[type=radio]{margin-top:-2px}input[type=radio]{border-radius:50%;margin-left:4px;line-height:10px}input[type=radio]:checked:before,input[type=checkbox]:checked:before{float:right;display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#pass1-text,.pw-weak,.show-password #pass1{display:none}input[type=checkbox]:checked:before{content:"\f147";margin:-3px -4px 0 0;color:#1e8cbe}input[type=radio]:checked:before{content:"\2022";text-indent:-9999px;border-radius:50px;font-size:24px;width:6px;height:6px;margin:4px;line-height:16px;background-color:#1e8cbe}@-moz-document url-prefix(){.form-table input.tog,input[type=radio],input[type=checkbox]{margin-bottom:-1px}}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration{display:none}.ie8 input[type=password]{font-family:sans-serif}button,input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit}input,select,textarea{font-size:14px;border-radius:0}textarea{padding:2px 6px;line-height:1.4;resize:vertical}.wp-admin input[type=file]{padding:3px 0;cursor:pointer}label{cursor:pointer}input,select{margin:1px;padding:3px 5px}input.code{padding-top:6px}textarea.code{line-height:1.4;padding:4px 6px 1px}input.readonly,input[readonly],textarea.readonly,textarea[readonly]{background-color:#eee}::-webkit-input-placeholder{color:#72777c}::-moz-placeholder{color:#72777c;opacity:1}:-ms-input-placeholder{color:#72777c}.form-invalid input,.form-invalid input:focus,.form-invalid select,.form-invalid select:focus{border-color:#dc3232!important;box-shadow:0 0 2px rgba(204,0,0,.8)}.form-table .form-required.form-invalid td:after{content:"\f534";font:400 20px/1 dashicons;color:#dc3232;margin-right:-25px;vertical-align:middle}.form-table .form-required.user-pass1-wrap.form-invalid td:after{content:''}.form-table .form-required.user-pass1-wrap.form-invalid .password-input-wrapper:after{content:'\f534';font:400 20px/1 dashicons;color:#dc3232;margin:0 -29px 0 6px;vertical-align:middle}.form-input-tip{color:#666}input.disabled,input:disabled,select.disabled,select:disabled,textarea.disabled,textarea:disabled{background:rgba(255,255,255,.5);border-color:rgba(222,222,222,.75);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);color:rgba(51,51,51,.5)}input[type=file].disabled,input[type=file]:disabled,input[type=range].disabled,input[type=range]:disabled{background:0 0;box-shadow:none;cursor:default}input[type=radio].disabled,input[type=radio].disabled:checked:before,input[type=radio]:disabled,input[type=radio]:disabled:checked:before,input[type=checkbox].disabled,input[type=checkbox].disabled:checked:before,input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked:before{opacity:.7}.wp-admin select{padding:2px;line-height:28px;height:28px}.wp-admin .button-cancel{padding:0 5px;line-height:2}.meta-box-sortables select{max-width:100%}.wp-admin select[multiple]{height:auto}.submit{padding:1.5em 0;margin:5px 0;border-bottom-right-radius:3px;border-bottom-left-radius:3px;border:none}form p.submit a.cancel:hover{text-decoration:none}p.submit{text-align:right;max-width:100%;margin-top:20px;padding-top:10px}.textright p.submit{border:none;text-align:left}table.form-table+input+input+p.submit,table.form-table+input+p.submit,table.form-table+p.submit{border-top:none;padding-top:0}#major-publishing-actions input,#minor-publishing-actions .preview,#minor-publishing-actions input{text-align:center}input.all-options,textarea.all-options{width:250px}input.large-text,textarea.large-text{width:99%}.regular-text{width:25em}input.small-text{width:50px;padding:1px 6px}input[type=number].small-text{width:65px}input.tiny-text{width:35px}input[type=number].tiny-text{width:45px}#doaction,#doaction2,#post-query-submit{margin:1px 0 0 8px}.tablenav #changeit,.tablenav #clear-recent-list,.tablenav #delete_all,.wp-filter #delete_all{margin-top:1px}.tablenav .actions select{float:right;margin-left:6px;max-width:200px}.ie8 .tablenav .actions select{width:155px}.ie8 .tablenav .actions select#cat{width:200px}#timezone_string option{margin-right:1em}button.wp-hide-pw>.dashicons{position:relative;top:3px}.options-media-php [for*="_size_"]{min-width:10em;vertical-align:baseline}.options-media-php .small-text[name*="_size_"]{margin:0 0 1em}#misc-publishing-actions label{vertical-align:baseline}#pass-strength-result{background-color:#eee;border:1px solid #ddd;color:#23282d;margin:-2px 1px 5px 5px;padding:3px 5px;text-align:center;width:25em;opacity:0}#pass-strength-result.short{background-color:#f1adad;border-color:#e35b5b;opacity:1}#pass-strength-result.bad{background-color:#fbc5a9;border-color:#f78b53;opacity:1}#pass-strength-result.good{background-color:#ffe399;border-color:#ffc733;opacity:1}#pass-strength-result.strong{background-color:#c1e1b9;border-color:#83c373;opacity:1}#pass1-text.short,#pass1.short{border-color:#e35b5b}#pass1-text.bad,#pass1.bad{border-color:#f78b53}#pass1-text.good,#pass1.good{border-color:#ffc733}#pass1-text.strong,#pass1.strong{border-color:#83c373}.indicator-hint{padding-top:8px}.show-password #pass1-text{display:inline-block}.form-table span.description.important{font-size:12px}p.search-box{float:left;margin:0}.network-admin.themes-php p.search-box{clear:right}.search-box input[name="s"],.tablenav .search-plugins input[name="s"],.tagsdiv .newtag{float:right;height:28px;margin:0 0 0 4px}.js.plugins-php .search-box .wp-filter-search{margin:0;width:280px;font-size:16px;font-weight:300;line-height:1.5;padding:3px 5px;height:32px}input[type=text].ui-autocomplete-loading,input[type=email].ui-autocomplete-loading{background-image:url(../images/loading.gif);background-repeat:no-repeat;background-position:left center;visibility:visible}input.ui-autocomplete-input.open{border-bottom-color:transparent}ul#add-to-blog-users{margin:0 14px 0 0}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;box-shadow:0 1px 2px rgba(30,140,190,.8);background-color:#fff}.ui-autocomplete li{margin-bottom:0;padding:4px 10px;white-space:nowrap;text-align:right;cursor:pointer}.ui-autocomplete .ui-state-focus{background-color:#ddd}.wp-tags-autocomplete .ui-state-focus{background-color:#0073aa;color:#fff}.form-table{border-collapse:collapse;margin-top:.5em;width:100%;clear:both}.form-table,.form-table td,.form-table td p,.form-table th{font-size:14px}.form-table td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle}.form-table th,.form-wrap label{color:#23282d;font-weight:400;text-shadow:none;vertical-align:baseline}.form-table th{vertical-align:top;text-align:right;padding:20px 0 20px 10px;width:200px;line-height:1.3;font-weight:600}.form-table .td-full,.form-table th.th-full{width:auto;padding:20px 0 20px 10px;font-weight:400}.form-table td p{margin-top:4px;margin-bottom:0}.form-table .date-time-doc{margin-top:1em}.form-table p.timezone-info{margin:1em 0}.form-table td fieldset label{margin:.25em 0 .5em!important;display:inline-block}.form-table td fieldset label,.form-table td fieldset li,.form-table td fieldset p{line-height:1.4em}.form-table input.tog,.form-table input[type=radio]{margin-top:-4px;margin-left:4px;float:none}.form-table .pre{padding:8px;margin:0}table.form-table td .updated{font-size:13px}table.form-table td .updated p{font-size:13px;margin:.3em 0}#profile-page .form-table textarea{width:500px;margin-bottom:6px}#profile-page .form-table #rich_editing{margin-left:5px}#your-profile legend{font-size:22px}#display_name{width:15em}#adduser .form-field input,#createuser .form-field input{width:25em}.color-option{display:inline-block;width:24%;padding:5px 15px 15px;margin-bottom:3px;cursor:pointer}.color-option.selected,.color-option:hover{background:#ddd}.color-palette{width:100%;border-spacing:0;border-collapse:collapse}.color-palette td{height:20px;padding:0;border:none}.tool-box .title{margin:8px 0;font-size:18px;font-weight:400;line-height:24px}.label-responsive{vertical-align:middle}#export-filters p{margin:0 0 1em}#export-filters p.submit{margin:7px 0 5px}.card{position:relative;margin-top:20px;padding:.7em 2em 1em;min-width:255px;max-width:520px;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}.pressthis h4{margin:2em 0 1em}.pressthis textarea{width:100%;font-size:1em}.pressthis-bookmarklet-wrapper{margin:20px 0 8px;vertical-align:top;position:relative;z-index:1}.pressthis-bookmarklet,.pressthis-bookmarklet:active,.pressthis-bookmarklet:focus,.pressthis-bookmarklet:hover{display:inline-block;position:relative;cursor:move;color:#32373c;background:#e5e5e5;border-radius:5px;border:1px solid #b4b9be;font-style:normal;line-height:16px;font-size:14px;text-decoration:none}.privacy_requests tbody th,.privacy_requests tfoot td:first-child,.privacy_requests thead td:first-child{border-right:4px solid #fff}.pressthis-bookmarklet:active{outline:0}.pressthis-bookmarklet:after{content:"";width:70%;height:55%;z-index:-1;position:absolute;left:10px;bottom:9px;background:0 0;-webkit-transform:skew(-20deg) rotate(-6deg);transform:skew(-20deg) rotate(-6deg);box-shadow:0 10px 8px rgba(0,0,0,.6)}.pressthis-bookmarklet:hover:after{-webkit-transform:skew(-20deg) rotate(-9deg);transform:skew(-20deg) rotate(-9deg);box-shadow:0 10px 8px rgba(0,0,0,.7)}.pressthis-bookmarklet span{display:inline-block;margin:0;padding:0 9px 8px 12px}.pressthis-bookmarklet span:before{color:#72777c;font:400 20px/1 dashicons;content:"\f157";position:relative;display:inline-block;top:4px;margin-left:4px}.pressthis-js-toggle,.pressthis-js-toggle.button.button{margin-right:10px;padding:0;height:auto;vertical-align:top}.pressthis-js-toggle .dashicons{margin:5px 7px 6px 8px;color:#555d66}.timezone-info code{white-space:nowrap}.defaultavatarpicker .avatar{margin:2px 0;vertical-align:middle}.options-general-php .date-time-text{display:inline-block;min-width:10em}.options-general-php input.small-text{width:56px}.options-general-php .spinner{float:none;margin:-3px 3px 0}.options-general-php .language-install-spinner,.settings-php .language-install-spinner{display:inline-block;float:none;margin:-3px 5px 0;vertical-align:middle}.form-table.permalink-structure .available-structure-tags li{float:right;margin-left:5px}.setup-php textarea{max-width:100%}.form-field #site-address{max-width:25em}.form-field #domain{max-width:22em}.form-field #admin-email,.form-field #blog_last_updated,.form-field #blog_registered,.form-field #path,.form-field #site-title{max-width:25em}.form-field #path{margin-bottom:5px}#search-sites,#search-users{max-width:100%}.request-filesystem-credentials-dialog{display:none;visibility:visible}.request-filesystem-credentials-dialog .notification-dialog{top:10%;max-height:85%}.request-filesystem-credentials-dialog-content{margin:25px}#request-filesystem-credentials-title{font-size:1.3em;margin:1em 0}.request-filesystem-credentials-form legend{font-size:1em;padding:1.33em 0 0;font-weight:600}.request-filesystem-credentials-form input[type=text],.request-filesystem-credentials-form input[type=password]{display:block}.request-filesystem-credentials-dialog input[type=text],.request-filesystem-credentials-dialog input[type=password]{width:100%}.request-filesystem-credentials-form .field-title{font-weight:600}.request-filesystem-credentials-dialog label[for=hostname],.request-filesystem-credentials-dialog label[for=public_key],.request-filesystem-credentials-dialog label[for=private_key]{display:block;margin-bottom:1em}.request-filesystem-credentials-dialog .request-filesystem-credentials-action-buttons{text-align:left}.request-filesystem-credentials-dialog label[for=ftp]{margin-left:10px}.request-filesystem-credentials-dialog #auth-keys-desc{margin-bottom:0}#request-filesystem-credentials-dialog .button:not(:last-child){margin-left:10px}#request-filesystem-credentials-form .cancel-button{display:none}#request-filesystem-credentials-dialog .cancel-button{display:inline}.request-filesystem-credentials-dialog .ftp-password,.request-filesystem-credentials-dialog .ftp-username{float:none;width:auto}.request-filesystem-credentials-dialog .ftp-username{margin-bottom:1em}.request-filesystem-credentials-dialog .ftp-password{margin:0}.request-filesystem-credentials-dialog .ftp-password em{color:#888}.request-filesystem-credentials-dialog label{display:block;line-height:1.5;margin-bottom:1em}.request-filesystem-credentials-form #ssh-keys legend{font-size:1.3em}.request-filesystem-credentials-form .notice{margin:0 0 20px;clear:both}.tools-privacy-policy-page form{margin-bottom:1.3em}.tools-privacy-policy-page input.button,.tools-privacy-policy-page select{margin-right:6px}.tools-privacy-edit{margin:1.5em 0}.tools-privacy-policy-page span{line-height:2em}.privacy_requests .column-email{width:40%}.privacy_requests .column-type{text-align:center}.privacy_requests tbody th{background:#fff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.privacy_requests tbody .has-request-results th{box-shadow:none}.privacy_requests tbody .request-results th .notice{margin:0 0 5px}.privacy_requests tbody td{background:#fff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.privacy_requests tbody .has-request-results td{box-shadow:none}.privacy_requests .next_steps .button{height:auto;line-height:1.5;padding:4px 10px;word-break:break-all;white-space:unset}.privacy_requests .status-request-confirmed td,.privacy_requests .status-request-confirmed th{background-color:#f7fcfe;border-right-color:#00a0d2}.privacy_requests .status-request-failed td,.privacy_requests .status-request-failed th{background-color:#fef7f1;border-right-color:#d64d21}.privacy_requests .export_personal_data_failed a{vertical-align:baseline}.status-label{font-weight:700}.status-label.status-request-pending{font-weight:400;font-style:italic;color:#6c7781}.status-label.status-request-failed{color:#a00;font-weight:700}.wp-privacy-request-form{clear:both}.wp-privacy-request-form-field{margin:1.5em 0}.wp-privacy-request-form label{font-weight:700;line-height:1.5;padding-bottom:.5em;display:block}.wp-privacy-request-form input{line-height:1.5;margin:0}.email-personal-data::before{display:inline-block;font:400 20px/1 dashicons;margin:3px -2px 0 5px;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.email-personal-data--sending::before{color:#f56e28;content:"\f463";-webkit-animation:rotation 2s infinite linear;animation:rotation 2s infinite linear}.email-personal-data--sent::before{color:#79ba49;content:"\f147"}@media screen and (max-width:782px){#pass-strength-result,.form-table{box-sizing:border-box}textarea{-webkit-appearance:none}input[type=text],input[type=search],input[type=password],input[type=email],input[type=number]{-webkit-appearance:none;padding:6px 10px}input[type=number]{height:40px}input.code{padding-bottom:5px;padding-top:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox],input[type=checkbox]{-webkit-appearance:none;padding:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox]{margin-bottom:8px}.widefat tfoot td input[type=checkbox]:before,.widefat th input[type=checkbox]:before,.widefat thead td input[type=checkbox]:before,input[type=checkbox]:checked:before{font:400 30px/1 dashicons;margin:-3px -5px}input[type=radio],input[type=checkbox]{height:25px;width:25px}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox]{margin-top:-3px}input[type=radio]:checked:before{vertical-align:middle;width:9px;height:9px;margin:7px;line-height:16px}.wp-upload-form input[type=submit]{margin-top:10px}#wpbody select{height:36px;font-size:16px}.wp-admin .button-cancel{padding:0;font-size:14px}#adduser .form-field input,#createuser .form-field input{width:100%}.form-table td,.form-table th,.label-responsive{display:block;width:auto;vertical-align:middle}.label-responsive{margin:.5em 0}.export-filters li{margin-bottom:0}.form-table .color-palette td{display:table-cell;width:15px}.form-table table.color-palette{margin-left:10px}input,textarea{font-size:16px}#profile-page .form-table textarea,.form-table span.description,.form-table td input[type=text],.form-table td input[type=password],.form-table td input[type=email],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;box-sizing:border-box}.form-table .form-required.form-invalid td:after{float:left;margin:-30px 0 0 3px}#wpbody .form-table td select{height:40px}.form-table input[type=text].small-text,input[type=text].small-text,input[type=search].small-text,input[type=password].small-text,input[type=number].small-text{width:auto;max-width:4.375em;display:inline;padding:3px 6px;margin:0 3px}#pass-strength-result{width:100%;padding:8px}p.search-box{float:none;position:absolute;bottom:0;width:98%;height:90px;margin-bottom:20px}p.search-box input[name="s"]{height:auto;float:none;width:100%;margin-bottom:10px;vertical-align:middle;-webkit-appearance:none}p.search-box input[type=submit]{margin-bottom:10px}.form-table span.description{display:inline;padding:4px 0 0;line-height:1.4em;font-size:14px}.form-table th{padding-top:10px;padding-bottom:0;border-bottom:0}.form-table td{margin-bottom:0;padding-bottom:6px;padding-top:4px;padding-right:0}.form-table.permalink-structure td code{margin-right:32px}.form-table.permalink-structure td input[type=text]{margin-right:32px;margin-top:4px;width:96%}.form-table input.regular-text{width:100%}.form-table label{font-size:14px}.form-table fieldset label{display:block}#local-time,#utc-time{display:block;float:none;margin-top:.5em}.form-field #domain{max-width:none}.wp-pwd{position:relative}.wp-pwd [type=text],.wp-pwd [type=password]{padding-left:40px}.wp-pwd button.button{background:0 0;border:none;box-shadow:none;line-height:2;margin:0;padding:5px 10px;position:absolute;left:0;top:0}.wp-pwd button.button:active,.wp-pwd button.button:focus,.wp-pwd button.button:hover{background:0 0}.wp-pwd .button .text{display:none}.options-general-php input[type=text].small-text{max-width:6.25em;margin:0}.tools-privacy-policy-page form.wp-create-privacy-page{margin-bottom:1em}.tools-privacy-policy-page input#set-page,.tools-privacy-policy-page select{margin:10px 0 0}.tools-privacy-policy-page .wp-create-privacy-page span{display:block;margin-bottom:1em}.tools-privacy-policy-page .wp-create-privacy-page .button{margin-right:0}.wp-list-table.privacy_requests tr:not(.inline-edit-row):not(.no-items) td.column-primary:not(.check-column){display:table-cell}.wp-list-table.privacy_requests.widefat th input,.wp-list-table.privacy_requests.widefat thead td input{margin-right:5px}}@media only screen and (max-width:768px){.form-field input[type=text],.form-field input[type=password],.form-field input[type=email],.form-field select,.form-field textarea{width:99%}.form-wrap .form-field{padding:0}#profile-page .form-table textarea{max-width:400px;width:auto}}@media only screen and (max-height:480px),screen and (max-width:450px){.file-editor-warning .notification-dialog,.request-filesystem-credentials-dialog .notification-dialog{width:100%;height:100%;max-height:100%;position:fixed;top:0;margin:0;right:0}}@media screen and (max-width:600px){.color-option{width:49%}}@media only screen and (max-width:320px){.options-general-php .date-time-text.date-time-custom-text{min-width:0;margin-left:.5em}}@-webkit-keyframes rotation{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(-359deg);transform:rotate(-359deg)}}@keyframes rotation{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(-359deg);transform:rotate(-359deg)}} \ No newline at end of file diff --git a/wp-admin/css/forms.css b/wp-admin/css/forms.css index 0e499cfc4..9b147518e 100644 --- a/wp-admin/css/forms.css +++ b/wp-admin/css/forms.css @@ -438,7 +438,15 @@ fieldset label, vertical-align: middle; } -.options-media-php label[for*="_size_"], +.options-media-php [for*="_size_"] { + min-width: 10em; + vertical-align: baseline; +} + +.options-media-php .small-text[name*="_size_"] { + margin: 0 0 1em; +} + #misc-publishing-actions label { vertical-align: baseline; } @@ -1068,6 +1076,143 @@ table.form-table td .updated p { clear: both; } +/*------------------------------------------------------------------------------ + Privacy Policy settings screen +------------------------------------------------------------------------------*/ +.tools-privacy-policy-page form { + margin-bottom: 1.3em; +} + +.tools-privacy-policy-page input.button, +.tools-privacy-policy-page select { + margin-left: 6px; +} + +.tools-privacy-edit { + margin: 1.5em 0; +} + +.tools-privacy-policy-page span { + line-height: 2em; +} + +.privacy_requests .column-email { + width: 40%; +} + +.privacy_requests .column-type { + text-align: center; +} + +.privacy_requests thead td:first-child, +.privacy_requests tfoot td:first-child { + border-left: 4px solid #fff; +} + +.privacy_requests tbody th { + border-left: 4px solid #fff; + background: #fff; + box-shadow: inset 0 -1px 0 rgba(0,0,0,0.1); +} + +.privacy_requests tbody .has-request-results th { + box-shadow: none; +} + +.privacy_requests tbody .request-results th .notice { + margin: 0 0 5px; +} + +.privacy_requests tbody td { + background: #fff; + box-shadow: inset 0 -1px 0 rgba(0,0,0,0.1); +} + +.privacy_requests tbody .has-request-results td { + box-shadow: none; +} + +.privacy_requests .next_steps .button { + height: auto; + line-height: 1.5; + padding: 4px 10px; + word-break: break-all; + white-space: unset; +} + +.privacy_requests .status-request-confirmed th, +.privacy_requests .status-request-confirmed td { + background-color: #f7fcfe; + border-left-color: #00a0d2; +} + +.privacy_requests .status-request-failed th, +.privacy_requests .status-request-failed td { + background-color: #fef7f1; + border-left-color: #d64d21; +} + +.privacy_requests .export_personal_data_failed a { + vertical-align: baseline; +} + +.status-label { + font-weight: bold; +} + +.status-label.status-request-pending { + font-weight: normal; + font-style: italic; + color: #6c7781; +} + +.status-label.status-request-failed { + color: #aa0000; + font-weight: bold; +} + +.wp-privacy-request-form { + clear: both; +} + +.wp-privacy-request-form-field { + margin: 1.5em 0; +} + +.wp-privacy-request-form label { + font-weight: bold; + line-height: 1.5; + padding-bottom: .5em; + display: block; +} + +.wp-privacy-request-form input { + line-height: 1.5; + margin: 0; +} + +.email-personal-data::before { + display: inline-block; + font: normal 20px/1 dashicons; + margin: 3px 5px 0 -2px; + speak: none; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + vertical-align: top; +} + +.email-personal-data--sending::before { + color: #f56e28; + content: "\f463"; + -webkit-animation: rotation 2s infinite linear; + animation: rotation 2s infinite linear; +} + +.email-personal-data--sent::before { + color: #79ba49; + content: "\f147"; +} + /* =Media Queries -------------------------------------------------------------- */ @@ -1345,6 +1490,34 @@ table.form-table td .updated p { max-width: 6.25em; margin: 0; } + + /* Privacy Policy settings screen */ + .tools-privacy-policy-page form.wp-create-privacy-page { + margin-bottom: 1em; + } + + .tools-privacy-policy-page input#set-page, + .tools-privacy-policy-page select { + margin: 10px 0 0; + } + + .tools-privacy-policy-page .wp-create-privacy-page span { + display: block; + margin-bottom: 1em; + } + + .tools-privacy-policy-page .wp-create-privacy-page .button { + margin-left: 0; + } + + .wp-list-table.privacy_requests tr:not(.inline-edit-row):not(.no-items) td.column-primary:not(.check-column) { + display: table-cell; + } + + .wp-list-table.privacy_requests.widefat th input, + .wp-list-table.privacy_requests.widefat thead td input { + margin-left: 5px; + } } @media only screen and (max-width: 768px) { @@ -1395,3 +1568,25 @@ table.form-table td .updated p { margin-right: 0.5em; } } + +@-webkit-keyframes rotation { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +@keyframes rotation { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} diff --git a/wp-admin/css/forms.min.css b/wp-admin/css/forms.min.css index 308b25bb3..fa1a6c2c5 100644 --- a/wp-admin/css/forms.min.css +++ b/wp-admin/css/forms.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -#your-profile label+a,.wp-admin select,fieldset label,label{vertical-align:middle}#pass-strength-result,.color-option,input,textarea{box-sizing:border-box}#pressthis-code-wrap,textarea{overflow:auto}input[type=text],input[type=search],input[type=radio],input[type=tel],input[type=time],input[type=url],input[type=week],input[type=password],input[type=checkbox],input[type=color],input[type=date],input[type=datetime],input[type=datetime-local],input[type=email],input[type=month],input[type=number],select,textarea{border:1px solid #ddd;box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#32373c;outline:0;transition:50ms border-color ease-in-out}input[type=text]:focus,input[type=search]:focus,input[type=radio]:focus,input[type=tel]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type=password]:focus,input[type=checkbox]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,select:focus,textarea:focus{border-color:#5b9dd9;box-shadow:0 0 2px rgba(30,140,190,.8)}input[type=url],input[type=email]{direction:ltr}input[type=number]{height:28px;line-height:1}input[type=radio],input[type=checkbox]{border:1px solid #b4b9be;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 4px 0 0;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;box-shadow:inset 0 1px 2px rgba(0,0,0,.1);transition:.05s border-color ease-in-out}input[type=radio]:checked+label:before{color:#82878c}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#00a0d2}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox],td>input[type=checkbox]{margin-top:0}.wp-admin p label input[type=checkbox]{margin-top:-4px}.wp-admin p label input[type=radio]{margin-top:-2px}input[type=radio]{border-radius:50%;margin-right:4px;line-height:10px}input[type=radio]:checked:before,input[type=checkbox]:checked:before{float:left;display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#pass1-text,.pw-weak,.show-password #pass1{display:none}input[type=checkbox]:checked:before{content:"\f147";margin:-3px 0 0 -4px;color:#1e8cbe}input[type=radio]:checked:before{content:"\2022";text-indent:-9999px;border-radius:50px;font-size:24px;width:6px;height:6px;margin:4px;line-height:16px;background-color:#1e8cbe}@-moz-document url-prefix(){.form-table input.tog,input[type=radio],input[type=checkbox]{margin-bottom:-1px}}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration{display:none}.ie8 input[type=password]{font-family:sans-serif}button,input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit}input,select,textarea{font-size:14px;border-radius:0}textarea{padding:2px 6px;line-height:1.4;resize:vertical}.wp-admin input[type=file]{padding:3px 0;cursor:pointer}label{cursor:pointer}input,select{margin:1px;padding:3px 5px}input.code{padding-top:6px}textarea.code{line-height:1.4;padding:4px 6px 1px}input.readonly,input[readonly],textarea.readonly,textarea[readonly]{background-color:#eee}::-webkit-input-placeholder{color:#72777c}::-moz-placeholder{color:#72777c;opacity:1}:-ms-input-placeholder{color:#72777c}.form-invalid input,.form-invalid input:focus,.form-invalid select,.form-invalid select:focus{border-color:#dc3232!important;box-shadow:0 0 2px rgba(204,0,0,.8)}.form-table .form-required.form-invalid td:after{content:"\f534";font:400 20px/1 dashicons;color:#dc3232;margin-left:-25px;vertical-align:middle}.form-table .form-required.user-pass1-wrap.form-invalid td:after{content:''}.form-table .form-required.user-pass1-wrap.form-invalid .password-input-wrapper:after{content:'\f534';font:400 20px/1 dashicons;color:#dc3232;margin:0 6px 0 -29px;vertical-align:middle}.form-input-tip{color:#666}input.disabled,input:disabled,select.disabled,select:disabled,textarea.disabled,textarea:disabled{background:rgba(255,255,255,.5);border-color:rgba(222,222,222,.75);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);color:rgba(51,51,51,.5)}input[type=file].disabled,input[type=file]:disabled,input[type=range].disabled,input[type=range]:disabled{background:0 0;box-shadow:none;cursor:default}input[type=radio].disabled,input[type=radio].disabled:checked:before,input[type=radio]:disabled,input[type=radio]:disabled:checked:before,input[type=checkbox].disabled,input[type=checkbox].disabled:checked:before,input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked:before{opacity:.7}.wp-admin select{padding:2px;line-height:28px;height:28px}.wp-admin .button-cancel{padding:0 5px;line-height:2}.meta-box-sortables select{max-width:100%}.wp-admin select[multiple]{height:auto}.submit{padding:1.5em 0;margin:5px 0;border-bottom-left-radius:3px;border-bottom-right-radius:3px;border:none}form p.submit a.cancel:hover{text-decoration:none}p.submit{text-align:left;max-width:100%;margin-top:20px;padding-top:10px}.textright p.submit{border:none;text-align:right}table.form-table+input+input+p.submit,table.form-table+input+p.submit,table.form-table+p.submit{border-top:none;padding-top:0}#major-publishing-actions input,#minor-publishing-actions .preview,#minor-publishing-actions input{text-align:center}input.all-options,textarea.all-options{width:250px}input.large-text,textarea.large-text{width:99%}.regular-text{width:25em}input.small-text{width:50px;padding:1px 6px}input[type=number].small-text{width:65px}input.tiny-text{width:35px}input[type=number].tiny-text{width:45px}#doaction,#doaction2,#post-query-submit{margin:1px 8px 0 0}.tablenav #changeit,.tablenav #clear-recent-list,.tablenav #delete_all,.wp-filter #delete_all{margin-top:1px}.tablenav .actions select{float:left;margin-right:6px;max-width:200px}.ie8 .tablenav .actions select{width:155px}.ie8 .tablenav .actions select#cat{width:200px}#timezone_string option{margin-left:1em}button.wp-hide-pw>.dashicons{position:relative;top:3px}#misc-publishing-actions label,.options-media-php label[for*="_size_"]{vertical-align:baseline}#pass-strength-result{background-color:#eee;border:1px solid #ddd;color:#23282d;margin:-2px 5px 5px 1px;padding:3px 5px;text-align:center;width:25em;opacity:0}#pass-strength-result.short{background-color:#f1adad;border-color:#e35b5b;opacity:1}#pass-strength-result.bad{background-color:#fbc5a9;border-color:#f78b53;opacity:1}#pass-strength-result.good{background-color:#ffe399;border-color:#ffc733;opacity:1}#pass-strength-result.strong{background-color:#c1e1b9;border-color:#83c373;opacity:1}#pass1-text.short,#pass1.short{border-color:#e35b5b}#pass1-text.bad,#pass1.bad{border-color:#f78b53}#pass1-text.good,#pass1.good{border-color:#ffc733}#pass1-text.strong,#pass1.strong{border-color:#83c373}.indicator-hint{padding-top:8px}.show-password #pass1-text{display:inline-block}.form-table span.description.important{font-size:12px}p.search-box{float:right;margin:0}.network-admin.themes-php p.search-box{clear:left}.search-box input[name="s"],.tablenav .search-plugins input[name="s"],.tagsdiv .newtag{float:left;height:28px;margin:0 4px 0 0}.js.plugins-php .search-box .wp-filter-search{margin:0;width:280px;font-size:16px;font-weight:300;line-height:1.5;padding:3px 5px;height:32px}input[type=text].ui-autocomplete-loading,input[type=email].ui-autocomplete-loading{background-image:url(../images/loading.gif);background-repeat:no-repeat;background-position:right center;visibility:visible}input.ui-autocomplete-input.open{border-bottom-color:transparent}ul#add-to-blog-users{margin:0 0 0 14px}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;box-shadow:0 1px 2px rgba(30,140,190,.8);background-color:#fff}.ui-autocomplete li{margin-bottom:0;padding:4px 10px;white-space:nowrap;text-align:left;cursor:pointer}.ui-autocomplete .ui-state-focus{background-color:#ddd}.wp-tags-autocomplete .ui-state-focus{background-color:#0073aa;color:#fff}.form-table{border-collapse:collapse;margin-top:.5em;width:100%;clear:both}.form-table,.form-table td,.form-table td p,.form-table th{font-size:14px}.form-table td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle}.form-table th,.form-wrap label{color:#23282d;font-weight:400;text-shadow:none;vertical-align:baseline}.form-table th{vertical-align:top;text-align:left;padding:20px 10px 20px 0;width:200px;line-height:1.3;font-weight:600}.form-table .td-full,.form-table th.th-full{width:auto;padding:20px 10px 20px 0;font-weight:400}.form-table td p{margin-top:4px;margin-bottom:0}.form-table .date-time-doc{margin-top:1em}.form-table p.timezone-info{margin:1em 0}.form-table td fieldset label{margin:.25em 0 .5em!important;display:inline-block}.form-table td fieldset label,.form-table td fieldset li,.form-table td fieldset p{line-height:1.4em}.form-table input.tog,.form-table input[type=radio]{margin-top:-4px;margin-right:4px;float:none}.form-table .pre{padding:8px;margin:0}table.form-table td .updated{font-size:13px}table.form-table td .updated p{font-size:13px;margin:.3em 0}#profile-page .form-table textarea{width:500px;margin-bottom:6px}#profile-page .form-table #rich_editing{margin-right:5px}#your-profile legend{font-size:22px}#display_name{width:15em}#adduser .form-field input,#createuser .form-field input{width:25em}.color-option{display:inline-block;width:24%;padding:5px 15px 15px;margin-bottom:3px;cursor:pointer}.color-option.selected,.color-option:hover{background:#ddd}.color-palette{width:100%;border-spacing:0;border-collapse:collapse}.color-palette td{height:20px;padding:0;border:none}.tool-box .title{margin:8px 0;font-size:18px;font-weight:400;line-height:24px}.label-responsive{vertical-align:middle}#export-filters p{margin:0 0 1em}#export-filters p.submit{margin:7px 0 5px}.card{position:relative;margin-top:20px;padding:.7em 2em 1em;min-width:255px;max-width:520px;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}.pressthis h4{margin:2em 0 1em}.pressthis textarea{width:100%;font-size:1em}.pressthis-bookmarklet-wrapper{margin:20px 0 8px;vertical-align:top;position:relative;z-index:1}.pressthis-bookmarklet,.pressthis-bookmarklet:active,.pressthis-bookmarklet:focus,.pressthis-bookmarklet:hover{display:inline-block;position:relative;cursor:move;color:#32373c;background:#e5e5e5;border-radius:5px;border:1px solid #b4b9be;font-style:normal;line-height:16px;font-size:14px;text-decoration:none}.pressthis-bookmarklet:active{outline:0}.pressthis-bookmarklet:after{content:"";width:70%;height:55%;z-index:-1;position:absolute;right:10px;bottom:9px;background:0 0;-webkit-transform:skew(20deg) rotate(6deg);transform:skew(20deg) rotate(6deg);box-shadow:0 10px 8px rgba(0,0,0,.6)}.pressthis-bookmarklet:hover:after{-webkit-transform:skew(20deg) rotate(9deg);transform:skew(20deg) rotate(9deg);box-shadow:0 10px 8px rgba(0,0,0,.7)}.pressthis-bookmarklet span{display:inline-block;margin:0;padding:0 12px 8px 9px}.pressthis-bookmarklet span:before{color:#72777c;font:400 20px/1 dashicons;content:"\f157";position:relative;display:inline-block;top:4px;margin-right:4px}.pressthis-js-toggle,.pressthis-js-toggle.button.button{margin-left:10px;padding:0;height:auto;vertical-align:top}.pressthis-js-toggle .dashicons{margin:5px 8px 6px 7px;color:#555d66}.timezone-info code{white-space:nowrap}.defaultavatarpicker .avatar{margin:2px 0;vertical-align:middle}.options-general-php .date-time-text{display:inline-block;min-width:10em}.options-general-php input.small-text{width:56px}.options-general-php .spinner{float:none;margin:-3px 3px 0}.options-general-php .language-install-spinner,.settings-php .language-install-spinner{display:inline-block;float:none;margin:-3px 5px 0;vertical-align:middle}.form-table.permalink-structure .available-structure-tags li{float:left;margin-right:5px}.setup-php textarea{max-width:100%}.form-field #site-address{max-width:25em}.form-field #domain{max-width:22em}.form-field #admin-email,.form-field #blog_last_updated,.form-field #blog_registered,.form-field #path,.form-field #site-title{max-width:25em}.form-field #path{margin-bottom:5px}#search-sites,#search-users{max-width:100%}.request-filesystem-credentials-dialog{display:none;visibility:visible}.request-filesystem-credentials-dialog .notification-dialog{top:10%;max-height:85%}.request-filesystem-credentials-dialog-content{margin:25px}#request-filesystem-credentials-title{font-size:1.3em;margin:1em 0}.request-filesystem-credentials-form legend{font-size:1em;padding:1.33em 0 0;font-weight:600}.request-filesystem-credentials-form input[type=text],.request-filesystem-credentials-form input[type=password]{display:block}.request-filesystem-credentials-dialog input[type=text],.request-filesystem-credentials-dialog input[type=password]{width:100%}.request-filesystem-credentials-form .field-title{font-weight:600}.request-filesystem-credentials-dialog label[for=hostname],.request-filesystem-credentials-dialog label[for=public_key],.request-filesystem-credentials-dialog label[for=private_key]{display:block;margin-bottom:1em}.request-filesystem-credentials-dialog .request-filesystem-credentials-action-buttons{text-align:right}.request-filesystem-credentials-dialog label[for=ftp]{margin-right:10px}.request-filesystem-credentials-dialog #auth-keys-desc{margin-bottom:0}#request-filesystem-credentials-dialog .button:not(:last-child){margin-right:10px}#request-filesystem-credentials-form .cancel-button{display:none}#request-filesystem-credentials-dialog .cancel-button{display:inline}.request-filesystem-credentials-dialog .ftp-password,.request-filesystem-credentials-dialog .ftp-username{float:none;width:auto}.request-filesystem-credentials-dialog .ftp-username{margin-bottom:1em}.request-filesystem-credentials-dialog .ftp-password{margin:0}.request-filesystem-credentials-dialog .ftp-password em{color:#888}.request-filesystem-credentials-dialog label{display:block;line-height:1.5;margin-bottom:1em}.request-filesystem-credentials-form #ssh-keys legend{font-size:1.3em}.request-filesystem-credentials-form .notice{margin:0 0 20px;clear:both}@media screen and (max-width:782px){#pass-strength-result,.form-table{box-sizing:border-box}textarea{-webkit-appearance:none}input[type=text],input[type=search],input[type=password],input[type=email],input[type=number]{-webkit-appearance:none;padding:6px 10px}input[type=number]{height:40px}input.code{padding-bottom:5px;padding-top:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox],input[type=checkbox]{-webkit-appearance:none;padding:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox]{margin-bottom:8px}.widefat tfoot td input[type=checkbox]:before,.widefat th input[type=checkbox]:before,.widefat thead td input[type=checkbox]:before,input[type=checkbox]:checked:before{font:400 30px/1 dashicons;margin:-3px -5px}input[type=radio],input[type=checkbox]{height:25px;width:25px}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox]{margin-top:-3px}input[type=radio]:checked:before{vertical-align:middle;width:9px;height:9px;margin:7px;line-height:16px}.wp-upload-form input[type=submit]{margin-top:10px}#wpbody select{height:36px;font-size:16px}.wp-admin .button-cancel{padding:0;font-size:14px}#adduser .form-field input,#createuser .form-field input{width:100%}.form-table td,.form-table th,.label-responsive{display:block;width:auto;vertical-align:middle}.label-responsive{margin:.5em 0}.export-filters li{margin-bottom:0}.form-table .color-palette td{display:table-cell;width:15px}.form-table table.color-palette{margin-right:10px}input,textarea{font-size:16px}#profile-page .form-table textarea,.form-table span.description,.form-table td input[type=text],.form-table td input[type=password],.form-table td input[type=email],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;box-sizing:border-box}.form-table .form-required.form-invalid td:after{float:right;margin:-30px 3px 0 0}#wpbody .form-table td select{height:40px}.form-table input[type=text].small-text,input[type=text].small-text,input[type=search].small-text,input[type=password].small-text,input[type=number].small-text{width:auto;max-width:4.375em;display:inline;padding:3px 6px;margin:0 3px}#pass-strength-result{width:100%;padding:8px}p.search-box{float:none;position:absolute;bottom:0;width:98%;height:90px;margin-bottom:20px}p.search-box input[name="s"]{height:auto;float:none;width:100%;margin-bottom:10px;vertical-align:middle;-webkit-appearance:none}p.search-box input[type=submit]{margin-bottom:10px}.form-table span.description{display:inline;padding:4px 0 0;line-height:1.4em;font-size:14px}.form-table th{padding-top:10px;padding-bottom:0;border-bottom:0}.form-table td{margin-bottom:0;padding-bottom:6px;padding-top:4px;padding-left:0}.form-table.permalink-structure td code{margin-left:32px}.form-table.permalink-structure td input[type=text]{margin-left:32px;margin-top:4px;width:96%}.form-table input.regular-text{width:100%}.form-table label{font-size:14px}.form-table fieldset label{display:block}#local-time,#utc-time{display:block;float:none;margin-top:.5em}.form-field #domain{max-width:none}.wp-pwd{position:relative}.wp-pwd [type=text],.wp-pwd [type=password]{padding-right:40px}.wp-pwd button.button{background:0 0;border:none;box-shadow:none;line-height:2;margin:0;padding:5px 10px;position:absolute;right:0;top:0}.wp-pwd button.button:active,.wp-pwd button.button:focus,.wp-pwd button.button:hover{background:0 0}.wp-pwd .button .text{display:none}.options-general-php input[type=text].small-text{max-width:6.25em;margin:0}}@media only screen and (max-width:768px){.form-field input[type=text],.form-field input[type=password],.form-field input[type=email],.form-field select,.form-field textarea{width:99%}.form-wrap .form-field{padding:0}#profile-page .form-table textarea{max-width:400px;width:auto}}@media only screen and (max-height:480px),screen and (max-width:450px){.file-editor-warning .notification-dialog,.request-filesystem-credentials-dialog .notification-dialog{width:100%;height:100%;max-height:100%;position:fixed;top:0;margin:0;left:0}}@media screen and (max-width:600px){.color-option{width:49%}}@media only screen and (max-width:320px){.options-general-php .date-time-text.date-time-custom-text{min-width:0;margin-right:.5em}} \ No newline at end of file +#your-profile label+a,.wp-admin select,fieldset label,label{vertical-align:middle}#pass-strength-result,.color-option,input,textarea{box-sizing:border-box}#pressthis-code-wrap,textarea{overflow:auto}input[type=text],input[type=search],input[type=radio],input[type=tel],input[type=time],input[type=url],input[type=week],input[type=password],input[type=checkbox],input[type=color],input[type=date],input[type=datetime],input[type=datetime-local],input[type=email],input[type=month],input[type=number],select,textarea{border:1px solid #ddd;box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#32373c;outline:0;transition:50ms border-color ease-in-out}input[type=text]:focus,input[type=search]:focus,input[type=radio]:focus,input[type=tel]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type=password]:focus,input[type=checkbox]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,select:focus,textarea:focus{border-color:#5b9dd9;box-shadow:0 0 2px rgba(30,140,190,.8)}input[type=url],input[type=email]{direction:ltr}input[type=number]{height:28px;line-height:1}input[type=radio],input[type=checkbox]{border:1px solid #b4b9be;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 4px 0 0;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;box-shadow:inset 0 1px 2px rgba(0,0,0,.1);transition:.05s border-color ease-in-out}input[type=radio]:checked+label:before{color:#82878c}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#00a0d2}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox],td>input[type=checkbox]{margin-top:0}.wp-admin p label input[type=checkbox]{margin-top:-4px}.wp-admin p label input[type=radio]{margin-top:-2px}input[type=radio]{border-radius:50%;margin-right:4px;line-height:10px}input[type=radio]:checked:before,input[type=checkbox]:checked:before{float:left;display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#pass1-text,.pw-weak,.show-password #pass1{display:none}input[type=checkbox]:checked:before{content:"\f147";margin:-3px 0 0 -4px;color:#1e8cbe}input[type=radio]:checked:before{content:"\2022";text-indent:-9999px;border-radius:50px;font-size:24px;width:6px;height:6px;margin:4px;line-height:16px;background-color:#1e8cbe}@-moz-document url-prefix(){.form-table input.tog,input[type=radio],input[type=checkbox]{margin-bottom:-1px}}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration{display:none}.ie8 input[type=password]{font-family:sans-serif}button,input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit}input,select,textarea{font-size:14px;border-radius:0}textarea{padding:2px 6px;line-height:1.4;resize:vertical}.wp-admin input[type=file]{padding:3px 0;cursor:pointer}label{cursor:pointer}input,select{margin:1px;padding:3px 5px}input.code{padding-top:6px}textarea.code{line-height:1.4;padding:4px 6px 1px}input.readonly,input[readonly],textarea.readonly,textarea[readonly]{background-color:#eee}::-webkit-input-placeholder{color:#72777c}::-moz-placeholder{color:#72777c;opacity:1}:-ms-input-placeholder{color:#72777c}.form-invalid input,.form-invalid input:focus,.form-invalid select,.form-invalid select:focus{border-color:#dc3232!important;box-shadow:0 0 2px rgba(204,0,0,.8)}.form-table .form-required.form-invalid td:after{content:"\f534";font:400 20px/1 dashicons;color:#dc3232;margin-left:-25px;vertical-align:middle}.form-table .form-required.user-pass1-wrap.form-invalid td:after{content:''}.form-table .form-required.user-pass1-wrap.form-invalid .password-input-wrapper:after{content:'\f534';font:400 20px/1 dashicons;color:#dc3232;margin:0 6px 0 -29px;vertical-align:middle}.form-input-tip{color:#666}input.disabled,input:disabled,select.disabled,select:disabled,textarea.disabled,textarea:disabled{background:rgba(255,255,255,.5);border-color:rgba(222,222,222,.75);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);color:rgba(51,51,51,.5)}input[type=file].disabled,input[type=file]:disabled,input[type=range].disabled,input[type=range]:disabled{background:0 0;box-shadow:none;cursor:default}input[type=radio].disabled,input[type=radio].disabled:checked:before,input[type=radio]:disabled,input[type=radio]:disabled:checked:before,input[type=checkbox].disabled,input[type=checkbox].disabled:checked:before,input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked:before{opacity:.7}.wp-admin select{padding:2px;line-height:28px;height:28px}.wp-admin .button-cancel{padding:0 5px;line-height:2}.meta-box-sortables select{max-width:100%}.wp-admin select[multiple]{height:auto}.submit{padding:1.5em 0;margin:5px 0;border-bottom-left-radius:3px;border-bottom-right-radius:3px;border:none}form p.submit a.cancel:hover{text-decoration:none}p.submit{text-align:left;max-width:100%;margin-top:20px;padding-top:10px}.textright p.submit{border:none;text-align:right}table.form-table+input+input+p.submit,table.form-table+input+p.submit,table.form-table+p.submit{border-top:none;padding-top:0}#major-publishing-actions input,#minor-publishing-actions .preview,#minor-publishing-actions input{text-align:center}input.all-options,textarea.all-options{width:250px}input.large-text,textarea.large-text{width:99%}.regular-text{width:25em}input.small-text{width:50px;padding:1px 6px}input[type=number].small-text{width:65px}input.tiny-text{width:35px}input[type=number].tiny-text{width:45px}#doaction,#doaction2,#post-query-submit{margin:1px 8px 0 0}.tablenav #changeit,.tablenav #clear-recent-list,.tablenav #delete_all,.wp-filter #delete_all{margin-top:1px}.tablenav .actions select{float:left;margin-right:6px;max-width:200px}.ie8 .tablenav .actions select{width:155px}.ie8 .tablenav .actions select#cat{width:200px}#timezone_string option{margin-left:1em}button.wp-hide-pw>.dashicons{position:relative;top:3px}.options-media-php [for*="_size_"]{min-width:10em;vertical-align:baseline}.options-media-php .small-text[name*="_size_"]{margin:0 0 1em}#misc-publishing-actions label{vertical-align:baseline}#pass-strength-result{background-color:#eee;border:1px solid #ddd;color:#23282d;margin:-2px 5px 5px 1px;padding:3px 5px;text-align:center;width:25em;opacity:0}#pass-strength-result.short{background-color:#f1adad;border-color:#e35b5b;opacity:1}#pass-strength-result.bad{background-color:#fbc5a9;border-color:#f78b53;opacity:1}#pass-strength-result.good{background-color:#ffe399;border-color:#ffc733;opacity:1}#pass-strength-result.strong{background-color:#c1e1b9;border-color:#83c373;opacity:1}#pass1-text.short,#pass1.short{border-color:#e35b5b}#pass1-text.bad,#pass1.bad{border-color:#f78b53}#pass1-text.good,#pass1.good{border-color:#ffc733}#pass1-text.strong,#pass1.strong{border-color:#83c373}.indicator-hint{padding-top:8px}.show-password #pass1-text{display:inline-block}.form-table span.description.important{font-size:12px}p.search-box{float:right;margin:0}.network-admin.themes-php p.search-box{clear:left}.search-box input[name="s"],.tablenav .search-plugins input[name="s"],.tagsdiv .newtag{float:left;height:28px;margin:0 4px 0 0}.js.plugins-php .search-box .wp-filter-search{margin:0;width:280px;font-size:16px;font-weight:300;line-height:1.5;padding:3px 5px;height:32px}input[type=text].ui-autocomplete-loading,input[type=email].ui-autocomplete-loading{background-image:url(../images/loading.gif);background-repeat:no-repeat;background-position:right center;visibility:visible}input.ui-autocomplete-input.open{border-bottom-color:transparent}ul#add-to-blog-users{margin:0 0 0 14px}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;box-shadow:0 1px 2px rgba(30,140,190,.8);background-color:#fff}.ui-autocomplete li{margin-bottom:0;padding:4px 10px;white-space:nowrap;text-align:left;cursor:pointer}.ui-autocomplete .ui-state-focus{background-color:#ddd}.wp-tags-autocomplete .ui-state-focus{background-color:#0073aa;color:#fff}.form-table{border-collapse:collapse;margin-top:.5em;width:100%;clear:both}.form-table,.form-table td,.form-table td p,.form-table th{font-size:14px}.form-table td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle}.form-table th,.form-wrap label{color:#23282d;font-weight:400;text-shadow:none;vertical-align:baseline}.form-table th{vertical-align:top;text-align:left;padding:20px 10px 20px 0;width:200px;line-height:1.3;font-weight:600}.form-table .td-full,.form-table th.th-full{width:auto;padding:20px 10px 20px 0;font-weight:400}.form-table td p{margin-top:4px;margin-bottom:0}.form-table .date-time-doc{margin-top:1em}.form-table p.timezone-info{margin:1em 0}.form-table td fieldset label{margin:.25em 0 .5em!important;display:inline-block}.form-table td fieldset label,.form-table td fieldset li,.form-table td fieldset p{line-height:1.4em}.form-table input.tog,.form-table input[type=radio]{margin-top:-4px;margin-right:4px;float:none}.form-table .pre{padding:8px;margin:0}table.form-table td .updated{font-size:13px}table.form-table td .updated p{font-size:13px;margin:.3em 0}#profile-page .form-table textarea{width:500px;margin-bottom:6px}#profile-page .form-table #rich_editing{margin-right:5px}#your-profile legend{font-size:22px}#display_name{width:15em}#adduser .form-field input,#createuser .form-field input{width:25em}.color-option{display:inline-block;width:24%;padding:5px 15px 15px;margin-bottom:3px;cursor:pointer}.color-option.selected,.color-option:hover{background:#ddd}.color-palette{width:100%;border-spacing:0;border-collapse:collapse}.color-palette td{height:20px;padding:0;border:none}.tool-box .title{margin:8px 0;font-size:18px;font-weight:400;line-height:24px}.label-responsive{vertical-align:middle}#export-filters p{margin:0 0 1em}#export-filters p.submit{margin:7px 0 5px}.card{position:relative;margin-top:20px;padding:.7em 2em 1em;min-width:255px;max-width:520px;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}.pressthis h4{margin:2em 0 1em}.pressthis textarea{width:100%;font-size:1em}.pressthis-bookmarklet-wrapper{margin:20px 0 8px;vertical-align:top;position:relative;z-index:1}.pressthis-bookmarklet,.pressthis-bookmarklet:active,.pressthis-bookmarklet:focus,.pressthis-bookmarklet:hover{display:inline-block;position:relative;cursor:move;color:#32373c;background:#e5e5e5;border-radius:5px;border:1px solid #b4b9be;font-style:normal;line-height:16px;font-size:14px;text-decoration:none}.privacy_requests tbody th,.privacy_requests tfoot td:first-child,.privacy_requests thead td:first-child{border-left:4px solid #fff}.pressthis-bookmarklet:active{outline:0}.pressthis-bookmarklet:after{content:"";width:70%;height:55%;z-index:-1;position:absolute;right:10px;bottom:9px;background:0 0;-webkit-transform:skew(20deg) rotate(6deg);transform:skew(20deg) rotate(6deg);box-shadow:0 10px 8px rgba(0,0,0,.6)}.pressthis-bookmarklet:hover:after{-webkit-transform:skew(20deg) rotate(9deg);transform:skew(20deg) rotate(9deg);box-shadow:0 10px 8px rgba(0,0,0,.7)}.pressthis-bookmarklet span{display:inline-block;margin:0;padding:0 12px 8px 9px}.pressthis-bookmarklet span:before{color:#72777c;font:400 20px/1 dashicons;content:"\f157";position:relative;display:inline-block;top:4px;margin-right:4px}.pressthis-js-toggle,.pressthis-js-toggle.button.button{margin-left:10px;padding:0;height:auto;vertical-align:top}.pressthis-js-toggle .dashicons{margin:5px 8px 6px 7px;color:#555d66}.timezone-info code{white-space:nowrap}.defaultavatarpicker .avatar{margin:2px 0;vertical-align:middle}.options-general-php .date-time-text{display:inline-block;min-width:10em}.options-general-php input.small-text{width:56px}.options-general-php .spinner{float:none;margin:-3px 3px 0}.options-general-php .language-install-spinner,.settings-php .language-install-spinner{display:inline-block;float:none;margin:-3px 5px 0;vertical-align:middle}.form-table.permalink-structure .available-structure-tags li{float:left;margin-right:5px}.setup-php textarea{max-width:100%}.form-field #site-address{max-width:25em}.form-field #domain{max-width:22em}.form-field #admin-email,.form-field #blog_last_updated,.form-field #blog_registered,.form-field #path,.form-field #site-title{max-width:25em}.form-field #path{margin-bottom:5px}#search-sites,#search-users{max-width:100%}.request-filesystem-credentials-dialog{display:none;visibility:visible}.request-filesystem-credentials-dialog .notification-dialog{top:10%;max-height:85%}.request-filesystem-credentials-dialog-content{margin:25px}#request-filesystem-credentials-title{font-size:1.3em;margin:1em 0}.request-filesystem-credentials-form legend{font-size:1em;padding:1.33em 0 0;font-weight:600}.request-filesystem-credentials-form input[type=text],.request-filesystem-credentials-form input[type=password]{display:block}.request-filesystem-credentials-dialog input[type=text],.request-filesystem-credentials-dialog input[type=password]{width:100%}.request-filesystem-credentials-form .field-title{font-weight:600}.request-filesystem-credentials-dialog label[for=hostname],.request-filesystem-credentials-dialog label[for=public_key],.request-filesystem-credentials-dialog label[for=private_key]{display:block;margin-bottom:1em}.request-filesystem-credentials-dialog .request-filesystem-credentials-action-buttons{text-align:right}.request-filesystem-credentials-dialog label[for=ftp]{margin-right:10px}.request-filesystem-credentials-dialog #auth-keys-desc{margin-bottom:0}#request-filesystem-credentials-dialog .button:not(:last-child){margin-right:10px}#request-filesystem-credentials-form .cancel-button{display:none}#request-filesystem-credentials-dialog .cancel-button{display:inline}.request-filesystem-credentials-dialog .ftp-password,.request-filesystem-credentials-dialog .ftp-username{float:none;width:auto}.request-filesystem-credentials-dialog .ftp-username{margin-bottom:1em}.request-filesystem-credentials-dialog .ftp-password{margin:0}.request-filesystem-credentials-dialog .ftp-password em{color:#888}.request-filesystem-credentials-dialog label{display:block;line-height:1.5;margin-bottom:1em}.request-filesystem-credentials-form #ssh-keys legend{font-size:1.3em}.request-filesystem-credentials-form .notice{margin:0 0 20px;clear:both}.tools-privacy-policy-page form{margin-bottom:1.3em}.tools-privacy-policy-page input.button,.tools-privacy-policy-page select{margin-left:6px}.tools-privacy-edit{margin:1.5em 0}.tools-privacy-policy-page span{line-height:2em}.privacy_requests .column-email{width:40%}.privacy_requests .column-type{text-align:center}.privacy_requests tbody th{background:#fff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.privacy_requests tbody .has-request-results th{box-shadow:none}.privacy_requests tbody .request-results th .notice{margin:0 0 5px}.privacy_requests tbody td{background:#fff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.privacy_requests tbody .has-request-results td{box-shadow:none}.privacy_requests .next_steps .button{height:auto;line-height:1.5;padding:4px 10px;word-break:break-all;white-space:unset}.privacy_requests .status-request-confirmed td,.privacy_requests .status-request-confirmed th{background-color:#f7fcfe;border-left-color:#00a0d2}.privacy_requests .status-request-failed td,.privacy_requests .status-request-failed th{background-color:#fef7f1;border-left-color:#d64d21}.privacy_requests .export_personal_data_failed a{vertical-align:baseline}.status-label{font-weight:700}.status-label.status-request-pending{font-weight:400;font-style:italic;color:#6c7781}.status-label.status-request-failed{color:#a00;font-weight:700}.wp-privacy-request-form{clear:both}.wp-privacy-request-form-field{margin:1.5em 0}.wp-privacy-request-form label{font-weight:700;line-height:1.5;padding-bottom:.5em;display:block}.wp-privacy-request-form input{line-height:1.5;margin:0}.email-personal-data::before{display:inline-block;font:400 20px/1 dashicons;margin:3px 5px 0 -2px;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.email-personal-data--sending::before{color:#f56e28;content:"\f463";-webkit-animation:rotation 2s infinite linear;animation:rotation 2s infinite linear}.email-personal-data--sent::before{color:#79ba49;content:"\f147"}@media screen and (max-width:782px){#pass-strength-result,.form-table{box-sizing:border-box}textarea{-webkit-appearance:none}input[type=text],input[type=search],input[type=password],input[type=email],input[type=number]{-webkit-appearance:none;padding:6px 10px}input[type=number]{height:40px}input.code{padding-bottom:5px;padding-top:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox],input[type=checkbox]{-webkit-appearance:none;padding:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox]{margin-bottom:8px}.widefat tfoot td input[type=checkbox]:before,.widefat th input[type=checkbox]:before,.widefat thead td input[type=checkbox]:before,input[type=checkbox]:checked:before{font:400 30px/1 dashicons;margin:-3px -5px}input[type=radio],input[type=checkbox]{height:25px;width:25px}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox]{margin-top:-3px}input[type=radio]:checked:before{vertical-align:middle;width:9px;height:9px;margin:7px;line-height:16px}.wp-upload-form input[type=submit]{margin-top:10px}#wpbody select{height:36px;font-size:16px}.wp-admin .button-cancel{padding:0;font-size:14px}#adduser .form-field input,#createuser .form-field input{width:100%}.form-table td,.form-table th,.label-responsive{display:block;width:auto;vertical-align:middle}.label-responsive{margin:.5em 0}.export-filters li{margin-bottom:0}.form-table .color-palette td{display:table-cell;width:15px}.form-table table.color-palette{margin-right:10px}input,textarea{font-size:16px}#profile-page .form-table textarea,.form-table span.description,.form-table td input[type=text],.form-table td input[type=password],.form-table td input[type=email],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;box-sizing:border-box}.form-table .form-required.form-invalid td:after{float:right;margin:-30px 3px 0 0}#wpbody .form-table td select{height:40px}.form-table input[type=text].small-text,input[type=text].small-text,input[type=search].small-text,input[type=password].small-text,input[type=number].small-text{width:auto;max-width:4.375em;display:inline;padding:3px 6px;margin:0 3px}#pass-strength-result{width:100%;padding:8px}p.search-box{float:none;position:absolute;bottom:0;width:98%;height:90px;margin-bottom:20px}p.search-box input[name="s"]{height:auto;float:none;width:100%;margin-bottom:10px;vertical-align:middle;-webkit-appearance:none}p.search-box input[type=submit]{margin-bottom:10px}.form-table span.description{display:inline;padding:4px 0 0;line-height:1.4em;font-size:14px}.form-table th{padding-top:10px;padding-bottom:0;border-bottom:0}.form-table td{margin-bottom:0;padding-bottom:6px;padding-top:4px;padding-left:0}.form-table.permalink-structure td code{margin-left:32px}.form-table.permalink-structure td input[type=text]{margin-left:32px;margin-top:4px;width:96%}.form-table input.regular-text{width:100%}.form-table label{font-size:14px}.form-table fieldset label{display:block}#local-time,#utc-time{display:block;float:none;margin-top:.5em}.form-field #domain{max-width:none}.wp-pwd{position:relative}.wp-pwd [type=text],.wp-pwd [type=password]{padding-right:40px}.wp-pwd button.button{background:0 0;border:none;box-shadow:none;line-height:2;margin:0;padding:5px 10px;position:absolute;right:0;top:0}.wp-pwd button.button:active,.wp-pwd button.button:focus,.wp-pwd button.button:hover{background:0 0}.wp-pwd .button .text{display:none}.options-general-php input[type=text].small-text{max-width:6.25em;margin:0}.tools-privacy-policy-page form.wp-create-privacy-page{margin-bottom:1em}.tools-privacy-policy-page input#set-page,.tools-privacy-policy-page select{margin:10px 0 0}.tools-privacy-policy-page .wp-create-privacy-page span{display:block;margin-bottom:1em}.tools-privacy-policy-page .wp-create-privacy-page .button{margin-left:0}.wp-list-table.privacy_requests tr:not(.inline-edit-row):not(.no-items) td.column-primary:not(.check-column){display:table-cell}.wp-list-table.privacy_requests.widefat th input,.wp-list-table.privacy_requests.widefat thead td input{margin-left:5px}}@media only screen and (max-width:768px){.form-field input[type=text],.form-field input[type=password],.form-field input[type=email],.form-field select,.form-field textarea{width:99%}.form-wrap .form-field{padding:0}#profile-page .form-table textarea{max-width:400px;width:auto}}@media only screen and (max-height:480px),screen and (max-width:450px){.file-editor-warning .notification-dialog,.request-filesystem-credentials-dialog .notification-dialog{width:100%;height:100%;max-height:100%;position:fixed;top:0;margin:0;left:0}}@media screen and (max-width:600px){.color-option{width:49%}}@media only screen and (max-width:320px){.options-general-php .date-time-text.date-time-custom-text{min-width:0;margin-right:.5em}}@-webkit-keyframes rotation{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes rotation{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}} \ No newline at end of file diff --git a/wp-admin/css/login-rtl.css b/wp-admin/css/login-rtl.css index 64cca3c2c..7c7d85bed 100644 --- a/wp-admin/css/login-rtl.css +++ b/wp-admin/css/login-rtl.css @@ -49,6 +49,7 @@ p { } .login .message, +.login .success, .login #login_error { border-right: 4px solid #00a0d2; padding: 12px; @@ -58,6 +59,10 @@ p { box-shadow: 0 1px 1px 0 rgba(0,0,0,0.1); } +.login .success { + border-right-color: #46b450; +} + .login #login_error { border-right-color: #dc3232; } @@ -194,6 +199,12 @@ p { color: #124964; } +.login .privacy-policy-page-link { + text-align: center; + width: 100%; + margin: 5em 0 2em; +} + .login form .input, .login input[type="text"] { font-size: 24px; diff --git a/wp-admin/css/login-rtl.min.css b/wp-admin/css/login-rtl.min.css index ff8a1859d..1106a8a41 100644 --- a/wp-admin/css/login-rtl.min.css +++ b/wp-admin/css/login-rtl.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -#your-profile label+a,.wp-admin select,fieldset label,label{vertical-align:middle}#pass-strength-result,.color-option,input,textarea{box-sizing:border-box}#pressthis-code-wrap,textarea{overflow:auto}.login h1 a,form p.submit a.cancel:hover{text-decoration:none}input[type=text],input[type=search],input[type=radio],input[type=tel],input[type=time],input[type=url],input[type=week],input[type=password],input[type=checkbox],input[type=color],input[type=date],input[type=datetime],input[type=datetime-local],input[type=email],input[type=month],input[type=number],select,textarea{border:1px solid #ddd;box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#32373c;outline:0;transition:50ms border-color ease-in-out}input[type=text]:focus,input[type=search]:focus,input[type=radio]:focus,input[type=tel]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type=password]:focus,input[type=checkbox]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,select:focus,textarea:focus{border-color:#5b9dd9;box-shadow:0 0 2px rgba(30,140,190,.8)}input[type=url],input[type=email]{direction:ltr}input[type=number]{height:28px;line-height:1}input[type=radio],input[type=checkbox]{border:1px solid #b4b9be;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 0 0 4px;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;box-shadow:inset 0 1px 2px rgba(0,0,0,.1);transition:.05s border-color ease-in-out}input[type=radio]:checked+label:before{color:#82878c}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#00a0d2}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox],td>input[type=checkbox]{margin-top:0}.wp-admin p label input[type=checkbox]{margin-top:-4px}.wp-admin p label input[type=radio]{margin-top:-2px}input[type=radio]{border-radius:50%;margin-left:4px;line-height:10px}input[type=radio]:checked:before,input[type=checkbox]:checked:before{float:right;display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#pass1-text,.pw-weak,.show-password #pass1{display:none}input[type=checkbox]:checked:before{content:"\f147";margin:-3px -4px 0 0;color:#1e8cbe}input[type=radio]:checked:before{content:"\2022";text-indent:-9999px;border-radius:50px;font-size:24px;width:6px;height:6px;margin:4px;line-height:16px;background-color:#1e8cbe}@-moz-document url-prefix(){.form-table input.tog,input[type=radio],input[type=checkbox]{margin-bottom:-1px}}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration{display:none}.ie8 input[type=password]{font-family:sans-serif}button,input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit}input,select,textarea{font-size:14px;border-radius:0}textarea{padding:2px 6px;line-height:1.4;resize:vertical}.wp-admin input[type=file]{padding:3px 0;cursor:pointer}label{cursor:pointer}input,select{margin:1px;padding:3px 5px}input.code{padding-top:6px}textarea.code{line-height:1.4;padding:4px 6px 1px}input.readonly,input[readonly],textarea.readonly,textarea[readonly]{background-color:#eee}::-webkit-input-placeholder{color:#72777c}::-moz-placeholder{color:#72777c;opacity:1}:-ms-input-placeholder{color:#72777c}.form-invalid input,.form-invalid input:focus,.form-invalid select,.form-invalid select:focus{border-color:#dc3232!important;box-shadow:0 0 2px rgba(204,0,0,.8)}.form-table .form-required.form-invalid td:after{content:"\f534";font:400 20px/1 dashicons;color:#dc3232;margin-right:-25px;vertical-align:middle}.form-table .form-required.user-pass1-wrap.form-invalid td:after{content:''}.form-table .form-required.user-pass1-wrap.form-invalid .password-input-wrapper:after{content:'\f534';font:400 20px/1 dashicons;color:#dc3232;margin:0 -29px 0 6px;vertical-align:middle}.form-input-tip{color:#666}input.disabled,input:disabled,select.disabled,select:disabled,textarea.disabled,textarea:disabled{background:rgba(255,255,255,.5);border-color:rgba(222,222,222,.75);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);color:rgba(51,51,51,.5)}input[type=file].disabled,input[type=file]:disabled,input[type=range].disabled,input[type=range]:disabled{background:0 0;box-shadow:none;cursor:default}input[type=radio].disabled,input[type=radio].disabled:checked:before,input[type=radio]:disabled,input[type=radio]:disabled:checked:before,input[type=checkbox].disabled,input[type=checkbox].disabled:checked:before,input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked:before{opacity:.7}.wp-admin select{padding:2px;line-height:28px;height:28px}.wp-admin .button-cancel{padding:0 5px;line-height:2}.meta-box-sortables select{max-width:100%}.wp-admin select[multiple]{height:auto}.submit{padding:1.5em 0;margin:5px 0;border-bottom-right-radius:3px;border-bottom-left-radius:3px;border:none}p.submit{text-align:right;max-width:100%;margin-top:20px;padding-top:10px}.textright p.submit{border:none;text-align:left}table.form-table+input+input+p.submit,table.form-table+input+p.submit,table.form-table+p.submit{border-top:none;padding-top:0}#major-publishing-actions input,#minor-publishing-actions .preview,#minor-publishing-actions input{text-align:center}input.all-options,textarea.all-options{width:250px}input.large-text,textarea.large-text{width:99%}.regular-text{width:25em}input.small-text{width:50px;padding:1px 6px}input[type=number].small-text{width:65px}input.tiny-text{width:35px}input[type=number].tiny-text{width:45px}#doaction,#doaction2,#post-query-submit{margin:1px 0 0 8px}.tablenav #changeit,.tablenav #clear-recent-list,.tablenav #delete_all,.wp-filter #delete_all{margin-top:1px}.tablenav .actions select{float:right;margin-left:6px;max-width:200px}.ie8 .tablenav .actions select{width:155px}.ie8 .tablenav .actions select#cat{width:200px}#timezone_string option{margin-right:1em}button.wp-hide-pw>.dashicons{position:relative;top:3px}#misc-publishing-actions label,.options-media-php label[for*="_size_"]{vertical-align:baseline}#pass-strength-result{background-color:#eee;border:1px solid #ddd;color:#23282d;margin:-2px 1px 5px 5px;padding:3px 5px;text-align:center;width:25em;opacity:0}#pass-strength-result.short{background-color:#f1adad;border-color:#e35b5b;opacity:1}#pass-strength-result.bad{background-color:#fbc5a9;border-color:#f78b53;opacity:1}#pass-strength-result.good{background-color:#ffe399;border-color:#ffc733;opacity:1}#pass-strength-result.strong{background-color:#c1e1b9;border-color:#83c373;opacity:1}#pass1-text.short,#pass1.short{border-color:#e35b5b}#pass1-text.bad,#pass1.bad{border-color:#f78b53}#pass1-text.good,#pass1.good{border-color:#ffc733}#pass1-text.strong,#pass1.strong{border-color:#83c373}.indicator-hint{padding-top:8px}.show-password #pass1-text{display:inline-block}.form-table span.description.important{font-size:12px}p.search-box{float:left;margin:0}.network-admin.themes-php p.search-box{clear:right}.search-box input[name="s"],.tablenav .search-plugins input[name="s"],.tagsdiv .newtag{float:right;height:28px;margin:0 0 0 4px}.js.plugins-php .search-box .wp-filter-search{margin:0;width:280px;font-size:16px;font-weight:300;line-height:1.5;padding:3px 5px;height:32px}input[type=text].ui-autocomplete-loading,input[type=email].ui-autocomplete-loading{background-image:url(../images/loading.gif);background-repeat:no-repeat;background-position:left center;visibility:visible}input.ui-autocomplete-input.open{border-bottom-color:transparent}ul#add-to-blog-users{margin:0 14px 0 0}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;box-shadow:0 1px 2px rgba(30,140,190,.8);background-color:#fff}.ui-autocomplete li{margin-bottom:0;padding:4px 10px;white-space:nowrap;text-align:right;cursor:pointer}.ui-autocomplete .ui-state-focus{background-color:#ddd}.wp-tags-autocomplete .ui-state-focus{background-color:#0073aa;color:#fff}.form-table{border-collapse:collapse;margin-top:.5em;width:100%;clear:both}.form-table,.form-table td,.form-table td p,.form-table th{font-size:14px}.form-table td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle}.form-table th,.form-wrap label{color:#23282d;font-weight:400;text-shadow:none;vertical-align:baseline}.form-table th{vertical-align:top;text-align:right;padding:20px 0 20px 10px;width:200px;line-height:1.3;font-weight:600}.form-table .td-full,.form-table th.th-full{width:auto;padding:20px 0 20px 10px;font-weight:400}.form-table td p{margin-top:4px;margin-bottom:0}.form-table .date-time-doc{margin-top:1em}.form-table p.timezone-info{margin:1em 0}.form-table td fieldset label{margin:.25em 0 .5em!important;display:inline-block}.form-table td fieldset label,.form-table td fieldset li,.form-table td fieldset p{line-height:1.4em}.form-table input.tog,.form-table input[type=radio]{margin-top:-4px;margin-left:4px;float:none}.form-table .pre{padding:8px;margin:0}table.form-table td .updated{font-size:13px}table.form-table td .updated p{font-size:13px;margin:.3em 0}#profile-page .form-table textarea{width:500px;margin-bottom:6px}#profile-page .form-table #rich_editing{margin-left:5px}#your-profile legend{font-size:22px}#display_name{width:15em}#adduser .form-field input,#createuser .form-field input{width:25em}.color-option{display:inline-block;width:24%;padding:5px 15px 15px;margin-bottom:3px;cursor:pointer}.color-option.selected,.color-option:hover{background:#ddd}.color-palette{width:100%;border-spacing:0;border-collapse:collapse}.color-palette td{height:20px;padding:0;border:none}.tool-box .title{margin:8px 0;font-size:18px;font-weight:400;line-height:24px}.label-responsive{vertical-align:middle}#export-filters p{margin:0 0 1em}#export-filters p.submit{margin:7px 0 5px}.card{position:relative;margin-top:20px;padding:.7em 2em 1em;min-width:255px;max-width:520px;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}.pressthis h4{margin:2em 0 1em}.pressthis textarea{width:100%;font-size:1em}.login form,.login h1 a{overflow:hidden;font-weight:400}.pressthis-bookmarklet-wrapper{margin:20px 0 8px;vertical-align:top;position:relative;z-index:1}.pressthis-bookmarklet,.pressthis-bookmarklet:active,.pressthis-bookmarklet:focus,.pressthis-bookmarklet:hover{display:inline-block;position:relative;cursor:move;color:#32373c;background:#e5e5e5;border-radius:5px;border:1px solid #b4b9be;font-style:normal;line-height:16px;font-size:14px;text-decoration:none}.pressthis-bookmarklet:active{outline:0}.pressthis-bookmarklet:after{content:"";width:70%;height:55%;z-index:-1;position:absolute;left:10px;bottom:9px;background:0 0;-webkit-transform:skew(-20deg) rotate(-6deg);transform:skew(-20deg) rotate(-6deg);box-shadow:0 10px 8px rgba(0,0,0,.6)}.pressthis-bookmarklet:hover:after{-webkit-transform:skew(-20deg) rotate(-9deg);transform:skew(-20deg) rotate(-9deg);box-shadow:0 10px 8px rgba(0,0,0,.7)}.pressthis-bookmarklet span{display:inline-block;margin:0;padding:0 9px 8px 12px}.pressthis-bookmarklet span:before{color:#72777c;font:400 20px/1 dashicons;content:"\f157";position:relative;display:inline-block;top:4px;margin-left:4px}.pressthis-js-toggle,.pressthis-js-toggle.button.button{margin-right:10px;padding:0;height:auto;vertical-align:top}.pressthis-js-toggle .dashicons{margin:5px 7px 6px 8px;color:#555d66}.timezone-info code{white-space:nowrap}.defaultavatarpicker .avatar{margin:2px 0;vertical-align:middle}.options-general-php .date-time-text{display:inline-block;min-width:10em}.options-general-php input.small-text{width:56px}.options-general-php .spinner{float:none;margin:-3px 3px 0}.options-general-php .language-install-spinner,.settings-php .language-install-spinner{display:inline-block;float:none;margin:-3px 5px 0;vertical-align:middle}.form-table.permalink-structure .available-structure-tags li{float:right;margin-left:5px}.setup-php textarea{max-width:100%}.form-field #site-address{max-width:25em}.form-field #domain{max-width:22em}.form-field #admin-email,.form-field #blog_last_updated,.form-field #blog_registered,.form-field #path,.form-field #site-title{max-width:25em}.form-field #path{margin-bottom:5px}#search-sites,#search-users{max-width:100%}.request-filesystem-credentials-dialog{display:none;visibility:visible}.request-filesystem-credentials-dialog .notification-dialog{top:10%;max-height:85%}.request-filesystem-credentials-dialog-content{margin:25px}#request-filesystem-credentials-title{font-size:1.3em;margin:1em 0}.request-filesystem-credentials-form legend{font-size:1em;padding:1.33em 0 0;font-weight:600}.request-filesystem-credentials-form input[type=text],.request-filesystem-credentials-form input[type=password]{display:block}.request-filesystem-credentials-dialog input[type=text],.request-filesystem-credentials-dialog input[type=password]{width:100%}.request-filesystem-credentials-form .field-title{font-weight:600}.request-filesystem-credentials-dialog label[for=hostname],.request-filesystem-credentials-dialog label[for=public_key],.request-filesystem-credentials-dialog label[for=private_key]{display:block;margin-bottom:1em}.request-filesystem-credentials-dialog .request-filesystem-credentials-action-buttons{text-align:left}.request-filesystem-credentials-dialog label[for=ftp]{margin-left:10px}.request-filesystem-credentials-dialog #auth-keys-desc{margin-bottom:0}#request-filesystem-credentials-dialog .button:not(:last-child){margin-left:10px}#request-filesystem-credentials-form .cancel-button{display:none}#request-filesystem-credentials-dialog .cancel-button{display:inline}.request-filesystem-credentials-dialog .ftp-password,.request-filesystem-credentials-dialog .ftp-username{float:none;width:auto}.request-filesystem-credentials-dialog .ftp-username{margin-bottom:1em}.request-filesystem-credentials-dialog .ftp-password{margin:0}.request-filesystem-credentials-dialog .ftp-password em{color:#888}.request-filesystem-credentials-dialog label{display:block;line-height:1.5;margin-bottom:1em}.request-filesystem-credentials-form #ssh-keys legend{font-size:1.3em}.request-filesystem-credentials-form .notice{margin:0 0 20px;clear:both}@media screen and (max-width:782px){#pass-strength-result,.form-table{box-sizing:border-box}textarea{-webkit-appearance:none}input[type=text],input[type=search],input[type=password],input[type=email],input[type=number]{-webkit-appearance:none;padding:6px 10px}input[type=number]{height:40px}input.code{padding-bottom:5px;padding-top:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox],input[type=checkbox]{-webkit-appearance:none;padding:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox]{margin-bottom:8px}.widefat tfoot td input[type=checkbox]:before,.widefat th input[type=checkbox]:before,.widefat thead td input[type=checkbox]:before,input[type=checkbox]:checked:before{font:400 30px/1 dashicons;margin:-3px -5px}input[type=radio],input[type=checkbox]{height:25px;width:25px}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox]{margin-top:-3px}input[type=radio]:checked:before{vertical-align:middle;width:9px;height:9px;margin:7px;line-height:16px}.wp-upload-form input[type=submit]{margin-top:10px}#wpbody select{height:36px;font-size:16px}.wp-admin .button-cancel{padding:0;font-size:14px}#adduser .form-field input,#createuser .form-field input{width:100%}.form-table td,.form-table th,.label-responsive{display:block;width:auto;vertical-align:middle}.label-responsive{margin:.5em 0}.export-filters li{margin-bottom:0}.form-table .color-palette td{display:table-cell;width:15px}.form-table table.color-palette{margin-left:10px}input,textarea{font-size:16px}#profile-page .form-table textarea,.form-table span.description,.form-table td input[type=text],.form-table td input[type=password],.form-table td input[type=email],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;box-sizing:border-box}.form-table .form-required.form-invalid td:after{float:left;margin:-30px 0 0 3px}#wpbody .form-table td select{height:40px}.form-table input[type=text].small-text,input[type=text].small-text,input[type=search].small-text,input[type=password].small-text,input[type=number].small-text{width:auto;max-width:4.375em;display:inline;padding:3px 6px;margin:0 3px}#pass-strength-result{width:100%;padding:8px}p.search-box{float:none;position:absolute;bottom:0;width:98%;height:90px;margin-bottom:20px}p.search-box input[name="s"]{height:auto;float:none;width:100%;margin-bottom:10px;vertical-align:middle;-webkit-appearance:none}p.search-box input[type=submit]{margin-bottom:10px}.form-table span.description{display:inline;padding:4px 0 0;line-height:1.4em;font-size:14px}.form-table th{padding-top:10px;padding-bottom:0;border-bottom:0}.form-table td{margin-bottom:0;padding-bottom:6px;padding-top:4px;padding-right:0}.form-table.permalink-structure td code{margin-right:32px}.form-table.permalink-structure td input[type=text]{margin-right:32px;margin-top:4px;width:96%}.form-table input.regular-text{width:100%}.form-table label{font-size:14px}.form-table fieldset label{display:block}#local-time,#utc-time{display:block;float:none;margin-top:.5em}.form-field #domain{max-width:none}.wp-pwd{position:relative}.wp-pwd [type=text],.wp-pwd [type=password]{padding-left:40px}.wp-pwd button.button{background:0 0;border:none;box-shadow:none;line-height:2;margin:0;padding:5px 10px;position:absolute;left:0;top:0}.wp-pwd button.button:active,.wp-pwd button.button:focus,.wp-pwd button.button:hover{background:0 0}.wp-pwd .button .text{display:none}.options-general-php input[type=text].small-text{max-width:6.25em;margin:0}}.locale-he-il em,.locale-zh-cn #local-time,.locale-zh-cn #utc-time,.locale-zh-cn .form-wrap p,.locale-zh-cn .howto,.locale-zh-cn .inline-edit-row fieldset span.checkbox-title,.locale-zh-cn .inline-edit-row fieldset span.title,.locale-zh-cn .js .input-with-default-title,.locale-zh-cn .link-to-original,.locale-zh-cn .tablenav .displaying-num,.locale-zh-cn p.description,.locale-zh-cn p.help,.locale-zh-cn p.install-help,.locale-zh-cn span.description{font-style:normal}@media only screen and (max-width:768px){.form-field input[type=text],.form-field input[type=password],.form-field input[type=email],.form-field select,.form-field textarea{width:99%}.form-wrap .form-field{padding:0}#profile-page .form-table textarea{max-width:400px;width:auto}}.locale-de-de #customize-header-actions .button,.locale-de-de-formal #customize-header-actions .button,.locale-ru-ru #customize-header-actions .button{padding:0 5px 1px}@media only screen and (max-height:480px),screen and (max-width:450px){.file-editor-warning .notification-dialog,.request-filesystem-credentials-dialog .notification-dialog{width:100%;height:100%;max-height:100%;position:fixed;top:0;margin:0;right:0}}@media screen and (max-width:600px){.color-option{width:49%}}@media only screen and (max-width:320px){.options-general-php .date-time-text.date-time-custom-text{min-width:0;margin-left:.5em}}body.rtl,body.rtl .press-this a.wp-switch-editor{font-family:Tahoma,Arial,sans-serif}.rtl h1,.rtl h2,.rtl h3,.rtl h4,.rtl h5,.rtl h6{font-family:Arial,sans-serif;font-weight:600}body.locale-he-il,body.locale-he-il .press-this a.wp-switch-editor{font-family:Arial,sans-serif}.locale-he-il em{font-weight:600}.locale-zh-cn .hdnle a{font-size:12px}.locale-zh-cn form.upgrade .hint{font-style:normal;font-size:100%}.locale-zh-cn #sort-buttons{font-size:1em!important}.locale-de-de #customize-header-actions .spinner,.locale-de-de-formal #customize-header-actions .spinner{margin:16px 3px 0}.locale-ru-ru #adminmenu{width:inherit}.locale-ru-ru #adminmenu,.locale-ru-ru #wpbody{margin-right:0}.locale-ru-ru .inline-edit-row fieldset label span.title,.locale-ru-ru .inline-edit-row fieldset.inline-edit-date legend{width:8em}.locale-ru-ru .inline-edit-row fieldset .timestamp-wrap,.locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap{margin-right:8em}.locale-ru-ru.post-new-php .tagsdiv .newtag,.locale-ru-ru.post-php .tagsdiv .newtag{width:165px}.locale-ru-ru.press-this .posting{margin-left:277px}.locale-ru-ru .press-this-sidebar{width:265px}.locale-ru-ru #customize-header-actions .spinner{margin:16px 3px 0}.locale-lt-lt .inline-edit-row fieldset label span.title,.locale-lt-lt .inline-edit-row fieldset.inline-edit-date legend{width:8em}.locale-lt-lt .inline-edit-row fieldset .timestamp-wrap,.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap{margin-right:8em}@media screen and (max-width:782px){.locale-lt-lt .inline-edit-row fieldset .timestamp-wrap,.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap,.locale-ru-ru .inline-edit-row fieldset .timestamp-wrap,.locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap{margin-right:0}}body,html{height:100%;margin:0;padding:0}body{background:#f1f1f1;min-width:0;color:#444;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:13px;line-height:1.4em}a{color:#0073aa;transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out;outline:0}a:active,a:hover{color:#00a0d2}a:focus{color:#124964;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ie8 a:focus{outline:#5b9dd9 solid 1px}p{line-height:1.5}.login #login_error,.login .message{border-right:4px solid #00a0d2;padding:12px;margin-right:0;margin-bottom:20px;background-color:#fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.login #login_error{border-right-color:#dc3232}#loginform p.submit,.login-action-lostpassword p.submit{border:none;margin:-10px 0 20px}.login *{margin:0;padding:0}.login .password-input-wrapper{display:table}.login .input.password-input{display:table-cell;margin:0}.login .pw-weak{margin-bottom:15px}.login .button.button-secondary{display:table-cell;border-radius:0;vertical-align:middle}.login form{margin-top:20px;margin-right:0;padding:26px 24px 46px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.13)}.login form .forgetmenot{font-weight:400;float:right;margin-bottom:0}.login .button-primary{float:left}#login form p{margin-bottom:0}#login form p.submit{margin:0;padding:0}.login label{color:#72777c;font-size:14px}.login form .forgetmenot label{font-size:12px;line-height:19px}.login h1{text-align:center}.login h1 a{background-image:url(../images/w-logo-blue.png?ver=20131202);background-image:none,url(../images/wordpress-logo.svg?ver=20131107);background-size:84px;background-position:center top;background-repeat:no-repeat;color:#444;height:84px;font-size:20px;line-height:1.3em;margin:0 auto 25px;padding:0;width:84px;text-indent:-9999px;outline:0;display:block}#login{width:320px;padding:8% 0 0;margin:auto}.login #backtoblog,.login #nav{font-size:13px;padding:0 24px}.login #nav{margin:24px 0 0}#backtoblog{margin:16px 0}.login #backtoblog a,.login #nav a{text-decoration:none;color:#555d66}.login #backtoblog a:hover,.login #nav a:hover,.login h1 a:hover{color:#00a0d2}.login #backtoblog a:focus,.login #nav a:focus,.login h1 a:focus{color:#124964}.login form .input,.login input[type=text]{font-size:24px;width:100%;padding:3px;margin:2px 0 16px 6px}.login form .input,.login form input[type=checkbox],.login input[type=text]{background:#fbfbfb}.ie7 .login form .input,.ie8 .login form .input{font-family:sans-serif}.login-action-rp input[type=text]{box-shadow:none;margin:0}.login #pass-strength-result{font-weight:600;margin:-1px 0 16px 5px;padding:6px 5px;text-align:center;width:100%}body.interim-login{height:auto}.interim-login #login{padding:0;margin:5px auto 20px}.interim-login.login h1 a{width:auto}.interim-login #login_error,.interim-login.login .message{margin:0 0 16px}.interim-login.login form{margin:0}@-ms-viewport{width:device-width}@media screen and (max-height:550px){#login{padding:20px 0}}@media screen and (max-width:782px){.interim-login input[type=checkbox]{height:16px;width:16px}.interim-login input[type=checkbox]:checked:before{width:16px;font:400 21px/1 dashicons;margin:-3px -4px 0 0}} \ No newline at end of file +#your-profile label+a,.wp-admin select,fieldset label,label{vertical-align:middle}#pass-strength-result,.color-option,input,textarea{box-sizing:border-box}#pressthis-code-wrap,textarea{overflow:auto}.login h1 a,form p.submit a.cancel:hover{text-decoration:none}input[type=text],input[type=search],input[type=radio],input[type=tel],input[type=time],input[type=url],input[type=week],input[type=password],input[type=checkbox],input[type=color],input[type=date],input[type=datetime],input[type=datetime-local],input[type=email],input[type=month],input[type=number],select,textarea{border:1px solid #ddd;box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#32373c;outline:0;transition:50ms border-color ease-in-out}input[type=text]:focus,input[type=search]:focus,input[type=radio]:focus,input[type=tel]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type=password]:focus,input[type=checkbox]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,select:focus,textarea:focus{border-color:#5b9dd9;box-shadow:0 0 2px rgba(30,140,190,.8)}input[type=url],input[type=email]{direction:ltr}input[type=number]{height:28px;line-height:1}input[type=radio],input[type=checkbox]{border:1px solid #b4b9be;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 0 0 4px;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;box-shadow:inset 0 1px 2px rgba(0,0,0,.1);transition:.05s border-color ease-in-out}input[type=radio]:checked+label:before{color:#82878c}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#00a0d2}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox],td>input[type=checkbox]{margin-top:0}.wp-admin p label input[type=checkbox]{margin-top:-4px}.wp-admin p label input[type=radio]{margin-top:-2px}input[type=radio]{border-radius:50%;margin-left:4px;line-height:10px}input[type=radio]:checked:before,input[type=checkbox]:checked:before{float:right;display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#pass1-text,.pw-weak,.show-password #pass1{display:none}input[type=checkbox]:checked:before{content:"\f147";margin:-3px -4px 0 0;color:#1e8cbe}input[type=radio]:checked:before{content:"\2022";text-indent:-9999px;border-radius:50px;font-size:24px;width:6px;height:6px;margin:4px;line-height:16px;background-color:#1e8cbe}@-moz-document url-prefix(){.form-table input.tog,input[type=radio],input[type=checkbox]{margin-bottom:-1px}}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration{display:none}.ie8 input[type=password]{font-family:sans-serif}button,input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit}input,select,textarea{font-size:14px;border-radius:0}textarea{padding:2px 6px;line-height:1.4;resize:vertical}.wp-admin input[type=file]{padding:3px 0;cursor:pointer}label{cursor:pointer}input,select{margin:1px;padding:3px 5px}input.code{padding-top:6px}textarea.code{line-height:1.4;padding:4px 6px 1px}input.readonly,input[readonly],textarea.readonly,textarea[readonly]{background-color:#eee}::-webkit-input-placeholder{color:#72777c}::-moz-placeholder{color:#72777c;opacity:1}:-ms-input-placeholder{color:#72777c}.form-invalid input,.form-invalid input:focus,.form-invalid select,.form-invalid select:focus{border-color:#dc3232!important;box-shadow:0 0 2px rgba(204,0,0,.8)}.form-table .form-required.form-invalid td:after{content:"\f534";font:400 20px/1 dashicons;color:#dc3232;margin-right:-25px;vertical-align:middle}.form-table .form-required.user-pass1-wrap.form-invalid td:after{content:''}.form-table .form-required.user-pass1-wrap.form-invalid .password-input-wrapper:after{content:'\f534';font:400 20px/1 dashicons;color:#dc3232;margin:0 -29px 0 6px;vertical-align:middle}.form-input-tip{color:#666}input.disabled,input:disabled,select.disabled,select:disabled,textarea.disabled,textarea:disabled{background:rgba(255,255,255,.5);border-color:rgba(222,222,222,.75);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);color:rgba(51,51,51,.5)}input[type=file].disabled,input[type=file]:disabled,input[type=range].disabled,input[type=range]:disabled{background:0 0;box-shadow:none;cursor:default}input[type=radio].disabled,input[type=radio].disabled:checked:before,input[type=radio]:disabled,input[type=radio]:disabled:checked:before,input[type=checkbox].disabled,input[type=checkbox].disabled:checked:before,input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked:before{opacity:.7}.wp-admin select{padding:2px;line-height:28px;height:28px}.wp-admin .button-cancel{padding:0 5px;line-height:2}.meta-box-sortables select{max-width:100%}.wp-admin select[multiple]{height:auto}.submit{padding:1.5em 0;margin:5px 0;border-bottom-right-radius:3px;border-bottom-left-radius:3px;border:none}p.submit{text-align:right;max-width:100%;margin-top:20px;padding-top:10px}.textright p.submit{border:none;text-align:left}table.form-table+input+input+p.submit,table.form-table+input+p.submit,table.form-table+p.submit{border-top:none;padding-top:0}#major-publishing-actions input,#minor-publishing-actions .preview,#minor-publishing-actions input{text-align:center}input.all-options,textarea.all-options{width:250px}input.large-text,textarea.large-text{width:99%}.regular-text{width:25em}input.small-text{width:50px;padding:1px 6px}input[type=number].small-text{width:65px}input.tiny-text{width:35px}input[type=number].tiny-text{width:45px}#doaction,#doaction2,#post-query-submit{margin:1px 0 0 8px}.tablenav #changeit,.tablenav #clear-recent-list,.tablenav #delete_all,.wp-filter #delete_all{margin-top:1px}.tablenav .actions select{float:right;margin-left:6px;max-width:200px}.ie8 .tablenav .actions select{width:155px}.ie8 .tablenav .actions select#cat{width:200px}#timezone_string option{margin-right:1em}button.wp-hide-pw>.dashicons{position:relative;top:3px}.options-media-php [for*="_size_"]{min-width:10em;vertical-align:baseline}.options-media-php .small-text[name*="_size_"]{margin:0 0 1em}#misc-publishing-actions label{vertical-align:baseline}#pass-strength-result{background-color:#eee;border:1px solid #ddd;color:#23282d;margin:-2px 1px 5px 5px;padding:3px 5px;text-align:center;width:25em;opacity:0}#pass-strength-result.short{background-color:#f1adad;border-color:#e35b5b;opacity:1}#pass-strength-result.bad{background-color:#fbc5a9;border-color:#f78b53;opacity:1}#pass-strength-result.good{background-color:#ffe399;border-color:#ffc733;opacity:1}#pass-strength-result.strong{background-color:#c1e1b9;border-color:#83c373;opacity:1}#pass1-text.short,#pass1.short{border-color:#e35b5b}#pass1-text.bad,#pass1.bad{border-color:#f78b53}#pass1-text.good,#pass1.good{border-color:#ffc733}#pass1-text.strong,#pass1.strong{border-color:#83c373}.indicator-hint{padding-top:8px}.show-password #pass1-text{display:inline-block}.form-table span.description.important{font-size:12px}p.search-box{float:left;margin:0}.network-admin.themes-php p.search-box{clear:right}.search-box input[name="s"],.tablenav .search-plugins input[name="s"],.tagsdiv .newtag{float:right;height:28px;margin:0 0 0 4px}.js.plugins-php .search-box .wp-filter-search{margin:0;width:280px;font-size:16px;font-weight:300;line-height:1.5;padding:3px 5px;height:32px}input[type=text].ui-autocomplete-loading,input[type=email].ui-autocomplete-loading{background-image:url(../images/loading.gif);background-repeat:no-repeat;background-position:left center;visibility:visible}input.ui-autocomplete-input.open{border-bottom-color:transparent}ul#add-to-blog-users{margin:0 14px 0 0}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;box-shadow:0 1px 2px rgba(30,140,190,.8);background-color:#fff}.ui-autocomplete li{margin-bottom:0;padding:4px 10px;white-space:nowrap;text-align:right;cursor:pointer}.ui-autocomplete .ui-state-focus{background-color:#ddd}.wp-tags-autocomplete .ui-state-focus{background-color:#0073aa;color:#fff}.form-table{border-collapse:collapse;margin-top:.5em;width:100%;clear:both}.form-table,.form-table td,.form-table td p,.form-table th{font-size:14px}.form-table td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle}.form-table th,.form-wrap label{color:#23282d;font-weight:400;text-shadow:none;vertical-align:baseline}.form-table th{vertical-align:top;text-align:right;padding:20px 0 20px 10px;width:200px;line-height:1.3;font-weight:600}.form-table .td-full,.form-table th.th-full{width:auto;padding:20px 0 20px 10px;font-weight:400}.form-table td p{margin-top:4px;margin-bottom:0}.form-table .date-time-doc{margin-top:1em}.form-table p.timezone-info{margin:1em 0}.form-table td fieldset label{margin:.25em 0 .5em!important;display:inline-block}.form-table td fieldset label,.form-table td fieldset li,.form-table td fieldset p{line-height:1.4em}.form-table input.tog,.form-table input[type=radio]{margin-top:-4px;margin-left:4px;float:none}.form-table .pre{padding:8px;margin:0}table.form-table td .updated{font-size:13px}table.form-table td .updated p{font-size:13px;margin:.3em 0}#profile-page .form-table textarea{width:500px;margin-bottom:6px}#profile-page .form-table #rich_editing{margin-left:5px}#your-profile legend{font-size:22px}#display_name{width:15em}#adduser .form-field input,#createuser .form-field input{width:25em}.color-option{display:inline-block;width:24%;padding:5px 15px 15px;margin-bottom:3px;cursor:pointer}.color-option.selected,.color-option:hover{background:#ddd}.color-palette{width:100%;border-spacing:0;border-collapse:collapse}.color-palette td{height:20px;padding:0;border:none}.tool-box .title{margin:8px 0;font-size:18px;font-weight:400;line-height:24px}.label-responsive{vertical-align:middle}#export-filters p{margin:0 0 1em}#export-filters p.submit{margin:7px 0 5px}.card{position:relative;margin-top:20px;padding:.7em 2em 1em;min-width:255px;max-width:520px;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}.pressthis h4{margin:2em 0 1em}.pressthis textarea{width:100%;font-size:1em}.login form,.login h1 a{overflow:hidden;font-weight:400}.pressthis-bookmarklet-wrapper{margin:20px 0 8px;vertical-align:top;position:relative;z-index:1}.pressthis-bookmarklet,.pressthis-bookmarklet:active,.pressthis-bookmarklet:focus,.pressthis-bookmarklet:hover{display:inline-block;position:relative;cursor:move;color:#32373c;background:#e5e5e5;border-radius:5px;border:1px solid #b4b9be;font-style:normal;line-height:16px;font-size:14px;text-decoration:none}.privacy_requests tbody th,.privacy_requests tfoot td:first-child,.privacy_requests thead td:first-child{border-right:4px solid #fff}.pressthis-bookmarklet:active{outline:0}.pressthis-bookmarklet:after{content:"";width:70%;height:55%;z-index:-1;position:absolute;left:10px;bottom:9px;background:0 0;-webkit-transform:skew(-20deg) rotate(-6deg);transform:skew(-20deg) rotate(-6deg);box-shadow:0 10px 8px rgba(0,0,0,.6)}.pressthis-bookmarklet:hover:after{-webkit-transform:skew(-20deg) rotate(-9deg);transform:skew(-20deg) rotate(-9deg);box-shadow:0 10px 8px rgba(0,0,0,.7)}.pressthis-bookmarklet span{display:inline-block;margin:0;padding:0 9px 8px 12px}.pressthis-bookmarklet span:before{color:#72777c;font:400 20px/1 dashicons;content:"\f157";position:relative;display:inline-block;top:4px;margin-left:4px}.pressthis-js-toggle,.pressthis-js-toggle.button.button{margin-right:10px;padding:0;height:auto;vertical-align:top}.pressthis-js-toggle .dashicons{margin:5px 7px 6px 8px;color:#555d66}.timezone-info code{white-space:nowrap}.defaultavatarpicker .avatar{margin:2px 0;vertical-align:middle}.options-general-php .date-time-text{display:inline-block;min-width:10em}.options-general-php input.small-text{width:56px}.options-general-php .spinner{float:none;margin:-3px 3px 0}.options-general-php .language-install-spinner,.settings-php .language-install-spinner{display:inline-block;float:none;margin:-3px 5px 0;vertical-align:middle}.form-table.permalink-structure .available-structure-tags li{float:right;margin-left:5px}.setup-php textarea{max-width:100%}.form-field #site-address{max-width:25em}.form-field #domain{max-width:22em}.form-field #admin-email,.form-field #blog_last_updated,.form-field #blog_registered,.form-field #path,.form-field #site-title{max-width:25em}.form-field #path{margin-bottom:5px}#search-sites,#search-users{max-width:100%}.request-filesystem-credentials-dialog{display:none;visibility:visible}.request-filesystem-credentials-dialog .notification-dialog{top:10%;max-height:85%}.request-filesystem-credentials-dialog-content{margin:25px}#request-filesystem-credentials-title{font-size:1.3em;margin:1em 0}.request-filesystem-credentials-form legend{font-size:1em;padding:1.33em 0 0;font-weight:600}.request-filesystem-credentials-form input[type=text],.request-filesystem-credentials-form input[type=password]{display:block}.request-filesystem-credentials-dialog input[type=text],.request-filesystem-credentials-dialog input[type=password]{width:100%}.request-filesystem-credentials-form .field-title{font-weight:600}.request-filesystem-credentials-dialog label[for=hostname],.request-filesystem-credentials-dialog label[for=public_key],.request-filesystem-credentials-dialog label[for=private_key]{display:block;margin-bottom:1em}.request-filesystem-credentials-dialog .request-filesystem-credentials-action-buttons{text-align:left}.login #pass-strength-result,.login h1,.privacy_requests .column-type{text-align:center}.request-filesystem-credentials-dialog label[for=ftp]{margin-left:10px}.request-filesystem-credentials-dialog #auth-keys-desc{margin-bottom:0}#request-filesystem-credentials-dialog .button:not(:last-child){margin-left:10px}#request-filesystem-credentials-form .cancel-button{display:none}#request-filesystem-credentials-dialog .cancel-button{display:inline}.request-filesystem-credentials-dialog .ftp-password,.request-filesystem-credentials-dialog .ftp-username{float:none;width:auto}.request-filesystem-credentials-dialog .ftp-username{margin-bottom:1em}.request-filesystem-credentials-dialog .ftp-password{margin:0}.request-filesystem-credentials-dialog .ftp-password em{color:#888}.request-filesystem-credentials-dialog label{display:block;line-height:1.5;margin-bottom:1em}.request-filesystem-credentials-form #ssh-keys legend{font-size:1.3em}.request-filesystem-credentials-form .notice{margin:0 0 20px;clear:both}.tools-privacy-policy-page form{margin-bottom:1.3em}.tools-privacy-policy-page input.button,.tools-privacy-policy-page select{margin-right:6px}.tools-privacy-edit{margin:1.5em 0}.tools-privacy-policy-page span{line-height:2em}.privacy_requests .column-email{width:40%}.privacy_requests tbody th{background:#fff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.privacy_requests tbody .has-request-results th{box-shadow:none}.privacy_requests tbody .request-results th .notice{margin:0 0 5px}.privacy_requests tbody td{background:#fff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.privacy_requests tbody .has-request-results td{box-shadow:none}.privacy_requests .next_steps .button{height:auto;line-height:1.5;padding:4px 10px;word-break:break-all;white-space:unset}.privacy_requests .status-request-confirmed td,.privacy_requests .status-request-confirmed th{background-color:#f7fcfe;border-right-color:#00a0d2}.privacy_requests .status-request-failed td,.privacy_requests .status-request-failed th{background-color:#fef7f1;border-right-color:#d64d21}.privacy_requests .export_personal_data_failed a{vertical-align:baseline}.status-label{font-weight:700}.status-label.status-request-pending{font-weight:400;font-style:italic;color:#6c7781}.status-label.status-request-failed{color:#a00;font-weight:700}.wp-privacy-request-form{clear:both}.wp-privacy-request-form-field{margin:1.5em 0}.wp-privacy-request-form label{font-weight:700;line-height:1.5;padding-bottom:.5em;display:block}.wp-privacy-request-form input{line-height:1.5;margin:0}.email-personal-data::before{display:inline-block;font:400 20px/1 dashicons;margin:3px -2px 0 5px;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.email-personal-data--sending::before{color:#f56e28;content:"\f463";-webkit-animation:rotation 2s infinite linear;animation:rotation 2s infinite linear}.email-personal-data--sent::before{color:#79ba49;content:"\f147"}@media screen and (max-width:782px){#pass-strength-result,.form-table{box-sizing:border-box}textarea{-webkit-appearance:none}input[type=text],input[type=search],input[type=password],input[type=email],input[type=number]{-webkit-appearance:none;padding:6px 10px}input[type=number]{height:40px}input.code{padding-bottom:5px;padding-top:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox],input[type=checkbox]{-webkit-appearance:none;padding:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox]{margin-bottom:8px}.widefat tfoot td input[type=checkbox]:before,.widefat th input[type=checkbox]:before,.widefat thead td input[type=checkbox]:before,input[type=checkbox]:checked:before{font:400 30px/1 dashicons;margin:-3px -5px}input[type=radio],input[type=checkbox]{height:25px;width:25px}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox]{margin-top:-3px}input[type=radio]:checked:before{vertical-align:middle;width:9px;height:9px;margin:7px;line-height:16px}.wp-upload-form input[type=submit]{margin-top:10px}#wpbody select{height:36px;font-size:16px}.wp-admin .button-cancel{padding:0;font-size:14px}#adduser .form-field input,#createuser .form-field input{width:100%}.form-table td,.form-table th,.label-responsive{display:block;width:auto;vertical-align:middle}.label-responsive{margin:.5em 0}.export-filters li{margin-bottom:0}.form-table .color-palette td{display:table-cell;width:15px}.form-table table.color-palette{margin-left:10px}input,textarea{font-size:16px}#profile-page .form-table textarea,.form-table span.description,.form-table td input[type=text],.form-table td input[type=password],.form-table td input[type=email],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;box-sizing:border-box}.form-table .form-required.form-invalid td:after{float:left;margin:-30px 0 0 3px}#wpbody .form-table td select{height:40px}.form-table input[type=text].small-text,input[type=text].small-text,input[type=search].small-text,input[type=password].small-text,input[type=number].small-text{width:auto;max-width:4.375em;display:inline;padding:3px 6px;margin:0 3px}#pass-strength-result{width:100%;padding:8px}p.search-box{float:none;position:absolute;bottom:0;width:98%;height:90px;margin-bottom:20px}p.search-box input[name="s"]{height:auto;float:none;width:100%;margin-bottom:10px;vertical-align:middle;-webkit-appearance:none}p.search-box input[type=submit]{margin-bottom:10px}.form-table span.description{display:inline;padding:4px 0 0;line-height:1.4em;font-size:14px}.form-table th{padding-top:10px;padding-bottom:0;border-bottom:0}.form-table td{margin-bottom:0;padding-bottom:6px;padding-top:4px;padding-right:0}.form-table.permalink-structure td code{margin-right:32px}.form-table.permalink-structure td input[type=text]{margin-right:32px;margin-top:4px;width:96%}.form-table input.regular-text{width:100%}.form-table label{font-size:14px}.form-table fieldset label{display:block}#local-time,#utc-time{display:block;float:none;margin-top:.5em}.form-field #domain{max-width:none}.wp-pwd{position:relative}.wp-pwd [type=text],.wp-pwd [type=password]{padding-left:40px}.wp-pwd button.button{background:0 0;border:none;box-shadow:none;line-height:2;margin:0;padding:5px 10px;position:absolute;left:0;top:0}.wp-pwd button.button:active,.wp-pwd button.button:focus,.wp-pwd button.button:hover{background:0 0}.wp-pwd .button .text{display:none}.options-general-php input[type=text].small-text{max-width:6.25em;margin:0}.tools-privacy-policy-page form.wp-create-privacy-page{margin-bottom:1em}.tools-privacy-policy-page input#set-page,.tools-privacy-policy-page select{margin:10px 0 0}.tools-privacy-policy-page .wp-create-privacy-page span{display:block;margin-bottom:1em}.tools-privacy-policy-page .wp-create-privacy-page .button{margin-right:0}.wp-list-table.privacy_requests tr:not(.inline-edit-row):not(.no-items) td.column-primary:not(.check-column){display:table-cell}.wp-list-table.privacy_requests.widefat th input,.wp-list-table.privacy_requests.widefat thead td input{margin-right:5px}}.locale-he-il em,.locale-zh-cn #local-time,.locale-zh-cn #utc-time,.locale-zh-cn .form-wrap p,.locale-zh-cn .howto,.locale-zh-cn .inline-edit-row fieldset span.checkbox-title,.locale-zh-cn .inline-edit-row fieldset span.title,.locale-zh-cn .js .input-with-default-title,.locale-zh-cn .link-to-original,.locale-zh-cn .tablenav .displaying-num,.locale-zh-cn p.description,.locale-zh-cn p.help,.locale-zh-cn p.install-help,.locale-zh-cn span.description{font-style:normal}@media only screen and (max-width:768px){.form-field input[type=text],.form-field input[type=password],.form-field input[type=email],.form-field select,.form-field textarea{width:99%}.form-wrap .form-field{padding:0}#profile-page .form-table textarea{max-width:400px;width:auto}}.locale-de-de #customize-header-actions .button,.locale-de-de-formal #customize-header-actions .button,.locale-ru-ru #customize-header-actions .button{padding:0 5px 1px}@media only screen and (max-height:480px),screen and (max-width:450px){.file-editor-warning .notification-dialog,.request-filesystem-credentials-dialog .notification-dialog{width:100%;height:100%;max-height:100%;position:fixed;top:0;margin:0;right:0}}@media screen and (max-width:600px){.color-option{width:49%}}@media only screen and (max-width:320px){.options-general-php .date-time-text.date-time-custom-text{min-width:0;margin-left:.5em}}@-webkit-keyframes rotation{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(-359deg);transform:rotate(-359deg)}}@keyframes rotation{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(-359deg);transform:rotate(-359deg)}}body.rtl,body.rtl .press-this a.wp-switch-editor{font-family:Tahoma,Arial,sans-serif}.rtl h1,.rtl h2,.rtl h3,.rtl h4,.rtl h5,.rtl h6{font-family:Arial,sans-serif;font-weight:600}body.locale-he-il,body.locale-he-il .press-this a.wp-switch-editor{font-family:Arial,sans-serif}.locale-he-il em{font-weight:600}.locale-zh-cn .hdnle a{font-size:12px}.locale-zh-cn form.upgrade .hint{font-style:normal;font-size:100%}.locale-zh-cn #sort-buttons{font-size:1em!important}.locale-de-de #customize-header-actions .spinner,.locale-de-de-formal #customize-header-actions .spinner{margin:16px 3px 0}.locale-ru-ru #adminmenu{width:inherit}.locale-ru-ru #adminmenu,.locale-ru-ru #wpbody{margin-right:0}.locale-ru-ru .inline-edit-row fieldset label span.title,.locale-ru-ru .inline-edit-row fieldset.inline-edit-date legend{width:8em}.locale-ru-ru .inline-edit-row fieldset .timestamp-wrap,.locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap{margin-right:8em}.locale-ru-ru.post-new-php .tagsdiv .newtag,.locale-ru-ru.post-php .tagsdiv .newtag{width:165px}.locale-ru-ru.press-this .posting{margin-left:277px}.locale-ru-ru .press-this-sidebar{width:265px}.locale-ru-ru #customize-header-actions .spinner{margin:16px 3px 0}.locale-lt-lt .inline-edit-row fieldset label span.title,.locale-lt-lt .inline-edit-row fieldset.inline-edit-date legend{width:8em}.locale-lt-lt .inline-edit-row fieldset .timestamp-wrap,.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap{margin-right:8em}@media screen and (max-width:782px){.locale-lt-lt .inline-edit-row fieldset .timestamp-wrap,.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap,.locale-ru-ru .inline-edit-row fieldset .timestamp-wrap,.locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap{margin-right:0}}body,html{height:100%;margin:0;padding:0}body{background:#f1f1f1;min-width:0;color:#444;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:13px;line-height:1.4em}a{color:#0073aa;transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out;outline:0}a:active,a:hover{color:#00a0d2}a:focus{color:#124964;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ie8 a:focus{outline:#5b9dd9 solid 1px}p{line-height:1.5}.login #login_error,.login .message,.login .success{border-right:4px solid #00a0d2;padding:12px;margin-right:0;margin-bottom:20px;background-color:#fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.login .success{border-right-color:#46b450}.login #login_error{border-right-color:#dc3232}#loginform p.submit,.login-action-lostpassword p.submit{border:none;margin:-10px 0 20px}.login *{margin:0;padding:0}.login .password-input-wrapper{display:table}.login .input.password-input{display:table-cell;margin:0}.login .pw-weak{margin-bottom:15px}.login .button.button-secondary{display:table-cell;border-radius:0;vertical-align:middle}.login form{margin-top:20px;margin-right:0;padding:26px 24px 46px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.13)}.login form .forgetmenot{font-weight:400;float:right;margin-bottom:0}.login .button-primary{float:left}#login form p{margin-bottom:0}#login form p.submit{margin:0;padding:0}.login label{color:#72777c;font-size:14px}.login form .forgetmenot label{font-size:12px;line-height:19px}.login h1 a{background-image:url(../images/w-logo-blue.png?ver=20131202);background-image:none,url(../images/wordpress-logo.svg?ver=20131107);background-size:84px;background-position:center top;background-repeat:no-repeat;color:#444;height:84px;font-size:20px;line-height:1.3em;margin:0 auto 25px;padding:0;width:84px;text-indent:-9999px;outline:0;display:block}#login{width:320px;padding:8% 0 0;margin:auto}.login #backtoblog,.login #nav{font-size:13px;padding:0 24px}.login #nav{margin:24px 0 0}#backtoblog{margin:16px 0}.login #backtoblog a,.login #nav a{text-decoration:none;color:#555d66}.login #backtoblog a:hover,.login #nav a:hover,.login h1 a:hover{color:#00a0d2}.login #backtoblog a:focus,.login #nav a:focus,.login h1 a:focus{color:#124964}.login .privacy-policy-page-link{text-align:center;width:100%;margin:5em 0 2em}.login form .input,.login input[type=text]{font-size:24px;width:100%;padding:3px;margin:2px 0 16px 6px}.login form .input,.login form input[type=checkbox],.login input[type=text]{background:#fbfbfb}.ie7 .login form .input,.ie8 .login form .input{font-family:sans-serif}.login-action-rp input[type=text]{box-shadow:none;margin:0}.login #pass-strength-result{font-weight:600;margin:-1px 0 16px 5px;padding:6px 5px;width:100%}body.interim-login{height:auto}.interim-login #login{padding:0;margin:5px auto 20px}.interim-login.login h1 a{width:auto}.interim-login #login_error,.interim-login.login .message{margin:0 0 16px}.interim-login.login form{margin:0}@-ms-viewport{width:device-width}@media screen and (max-height:550px){#login{padding:20px 0}}@media screen and (max-width:782px){.interim-login input[type=checkbox]{height:16px;width:16px}.interim-login input[type=checkbox]:checked:before{width:16px;font:400 21px/1 dashicons;margin:-3px -4px 0 0}} \ No newline at end of file diff --git a/wp-admin/css/login.css b/wp-admin/css/login.css index 5da174cad..686be7dde 100644 --- a/wp-admin/css/login.css +++ b/wp-admin/css/login.css @@ -49,6 +49,7 @@ p { } .login .message, +.login .success, .login #login_error { border-left: 4px solid #00a0d2; padding: 12px; @@ -58,6 +59,10 @@ p { box-shadow: 0 1px 1px 0 rgba(0,0,0,0.1); } +.login .success { + border-left-color: #46b450; +} + .login #login_error { border-left-color: #dc3232; } @@ -194,6 +199,12 @@ p { color: #124964; } +.login .privacy-policy-page-link { + text-align: center; + width: 100%; + margin: 5em 0 2em; +} + .login form .input, .login input[type="text"] { font-size: 24px; diff --git a/wp-admin/css/login.min.css b/wp-admin/css/login.min.css index 2aa98f701..e67205578 100644 --- a/wp-admin/css/login.min.css +++ b/wp-admin/css/login.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -#your-profile label+a,.wp-admin select,fieldset label,label{vertical-align:middle}#pass-strength-result,.color-option,input,textarea{box-sizing:border-box}#pressthis-code-wrap,textarea{overflow:auto}.login h1 a,form p.submit a.cancel:hover{text-decoration:none}input[type=text],input[type=search],input[type=radio],input[type=tel],input[type=time],input[type=url],input[type=week],input[type=password],input[type=checkbox],input[type=color],input[type=date],input[type=datetime],input[type=datetime-local],input[type=email],input[type=month],input[type=number],select,textarea{border:1px solid #ddd;box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#32373c;outline:0;transition:50ms border-color ease-in-out}input[type=text]:focus,input[type=search]:focus,input[type=radio]:focus,input[type=tel]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type=password]:focus,input[type=checkbox]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,select:focus,textarea:focus{border-color:#5b9dd9;box-shadow:0 0 2px rgba(30,140,190,.8)}input[type=url],input[type=email]{direction:ltr}input[type=number]{height:28px;line-height:1}input[type=radio],input[type=checkbox]{border:1px solid #b4b9be;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 4px 0 0;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;box-shadow:inset 0 1px 2px rgba(0,0,0,.1);transition:.05s border-color ease-in-out}input[type=radio]:checked+label:before{color:#82878c}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#00a0d2}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox],td>input[type=checkbox]{margin-top:0}.wp-admin p label input[type=checkbox]{margin-top:-4px}.wp-admin p label input[type=radio]{margin-top:-2px}input[type=radio]{border-radius:50%;margin-right:4px;line-height:10px}input[type=radio]:checked:before,input[type=checkbox]:checked:before{float:left;display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#pass1-text,.pw-weak,.show-password #pass1{display:none}input[type=checkbox]:checked:before{content:"\f147";margin:-3px 0 0 -4px;color:#1e8cbe}input[type=radio]:checked:before{content:"\2022";text-indent:-9999px;border-radius:50px;font-size:24px;width:6px;height:6px;margin:4px;line-height:16px;background-color:#1e8cbe}@-moz-document url-prefix(){.form-table input.tog,input[type=radio],input[type=checkbox]{margin-bottom:-1px}}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration{display:none}.ie8 input[type=password]{font-family:sans-serif}button,input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit}input,select,textarea{font-size:14px;border-radius:0}textarea{padding:2px 6px;line-height:1.4;resize:vertical}.wp-admin input[type=file]{padding:3px 0;cursor:pointer}label{cursor:pointer}input,select{margin:1px;padding:3px 5px}input.code{padding-top:6px}textarea.code{line-height:1.4;padding:4px 6px 1px}input.readonly,input[readonly],textarea.readonly,textarea[readonly]{background-color:#eee}::-webkit-input-placeholder{color:#72777c}::-moz-placeholder{color:#72777c;opacity:1}:-ms-input-placeholder{color:#72777c}.form-invalid input,.form-invalid input:focus,.form-invalid select,.form-invalid select:focus{border-color:#dc3232!important;box-shadow:0 0 2px rgba(204,0,0,.8)}.form-table .form-required.form-invalid td:after{content:"\f534";font:400 20px/1 dashicons;color:#dc3232;margin-left:-25px;vertical-align:middle}.form-table .form-required.user-pass1-wrap.form-invalid td:after{content:''}.form-table .form-required.user-pass1-wrap.form-invalid .password-input-wrapper:after{content:'\f534';font:400 20px/1 dashicons;color:#dc3232;margin:0 6px 0 -29px;vertical-align:middle}.form-input-tip{color:#666}input.disabled,input:disabled,select.disabled,select:disabled,textarea.disabled,textarea:disabled{background:rgba(255,255,255,.5);border-color:rgba(222,222,222,.75);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);color:rgba(51,51,51,.5)}input[type=file].disabled,input[type=file]:disabled,input[type=range].disabled,input[type=range]:disabled{background:0 0;box-shadow:none;cursor:default}input[type=radio].disabled,input[type=radio].disabled:checked:before,input[type=radio]:disabled,input[type=radio]:disabled:checked:before,input[type=checkbox].disabled,input[type=checkbox].disabled:checked:before,input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked:before{opacity:.7}.wp-admin select{padding:2px;line-height:28px;height:28px}.wp-admin .button-cancel{padding:0 5px;line-height:2}.meta-box-sortables select{max-width:100%}.wp-admin select[multiple]{height:auto}.submit{padding:1.5em 0;margin:5px 0;border-bottom-left-radius:3px;border-bottom-right-radius:3px;border:none}p.submit{text-align:left;max-width:100%;margin-top:20px;padding-top:10px}.textright p.submit{border:none;text-align:right}table.form-table+input+input+p.submit,table.form-table+input+p.submit,table.form-table+p.submit{border-top:none;padding-top:0}#major-publishing-actions input,#minor-publishing-actions .preview,#minor-publishing-actions input{text-align:center}input.all-options,textarea.all-options{width:250px}input.large-text,textarea.large-text{width:99%}.regular-text{width:25em}input.small-text{width:50px;padding:1px 6px}input[type=number].small-text{width:65px}input.tiny-text{width:35px}input[type=number].tiny-text{width:45px}#doaction,#doaction2,#post-query-submit{margin:1px 8px 0 0}.tablenav #changeit,.tablenav #clear-recent-list,.tablenav #delete_all,.wp-filter #delete_all{margin-top:1px}.tablenav .actions select{float:left;margin-right:6px;max-width:200px}.ie8 .tablenav .actions select{width:155px}.ie8 .tablenav .actions select#cat{width:200px}#timezone_string option{margin-left:1em}button.wp-hide-pw>.dashicons{position:relative;top:3px}#misc-publishing-actions label,.options-media-php label[for*="_size_"]{vertical-align:baseline}#pass-strength-result{background-color:#eee;border:1px solid #ddd;color:#23282d;margin:-2px 5px 5px 1px;padding:3px 5px;text-align:center;width:25em;opacity:0}#pass-strength-result.short{background-color:#f1adad;border-color:#e35b5b;opacity:1}#pass-strength-result.bad{background-color:#fbc5a9;border-color:#f78b53;opacity:1}#pass-strength-result.good{background-color:#ffe399;border-color:#ffc733;opacity:1}#pass-strength-result.strong{background-color:#c1e1b9;border-color:#83c373;opacity:1}#pass1-text.short,#pass1.short{border-color:#e35b5b}#pass1-text.bad,#pass1.bad{border-color:#f78b53}#pass1-text.good,#pass1.good{border-color:#ffc733}#pass1-text.strong,#pass1.strong{border-color:#83c373}.indicator-hint{padding-top:8px}.show-password #pass1-text{display:inline-block}.form-table span.description.important{font-size:12px}p.search-box{float:right;margin:0}.network-admin.themes-php p.search-box{clear:left}.search-box input[name="s"],.tablenav .search-plugins input[name="s"],.tagsdiv .newtag{float:left;height:28px;margin:0 4px 0 0}.js.plugins-php .search-box .wp-filter-search{margin:0;width:280px;font-size:16px;font-weight:300;line-height:1.5;padding:3px 5px;height:32px}input[type=text].ui-autocomplete-loading,input[type=email].ui-autocomplete-loading{background-image:url(../images/loading.gif);background-repeat:no-repeat;background-position:right center;visibility:visible}input.ui-autocomplete-input.open{border-bottom-color:transparent}ul#add-to-blog-users{margin:0 0 0 14px}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;box-shadow:0 1px 2px rgba(30,140,190,.8);background-color:#fff}.ui-autocomplete li{margin-bottom:0;padding:4px 10px;white-space:nowrap;text-align:left;cursor:pointer}.ui-autocomplete .ui-state-focus{background-color:#ddd}.wp-tags-autocomplete .ui-state-focus{background-color:#0073aa;color:#fff}.form-table{border-collapse:collapse;margin-top:.5em;width:100%;clear:both}.form-table,.form-table td,.form-table td p,.form-table th{font-size:14px}.form-table td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle}.form-table th,.form-wrap label{color:#23282d;font-weight:400;text-shadow:none;vertical-align:baseline}.form-table th{vertical-align:top;text-align:left;padding:20px 10px 20px 0;width:200px;line-height:1.3;font-weight:600}.form-table .td-full,.form-table th.th-full{width:auto;padding:20px 10px 20px 0;font-weight:400}.form-table td p{margin-top:4px;margin-bottom:0}.form-table .date-time-doc{margin-top:1em}.form-table p.timezone-info{margin:1em 0}.form-table td fieldset label{margin:.25em 0 .5em!important;display:inline-block}.form-table td fieldset label,.form-table td fieldset li,.form-table td fieldset p{line-height:1.4em}.form-table input.tog,.form-table input[type=radio]{margin-top:-4px;margin-right:4px;float:none}.form-table .pre{padding:8px;margin:0}table.form-table td .updated{font-size:13px}table.form-table td .updated p{font-size:13px;margin:.3em 0}#profile-page .form-table textarea{width:500px;margin-bottom:6px}#profile-page .form-table #rich_editing{margin-right:5px}#your-profile legend{font-size:22px}#display_name{width:15em}#adduser .form-field input,#createuser .form-field input{width:25em}.color-option{display:inline-block;width:24%;padding:5px 15px 15px;margin-bottom:3px;cursor:pointer}.color-option.selected,.color-option:hover{background:#ddd}.color-palette{width:100%;border-spacing:0;border-collapse:collapse}.color-palette td{height:20px;padding:0;border:none}.tool-box .title{margin:8px 0;font-size:18px;font-weight:400;line-height:24px}.label-responsive{vertical-align:middle}#export-filters p{margin:0 0 1em}#export-filters p.submit{margin:7px 0 5px}.card{position:relative;margin-top:20px;padding:.7em 2em 1em;min-width:255px;max-width:520px;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}.pressthis h4{margin:2em 0 1em}.pressthis textarea{width:100%;font-size:1em}.login form,.login h1 a{overflow:hidden;font-weight:400}.pressthis-bookmarklet-wrapper{margin:20px 0 8px;vertical-align:top;position:relative;z-index:1}.pressthis-bookmarklet,.pressthis-bookmarklet:active,.pressthis-bookmarklet:focus,.pressthis-bookmarklet:hover{display:inline-block;position:relative;cursor:move;color:#32373c;background:#e5e5e5;border-radius:5px;border:1px solid #b4b9be;font-style:normal;line-height:16px;font-size:14px;text-decoration:none}.pressthis-bookmarklet:active{outline:0}.pressthis-bookmarklet:after{content:"";width:70%;height:55%;z-index:-1;position:absolute;right:10px;bottom:9px;background:0 0;-webkit-transform:skew(20deg) rotate(6deg);transform:skew(20deg) rotate(6deg);box-shadow:0 10px 8px rgba(0,0,0,.6)}.pressthis-bookmarklet:hover:after{-webkit-transform:skew(20deg) rotate(9deg);transform:skew(20deg) rotate(9deg);box-shadow:0 10px 8px rgba(0,0,0,.7)}.pressthis-bookmarklet span{display:inline-block;margin:0;padding:0 12px 8px 9px}.pressthis-bookmarklet span:before{color:#72777c;font:400 20px/1 dashicons;content:"\f157";position:relative;display:inline-block;top:4px;margin-right:4px}.pressthis-js-toggle,.pressthis-js-toggle.button.button{margin-left:10px;padding:0;height:auto;vertical-align:top}.pressthis-js-toggle .dashicons{margin:5px 8px 6px 7px;color:#555d66}.timezone-info code{white-space:nowrap}.defaultavatarpicker .avatar{margin:2px 0;vertical-align:middle}.options-general-php .date-time-text{display:inline-block;min-width:10em}.options-general-php input.small-text{width:56px}.options-general-php .spinner{float:none;margin:-3px 3px 0}.options-general-php .language-install-spinner,.settings-php .language-install-spinner{display:inline-block;float:none;margin:-3px 5px 0;vertical-align:middle}.form-table.permalink-structure .available-structure-tags li{float:left;margin-right:5px}.setup-php textarea{max-width:100%}.form-field #site-address{max-width:25em}.form-field #domain{max-width:22em}.form-field #admin-email,.form-field #blog_last_updated,.form-field #blog_registered,.form-field #path,.form-field #site-title{max-width:25em}.form-field #path{margin-bottom:5px}#search-sites,#search-users{max-width:100%}.request-filesystem-credentials-dialog{display:none;visibility:visible}.request-filesystem-credentials-dialog .notification-dialog{top:10%;max-height:85%}.request-filesystem-credentials-dialog-content{margin:25px}#request-filesystem-credentials-title{font-size:1.3em;margin:1em 0}.request-filesystem-credentials-form legend{font-size:1em;padding:1.33em 0 0;font-weight:600}.request-filesystem-credentials-form input[type=text],.request-filesystem-credentials-form input[type=password]{display:block}.request-filesystem-credentials-dialog input[type=text],.request-filesystem-credentials-dialog input[type=password]{width:100%}.request-filesystem-credentials-form .field-title{font-weight:600}.request-filesystem-credentials-dialog label[for=hostname],.request-filesystem-credentials-dialog label[for=public_key],.request-filesystem-credentials-dialog label[for=private_key]{display:block;margin-bottom:1em}.request-filesystem-credentials-dialog .request-filesystem-credentials-action-buttons{text-align:right}.request-filesystem-credentials-dialog label[for=ftp]{margin-right:10px}.request-filesystem-credentials-dialog #auth-keys-desc{margin-bottom:0}#request-filesystem-credentials-dialog .button:not(:last-child){margin-right:10px}#request-filesystem-credentials-form .cancel-button{display:none}#request-filesystem-credentials-dialog .cancel-button{display:inline}.request-filesystem-credentials-dialog .ftp-password,.request-filesystem-credentials-dialog .ftp-username{float:none;width:auto}.request-filesystem-credentials-dialog .ftp-username{margin-bottom:1em}.request-filesystem-credentials-dialog .ftp-password{margin:0}.request-filesystem-credentials-dialog .ftp-password em{color:#888}.request-filesystem-credentials-dialog label{display:block;line-height:1.5;margin-bottom:1em}.request-filesystem-credentials-form #ssh-keys legend{font-size:1.3em}.request-filesystem-credentials-form .notice{margin:0 0 20px;clear:both}@media screen and (max-width:782px){#pass-strength-result,.form-table{box-sizing:border-box}textarea{-webkit-appearance:none}input[type=text],input[type=search],input[type=password],input[type=email],input[type=number]{-webkit-appearance:none;padding:6px 10px}input[type=number]{height:40px}input.code{padding-bottom:5px;padding-top:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox],input[type=checkbox]{-webkit-appearance:none;padding:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox]{margin-bottom:8px}.widefat tfoot td input[type=checkbox]:before,.widefat th input[type=checkbox]:before,.widefat thead td input[type=checkbox]:before,input[type=checkbox]:checked:before{font:400 30px/1 dashicons;margin:-3px -5px}input[type=radio],input[type=checkbox]{height:25px;width:25px}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox]{margin-top:-3px}input[type=radio]:checked:before{vertical-align:middle;width:9px;height:9px;margin:7px;line-height:16px}.wp-upload-form input[type=submit]{margin-top:10px}#wpbody select{height:36px;font-size:16px}.wp-admin .button-cancel{padding:0;font-size:14px}#adduser .form-field input,#createuser .form-field input{width:100%}.form-table td,.form-table th,.label-responsive{display:block;width:auto;vertical-align:middle}.label-responsive{margin:.5em 0}.export-filters li{margin-bottom:0}.form-table .color-palette td{display:table-cell;width:15px}.form-table table.color-palette{margin-right:10px}input,textarea{font-size:16px}#profile-page .form-table textarea,.form-table span.description,.form-table td input[type=text],.form-table td input[type=password],.form-table td input[type=email],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;box-sizing:border-box}.form-table .form-required.form-invalid td:after{float:right;margin:-30px 3px 0 0}#wpbody .form-table td select{height:40px}.form-table input[type=text].small-text,input[type=text].small-text,input[type=search].small-text,input[type=password].small-text,input[type=number].small-text{width:auto;max-width:4.375em;display:inline;padding:3px 6px;margin:0 3px}#pass-strength-result{width:100%;padding:8px}p.search-box{float:none;position:absolute;bottom:0;width:98%;height:90px;margin-bottom:20px}p.search-box input[name="s"]{height:auto;float:none;width:100%;margin-bottom:10px;vertical-align:middle;-webkit-appearance:none}p.search-box input[type=submit]{margin-bottom:10px}.form-table span.description{display:inline;padding:4px 0 0;line-height:1.4em;font-size:14px}.form-table th{padding-top:10px;padding-bottom:0;border-bottom:0}.form-table td{margin-bottom:0;padding-bottom:6px;padding-top:4px;padding-left:0}.form-table.permalink-structure td code{margin-left:32px}.form-table.permalink-structure td input[type=text]{margin-left:32px;margin-top:4px;width:96%}.form-table input.regular-text{width:100%}.form-table label{font-size:14px}.form-table fieldset label{display:block}#local-time,#utc-time{display:block;float:none;margin-top:.5em}.form-field #domain{max-width:none}.wp-pwd{position:relative}.wp-pwd [type=text],.wp-pwd [type=password]{padding-right:40px}.wp-pwd button.button{background:0 0;border:none;box-shadow:none;line-height:2;margin:0;padding:5px 10px;position:absolute;right:0;top:0}.wp-pwd button.button:active,.wp-pwd button.button:focus,.wp-pwd button.button:hover{background:0 0}.wp-pwd .button .text{display:none}.options-general-php input[type=text].small-text{max-width:6.25em;margin:0}}.locale-he-il em,.locale-zh-cn #local-time,.locale-zh-cn #utc-time,.locale-zh-cn .form-wrap p,.locale-zh-cn .howto,.locale-zh-cn .inline-edit-row fieldset span.checkbox-title,.locale-zh-cn .inline-edit-row fieldset span.title,.locale-zh-cn .js .input-with-default-title,.locale-zh-cn .link-to-original,.locale-zh-cn .tablenav .displaying-num,.locale-zh-cn p.description,.locale-zh-cn p.help,.locale-zh-cn p.install-help,.locale-zh-cn span.description{font-style:normal}@media only screen and (max-width:768px){.form-field input[type=text],.form-field input[type=password],.form-field input[type=email],.form-field select,.form-field textarea{width:99%}.form-wrap .form-field{padding:0}#profile-page .form-table textarea{max-width:400px;width:auto}}.locale-de-de #customize-header-actions .button,.locale-de-de-formal #customize-header-actions .button,.locale-ru-ru #customize-header-actions .button{padding:0 5px 1px}@media only screen and (max-height:480px),screen and (max-width:450px){.file-editor-warning .notification-dialog,.request-filesystem-credentials-dialog .notification-dialog{width:100%;height:100%;max-height:100%;position:fixed;top:0;margin:0;left:0}}@media screen and (max-width:600px){.color-option{width:49%}}@media only screen and (max-width:320px){.options-general-php .date-time-text.date-time-custom-text{min-width:0;margin-right:.5em}}body.rtl,body.rtl .press-this a.wp-switch-editor{font-family:Tahoma,Arial,sans-serif}.rtl h1,.rtl h2,.rtl h3,.rtl h4,.rtl h5,.rtl h6{font-family:Arial,sans-serif;font-weight:600}body.locale-he-il,body.locale-he-il .press-this a.wp-switch-editor{font-family:Arial,sans-serif}.locale-he-il em{font-weight:600}.locale-zh-cn .hdnle a{font-size:12px}.locale-zh-cn form.upgrade .hint{font-style:normal;font-size:100%}.locale-zh-cn #sort-buttons{font-size:1em!important}.locale-de-de #customize-header-actions .spinner,.locale-de-de-formal #customize-header-actions .spinner{margin:16px 3px 0}.locale-ru-ru #adminmenu{width:inherit}.locale-ru-ru #adminmenu,.locale-ru-ru #wpbody{margin-left:0}.locale-ru-ru .inline-edit-row fieldset label span.title,.locale-ru-ru .inline-edit-row fieldset.inline-edit-date legend{width:8em}.locale-ru-ru .inline-edit-row fieldset .timestamp-wrap,.locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap{margin-left:8em}.locale-ru-ru.post-new-php .tagsdiv .newtag,.locale-ru-ru.post-php .tagsdiv .newtag{width:165px}.locale-ru-ru.press-this .posting{margin-right:277px}.locale-ru-ru .press-this-sidebar{width:265px}.locale-ru-ru #customize-header-actions .spinner{margin:16px 3px 0}.locale-lt-lt .inline-edit-row fieldset label span.title,.locale-lt-lt .inline-edit-row fieldset.inline-edit-date legend{width:8em}.locale-lt-lt .inline-edit-row fieldset .timestamp-wrap,.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap{margin-left:8em}@media screen and (max-width:782px){.locale-lt-lt .inline-edit-row fieldset .timestamp-wrap,.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap,.locale-ru-ru .inline-edit-row fieldset .timestamp-wrap,.locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap{margin-left:0}}body,html{height:100%;margin:0;padding:0}body{background:#f1f1f1;min-width:0;color:#444;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:13px;line-height:1.4em}a{color:#0073aa;transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out;outline:0}a:active,a:hover{color:#00a0d2}a:focus{color:#124964;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ie8 a:focus{outline:#5b9dd9 solid 1px}p{line-height:1.5}.login #login_error,.login .message{border-left:4px solid #00a0d2;padding:12px;margin-left:0;margin-bottom:20px;background-color:#fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.login #login_error{border-left-color:#dc3232}#loginform p.submit,.login-action-lostpassword p.submit{border:none;margin:-10px 0 20px}.login *{margin:0;padding:0}.login .password-input-wrapper{display:table}.login .input.password-input{display:table-cell;margin:0}.login .pw-weak{margin-bottom:15px}.login .button.button-secondary{display:table-cell;border-radius:0;vertical-align:middle}.login form{margin-top:20px;margin-left:0;padding:26px 24px 46px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.13)}.login form .forgetmenot{font-weight:400;float:left;margin-bottom:0}.login .button-primary{float:right}#login form p{margin-bottom:0}#login form p.submit{margin:0;padding:0}.login label{color:#72777c;font-size:14px}.login form .forgetmenot label{font-size:12px;line-height:19px}.login h1{text-align:center}.login h1 a{background-image:url(../images/w-logo-blue.png?ver=20131202);background-image:none,url(../images/wordpress-logo.svg?ver=20131107);background-size:84px;background-position:center top;background-repeat:no-repeat;color:#444;height:84px;font-size:20px;line-height:1.3em;margin:0 auto 25px;padding:0;width:84px;text-indent:-9999px;outline:0;display:block}#login{width:320px;padding:8% 0 0;margin:auto}.login #backtoblog,.login #nav{font-size:13px;padding:0 24px}.login #nav{margin:24px 0 0}#backtoblog{margin:16px 0}.login #backtoblog a,.login #nav a{text-decoration:none;color:#555d66}.login #backtoblog a:hover,.login #nav a:hover,.login h1 a:hover{color:#00a0d2}.login #backtoblog a:focus,.login #nav a:focus,.login h1 a:focus{color:#124964}.login form .input,.login input[type=text]{font-size:24px;width:100%;padding:3px;margin:2px 6px 16px 0}.login form .input,.login form input[type=checkbox],.login input[type=text]{background:#fbfbfb}.ie7 .login form .input,.ie8 .login form .input{font-family:sans-serif}.login-action-rp input[type=text]{box-shadow:none;margin:0}.login #pass-strength-result{font-weight:600;margin:-1px 5px 16px 0;padding:6px 5px;text-align:center;width:100%}body.interim-login{height:auto}.interim-login #login{padding:0;margin:5px auto 20px}.interim-login.login h1 a{width:auto}.interim-login #login_error,.interim-login.login .message{margin:0 0 16px}.interim-login.login form{margin:0}@-ms-viewport{width:device-width}@media screen and (max-height:550px){#login{padding:20px 0}}@media screen and (max-width:782px){.interim-login input[type=checkbox]{height:16px;width:16px}.interim-login input[type=checkbox]:checked:before{width:16px;font:400 21px/1 dashicons;margin:-3px 0 0 -4px}} \ No newline at end of file +#your-profile label+a,.wp-admin select,fieldset label,label{vertical-align:middle}#pass-strength-result,.color-option,input,textarea{box-sizing:border-box}#pressthis-code-wrap,textarea{overflow:auto}.login h1 a,form p.submit a.cancel:hover{text-decoration:none}input[type=text],input[type=search],input[type=radio],input[type=tel],input[type=time],input[type=url],input[type=week],input[type=password],input[type=checkbox],input[type=color],input[type=date],input[type=datetime],input[type=datetime-local],input[type=email],input[type=month],input[type=number],select,textarea{border:1px solid #ddd;box-shadow:inset 0 1px 2px rgba(0,0,0,.07);background-color:#fff;color:#32373c;outline:0;transition:50ms border-color ease-in-out}input[type=text]:focus,input[type=search]:focus,input[type=radio]:focus,input[type=tel]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus,input[type=password]:focus,input[type=checkbox]:focus,input[type=color]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,select:focus,textarea:focus{border-color:#5b9dd9;box-shadow:0 0 2px rgba(30,140,190,.8)}input[type=url],input[type=email]{direction:ltr}input[type=number]{height:28px;line-height:1}input[type=radio],input[type=checkbox]{border:1px solid #b4b9be;background:#fff;color:#555;clear:none;cursor:pointer;display:inline-block;line-height:0;height:16px;margin:-4px 4px 0 0;outline:0;padding:0!important;text-align:center;vertical-align:middle;width:16px;min-width:16px;-webkit-appearance:none;box-shadow:inset 0 1px 2px rgba(0,0,0,.1);transition:.05s border-color ease-in-out}input[type=radio]:checked+label:before{color:#82878c}.wp-core-ui input[type=reset]:active,.wp-core-ui input[type=reset]:hover{color:#00a0d2}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox],td>input[type=checkbox]{margin-top:0}.wp-admin p label input[type=checkbox]{margin-top:-4px}.wp-admin p label input[type=radio]{margin-top:-2px}input[type=radio]{border-radius:50%;margin-right:4px;line-height:10px}input[type=radio]:checked:before,input[type=checkbox]:checked:before{float:left;display:inline-block;vertical-align:middle;width:16px;font:400 21px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#pass1-text,.pw-weak,.show-password #pass1{display:none}input[type=checkbox]:checked:before{content:"\f147";margin:-3px 0 0 -4px;color:#1e8cbe}input[type=radio]:checked:before{content:"\2022";text-indent:-9999px;border-radius:50px;font-size:24px;width:6px;height:6px;margin:4px;line-height:16px;background-color:#1e8cbe}@-moz-document url-prefix(){.form-table input.tog,input[type=radio],input[type=checkbox]{margin-bottom:-1px}}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-decoration{display:none}.ie8 input[type=password]{font-family:sans-serif}button,input,select,textarea{font-family:inherit;font-size:inherit;font-weight:inherit}input,select,textarea{font-size:14px;border-radius:0}textarea{padding:2px 6px;line-height:1.4;resize:vertical}.wp-admin input[type=file]{padding:3px 0;cursor:pointer}label{cursor:pointer}input,select{margin:1px;padding:3px 5px}input.code{padding-top:6px}textarea.code{line-height:1.4;padding:4px 6px 1px}input.readonly,input[readonly],textarea.readonly,textarea[readonly]{background-color:#eee}::-webkit-input-placeholder{color:#72777c}::-moz-placeholder{color:#72777c;opacity:1}:-ms-input-placeholder{color:#72777c}.form-invalid input,.form-invalid input:focus,.form-invalid select,.form-invalid select:focus{border-color:#dc3232!important;box-shadow:0 0 2px rgba(204,0,0,.8)}.form-table .form-required.form-invalid td:after{content:"\f534";font:400 20px/1 dashicons;color:#dc3232;margin-left:-25px;vertical-align:middle}.form-table .form-required.user-pass1-wrap.form-invalid td:after{content:''}.form-table .form-required.user-pass1-wrap.form-invalid .password-input-wrapper:after{content:'\f534';font:400 20px/1 dashicons;color:#dc3232;margin:0 6px 0 -29px;vertical-align:middle}.form-input-tip{color:#666}input.disabled,input:disabled,select.disabled,select:disabled,textarea.disabled,textarea:disabled{background:rgba(255,255,255,.5);border-color:rgba(222,222,222,.75);box-shadow:inset 0 1px 2px rgba(0,0,0,.04);color:rgba(51,51,51,.5)}input[type=file].disabled,input[type=file]:disabled,input[type=range].disabled,input[type=range]:disabled{background:0 0;box-shadow:none;cursor:default}input[type=radio].disabled,input[type=radio].disabled:checked:before,input[type=radio]:disabled,input[type=radio]:disabled:checked:before,input[type=checkbox].disabled,input[type=checkbox].disabled:checked:before,input[type=checkbox]:disabled,input[type=checkbox]:disabled:checked:before{opacity:.7}.wp-admin select{padding:2px;line-height:28px;height:28px}.wp-admin .button-cancel{padding:0 5px;line-height:2}.meta-box-sortables select{max-width:100%}.wp-admin select[multiple]{height:auto}.submit{padding:1.5em 0;margin:5px 0;border-bottom-left-radius:3px;border-bottom-right-radius:3px;border:none}p.submit{text-align:left;max-width:100%;margin-top:20px;padding-top:10px}.textright p.submit{border:none;text-align:right}table.form-table+input+input+p.submit,table.form-table+input+p.submit,table.form-table+p.submit{border-top:none;padding-top:0}#major-publishing-actions input,#minor-publishing-actions .preview,#minor-publishing-actions input{text-align:center}input.all-options,textarea.all-options{width:250px}input.large-text,textarea.large-text{width:99%}.regular-text{width:25em}input.small-text{width:50px;padding:1px 6px}input[type=number].small-text{width:65px}input.tiny-text{width:35px}input[type=number].tiny-text{width:45px}#doaction,#doaction2,#post-query-submit{margin:1px 8px 0 0}.tablenav #changeit,.tablenav #clear-recent-list,.tablenav #delete_all,.wp-filter #delete_all{margin-top:1px}.tablenav .actions select{float:left;margin-right:6px;max-width:200px}.ie8 .tablenav .actions select{width:155px}.ie8 .tablenav .actions select#cat{width:200px}#timezone_string option{margin-left:1em}button.wp-hide-pw>.dashicons{position:relative;top:3px}.options-media-php [for*="_size_"]{min-width:10em;vertical-align:baseline}.options-media-php .small-text[name*="_size_"]{margin:0 0 1em}#misc-publishing-actions label{vertical-align:baseline}#pass-strength-result{background-color:#eee;border:1px solid #ddd;color:#23282d;margin:-2px 5px 5px 1px;padding:3px 5px;text-align:center;width:25em;opacity:0}#pass-strength-result.short{background-color:#f1adad;border-color:#e35b5b;opacity:1}#pass-strength-result.bad{background-color:#fbc5a9;border-color:#f78b53;opacity:1}#pass-strength-result.good{background-color:#ffe399;border-color:#ffc733;opacity:1}#pass-strength-result.strong{background-color:#c1e1b9;border-color:#83c373;opacity:1}#pass1-text.short,#pass1.short{border-color:#e35b5b}#pass1-text.bad,#pass1.bad{border-color:#f78b53}#pass1-text.good,#pass1.good{border-color:#ffc733}#pass1-text.strong,#pass1.strong{border-color:#83c373}.indicator-hint{padding-top:8px}.show-password #pass1-text{display:inline-block}.form-table span.description.important{font-size:12px}p.search-box{float:right;margin:0}.network-admin.themes-php p.search-box{clear:left}.search-box input[name="s"],.tablenav .search-plugins input[name="s"],.tagsdiv .newtag{float:left;height:28px;margin:0 4px 0 0}.js.plugins-php .search-box .wp-filter-search{margin:0;width:280px;font-size:16px;font-weight:300;line-height:1.5;padding:3px 5px;height:32px}input[type=text].ui-autocomplete-loading,input[type=email].ui-autocomplete-loading{background-image:url(../images/loading.gif);background-repeat:no-repeat;background-position:right center;visibility:visible}input.ui-autocomplete-input.open{border-bottom-color:transparent}ul#add-to-blog-users{margin:0 0 0 14px}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;border:1px solid #5b9dd9;box-shadow:0 1px 2px rgba(30,140,190,.8);background-color:#fff}.ui-autocomplete li{margin-bottom:0;padding:4px 10px;white-space:nowrap;text-align:left;cursor:pointer}.ui-autocomplete .ui-state-focus{background-color:#ddd}.wp-tags-autocomplete .ui-state-focus{background-color:#0073aa;color:#fff}.form-table{border-collapse:collapse;margin-top:.5em;width:100%;clear:both}.form-table,.form-table td,.form-table td p,.form-table th{font-size:14px}.form-table td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle}.form-table th,.form-wrap label{color:#23282d;font-weight:400;text-shadow:none;vertical-align:baseline}.form-table th{vertical-align:top;text-align:left;padding:20px 10px 20px 0;width:200px;line-height:1.3;font-weight:600}.form-table .td-full,.form-table th.th-full{width:auto;padding:20px 10px 20px 0;font-weight:400}.form-table td p{margin-top:4px;margin-bottom:0}.form-table .date-time-doc{margin-top:1em}.form-table p.timezone-info{margin:1em 0}.form-table td fieldset label{margin:.25em 0 .5em!important;display:inline-block}.form-table td fieldset label,.form-table td fieldset li,.form-table td fieldset p{line-height:1.4em}.form-table input.tog,.form-table input[type=radio]{margin-top:-4px;margin-right:4px;float:none}.form-table .pre{padding:8px;margin:0}table.form-table td .updated{font-size:13px}table.form-table td .updated p{font-size:13px;margin:.3em 0}#profile-page .form-table textarea{width:500px;margin-bottom:6px}#profile-page .form-table #rich_editing{margin-right:5px}#your-profile legend{font-size:22px}#display_name{width:15em}#adduser .form-field input,#createuser .form-field input{width:25em}.color-option{display:inline-block;width:24%;padding:5px 15px 15px;margin-bottom:3px;cursor:pointer}.color-option.selected,.color-option:hover{background:#ddd}.color-palette{width:100%;border-spacing:0;border-collapse:collapse}.color-palette td{height:20px;padding:0;border:none}.tool-box .title{margin:8px 0;font-size:18px;font-weight:400;line-height:24px}.label-responsive{vertical-align:middle}#export-filters p{margin:0 0 1em}#export-filters p.submit{margin:7px 0 5px}.card{position:relative;margin-top:20px;padding:.7em 2em 1em;min-width:255px;max-width:520px;border:1px solid #e5e5e5;box-shadow:0 1px 1px rgba(0,0,0,.04);background:#fff}.pressthis h4{margin:2em 0 1em}.pressthis textarea{width:100%;font-size:1em}.login form,.login h1 a{overflow:hidden;font-weight:400}.pressthis-bookmarklet-wrapper{margin:20px 0 8px;vertical-align:top;position:relative;z-index:1}.pressthis-bookmarklet,.pressthis-bookmarklet:active,.pressthis-bookmarklet:focus,.pressthis-bookmarklet:hover{display:inline-block;position:relative;cursor:move;color:#32373c;background:#e5e5e5;border-radius:5px;border:1px solid #b4b9be;font-style:normal;line-height:16px;font-size:14px;text-decoration:none}.privacy_requests tbody th,.privacy_requests tfoot td:first-child,.privacy_requests thead td:first-child{border-left:4px solid #fff}.pressthis-bookmarklet:active{outline:0}.pressthis-bookmarklet:after{content:"";width:70%;height:55%;z-index:-1;position:absolute;right:10px;bottom:9px;background:0 0;-webkit-transform:skew(20deg) rotate(6deg);transform:skew(20deg) rotate(6deg);box-shadow:0 10px 8px rgba(0,0,0,.6)}.pressthis-bookmarklet:hover:after{-webkit-transform:skew(20deg) rotate(9deg);transform:skew(20deg) rotate(9deg);box-shadow:0 10px 8px rgba(0,0,0,.7)}.pressthis-bookmarklet span{display:inline-block;margin:0;padding:0 12px 8px 9px}.pressthis-bookmarklet span:before{color:#72777c;font:400 20px/1 dashicons;content:"\f157";position:relative;display:inline-block;top:4px;margin-right:4px}.pressthis-js-toggle,.pressthis-js-toggle.button.button{margin-left:10px;padding:0;height:auto;vertical-align:top}.pressthis-js-toggle .dashicons{margin:5px 8px 6px 7px;color:#555d66}.timezone-info code{white-space:nowrap}.defaultavatarpicker .avatar{margin:2px 0;vertical-align:middle}.options-general-php .date-time-text{display:inline-block;min-width:10em}.options-general-php input.small-text{width:56px}.options-general-php .spinner{float:none;margin:-3px 3px 0}.options-general-php .language-install-spinner,.settings-php .language-install-spinner{display:inline-block;float:none;margin:-3px 5px 0;vertical-align:middle}.form-table.permalink-structure .available-structure-tags li{float:left;margin-right:5px}.setup-php textarea{max-width:100%}.form-field #site-address{max-width:25em}.form-field #domain{max-width:22em}.form-field #admin-email,.form-field #blog_last_updated,.form-field #blog_registered,.form-field #path,.form-field #site-title{max-width:25em}.form-field #path{margin-bottom:5px}#search-sites,#search-users{max-width:100%}.request-filesystem-credentials-dialog{display:none;visibility:visible}.request-filesystem-credentials-dialog .notification-dialog{top:10%;max-height:85%}.request-filesystem-credentials-dialog-content{margin:25px}#request-filesystem-credentials-title{font-size:1.3em;margin:1em 0}.request-filesystem-credentials-form legend{font-size:1em;padding:1.33em 0 0;font-weight:600}.request-filesystem-credentials-form input[type=text],.request-filesystem-credentials-form input[type=password]{display:block}.request-filesystem-credentials-dialog input[type=text],.request-filesystem-credentials-dialog input[type=password]{width:100%}.request-filesystem-credentials-form .field-title{font-weight:600}.request-filesystem-credentials-dialog label[for=hostname],.request-filesystem-credentials-dialog label[for=public_key],.request-filesystem-credentials-dialog label[for=private_key]{display:block;margin-bottom:1em}.request-filesystem-credentials-dialog .request-filesystem-credentials-action-buttons{text-align:right}.login #pass-strength-result,.login h1,.privacy_requests .column-type{text-align:center}.request-filesystem-credentials-dialog label[for=ftp]{margin-right:10px}.request-filesystem-credentials-dialog #auth-keys-desc{margin-bottom:0}#request-filesystem-credentials-dialog .button:not(:last-child){margin-right:10px}#request-filesystem-credentials-form .cancel-button{display:none}#request-filesystem-credentials-dialog .cancel-button{display:inline}.request-filesystem-credentials-dialog .ftp-password,.request-filesystem-credentials-dialog .ftp-username{float:none;width:auto}.request-filesystem-credentials-dialog .ftp-username{margin-bottom:1em}.request-filesystem-credentials-dialog .ftp-password{margin:0}.request-filesystem-credentials-dialog .ftp-password em{color:#888}.request-filesystem-credentials-dialog label{display:block;line-height:1.5;margin-bottom:1em}.request-filesystem-credentials-form #ssh-keys legend{font-size:1.3em}.request-filesystem-credentials-form .notice{margin:0 0 20px;clear:both}.tools-privacy-policy-page form{margin-bottom:1.3em}.tools-privacy-policy-page input.button,.tools-privacy-policy-page select{margin-left:6px}.tools-privacy-edit{margin:1.5em 0}.tools-privacy-policy-page span{line-height:2em}.privacy_requests .column-email{width:40%}.privacy_requests tbody th{background:#fff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.privacy_requests tbody .has-request-results th{box-shadow:none}.privacy_requests tbody .request-results th .notice{margin:0 0 5px}.privacy_requests tbody td{background:#fff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.1)}.privacy_requests tbody .has-request-results td{box-shadow:none}.privacy_requests .next_steps .button{height:auto;line-height:1.5;padding:4px 10px;word-break:break-all;white-space:unset}.privacy_requests .status-request-confirmed td,.privacy_requests .status-request-confirmed th{background-color:#f7fcfe;border-left-color:#00a0d2}.privacy_requests .status-request-failed td,.privacy_requests .status-request-failed th{background-color:#fef7f1;border-left-color:#d64d21}.privacy_requests .export_personal_data_failed a{vertical-align:baseline}.status-label{font-weight:700}.status-label.status-request-pending{font-weight:400;font-style:italic;color:#6c7781}.status-label.status-request-failed{color:#a00;font-weight:700}.wp-privacy-request-form{clear:both}.wp-privacy-request-form-field{margin:1.5em 0}.wp-privacy-request-form label{font-weight:700;line-height:1.5;padding-bottom:.5em;display:block}.wp-privacy-request-form input{line-height:1.5;margin:0}.email-personal-data::before{display:inline-block;font:400 20px/1 dashicons;margin:3px 5px 0 -2px;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top}.email-personal-data--sending::before{color:#f56e28;content:"\f463";-webkit-animation:rotation 2s infinite linear;animation:rotation 2s infinite linear}.email-personal-data--sent::before{color:#79ba49;content:"\f147"}@media screen and (max-width:782px){#pass-strength-result,.form-table{box-sizing:border-box}textarea{-webkit-appearance:none}input[type=text],input[type=search],input[type=password],input[type=email],input[type=number]{-webkit-appearance:none;padding:6px 10px}input[type=number]{height:40px}input.code{padding-bottom:5px;padding-top:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox],input[type=checkbox]{-webkit-appearance:none;padding:10px}.widefat tfoot td input[type=checkbox],.widefat th input[type=checkbox],.widefat thead td input[type=checkbox]{margin-bottom:8px}.widefat tfoot td input[type=checkbox]:before,.widefat th input[type=checkbox]:before,.widefat thead td input[type=checkbox]:before,input[type=checkbox]:checked:before{font:400 30px/1 dashicons;margin:-3px -5px}input[type=radio],input[type=checkbox]{height:25px;width:25px}.wp-admin p input[type=radio],.wp-admin p input[type=checkbox]{margin-top:-3px}input[type=radio]:checked:before{vertical-align:middle;width:9px;height:9px;margin:7px;line-height:16px}.wp-upload-form input[type=submit]{margin-top:10px}#wpbody select{height:36px;font-size:16px}.wp-admin .button-cancel{padding:0;font-size:14px}#adduser .form-field input,#createuser .form-field input{width:100%}.form-table td,.form-table th,.label-responsive{display:block;width:auto;vertical-align:middle}.label-responsive{margin:.5em 0}.export-filters li{margin-bottom:0}.form-table .color-palette td{display:table-cell;width:15px}.form-table table.color-palette{margin-right:10px}input,textarea{font-size:16px}#profile-page .form-table textarea,.form-table span.description,.form-table td input[type=text],.form-table td input[type=password],.form-table td input[type=email],.form-table td select,.form-table td textarea{width:100%;font-size:16px;line-height:1.5;padding:7px 10px;display:block;max-width:none;box-sizing:border-box}.form-table .form-required.form-invalid td:after{float:right;margin:-30px 3px 0 0}#wpbody .form-table td select{height:40px}.form-table input[type=text].small-text,input[type=text].small-text,input[type=search].small-text,input[type=password].small-text,input[type=number].small-text{width:auto;max-width:4.375em;display:inline;padding:3px 6px;margin:0 3px}#pass-strength-result{width:100%;padding:8px}p.search-box{float:none;position:absolute;bottom:0;width:98%;height:90px;margin-bottom:20px}p.search-box input[name="s"]{height:auto;float:none;width:100%;margin-bottom:10px;vertical-align:middle;-webkit-appearance:none}p.search-box input[type=submit]{margin-bottom:10px}.form-table span.description{display:inline;padding:4px 0 0;line-height:1.4em;font-size:14px}.form-table th{padding-top:10px;padding-bottom:0;border-bottom:0}.form-table td{margin-bottom:0;padding-bottom:6px;padding-top:4px;padding-left:0}.form-table.permalink-structure td code{margin-left:32px}.form-table.permalink-structure td input[type=text]{margin-left:32px;margin-top:4px;width:96%}.form-table input.regular-text{width:100%}.form-table label{font-size:14px}.form-table fieldset label{display:block}#local-time,#utc-time{display:block;float:none;margin-top:.5em}.form-field #domain{max-width:none}.wp-pwd{position:relative}.wp-pwd [type=text],.wp-pwd [type=password]{padding-right:40px}.wp-pwd button.button{background:0 0;border:none;box-shadow:none;line-height:2;margin:0;padding:5px 10px;position:absolute;right:0;top:0}.wp-pwd button.button:active,.wp-pwd button.button:focus,.wp-pwd button.button:hover{background:0 0}.wp-pwd .button .text{display:none}.options-general-php input[type=text].small-text{max-width:6.25em;margin:0}.tools-privacy-policy-page form.wp-create-privacy-page{margin-bottom:1em}.tools-privacy-policy-page input#set-page,.tools-privacy-policy-page select{margin:10px 0 0}.tools-privacy-policy-page .wp-create-privacy-page span{display:block;margin-bottom:1em}.tools-privacy-policy-page .wp-create-privacy-page .button{margin-left:0}.wp-list-table.privacy_requests tr:not(.inline-edit-row):not(.no-items) td.column-primary:not(.check-column){display:table-cell}.wp-list-table.privacy_requests.widefat th input,.wp-list-table.privacy_requests.widefat thead td input{margin-left:5px}}.locale-he-il em,.locale-zh-cn #local-time,.locale-zh-cn #utc-time,.locale-zh-cn .form-wrap p,.locale-zh-cn .howto,.locale-zh-cn .inline-edit-row fieldset span.checkbox-title,.locale-zh-cn .inline-edit-row fieldset span.title,.locale-zh-cn .js .input-with-default-title,.locale-zh-cn .link-to-original,.locale-zh-cn .tablenav .displaying-num,.locale-zh-cn p.description,.locale-zh-cn p.help,.locale-zh-cn p.install-help,.locale-zh-cn span.description{font-style:normal}@media only screen and (max-width:768px){.form-field input[type=text],.form-field input[type=password],.form-field input[type=email],.form-field select,.form-field textarea{width:99%}.form-wrap .form-field{padding:0}#profile-page .form-table textarea{max-width:400px;width:auto}}.locale-de-de #customize-header-actions .button,.locale-de-de-formal #customize-header-actions .button,.locale-ru-ru #customize-header-actions .button{padding:0 5px 1px}@media only screen and (max-height:480px),screen and (max-width:450px){.file-editor-warning .notification-dialog,.request-filesystem-credentials-dialog .notification-dialog{width:100%;height:100%;max-height:100%;position:fixed;top:0;margin:0;left:0}}@media screen and (max-width:600px){.color-option{width:49%}}@media only screen and (max-width:320px){.options-general-php .date-time-text.date-time-custom-text{min-width:0;margin-right:.5em}}@-webkit-keyframes rotation{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes rotation{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}body.rtl,body.rtl .press-this a.wp-switch-editor{font-family:Tahoma,Arial,sans-serif}.rtl h1,.rtl h2,.rtl h3,.rtl h4,.rtl h5,.rtl h6{font-family:Arial,sans-serif;font-weight:600}body.locale-he-il,body.locale-he-il .press-this a.wp-switch-editor{font-family:Arial,sans-serif}.locale-he-il em{font-weight:600}.locale-zh-cn .hdnle a{font-size:12px}.locale-zh-cn form.upgrade .hint{font-style:normal;font-size:100%}.locale-zh-cn #sort-buttons{font-size:1em!important}.locale-de-de #customize-header-actions .spinner,.locale-de-de-formal #customize-header-actions .spinner{margin:16px 3px 0}.locale-ru-ru #adminmenu{width:inherit}.locale-ru-ru #adminmenu,.locale-ru-ru #wpbody{margin-left:0}.locale-ru-ru .inline-edit-row fieldset label span.title,.locale-ru-ru .inline-edit-row fieldset.inline-edit-date legend{width:8em}.locale-ru-ru .inline-edit-row fieldset .timestamp-wrap,.locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap{margin-left:8em}.locale-ru-ru.post-new-php .tagsdiv .newtag,.locale-ru-ru.post-php .tagsdiv .newtag{width:165px}.locale-ru-ru.press-this .posting{margin-right:277px}.locale-ru-ru .press-this-sidebar{width:265px}.locale-ru-ru #customize-header-actions .spinner{margin:16px 3px 0}.locale-lt-lt .inline-edit-row fieldset label span.title,.locale-lt-lt .inline-edit-row fieldset.inline-edit-date legend{width:8em}.locale-lt-lt .inline-edit-row fieldset .timestamp-wrap,.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap{margin-left:8em}@media screen and (max-width:782px){.locale-lt-lt .inline-edit-row fieldset .timestamp-wrap,.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap,.locale-ru-ru .inline-edit-row fieldset .timestamp-wrap,.locale-ru-ru .inline-edit-row fieldset label span.input-text-wrap{margin-left:0}}body,html{height:100%;margin:0;padding:0}body{background:#f1f1f1;min-width:0;color:#444;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:13px;line-height:1.4em}a{color:#0073aa;transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out;outline:0}a:active,a:hover{color:#00a0d2}a:focus{color:#124964;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.ie8 a:focus{outline:#5b9dd9 solid 1px}p{line-height:1.5}.login #login_error,.login .message,.login .success{border-left:4px solid #00a0d2;padding:12px;margin-left:0;margin-bottom:20px;background-color:#fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.login .success{border-left-color:#46b450}.login #login_error{border-left-color:#dc3232}#loginform p.submit,.login-action-lostpassword p.submit{border:none;margin:-10px 0 20px}.login *{margin:0;padding:0}.login .password-input-wrapper{display:table}.login .input.password-input{display:table-cell;margin:0}.login .pw-weak{margin-bottom:15px}.login .button.button-secondary{display:table-cell;border-radius:0;vertical-align:middle}.login form{margin-top:20px;margin-left:0;padding:26px 24px 46px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.13)}.login form .forgetmenot{font-weight:400;float:left;margin-bottom:0}.login .button-primary{float:right}#login form p{margin-bottom:0}#login form p.submit{margin:0;padding:0}.login label{color:#72777c;font-size:14px}.login form .forgetmenot label{font-size:12px;line-height:19px}.login h1 a{background-image:url(../images/w-logo-blue.png?ver=20131202);background-image:none,url(../images/wordpress-logo.svg?ver=20131107);background-size:84px;background-position:center top;background-repeat:no-repeat;color:#444;height:84px;font-size:20px;line-height:1.3em;margin:0 auto 25px;padding:0;width:84px;text-indent:-9999px;outline:0;display:block}#login{width:320px;padding:8% 0 0;margin:auto}.login #backtoblog,.login #nav{font-size:13px;padding:0 24px}.login #nav{margin:24px 0 0}#backtoblog{margin:16px 0}.login #backtoblog a,.login #nav a{text-decoration:none;color:#555d66}.login #backtoblog a:hover,.login #nav a:hover,.login h1 a:hover{color:#00a0d2}.login #backtoblog a:focus,.login #nav a:focus,.login h1 a:focus{color:#124964}.login .privacy-policy-page-link{text-align:center;width:100%;margin:5em 0 2em}.login form .input,.login input[type=text]{font-size:24px;width:100%;padding:3px;margin:2px 6px 16px 0}.login form .input,.login form input[type=checkbox],.login input[type=text]{background:#fbfbfb}.ie7 .login form .input,.ie8 .login form .input{font-family:sans-serif}.login-action-rp input[type=text]{box-shadow:none;margin:0}.login #pass-strength-result{font-weight:600;margin:-1px 5px 16px 0;padding:6px 5px;width:100%}body.interim-login{height:auto}.interim-login #login{padding:0;margin:5px auto 20px}.interim-login.login h1 a{width:auto}.interim-login #login_error,.interim-login.login .message{margin:0 0 16px}.interim-login.login form{margin:0}@-ms-viewport{width:device-width}@media screen and (max-height:550px){#login{padding:20px 0}}@media screen and (max-width:782px){.interim-login input[type=checkbox]{height:16px;width:16px}.interim-login input[type=checkbox]:checked:before{width:16px;font:400 21px/1 dashicons;margin:-3px 0 0 -4px}} \ No newline at end of file diff --git a/wp-admin/css/nav-menus-rtl.css b/wp-admin/css/nav-menus-rtl.css index ba228eccb..dd99b5a9c 100644 --- a/wp-admin/css/nav-menus-rtl.css +++ b/wp-admin/css/nav-menus-rtl.css @@ -785,7 +785,8 @@ body.menu-max-depth-11 { min-width: 1280px !important; } } @media screen and ( max-width: 782px ) { - body.nav-menus-php { + body.nav-menus-php, + body.wp-customizer { min-width: 0 !important; } diff --git a/wp-admin/css/nav-menus-rtl.min.css b/wp-admin/css/nav-menus-rtl.min.css index 491a0c012..388d1bd8e 100644 --- a/wp-admin/css/nav-menus-rtl.min.css +++ b/wp-admin/css/nav-menus-rtl.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -.no-js #message{display:block}ul.add-menu-item-tabs li{padding:3px 8px 4px 5px}.accordion-section ul.add-menu-item-tabs,.accordion-section ul.category-tabs,.accordion-section ul.wp-tab-bar{margin:0}.accordion-section .categorychecklist{margin:13px 0}#nav-menu-meta .accordion-section-content{padding:18px 13px}#nav-menu-meta .button-controls{margin-bottom:0}.has-no-menu-item .button-controls{display:none}#nav-menus-frame{margin-right:300px;margin-top:23px}#wpbody-content #menu-settings-column{display:inline;width:281px;margin-right:-300px;clear:both;float:right;padding-top:0}#menu-settings-column .inside{clear:both;margin:10px 0 0}.metabox-holder-disabled .accordion-section-content,.metabox-holder-disabled .accordion-section-title,.metabox-holder-disabled .postbox{opacity:.5;filter:alpha(opacity=50)}.metabox-holder-disabled .button-controls .select-all{display:none}#wpbody{position:relative}.blank-slate .menu-settings{border:none;margin-top:0;padding-top:0;overflow:hidden}.is-submenu{color:#555d66;font-style:italic;font-weight:400;margin-right:4px}#menu-management .menu-add-new abbr,.menu-location-title label{font-weight:600}.manage-menus{margin-top:23px;padding:10px;overflow:hidden;background:#fbfbfb}.manage-menus .selected-menu,.manage-menus .submit-btn,.manage-menus select,.nav-menus-php .add-new-menu-action{display:inline-block;margin-left:3px;vertical-align:middle}.manage-menus select,.menu-location-menus select{max-width:100%}.menu-edit #post-body-content h3{margin:1em 0 10px}.menu-settings{border-top:1px solid #eee;margin-top:2em}.menu-settings-group{margin:0 0 10px;overflow:hidden;padding-right:20%}.menu-settings-group:last-of-type{margin-bottom:0}.menu-settings-input{float:right;margin:0;width:100%}.menu-settings-group-name{float:right;clear:both;width:25%;padding:3px 0 0;margin-right:-25%}.menu-settings label{vertical-align:baseline}.menu-edit .checkbox-input{margin-top:4px}.theme-location-set{color:#72777c;font-size:11px}#add-custom-link .howto,#cancel-save{font-size:12px}#menu-management-liquid{float:right;min-width:100%;margin-top:3px}#menu-management{position:relative;margin-left:20px;margin-top:-3px;width:100%;background:#f5f5f5}#menu-management .menu-edit{margin-bottom:20px}.nav-menus-php #post-body{padding:0 10px 10px;border-top:1px solid #fff;border-bottom:1px solid #ddd;background:#fff}#nav-menu-footer,#nav-menu-header{padding:0 10px}#nav-menu-header{border-bottom:1px solid #ddd;margin-bottom:0}#nav-menu-header .menu-name-label{display:inline-block;vertical-align:middle;margin-left:7px;font-style:italic}.nav-menus-php #post-body div.error,.nav-menus-php #post-body div.updated{margin:0}.nav-menus-php #post-body-content{position:relative;float:none}#select-nav-menu-container{text-align:left;padding:0 10px 3px;margin-bottom:5px}#select-nav-menu{width:100px;display:inline}#menu-name-label{margin-top:-2px}.widefat .menu-locations .menu-location-title{padding:13px 10px 0}.menu-location-menus select{float:right}#locations-nav-menu-wrapper{padding:5px 0}.locations-nav-menu-select select{float:right;width:160px;margin-left:5px}.locations-row-links{float:right;margin:6px 6px 0 0}.locations-add-menu-link,.locations-edit-menu-link{margin:0 3px}.locations-edit-menu-link{padding-left:3px;border-left:1px solid #ccc}#menu-management .inside{padding:0 10px}.customlinkdiv .menu-item-textbox,.postbox .howto input{width:180px;float:left}.accordion-container .outer-border{margin:0}.customlinkdiv p{margin-top:0}#nav-menu-theme-locations .howto select{width:100%}#nav-menu-theme-locations .button-controls{text-align:left}.add-menu-item-view-all{height:400px}#menu-container .submit{margin:0 0 10px;padding:0}#cancel-save{text-decoration:underline;margin-right:20px;margin-top:5px}.button-primary.right,.button-secondary.right,.button.right{float:left}.list-controls{float:right;margin-top:5px}.add-to-menu{float:left}.button-controls{clear:both;margin:10px 0}.hide-all,.show-all{cursor:pointer}.hide-all{display:none}#menu-name{width:270px;vertical-align:middle}#manage-menu .inside{padding:0}#available-links dt{display:block}#add-custom-link label span{display:block;float:right;margin-top:5px;padding-left:5px}.menu-item-textbox{width:180px}.customlinkdiv label,.nav-menus-php .howto span{float:right;margin-top:6px}.quick-search{width:190px}.quick-search-wrap .spinner{float:none;margin:-3px 0 0 -10px}.nav-menus-php .list-wrap{display:none;clear:both;margin-bottom:10px}.nav-menus-php .postbox p.submit{margin-bottom:0}.nav-menus-php .list li{display:none;margin:0 0 5px}.nav-menus-php .list li .menu-item-title{cursor:pointer;display:block}.nav-menus-php .list li .menu-item-title input{margin-left:3px;margin-top:-3px}.menu-item-title input[type=checkbox]{display:inline-block;margin-top:-4px}#menu-container .inside{padding-bottom:10px}.menu{padding-top:1em}#menu-to-edit{margin:0;padding:.1em 0}.menu ul{width:100%}.menu li{margin-bottom:0;position:relative}.menu-item-bar{clear:both;line-height:1.5em;position:relative;margin:9px 0 0}.menu-item-bar .menu-item-handle{border:1px solid #ddd;position:relative;padding:10px 15px;height:auto;min-height:20px;width:382px;line-height:30px;overflow:hidden;word-wrap:break-word}.menu-item-bar .menu-item-handle:hover{border-color:#999}#menu-to-edit .menu-item-invalid .menu-item-handle{background:#f6c9cc;border-color:#f1acb1}.no-js .menu-item-edit-active .item-edit{display:none}.js .menu-item-handle{cursor:move}#cancel-save,.item-controls a:hover{cursor:pointer}.menu li.deleting .menu-item-handle{background-image:none;background-color:#f66}.menu-item-handle .item-title{font-size:13px;font-weight:600;line-height:20px;display:block;margin-left:13em}.menu-item-handle .menu-item-title.no-title{color:#72777c}li.menu-item.ui-sortable-helper .menu-item-bar{margin-top:0}li.menu-item.ui-sortable-helper .menu-item-transport .menu-item-bar{margin-top:13px}.menu .sortable-placeholder{height:35px;width:410px;margin-top:13px}.menu-item .menu-item-transport:empty{display:none}.menu-item-depth-0{margin-right:0}.menu-item-depth-1{margin-right:30px}.menu-item-depth-2{margin-right:60px}.menu-item-depth-3{margin-right:90px}.menu-item-depth-4{margin-right:120px}.menu-item-depth-5{margin-right:150px}.menu-item-depth-6{margin-right:180px}.menu-item-depth-7{margin-right:210px}.menu-item-depth-8{margin-right:240px}.menu-item-depth-9{margin-right:270px}.menu-item-depth-10{margin-right:300px}.menu-item-depth-11{margin-right:330px}.menu-item-depth-0 .menu-item-transport{margin-right:0}.menu-item-depth-1 .menu-item-transport{margin-right:-30px}.menu-item-depth-2 .menu-item-transport{margin-right:-60px}.menu-item-depth-3 .menu-item-transport{margin-right:-90px}.menu-item-depth-4 .menu-item-transport{margin-right:-120px}.menu-item-depth-5 .menu-item-transport{margin-right:-150px}.menu-item-depth-6 .menu-item-transport{margin-right:-180px}.menu-item-depth-7 .menu-item-transport{margin-right:-210px}.menu-item-depth-8 .menu-item-transport{margin-right:-240px}.menu-item-depth-9 .menu-item-transport{margin-right:-270px}.menu-item-depth-10 .menu-item-transport{margin-right:-300px}.menu-item-depth-11 .menu-item-transport{margin-right:-330px}body.menu-max-depth-0{min-width:950px!important}body.menu-max-depth-1{min-width:980px!important}body.menu-max-depth-2{min-width:1010px!important}body.menu-max-depth-3{min-width:1040px!important}body.menu-max-depth-4{min-width:1070px!important}body.menu-max-depth-5{min-width:1100px!important}body.menu-max-depth-6{min-width:1130px!important}body.menu-max-depth-7{min-width:1160px!important}body.menu-max-depth-8{min-width:1190px!important}body.menu-max-depth-9{min-width:1220px!important}body.menu-max-depth-10{min-width:1250px!important}body.menu-max-depth-11{min-width:1280px!important}.item-type{display:inline-block;padding:12px 16px;color:#666;font-size:12px;line-height:18px}.item-controls{font-size:12px;position:absolute;left:20px;top:-1px}.item-controls a{text-decoration:none}.item-controls .item-order{padding-left:10px}.nav-menus-php .item-edit{position:absolute;left:-20px;top:0;display:block;width:30px;height:40px;outline:0}.no-js.nav-menus-php .item-edit{position:static;float:left;width:auto;height:auto;margin:12px 0 12px -10px;padding:0;color:#0073aa;text-decoration:underline;font-size:12px;line-height:18px}.no-js.nav-menus-php .item-edit .screen-reader-text{position:static;-webkit-clip-path:none;clip-path:none;width:auto;height:auto;margin:0}.nav-menus-php .item-edit:before{margin-top:10px;margin-right:4px;width:20px;border-radius:50%;text-indent:-1px}.no-js.nav-menus-php .item-edit:before{display:none}.rtl .nav-menus-php .item-edit:before{text-indent:1px}.js.nav-menus-php .item-edit:focus{box-shadow:none}.nav-menus-php .item-edit:focus:before{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.menu-instructions-inactive{display:none}.menu-item-settings{display:block;width:402px;padding:10px 10px 10px 0;position:relative;z-index:10;border:1px solid #e5e5e5;border-top:none;box-shadow:0 1px 1px rgba(0,0,0,.04)}.menu-item-settings .field-move{margin:3px 0 5px;line-height:1.5}.field-move-visual-label{float:right;margin-left:4px;font-style:italic}.menu-item-settings .field-move .button-link{display:none;margin:0 2px;font-style:italic}.menu-item-edit-active .menu-item-settings{display:block}.menu-item-edit-inactive .menu-item-settings{display:none}.add-menu-item-pagelinks{margin:.5em -10px;text-align:center}.add-menu-item-pagelinks .page-numbers{display:inline-block;min-width:20px}.add-menu-item-pagelinks .page-numbers.dots{min-width:0}.link-to-original{display:block;margin:0 0 15px;padding:3px 5px 5px;border:1px solid #ddd;color:#72777c;font-size:12px;font-style:italic}.hidden-field,.nav-menus-php .blank-slate .menu-settings{display:none}.link-to-original a{padding-right:4px;font-style:normal}.menu-item-settings .description-thin,.menu-item-settings .description-wide{margin-left:10px;float:right}.description-thin{width:190px}.description-wide{width:390px}.menu-item-actions{padding-top:15px;padding-bottom:7px}.nav-menus-php .major-publishing-actions{clear:both;padding:10px 0;line-height:28px}.nav-menus-php .major-publishing-actions .publishing-action{text-align:left;float:left}.nav-menus-php .delete-action{float:right;line-height:28px}.nav-menus-php .major-publishing-actions .form-invalid{padding-right:4px;margin-right:-4px}#menu-item-name-wrap,#menu-item-url-wrap,#nav-menus-frame,.button-controls{display:block}@media only screen and (min-width:769px) and (max-width:1000px){body.menu-max-depth-0{min-width:0!important}#menu-management-liquid{width:100%}.nav-menus-php #post-body-content{min-width:0}.menu-item-bar .menu-item-handle{width:90%}}@media screen and (max-width:782px){body.nav-menus-php{min-width:0!important}#nav-menus-frame{margin-right:0;float:none;width:100%}#wpbody-content #menu-settings-column{display:block;width:100%;float:none;margin-right:0}#side-sortables .add-menu-item-tabs{margin:15px 0 14px}.menu-settings-group-name,.menu-settings-input{float:none;margin-bottom:15px}ul.add-menu-item-tabs li.tabs{padding:13px 15px 14px}.nav-menus-php .customlinkdiv .howto input{width:65%}.nav-menus-php .quick-search{width:85%}#menu-management-liquid{margin-top:25px}.nav-menus-php .menu-name-label.howto span{margin-top:13px}#menu-name{width:100%}.nav-menus-php .major-publishing-actions .publishing-action{padding-top:1em}.nav-menus-php .delete-action{font-size:14px;line-height:30px}.description-wide,.menu-item-bar .menu-item-handle,.menu-item-settings{width:auto}.menu-item-settings{padding:10px}.menu-item-settings .description-thin,.menu-item-settings .description-wide,.menu-item-settings input{width:100%}.menu-item-settings input[type=checkbox],.menu-item-settings input[type=radio]{width:25px}.menu-settings-group{padding-right:0}.menu-settings-group-name{width:auto;margin-right:0}.menu-edit .checkbox-input{margin-top:0}.manage-menus select{margin:.5em 0}.widefat .menu-locations .menu-location-title{padding-top:16px}}@media only screen and (max-width:768px){#menu-locations-wrap .widefat{width:100%}} \ No newline at end of file +.no-js #message{display:block}ul.add-menu-item-tabs li{padding:3px 8px 4px 5px}.accordion-section ul.add-menu-item-tabs,.accordion-section ul.category-tabs,.accordion-section ul.wp-tab-bar{margin:0}.accordion-section .categorychecklist{margin:13px 0}#nav-menu-meta .accordion-section-content{padding:18px 13px}#nav-menu-meta .button-controls{margin-bottom:0}.has-no-menu-item .button-controls{display:none}#nav-menus-frame{margin-right:300px;margin-top:23px}#wpbody-content #menu-settings-column{display:inline;width:281px;margin-right:-300px;clear:both;float:right;padding-top:0}#menu-settings-column .inside{clear:both;margin:10px 0 0}.metabox-holder-disabled .accordion-section-content,.metabox-holder-disabled .accordion-section-title,.metabox-holder-disabled .postbox{opacity:.5;filter:alpha(opacity=50)}.metabox-holder-disabled .button-controls .select-all{display:none}#wpbody{position:relative}.blank-slate .menu-settings{border:none;margin-top:0;padding-top:0;overflow:hidden}.is-submenu{color:#555d66;font-style:italic;font-weight:400;margin-right:4px}#menu-management .menu-add-new abbr,.menu-location-title label{font-weight:600}.manage-menus{margin-top:23px;padding:10px;overflow:hidden;background:#fbfbfb}.manage-menus .selected-menu,.manage-menus .submit-btn,.manage-menus select,.nav-menus-php .add-new-menu-action{display:inline-block;margin-left:3px;vertical-align:middle}.manage-menus select,.menu-location-menus select{max-width:100%}.menu-edit #post-body-content h3{margin:1em 0 10px}.menu-settings{border-top:1px solid #eee;margin-top:2em}.menu-settings-group{margin:0 0 10px;overflow:hidden;padding-right:20%}.menu-settings-group:last-of-type{margin-bottom:0}.menu-settings-input{float:right;margin:0;width:100%}.menu-settings-group-name{float:right;clear:both;width:25%;padding:3px 0 0;margin-right:-25%}.menu-settings label{vertical-align:baseline}.menu-edit .checkbox-input{margin-top:4px}.theme-location-set{color:#72777c;font-size:11px}#add-custom-link .howto,#cancel-save{font-size:12px}#menu-management-liquid{float:right;min-width:100%;margin-top:3px}#menu-management{position:relative;margin-left:20px;margin-top:-3px;width:100%;background:#f5f5f5}#menu-management .menu-edit{margin-bottom:20px}.nav-menus-php #post-body{padding:0 10px 10px;border-top:1px solid #fff;border-bottom:1px solid #ddd;background:#fff}#nav-menu-footer,#nav-menu-header{padding:0 10px}#nav-menu-header{border-bottom:1px solid #ddd;margin-bottom:0}#nav-menu-header .menu-name-label{display:inline-block;vertical-align:middle;margin-left:7px;font-style:italic}.nav-menus-php #post-body div.error,.nav-menus-php #post-body div.updated{margin:0}.nav-menus-php #post-body-content{position:relative;float:none}#select-nav-menu-container{text-align:left;padding:0 10px 3px;margin-bottom:5px}#select-nav-menu{width:100px;display:inline}#menu-name-label{margin-top:-2px}.widefat .menu-locations .menu-location-title{padding:13px 10px 0}.menu-location-menus select{float:right}#locations-nav-menu-wrapper{padding:5px 0}.locations-nav-menu-select select{float:right;width:160px;margin-left:5px}.locations-row-links{float:right;margin:6px 6px 0 0}.locations-add-menu-link,.locations-edit-menu-link{margin:0 3px}.locations-edit-menu-link{padding-left:3px;border-left:1px solid #ccc}#menu-management .inside{padding:0 10px}.customlinkdiv .menu-item-textbox,.postbox .howto input{width:180px;float:left}.accordion-container .outer-border{margin:0}.customlinkdiv p{margin-top:0}#nav-menu-theme-locations .howto select{width:100%}#nav-menu-theme-locations .button-controls{text-align:left}.add-menu-item-view-all{height:400px}#menu-container .submit{margin:0 0 10px;padding:0}#cancel-save{text-decoration:underline;margin-right:20px;margin-top:5px}.button-primary.right,.button-secondary.right,.button.right{float:left}.list-controls{float:right;margin-top:5px}.add-to-menu{float:left}.button-controls{clear:both;margin:10px 0}.hide-all,.show-all{cursor:pointer}.hide-all{display:none}#menu-name{width:270px;vertical-align:middle}#manage-menu .inside{padding:0}#available-links dt{display:block}#add-custom-link label span{display:block;float:right;margin-top:5px;padding-left:5px}.menu-item-textbox{width:180px}.customlinkdiv label,.nav-menus-php .howto span{float:right;margin-top:6px}.quick-search{width:190px}.quick-search-wrap .spinner{float:none;margin:-3px 0 0 -10px}.nav-menus-php .list-wrap{display:none;clear:both;margin-bottom:10px}.nav-menus-php .postbox p.submit{margin-bottom:0}.nav-menus-php .list li{display:none;margin:0 0 5px}.nav-menus-php .list li .menu-item-title{cursor:pointer;display:block}.nav-menus-php .list li .menu-item-title input{margin-left:3px;margin-top:-3px}.menu-item-title input[type=checkbox]{display:inline-block;margin-top:-4px}#menu-container .inside{padding-bottom:10px}.menu{padding-top:1em}#menu-to-edit{margin:0;padding:.1em 0}.menu ul{width:100%}.menu li{margin-bottom:0;position:relative}.menu-item-bar{clear:both;line-height:1.5em;position:relative;margin:9px 0 0}.menu-item-bar .menu-item-handle{border:1px solid #ddd;position:relative;padding:10px 15px;height:auto;min-height:20px;width:382px;line-height:30px;overflow:hidden;word-wrap:break-word}.menu-item-bar .menu-item-handle:hover{border-color:#999}#menu-to-edit .menu-item-invalid .menu-item-handle{background:#f6c9cc;border-color:#f1acb1}.no-js .menu-item-edit-active .item-edit{display:none}.js .menu-item-handle{cursor:move}#cancel-save,.item-controls a:hover{cursor:pointer}.menu li.deleting .menu-item-handle{background-image:none;background-color:#f66}.menu-item-handle .item-title{font-size:13px;font-weight:600;line-height:20px;display:block;margin-left:13em}.menu-item-handle .menu-item-title.no-title{color:#72777c}li.menu-item.ui-sortable-helper .menu-item-bar{margin-top:0}li.menu-item.ui-sortable-helper .menu-item-transport .menu-item-bar{margin-top:13px}.menu .sortable-placeholder{height:35px;width:410px;margin-top:13px}.menu-item .menu-item-transport:empty{display:none}.menu-item-depth-0{margin-right:0}.menu-item-depth-1{margin-right:30px}.menu-item-depth-2{margin-right:60px}.menu-item-depth-3{margin-right:90px}.menu-item-depth-4{margin-right:120px}.menu-item-depth-5{margin-right:150px}.menu-item-depth-6{margin-right:180px}.menu-item-depth-7{margin-right:210px}.menu-item-depth-8{margin-right:240px}.menu-item-depth-9{margin-right:270px}.menu-item-depth-10{margin-right:300px}.menu-item-depth-11{margin-right:330px}.menu-item-depth-0 .menu-item-transport{margin-right:0}.menu-item-depth-1 .menu-item-transport{margin-right:-30px}.menu-item-depth-2 .menu-item-transport{margin-right:-60px}.menu-item-depth-3 .menu-item-transport{margin-right:-90px}.menu-item-depth-4 .menu-item-transport{margin-right:-120px}.menu-item-depth-5 .menu-item-transport{margin-right:-150px}.menu-item-depth-6 .menu-item-transport{margin-right:-180px}.menu-item-depth-7 .menu-item-transport{margin-right:-210px}.menu-item-depth-8 .menu-item-transport{margin-right:-240px}.menu-item-depth-9 .menu-item-transport{margin-right:-270px}.menu-item-depth-10 .menu-item-transport{margin-right:-300px}.menu-item-depth-11 .menu-item-transport{margin-right:-330px}body.menu-max-depth-0{min-width:950px!important}body.menu-max-depth-1{min-width:980px!important}body.menu-max-depth-2{min-width:1010px!important}body.menu-max-depth-3{min-width:1040px!important}body.menu-max-depth-4{min-width:1070px!important}body.menu-max-depth-5{min-width:1100px!important}body.menu-max-depth-6{min-width:1130px!important}body.menu-max-depth-7{min-width:1160px!important}body.menu-max-depth-8{min-width:1190px!important}body.menu-max-depth-9{min-width:1220px!important}body.menu-max-depth-10{min-width:1250px!important}body.menu-max-depth-11{min-width:1280px!important}.item-type{display:inline-block;padding:12px 16px;color:#666;font-size:12px;line-height:18px}.item-controls{font-size:12px;position:absolute;left:20px;top:-1px}.item-controls a{text-decoration:none}.item-controls .item-order{padding-left:10px}.nav-menus-php .item-edit{position:absolute;left:-20px;top:0;display:block;width:30px;height:40px;outline:0}.no-js.nav-menus-php .item-edit{position:static;float:left;width:auto;height:auto;margin:12px 0 12px -10px;padding:0;color:#0073aa;text-decoration:underline;font-size:12px;line-height:18px}.no-js.nav-menus-php .item-edit .screen-reader-text{position:static;-webkit-clip-path:none;clip-path:none;width:auto;height:auto;margin:0}.nav-menus-php .item-edit:before{margin-top:10px;margin-right:4px;width:20px;border-radius:50%;text-indent:-1px}.no-js.nav-menus-php .item-edit:before{display:none}.rtl .nav-menus-php .item-edit:before{text-indent:1px}.js.nav-menus-php .item-edit:focus{box-shadow:none}.nav-menus-php .item-edit:focus:before{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.menu-instructions-inactive{display:none}.menu-item-settings{display:block;width:402px;padding:10px 10px 10px 0;position:relative;z-index:10;border:1px solid #e5e5e5;border-top:none;box-shadow:0 1px 1px rgba(0,0,0,.04)}.menu-item-settings .field-move{margin:3px 0 5px;line-height:1.5}.field-move-visual-label{float:right;margin-left:4px;font-style:italic}.menu-item-settings .field-move .button-link{display:none;margin:0 2px;font-style:italic}.menu-item-edit-active .menu-item-settings{display:block}.menu-item-edit-inactive .menu-item-settings{display:none}.add-menu-item-pagelinks{margin:.5em -10px;text-align:center}.add-menu-item-pagelinks .page-numbers{display:inline-block;min-width:20px}.add-menu-item-pagelinks .page-numbers.dots{min-width:0}.link-to-original{display:block;margin:0 0 15px;padding:3px 5px 5px;border:1px solid #ddd;color:#72777c;font-size:12px;font-style:italic}.hidden-field,.nav-menus-php .blank-slate .menu-settings{display:none}.link-to-original a{padding-right:4px;font-style:normal}.menu-item-settings .description-thin,.menu-item-settings .description-wide{margin-left:10px;float:right}.description-thin{width:190px}.description-wide{width:390px}.menu-item-actions{padding-top:15px;padding-bottom:7px}.nav-menus-php .major-publishing-actions{clear:both;padding:10px 0;line-height:28px}.nav-menus-php .major-publishing-actions .publishing-action{text-align:left;float:left}.nav-menus-php .delete-action{float:right;line-height:28px}.nav-menus-php .major-publishing-actions .form-invalid{padding-right:4px;margin-right:-4px}#menu-item-name-wrap,#menu-item-url-wrap,#nav-menus-frame,.button-controls{display:block}@media only screen and (min-width:769px) and (max-width:1000px){body.menu-max-depth-0{min-width:0!important}#menu-management-liquid{width:100%}.nav-menus-php #post-body-content{min-width:0}.menu-item-bar .menu-item-handle{width:90%}}@media screen and (max-width:782px){body.nav-menus-php,body.wp-customizer{min-width:0!important}#nav-menus-frame{margin-right:0;float:none;width:100%}#wpbody-content #menu-settings-column{display:block;width:100%;float:none;margin-right:0}#side-sortables .add-menu-item-tabs{margin:15px 0 14px}.menu-settings-group-name,.menu-settings-input{float:none;margin-bottom:15px}ul.add-menu-item-tabs li.tabs{padding:13px 15px 14px}.nav-menus-php .customlinkdiv .howto input{width:65%}.nav-menus-php .quick-search{width:85%}#menu-management-liquid{margin-top:25px}.nav-menus-php .menu-name-label.howto span{margin-top:13px}#menu-name{width:100%}.nav-menus-php .major-publishing-actions .publishing-action{padding-top:1em}.nav-menus-php .delete-action{font-size:14px;line-height:30px}.description-wide,.menu-item-bar .menu-item-handle,.menu-item-settings{width:auto}.menu-item-settings{padding:10px}.menu-item-settings .description-thin,.menu-item-settings .description-wide,.menu-item-settings input{width:100%}.menu-item-settings input[type=checkbox],.menu-item-settings input[type=radio]{width:25px}.menu-settings-group{padding-right:0}.menu-settings-group-name{width:auto;margin-right:0}.menu-edit .checkbox-input{margin-top:0}.manage-menus select{margin:.5em 0}.widefat .menu-locations .menu-location-title{padding-top:16px}}@media only screen and (max-width:768px){#menu-locations-wrap .widefat{width:100%}} \ No newline at end of file diff --git a/wp-admin/css/nav-menus.css b/wp-admin/css/nav-menus.css index 77c6274c2..4021b03b9 100644 --- a/wp-admin/css/nav-menus.css +++ b/wp-admin/css/nav-menus.css @@ -785,7 +785,8 @@ body.menu-max-depth-11 { min-width: 1280px !important; } } @media screen and ( max-width: 782px ) { - body.nav-menus-php { + body.nav-menus-php, + body.wp-customizer { min-width: 0 !important; } diff --git a/wp-admin/css/nav-menus.min.css b/wp-admin/css/nav-menus.min.css index bd8cd3ae6..94d637a0f 100644 --- a/wp-admin/css/nav-menus.min.css +++ b/wp-admin/css/nav-menus.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -.no-js #message{display:block}ul.add-menu-item-tabs li{padding:3px 5px 4px 8px}.accordion-section ul.add-menu-item-tabs,.accordion-section ul.category-tabs,.accordion-section ul.wp-tab-bar{margin:0}.accordion-section .categorychecklist{margin:13px 0}#nav-menu-meta .accordion-section-content{padding:18px 13px}#nav-menu-meta .button-controls{margin-bottom:0}.has-no-menu-item .button-controls{display:none}#nav-menus-frame{margin-left:300px;margin-top:23px}#wpbody-content #menu-settings-column{display:inline;width:281px;margin-left:-300px;clear:both;float:left;padding-top:0}#menu-settings-column .inside{clear:both;margin:10px 0 0}.metabox-holder-disabled .accordion-section-content,.metabox-holder-disabled .accordion-section-title,.metabox-holder-disabled .postbox{opacity:.5;filter:alpha(opacity=50)}.metabox-holder-disabled .button-controls .select-all{display:none}#wpbody{position:relative}.blank-slate .menu-settings{border:none;margin-top:0;padding-top:0;overflow:hidden}.is-submenu{color:#555d66;font-style:italic;font-weight:400;margin-left:4px}#menu-management .menu-add-new abbr,.menu-location-title label{font-weight:600}.manage-menus{margin-top:23px;padding:10px;overflow:hidden;background:#fbfbfb}.manage-menus .selected-menu,.manage-menus .submit-btn,.manage-menus select,.nav-menus-php .add-new-menu-action{display:inline-block;margin-right:3px;vertical-align:middle}.manage-menus select,.menu-location-menus select{max-width:100%}.menu-edit #post-body-content h3{margin:1em 0 10px}.menu-settings{border-top:1px solid #eee;margin-top:2em}.menu-settings-group{margin:0 0 10px;overflow:hidden;padding-left:20%}.menu-settings-group:last-of-type{margin-bottom:0}.menu-settings-input{float:left;margin:0;width:100%}.menu-settings-group-name{float:left;clear:both;width:25%;padding:3px 0 0;margin-left:-25%}.menu-settings label{vertical-align:baseline}.menu-edit .checkbox-input{margin-top:4px}.theme-location-set{color:#72777c;font-size:11px}#add-custom-link .howto,#cancel-save{font-size:12px}#menu-management-liquid{float:left;min-width:100%;margin-top:3px}#menu-management{position:relative;margin-right:20px;margin-top:-3px;width:100%;background:#f5f5f5}#menu-management .menu-edit{margin-bottom:20px}.nav-menus-php #post-body{padding:0 10px 10px;border-top:1px solid #fff;border-bottom:1px solid #ddd;background:#fff}#nav-menu-footer,#nav-menu-header{padding:0 10px}#nav-menu-header{border-bottom:1px solid #ddd;margin-bottom:0}#nav-menu-header .menu-name-label{display:inline-block;vertical-align:middle;margin-right:7px;font-style:italic}.nav-menus-php #post-body div.error,.nav-menus-php #post-body div.updated{margin:0}.nav-menus-php #post-body-content{position:relative;float:none}#select-nav-menu-container{text-align:right;padding:0 10px 3px;margin-bottom:5px}#select-nav-menu{width:100px;display:inline}#menu-name-label{margin-top:-2px}.widefat .menu-locations .menu-location-title{padding:13px 10px 0}.menu-location-menus select{float:left}#locations-nav-menu-wrapper{padding:5px 0}.locations-nav-menu-select select{float:left;width:160px;margin-right:5px}.locations-row-links{float:left;margin:6px 0 0 6px}.locations-add-menu-link,.locations-edit-menu-link{margin:0 3px}.locations-edit-menu-link{padding-right:3px;border-right:1px solid #ccc}#menu-management .inside{padding:0 10px}.customlinkdiv .menu-item-textbox,.postbox .howto input{width:180px;float:right}.accordion-container .outer-border{margin:0}.customlinkdiv p{margin-top:0}#nav-menu-theme-locations .howto select{width:100%}#nav-menu-theme-locations .button-controls{text-align:right}.add-menu-item-view-all{height:400px}#menu-container .submit{margin:0 0 10px;padding:0}#cancel-save{text-decoration:underline;margin-left:20px;margin-top:5px}.button-primary.right,.button-secondary.right,.button.right{float:right}.list-controls{float:left;margin-top:5px}.add-to-menu{float:right}.button-controls{clear:both;margin:10px 0}.hide-all,.show-all{cursor:pointer}.hide-all{display:none}#menu-name{width:270px;vertical-align:middle}#manage-menu .inside{padding:0}#available-links dt{display:block}#add-custom-link label span{display:block;float:left;margin-top:5px;padding-right:5px}.menu-item-textbox{width:180px}.customlinkdiv label,.nav-menus-php .howto span{float:left;margin-top:6px}.quick-search{width:190px}.quick-search-wrap .spinner{float:none;margin:-3px -10px 0 0}.nav-menus-php .list-wrap{display:none;clear:both;margin-bottom:10px}.nav-menus-php .postbox p.submit{margin-bottom:0}.nav-menus-php .list li{display:none;margin:0 0 5px}.nav-menus-php .list li .menu-item-title{cursor:pointer;display:block}.nav-menus-php .list li .menu-item-title input{margin-right:3px;margin-top:-3px}.menu-item-title input[type=checkbox]{display:inline-block;margin-top:-4px}#menu-container .inside{padding-bottom:10px}.menu{padding-top:1em}#menu-to-edit{margin:0;padding:.1em 0}.menu ul{width:100%}.menu li{margin-bottom:0;position:relative}.menu-item-bar{clear:both;line-height:1.5em;position:relative;margin:9px 0 0}.menu-item-bar .menu-item-handle{border:1px solid #ddd;position:relative;padding:10px 15px;height:auto;min-height:20px;width:382px;line-height:30px;overflow:hidden;word-wrap:break-word}.menu-item-bar .menu-item-handle:hover{border-color:#999}#menu-to-edit .menu-item-invalid .menu-item-handle{background:#f6c9cc;border-color:#f1acb1}.no-js .menu-item-edit-active .item-edit{display:none}.js .menu-item-handle{cursor:move}#cancel-save,.item-controls a:hover{cursor:pointer}.menu li.deleting .menu-item-handle{background-image:none;background-color:#f66}.menu-item-handle .item-title{font-size:13px;font-weight:600;line-height:20px;display:block;margin-right:13em}.menu-item-handle .menu-item-title.no-title{color:#72777c}li.menu-item.ui-sortable-helper .menu-item-bar{margin-top:0}li.menu-item.ui-sortable-helper .menu-item-transport .menu-item-bar{margin-top:13px}.menu .sortable-placeholder{height:35px;width:410px;margin-top:13px}.menu-item .menu-item-transport:empty{display:none}.menu-item-depth-0{margin-left:0}.menu-item-depth-1{margin-left:30px}.menu-item-depth-2{margin-left:60px}.menu-item-depth-3{margin-left:90px}.menu-item-depth-4{margin-left:120px}.menu-item-depth-5{margin-left:150px}.menu-item-depth-6{margin-left:180px}.menu-item-depth-7{margin-left:210px}.menu-item-depth-8{margin-left:240px}.menu-item-depth-9{margin-left:270px}.menu-item-depth-10{margin-left:300px}.menu-item-depth-11{margin-left:330px}.menu-item-depth-0 .menu-item-transport{margin-left:0}.menu-item-depth-1 .menu-item-transport{margin-left:-30px}.menu-item-depth-2 .menu-item-transport{margin-left:-60px}.menu-item-depth-3 .menu-item-transport{margin-left:-90px}.menu-item-depth-4 .menu-item-transport{margin-left:-120px}.menu-item-depth-5 .menu-item-transport{margin-left:-150px}.menu-item-depth-6 .menu-item-transport{margin-left:-180px}.menu-item-depth-7 .menu-item-transport{margin-left:-210px}.menu-item-depth-8 .menu-item-transport{margin-left:-240px}.menu-item-depth-9 .menu-item-transport{margin-left:-270px}.menu-item-depth-10 .menu-item-transport{margin-left:-300px}.menu-item-depth-11 .menu-item-transport{margin-left:-330px}body.menu-max-depth-0{min-width:950px!important}body.menu-max-depth-1{min-width:980px!important}body.menu-max-depth-2{min-width:1010px!important}body.menu-max-depth-3{min-width:1040px!important}body.menu-max-depth-4{min-width:1070px!important}body.menu-max-depth-5{min-width:1100px!important}body.menu-max-depth-6{min-width:1130px!important}body.menu-max-depth-7{min-width:1160px!important}body.menu-max-depth-8{min-width:1190px!important}body.menu-max-depth-9{min-width:1220px!important}body.menu-max-depth-10{min-width:1250px!important}body.menu-max-depth-11{min-width:1280px!important}.item-type{display:inline-block;padding:12px 16px;color:#666;font-size:12px;line-height:18px}.item-controls{font-size:12px;position:absolute;right:20px;top:-1px}.item-controls a{text-decoration:none}.item-controls .item-order{padding-right:10px}.nav-menus-php .item-edit{position:absolute;right:-20px;top:0;display:block;width:30px;height:40px;outline:0}.no-js.nav-menus-php .item-edit{position:static;float:right;width:auto;height:auto;margin:12px -10px 12px 0;padding:0;color:#0073aa;text-decoration:underline;font-size:12px;line-height:18px}.no-js.nav-menus-php .item-edit .screen-reader-text{position:static;-webkit-clip-path:none;clip-path:none;width:auto;height:auto;margin:0}.nav-menus-php .item-edit:before{margin-top:10px;margin-left:4px;width:20px;border-radius:50%;text-indent:-1px}.no-js.nav-menus-php .item-edit:before{display:none}.rtl .nav-menus-php .item-edit:before{text-indent:1px}.js.nav-menus-php .item-edit:focus{box-shadow:none}.nav-menus-php .item-edit:focus:before{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.menu-instructions-inactive{display:none}.menu-item-settings{display:block;width:402px;padding:10px 0 10px 10px;position:relative;z-index:10;border:1px solid #e5e5e5;border-top:none;box-shadow:0 1px 1px rgba(0,0,0,.04)}.menu-item-settings .field-move{margin:3px 0 5px;line-height:1.5}.field-move-visual-label{float:left;margin-right:4px;font-style:italic}.menu-item-settings .field-move .button-link{display:none;margin:0 2px;font-style:italic}.menu-item-edit-active .menu-item-settings{display:block}.menu-item-edit-inactive .menu-item-settings{display:none}.add-menu-item-pagelinks{margin:.5em -10px;text-align:center}.add-menu-item-pagelinks .page-numbers{display:inline-block;min-width:20px}.add-menu-item-pagelinks .page-numbers.dots{min-width:0}.link-to-original{display:block;margin:0 0 15px;padding:3px 5px 5px;border:1px solid #ddd;color:#72777c;font-size:12px;font-style:italic}.hidden-field,.nav-menus-php .blank-slate .menu-settings{display:none}.link-to-original a{padding-left:4px;font-style:normal}.menu-item-settings .description-thin,.menu-item-settings .description-wide{margin-right:10px;float:left}.description-thin{width:190px}.description-wide{width:390px}.menu-item-actions{padding-top:15px;padding-bottom:7px}.nav-menus-php .major-publishing-actions{clear:both;padding:10px 0;line-height:28px}.nav-menus-php .major-publishing-actions .publishing-action{text-align:right;float:right}.nav-menus-php .delete-action{float:left;line-height:28px}.nav-menus-php .major-publishing-actions .form-invalid{padding-left:4px;margin-left:-4px}#menu-item-name-wrap,#menu-item-url-wrap,#nav-menus-frame,.button-controls{display:block}@media only screen and (min-width:769px) and (max-width:1000px){body.menu-max-depth-0{min-width:0!important}#menu-management-liquid{width:100%}.nav-menus-php #post-body-content{min-width:0}.menu-item-bar .menu-item-handle{width:90%}}@media screen and (max-width:782px){body.nav-menus-php{min-width:0!important}#nav-menus-frame{margin-left:0;float:none;width:100%}#wpbody-content #menu-settings-column{display:block;width:100%;float:none;margin-left:0}#side-sortables .add-menu-item-tabs{margin:15px 0 14px}.menu-settings-group-name,.menu-settings-input{float:none;margin-bottom:15px}ul.add-menu-item-tabs li.tabs{padding:13px 15px 14px}.nav-menus-php .customlinkdiv .howto input{width:65%}.nav-menus-php .quick-search{width:85%}#menu-management-liquid{margin-top:25px}.nav-menus-php .menu-name-label.howto span{margin-top:13px}#menu-name{width:100%}.nav-menus-php .major-publishing-actions .publishing-action{padding-top:1em}.nav-menus-php .delete-action{font-size:14px;line-height:30px}.description-wide,.menu-item-bar .menu-item-handle,.menu-item-settings{width:auto}.menu-item-settings{padding:10px}.menu-item-settings .description-thin,.menu-item-settings .description-wide,.menu-item-settings input{width:100%}.menu-item-settings input[type=checkbox],.menu-item-settings input[type=radio]{width:25px}.menu-settings-group{padding-left:0}.menu-settings-group-name{width:auto;margin-left:0}.menu-edit .checkbox-input{margin-top:0}.manage-menus select{margin:.5em 0}.widefat .menu-locations .menu-location-title{padding-top:16px}}@media only screen and (max-width:768px){#menu-locations-wrap .widefat{width:100%}} \ No newline at end of file +.no-js #message{display:block}ul.add-menu-item-tabs li{padding:3px 5px 4px 8px}.accordion-section ul.add-menu-item-tabs,.accordion-section ul.category-tabs,.accordion-section ul.wp-tab-bar{margin:0}.accordion-section .categorychecklist{margin:13px 0}#nav-menu-meta .accordion-section-content{padding:18px 13px}#nav-menu-meta .button-controls{margin-bottom:0}.has-no-menu-item .button-controls{display:none}#nav-menus-frame{margin-left:300px;margin-top:23px}#wpbody-content #menu-settings-column{display:inline;width:281px;margin-left:-300px;clear:both;float:left;padding-top:0}#menu-settings-column .inside{clear:both;margin:10px 0 0}.metabox-holder-disabled .accordion-section-content,.metabox-holder-disabled .accordion-section-title,.metabox-holder-disabled .postbox{opacity:.5;filter:alpha(opacity=50)}.metabox-holder-disabled .button-controls .select-all{display:none}#wpbody{position:relative}.blank-slate .menu-settings{border:none;margin-top:0;padding-top:0;overflow:hidden}.is-submenu{color:#555d66;font-style:italic;font-weight:400;margin-left:4px}#menu-management .menu-add-new abbr,.menu-location-title label{font-weight:600}.manage-menus{margin-top:23px;padding:10px;overflow:hidden;background:#fbfbfb}.manage-menus .selected-menu,.manage-menus .submit-btn,.manage-menus select,.nav-menus-php .add-new-menu-action{display:inline-block;margin-right:3px;vertical-align:middle}.manage-menus select,.menu-location-menus select{max-width:100%}.menu-edit #post-body-content h3{margin:1em 0 10px}.menu-settings{border-top:1px solid #eee;margin-top:2em}.menu-settings-group{margin:0 0 10px;overflow:hidden;padding-left:20%}.menu-settings-group:last-of-type{margin-bottom:0}.menu-settings-input{float:left;margin:0;width:100%}.menu-settings-group-name{float:left;clear:both;width:25%;padding:3px 0 0;margin-left:-25%}.menu-settings label{vertical-align:baseline}.menu-edit .checkbox-input{margin-top:4px}.theme-location-set{color:#72777c;font-size:11px}#add-custom-link .howto,#cancel-save{font-size:12px}#menu-management-liquid{float:left;min-width:100%;margin-top:3px}#menu-management{position:relative;margin-right:20px;margin-top:-3px;width:100%;background:#f5f5f5}#menu-management .menu-edit{margin-bottom:20px}.nav-menus-php #post-body{padding:0 10px 10px;border-top:1px solid #fff;border-bottom:1px solid #ddd;background:#fff}#nav-menu-footer,#nav-menu-header{padding:0 10px}#nav-menu-header{border-bottom:1px solid #ddd;margin-bottom:0}#nav-menu-header .menu-name-label{display:inline-block;vertical-align:middle;margin-right:7px;font-style:italic}.nav-menus-php #post-body div.error,.nav-menus-php #post-body div.updated{margin:0}.nav-menus-php #post-body-content{position:relative;float:none}#select-nav-menu-container{text-align:right;padding:0 10px 3px;margin-bottom:5px}#select-nav-menu{width:100px;display:inline}#menu-name-label{margin-top:-2px}.widefat .menu-locations .menu-location-title{padding:13px 10px 0}.menu-location-menus select{float:left}#locations-nav-menu-wrapper{padding:5px 0}.locations-nav-menu-select select{float:left;width:160px;margin-right:5px}.locations-row-links{float:left;margin:6px 0 0 6px}.locations-add-menu-link,.locations-edit-menu-link{margin:0 3px}.locations-edit-menu-link{padding-right:3px;border-right:1px solid #ccc}#menu-management .inside{padding:0 10px}.customlinkdiv .menu-item-textbox,.postbox .howto input{width:180px;float:right}.accordion-container .outer-border{margin:0}.customlinkdiv p{margin-top:0}#nav-menu-theme-locations .howto select{width:100%}#nav-menu-theme-locations .button-controls{text-align:right}.add-menu-item-view-all{height:400px}#menu-container .submit{margin:0 0 10px;padding:0}#cancel-save{text-decoration:underline;margin-left:20px;margin-top:5px}.button-primary.right,.button-secondary.right,.button.right{float:right}.list-controls{float:left;margin-top:5px}.add-to-menu{float:right}.button-controls{clear:both;margin:10px 0}.hide-all,.show-all{cursor:pointer}.hide-all{display:none}#menu-name{width:270px;vertical-align:middle}#manage-menu .inside{padding:0}#available-links dt{display:block}#add-custom-link label span{display:block;float:left;margin-top:5px;padding-right:5px}.menu-item-textbox{width:180px}.customlinkdiv label,.nav-menus-php .howto span{float:left;margin-top:6px}.quick-search{width:190px}.quick-search-wrap .spinner{float:none;margin:-3px -10px 0 0}.nav-menus-php .list-wrap{display:none;clear:both;margin-bottom:10px}.nav-menus-php .postbox p.submit{margin-bottom:0}.nav-menus-php .list li{display:none;margin:0 0 5px}.nav-menus-php .list li .menu-item-title{cursor:pointer;display:block}.nav-menus-php .list li .menu-item-title input{margin-right:3px;margin-top:-3px}.menu-item-title input[type=checkbox]{display:inline-block;margin-top:-4px}#menu-container .inside{padding-bottom:10px}.menu{padding-top:1em}#menu-to-edit{margin:0;padding:.1em 0}.menu ul{width:100%}.menu li{margin-bottom:0;position:relative}.menu-item-bar{clear:both;line-height:1.5em;position:relative;margin:9px 0 0}.menu-item-bar .menu-item-handle{border:1px solid #ddd;position:relative;padding:10px 15px;height:auto;min-height:20px;width:382px;line-height:30px;overflow:hidden;word-wrap:break-word}.menu-item-bar .menu-item-handle:hover{border-color:#999}#menu-to-edit .menu-item-invalid .menu-item-handle{background:#f6c9cc;border-color:#f1acb1}.no-js .menu-item-edit-active .item-edit{display:none}.js .menu-item-handle{cursor:move}#cancel-save,.item-controls a:hover{cursor:pointer}.menu li.deleting .menu-item-handle{background-image:none;background-color:#f66}.menu-item-handle .item-title{font-size:13px;font-weight:600;line-height:20px;display:block;margin-right:13em}.menu-item-handle .menu-item-title.no-title{color:#72777c}li.menu-item.ui-sortable-helper .menu-item-bar{margin-top:0}li.menu-item.ui-sortable-helper .menu-item-transport .menu-item-bar{margin-top:13px}.menu .sortable-placeholder{height:35px;width:410px;margin-top:13px}.menu-item .menu-item-transport:empty{display:none}.menu-item-depth-0{margin-left:0}.menu-item-depth-1{margin-left:30px}.menu-item-depth-2{margin-left:60px}.menu-item-depth-3{margin-left:90px}.menu-item-depth-4{margin-left:120px}.menu-item-depth-5{margin-left:150px}.menu-item-depth-6{margin-left:180px}.menu-item-depth-7{margin-left:210px}.menu-item-depth-8{margin-left:240px}.menu-item-depth-9{margin-left:270px}.menu-item-depth-10{margin-left:300px}.menu-item-depth-11{margin-left:330px}.menu-item-depth-0 .menu-item-transport{margin-left:0}.menu-item-depth-1 .menu-item-transport{margin-left:-30px}.menu-item-depth-2 .menu-item-transport{margin-left:-60px}.menu-item-depth-3 .menu-item-transport{margin-left:-90px}.menu-item-depth-4 .menu-item-transport{margin-left:-120px}.menu-item-depth-5 .menu-item-transport{margin-left:-150px}.menu-item-depth-6 .menu-item-transport{margin-left:-180px}.menu-item-depth-7 .menu-item-transport{margin-left:-210px}.menu-item-depth-8 .menu-item-transport{margin-left:-240px}.menu-item-depth-9 .menu-item-transport{margin-left:-270px}.menu-item-depth-10 .menu-item-transport{margin-left:-300px}.menu-item-depth-11 .menu-item-transport{margin-left:-330px}body.menu-max-depth-0{min-width:950px!important}body.menu-max-depth-1{min-width:980px!important}body.menu-max-depth-2{min-width:1010px!important}body.menu-max-depth-3{min-width:1040px!important}body.menu-max-depth-4{min-width:1070px!important}body.menu-max-depth-5{min-width:1100px!important}body.menu-max-depth-6{min-width:1130px!important}body.menu-max-depth-7{min-width:1160px!important}body.menu-max-depth-8{min-width:1190px!important}body.menu-max-depth-9{min-width:1220px!important}body.menu-max-depth-10{min-width:1250px!important}body.menu-max-depth-11{min-width:1280px!important}.item-type{display:inline-block;padding:12px 16px;color:#666;font-size:12px;line-height:18px}.item-controls{font-size:12px;position:absolute;right:20px;top:-1px}.item-controls a{text-decoration:none}.item-controls .item-order{padding-right:10px}.nav-menus-php .item-edit{position:absolute;right:-20px;top:0;display:block;width:30px;height:40px;outline:0}.no-js.nav-menus-php .item-edit{position:static;float:right;width:auto;height:auto;margin:12px -10px 12px 0;padding:0;color:#0073aa;text-decoration:underline;font-size:12px;line-height:18px}.no-js.nav-menus-php .item-edit .screen-reader-text{position:static;-webkit-clip-path:none;clip-path:none;width:auto;height:auto;margin:0}.nav-menus-php .item-edit:before{margin-top:10px;margin-left:4px;width:20px;border-radius:50%;text-indent:-1px}.no-js.nav-menus-php .item-edit:before{display:none}.rtl .nav-menus-php .item-edit:before{text-indent:1px}.js.nav-menus-php .item-edit:focus{box-shadow:none}.nav-menus-php .item-edit:focus:before{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.menu-instructions-inactive{display:none}.menu-item-settings{display:block;width:402px;padding:10px 0 10px 10px;position:relative;z-index:10;border:1px solid #e5e5e5;border-top:none;box-shadow:0 1px 1px rgba(0,0,0,.04)}.menu-item-settings .field-move{margin:3px 0 5px;line-height:1.5}.field-move-visual-label{float:left;margin-right:4px;font-style:italic}.menu-item-settings .field-move .button-link{display:none;margin:0 2px;font-style:italic}.menu-item-edit-active .menu-item-settings{display:block}.menu-item-edit-inactive .menu-item-settings{display:none}.add-menu-item-pagelinks{margin:.5em -10px;text-align:center}.add-menu-item-pagelinks .page-numbers{display:inline-block;min-width:20px}.add-menu-item-pagelinks .page-numbers.dots{min-width:0}.link-to-original{display:block;margin:0 0 15px;padding:3px 5px 5px;border:1px solid #ddd;color:#72777c;font-size:12px;font-style:italic}.hidden-field,.nav-menus-php .blank-slate .menu-settings{display:none}.link-to-original a{padding-left:4px;font-style:normal}.menu-item-settings .description-thin,.menu-item-settings .description-wide{margin-right:10px;float:left}.description-thin{width:190px}.description-wide{width:390px}.menu-item-actions{padding-top:15px;padding-bottom:7px}.nav-menus-php .major-publishing-actions{clear:both;padding:10px 0;line-height:28px}.nav-menus-php .major-publishing-actions .publishing-action{text-align:right;float:right}.nav-menus-php .delete-action{float:left;line-height:28px}.nav-menus-php .major-publishing-actions .form-invalid{padding-left:4px;margin-left:-4px}#menu-item-name-wrap,#menu-item-url-wrap,#nav-menus-frame,.button-controls{display:block}@media only screen and (min-width:769px) and (max-width:1000px){body.menu-max-depth-0{min-width:0!important}#menu-management-liquid{width:100%}.nav-menus-php #post-body-content{min-width:0}.menu-item-bar .menu-item-handle{width:90%}}@media screen and (max-width:782px){body.nav-menus-php,body.wp-customizer{min-width:0!important}#nav-menus-frame{margin-left:0;float:none;width:100%}#wpbody-content #menu-settings-column{display:block;width:100%;float:none;margin-left:0}#side-sortables .add-menu-item-tabs{margin:15px 0 14px}.menu-settings-group-name,.menu-settings-input{float:none;margin-bottom:15px}ul.add-menu-item-tabs li.tabs{padding:13px 15px 14px}.nav-menus-php .customlinkdiv .howto input{width:65%}.nav-menus-php .quick-search{width:85%}#menu-management-liquid{margin-top:25px}.nav-menus-php .menu-name-label.howto span{margin-top:13px}#menu-name{width:100%}.nav-menus-php .major-publishing-actions .publishing-action{padding-top:1em}.nav-menus-php .delete-action{font-size:14px;line-height:30px}.description-wide,.menu-item-bar .menu-item-handle,.menu-item-settings{width:auto}.menu-item-settings{padding:10px}.menu-item-settings .description-thin,.menu-item-settings .description-wide,.menu-item-settings input{width:100%}.menu-item-settings input[type=checkbox],.menu-item-settings input[type=radio]{width:25px}.menu-settings-group{padding-left:0}.menu-settings-group-name{width:auto;margin-left:0}.menu-edit .checkbox-input{margin-top:0}.manage-menus select{margin:.5em 0}.widefat .menu-locations .menu-location-title{padding-top:16px}}@media only screen and (max-width:768px){#menu-locations-wrap .widefat{width:100%}} \ No newline at end of file diff --git a/wp-admin/custom-header.php b/wp-admin/custom-header.php index 71561332e..d345766af 100644 --- a/wp-admin/custom-header.php +++ b/wp-admin/custom-header.php @@ -719,7 +719,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?> check_admin_referer('custom-header-upload', '_wpnonce-custom-header-upload'); if ( ! current_theme_supports( 'custom-header', 'uploads' ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'Something went wrong.' ) . '</h1>' . '<p>' . __( 'The current theme does not support uploading a custom header image.' ) . '</p>', 403 ); @@ -877,7 +877,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?> if ( ! current_theme_supports( 'custom-header', 'uploads' ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'Something went wrong.' ) . '</h1>' . '<p>' . __( 'The current theme does not support uploading a custom header image.' ) . '</p>', 403 ); @@ -885,7 +885,7 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?> if ( ! empty( $_POST['skip-cropping'] ) && ! ( current_theme_supports( 'custom-header', 'flex-height' ) || current_theme_supports( 'custom-header', 'flex-width' ) ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'Something went wrong.' ) . '</h1>' . '<p>' . __( 'The current theme does not support a flexible sized header image.' ) . '</p>', 403 ); diff --git a/wp-admin/customize.php b/wp-admin/customize.php index 7c36549e2..d98c2a171 100644 --- a/wp-admin/customize.php +++ b/wp-admin/customize.php @@ -14,7 +14,7 @@ require_once( dirname( __FILE__ ) . '/admin.php' ); if ( ! current_user_can( 'customize' ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'You need a higher level of permission.' ) . '</h1>' . '<p>' . __( 'Sorry, you are not allowed to customize this site.' ) . '</p>', 403 ); @@ -31,7 +31,7 @@ if ( $wp_customize->changeset_post_id() ) { if ( ! current_user_can( get_post_type_object( 'customize_changeset' )->cap->edit_post, $changeset_post->ID ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'You need a higher level of permission.' ) . '</h1>' . '<p>' . __( 'Sorry, you are not allowed to edit this changeset.' ) . '</p>', 403 ); @@ -76,7 +76,7 @@ if ( $wp_customize->changeset_post_id() ) { if ( in_array( get_post_status( $changeset_post->ID ), array( 'publish', 'trash' ), true ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'Something went wrong.' ) . '</h1>' . '<p>' . __( 'This changeset cannot be further modified.' ) . '</p>' . '<p><a href="' . esc_url( remove_query_arg( 'changeset_uuid' ) ) . '">' . __( 'Customize New Changes' ) . '</a></p>', 403 diff --git a/wp-admin/edit-comments.php b/wp-admin/edit-comments.php index 47244f025..4076bf2d9 100644 --- a/wp-admin/edit-comments.php +++ b/wp-admin/edit-comments.php @@ -10,7 +10,7 @@ require_once( dirname( __FILE__ ) . '/admin.php' ); if ( ! current_user_can( 'edit_posts' ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'You need a higher level of permission.' ) . '</h1>' . '<p>' . __( 'Sorry, you are not allowed to edit comments.' ) . '</p>', 403 ); diff --git a/wp-admin/edit-tags.php b/wp-admin/edit-tags.php index d1656aec3..133d421da 100644 --- a/wp-admin/edit-tags.php +++ b/wp-admin/edit-tags.php @@ -23,7 +23,7 @@ if ( ! in_array( $tax->name, get_taxonomies( array( 'show_ui' => true ) ) ) ) { if ( ! current_user_can( $tax->cap->manage_terms ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'You need a higher level of permission.' ) . '</h1>' . '<p>' . __( 'Sorry, you are not allowed to manage terms in this taxonomy.' ) . '</p>', 403 ); @@ -72,7 +72,7 @@ case 'add-tag': if ( ! current_user_can( $tax->cap->edit_terms ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'You need a higher level of permission.' ) . '</h1>' . '<p>' . __( 'Sorry, you are not allowed to create terms in this taxonomy.' ) . '</p>', 403 ); @@ -96,7 +96,7 @@ case 'delete': if ( ! current_user_can( 'delete_term', $tag_ID ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'You need a higher level of permission.' ) . '</h1>' . '<p>' . __( 'Sorry, you are not allowed to delete this item.' ) . '</p>', 403 ); @@ -116,7 +116,7 @@ case 'bulk-delete': if ( ! current_user_can( $tax->cap->delete_terms ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'You need a higher level of permission.' ) . '</h1>' . '<p>' . __( 'Sorry, you are not allowed to delete these items.' ) . '</p>', 403 ); @@ -152,7 +152,7 @@ case 'editedtag': if ( ! current_user_can( 'edit_term', $tag_ID ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'You need a higher level of permission.' ) . '</h1>' . '<p>' . __( 'Sorry, you are not allowed to edit this item.' ) . '</p>', 403 ); diff --git a/wp-admin/edit.php b/wp-admin/edit.php index d97932b11..258952ebf 100644 --- a/wp-admin/edit.php +++ b/wp-admin/edit.php @@ -36,7 +36,7 @@ if ( ! $post_type_object ) if ( ! current_user_can( $post_type_object->cap->edit_posts ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'You need a higher level of permission.' ) . '</h1>' . '<p>' . __( 'Sorry, you are not allowed to edit posts in this post type.' ) . '</p>', 403 ); diff --git a/wp-admin/freedoms.php b/wp-admin/freedoms.php index 28c16461b..229137a60 100644 --- a/wp-admin/freedoms.php +++ b/wp-admin/freedoms.php @@ -14,6 +14,9 @@ $title = __( 'Freedoms' ); list( $display_version ) = explode( '-', get_bloginfo( 'version' ) ); include( ABSPATH . 'wp-admin/admin-header.php' ); + +$is_privacy_notice = isset( $_GET['privacy-notice'] ); + ?> <div class="wrap about-wrap full-width-layout"> @@ -26,10 +29,21 @@ include( ABSPATH . 'wp-admin/admin-header.php' ); <h2 class="nav-tab-wrapper wp-clearfix"> <a href="about.php" class="nav-tab"><?php _e( 'What’s New' ); ?></a> <a href="credits.php" class="nav-tab"><?php _e( 'Credits' ); ?></a> - <a href="freedoms.php" class="nav-tab nav-tab-active"><?php _e( 'Freedoms' ); ?></a> - <a href="privacy.php" class="nav-tab"><?php _e( 'Privacy' ); ?></a> + <a href="freedoms.php" class="nav-tab<?php if ( ! $is_privacy_notice ) { echo ' nav-tab-active'; } ?>"><?php _e( 'Freedoms' ); ?></a> + <a href="freedoms.php?privacy-notice" class="nav-tab<?php if ( $is_privacy_notice ) { echo ' nav-tab-active'; } ?>"><?php _e( 'Privacy' ); ?></a> </h2> +<?php if ( $is_privacy_notice ) : ?> + +<div class="about-wrap-content"> + <p class="about-description"><?php _e( 'From time to time, your WordPress site may send data to WordPress.org — including, but not limited to — the version of WordPress you are using, and a list of installed plugins and themes.' ); ?></p> + + <p><?php printf( __( 'This data is used to provide general enhancements to WordPress, which includes helping to protect your site by finding and automatically installing new updates. It is also used to calculate statistics, such as those shown on the <a href="%s">WordPress.org stats page</a>.' ), 'https://wordpress.org/about/stats/' ); ?></p> + + <p><?php printf( __( 'We take privacy and transparency very seriously. To learn more about what data we collect, and how we use it, please visit <a href="%s">WordPress.org/about/privacy</a>.' ), 'https://wordpress.org/about/privacy/' ); ?></p> +</div> + +<?php else : ?> <div class="about-wrap-content"> <p class="about-description"><?php printf( __( 'WordPress is Free and open source software, built by a distributed community of mostly volunteer developers from around the world. WordPress comes with some awesome, worldview-changing rights courtesy of its <a href="%s">license</a>, the GPL.' ), 'https://wordpress.org/about/license/' ); ?></p> @@ -52,5 +66,6 @@ include( ABSPATH . 'wp-admin/admin-header.php' ); <p><?php _e( 'Don’t you wish all software came with these freedoms? So do we! For more information, check out the <a href="https://www.fsf.org/">Free Software Foundation</a>.' ); ?></p> </div> +<?php endif; ?> </div> <?php include( ABSPATH . 'wp-admin/admin-footer.php' ); ?> diff --git a/wp-admin/includes/admin-filters.php b/wp-admin/includes/admin-filters.php index 79751a4ef..2d255cb33 100644 --- a/wp-admin/includes/admin-filters.php +++ b/wp-admin/includes/admin-filters.php @@ -45,6 +45,9 @@ add_action( 'admin_head', 'wp_color_scheme_settings' ); add_action( 'admin_head', 'wp_site_icon' ); add_action( 'admin_head', '_ipad_meta' ); +// Privacy tools +add_action( 'admin_menu', '_wp_privacy_hook_requests_page' ); + // Prerendering. if ( ! is_customize_preview() ) { add_filter( 'admin_print_styles', 'wp_resource_hints', 1 ); @@ -128,3 +131,22 @@ add_action( 'upgrader_process_complete', array( 'Language_Pack_Upgrader', 'async add_action( 'upgrader_process_complete', 'wp_version_check', 10, 0 ); add_action( 'upgrader_process_complete', 'wp_update_plugins', 10, 0 ); add_action( 'upgrader_process_complete', 'wp_update_themes', 10, 0 ); + +// Privacy hooks +add_filter( 'wp_privacy_personal_data_erasure_page', 'wp_privacy_process_personal_data_erasure_page', 10, 5 ); +add_filter( 'wp_privacy_personal_data_export_page', 'wp_privacy_process_personal_data_export_page', 10, 7 ); +add_action( 'wp_privacy_personal_data_export_file', 'wp_privacy_generate_personal_data_export_file', 10 ); +add_action( 'wp_privacy_personal_data_erased', '_wp_privacy_send_erasure_fulfillment_notification', 10 ); + +// Privacy policy text changes check. +add_action( 'admin_init', array( 'WP_Privacy_Policy_Content', 'text_change_check' ), 100 ); + +// Show a "postbox" with the text suggestions for a privacy policy. +add_action( 'edit_form_after_title', array( 'WP_Privacy_Policy_Content', 'notice' ) ); + +// Add the suggested policy text from WordPress. +add_action( 'admin_init', array( 'WP_Privacy_Policy_Content', 'add_suggested_content' ), 1 ); + +// Update the cached policy info when the policy page is updated. +add_action( 'post_updated', array( 'WP_Privacy_Policy_Content', '_policy_page_updated' ) ); + diff --git a/wp-admin/includes/ajax-actions.php b/wp-admin/includes/ajax-actions.php index 5985e3561..8fb348c6d 100644 --- a/wp-admin/includes/ajax-actions.php +++ b/wp-admin/includes/ajax-actions.php @@ -2442,7 +2442,7 @@ function wp_ajax_query_attachments() { $query = isset( $_REQUEST['query'] ) ? (array) $_REQUEST['query'] : array(); $keys = array( 's', 'order', 'orderby', 'posts_per_page', 'paged', 'post_mime_type', - 'post_parent', 'post__in', 'post__not_in', 'year', 'monthnum' + 'post_parent', 'author', 'post__in', 'post__not_in', 'year', 'monthnum' ); foreach ( get_taxonomies_for_attachments( 'objects' ) as $t ) { if ( $t->query_var && isset( $query[ $t->query_var ] ) ) { @@ -4017,3 +4017,402 @@ function wp_ajax_edit_theme_plugin_file() { ) ); } } + +/** + * Ajax handler for exporting a user's personal data. + * + * @since 4.9.6 + */ +function wp_ajax_wp_privacy_export_personal_data() { + + if ( empty( $_POST['id'] ) ) { + wp_send_json_error( __( 'Missing request ID.' ) ); + } + $request_id = (int) $_POST['id']; + + if ( $request_id < 1 ) { + wp_send_json_error( __( 'Invalid request ID.' ) ); + } + + if ( ! current_user_can( 'export_others_personal_data' ) ) { + wp_send_json_error( __( 'Invalid request.' ) ); + } + + check_ajax_referer( 'wp-privacy-export-personal-data-' . $request_id, 'security' ); + + // Get the request data. + $request = wp_get_user_request_data( $request_id ); + + if ( ! $request || 'export_personal_data' !== $request->action_name ) { + wp_send_json_error( __( 'Invalid request type.' ) ); + } + + $email_address = $request->email; + if ( ! is_email( $email_address ) ) { + wp_send_json_error( __( 'A valid email address must be given.' ) ); + } + + if ( ! isset( $_POST['exporter'] ) ) { + wp_send_json_error( __( 'Missing exporter index.' ) ); + } + $exporter_index = (int) $_POST['exporter']; + + if ( ! isset( $_POST['page'] ) ) { + wp_send_json_error( __( 'Missing page index.' ) ); + } + $page = (int) $_POST['page']; + + $send_as_email = isset( $_POST['sendAsEmail'] ) ? ( 'true' === $_POST['sendAsEmail'] ) : false; + + /** + * Filters the array of exporter callbacks. + * + * @since 4.9.6 + * + * @param array $args { + * An array of callable exporters of personal data. Default empty array. + * + * @type array { + * Array of personal data exporters. + * + * @type string $callback Callable exporter function that accepts an + * email address and a page and returns an array + * of name => value pairs of personal data. + * @type string $exporter_friendly_name Translated user facing friendly name for the + * exporter. + * } + * } + */ + $exporters = apply_filters( 'wp_privacy_personal_data_exporters', array() ); + + if ( ! is_array( $exporters ) ) { + wp_send_json_error( __( 'An exporter has improperly used the registration filter.' ) ); + } + + // Do we have any registered exporters? + if ( 0 < count( $exporters ) ) { + if ( $exporter_index < 1 ) { + wp_send_json_error( __( 'Exporter index cannot be negative.' ) ); + } + + if ( $exporter_index > count( $exporters ) ) { + wp_send_json_error( __( 'Exporter index out of range.' ) ); + } + + if ( $page < 1 ) { + wp_send_json_error( __( 'Page index cannot be less than one.' ) ); + } + + $exporter_keys = array_keys( $exporters ); + $exporter_key = $exporter_keys[ $exporter_index - 1 ]; + $exporter = $exporters[ $exporter_key ]; + + if ( ! is_array( $exporter ) ) { + wp_send_json_error( + /* translators: %s: array index */ + sprintf( __( 'Expected an array describing the exporter at index %s.' ), $exporter_key ) + ); + } + if ( ! array_key_exists( 'exporter_friendly_name', $exporter ) ) { + wp_send_json_error( + /* translators: %s: array index */ + sprintf( __( 'Exporter array at index %s does not include a friendly name.' ), $exporter_key ) + ); + } + if ( ! array_key_exists( 'callback', $exporter ) ) { + wp_send_json_error( + /* translators: %s: exporter friendly name */ + sprintf( __( 'Exporter does not include a callback: %s.' ), esc_html( $exporter['exporter_friendly_name'] ) ) + ); + } + if ( ! is_callable( $exporter['callback'] ) ) { + wp_send_json_error( + /* translators: %s: exporter friendly name */ + sprintf( __( 'Exporter callback is not a valid callback: %s.' ), esc_html( $exporter['exporter_friendly_name'] ) ) + ); + } + + $callback = $exporter['callback']; + $exporter_friendly_name = $exporter['exporter_friendly_name']; + + $response = call_user_func( $callback, $email_address, $page ); + if ( is_wp_error( $response ) ) { + wp_send_json_error( $response ); + } + + if ( ! is_array( $response ) ) { + wp_send_json_error( + /* translators: %s: exporter friendly name */ + sprintf( __( 'Expected response as an array from exporter: %s.' ), esc_html( $exporter_friendly_name ) ) + ); + } + if ( ! array_key_exists( 'data', $response ) ) { + wp_send_json_error( + /* translators: %s: exporter friendly name */ + sprintf( __( 'Expected data in response array from exporter: %s.' ), esc_html( $exporter_friendly_name ) ) + ); + } + if ( ! is_array( $response['data'] ) ) { + wp_send_json_error( + /* translators: %s: exporter friendly name */ + sprintf( __( 'Expected data array in response array from exporter: %s.' ), esc_html( $exporter_friendly_name ) ) + ); + } + if ( ! array_key_exists( 'done', $response ) ) { + wp_send_json_error( + /* translators: %s: exporter friendly name */ + sprintf( __( 'Expected done (boolean) in response array from exporter: %s.' ), esc_html( $exporter_friendly_name ) ) + ); + } + } else { + // No exporters, so we're done. + $exporter_key = ''; + + $response = array( + 'data' => array(), + 'done' => true, + ); + } + + /** + * Filters a page of personal data exporter data. Used to build the export report. + * + * Allows the export response to be consumed by destinations in addition to Ajax. + * + * @since 4.9.6 + * + * @param array $response The personal data for the given exporter and page. + * @param int $exporter_index The index of the exporter that provided this data. + * @param string $email_address The email address associated with this personal data. + * @param int $page The page for this response. + * @param int $request_id The privacy request post ID associated with this request. + * @param bool $send_as_email Whether the final results of the export should be emailed to the user. + * @param string $exporter_key The key (slug) of the exporter that provided this data. + */ + $response = apply_filters( 'wp_privacy_personal_data_export_page', $response, $exporter_index, $email_address, $page, $request_id, $send_as_email, $exporter_key ); + + if ( is_wp_error( $response ) ) { + wp_send_json_error( $response ); + } + + wp_send_json_success( $response ); +} + +/** + * Ajax handler for erasing personal data. + * + * @since 4.9.6 + */ +function wp_ajax_wp_privacy_erase_personal_data() { + + if ( empty( $_POST['id'] ) ) { + wp_send_json_error( __( 'Missing request ID.' ) ); + } + + $request_id = (int) $_POST['id']; + + if ( $request_id < 1 ) { + wp_send_json_error( __( 'Invalid request ID.' ) ); + } + + // Both capabilities are required to avoid confusion, see `_wp_personal_data_removal_page()`. + if ( ! current_user_can( 'erase_others_personal_data' ) || ! current_user_can( 'delete_users' ) ) { + wp_send_json_error( __( 'Invalid request.' ) ); + } + + check_ajax_referer( 'wp-privacy-erase-personal-data-' . $request_id, 'security' ); + + // Get the request data. + $request = wp_get_user_request_data( $request_id ); + + if ( ! $request || 'remove_personal_data' !== $request->action_name ) { + wp_send_json_error( __( 'Invalid request ID.' ) ); + } + + $email_address = $request->email; + + if ( ! is_email( $email_address ) ) { + wp_send_json_error( __( 'Invalid email address in request.' ) ); + } + + if ( ! isset( $_POST['eraser'] ) ) { + wp_send_json_error( __( 'Missing eraser index.' ) ); + } + + $eraser_index = (int) $_POST['eraser']; + + if ( ! isset( $_POST['page'] ) ) { + wp_send_json_error( __( 'Missing page index.' ) ); + } + + $page = (int) $_POST['page']; + + /** + * Filters the array of personal data eraser callbacks. + * + * @since 4.9.6 + * + * @param array $args { + * An array of callable erasers of personal data. Default empty array. + * + * @type array { + * Array of personal data exporters. + * + * @type string $callback Callable eraser that accepts an email address and + * a page and returns an array with boolean values for + * whether items were removed or retained and any messages + * from the eraser, as well as if additional pages are + * available. + * @type string $exporter_friendly_name Translated user facing friendly name for the eraser. + * } + * } + */ + $erasers = apply_filters( 'wp_privacy_personal_data_erasers', array() ); + + // Do we have any registered erasers? + if ( 0 < count( $erasers ) ) { + + if ( $eraser_index < 1 ) { + wp_send_json_error( __( 'Eraser index cannot be less than one.' ) ); + } + + if ( $eraser_index > count( $erasers ) ) { + wp_send_json_error( __( 'Eraser index is out of range.' ) ); + } + + if ( $page < 1 ) { + wp_send_json_error( __( 'Page index cannot be less than one.' ) ); + } + + $eraser_keys = array_keys( $erasers ); + $eraser_key = $eraser_keys[ $eraser_index - 1 ]; + $eraser = $erasers[ $eraser_key ]; + + if ( ! is_array( $eraser ) ) { + /* translators: %d: array index */ + wp_send_json_error( sprintf( __( 'Expected an array describing the eraser at index %d.' ), $eraser_index ) ); + } + + if ( ! array_key_exists( 'callback', $eraser ) ) { + /* translators: %d: array index */ + wp_send_json_error( sprintf( __( 'Eraser array at index %d does not include a callback.' ), $eraser_index ) ); + } + + if ( ! is_callable( $eraser['callback'] ) ) { + /* translators: %d: array index */ + wp_send_json_error( sprintf( __( 'Eraser callback at index %d is not a valid callback.' ), $eraser_index ) ); + } + + if ( ! array_key_exists( 'eraser_friendly_name', $eraser ) ) { + /* translators: %d: array index */ + wp_send_json_error( sprintf( __( 'Eraser array at index %d does not include a friendly name.' ), $eraser_index ) ); + } + + $callback = $eraser['callback']; + $eraser_friendly_name = $eraser['eraser_friendly_name']; + + $response = call_user_func( $callback, $email_address, $page ); + + if ( is_wp_error( $response ) ) { + wp_send_json_error( $response ); + } + + if ( ! is_array( $response ) ) { + wp_send_json_error( + sprintf( + /* translators: 1: eraser friendly name, 2: array index */ + __( 'Did not receive array from %1$s eraser (index %2$d).' ), + esc_html( $eraser_friendly_name ), + $eraser_index + ) + ); + } + + if ( ! array_key_exists( 'items_removed', $response ) ) { + wp_send_json_error( + sprintf( + /* translators: 1: eraser friendly name, 2: array index */ + __( 'Expected items_removed key in response array from %1$s eraser (index %2$d).' ), + esc_html( $eraser_friendly_name ), + $eraser_index + ) + ); + } + + if ( ! array_key_exists( 'items_retained', $response ) ) { + wp_send_json_error( + sprintf( + /* translators: 1: eraser friendly name, 2: array index */ + __( 'Expected items_retained key in response array from %1$s eraser (index %2$d).' ), + esc_html( $eraser_friendly_name ), + $eraser_index + ) + ); + } + + if ( ! array_key_exists( 'messages', $response ) ) { + wp_send_json_error( + sprintf( + /* translators: 1: eraser friendly name, 2: array index */ + __( 'Expected messages key in response array from %1$s eraser (index %2$d).' ), + esc_html( $eraser_friendly_name ), + $eraser_index + ) + ); + } + + if ( ! is_array( $response['messages'] ) ) { + wp_send_json_error( + sprintf( + /* translators: 1: eraser friendly name, 2: array index */ + __( 'Expected messages key to reference an array in response array from %1$s eraser (index %2$d).' ), + esc_html( $eraser_friendly_name ), + $eraser_index + ) + ); + } + + if ( ! array_key_exists( 'done', $response ) ) { + wp_send_json_error( + sprintf( + /* translators: 1: eraser friendly name, 2: array index */ + __( 'Expected done flag in response array from %1$s eraser (index %2$d).' ), + esc_html( $eraser_friendly_name ), + $eraser_index + ) + ); + } + } else { + // No erasers, so we're done. + $eraser_key = ''; + + $response = array( + 'items_removed' => false, + 'items_retained' => false, + 'messages' => array(), + 'done' => true, + ); + } + + /** + * Filters a page of personal data eraser data. + * + * Allows the erasure response to be consumed by destinations in addition to Ajax. + * + * @since 4.9.6 + * + * @param array $response The personal data for the given exporter and page. + * @param int $eraser_index The index of the eraser that provided this data. + * @param string $email_address The email address associated with this personal data. + * @param int $page The page for this response. + * @param int $request_id The privacy request post ID associated with this request. + * @param string $eraser_key The key (slug) of the eraser that provided this data. + */ + $response = apply_filters( 'wp_privacy_personal_data_erasure_page', $response, $eraser_index, $email_address, $page, $request_id, $eraser_key ); + + if ( is_wp_error( $response ) ) { + wp_send_json_error( $response ); + } + + wp_send_json_success( $response ); +} diff --git a/wp-admin/includes/bookmark.php b/wp-admin/includes/bookmark.php index cd952a7f1..2608af756 100644 --- a/wp-admin/includes/bookmark.php +++ b/wp-admin/includes/bookmark.php @@ -28,7 +28,7 @@ function add_link() { function edit_link( $link_id = 0 ) { if ( ! current_user_can( 'manage_links' ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'You need a higher level of permission.' ) . '</h1>' . '<p>' . __( 'Sorry, you are not allowed to edit the links for this site.' ) . '</p>', 403 ); diff --git a/wp-admin/includes/class-wp-community-events.php b/wp-admin/includes/class-wp-community-events.php index 79c4a85ad..bbb743d55 100644 --- a/wp-admin/includes/class-wp-community-events.php +++ b/wp-admin/includes/class-wp-community-events.php @@ -234,7 +234,6 @@ class WP_Community_Events { */ public static function get_unsafe_client_ip() { $client_ip = $netmask = false; - $ip_prefix = ''; // In order of preference, with the best ones for this purpose first. $address_headers = array( @@ -265,43 +264,13 @@ class WP_Community_Events { return false; } - // Detect what kind of IP address this is. - $is_ipv6 = substr_count( $client_ip, ':' ) > 1; - $is_ipv4 = ( 3 === substr_count( $client_ip, '.' ) ); + $anon_ip = wp_privacy_anonymize_ip( $client_ip, true ); - if ( $is_ipv6 && $is_ipv4 ) { - // IPv6 compatibility mode, temporarily strip the IPv6 part, and treat it like IPv4. - $ip_prefix = '::ffff:'; - $client_ip = preg_replace( '/^\[?[0-9a-f:]*:/i', '', $client_ip ); - $client_ip = str_replace( ']', '', $client_ip ); - $is_ipv6 = false; - } - - if ( $is_ipv6 ) { - // IPv6 addresses will always be enclosed in [] if there's a port. - $ip_start = 1; - $ip_end = (int) strpos( $client_ip, ']' ) - 1; - $netmask = 'ffff:ffff:ffff:ffff:0000:0000:0000:0000'; - - // Strip the port (and [] from IPv6 addresses), if they exist. - if ( $ip_end > 0 ) { - $client_ip = substr( $client_ip, $ip_start, $ip_end ); - } - - // Partially anonymize the IP by reducing it to the corresponding network ID. - if ( function_exists( 'inet_pton' ) && function_exists( 'inet_ntop' ) ) { - $client_ip = inet_ntop( inet_pton( $client_ip ) & inet_pton( $netmask ) ); - } - } elseif ( $is_ipv4 ) { - // Strip any port and partially anonymize the IP. - $last_octet_position = strrpos( $client_ip, '.' ); - $client_ip = substr( $client_ip, 0, $last_octet_position ) . '.0'; - } else { + if ( '0.0.0.0' === $anon_ip || '::' === $anon_ip ) { return false; } - // Restore the IPv6 prefix to compatibility mode addresses. - return $ip_prefix . $client_ip; + return $anon_ip; } /** diff --git a/wp-admin/includes/class-wp-internal-pointers.php b/wp-admin/includes/class-wp-internal-pointers.php index 94796c1ee..abdb0de41 100644 --- a/wp-admin/includes/class-wp-internal-pointers.php +++ b/wp-admin/includes/class-wp-internal-pointers.php @@ -43,7 +43,7 @@ final class WP_Internal_Pointers { * ) */ $registered_pointers = array( - // None currently + 'index.php' => 'wp496_privacy', ); // Check if screen related pointer is registered @@ -66,7 +66,11 @@ final class WP_Internal_Pointers { * ) */ $caps_required = array( - // None currently + 'wp496_privacy' => array( + 'manage_privacy_options', + 'export_others_personal_data', + 'erase_others_personal_data', + ), ); // Get dismissed pointers @@ -151,6 +155,39 @@ final class WP_Internal_Pointers { public static function pointer_wp390_widgets() {} public static function pointer_wp410_dfw() {} + /** + * Display a pointer for the new privacy tools. + * + * @since 4.9.6 + */ + public static function pointer_wp496_privacy() { + $content = '<h3>' . __( 'Personal Data and Privacy' ) . '</h3>'; + $content .= '<h4>' . __( 'Personal Data Export and Erasure' ) . '</h4>'; + $content .= '<p>' . __( 'New <strong>Tools</strong> have been added to help you with personal data export and erasure requests.' ) . '</p>'; + $content .= '<h4>' . __( 'Privacy Policy' ) . '</h4>'; + $content .= '<p>' . __( 'Create or select your site’s privacy policy page under <strong>Settings > Privacy</strong> to keep your users informed and aware.' ) . '</p>'; + + if ( is_rtl() ) { + $position = array( + 'edge' => 'right', + 'align' => 'bottom', + ); + } else { + $position = array( + 'edge' => 'left', + 'align' => 'bottom', + ); + } + + $js_args = array( + 'content' => $content, + 'position' => $position, + 'pointerClass' => 'wp-pointer arrow-bottom', + 'pointerWidth' => 420, + ); + self::print_js( 'wp496_privacy', '#menu-tools', $js_args ); + } + /** * Prevents new users from seeing existing 'new feature' pointers. * @@ -161,6 +198,6 @@ final class WP_Internal_Pointers { * @param int $user_id User ID. */ public static function dismiss_pointers_for_new_users( $user_id ) { - add_user_meta( $user_id, 'dismissed_wp_pointers', '' ); + add_user_meta( $user_id, 'dismissed_wp_pointers', 'wp496_privacy' ); } } diff --git a/wp-admin/includes/class-wp-media-list-table.php b/wp-admin/includes/class-wp-media-list-table.php index 118a5ac0d..9cbae42e8 100644 --- a/wp-admin/includes/class-wp-media-list-table.php +++ b/wp-admin/includes/class-wp-media-list-table.php @@ -119,8 +119,15 @@ class WP_Media_List_Table extends WP_List_Table { $label[0] ); } + $type_links['detached'] = '<option value="detached"' . ( $this->detached ? ' selected="selected"' : '' ) . '>' . __( 'Unattached' ) . '</option>'; + $type_links['mine'] = sprintf( + '<option value="mine"%s>%s</option>', + selected( 'mine' === $filter, true, false ), + _x( 'Mine', 'media items' ) + ); + if ( $this->is_trash || ( defined( 'MEDIA_TRASH') && MEDIA_TRASH ) ) { $type_links['trash'] = sprintf( '<option value="trash"%s>%s</option>', @@ -128,6 +135,7 @@ class WP_Media_List_Table extends WP_List_Table { _x( 'Trash', 'attachment filter' ) ); } + return $type_links; } diff --git a/wp-admin/includes/class-wp-ms-users-list-table.php b/wp-admin/includes/class-wp-ms-users-list-table.php index 86af8becb..c2216f67f 100644 --- a/wp-admin/includes/class-wp-ms-users-list-table.php +++ b/wp-admin/includes/class-wp-ms-users-list-table.php @@ -255,6 +255,10 @@ class WP_MS_Users_List_Table extends WP_List_Table { public function column_name( $user ) { if ( $user->first_name && $user->last_name ) { echo "$user->first_name $user->last_name"; + } elseif ( $user->first_name ) { + echo $user->first_name; + } elseif ( $user->last_name ) { + echo $user->last_name; } else { echo '<span aria-hidden="true">—</span><span class="screen-reader-text">' . _x( 'Unknown', 'name' ) . '</span>'; } diff --git a/wp-admin/includes/class-wp-users-list-table.php b/wp-admin/includes/class-wp-users-list-table.php index 7382f4de3..8dd579383 100644 --- a/wp-admin/includes/class-wp-users-list-table.php +++ b/wp-admin/includes/class-wp-users-list-table.php @@ -488,6 +488,10 @@ class WP_Users_List_Table extends WP_List_Table { case 'name': if ( $user_object->first_name && $user_object->last_name ) { $r .= "$user_object->first_name $user_object->last_name"; + } elseif ( $user_object->first_name ) { + $r .= $user_object->first_name; + } elseif ( $user_object->last_name ) { + $r .= $user_object->last_name; } else { $r .= '<span aria-hidden="true">—</span><span class="screen-reader-text">' . _x( 'Unknown', 'name' ) . '</span>'; } diff --git a/wp-admin/includes/file.php b/wp-admin/includes/file.php index ced798288..f9feb381b 100644 --- a/wp-admin/includes/file.php +++ b/wp-admin/includes/file.php @@ -589,7 +589,7 @@ function wp_edit_theme_plugin_file( $args ) { } if ( ! isset( $result['message'] ) ) { - $message = __( 'An unidentified error has occurred.' ); + $message = __( 'Something went wrong.' ); } else { $message = $result['message']; unset( $result['message'] ); @@ -1797,3 +1797,450 @@ function wp_print_request_filesystem_credentials_modal() { </div> <?php } + +/** + * Generate a single group for the personal data export report. + * + * @since 4.9.6 + * + * @param array $group_data { + * The group data to render. + * + * @type string $group_label The user-facing heading for the group, e.g. 'Comments'. + * @type array $items { + * An array of group items. + * + * @type array $group_item_data { + * An array of name-value pairs for the item. + * + * @type string $name The user-facing name of an item name-value pair, e.g. 'IP Address'. + * @type string $value The user-facing value of an item data pair, e.g. '50.60.70.0'. + * } + * } + * } + * @return string The HTML for this group and its items. + */ +function wp_privacy_generate_personal_data_export_group_html( $group_data ) { + $allowed_tags = array( + 'a' => array( + 'href' => array(), + 'target' => array() + ), + 'br' => array() + ); + $allowed_protocols = array( 'http', 'https' ); + $group_html = ''; + + $group_html .= '<h2>' . esc_html( $group_data['group_label'] ) . '</h2>'; + $group_html .= '<div>'; + + foreach ( (array) $group_data['items'] as $group_item_id => $group_item_data ) { + $group_html .= '<table>'; + $group_html .= '<tbody>'; + + foreach ( (array) $group_item_data as $group_item_datum ) { + $value = $group_item_datum['value']; + // If it looks like a link, make it a link + if ( false === strpos( $value, ' ' ) && ( 0 === strpos( $value, 'http://' ) || 0 === strpos( $value, 'https://' ) ) ) { + $value = '<a href="' . esc_url( $value ) . '">' . esc_html( $value ) . '</a>'; + } + + $group_html .= '<tr>'; + $group_html .= '<th>' . esc_html( $group_item_datum['name'] ) . '</th>'; + $group_html .= '<td>' . wp_kses( $value, $allowed_tags, $allowed_protocols ) . '</td>'; + $group_html .= '</tr>'; + } + + $group_html .= '</tbody>'; + $group_html .= '</table>'; + } + + $group_html .= '</div>'; + + return $group_html; +} + +/** + * Generate the personal data export file. + * + * @since 4.9.6 + * + * @param int $request_id The export request ID. + */ +function wp_privacy_generate_personal_data_export_file( $request_id ) { + if ( ! class_exists( 'ZipArchive' ) ) { + wp_send_json_error( __( 'Unable to generate export file. ZipArchive not available.' ) ); + } + + // Get the request data. + $request = wp_get_user_request_data( $request_id ); + + if ( ! $request || 'export_personal_data' !== $request->action_name ) { + wp_send_json_error( __( 'Invalid request ID when generating export file.' ) ); + } + + $email_address = $request->email; + + if ( ! is_email( $email_address ) ) { + wp_send_json_error( __( 'Invalid email address when generating export file.' ) ); + } + + // Create the exports folder if needed. + $exports_dir = wp_privacy_exports_dir(); + $exports_url = wp_privacy_exports_url(); + + $result = wp_mkdir_p( $exports_dir ); + if ( is_wp_error( $result ) ) { + wp_send_json_error( $result->get_error_message() ); + } + + // Protect export folder from browsing. + $index_pathname = $exports_dir . 'index.html'; + if ( ! file_exists( $index_pathname ) ) { + $file = fopen( $index_pathname, 'w' ); + if ( false === $file ) { + wp_send_json_error( __( 'Unable to protect export folder from browsing.' ) ); + } + fwrite( $file, 'Silence is golden.' ); + fclose( $file ); + } + + $stripped_email = str_replace( '@', '-at-', $email_address ); + $stripped_email = sanitize_title( $stripped_email ); // slugify the email address + $obscura = wp_generate_password( 32, false, false ); + $file_basename = 'wp-personal-data-file-' . $stripped_email . '-' . $obscura; + $html_report_filename = $file_basename . '.html'; + $html_report_pathname = wp_normalize_path( $exports_dir . $html_report_filename ); + $file = fopen( $html_report_pathname, 'w' ); + if ( false === $file ) { + wp_send_json_error( __( 'Unable to open export file (HTML report) for writing.' ) ); + } + + $title = sprintf( + /* translators: %s: user's e-mail address */ + __( 'Personal Data Export for %s' ), + $email_address + ); + + // Open HTML. + fwrite( $file, "<!DOCTYPE html>\n" ); + fwrite( $file, "<html>\n" ); + + // Head. + fwrite( $file, "<head>\n" ); + fwrite( $file, "<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />\n" ); + fwrite( $file, "<style type='text/css'>" ); + fwrite( $file, "body { color: black; font-family: Arial, sans-serif; font-size: 11pt; margin: 15px auto; width: 860px; }" ); + fwrite( $file, "table { background: #f0f0f0; border: 1px solid #ddd; margin-bottom: 20px; width: 100%; }" ); + fwrite( $file, "th { padding: 5px; text-align: left; width: 20%; }" ); + fwrite( $file, "td { padding: 5px; }" ); + fwrite( $file, "tr:nth-child(odd) { background-color: #fafafa; }" ); + fwrite( $file, "</style>" ); + fwrite( $file, "<title>" ); + fwrite( $file, esc_html( $title ) ); + fwrite( $file, "</title>" ); + fwrite( $file, "</head>\n" ); + + // Body. + fwrite( $file, "<body>\n" ); + + // Heading. + fwrite( $file, "<h1>" . esc_html__( 'Personal Data Export' ) . "</h1>" ); + + // And now, all the Groups. + $groups = get_post_meta( $request_id, '_export_data_grouped', true ); + + // First, build an "About" group on the fly for this report. + $about_group = array( + 'group_label' => __( 'About' ), + 'items' => array( + 'about-1' => array( + array( + 'name' => _x( 'Report generated for', 'email address' ), + 'value' => $email_address, + ), + array( + 'name' => _x( 'For site', 'website name' ), + 'value' => get_bloginfo( 'name' ), + ), + array( + 'name' => _x( 'At URL', 'website URL' ), + 'value' => get_bloginfo( 'url' ), + ), + array( + 'name' => _x( 'On', 'date/time' ), + 'value' => current_time( 'mysql' ), + ), + ), + ), + ); + + // Merge in the special about group. + $groups = array_merge( array( 'about' => $about_group ), $groups ); + + // Now, iterate over every group in $groups and have the formatter render it in HTML. + foreach ( (array) $groups as $group_id => $group_data ) { + fwrite( $file, wp_privacy_generate_personal_data_export_group_html( $group_data ) ); + } + + fwrite( $file, "</body>\n" ); + + // Close HTML. + fwrite( $file, "</html>\n" ); + fclose( $file ); + + /* + * Now, generate the ZIP. + * + * If an archive has already been generated, then remove it and reuse the + * filename, to avoid breaking any URLs that may have been previously sent + * via email. + */ + $error = false; + $archive_url = get_post_meta( $request_id, '_export_file_url', true ); + $archive_pathname = get_post_meta( $request_id, '_export_file_path', true ); + + if ( empty( $archive_pathname ) || empty( $archive_url ) ) { + $archive_filename = $file_basename . '.zip'; + $archive_pathname = $exports_dir . $archive_filename; + $archive_url = $exports_url . $archive_filename; + + update_post_meta( $request_id, '_export_file_url', $archive_url ); + update_post_meta( $request_id, '_export_file_path', wp_normalize_path( $archive_pathname ) ); + } + + if ( ! empty( $archive_pathname ) && file_exists( $archive_pathname ) ) { + wp_delete_file( $archive_pathname ); + } + + $zip = new ZipArchive; + if ( true === $zip->open( $archive_pathname, ZipArchive::CREATE ) ) { + if ( ! $zip->addFile( $html_report_pathname, 'index.html' ) ) { + $error = __( 'Unable to add data to export file.' ); + } + + $zip->close(); + + if ( ! $error ) { + /** + * Fires right after all personal data has been written to the export file. + * + * @since 4.9.6 + * + * @param string $archive_pathname The full path to the export file on the filesystem. + * @param string $archive_url The URL of the archive file. + * @param string $html_report_pathname The full path to the personal data report on the filesystem. + * @param string $request_id The export request ID. + */ + do_action( 'wp_privacy_personal_data_export_file_created', $archive_pathname, $archive_url, $html_report_pathname, $request_id ); + } + } else { + $error = __( 'Unable to open export file (archive) for writing.' ); + } + + // And remove the HTML file. + unlink( $html_report_pathname ); + + if ( $error ) { + wp_send_json_error( $error ); + } +} + +/** + * Send an email to the user with a link to the personal data export file + * + * @since 4.9.6 + * + * @param int $request_id The request ID for this personal data export. + * @return true|WP_Error True on success or `WP_Error` on failure. + */ +function wp_privacy_send_personal_data_export_email( $request_id ) { + // Get the request data. + $request = wp_get_user_request_data( $request_id ); + + if ( ! $request || 'export_personal_data' !== $request->action_name ) { + return new WP_Error( 'invalid', __( 'Invalid request ID when sending personal data export email.' ) ); + } + + /** This filter is documented in wp-admin/includes/file.php */ + $expiration = apply_filters( 'wp_privacy_export_expiration', 3 * DAY_IN_SECONDS ); + $expiration_date = date_i18n( get_option( 'date_format' ), time() + $expiration ); + +/* translators: Do not translate EXPIRATION, LINK, EMAIL, SITENAME, SITEURL: those are placeholders. */ +$email_text = __( +'Howdy, + +Your request for an export of personal data has been completed. You may +download your personal data by clicking on the link below. For privacy +and security, we will automatically delete the file on ###EXPIRATION###, +so please download it before then. + +###LINK### + +This email has been sent to ###EMAIL###. + +Regards, +All at ###SITENAME### +###SITEURL###' +); + + /** + * Filters the text of the email sent with a personal data export file. + * + * The following strings have a special meaning and will get replaced dynamically: + * ###EXPIRATION### The date when the URL will be automatically deleted. + * ###LINK### URL of the personal data export file for the user. + * ###EMAIL### The email we are sending to. + * ###SITENAME### The name of the site. + * ###SITEURL### The URL to the site. + * + * @since 4.9.6 + * + * @param string $email_text Text in the email. + * @param int $request_id The request ID for this personal data export. + */ + $content = apply_filters( 'wp_privacy_personal_data_email_content', $email_text, $request_id ); + + $email_address = $request->email; + $export_file_url = get_post_meta( $request_id, '_export_file_url', true ); + $site_name = is_multisite() ? get_site_option( 'site_name' ) : get_option( 'blogname' ); + $site_url = network_home_url(); + + $content = str_replace( '###EXPIRATION###', $expiration_date, $content ); + $content = str_replace( '###LINK###', esc_url_raw( $export_file_url ), $content ); + $content = str_replace( '###EMAIL###', $email_address, $content ); + $content = str_replace( '###SITENAME###', wp_specialchars_decode( $site_name, ENT_QUOTES ), $content ); + $content = str_replace( '###SITEURL###', esc_url_raw( $site_url ), $content ); + + $mail_success = wp_mail( + $email_address, + sprintf( + __( '[%s] Personal Data Export' ), + wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES ) + ), + $content + ); + + if ( ! $mail_success ) { + return new WP_Error( 'error', __( 'Unable to send personal data export email.' ) ); + } + + return true; +} + +/** + * Intercept personal data exporter page ajax responses in order to assemble the personal data export file. + * @see wp_privacy_personal_data_export_page + * @since 4.9.6 + * + * @param array $response The response from the personal data exporter for the given page. + * @param int $exporter_index The index of the personal data exporter. Begins at 1. + * @param string $email_address The email address of the user whose personal data this is. + * @param int $page The page of personal data for this exporter. Begins at 1. + * @param int $request_id The request ID for this personal data export. + * @param bool $send_as_email Whether the final results of the export should be emailed to the user. + * @param string $exporter_key The slug (key) of the exporter. + * @return array The filtered response. + */ +function wp_privacy_process_personal_data_export_page( $response, $exporter_index, $email_address, $page, $request_id, $send_as_email, $exporter_key ) { + /* Do some simple checks on the shape of the response from the exporter. + * If the exporter response is malformed, don't attempt to consume it - let it + * pass through to generate a warning to the user by default ajax processing. + */ + if ( ! is_array( $response ) ) { + return $response; + } + + if ( ! array_key_exists( 'done', $response ) ) { + return $response; + } + + if ( ! array_key_exists( 'data', $response ) ) { + return $response; + } + + if ( ! is_array( $response['data'] ) ) { + return $response; + } + + // Get the request data. + $request = wp_get_user_request_data( $request_id ); + + if ( ! $request || 'export_personal_data' !== $request->action_name ) { + wp_send_json_error( __( 'Invalid request ID when merging exporter data.' ) ); + } + + $export_data = array(); + + // First exporter, first page? Reset the report data accumulation array. + if ( 1 === $exporter_index && 1 === $page ) { + update_post_meta( $request_id, '_export_data_raw', $export_data ); + } else { + $export_data = get_post_meta( $request_id, '_export_data_raw', true ); + } + + // Now, merge the data from the exporter response into the data we have accumulated already. + $export_data = array_merge( $export_data, $response['data'] ); + update_post_meta( $request_id, '_export_data_raw', $export_data ); + + // If we are not yet on the last page of the last exporter, return now. + $exporters = apply_filters( 'wp_privacy_personal_data_exporters', array() ); + $is_last_exporter = $exporter_index === count( $exporters ); + $exporter_done = $response['done']; + if ( ! $is_last_exporter || ! $exporter_done ) { + return $response; + } + + // Last exporter, last page - let's prepare the export file. + + // First we need to re-organize the raw data hierarchically in groups and items. + $groups = array(); + foreach ( (array) $export_data as $export_datum ) { + $group_id = $export_datum['group_id']; + $group_label = $export_datum['group_label']; + if ( ! array_key_exists( $group_id, $groups ) ) { + $groups[ $group_id ] = array( + 'group_label' => $group_label, + 'items' => array(), + ); + } + + $item_id = $export_datum['item_id']; + if ( ! array_key_exists( $item_id, $groups[ $group_id ]['items'] ) ) { + $groups[ $group_id ]['items'][ $item_id ] = array(); + } + + $old_item_data = $groups[ $group_id ]['items'][ $item_id ]; + $merged_item_data = array_merge( $export_datum['data'], $old_item_data ); + $groups[ $group_id ]['items'][ $item_id ] = $merged_item_data; + } + + // Then save the grouped data into the request. + delete_post_meta( $request_id, '_export_data_raw' ); + update_post_meta( $request_id, '_export_data_grouped', $groups ); + + // Generate the export file from the collected, grouped personal data. + do_action( 'wp_privacy_personal_data_export_file', $request_id ); + + // Clear the grouped data now that it is no longer needed. + delete_post_meta( $request_id, '_export_data_grouped' ); + + // If the destination is email, send it now. + if ( $send_as_email ) { + $mail_success = wp_privacy_send_personal_data_export_email( $request_id ); + if ( is_wp_error( $mail_success ) ) { + wp_send_json_error( $mail_success->get_error_message() ); + } + } else { + // Modify the response to include the URL of the export file so the browser can fetch it. + $export_file_url = get_post_meta( $request_id, '_export_file_url', true ); + if ( ! empty( $export_file_url ) ) { + $response['url'] = $export_file_url; + } + } + + // Update the request to completed state. + _wp_privacy_completed_request( $request_id ); + + return $response; +} diff --git a/wp-admin/includes/image.php b/wp-admin/includes/image.php index 90fa2942c..596aa7961 100644 --- a/wp-admin/includes/image.php +++ b/wp-admin/includes/image.php @@ -241,7 +241,7 @@ function wp_generate_attachment_metadata( $attachment_id, $file ) { $sizes[ $s ]['crop'] = $_wp_additional_image_sizes[ $s ]['crop']; } else { // Force thumbnails to be soft crops. - if ( ! 'thumbnail' === $s ) { + if ( 'thumbnail' !== $s ) { $sizes[ $s ]['crop'] = get_option( "{$s}_crop" ); } } diff --git a/wp-admin/includes/misc.php b/wp-admin/includes/misc.php index d060c138d..c44590f6e 100644 --- a/wp-admin/includes/misc.php +++ b/wp-admin/includes/misc.php @@ -1099,15 +1099,17 @@ function wp_admin_canonical_url() { * @since 4.9.0 */ function wp_admin_headers() { - $policy = 'same-origin'; + $policy = 'strict-origin-when-cross-origin'; /** - * Filters the admin referrer policy header value. Default 'same-origin'. + * Filters the admin referrer policy header value. * * @since 4.9.0 + * @since 4.9.5 The default value was changed to 'strict-origin-when-cross-origin'. + * * @link https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy * - * @param string $policy The referrer policy header value. + * @param string $policy The admin referrer policy header value. Default 'strict-origin-when-cross-origin'. */ $policy = apply_filters( 'admin_referrer_policy', $policy ); @@ -1211,3 +1213,581 @@ All at ###SITENAME### restore_previous_locale(); } } + +/** + * WP_Privacy_Policy_Content class. + * TODO: move this to a new file. + * + * @since 4.9.6 + */ +final class WP_Privacy_Policy_Content { + + private static $policy_content = array(); + + /** + * Constructor + * + * @since 4.9.6 + */ + private function __construct() {} + + /** + * Add content to the postbox shown when editing the privacy policy. + * + * Plugins and themes should suggest text for inclusion in the site's privacy policy. + * The suggested text should contain information about any functionality that affects user privacy, + * and will be shown in the Suggested Privacy Policy Content postbox. + * + * Intended for use from `wp_add_privacy_policy_content()`. + * + * $since 4.9.6 + * + * @param string $plugin_name The name of the plugin or theme that is suggesting content for the site's privacy policy. + * @param string $policy_text The suggested content for inclusion in the policy. + */ + public static function add( $plugin_name, $policy_text ) { + if ( empty( $plugin_name ) || empty( $policy_text ) ) { + return; + } + + $data = array( + 'plugin_name' => $plugin_name, + 'policy_text' => $policy_text, + ); + + if ( ! in_array( $data, self::$policy_content, true ) ) { + self::$policy_content[] = $data; + } + } + + /** + * Quick check if any privacy info has changed. + * + * @since 4.9.6 + */ + public static function text_change_check() { + + $policy_page_id = (int) get_option( 'wp_page_for_privacy_policy' ); + + // The site doesn't have a privacy policy. + if ( empty( $policy_page_id ) ) { + return false; + } + + if ( ! current_user_can( 'edit_post', $policy_page_id ) ) { + return false; + } + + $old = (array) get_post_meta( $policy_page_id, '_wp_suggested_privacy_policy_content' ); + + // Updates are not relevant if the user has not reviewed any suggestions yet. + if ( empty( $old ) ) { + return false; + } + + $cached = get_option( '_wp_suggested_policy_text_has_changed' ); + + /* + * When this function is called before `admin_init`, `self::$policy_content` + * has not been populated yet, so use the cached result from the last + * execution instead. + */ + if ( ! did_action( 'admin_init' ) ) { + return 'changed' === $cached; + } + + $new = self::$policy_content; + + // Remove the extra values added to the meta. + foreach ( $old as $key => $data ) { + if ( ! empty( $data['removed'] ) ) { + unset( $old[ $key ] ); + continue; + } + + $old[ $key ] = array( + 'plugin_name' => $data['plugin_name'], + 'policy_text' => $data['policy_text'], + ); + } + + // Normalize the order of texts, to facilitate comparison. + sort( $old ); + sort( $new ); + + // The == operator (equal, not identical) was used intentionally. + // See http://php.net/manual/en/language.operators.array.php + if ( $new != $old ) { + // A plugin was activated or deactivated, or some policy text has changed. + // Show a notice on the relevant screens to inform the admin. + add_action( 'admin_notices', array( 'WP_Privacy_Policy_Content', 'policy_text_changed_notice' ) ); + $state = 'changed'; + } else { + $state = 'not-changed'; + } + + // Cache the result for use before `admin_init` (see above). + if ( $cached !== $state ) { + update_option( '_wp_suggested_policy_text_has_changed', $state ); + } + + return 'changed' === $state; + } + + /** + * Output a warning when some privacy info has changed. + * + * @since 4.9.6 + */ + public static function policy_text_changed_notice() { + global $post; + + $screen = get_current_screen()->id; + + if ( 'privacy' !== $screen ) { + return; + } + + ?> + <div class="policy-text-updated notice notice-warning is-dismissible"> + <p><?php + printf( + /* translators: %s: Privacy Policy Guide URL */ + __( 'The suggested privacy policy text has changed. Please <a href="%s">review the guide</a> and update your privacy policy.' ), + esc_url( admin_url( 'tools.php?wp-privacy-policy-guide=1' ) ) + ); + ?></p> + </div> + <?php + } + + /** + * Update the cached policy info when the policy page is updated. + * + * @since 4.9.6 + * @access private + */ + public static function _policy_page_updated( $post_id ) { + $policy_page_id = (int) get_option( 'wp_page_for_privacy_policy' ); + + if ( ! $policy_page_id || $policy_page_id !== (int) $post_id ) { + return; + } + + // Remove updated|removed status. + $old = (array) get_post_meta( $policy_page_id, '_wp_suggested_privacy_policy_content' ); + $done = array(); + $update_cache = false; + + foreach ( $old as $old_key => $old_data ) { + if ( ! empty( $old_data['removed'] ) ) { + // Remove the old policy text. + $update_cache = true; + continue; + } + + if ( ! empty( $old_data['updated'] ) ) { + // 'updated' is now 'added'. + $done[] = array( + 'plugin_name' => $old_data['plugin_name'], + 'policy_text' => $old_data['policy_text'], + 'added' => $old_data['updated'], + ); + $update_cache = true; + } else { + $done[] = $old_data; + } + } + + if ( $update_cache ) { + delete_post_meta( $policy_page_id, '_wp_suggested_privacy_policy_content' ); + // Update the cache. + foreach ( $done as $data ) { + add_post_meta( $policy_page_id, '_wp_suggested_privacy_policy_content', $data ); + } + } + } + + /** + * Check for updated, added or removed privacy policy information from plugins. + * + * Caches the current info in post_meta of the policy page. + * + * @since 4.9.6 + * + * @return array The privacy policy text/informtion added by core and plugins. + */ + public static function get_suggested_policy_text() { + $policy_page_id = (int) get_option( 'wp_page_for_privacy_policy' ); + $checked = array(); + $time = time(); + $update_cache = false; + $new = self::$policy_content; + $old = array(); + + if ( $policy_page_id ) { + $old = (array) get_post_meta( $policy_page_id, '_wp_suggested_privacy_policy_content' ); + } + + // Check for no-changes and updates. + foreach ( $new as $new_key => $new_data ) { + foreach ( $old as $old_key => $old_data ) { + $found = false; + + if ( $new_data['policy_text'] === $old_data['policy_text'] ) { + // Use the new plugin name in case it was changed, translated, etc. + if ( $old_data['plugin_name'] !== $new_data['plugin_name'] ) { + $old_data['plugin_name'] = $new_data['plugin_name']; + $update_cache = true; + } + + // A plugin was re-activated. + if ( ! empty( $old_data['removed'] ) ) { + unset( $old_data['removed'] ); + $old_data['added'] = $time; + $update_cache = true; + } + + $checked[] = $old_data; + $found = true; + } elseif ( $new_data['plugin_name'] === $old_data['plugin_name'] ) { + // The info for the policy was updated. + $checked[] = array( + 'plugin_name' => $new_data['plugin_name'], + 'policy_text' => $new_data['policy_text'], + 'updated' => $time, + ); + $found = $update_cache = true; + } + + if ( $found ) { + unset( $new[ $new_key ], $old[ $old_key ] ); + continue 2; + } + } + } + + if ( ! empty( $new ) ) { + // A plugin was activated. + foreach ( $new as $new_data ) { + if ( ! empty( $new_data['plugin_name'] ) && ! empty( $new_data['policy_text'] ) ) { + $new_data['added'] = $time; + $checked[] = $new_data; + } + } + $update_cache = true; + } + + if ( ! empty( $old ) ) { + // A plugin was deactivated. + foreach ( $old as $old_data ) { + if ( ! empty( $old_data['plugin_name'] ) && ! empty( $old_data['policy_text'] ) ) { + $data = array( + 'plugin_name' => $old_data['plugin_name'], + 'policy_text' => $old_data['policy_text'], + 'removed' => $time, + ); + + $checked[] = $data; + } + } + $update_cache = true; + } + + if ( $update_cache && $policy_page_id ) { + delete_post_meta( $policy_page_id, '_wp_suggested_privacy_policy_content' ); + // Update the cache. + foreach ( $checked as $data ) { + add_post_meta( $policy_page_id, '_wp_suggested_privacy_policy_content', $data ); + } + } + + return $checked; + } + + /** + * Add a notice with a link to the guide when editing the privacy policy page. + * + * @since 4.9.6 + * + * @param $post WP_Post The currently edited post. + */ + public static function notice( $post ) { + if ( ! ( $post instanceof WP_Post ) ) { + return; + } + + if ( ! current_user_can( 'manage_privacy_options' ) ) { + return; + } + + $policy_page_id = (int) get_option( 'wp_page_for_privacy_policy' ); + + if ( ! $policy_page_id || $policy_page_id != $post->ID ) { + return; + } + + ?> + <div class="notice notice-warning inline wp-pp-notice"> + <p> + <?php + /* translators: 1: Privacy Policy guide URL, 2: additional link attributes, 3: accessibility text */ + printf( + __( 'Need help putting together your new Privacy Policy page? <a href="%1$s" %2$s>Check out our guide%3$s</a> for recommendations on what content to include, along with policies suggested by your plugins and theme.' ), + admin_url( 'tools.php?wp-privacy-policy-guide=1' ), + 'target="_blank"', + sprintf( + '<span class="screen-reader-text"> %s</span>', + /* translators: accessibility text */ + __( '(opens in a new tab)' ) + ) + ); + ?> + </p> + </div> + <?php + + } + + /** + * Output the privacy policy guide together with content from the theme and plugins. + * + * @since 4.9.6 + */ + public static function privacy_policy_guide() { + + $content_array = self::get_suggested_policy_text(); + + $content = ''; + $toc = array( '<li><a href="#wp-privacy-policy-guide-introduction">' . __( 'Introduction' ) . '</a></li>' ); + $date_format = __( 'F j, Y' ); + $copy = __( 'Copy' ); + $return_to_top = '<a href="#" class="return-to-top">' . __( '↑ Return to Top' ) . '</a>'; + + foreach ( $content_array as $section ) { + $class = $meta = $removed = ''; + + if ( ! empty( $section['removed'] ) ) { + $class = ' text-removed'; + $date = date_i18n( $date_format, $section['removed'] ); + $meta = sprintf( __( 'Removed %s.' ), $date ); + + $removed = __( 'You deactivated this plugin on %s and may no longer need this policy.' ); + $removed = '<div class="error inline"><p>' . sprintf( $removed, $date ) . '</p></div>'; + } elseif ( ! empty( $section['updated'] ) ) { + $class = ' text-updated'; + $date = date_i18n( $date_format, $section['updated'] ); + $meta = sprintf( __( 'Updated %s.' ), $date ); + } + + if ( $meta ) { + $meta = '<br><span class="privacy-text-meta">' . $meta . '</span>'; + } + + $plugin_name = esc_html( $section['plugin_name'] ); + $toc_id = 'wp-privacy-policy-guide-' . sanitize_title( $plugin_name ); + $toc[] = sprintf( '<li><a href="#%1$s">%2$s</a>' . $meta . '</li>', $toc_id, $plugin_name ); + + $content .= '<div class="privacy-text-section' . $class . '">'; + $content .= '<a id="' . $toc_id . '"> </a>'; + /* translators: %s: plugin name */ + $content .= '<h2>' . sprintf( __( 'Source: %s' ), $plugin_name ) . '</h2>'; + $content .= $removed; + + $content .= '<div class="policy-text">' . $section['policy_text'] . '</div>'; + $content .= $return_to_top; + + if ( empty( $section['removed'] ) ) { + $content .= '<div class="privacy-text-actions">'; + $content .= '<button type="button" class="privacy-text-copy button">'; + $content .= $copy; + $content .= '<span class="screen-reader-text">' . sprintf( __( 'Copy suggested policy text from %s.' ), $plugin_name ) . '</span>'; + $content .= '</button>'; + $content .= '</div>'; + } + + $content .= "</div>\n"; // End of .privacy-text-section. + } + + if ( count( $toc ) > 2 ) { + ?> + <div class="privacy-text-box-toc"> + <p><?php _e( 'Table of Contents' ); ?></p> + <ol> + <?php echo implode( "\n", $toc ); ?> + </ol> + </div> + <?php + } + + ?> + <div class="privacy-text-box"> + <div class="privacy-text-box-head"> + <a id="wp-privacy-policy-guide-introduction"> </a> + <h2><?php _e( 'Introduction' ); ?></h2> + <p><?php _e( 'Hello,' ); ?></p> + <p><?php _e( 'This text template will help you to create your web site’s privacy policy.' ); ?></p> + <p><?php _e( 'We have suggested the sections you will need. Under each section heading you will find a short summary of what information you should provide, which will help you to get started. Some sections include suggested policy content, others will have to be completed with information from your theme and plugins.' ); ?></p> + <p><?php _e( 'Please edit your privacy policy content, making sure to delete the summaries, and adding any information from your theme and plugins. Once you publish your policy page, remember to add it to your navigation menu.' ); ?></p> + <p><?php _e( 'It is your responsibility to write a comprehensive privacy policy, to make sure it reflects all national and international legal requirements on privacy, and to keep your policy current and accurate.' ); ?></p> + </div> + + <div class="privacy-text-box-body"> + <?php echo $content; ?> + </div> + </div> + <?php + } + + /** + * Return the default suggested privacy policy content. + * + * @since 4.9.6 + * + * @param bool $descr Whether to include the descriptions under the section headings. Default false. + * @return string The default policy content. + */ + public static function get_default_content( $descr = false ) { + $suggested_text = $descr ? '<strong class="privacy-policy-tutorial">' . __( 'Suggested text:' ) . ' </strong>' : ''; + $content = ''; + + // Start of the suggested privacy policy text. + $descr && $content .= + '<div class="wp-suggested-text">'; + $content .= + '<h2>' . __( 'Who we are' ) . '</h2>'; + $descr && $content .= + '<p class="privacy-policy-tutorial">' . __( 'In this section you should note your site URL, as well as the name of the company, organization, or individual behind it, and some accurate contact information.' ) . '</p>' . + '<p class="privacy-policy-tutorial">' . __( 'The amount of information you may be required to show will vary depending on your local or national business regulations. You may, for example, be required to display a physical address, a registered address, or your company registration number.' ) . '</p>'; + $content .= + /* translators: %s Site URL */ + '<p>' . $suggested_text . sprintf( __( 'Our website address is: %s.' ), get_bloginfo( 'url', 'display' ) ) . '</p>' . + + '<h2>' . __( 'What personal data we collect and why we collect it' ) . '</h2>'; + $descr && $content .= + '<p class="privacy-policy-tutorial">' . __( 'In this section you should note what personal data you collect from users and site visitors. This may include personal data, such as name, email address, personal account preferences; transactional data, such as purchase information; and technical data, such as information about cookies.' ) . '</p>' . + '<p class="privacy-policy-tutorial">' . __( 'You should also note any collection and retention of sensitive personal data, such as data concerning health.' ) . '</p>' . + '<p class="privacy-policy-tutorial">' . __( 'In addition to listing what personal data you collect, you need to note why you collect it. These explanations must note either the legal basis for your data collection and retention or the active consent the user has given.' ) . '</p>' . + '<p class="privacy-policy-tutorial">' . __( 'Personal data is not just created by a user’s interactions with your site. Personal data is also generated from technical processes such as contact forms, comments, cookies, analytics, and third party embeds.' ) . '</p>' . + '<p class="privacy-policy-tutorial">' . __( 'By default WordPress does not collect any personal data about visitors, and only collects the data shown on the User Profile screen from registered users. However some of your plugins may collect personal data. You should add the relevant information below.' ) . '</p>'; + + $content .= + '<h3>' . __( 'Comments' ) . '</h3>'; + $descr && $content .= + '<p class="privacy-policy-tutorial">' . __( 'In this subsection you should note what information is captured through comments. We have noted the data which WordPress collects by default.' ) . '</p>'; + $content .= + '<p>' . $suggested_text . __( 'When visitors leave comments on the site we collect the data shown in the comments form, and also the visitor’s IP address and browser user agent string to help spam detection.' ) . '</p>' . + '<p>' . __( 'An anonymized string created from your email address (also called a hash) may be provided to the Gravatar service to see if you are using it. The Gravatar service privacy policy is available here: https://automattic.com/privacy/. After approval of your comment, your profile picture is visible to the public in the context of your comment.' ) . '</p>' . + + '<h3>' . __( 'Media' ) . '</h3>'; + $descr && $content .= + '<p class="privacy-policy-tutorial">' . __( 'In this subsection you should note what information may be disclosed by users who can upload media files. All uploaded files are usually publicly accessible.' ) . '</p>'; + $content .= + '<p>' . $suggested_text . __( 'If you upload images to the website, you should avoid uploading images with embedded location data (EXIF GPS) included. Visitors to the website can download and extract any location data from images on the website.' ) . '</p>' . + + '<h3>' . __( 'Contact forms' ) . '</h3>'; + $descr && $content .= + '<p class="privacy-policy-tutorial">' . __( 'By default, WordPress does not include a contact form. If you use a contact form plugin, use this subsection to note what personal data is captured when someone submits a contact form, and how long you keep it. For example, you may note that you keep contact form submissions for a certain period for customer service purposes, but you do not use the information submitted through them for marketing purposes.' ) . '</p>'; + + $content .= + '<h3>' . __( 'Cookies' ) . '</h3>'; + $descr && $content .= + '<p class="privacy-policy-tutorial">' . __( 'In this subsection you should list the cookies your web site uses, including those set by your plugins, social media, and analytics. We have provided the cookies which WordPress installs by default.' ) . '</p>'; + $content .= + '<p>' . $suggested_text . __( 'If you leave a comment on our site you may opt-in to saving your name, email address and website in cookies. These are for your convenience so that you do not have to fill in your details again when you leave another comment. These cookies will last for one year.' ) . '</p>' . + '<p>' . __( 'If you have an account and you log in to this site, we will set a temporary cookie to determine if your browser accepts cookies. This cookie contains no personal data and is discarded when you close your browser.' ) . '</p>' . + '<p>' . __( 'When you log in, we will also set up several cookies to save your login information and your screen display choices. Login cookies last for two days, and screen options cookies last for a year. If you select "Remember Me", your login will persist for two weeks. If you log out of your account, the login cookies will be removed.' ) . '</p>' . + '<p>' . __( 'If you edit or publish an article, an additional cookie will be saved in your browser. This cookie includes no personal data and simply indicates the post ID of the article you just edited. It expires after 1 day.' ) . '</p>' . + + '<h3>' . __( 'Embedded content from other websites' ) . '</h3>' . + '<p>' . $suggested_text . __( 'Articles on this site may include embedded content (e.g. videos, images, articles, etc.). Embedded content from other websites behaves in the exact same way as if the visitor has visited the other website.' ) . '</p>' . + '<p>' . __( 'These websites may collect data about you, use cookies, embed additional third-party tracking, and monitor your interaction with that embedded content, including tracing your interaction with the embedded content if you have an account and are logged in to that website.' ) . '</p>' . + + '<h3>' . __( 'Analytics' ) . '</h3>'; + $descr && $content .= + '<p class="privacy-policy-tutorial">' . __( 'In this subsection you should note what analytics package you use, how users can opt out of analytics tracking, and a link to your analytics provider’s privacy policy, if any.' ) . '</p>' . + '<p class="privacy-policy-tutorial">' . __( 'By default WordPress does not collect any analytics data. However, many web hosting accounts collect some anonymous analytics data. You may also have installed a WordPress plugin that provides analytics services. In that case, add information from that plugin here.' ) . '</p>'; + + $content .= + '<h2>' . __( 'Who we share your data with' ) . '</h2>'; + $descr && $content .= + '<p class="privacy-policy-tutorial">' . __( 'In this section you should name and list all third party providers with whom you share site data, including partners, cloud-based services, payment processors, and third party service providers, and note what data you share with them and why. Link to their own privacy policies if possible.' ) . '</p>' . + '<p class="privacy-policy-tutorial">' . __( 'By default WordPress does not share any personal data with anyone.' ) . '</p>'; + + $content .= + '<h2>' . __( 'How long we retain your data' ) . '</h2>'; + $descr && $content .= + '<p class="privacy-policy-tutorial">' . __( 'In this section you should explain how long you retain personal data collected or processed by the web site. While it is your responsibility to come up with the schedule of how long you keep each dataset for and why you keep it, that information does need to be listed here. For example, you may want to say that you keep contact form entries for six months, analytics records for a year, and customer purchase records for ten years.' ) . '</p>'; + $content .= + '<p>' . $suggested_text . __( 'If you leave a comment, the comment and its metadata are retained indefinitely. This is so we can recognize and approve any follow-up comments automatically instead of holding them in a moderation queue.' ) . '</p>' . + '<p>' . __( 'For users that register on our website (if any), we also store the personal information they provide in their user profile. All users can see, edit, or delete their personal information at any time (except they cannot change their username). Website administrators can also see and edit that information.' ) . '</p>' . + + '<h2>' . __( 'What rights you have over your data' ) . '</h2>'; + $descr && $content .= + '<p class="privacy-policy-tutorial">' . __( 'In this section you should explain what rights your users have over their data and how they can invoke those rights.' ) . '</p>'; + $content .= + '<p>' . $suggested_text . __( 'If you have an account on this site, or have left comments, you can request to receive an exported file of the personal data we hold about you, including any data you have provided to us. You can also request that we erase any personal data we hold about you. This does not include any data we are obliged to keep for administrative, legal, or security purposes.' ) . '</p>' . + + '<h2>' . __( 'Where we send your data' ) . '</h2>'; + $descr && $content .= + '<p class="privacy-policy-tutorial">' . __( 'In this section you should list all transfers of your site data outside the European Union and describe the means by which that data is safeguarded to European data protection standards. This could include your web hosting, cloud storage, or other third party services.' ) . '</p>' . + '<p class="privacy-policy-tutorial">' . __( 'European data protection law requires data about European residents which is transferred outside the European Union to be safeguarded to the same standards as if the data was in Europe. So in addition to listing where data goes, you should describe how you ensure that these standards are met either by yourself or by your third party providers, whether that is through an agreement such as Privacy Shield, model clauses in your contracts, or binding corporate rules.' ) . '</p>'; + $content .= + '<p>' . $suggested_text . __( 'Visitor comments may be checked through an automated spam detection service.' ) . '</p>' . + + '<h2>' . __( 'Your contact information' ) . '</h2>'; + $descr && $content .= + '<p class="privacy-policy-tutorial">' . __( 'In this section you should provide a contact method for privacy-specific concerns. If you are required to have a Data Protection Officer, list their name and full contact details here as well.' ) . '</p>'; + + $content .= + '<h2>' . __( 'Additional information' ) . '</h2>'; + $descr && $content .= + '<p class="privacy-policy-tutorial">' . __( 'If you use your site for commercial purposes and you engage in more complex collection or processing of personal data, you should note the following information in your privacy policy in addition to the information we have already discussed.' ) . '</p>'; + + $content .= + '<h3>' . __( 'How we protect your data' ) . '</h3>'; + $descr && $content .= + '<p class="privacy-policy-tutorial">' . __( 'In this section you should explain what measures you have taken to protect your users’ data. This could include technical measures such as encryption; security measures such as two factor authentication; and measures such as staff training in data protection. If you have carried out a Privacy Impact Assessment, you can mention it here too.' ) . '</p>'; + + $content .= + '<h3>' . __( 'What data breach procedures we have in place' ) . '</h3>'; + $descr && $content .= + '<p class="privacy-policy-tutorial">' . __( 'In this section you should explain what procedures you have in place to deal with data breaches, either potential or real, such as internal reporting systems, contact mechanisms, or bug bounties.' ) . '</p>'; + + $content .= + '<h3>' . __( 'What third parties we receive data from' ) . '</h3>'; + $descr && $content .= + '<p class="privacy-policy-tutorial">' . __( 'If your web site receives data about users from third parties, including advertisers, this information must be included within the section of your privacy policy dealing with third party data.' ) . '</p>'; + + $content .= + '<h3>' . __( 'What automated decision making and/or profiling we do with user data' ) . '</h3>'; + $descr && $content .= + '<p class="privacy-policy-tutorial">' . __( 'If your web site provides a service which includes automated decision making - for example, allowing customers to apply for credit, or aggregating their data into an advertising profile - you must note that this is taking place, and include information about how that information is used, what decisions are made with that aggregated data, and what rights users have over decisions made without human intervention.' ) . '</p>'; + + $content .= + '<h3>' . __( 'Industry regulatory disclosure requirements' ) . '</h3>'; + $descr && $content .= + '<p class="privacy-policy-tutorial">' . __( 'If you are a member of a regulated industry, or if you are subject to additional privacy laws, you may be required to disclose that information here.' ) . '</p>' . + '</div>'; + // End of the suggested privacy policy text. + + /** + * Filters the default content suggested for inclusion in a privacy policy. + * + * @since 4.9.6 + * + * @param $content string The default policy content. + */ + return apply_filters( 'wp_get_default_privacy_policy_content', $content ); + } + + /** + * Add the suggested privacy policy text to the policy postbox. + * + * @since 4.9.6 + */ + public static function add_suggested_content() { + $content = self::get_default_content( true ); + wp_add_privacy_policy_content( __( 'WordPress' ), $content ); + } +} diff --git a/wp-admin/includes/plugin-install.php b/wp-admin/includes/plugin-install.php index d5f5c0637..eea74f1ae 100644 --- a/wp-admin/includes/plugin-install.php +++ b/wp-admin/includes/plugin-install.php @@ -584,12 +584,20 @@ function install_plugin_information() { <li> <strong><?php _e( 'Requires WordPress Version:' ); ?></strong> <?php - /* translators: %s: WordPress version */ + /* translators: %s: version number */ printf( __( '%s or higher' ), $api->requires ); ?> </li> <?php } if ( ! empty( $api->tested ) ) { ?> <li><strong><?php _e( 'Compatible up to:' ); ?></strong> <?php echo $api->tested; ?></li> + <?php } if ( ! empty( $api->requires_php ) ) { ?> + <li> + <strong><?php _e( 'Requires PHP Version:' ); ?></strong> + <?php + /* translators: %s: version number */ + printf( __( '%s or higher' ), $api->requires_php ); + ?> + </li> <?php } if ( isset( $api->active_installs ) ) { ?> <li><strong><?php _e( 'Active Installations:' ); ?></strong> <?php if ( $api->active_installs >= 1000000 ) { diff --git a/wp-admin/includes/plugin.php b/wp-admin/includes/plugin.php index 1a9889d3d..d794a8acc 100644 --- a/wp-admin/includes/plugin.php +++ b/wp-admin/includes/plugin.php @@ -1896,3 +1896,30 @@ function plugin_sandbox_scrape( $plugin ) { wp_register_plugin_realpath( WP_PLUGIN_DIR . '/' . $plugin ); include( WP_PLUGIN_DIR . '/' . $plugin ); } + +/** + * Helper function for adding content to the postbox shown when editing the privacy policy. + * + * Plugins and themes should suggest text for inclusion in the site's privacy policy. + * The suggested text should contain information about any functionality that affects user privacy, + * and will be shown in the Suggested Privacy Policy Content postbox. + * + * A plugin or theme can use this function multiple times as long as it will help to better present + * the suggested policy content. For example modular plugins such as WooCommerse or Jetpack + * can add or remove suggested content depending on the modules/extensions that are enabled. + * + * Intended for use with the `'admin_init'` action. + * + * @since 4.9.6 + * + * @param string $plugin_name The name of the plugin or theme that is suggesting content for the site's privacy policy. + * @param string $policy_text The suggested content for inclusion in the policy. + * For more information see the Plugins Handbook https://developer.wordpress.org/plugins/. + */ +function wp_add_privacy_policy_content( $plugin_name, $policy_text ) { + if ( ! class_exists( 'WP_Privacy_Policy_Content' ) ) { + require_once( ABSPATH . 'wp-admin/includes/misc.php' ); + } + + WP_Privacy_Policy_Content::add( $plugin_name, $policy_text ); +} diff --git a/wp-admin/includes/post.php b/wp-admin/includes/post.php index 908b80c33..7fe1b42d2 100644 --- a/wp-admin/includes/post.php +++ b/wp-admin/includes/post.php @@ -1147,6 +1147,10 @@ function wp_edit_attachments_query_vars( $q = false ) { $q['post_parent'] = 0; } + if ( isset( $q['mine'] ) || ( isset( $q['attachment-filter'] ) && 'mine' == $q['attachment-filter'] ) ) { + $q['author'] = get_current_user_id(); + } + // Filter query clauses to include filenames. if ( isset( $q['s'] ) ) { add_filter( 'posts_clauses', '_filter_query_attachment_filenames' ); diff --git a/wp-admin/includes/schema.php b/wp-admin/includes/schema.php index 374e9d465..2d048efbb 100644 --- a/wp-admin/includes/schema.php +++ b/wp-admin/includes/schema.php @@ -516,6 +516,9 @@ function populate_options() { // 4.4.0 'medium_large_size_w' => 768, 'medium_large_size_h' => 0, + + // 4.9.6 + 'wp_page_for_privacy_policy' => 0, ); // 3.3 diff --git a/wp-admin/includes/theme.php b/wp-admin/includes/theme.php index 41c4a8d3e..9dc5dc7e8 100644 --- a/wp-admin/includes/theme.php +++ b/wp-admin/includes/theme.php @@ -687,14 +687,14 @@ function customize_themes_print_templates() { <div class="theme-actions"> <# if ( data.active ) { #> - <button type="button" class="button button-primary customize-theme"><?php _e( 'Customize' ); ?></a> + <button type="button" class="button button-primary customize-theme"><?php _e( 'Customize' ); ?></button> <# } else if ( 'installed' === data.type ) { #> <?php if ( current_user_can( 'delete_themes' ) ) { ?> <# if ( data.actions && data.actions['delete'] ) { #> <a href="{{{ data.actions['delete'] }}}" data-slug="{{ data.id }}" class="button button-secondary delete-theme"><?php _e( 'Delete' ); ?></a> <# } #> <?php } ?> - <button type="button" class="button button-primary preview-theme" data-slug="{{ data.id }}"><?php _e( 'Live Preview' ); ?></span> + <button type="button" class="button button-primary preview-theme" data-slug="{{ data.id }}"><?php _e( 'Live Preview' ); ?></button> <# } else { #> <button type="button" class="button theme-install" data-slug="{{ data.id }}"><?php _e( 'Install' ); ?></button> <button type="button" class="button button-primary theme-install preview" data-slug="{{ data.id }}"><?php _e( 'Install & Preview' ); ?></button> diff --git a/wp-admin/includes/upgrade.php b/wp-admin/includes/upgrade.php index ae76e5405..71c90e16d 100644 --- a/wp-admin/includes/upgrade.php +++ b/wp-admin/includes/upgrade.php @@ -252,6 +252,52 @@ As a new WordPress user, you should go to <a href=\"%s\">your dashboard</a> to d )); $wpdb->insert( $wpdb->postmeta, array( 'post_id' => 2, 'meta_key' => '_wp_page_template', 'meta_value' => 'default' ) ); + // Privacy Policy page + if ( is_multisite() ) { + // Disable by default unless the suggested content is provided. + $privacy_policy_content = get_site_option( 'default_privacy_policy_content' ); + } else { + if ( ! class_exists( 'WP_Privacy_Policy_Content' ) ) { + include_once( ABSPATH . 'wp-admin/includes/misc.php' ); + } + + $privacy_policy_content = WP_Privacy_Policy_Content::get_default_content(); + } + + if ( ! empty( $privacy_policy_content ) ) { + $privacy_policy_guid = get_option( 'home' ) . '/?page_id=3'; + + $wpdb->insert( + $wpdb->posts, array( + 'post_author' => $user_id, + 'post_date' => $now, + 'post_date_gmt' => $now_gmt, + 'post_content' => $privacy_policy_content, + 'post_excerpt' => '', + 'comment_status' => 'closed', + 'post_title' => __( 'Privacy Policy' ), + /* translators: Privacy Policy page slug */ + 'post_name' => __( 'privacy-policy' ), + 'post_modified' => $now, + 'post_modified_gmt' => $now_gmt, + 'guid' => $privacy_policy_guid, + 'post_type' => 'page', + 'post_status' => 'draft', + 'to_ping' => '', + 'pinged' => '', + 'post_content_filtered' => '', + ) + ); + $wpdb->insert( + $wpdb->postmeta, array( + 'post_id' => 3, + 'meta_key' => '_wp_page_template', + 'meta_value' => 'default', + ) + ); + update_option( 'wp_page_for_privacy_policy', 3 ); + } + // Set up default widgets for default theme. update_option( 'widget_search', array ( 2 => array ( 'title' => '' ), '_multiwidget' => 1 ) ); update_option( 'widget_recent-posts', array ( 2 => array ( 'title' => '', 'number' => 5 ), '_multiwidget' => 1 ) ); diff --git a/wp-admin/includes/user.php b/wp-admin/includes/user.php index b9c83abc3..68be2ba60 100644 --- a/wp-admin/includes/user.php +++ b/wp-admin/includes/user.php @@ -538,3 +538,1031 @@ this email. This invitation will expire in a few days. Please click the following link to activate your user account: %%s' ), wp_specialchars_decode( get_bloginfo( 'name' ), ENT_QUOTES ), home_url(), wp_specialchars_decode( translate_user_role( $role['name'] ) ) ); } + +/** + * Resend an existing request and return the result. + * + * @since 4.9.6 + * @access private + * + * @param int $request_id Request ID. + * @return bool|WP_Error Returns true/false based on the success of sending the email, or a WP_Error object. + */ +function _wp_privacy_resend_request( $request_id ) { + $request_id = absint( $request_id ); + $request = get_post( $request_id ); + + if ( ! $request || 'user_request' !== $request->post_type ) { + return new WP_Error( 'privacy_request_error', __( 'Invalid request.' ) ); + } + + $result = wp_send_user_request( $request_id ); + + if ( is_wp_error( $result ) ) { + return $result; + } elseif ( ! $result ) { + return new WP_Error( 'privacy_request_error', __( 'Unable to initiate confirmation request.' ) ); + } + + return true; +} + +/** + * Marks a request as completed by the admin and logs the current timestamp. + * + * @since 4.9.6 + * @access private + * + * @param int $request_id Request ID. + * @return int|WP_Error $request Request ID on success or WP_Error. + */ +function _wp_privacy_completed_request( $request_id ) { + $request_id = absint( $request_id ); + $request_data = wp_get_user_request_data( $request_id ); + + if ( ! $request_data ) { + return new WP_Error( 'privacy_request_error', __( 'Invalid request.' ) ); + } + + update_post_meta( $request_id, '_wp_user_request_completed_timestamp', time() ); + + $request = wp_update_post( array( + 'ID' => $request_id, + 'post_status' => 'request-completed', + ) ); + + return $request; +} + +/** + * Handle list table actions. + * + * @since 4.9.6 + * @access private + */ +function _wp_personal_data_handle_actions() { + if ( isset( $_POST['privacy_action_email_retry'] ) ) { // WPCS: input var ok. + check_admin_referer( 'bulk-privacy_requests' ); + + $request_id = absint( current( array_keys( (array) wp_unslash( $_POST['privacy_action_email_retry'] ) ) ) ); // WPCS: input var ok, sanitization ok. + $result = _wp_privacy_resend_request( $request_id ); + + if ( is_wp_error( $result ) ) { + add_settings_error( + 'privacy_action_email_retry', + 'privacy_action_email_retry', + $result->get_error_message(), + 'error' + ); + } else { + add_settings_error( + 'privacy_action_email_retry', + 'privacy_action_email_retry', + __( 'Confirmation request sent again successfully.' ), + 'updated' + ); + } + } elseif ( isset( $_POST['action'] ) ) { + $action = isset( $_POST['action'] ) ? sanitize_key( wp_unslash( $_POST['action'] ) ) : ''; // WPCS: input var ok, CSRF ok. + + switch ( $action ) { + case 'add_export_personal_data_request': + case 'add_remove_personal_data_request': + check_admin_referer( 'personal-data-request' ); + + if ( ! isset( $_POST['type_of_action'], $_POST['username_or_email_to_export'] ) ) { // WPCS: input var ok. + add_settings_error( + 'action_type', + 'action_type', + __( 'Invalid action.' ), + 'error' + ); + } + $action_type = sanitize_text_field( wp_unslash( $_POST['type_of_action'] ) ); // WPCS: input var ok. + $username_or_email_address = sanitize_text_field( wp_unslash( $_POST['username_or_email_to_export'] ) ); // WPCS: input var ok. + $email_address = ''; + + if ( ! in_array( $action_type, _wp_privacy_action_request_types(), true ) ) { + add_settings_error( + 'action_type', + 'action_type', + __( 'Invalid action.' ), + 'error' + ); + } + + if ( ! is_email( $username_or_email_address ) ) { + $user = get_user_by( 'login', $username_or_email_address ); + if ( ! $user instanceof WP_User ) { + add_settings_error( + 'username_or_email_to_export', + 'username_or_email_to_export', + __( 'Unable to add this request. A valid email address or username must be supplied.' ), + 'error' + ); + } else { + $email_address = $user->user_email; + } + } else { + $email_address = $username_or_email_address; + } + + if ( empty( $email_address ) ) { + break; + } + + $request_id = wp_create_user_request( $email_address, $action_type ); + + if ( is_wp_error( $request_id ) ) { + add_settings_error( + 'username_or_email_to_export', + 'username_or_email_to_export', + $request_id->get_error_message(), + 'error' + ); + break; + } elseif ( ! $request_id ) { + add_settings_error( + 'username_or_email_to_export', + 'username_or_email_to_export', + __( 'Unable to initiate confirmation request.' ), + 'error' + ); + break; + } + + wp_send_user_request( $request_id ); + + add_settings_error( + 'username_or_email_to_export', + 'username_or_email_to_export', + __( 'Confirmation request initiated successfully.' ), + 'updated' + ); + break; + } + } +} + +/** + * Cleans up failed and expired requests before displaying the list table. + * + * @since 4.9.6 + * @access private + */ +function _wp_personal_data_cleanup_requests() { + /** This filter is documented in wp-includes/user.php */ + $expires = (int) apply_filters( 'user_request_key_expiration', DAY_IN_SECONDS ); + + $requests_query = new WP_Query( array( + 'post_type' => 'user_request', + 'posts_per_page' => -1, + 'post_status' => 'request-pending', + 'fields' => 'ids', + 'date_query' => array( + array( + 'column' => 'post_modified_gmt', + 'before' => $expires . ' seconds ago', + ), + ), + ) ); + + $request_ids = $requests_query->posts; + + foreach ( $request_ids as $request_id ) { + wp_update_post( array( + 'ID' => $request_id, + 'post_status' => 'request-failed', + 'post_password' => '', + ) ); + } +} + +/** + * Personal data export. + * + * @since 4.9.6 + * @access private + */ +function _wp_personal_data_export_page() { + if ( ! current_user_can( 'export_others_personal_data' ) ) { + wp_die( __( 'Sorry, you are not allowed to export personal data on this site.' ) ); + } + + _wp_personal_data_handle_actions(); + _wp_personal_data_cleanup_requests(); + + // "Borrow" xfn.js for now so we don't have to create new files. + wp_enqueue_script( 'xfn' ); + + $requests_table = new WP_Privacy_Data_Export_Requests_Table( array( + 'plural' => 'privacy_requests', + 'singular' => 'privacy_request', + ) ); + $requests_table->process_bulk_action(); + $requests_table->prepare_items(); + ?> + <div class="wrap nosubsub"> + <h1><?php esc_html_e( 'Export Personal Data' ); ?></h1> + <hr class="wp-header-end" /> + + <?php settings_errors(); ?> + + <form method="post" class="wp-privacy-request-form"> + <h2><?php esc_html_e( 'Add Data Export Request' ); ?></h2> + <p><?php esc_html_e( 'An email will be sent to the user at this email address asking them to verify the request.' ); ?></p> + + <div class="wp-privacy-request-form-field"> + <label for="username_or_email_to_export"><?php esc_html_e( 'Username or email address' ); ?></label> + <input type="text" required class="regular-text" id="username_or_email_to_export" name="username_or_email_to_export" /> + <?php submit_button( __( 'Send Request' ), 'secondary', 'submit', false ); ?> + </div> + <?php wp_nonce_field( 'personal-data-request' ); ?> + <input type="hidden" name="action" value="add_export_personal_data_request" /> + <input type="hidden" name="type_of_action" value="export_personal_data" /> + </form> + <hr /> + + <?php $requests_table->views(); ?> + + <form class="search-form wp-clearfix"> + <?php $requests_table->search_box( __( 'Search Requests' ), 'requests' ); ?> + <input type="hidden" name="page" value="export_personal_data" /> + <input type="hidden" name="filter-status" value="<?php echo isset( $_REQUEST['filter-status'] ) ? esc_attr( sanitize_text_field( $_REQUEST['filter-status'] ) ) : ''; ?>" /> + <input type="hidden" name="orderby" value="<?php echo isset( $_REQUEST['orderby'] ) ? esc_attr( sanitize_text_field( $_REQUEST['orderby'] ) ) : ''; ?>" /> + <input type="hidden" name="order" value="<?php echo isset( $_REQUEST['order'] ) ? esc_attr( sanitize_text_field( $_REQUEST['order'] ) ) : ''; ?>" /> + </form> + + <form method="post"> + <?php + $requests_table->display(); + $requests_table->embed_scripts(); + ?> + </form> + </div> + <?php +} + +/** + * Personal data anonymization. + * + * @since 4.9.6 + * @access private + */ +function _wp_personal_data_removal_page() { + /* + * Require both caps in order to make it explicitly clear that delegating + * erasure from network admins to single-site admins will give them the + * ability to affect global users, rather than being limited to the site + * that they administer. + */ + if ( ! current_user_can( 'erase_others_personal_data' ) || ! current_user_can( 'delete_users' ) ) { + wp_die( __( 'Sorry, you are not allowed to erase data on this site.' ) ); + } + + _wp_personal_data_handle_actions(); + _wp_personal_data_cleanup_requests(); + + // "Borrow" xfn.js for now so we don't have to create new files. + wp_enqueue_script( 'xfn' ); + + $requests_table = new WP_Privacy_Data_Removal_Requests_Table( array( + 'plural' => 'privacy_requests', + 'singular' => 'privacy_request', + ) ); + + $requests_table->process_bulk_action(); + $requests_table->prepare_items(); + + ?> + <div class="wrap nosubsub"> + <h1><?php esc_html_e( 'Erase Personal Data' ); ?></h1> + <hr class="wp-header-end" /> + + <?php settings_errors(); ?> + + <form method="post" class="wp-privacy-request-form"> + <h2><?php esc_html_e( 'Add Data Erasure Request' ); ?></h2> + <p><?php esc_html_e( 'An email will be sent to the user at this email address asking them to verify the request.' ); ?></p> + + <div class="wp-privacy-request-form-field"> + <label for="username_or_email_to_export"><?php esc_html_e( 'Username or email address' ); ?></label> + <input type="text" required class="regular-text" id="username_or_email_to_export" name="username_or_email_to_export" /> + <?php submit_button( __( 'Send Request' ), 'secondary', 'submit', false ); ?> + </div> + <?php wp_nonce_field( 'personal-data-request' ); ?> + <input type="hidden" name="action" value="add_remove_personal_data_request" /> + <input type="hidden" name="type_of_action" value="remove_personal_data" /> + </form> + <hr /> + + <?php $requests_table->views(); ?> + + <form class="search-form wp-clearfix"> + <?php $requests_table->search_box( __( 'Search Requests' ), 'requests' ); ?> + <input type="hidden" name="page" value="remove_personal_data" /> + <input type="hidden" name="filter-status" value="<?php echo isset( $_REQUEST['filter-status'] ) ? esc_attr( sanitize_text_field( $_REQUEST['filter-status'] ) ) : ''; ?>" /> + <input type="hidden" name="orderby" value="<?php echo isset( $_REQUEST['orderby'] ) ? esc_attr( sanitize_text_field( $_REQUEST['orderby'] ) ) : ''; ?>" /> + <input type="hidden" name="order" value="<?php echo isset( $_REQUEST['order'] ) ? esc_attr( sanitize_text_field( $_REQUEST['order'] ) ) : ''; ?>" /> + </form> + + <form method="post"> + <?php + $requests_table->display(); + $requests_table->embed_scripts(); + ?> + </form> + </div> + <?php +} + +/** + * Mark erasure requests as completed after processing is finished. + * + * This intercepts the Ajax responses to personal data eraser page requests, and + * monitors the status of a request. Once all of the processing has finished, the + * request is marked as completed. + * + * @since 4.9.6 + * + * @see wp_privacy_personal_data_erasure_page + * + * @param array $response The response from the personal data eraser for + * the given page. + * @param int $eraser_index The index of the personal data eraser. Begins + * at 1. + * @param string $email_address The email address of the user whose personal + * data this is. + * @param int $page The page of personal data for this eraser. + * Begins at 1. + * @param int $request_id The request ID for this personal data erasure. + * @return array The filtered response. + */ +function wp_privacy_process_personal_data_erasure_page( $response, $eraser_index, $email_address, $page, $request_id ) { + /* + * If the eraser response is malformed, don't attempt to consume it; let it + * pass through, so that the default Ajax processing will generate a warning + * to the user. + */ + if ( ! is_array( $response ) ) { + return $response; + } + + if ( ! array_key_exists( 'done', $response ) ) { + return $response; + } + + if ( ! array_key_exists( 'items_removed', $response ) ) { + return $response; + } + + if ( ! array_key_exists( 'items_retained', $response ) ) { + return $response; + } + + if ( ! array_key_exists( 'messages', $response ) ) { + return $response; + } + + $request = wp_get_user_request_data( $request_id ); + + if ( ! $request || 'remove_personal_data' !== $request->action_name ) { + wp_send_json_error( __( 'Invalid request ID when processing eraser data.' ) ); + } + + /** This filter is documented in wp-admin/includes/ajax-actions.php */ + $erasers = apply_filters( 'wp_privacy_personal_data_erasers', array() ); + $is_last_eraser = count( $erasers ) === $eraser_index; + $eraser_done = $response['done']; + + if ( ! $is_last_eraser || ! $eraser_done ) { + return $response; + } + + _wp_privacy_completed_request( $request_id ); + + /** + * Fires immediately after a personal data erasure request has been marked completed. + * + * @since 4.9.6 + * + * @param int $request_id The privacy request post ID associated with this request. + */ + do_action( 'wp_privacy_personal_data_erased', $request_id ); + + return $response; +} + +/** + * Add requests pages. + * + * @since 4.9.6 + * @access private + */ +function _wp_privacy_hook_requests_page() { + add_submenu_page( 'tools.php', __( 'Export Personal Data' ), __( 'Export Personal Data' ), 'export_others_personal_data', 'export_personal_data', '_wp_personal_data_export_page' ); + add_submenu_page( 'tools.php', __( 'Erase Personal Data' ), __( 'Erase Personal Data' ), 'erase_others_personal_data', 'remove_personal_data', '_wp_personal_data_removal_page' ); +} + +// TODO: move the following classes in new files. +if ( ! class_exists( 'WP_List_Table' ) ) { + require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' ); +} + +/** + * WP_Privacy_Requests_Table class. + * + * @since 4.9.6 + */ +abstract class WP_Privacy_Requests_Table extends WP_List_Table { + + /** + * Action name for the requests this table will work with. Classes + * which inherit from WP_Privacy_Requests_Table should define this. + * + * Example: 'export_personal_data'. + * + * @since 4.9.6 + * + * @var string $request_type Name of action. + */ + protected $request_type = 'INVALID'; + + /** + * Post type to be used. + * + * @since 4.9.6 + * + * @var string $post_type The post type. + */ + protected $post_type = 'INVALID'; + + /** + * Get columns to show in the list table. + * + * @since 4.9.6 + * + * @return array Array of columns. + */ + public function get_columns() { + $columns = array( + 'cb' => '<input type="checkbox" />', + 'email' => __( 'Requester' ), + 'status' => __( 'Status' ), + 'created_timestamp' => __( 'Requested' ), + 'next_steps' => __( 'Next Steps' ), + ); + return $columns; + } + + /** + * Get a list of sortable columns. + * + * @since 4.9.6 + * + * @return array Default sortable columns. + */ + protected function get_sortable_columns() { + return array(); + } + + /** + * Default primary column. + * + * @since 4.9.6 + * + * @return string Default primary column name. + */ + protected function get_default_primary_column_name() { + return 'email'; + } + + /** + * Count number of requests for each status. + * + * @since 4.9.6 + * + * @return object Number of posts for each status. + */ + protected function get_request_counts() { + global $wpdb; + + $cache_key = $this->post_type . '-' . $this->request_type; + $counts = wp_cache_get( $cache_key, 'counts' ); + + if ( false !== $counts ) { + return $counts; + } + + $query = " + SELECT post_status, COUNT( * ) AS num_posts + FROM {$wpdb->posts} + WHERE post_type = %s + AND post_name = %s + GROUP BY post_status"; + + $results = (array) $wpdb->get_results( $wpdb->prepare( $query, $this->post_type, $this->request_type ), ARRAY_A ); + $counts = array_fill_keys( get_post_stati(), 0 ); + + foreach ( $results as $row ) { + $counts[ $row['post_status'] ] = $row['num_posts']; + } + + $counts = (object) $counts; + wp_cache_set( $cache_key, $counts, 'counts' ); + + return $counts; + } + + /** + * Get an associative array ( id => link ) with the list of views available on this table. + * + * @since 4.9.6 + * + * @return array Associative array of views in the format of $view_name => $view_markup. + */ + protected function get_views() { + $current_status = isset( $_REQUEST['filter-status'] ) ? sanitize_text_field( $_REQUEST['filter-status'] ) : ''; + $statuses = _wp_privacy_statuses(); + $views = array(); + $admin_url = admin_url( 'tools.php?page=' . $this->request_type ); + $counts = $this->get_request_counts(); + + $current_link_attributes = empty( $current_status ) ? ' class="current" aria-current="page"' : ''; + $views['all'] = '<a href="' . esc_url( $admin_url ) . "\" $current_link_attributes>" . esc_html__( 'All' ) . ' (' . absint( array_sum( (array) $counts ) ) . ')</a>'; + + foreach ( $statuses as $status => $label ) { + $current_link_attributes = $status === $current_status ? ' class="current" aria-current="page"' : ''; + $views[ $status ] = '<a href="' . esc_url( add_query_arg( 'filter-status', $status, $admin_url ) ) . "\" $current_link_attributes>" . esc_html( $label ) . ' (' . absint( $counts->$status ) . ')</a>'; + } + + return $views; + } + + /** + * Get bulk actions. + * + * @since 4.9.6 + * + * @return array List of bulk actions. + */ + protected function get_bulk_actions() { + return array( + 'delete' => __( 'Remove' ), + 'resend' => __( 'Resend email' ), + ); + } + + /** + * Process bulk actions. + * + * @since 4.9.6 + */ + public function process_bulk_action() { + $action = $this->current_action(); + $request_ids = isset( $_REQUEST['request_id'] ) ? wp_parse_id_list( wp_unslash( $_REQUEST['request_id'] ) ) : array(); // WPCS: input var ok, CSRF ok. + $count = 0; + + if ( $request_ids ) { + check_admin_referer( 'bulk-privacy_requests' ); + } + + switch ( $action ) { + case 'delete': + foreach ( $request_ids as $request_id ) { + if ( wp_delete_post( $request_id, true ) ) { + $count ++; + } + } + + add_settings_error( + 'bulk_action', + 'bulk_action', + /* translators: %d: number of requests */ + sprintf( _n( 'Deleted %d request', 'Deleted %d requests', $count ), $count ), + 'updated' + ); + break; + case 'resend': + foreach ( $request_ids as $request_id ) { + $resend = _wp_privacy_resend_request( $request_id ); + + if ( $resend && ! is_wp_error( $resend ) ) { + $count++; + } + } + + add_settings_error( + 'bulk_action', + 'bulk_action', + /* translators: %d: number of requests */ + sprintf( _n( 'Re-sent %d request', 'Re-sent %d requests', $count ), $count ), + 'updated' + ); + break; + } + } + + /** + * Prepare items to output. + * + * @since 4.9.6 + */ + public function prepare_items() { + global $wpdb; + + $primary = $this->get_primary_column_name(); + $this->_column_headers = array( + $this->get_columns(), + array(), + $this->get_sortable_columns(), + $primary, + ); + + $this->items = array(); + $posts_per_page = 20; + $args = array( + 'post_type' => $this->post_type, + 'post_name__in' => array( $this->request_type ), + 'posts_per_page' => $posts_per_page, + 'offset' => isset( $_REQUEST['paged'] ) ? max( 0, absint( $_REQUEST['paged'] ) - 1 ) * $posts_per_page : 0, + 'post_status' => 'any', + 's' => isset( $_REQUEST['s'] ) ? sanitize_text_field( $_REQUEST['s'] ) : '', + ); + + if ( ! empty( $_REQUEST['filter-status'] ) ) { + $filter_status = isset( $_REQUEST['filter-status'] ) ? sanitize_text_field( $_REQUEST['filter-status'] ) : ''; + $args['post_status'] = $filter_status; + } + + $requests_query = new WP_Query( $args ); + $requests = $requests_query->posts; + + foreach ( $requests as $request ) { + $this->items[] = wp_get_user_request_data( $request->ID ); + } + + $this->items = array_filter( $this->items ); + + $this->set_pagination_args( + array( + 'total_items' => $requests_query->found_posts, + 'per_page' => $posts_per_page, + ) + ); + } + + /** + * Checkbox column. + * + * @since 4.9.6 + * + * @param WP_User_Request $item Item being shown. + * @return string Checkbox column markup. + */ + public function column_cb( $item ) { + return sprintf( '<input type="checkbox" name="request_id[]" value="%1$s" /><span class="spinner"></span>', esc_attr( $item->ID ) ); + } + + /** + * Status column. + * + * @since 4.9.6 + * + * @param WP_User_Request $item Item being shown. + * @return string Status column markup. + */ + public function column_status( $item ) { + $status = get_post_status( $item->ID ); + $status_object = get_post_status_object( $status ); + + if ( ! $status_object || empty( $status_object->label ) ) { + return '-'; + } + + $timestamp = false; + + switch ( $status ) { + case 'request-confirmed': + $timestamp = $item->confirmed_timestamp; + break; + case 'request-completed': + $timestamp = $item->completed_timestamp; + break; + } + + echo '<span class="status-label status-' . esc_attr( $status ) . '">'; + echo esc_html( $status_object->label ); + + if ( $timestamp ) { + echo ' (' . $this->get_timestamp_as_date( $timestamp ) . ')'; + } + + echo '</span>'; + } + + /** + * Convert timestamp for display. + * + * @since 4.9.6 + * + * @param int $timestamp Event timestamp. + * @return string Human readable date. + */ + protected function get_timestamp_as_date( $timestamp ) { + if ( empty( $timestamp ) ) { + return ''; + } + + $time_diff = current_time( 'timestamp', true ) - $timestamp; + + if ( $time_diff >= 0 && $time_diff < DAY_IN_SECONDS ) { + /* translators: human readable timestamp */ + return sprintf( __( '%s ago' ), human_time_diff( $timestamp ) ); + } + + return date_i18n( get_option( 'date_format' ), $timestamp ); + } + + /** + * Default column handler. + * + * @since 4.9.6 + * + * @param WP_User_Request $item Item being shown. + * @param string $column_name Name of column being shown. + * @return string Default column output. + */ + public function column_default( $item, $column_name ) { + $cell_value = $item->$column_name; + + if ( in_array( $column_name, array( 'created_timestamp' ), true ) ) { + return $this->get_timestamp_as_date( $cell_value ); + } + + return $cell_value; + } + + /** + * Actions column. Overridden by children. + * + * @since 4.9.6 + * + * @param WP_User_Request $item Item being shown. + * @return string Email column markup. + */ + public function column_email( $item ) { + return sprintf( '<a href="%1$s">%2$s</a> %3$s', esc_url( 'mailto:' . $item->email ), $item->email, $this->row_actions( array() ) ); + } + + /** + * Next steps column. Overridden by children. + * + * @since 4.9.6 + * + * @param WP_User_Request $item Item being shown. + */ + public function column_next_steps( $item ) {} + + /** + * Generates content for a single row of the table, + * + * @since 4.9.6 + * + * @param WP_User_Request $item The current item. + */ + public function single_row( $item ) { + $status = $item->status; + + echo '<tr id="request-' . esc_attr( $item->ID ) . '" class="status-' . esc_attr( $status ) . '">'; + $this->single_row_columns( $item ); + echo '</tr>'; + } + + /** + * Embed scripts used to perform actions. Overridden by children. + * + * @since 4.9.6 + */ + public function embed_scripts() {} +} + +/** + * WP_Privacy_Data_Export_Requests_Table class. + * + * @since 4.9.6 + */ +class WP_Privacy_Data_Export_Requests_Table extends WP_Privacy_Requests_Table { + /** + * Action name for the requests this table will work with. + * + * @since 4.9.6 + * + * @var string $request_type Name of action. + */ + protected $request_type = 'export_personal_data'; + + /** + * Post type for the requests. + * + * @since 4.9.6 + * + * @var string $post_type The post type. + */ + protected $post_type = 'user_request'; + + /** + * Actions column. + * + * @since 4.9.6 + * + * @param WP_User_Request $item Item being shown. + * @return string Email column markup. + */ + public function column_email( $item ) { + $exporters = apply_filters( 'wp_privacy_personal_data_exporters', array() ); + $exporters_count = count( $exporters ); + $request_id = $item->ID; + $nonce = wp_create_nonce( 'wp-privacy-export-personal-data-' . $request_id ); + + $download_data_markup = '<div class="export-personal-data" ' . + 'data-exporters-count="' . esc_attr( $exporters_count ) . '" ' . + 'data-request-id="' . esc_attr( $request_id ) . '" ' . + 'data-nonce="' . esc_attr( $nonce ) . + '">'; + + $download_data_markup .= '<span class="export-personal-data-idle"><button type="button" class="button-link export-personal-data-handle">' . __( 'Download Personal Data' ) . '</button></span>' . + '<span style="display:none" class="export-personal-data-processing" >' . __( 'Downloading Data...' ) . '</span>' . + '<span style="display:none" class="export-personal-data-success"><button type="button" class="button-link export-personal-data-handle">' . __( 'Download Personal Data Again' ) . '</button></span>' . + '<span style="display:none" class="export-personal-data-failed">' . __( 'Download has failed.' ) . ' <button type="button" class="button-link">' . __( 'Retry' ) . '</button></span>'; + + $download_data_markup .= '</div>'; + + $row_actions = array( + 'download-data' => $download_data_markup, + ); + + return sprintf( '<a href="%1$s">%2$s</a> %3$s', esc_url( 'mailto:' . $item->email ), $item->email, $this->row_actions( $row_actions ) ); + } + + /** + * Displays the next steps column. + * + * @since 4.9.6 + * + * @param WP_User_Request $item Item being shown. + */ + public function column_next_steps( $item ) { + $status = $item->status; + + switch ( $status ) { + case 'request-pending': + esc_html_e( 'Waiting for confirmation' ); + break; + case 'request-confirmed': + $exporters = apply_filters( 'wp_privacy_personal_data_exporters', array() ); + $exporters_count = count( $exporters ); + $request_id = $item->ID; + $nonce = wp_create_nonce( 'wp-privacy-export-personal-data-' . $request_id ); + + echo '<div class="export-personal-data" ' . + 'data-send-as-email="1" ' . + 'data-exporters-count="' . esc_attr( $exporters_count ) . '" ' . + 'data-request-id="' . esc_attr( $request_id ) . '" ' . + 'data-nonce="' . esc_attr( $nonce ) . + '">'; + + ?> + <span class="export-personal-data-idle"><button type="button" class="button export-personal-data-handle"><?php _e( 'Email Data' ); ?></button></span> + <span style="display:none" class="export-personal-data-processing button updating-message" ><?php _e( 'Sending Email...' ); ?></span> + <span style="display:none" class="export-personal-data-success success-message" ><?php _e( 'Email sent.' ); ?></span> + <span style="display:none" class="export-personal-data-failed"><?php _e( 'Email could not be sent.' ); ?> <button type="button" class="button export-personal-data-handle"><?php _e( 'Retry' ); ?></button></span> + <?php + + echo '</div>'; + break; + case 'request-failed': + submit_button( __( 'Retry' ), 'secondary', 'privacy_action_email_retry[' . $item->ID . ']', false ); + break; + case 'request-completed': + echo '<a href="' . esc_url( wp_nonce_url( add_query_arg( array( + 'action' => 'delete', + 'request_id' => array( $item->ID ), + ), admin_url( 'tools.php?page=export_personal_data' ) ), 'bulk-privacy_requests' ) ) . '" class="button">' . esc_html__( 'Remove request' ) . '</a>'; + break; + } + } +} + +/** + * WP_Privacy_Data_Removal_Requests_Table class. + * + * @since 4.9.6 + */ +class WP_Privacy_Data_Removal_Requests_Table extends WP_Privacy_Requests_Table { + /** + * Action name for the requests this table will work with. + * + * @since 4.9.6 + * + * @var string $request_type Name of action. + */ + protected $request_type = 'remove_personal_data'; + + /** + * Post type for the requests. + * + * @since 4.9.6 + * + * @var string $post_type The post type. + */ + protected $post_type = 'user_request'; + + /** + * Actions column. + * + * @since 4.9.6 + * + * @param WP_User_Request $item Item being shown. + * @return string Email column markup. + */ + public function column_email( $item ) { + $row_actions = array(); + + // Allow the administrator to "force remove" the personal data even if confirmation has not yet been received. + $status = $item->status; + if ( 'request-confirmed' !== $status ) { + $erasers = apply_filters( 'wp_privacy_personal_data_erasers', array() ); + $erasers_count = count( $erasers ); + $request_id = $item->ID; + $nonce = wp_create_nonce( 'wp-privacy-erase-personal-data-' . $request_id ); + + $remove_data_markup = '<div class="remove-personal-data force-remove-personal-data" ' . + 'data-erasers-count="' . esc_attr( $erasers_count ) . '" ' . + 'data-request-id="' . esc_attr( $request_id ) . '" ' . + 'data-nonce="' . esc_attr( $nonce ) . + '">'; + + $remove_data_markup .= '<span class="remove-personal-data-idle"><button type="button" class="button-link remove-personal-data-handle">' . __( 'Force Erase Personal Data' ) . '</button></span>' . + '<span style="display:none" class="remove-personal-data-processing" >' . __( 'Erasing Data...' ) . '</span>' . + '<span style="display:none" class="remove-personal-data-failed">' . __( 'Force Erase has failed.' ) . ' <button type="button" class="button-link remove-personal-data-handle">' . __( 'Retry' ) . '</button></span>'; + + $remove_data_markup .= '</div>'; + + $row_actions = array( + 'remove-data' => $remove_data_markup, + ); + } + + return sprintf( '<a href="%1$s">%2$s</a> %3$s', esc_url( 'mailto:' . $item->email ), $item->email, $this->row_actions( $row_actions ) ); + } + + /** + * Next steps column. + * + * @since 4.9.6 + * + * @param WP_User_Request $item Item being shown. + */ + public function column_next_steps( $item ) { + $status = $item->status; + + switch ( $status ) { + case 'request-pending': + esc_html_e( 'Waiting for confirmation' ); + break; + case 'request-confirmed': + $erasers = apply_filters( 'wp_privacy_personal_data_erasers', array() ); + $erasers_count = count( $erasers ); + $request_id = $item->ID; + $nonce = wp_create_nonce( 'wp-privacy-erase-personal-data-' . $request_id ); + + echo '<div class="remove-personal-data" ' . + 'data-force-erase="1" ' . + 'data-erasers-count="' . esc_attr( $erasers_count ) . '" ' . + 'data-request-id="' . esc_attr( $request_id ) . '" ' . + 'data-nonce="' . esc_attr( $nonce ) . + '">'; + + ?> + <span class="remove-personal-data-idle"><button type="button" class="button remove-personal-data-handle"><?php _e( 'Erase Personal Data' ); ?></button></span> + <span style="display:none" class="remove-personal-data-processing button updating-message" ><?php _e( 'Erasing Data...' ); ?></span> + <span style="display:none" class="remove-personal-data-failed"><?php _e( 'Erasing Data has failed.' ); ?> <button type="button" class="button remove-personal-data-handle"><?php _e( 'Retry' ); ?></button></span> + <?php + + echo '</div>'; + + break; + case 'request-failed': + submit_button( __( 'Retry' ), 'secondary', 'privacy_action_email_retry[' . $item->ID . ']', false ); + break; + case 'request-completed': + echo '<a href="' . esc_url( wp_nonce_url( add_query_arg( array( + 'action' => 'delete', + 'request_id' => array( $item->ID ), + ), admin_url( 'tools.php?page=remove_personal_data' ) ), 'bulk-privacy_requests' ) ) . '" class="button">' . esc_html__( 'Remove request' ) . '</a>'; + break; + } + } + +} diff --git a/wp-admin/js/customize-controls.js b/wp-admin/js/customize-controls.js index 5cec3fbed..e81afe724 100644 --- a/wp-admin/js/customize-controls.js +++ b/wp-admin/js/customize-controls.js @@ -6873,7 +6873,7 @@ cheatin: function() { $( document.body ).empty().addClass( 'cheatin' ).append( - '<h1>' + api.l10n.cheatin + '</h1>' + + '<h1>' + api.l10n.notAllowedHeading + '</h1>' + '<p>' + api.l10n.notAllowed + '</p>' ); }, @@ -9284,8 +9284,8 @@ api.bind( 'change', startAutosaving ); // Make sure TinyMCE dialogs appear above Customizer UI. - $( document ).one( 'wp-before-tinymce-init', function() { - if ( ! window.tinymce.ui.FloatPanel.zIndex || window.tinymce.ui.FloatPanel.zIndex < 500001 ) { + $( document ).one( 'tinymce-editor-setup', function() { + if ( window.tinymce.ui.FloatPanel && ( ! window.tinymce.ui.FloatPanel.zIndex || window.tinymce.ui.FloatPanel.zIndex < 500001 ) ) { window.tinymce.ui.FloatPanel.zIndex = 500001; } } ); diff --git a/wp-admin/js/customize-controls.min.js b/wp-admin/js/customize-controls.min.js index d42ad4d4c..847d2d53b 100644 --- a/wp-admin/js/customize-controls.min.js +++ b/wp-admin/js/customize-controls.min.js @@ -1,4 +1,4 @@ !function(a,b){var c,d,e,f=wp.customize;f.OverlayNotification=f.Notification.extend({loading:!1,initialize:function(a,b){var c=this;f.Notification.prototype.initialize.call(c,a,b),c.containerClasses+=" notification-overlay",c.loading&&(c.containerClasses+=" notification-loading")},render:function(){var a=f.Notification.prototype.render.call(this);return a.on("keydown",_.bind(this.handleEscape,this)),a},handleEscape:function(a){var b=this;27===a.which&&(a.stopPropagation(),b.dismissible&&b.parent&&b.parent.remove(b.code))}}),f.Notifications=f.Values.extend({alt:!1,defaultConstructor:f.Notification,initialize:function(a){var b=this;f.Values.prototype.initialize.call(b,a),_.bindAll(b,"constrainFocus"),b._addedIncrement=0,b._addedOrder={},b.bind("add",function(a){b.trigger("change",a)}),b.bind("removed",function(a){b.trigger("change",a)})},count:function(){return _.size(this._value)},add:function(a,b){var c,d,e=this;return"string"==typeof a?(c=a,d=b):(c=a.code,d=a),e.has(c)||(e._addedIncrement+=1,e._addedOrder[c]=e._addedIncrement),f.Values.prototype.add.call(e,c,d)},remove:function(a){var b=this;return delete b._addedOrder[a],f.Values.prototype.remove.call(this,a)},get:function(a){var b,c,d,e=this;return b=_.values(e._value),d=_.extend({sort:!1},a),d.sort&&(c={error:4,warning:3,success:2,info:1},b.sort(function(a,b){var d=0,f=0;return _.isUndefined(c[a.type])||(d=c[a.type]),_.isUndefined(c[b.type])||(f=c[b.type]),d!==f?f-d:e._addedOrder[b.code]-e._addedOrder[a.code]})),b},render:function(){var a,c,d,e,g=this,h=!1,i=[],j={};g.container&&g.container.length&&(a=g.get({sort:!0}),g.container.toggle(0!==a.length),g.container.is(g.previousContainer)&&_.isEqual(a,g.previousNotifications)||(d=g.container.children("ul").first(),d.length||(d=b("<ul></ul>"),g.container.append(d)),d.find("> [data-code]").remove(),_.each(g.previousNotifications,function(a){j[a.code]=a}),_.each(a,function(a){var c;!wp.a11y||j[a.code]&&_.isEqual(a.message,j[a.code].message)||wp.a11y.speak(a.message,"assertive"),c=b(a.render()),a.container=c,d.append(c),a.extended(f.OverlayNotification)&&i.push(a)}),c=Boolean(i.length),g.previousNotifications&&(h=Boolean(_.find(g.previousNotifications,function(a){return a.extended(f.OverlayNotification)}))),c!==h&&(b(document.body).toggleClass("customize-loading",c),g.container.toggleClass("has-overlay-notifications",c),c?(g.previousActiveElement=document.activeElement,b(document).on("keydown",g.constrainFocus)):b(document).off("keydown",g.constrainFocus)),c?(g.focusContainer=i[i.length-1].container,g.focusContainer.prop("tabIndex",-1),e=g.focusContainer.find(":focusable"),e.length?e.first().focus():g.focusContainer.focus()):g.previousActiveElement&&(b(g.previousActiveElement).focus(),g.previousActiveElement=null),g.previousNotifications=a,g.previousContainer=g.container,g.trigger("rendered")))},constrainFocus:function(a){var c,d=this;a.stopPropagation(),9===a.which&&(c=d.focusContainer.find(":focusable"),0===c.length&&(c=d.focusContainer),b.contains(d.focusContainer[0],a.target)&&b.contains(d.focusContainer[0],document.activeElement)?c.last().is(a.target)&&!a.shiftKey?(a.preventDefault(),c.first().focus()):c.first().is(a.target)&&a.shiftKey&&(a.preventDefault(),c.last().focus()):(a.preventDefault(),c.first().focus()))}}),f.Setting=f.Value.extend({defaults:{transport:"refresh",dirty:!1},initialize:function(a,b,c){var d,e=this;d=_.extend({previewer:f.previewer},e.defaults,c||{}),f.Value.prototype.initialize.call(e,b,d),e.id=a,e._dirty=d.dirty,e.notifications=new f.Notifications,e.bind(e.preview)},preview:function(){var a,b=this;a=b.transport,"postMessage"!==a||f.state("previewerAlive").get()||(a="refresh"),"postMessage"===a?b.previewer.send("setting",[b.id,b()]):"refresh"===a&&b.previewer.refresh()},findControls:function(){var a=this,b=[];return f.control.each(function(c){_.each(c.settings,function(d){d.id===a.id&&b.push(c)})}),b}}),f._latestRevision=0,f._lastSavedRevision=0,f._latestSettingRevisions={},f.bind("change",function(a){f._latestRevision+=1,f._latestSettingRevisions[a.id]=f._latestRevision}),f.bind("ready",function(){f.bind("add",function(a){a._dirty&&(f._latestRevision+=1,f._latestSettingRevisions[a.id]=f._latestRevision)})}),f.dirtyValues=function(a){var b={};return f.each(function(c){var d;c._dirty&&(d=f._latestSettingRevisions[c.id],f.state("changesetStatus").get()&&a&&a.unsaved&&(_.isUndefined(d)||d<=f._lastSavedRevision)||(b[c.id]=c.get()))}),b},f.requestChangesetUpdate=function(a,c){var d,e,g,h,i={};return d=new b.Deferred,0!==f.state("processing").get()?(d.reject("already_processing"),d.promise()):(h=_.extend({title:null,date:null,autosave:!1,force:!1},c),a&&_.extend(i,a),_.each(f.dirtyValues({unsaved:!0}),function(b,c){a&&null===a[c]||(i[c]=_.extend({},i[c]||{},{value:b}))}),f.trigger("changeset-save",i,h),!h.force&&_.isEmpty(i)&&null===h.title&&null===h.date?(d.resolve({}),d.promise()):h.status?d.reject({code:"illegal_status_in_changeset_update"}).promise():h.date&&h.autosave?d.reject({code:"illegal_autosave_with_date_gmt"}).promise():(f.state("processing").set(f.state("processing").get()+1),d.always(function(){f.state("processing").set(f.state("processing").get()-1)}),g=f.previewer.query({excludeCustomizedSaved:!0}),delete g.customized,_.extend(g,{nonce:f.settings.nonce.save,customize_theme:f.settings.theme.stylesheet,customize_changeset_data:JSON.stringify(i)}),null!==h.title&&(g.customize_changeset_title=h.title),null!==h.date&&(g.customize_changeset_date=h.date),!1!==h.autosave&&(g.customize_changeset_autosave="true"),f.trigger("save-request-params",g),e=wp.ajax.post("customize_save",g),e.done(function(a){var b={};f._lastSavedRevision=Math.max(f._latestRevision,f._lastSavedRevision),f.state("changesetStatus").set(a.changeset_status),a.changeset_date&&f.state("changesetDate").set(a.changeset_date),d.resolve(a),f.trigger("changeset-saved",a),a.setting_validities&&_.each(a.setting_validities,function(a,c){!0===a&&_.isObject(i[c])&&!_.isUndefined(i[c].value)&&(b[c]=i[c].value)}),f.previewer.send("changeset-saved",_.extend({},a,{saved_changeset_values:b}))}),e.fail(function(a){d.reject(a),f.trigger("changeset-error",a)}),e.always(function(a){a.setting_validities&&f._handleSettingValidities({settingValidities:a.setting_validities})}),d.promise()))},f.utils.bubbleChildValueChanges=function(a,c){b.each(c,function(b,c){a[c].bind(function(b,c){a.parent&&b!==c&&a.parent.trigger("change",a)})})},d=function(a){var b,c,d,e;b=this,a=a||{},d=function(){var a;a=(b.extended(f.Panel)||b.extended(f.Section))&&b.expanded&&b.expanded()?b.contentContainer:b.container,e=a.find(".control-focus:first"),0===e.length&&(e=a.find("input, select, textarea, button, object, a[href], [tabindex]").filter(":visible").first()),e.focus()},a.completeCallback?(c=a.completeCallback,a.completeCallback=function(){d(),c()}):a.completeCallback=d,f.state("paneVisible").set(!0),b.expand?b.expand(a):a.completeCallback()},f.utils.prioritySort=function(a,b){return a.priority()===b.priority()&&"number"==typeof a.params.instanceNumber&&"number"==typeof b.params.instanceNumber?a.params.instanceNumber-b.params.instanceNumber:a.priority()-b.priority()},f.utils.isKeydownButNotEnterEvent=function(a){return"keydown"===a.type&&13!==a.which},f.utils.areElementListsEqual=function(a,c){var d=a.length===c.length&&-1===_.indexOf(_.map(_.zip(a,c),function(a){return b(a[0]).is(a[1])}),!1);return d},f.utils.highlightButton=function(a,b){function c(){f=!0}var d,e="button-see-me",f=!1;return d=_.extend({delay:0,focusTarget:a},b),d.focusTarget.on("focusin",c),setTimeout(function(){d.focusTarget.off("focusin",c),f||(a.addClass(e),a.one("animationend",function(){a.removeClass(e)}))},d.delay),c},f.utils.getCurrentTimestamp=function(){var a,b,c;return b=_.now(),a=new Date(f.settings.initialServerDate.replace(/-/g,"/")),c=b-f.settings.initialClientTimestamp,c+=f.settings.initialClientTimestamp-f.settings.initialServerTimestamp,a.setTime(a.getTime()+c),a.getTime()},f.utils.getRemainingTime=function(a){var b,c,d=1e3;return c=a instanceof Date?a.getTime():"string"==typeof a?new Date(a.replace(/-/g,"/")).getTime():a,b=c-f.utils.getCurrentTimestamp(),b=Math.ceil(b/d)},e=function(){var a,b,c;return a=document.createElement("div"),b={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"},c=_.find(_.keys(b),function(b){return!_.isUndefined(a.style[b])}),c?b[c]:null}(),c=f.Class.extend({defaultActiveArguments:{duration:"fast",completeCallback:b.noop},defaultExpandedArguments:{duration:"fast",completeCallback:b.noop},containerType:"container",defaults:{title:"",description:"",priority:100,type:"default",content:null,active:!0,instanceNumber:null},initialize:function(a,d){var e=this;e.id=a,c.instanceCounter||(c.instanceCounter=0),c.instanceCounter++,b.extend(e,{params:_.defaults(d.params||d,e.defaults)}),e.params.instanceNumber||(e.params.instanceNumber=c.instanceCounter),e.notifications=new f.Notifications,e.templateSelector=e.params.templateId||"customize-"+e.containerType+"-"+e.params.type,e.container=b(e.params.content),0===e.container.length&&(e.container=b(e.getContainer())),e.headContainer=e.container,e.contentContainer=e.getContent(),e.container=e.container.add(e.contentContainer),e.deferred={embedded:new b.Deferred},e.priority=new f.Value,e.active=new f.Value,e.activeArgumentsQueue=[],e.expanded=new f.Value,e.expandedArgumentsQueue=[],e.active.bind(function(a){var c=e.activeArgumentsQueue.shift();c=b.extend({},e.defaultActiveArguments,c),a=a&&e.isContextuallyActive(),e.onChangeActive(a,c)}),e.expanded.bind(function(a){var c=e.expandedArgumentsQueue.shift();c=b.extend({},e.defaultExpandedArguments,c),e.onChangeExpanded(a,c)}),e.deferred.embedded.done(function(){e.setupNotifications(),e.attachEvents()}),f.utils.bubbleChildValueChanges(e,["priority","active"]),e.priority.set(e.params.priority),e.active.set(e.params.active),e.expanded.set(!1)},getNotificationsContainerElement:function(){var a=this;return a.contentContainer.find(".customize-control-notifications-container:first")},setupNotifications:function(){var a,b=this;b.notifications.container=b.getNotificationsContainerElement(),a=function(){b.expanded.get()&&b.notifications.render()},b.expanded.bind(a),a(),b.notifications.bind("change",_.debounce(a))},ready:function(){},_children:function(a,b){var c=this,d=[];return f[b].each(function(b){b[a].get()===c.id&&d.push(b)}),d.sort(f.utils.prioritySort),d},isContextuallyActive:function(){throw new Error("Container.isContextuallyActive() must be overridden in a subclass.")},onChangeActive:function(a,c){var d,e,g=this,h=g.headContainer;return c.unchanged?void(c.completeCallback&&c.completeCallback()):(d="resolved"===f.previewer.deferred.active.state()?c.duration:0,g.extended(f.Panel)&&(f.panel.each(function(a){a!==g&&a.expanded()&&(e=a,d=0)}),a||_.each(g.sections(),function(a){a.collapse({duration:0})})),void(b.contains(document,h.get(0))?a?h.slideDown(d,c.completeCallback):g.expanded()?g.collapse({duration:d,completeCallback:function(){h.slideUp(d,c.completeCallback)}}):h.slideUp(d,c.completeCallback):(h.toggle(a),c.completeCallback&&c.completeCallback())))},_toggleActive:function(a,b){var c=this;return b=b||{},a&&this.active.get()||!a&&!this.active.get()?(b.unchanged=!0,c.onChangeActive(c.active.get(),b),!1):(b.unchanged=!1,this.activeArgumentsQueue.push(b),this.active.set(a),!0)},activate:function(a){return this._toggleActive(!0,a)},deactivate:function(a){return this._toggleActive(!1,a)},onChangeExpanded:function(){throw new Error("Must override with subclass.")},_toggleExpanded:function(a,b){var c,d=this;return b=b||{},c=b.completeCallback,!(a&&!d.active())&&(f.state("paneVisible").set(!0),b.completeCallback=function(){c&&c.apply(d,arguments),a?d.container.trigger("expanded"):d.container.trigger("collapsed")},a&&d.expanded.get()||!a&&!d.expanded.get()?(b.unchanged=!0,d.onChangeExpanded(d.expanded.get(),b),!1):(b.unchanged=!1,d.expandedArgumentsQueue.push(b),d.expanded.set(a),!0))},expand:function(a){return this._toggleExpanded(!0,a)},collapse:function(a){return this._toggleExpanded(!1,a)},_animateChangeExpanded:function(a){if(!e)return void(a&&a());var c,d,g,h=this,i=h.contentContainer,j=i.closest(".wp-full-overlay");c=j.add(i),g=!h.panel||""===h.panel()||!!f.panel(h.panel()).contentContainer.hasClass("skip-transition"),g&&(c=c.add("#customize-info, .customize-pane-parent")),d=function(f){2===f.eventPhase&&b(f.target).is(i)&&(i.off(e,d),c.removeClass("busy"),a&&a())},i.on(e,d),c.addClass("busy"),_.defer(function(){var a=i.closest(".wp-full-overlay-sidebar-content"),b=a.scrollTop(),c=i.data("previous-scrollTop")||0,d=h.expanded();d&&0<b?(i.css("top",b+"px"),i.data("previous-scrollTop",b)):!d&&0<b+c&&(i.css("top",c-b+"px"),a.scrollTop(c))})},focus:d,getContainer:function(){var a,c=this;return a=0!==b("#tmpl-"+c.templateSelector).length?wp.template(c.templateSelector):wp.template("customize-"+c.containerType+"-default"),a&&c.container?b.trim(a(_.extend({id:c.id},c.params))):"<li></li>"},getContent:function(){var a=this,b=a.container,c=b.find(".accordion-section-content, .control-panel-content").first(),d="sub-"+b.attr("id"),e=d,f=b.attr("aria-owns");return f&&(e=e+" "+f),b.attr("aria-owns",e),c.detach().attr({id:d,"class":"customize-pane-child "+c.attr("class")+" "+b.attr("class")})}}),f.Section=c.extend({containerType:"section",containerParent:"#customize-theme-controls",containerPaneParent:".customize-pane-parent",defaults:{title:"",description:"",priority:100,type:"default",content:null,active:!0,instanceNumber:null,panel:null,customizeAction:""},initialize:function(a,d){var e,g=this;e=d.params||d,e.type||_.find(f.sectionConstructor,function(a,b){return a===g.constructor&&(e.type=b,!0)}),c.prototype.initialize.call(g,a,e),g.id=a,g.panel=new f.Value,g.panel.bind(function(a){b(g.headContainer).toggleClass("control-subsection",!!a)}),g.panel.set(g.params.panel||""),f.utils.bubbleChildValueChanges(g,["panel"]),g.embed(),g.deferred.embedded.done(function(){g.ready()})},embed:function(){var a,b=this;b.containerParent=f.ensure(b.containerParent),a=function(a){var c;a?f.panel(a,function(a){a.deferred.embedded.done(function(){c=a.contentContainer,b.headContainer.parent().is(c)||c.append(b.headContainer),b.contentContainer.parent().is(b.headContainer)||b.containerParent.append(b.contentContainer),b.deferred.embedded.resolve()})}):(c=f.ensure(b.containerPaneParent),b.headContainer.parent().is(c)||c.append(b.headContainer),b.contentContainer.parent().is(b.headContainer)||b.containerParent.append(b.contentContainer),b.deferred.embedded.resolve())},b.panel.bind(a),a(b.panel.get())},attachEvents:function(){var a,c,d=this;d.container.hasClass("cannot-expand")||(d.container.find(".accordion-section-title, .customize-section-back").on("click keydown",function(a){f.utils.isKeydownButNotEnterEvent(a)||(a.preventDefault(),d.expanded()?d.collapse():d.expand())}),d.container.find(".customize-section-title .customize-help-toggle").on("click",function(){a=d.container.find(".section-meta"),a.hasClass("cannot-expand")||(c=a.find(".customize-section-description:first"),c.toggleClass("open"),c.slideToggle(d.defaultExpandedArguments.duration,function(){c.trigger("toggled")}),b(this).attr("aria-expanded",function(a,b){return"true"===b?"false":"true"}))}))},isContextuallyActive:function(){var a=this,b=a.controls(),c=0;return _(b).each(function(a){a.active()&&(c+=1)}),0!==c},controls:function(){return this._children("section","control")},onChangeExpanded:function(a,c){var d,e,g=this,h=g.headContainer.closest(".wp-full-overlay-sidebar-content"),i=g.contentContainer,j=g.headContainer.closest(".wp-full-overlay"),k=i.find(".customize-section-back"),l=g.headContainer.find(".accordion-section-title").first();a&&!i.hasClass("open")?(d=c.unchanged?c.completeCallback:b.proxy(function(){g._animateChangeExpanded(function(){l.attr("tabindex","-1"),k.attr("tabindex","0"),k.focus(),i.css("top",""),h.scrollTop(0),c.completeCallback&&c.completeCallback()}),i.addClass("open"),j.addClass("section-open"),f.state("expandedSection").set(g)},this),c.allowMultiple||f.section.each(function(a){a!==g&&a.collapse({duration:c.duration})}),g.panel()?f.panel(g.panel()).expand({duration:c.duration,completeCallback:d}):(c.allowMultiple||f.panel.each(function(a){a.collapse()}),d())):!a&&i.hasClass("open")?(g.panel()&&(e=f.panel(g.panel()),e.contentContainer.hasClass("skip-transition")&&e.collapse()),g._animateChangeExpanded(function(){k.attr("tabindex","-1"),l.attr("tabindex","0"),l.focus(),i.css("top",""),c.completeCallback&&c.completeCallback()}),i.removeClass("open"),j.removeClass("section-open"),g===f.state("expandedSection").get()&&f.state("expandedSection").set(!1)):c.completeCallback&&c.completeCallback()}}),f.ThemesSection=f.Section.extend({currentTheme:"",overlay:"",template:"",screenshotQueue:null,$window:null,$body:null,loaded:0,loading:!1,fullyLoaded:!1,term:"",tags:"",nextTerm:"",nextTags:"",filtersHeight:0,headerContainer:null,updateCountDebounced:null,initialize:function(a,c){var d=this;d.headerContainer=b(),d.$window=b(window),d.$body=b(document.body),f.Section.prototype.initialize.call(d,a,c),d.updateCountDebounced=_.debounce(d.updateCount,500)},embed:function(){var a,b=this;a=function(a){var c;f.panel(a,function(a){a.deferred.embedded.done(function(){c=a.contentContainer,b.headContainer.parent().is(c)||c.find(".customize-themes-full-container-container").before(b.headContainer),b.contentContainer.parent().is(b.headContainer)||b.containerParent.append(b.contentContainer),b.deferred.embedded.resolve()})})},b.panel.bind(a),a(b.panel.get())},ready:function(){var a=this;a.overlay=a.container.find(".theme-overlay"),a.template=wp.template("customize-themes-details-view"),a.container.on("keydown",function(b){a.overlay.find(".theme-wrap").is(":visible")&&(39===b.keyCode&&a.nextTheme(),37===b.keyCode&&a.previousTheme(),27===b.keyCode&&(a.$body.hasClass("modal-open")?a.closeDetails():a.headerContainer.find(".customize-themes-section-title").focus(),b.stopPropagation()))}),a.renderScreenshots=_.throttle(a.renderScreenshots,100),_.bindAll(a,"renderScreenshots","loadMore","checkTerm","filtersChecked")},isContextuallyActive:function(){return this.active()},attachEvents:function(){function a(){var a=d.headerContainer.find(".customize-themes-section-title");a.toggleClass("selected",d.expanded()),a.attr("aria-expanded",d.expanded()?"true":"false"),d.expanded()||a.removeClass("details-open")}var c,d=this;d.container.find(".customize-section-back").on("click keydown",function(a){f.utils.isKeydownButNotEnterEvent(a)||(a.preventDefault(),d.collapse())}),d.headerContainer=b("#accordion-section-"+d.id),d.headerContainer.on("click",".customize-themes-section-title",function(){d.headerContainer.find(".filter-details").length&&(d.headerContainer.find(".customize-themes-section-title").toggleClass("details-open").attr("aria-expanded",function(a,b){return"true"===b?"false":"true"}),d.headerContainer.find(".filter-details").slideToggle(180)),d.expanded()||d.expand()}),d.container.on("click",".theme-actions .preview-theme",function(){f.panel("themes").loadThemePreview(b(this).data("slug"))}),d.container.on("click",".left",function(){d.previousTheme()}),d.container.on("click",".right",function(){d.nextTheme()}),d.container.on("click",".theme-backdrop, .close",function(){d.closeDetails()}),"local"===d.params.filter_type?d.container.on("input",".wp-filter-search-themes",function(a){d.filterSearch(a.currentTarget.value)}):"remote"===d.params.filter_type&&(c=_.debounce(d.checkTerm,500),d.contentContainer.on("input",".wp-filter-search",function(){f.panel("themes").expanded()&&(c(d),d.expanded()||d.expand())}),d.contentContainer.on("click",".filter-group input",function(){d.filtersChecked(),d.checkTerm(d)})),d.contentContainer.on("click",".feature-filter-toggle",function(a){var c=b(".customize-themes-full-container"),e=b(a.currentTarget);if(d.filtersHeight=e.parent().next(".filter-drawer").height(),!(0<c.scrollTop()&&(c.animate({scrollTop:0},400),e.hasClass("open"))))if(e.toggleClass("open").attr("aria-expanded",function(a,b){return"true"===b?"false":"true"}).parent().next(".filter-drawer").slideToggle(180,"linear"),e.hasClass("open")){var f=1018<window.innerWidth?50:76;d.contentContainer.find(".themes").css("margin-top",d.filtersHeight+f)}else d.contentContainer.find(".themes").css("margin-top",0)}),d.contentContainer.on("click",".no-themes-local .search-dotorg-themes",function(){f.section("wporg_themes").focus()}),d.expanded.bind(a),a(),f.bind("ready",function(){d.contentContainer=d.container.find(".customize-themes-section"),d.contentContainer.appendTo(b(".customize-themes-full-container")),d.container.add(d.headerContainer)})},onChangeExpanded:function(a,b){function c(){0===d.loaded&&d.loadThemes(),f.section.each(function(a){var c;a!==d&&"themes"===a.params.type&&(c=a.contentContainer.find(".wp-filter-search").val(),d.contentContainer.find(".wp-filter-search").val(c),""===c&&""!==d.term&&"local"!==d.params.filter_type?(d.term="",d.initializeNewQuery(d.term,d.tags)):"remote"===d.params.filter_type?d.checkTerm(d):"local"===d.params.filter_type&&d.filterSearch(c),a.collapse({duration:b.duration}))}),d.contentContainer.addClass("current-section"),e.scrollTop(),e.on("scroll",_.throttle(d.renderScreenshots,300)),e.on("scroll",_.throttle(d.loadMore,300)),b.completeCallback&&b.completeCallback(),d.updateCount()}var d=this,e=d.contentContainer.closest(".customize-themes-full-container");return b.unchanged?void(b.completeCallback&&b.completeCallback()):void(a?d.panel()&&f.panel.has(d.panel())?f.panel(d.panel()).expand({duration:b.duration,completeCallback:c}):c():(d.contentContainer.removeClass("current-section"),d.headerContainer.find(".filter-details").slideUp(180),e.off("scroll"),b.completeCallback&&b.completeCallback()))},getContent:function(){return this.container.find(".control-section-content")},loadThemes:function(){var a,b,c,d=this;d.loading||(b=Math.ceil(d.loaded/100)+1,a={nonce:f.settings.nonce.switch_themes,wp_customize:"on",theme_action:d.params.action,customized_theme:f.settings.theme.stylesheet,page:b},"remote"===d.params.filter_type&&(a.search=d.term,a.tags=d.tags),d.headContainer.closest(".wp-full-overlay").addClass("loading"),d.loading=!0,d.container.find(".no-themes").hide(),c=wp.ajax.post("customize_load_themes",a),c.done(function(a){var c=a.themes;return""!==d.nextTerm||""!==d.nextTags?(d.nextTerm&&(d.term=d.nextTerm),d.nextTags&&(d.tags=d.nextTags),d.nextTerm="",d.nextTags="",d.loading=!1,void d.loadThemes()):(0!==c.length?(d.loadControls(c,b),1===b&&(_.each(d.controls().slice(0,3),function(a){var b,c=a.params.theme.screenshot[0];c&&(b=new Image,b.src=c)}),"local"!==d.params.filter_type&&wp.a11y.speak(f.settings.l10n.themeSearchResults.replace("%d",a.info.results))),_.delay(d.renderScreenshots,100),("local"===d.params.filter_type||100>c.length)&&(d.fullyLoaded=!0)):0===d.loaded?(d.container.find(".no-themes").show(),wp.a11y.speak(d.container.find(".no-themes").text())):d.fullyLoaded=!0,"local"===d.params.filter_type?d.updateCount():d.updateCount(a.info.results),d.container.find(".unexpected-error").hide(),d.headContainer.closest(".wp-full-overlay").removeClass("loading"),void(d.loading=!1))}),c.fail(function(a){"undefined"==typeof a?(d.container.find(".unexpected-error").show(),wp.a11y.speak(d.container.find(".unexpected-error").text())):"undefined"!=typeof console&&console.error&&console.error(a),d.headContainer.closest(".wp-full-overlay").removeClass("loading"),d.loading=!1}))},loadControls:function(a,b){var c=[],d=this;_.each(a,function(a){var b=new f.controlConstructor.theme(d.params.action+"_theme_"+a.id,{type:"theme",section:d.params.id,theme:a,priority:d.loaded+1});f.control.add(b),c.push(b),d.loaded=d.loaded+1}),1!==b&&Array.prototype.push.apply(d.screenshotQueue,c)},loadMore:function(){var a,b,c,d=this;d.fullyLoaded||d.loading||(a=d.container.closest(".customize-themes-full-container"),b=a.scrollTop()+a.height(),c=a.prop("scrollHeight")-3e3,b>c&&d.loadThemes())},filterSearch:function(a){var b,c=0,d=!1,e=this,g=f.section.has("wporg_themes")&&"remote"!==e.params.filter_type?".no-themes-local":".no-themes",h=e.controls();e.loading||(b=a.toLowerCase().trim().replace(/-/g," ").split(" "),_.each(h,function(a){d=a.filter(b),d&&(c+=1)}),0===c?(e.container.find(g).show(),wp.a11y.speak(e.container.find(g).text())):e.container.find(g).hide(),e.renderScreenshots(),f.reflowPaneContents(),e.updateCountDebounced(c))},checkTerm:function(a){var b;"remote"===a.params.filter_type&&(b=a.contentContainer.find(".wp-filter-search").val(),a.term!==b.trim()&&a.initializeNewQuery(b,a.tags))},filtersChecked:function(){var a=this,c=a.container.find(".filter-group").find(":checkbox"),d=[];_.each(c.filter(":checked"),function(a){d.push(b(a).prop("value"))}),0===d.length?(d="",a.contentContainer.find(".feature-filter-toggle .filter-count-0").show(),a.contentContainer.find(".feature-filter-toggle .filter-count-filters").hide()):(a.contentContainer.find(".feature-filter-toggle .theme-filter-count").text(d.length),a.contentContainer.find(".feature-filter-toggle .filter-count-0").hide(),a.contentContainer.find(".feature-filter-toggle .filter-count-filters").show()),_.isEqual(a.tags,d)||(a.loading?a.nextTags=d:"remote"===a.params.filter_type?a.initializeNewQuery(a.term,d):"local"===a.params.filter_type&&a.filterSearch(d.join(" ")))},initializeNewQuery:function(a,b){var c=this;_.each(c.controls(),function(a){a.container.remove(),f.control.remove(a.id)}),c.loaded=0,c.fullyLoaded=!1,c.screenshotQueue=null,c.loading?(c.nextTerm=a,c.nextTags=b):(c.term=a,c.tags=b,c.loadThemes()),c.expanded()||c.expand()},renderScreenshots:function(){var a=this;null!==a.screenshotQueue&&0!==a.screenshotQueue.length||(a.screenshotQueue=_.filter(a.controls(),function(a){return!a.screenshotRendered})),a.screenshotQueue.length&&(a.screenshotQueue=_.filter(a.screenshotQueue,function(b){var c=b.container.find(".theme-screenshot"),d=c.find("img");if(!d.length)return!1;if(d.is(":hidden"))return!0;var e=a.$window.scrollTop(),f=e+a.$window.height(),g=d.offset().top,h=c.height(),i=g+h,j=3*h,k=i>=e-j&&g<=f+j;return k&&b.container.trigger("render-screenshot"),!k}))},getVisibleCount:function(){return this.contentContainer.find("li.customize-control:visible").length},updateCount:function(a){var b,c,d=this;a||0===a||(a=d.getVisibleCount()),c=d.contentContainer.find(".themes-displayed"),b=d.contentContainer.find(".theme-count"),0===a?b.text("0"):(c.fadeOut(180,function(){b.text(a),c.fadeIn(180)}),wp.a11y.speak(f.settings.l10n.announceThemeCount.replace("%d",a)))},nextTheme:function(){var a=this;a.getNextTheme()&&a.showDetails(a.getNextTheme(),function(){a.overlay.find(".right").focus()})},getNextTheme:function(){var a,b,c,d,e=this;return a=f.control(e.params.action+"_theme_"+e.currentTheme),c=e.controls(),d=_.indexOf(c,a),-1!==d&&(b=c[d+1],!!b&&b.params.theme)},previousTheme:function(){var a=this;a.getPreviousTheme()&&a.showDetails(a.getPreviousTheme(),function(){a.overlay.find(".left").focus()})},getPreviousTheme:function(){var a,b,c,d,e=this;return a=f.control(e.params.action+"_theme_"+e.currentTheme),c=e.controls(),d=_.indexOf(c,a),-1!==d&&(b=c[d-1],!!b&&b.params.theme)},updateLimits:function(){this.getNextTheme()||this.overlay.find(".right").addClass("disabled"),this.getPreviousTheme()||this.overlay.find(".left").addClass("disabled")},loadThemePreview:function(a){return f.ThemesPanel.prototype.loadThemePreview.call(this,a)},showDetails:function(a,b){function c(){return!g.canSwitchTheme(a.id)}function d(){return c()||!1===f.settings.theme._canInstall||!0===f.settings.theme._filesystemCredentialsNeeded}var e=this,g=f.panel("themes");e.currentTheme=a.id,e.overlay.html(e.template(a)).fadeIn("fast").focus(),e.overlay.find("button.preview, button.preview-theme").toggleClass("disabled",c()),e.overlay.find("button.theme-install").toggleClass("disabled",d()),e.$body.addClass("modal-open"),e.containFocus(e.overlay),e.updateLimits(),wp.a11y.speak(f.settings.l10n.announceThemeDetails.replace("%s",a.name)),b&&b()},closeDetails:function(){var a=this;a.$body.removeClass("modal-open"),a.overlay.fadeOut("fast"),f.control(a.params.action+"_theme_"+a.currentTheme).container.find(".theme").focus()},containFocus:function(a){var c;a.on("keydown",function(d){if(9===d.keyCode)return c=b(":tabbable",a),c.last()[0]!==d.target||d.shiftKey?c.first()[0]===d.target&&d.shiftKey?(c.last().focus(),!1):void 0:(c.first().focus(),!1)})}}),f.OuterSection=f.Section.extend({initialize:function(){var a=this;a.containerParent="#customize-outer-theme-controls",a.containerPaneParent=".customize-outer-pane-parent",f.Section.prototype.initialize.apply(a,arguments)},onChangeExpanded:function(a,c){var d,e,g=this,h=g.headContainer.closest(".wp-full-overlay-sidebar-content"),i=g.contentContainer,j=i.find(".customize-section-back"),k=g.headContainer.find(".accordion-section-title").first(),l=b(document.body);l.toggleClass("outer-section-open",a),g.container.toggleClass("open",a),g.container.removeClass("busy"),f.section.each(function(a){"outer"===a.params.type&&a.id!==g.id&&a.container.removeClass("open")}),a&&!i.hasClass("open")?(d=c.unchanged?c.completeCallback:b.proxy(function(){g._animateChangeExpanded(function(){k.attr("tabindex","-1"),j.attr("tabindex","0"),j.focus(),i.css("top",""),h.scrollTop(0),c.completeCallback&&c.completeCallback()}),i.addClass("open")},this),g.panel()?f.panel(g.panel()).expand({duration:c.duration,completeCallback:d}):d()):!a&&i.hasClass("open")?(g.panel()&&(e=f.panel(g.panel()),e.contentContainer.hasClass("skip-transition")&&e.collapse()),g._animateChangeExpanded(function(){j.attr("tabindex","-1"),k.attr("tabindex","0"),k.focus(),i.css("top",""),c.completeCallback&&c.completeCallback()}),i.removeClass("open")):c.completeCallback&&c.completeCallback()}}),f.Panel=c.extend({containerType:"panel",initialize:function(a,b){var d,e=this;d=b.params||b,d.type||_.find(f.panelConstructor,function(a,b){return a===e.constructor&&(d.type=b,!0)}),c.prototype.initialize.call(e,a,d),e.embed(),e.deferred.embedded.done(function(){e.ready()})},embed:function(){var a=this,c=b("#customize-theme-controls"),d=b(".customize-pane-parent");a.headContainer.parent().is(d)||d.append(a.headContainer),a.contentContainer.parent().is(a.headContainer)||c.append(a.contentContainer),a.renderContent(),a.deferred.embedded.resolve()},attachEvents:function(){var a,c=this;c.headContainer.find(".accordion-section-title").on("click keydown",function(a){f.utils.isKeydownButNotEnterEvent(a)||(a.preventDefault(),c.expanded()||c.expand())}),c.container.find(".customize-panel-back").on("click keydown",function(a){f.utils.isKeydownButNotEnterEvent(a)||(a.preventDefault(),c.expanded()&&c.collapse())}),a=c.container.find(".panel-meta:first"),a.find("> .accordion-section-title .customize-help-toggle").on("click",function(){if(!a.hasClass("cannot-expand")){var d=a.find(".customize-panel-description:first");a.hasClass("open")?(a.toggleClass("open"),d.slideUp(c.defaultExpandedArguments.duration,function(){d.trigger("toggled")}),b(this).attr("aria-expanded",!1)):(d.slideDown(c.defaultExpandedArguments.duration,function(){d.trigger("toggled")}),a.toggleClass("open"),b(this).attr("aria-expanded",!0))}})},sections:function(){return this._children("panel","section")},isContextuallyActive:function(){var a=this,b=a.sections(),c=0;return _(b).each(function(a){a.active()&&a.isContextuallyActive()&&(c+=1)}),0!==c},onChangeExpanded:function(a,b){if(b.unchanged)return void(b.completeCallback&&b.completeCallback());var c,d=this,e=d.contentContainer,g=e.closest(".wp-full-overlay"),h=e.closest(".wp-full-overlay-sidebar-content"),i=d.headContainer.find(".accordion-section-title"),j=e.find(".customize-panel-back"),k=d.sections();a&&!e.hasClass("current-panel")?(f.section.each(function(a){d.id!==a.panel()&&a.collapse({duration:0})}),f.panel.each(function(a){d!==a&&a.collapse({duration:0}); }),d.params.autoExpandSoleSection&&1===k.length&&k[0].active.get()?(e.addClass("current-panel skip-transition"),g.addClass("in-sub-panel"),k[0].expand({completeCallback:b.completeCallback})):(d._animateChangeExpanded(function(){i.attr("tabindex","-1"),j.attr("tabindex","0"),j.focus(),e.css("top",""),h.scrollTop(0),b.completeCallback&&b.completeCallback()}),e.addClass("current-panel"),g.addClass("in-sub-panel")),f.state("expandedPanel").set(d)):!a&&e.hasClass("current-panel")&&(c=e.hasClass("skip-transition"),c?e.removeClass("skip-transition"):d._animateChangeExpanded(function(){i.attr("tabindex","0"),j.attr("tabindex","-1"),i.focus(),e.css("top",""),b.completeCallback&&b.completeCallback()}),g.removeClass("in-sub-panel"),e.removeClass("current-panel"),d===f.state("expandedPanel").get()&&f.state("expandedPanel").set(!1))},renderContent:function(){var a,c=this;a=0!==b("#tmpl-"+c.templateSelector+"-content").length?wp.template(c.templateSelector+"-content"):wp.template("customize-panel-default-content"),a&&c.headContainer&&c.contentContainer.html(a(_.extend({id:c.id},c.params)))}}),f.ThemesPanel=f.Panel.extend({initialize:function(a,b){var c=this;c.installingThemes=[],f.Panel.prototype.initialize.call(c,a,b)},canSwitchTheme:function(a){return!(!a||a!==f.settings.theme.stylesheet)||"publish"===f.state("selectedChangesetStatus").get()&&(""===f.state("changesetStatus").get()||"auto-draft"===f.state("changesetStatus").get())},attachEvents:function(){function a(){c.canSwitchTheme()?c.notifications.remove("theme_switch_unavailable"):c.notifications.add(new f.Notification("theme_switch_unavailable",{message:f.l10n.themePreviewUnavailable,type:"warning"}))}var c=this;f.Panel.prototype.attachEvents.apply(c),f.settings.theme._canInstall&&f.settings.theme._filesystemCredentialsNeeded&&c.notifications.add(new f.Notification("theme_install_unavailable",{message:f.l10n.themeInstallUnavailable,type:"info",dismissible:!0})),a(),f.state("selectedChangesetStatus").bind(a),f.state("changesetStatus").bind(a),c.contentContainer.on("click",".customize-theme",function(){c.collapse()}),c.contentContainer.on("click",".customize-themes-section-title, .customize-themes-mobile-back",function(){b(".wp-full-overlay").toggleClass("showing-themes")}),c.contentContainer.on("click",".theme-install",function(a){c.installTheme(a)}),c.contentContainer.on("click",".update-theme, #update-theme",function(a){a.preventDefault(),a.stopPropagation(),c.updateTheme(a)}),c.contentContainer.on("click",".delete-theme",function(a){c.deleteTheme(a)}),_.bindAll(c,"installTheme","updateTheme")},onChangeExpanded:function(a,b){var c,d,e=this,g=!1;return f.Panel.prototype.onChangeExpanded.apply(this,[a,b]),b.unchanged?void(b.completeCallback&&b.completeCallback()):(c=e.headContainer.closest(".wp-full-overlay"),void(a?(c.addClass("in-themes-panel").delay(200).find(".customize-themes-full-container").addClass("animate"),_.delay(function(){c.addClass("themes-panel-expanded")},200),600<window.innerWidth&&(d=e.sections(),_.each(d,function(a){a.expanded()&&(g=!0)}),!g&&d.length>0&&d[0].expand())):c.removeClass("in-themes-panel themes-panel-expanded").find(".customize-themes-full-container").removeClass("animate")))},installTheme:function(a){var c,d,e,g=this,h=b(a.target).data("slug"),i=b.Deferred();return c=b(a.target).hasClass("preview"),f.settings.theme._filesystemCredentialsNeeded?(i.reject({errorCode:"theme_install_unavailable"}),i.promise()):g.canSwitchTheme(h)?_.contains(g.installingThemes,h)?(i.reject({errorCode:"theme_already_installing"}),i.promise()):(wp.updates.maybeRequestFilesystemCredentials(a),d=function(a){var b,d=!1;if(c)f.notifications.remove("theme_installing"),g.loadThemePreview(h);else{if(f.control.each(function(b){"theme"===b.params.type&&b.params.theme.id===a.slug&&(d=b.params.theme,b.rerenderAsInstalled(!0))}),!d||f.control.has("installed_theme_"+d.id))return void i.resolve(a);d.type="installed",b=new f.controlConstructor.theme("installed_theme_"+d.id,{type:"theme",section:"installed_themes",theme:d,priority:0}),f.control.add(b),f.control(b.id).container.trigger("render-screenshot"),f.section.each(function(a){"themes"===a.params.type&&d.id===a.currentTheme&&a.closeDetails()})}i.resolve(a)},g.installingThemes.push(h),e=wp.updates.installTheme({slug:h}),c&&f.notifications.add(new f.OverlayNotification("theme_installing",{message:f.l10n.themeDownloading,type:"info",loading:!0})),e.done(d),e.fail(function(){f.notifications.remove("theme_installing")}),i.promise()):(i.reject({errorCode:"theme_switch_unavailable"}),i.promise())},loadThemePreview:function(a){var c,d,e,g=this,h=b.Deferred();return g.canSwitchTheme(a)?(d=document.createElement("a"),d.href=location.href,e=_.extend(f.utils.parseQueryString(d.search.substr(1)),{theme:a,changeset_uuid:f.settings.changeset.uuid,"return":f.settings.url["return"]}),f.state("saved").get()||(e.customize_autosaved="on"),d.search=b.param(e),f.notifications.add(new f.OverlayNotification("theme_previewing",{message:f.l10n.themePreviewWait,type:"info",loading:!0})),c=function(){var a;f.state("processing").get()>0||(f.state("processing").unbind(c),a=f.requestChangesetUpdate({},{autosave:!0}),a.done(function(){h.resolve(),b(window).off("beforeunload.customize-confirm"),location.replace(d.href)}),a.fail(function(){f.notifications.remove("theme_previewing"),h.reject()}))},0===f.state("processing").get()?c():f.state("processing").bind(c),h.promise()):(h.reject({errorCode:"theme_switch_unavailable"}),h.promise())},updateTheme:function(a){wp.updates.maybeRequestFilesystemCredentials(a),b(document).one("wp-theme-update-success",function(a,b){f.control.each(function(a){"theme"===a.params.type&&a.params.theme.id===b.slug&&(a.params.theme.hasUpdate=!1,a.params.theme.version=b.newVersion,setTimeout(function(){a.rerenderAsInstalled(!0)},2e3))})}),wp.updates.updateTheme({slug:b(a.target).closest(".notice").data("slug")})},deleteTheme:function(a){var c,d;c=b(a.target).data("slug"),d=f.section("installed_themes"),a.preventDefault(),f.settings.theme._filesystemCredentialsNeeded||window.confirm(f.settings.l10n.confirmDeleteTheme)&&(wp.updates.maybeRequestFilesystemCredentials(a),b(document).one("wp-theme-delete-success",function(){var a=f.control("installed_theme_"+c);a.container.remove(),f.control.remove(a.id),d.loaded=d.loaded-1,d.updateCount(),f.control.each(function(a){"theme"===a.params.type&&a.params.theme.id===c&&a.rerenderAsInstalled(!1)})}),wp.updates.deleteTheme({slug:c}),d.closeDetails(),d.focus())}}),f.Control=f.Class.extend({defaultActiveArguments:{duration:"fast",completeCallback:b.noop},defaults:{label:"",description:"",active:!0,priority:10},initialize:function(a,c){var d,e,g=this,h=[];g.params=_.extend({},g.defaults,g.params||{},c.params||c||{}),f.Control.instanceCounter||(f.Control.instanceCounter=0),f.Control.instanceCounter++,g.params.instanceNumber||(g.params.instanceNumber=f.Control.instanceCounter),g.params.type||_.find(f.controlConstructor,function(a,b){return a===g.constructor&&(g.params.type=b,!0)}),g.params.content||(g.params.content=b("<li></li>",{id:"customize-control-"+a.replace(/]/g,"").replace(/\[/g,"-"),"class":"customize-control customize-control-"+g.params.type})),g.id=a,g.selector="#customize-control-"+a.replace(/\]/g,"").replace(/\[/g,"-"),g.params.content?g.container=b(g.params.content):g.container=b(g.selector),g.params.templateId?g.templateSelector=g.params.templateId:g.templateSelector="customize-control-"+g.params.type+"-content",g.deferred=_.extend(g.deferred||{},{embedded:new b.Deferred}),g.section=new f.Value,g.priority=new f.Value,g.active=new f.Value,g.activeArgumentsQueue=[],g.notifications=new f.Notifications({alt:g.altNotice}),g.elements=[],g.active.bind(function(a){var c=g.activeArgumentsQueue.shift();c=b.extend({},g.defaultActiveArguments,c),g.onChangeActive(a,c)}),g.section.set(g.params.section),g.priority.set(isNaN(g.params.priority)?10:g.params.priority),g.active.set(g.params.active),f.utils.bubbleChildValueChanges(g,["section","priority","active"]),g.settings={},d={},g.params.setting&&(d["default"]=g.params.setting),_.extend(d,g.params.settings),_.each(d,function(a,b){var c;_.isObject(a)&&_.isFunction(a.extended)&&a.extended(f.Value)?g.settings[b]=a:_.isString(a)&&(c=f(a),c?g.settings[b]=c:h.push(a))}),e=function(){_.each(d,function(a,b){!g.settings[b]&&_.isString(a)&&(g.settings[b]=f(a))}),g.settings[0]&&!g.settings["default"]&&(g.settings["default"]=g.settings[0]),g.setting=g.settings["default"]||null,g.linkElements(),g.embed()},0===h.length?e():f.apply(f,h.concat(e)),g.deferred.embedded.done(function(){g.linkElements(),g.setupNotifications(),g.ready()})},linkElements:function(){var a,c,d,e=this;a=e.container.find("[data-customize-setting-link], [data-customize-setting-key-link]"),c={},a.each(function(){var g,h,i=b(this);if(!i.data("customizeSettingLinked")){if(i.data("customizeSettingLinked",!0),i.is(":radio")){if(g=i.prop("name"),c[g])return;c[g]=!0,i=a.filter('[name="'+g+'"]')}i.data("customizeSettingLink")?h=f(i.data("customizeSettingLink")):i.data("customizeSettingKeyLink")&&(h=e.settings[i.data("customizeSettingKeyLink")]),h&&(d=new f.Element(i),e.elements.push(d),d.sync(h),d.set(h()))}})},embed:function(){var a,b=this;a=function(a){var c;a&&f.section(a,function(a){a.deferred.embedded.done(function(){c=a.contentContainer.is("ul")?a.contentContainer:a.contentContainer.find("ul:first"),b.container.parent().is(c)||(c.append(b.container),b.renderContent()),b.deferred.embedded.resolve()})})},b.section.bind(a),a(b.section.get())},ready:function(){var a,c=this;"dropdown-pages"===c.params.type&&c.params.allow_addition&&(a=c.container.find(".new-content-item"),a.hide(),c.container.on("click",".add-new-toggle",function(c){b(c.currentTarget).slideUp(180),a.slideDown(180),a.find(".create-item-input").focus()}),c.container.on("click",".add-content",function(){c.addNewPage()}),c.container.on("keydown",".create-item-input",function(a){13===a.which&&c.addNewPage()}))},getNotificationsContainerElement:function(){var a,c,d=this;return c=d.container.find(".customize-control-notifications-container:first"),c.length?c:(c=b('<div class="customize-control-notifications-container"></div>'),d.container.hasClass("customize-control-nav_menu_item")?d.container.find(".menu-item-settings:first").prepend(c):d.container.hasClass("customize-control-widget_form")?d.container.find(".widget-inside:first").prepend(c):(a=d.container.find(".customize-control-title"),a.length?a.after(c):d.container.prepend(c)),c)},setupNotifications:function(){var a,b,c=this;_.each(c.settings,function(a){a.notifications&&(a.notifications.bind("add",function(b){var d=_.extend({},b,{setting:a.id});c.notifications.add(new f.Notification(a.id+":"+b.code,d))}),a.notifications.bind("remove",function(b){c.notifications.remove(a.id+":"+b.code)}))}),a=function(){var a=c.section();(!a||f.section.has(a)&&f.section(a).expanded())&&c.notifications.render()},c.notifications.bind("rendered",function(){var a=c.notifications.get();c.container.toggleClass("has-notifications",0!==a.length),c.container.toggleClass("has-error",0!==_.where(a,{type:"error"}).length)}),b=function(b,c){c&&f.section.has(c)&&f.section(c).expanded.unbind(a),b&&f.section(b,function(b){b.expanded.bind(a),a()})},c.section.bind(b),b(c.section.get()),c.notifications.bind("change",_.debounce(a))},renderNotifications:function(){var a,c,d=this,e=!1;"undefined"!=typeof console&&console.warn&&console.warn("[DEPRECATED] wp.customize.Control.prototype.renderNotifications() is deprecated in favor of instantating a wp.customize.Notifications and calling its render() method."),a=d.getNotificationsContainerElement(),a&&a.length&&(c=[],d.notifications.each(function(a){c.push(a),"error"===a.type&&(e=!0)}),0===c.length?a.stop().slideUp("fast"):a.stop().slideDown("fast",null,function(){b(this).css("height","auto")}),d.notificationsTemplate||(d.notificationsTemplate=wp.template("customize-control-notifications")),d.container.toggleClass("has-notifications",0!==c.length),d.container.toggleClass("has-error",e),a.empty().append(b.trim(d.notificationsTemplate({notifications:c,altNotice:Boolean(d.altNotice)}))))},expand:function(a){f.section(this.section()).expand(a)},focus:d,onChangeActive:function(a,c){return c.unchanged?void(c.completeCallback&&c.completeCallback()):void(b.contains(document,this.container[0])?a?this.container.slideDown(c.duration,c.completeCallback):this.container.slideUp(c.duration,c.completeCallback):(this.container.toggle(a),c.completeCallback&&c.completeCallback()))},toggle:function(a){return this.onChangeActive(a,this.defaultActiveArguments)},activate:c.prototype.activate,deactivate:c.prototype.deactivate,_toggleActive:c.prototype._toggleActive,dropdownInit:function(){var a=this,b=this.container.find(".dropdown-status"),c=this.params,d=!1,e=function(a){"string"==typeof a&&c.statuses&&c.statuses[a]?b.html(c.statuses[a]).show():b.hide()};this.container.on("click keydown",".dropdown",function(b){f.utils.isKeydownButNotEnterEvent(b)||(b.preventDefault(),d||a.container.toggleClass("open"),a.container.hasClass("open")&&a.container.parent().parent().find("li.library-selected").focus(),d=!0,setTimeout(function(){d=!1},400))}),this.setting.bind(e),e(this.setting())},renderContent:function(){var a,b,c,d,e=this;b=["button","checkbox","date","datetime-local","email","month","number","password","radio","range","search","select","tel","time","text","textarea","week","url"],c=e.templateSelector,c==="customize-control-"+e.params.type+"-content"&&_.contains(b,e.params.type)&&!document.getElementById("tmpl-"+c)&&0===e.container.children().length&&(c="customize-control-default-content"),document.getElementById("tmpl-"+c)&&(a=wp.template(c),a&&e.container&&e.container.html(a(e.params))),e.notifications.container=e.getNotificationsContainerElement(),d=e.section(),(!d||f.section.has(d)&&f.section(d).expanded())&&e.notifications.render()},addNewPage:function(){var a,c,d,e,g,h,i=this;if("dropdown-pages"===i.params.type&&i.params.allow_addition&&f.Menus){if(c=i.container.find(".add-new-toggle"),d=i.container.find(".new-content-item"),e=i.container.find(".create-item-input"),g=e.val(),h=i.container.find("select"),!g)return void e.addClass("invalid");e.removeClass("invalid"),e.attr("disabled","disabled"),a=f.Menus.insertAutoDraftPost({post_title:g,post_type:"page"}),a.done(function(a){var e,j,k;e=new f.Menus.AvailableItemModel({id:"post-"+a.post_id,title:g,type:"post_type",type_label:f.Menus.data.l10n.page_label,object:"page",object_id:a.post_id,url:a.url}),f.Menus.availableMenuItemsPanel.collection.add(e),j=b("#available-menu-items-post_type-page").find(".available-menu-items-list"),k=wp.template("available-menu-item"),j.prepend(k(e.attributes)),h.focus(),i.setting.set(String(a.post_id)),d.slideUp(180),c.slideDown(180)}),a.always(function(){e.val("").removeAttr("disabled")})}}}),f.ColorControl=f.Control.extend({ready:function(){var a,b=this,c="hue"===this.params.mode,d=!1;c?(a=this.container.find(".color-picker-hue"),a.val(b.setting()).wpColorPicker({change:function(a,c){d=!0,b.setting(c.color.h()),d=!1}})):(a=this.container.find(".color-picker-hex"),a.val(b.setting()).wpColorPicker({change:function(){d=!0,b.setting.set(a.wpColorPicker("color")),d=!1},clear:function(){d=!0,b.setting.set(""),d=!1}})),b.setting.bind(function(b){d||(a.val(b),a.wpColorPicker("color",b))}),b.container.on("keydown",function(c){var d;27===c.which&&(d=b.container.find(".wp-picker-container"),d.hasClass("wp-picker-active")&&(a.wpColorPicker("close"),b.container.find(".wp-color-result").focus(),c.stopPropagation()))})}}),f.MediaControl=f.Control.extend({ready:function(){function a(a){var d=b.Deferred();c.extended(f.UploadControl)?d.resolve():(a=parseInt(a,10),_.isNaN(a)||a<=0?(delete c.params.attachment,d.resolve()):c.params.attachment&&c.params.attachment.id===a&&d.resolve()),"pending"===d.state()&&wp.media.attachment(a).fetch().done(function(){c.params.attachment=this.attributes,d.resolve(),wp.customize.previewer.send(c.setting.id+"-attachment-data",this.attributes)}),d.done(function(){c.renderContent()})}var c=this;_.bindAll(c,"restoreDefault","removeFile","openFrame","select","pausePlayer"),c.container.on("click keydown",".upload-button",c.openFrame),c.container.on("click keydown",".upload-button",c.pausePlayer),c.container.on("click keydown",".thumbnail-image img",c.openFrame),c.container.on("click keydown",".default-button",c.restoreDefault),c.container.on("click keydown",".remove-button",c.pausePlayer),c.container.on("click keydown",".remove-button",c.removeFile),c.container.on("click keydown",".remove-button",c.cleanupPlayer),f.section(c.section()).container.on("expanded",function(){c.player&&c.player.setControlsSize()}).on("collapsed",function(){c.pausePlayer()}),a(c.setting()),c.setting.bind(a)},pausePlayer:function(){this.player&&this.player.pause()},cleanupPlayer:function(){this.player&&wp.media.mixin.removePlayer(this.player)},openFrame:function(a){f.utils.isKeydownButNotEnterEvent(a)||(a.preventDefault(),this.frame||this.initFrame(),this.frame.open())},initFrame:function(){this.frame=wp.media({button:{text:this.params.button_labels.frame_button},states:[new wp.media.controller.Library({title:this.params.button_labels.frame_title,library:wp.media.query({type:this.params.mime_type}),multiple:!1,date:!1})]}),this.frame.on("select",this.select)},select:function(){var a,b=this.frame.state().get("selection").first().toJSON(),c=window._wpmejsSettings||{};this.params.attachment=b,this.setting(b.id),a=this.container.find("audio, video").get(0),a?this.player=new MediaElementPlayer(a,c):this.cleanupPlayer()},restoreDefault:function(a){f.utils.isKeydownButNotEnterEvent(a)||(a.preventDefault(),this.params.attachment=this.params.defaultAttachment,this.setting(this.params.defaultAttachment.url))},removeFile:function(a){f.utils.isKeydownButNotEnterEvent(a)||(a.preventDefault(),this.params.attachment={},this.setting(""),this.renderContent())}}),f.UploadControl=f.MediaControl.extend({select:function(){var a,b=this.frame.state().get("selection").first().toJSON(),c=window._wpmejsSettings||{};this.params.attachment=b,this.setting(b.url),a=this.container.find("audio, video").get(0),a?this.player=new MediaElementPlayer(a,c):this.cleanupPlayer()},success:function(){},removerVisibility:function(){}}),f.ImageControl=f.UploadControl.extend({thumbnailSrc:function(){}}),f.BackgroundControl=f.UploadControl.extend({ready:function(){f.UploadControl.prototype.ready.apply(this,arguments)},select:function(){f.UploadControl.prototype.select.apply(this,arguments),wp.ajax.post("custom-background-add",{nonce:_wpCustomizeBackground.nonces.add,wp_customize:"on",customize_theme:f.settings.theme.stylesheet,attachment_id:this.params.attachment.id})}}),f.BackgroundPositionControl=f.Control.extend({ready:function(){var a,c=this;c.container.on("change",'input[name="background-position"]',function(){var a=b(this).val().split(" ");c.settings.x(a[0]),c.settings.y(a[1])}),a=_.debounce(function(){var a,b,d,e;a=c.settings.x.get(),b=c.settings.y.get(),e=String(a)+" "+String(b),d=c.container.find('input[name="background-position"][value="'+e+'"]'),d.click()}),c.settings.x.bind(a),c.settings.y.bind(a),a()}}),f.CroppedImageControl=f.MediaControl.extend({openFrame:function(a){f.utils.isKeydownButNotEnterEvent(a)||(this.initFrame(),this.frame.setState("library").open())},initFrame:function(){var a=_wpMediaViewsL10n;this.frame=wp.media({button:{text:a.select,close:!1},states:[new wp.media.controller.Library({title:this.params.button_labels.frame_title,library:wp.media.query({type:"image"}),multiple:!1,date:!1,priority:20,suggestedWidth:this.params.width,suggestedHeight:this.params.height}),new wp.media.controller.CustomizeImageCropper({imgSelectOptions:this.calculateImageSelectOptions,control:this})]}),this.frame.on("select",this.onSelect,this),this.frame.on("cropped",this.onCropped,this),this.frame.on("skippedcrop",this.onSkippedCrop,this)},onSelect:function(){var a=this.frame.state().get("selection").first().toJSON();this.params.width!==a.width||this.params.height!==a.height||this.params.flex_width||this.params.flex_height?this.frame.setState("cropper"):(this.setImageFromAttachment(a),this.frame.close())},onCropped:function(a){this.setImageFromAttachment(a)},calculateImageSelectOptions:function(a,b){var c,d,e,f=b.get("control"),g=!!parseInt(f.params.flex_width,10),h=!!parseInt(f.params.flex_height,10),i=a.get("width"),j=a.get("height"),k=parseInt(f.params.width,10),l=parseInt(f.params.height,10),m=k/l,n=k,o=l;return b.set("canSkipCrop",!f.mustBeCropped(g,h,k,l,i,j)),i/j>m?(l=j,k=l*m):(k=i,l=k/m),c=(i-k)/2,d=(j-l)/2,e={handles:!0,keys:!0,instance:!0,persistent:!0,imageWidth:i,imageHeight:j,minWidth:n>k?k:n,minHeight:o>l?l:o,x1:c,y1:d,x2:k+c,y2:l+d},h===!1&&g===!1&&(e.aspectRatio=k+":"+l),!0===h&&(delete e.minHeight,e.maxWidth=i),!0===g&&(delete e.minWidth,e.maxHeight=j),e},mustBeCropped:function(a,b,c,d,e,f){return(!0!==a||!0!==b)&&((!0!==a||d!==f)&&((!0!==b||c!==e)&&((c!==e||d!==f)&&!(e<=c))))},onSkippedCrop:function(){var a=this.frame.state().get("selection").first().toJSON();this.setImageFromAttachment(a)},setImageFromAttachment:function(a){this.params.attachment=a,this.setting(a.id)}}),f.SiteIconControl=f.CroppedImageControl.extend({initFrame:function(){var a=_wpMediaViewsL10n;this.frame=wp.media({button:{text:a.select,close:!1},states:[new wp.media.controller.Library({title:this.params.button_labels.frame_title,library:wp.media.query({type:"image"}),multiple:!1,date:!1,priority:20,suggestedWidth:this.params.width,suggestedHeight:this.params.height}),new wp.media.controller.SiteIconCropper({imgSelectOptions:this.calculateImageSelectOptions,control:this})]}),this.frame.on("select",this.onSelect,this),this.frame.on("cropped",this.onCropped,this),this.frame.on("skippedcrop",this.onSkippedCrop,this)},onSelect:function(){var a=this.frame.state().get("selection").first().toJSON(),b=this;this.params.width!==a.width||this.params.height!==a.height||this.params.flex_width||this.params.flex_height?this.frame.setState("cropper"):wp.ajax.post("crop-image",{nonce:a.nonces.edit,id:a.id,context:"site-icon",cropDetails:{x1:0,y1:0,width:this.params.width,height:this.params.height,dst_width:this.params.width,dst_height:this.params.height}}).done(function(a){b.setImageFromAttachment(a),b.frame.close()}).fail(function(){b.frame.trigger("content:error:crop")})},setImageFromAttachment:function(a){var c,d,e=["site_icon-32","thumbnail","full"];_.each(e,function(b){d||_.isUndefined(a.sizes[b])||(d=a.sizes[b])}),this.params.attachment=a,this.setting(a.id),d&&(c=b('link[rel="icon"][sizes="32x32"]'),c.attr("href",d.url))},removeFile:function(a){f.utils.isKeydownButNotEnterEvent(a)||(a.preventDefault(),this.params.attachment={},this.setting(""),this.renderContent(),b('link[rel="icon"][sizes="32x32"]').attr("href","/favicon.ico"))}}),f.HeaderControl=f.Control.extend({ready:function(){this.btnRemove=b("#customize-control-header_image .actions .remove"),this.btnNew=b("#customize-control-header_image .actions .new"),_.bindAll(this,"openMedia","removeImage"),this.btnNew.on("click",this.openMedia),this.btnRemove.on("click",this.removeImage),f.HeaderTool.currentHeader=this.getInitialHeaderImage(),new f.HeaderTool.CurrentView({model:f.HeaderTool.currentHeader,el:"#customize-control-header_image .current .container"}),new f.HeaderTool.ChoiceListView({collection:f.HeaderTool.UploadsList=new f.HeaderTool.ChoiceList,el:"#customize-control-header_image .choices .uploaded .list"}),new f.HeaderTool.ChoiceListView({collection:f.HeaderTool.DefaultsList=new f.HeaderTool.DefaultsList,el:"#customize-control-header_image .choices .default .list"}),f.HeaderTool.combinedList=f.HeaderTool.CombinedList=new f.HeaderTool.CombinedList([f.HeaderTool.UploadsList,f.HeaderTool.DefaultsList]),wp.media.controller.Cropper.prototype.defaults.doCropArgs.wp_customize="on",wp.media.controller.Cropper.prototype.defaults.doCropArgs.customize_theme=f.settings.theme.stylesheet},getInitialHeaderImage:function(){if(!f.get().header_image||!f.get().header_image_data||_.contains(["remove-header","random-default-image","random-uploaded-image"],f.get().header_image))return new f.HeaderTool.ImageModel;var a=_.find(_wpCustomizeHeader.uploads,function(a){return a.attachment_id===f.get().header_image_data.attachment_id});return a||(a={url:f.get().header_image,thumbnail_url:f.get().header_image,attachment_id:f.get().header_image_data.attachment_id}),new f.HeaderTool.ImageModel({header:a,choice:a.url.split("/").pop()})},calculateImageSelectOptions:function(a,b){var c,d,e,g,h,i,j=parseInt(_wpCustomizeHeader.data.width,10),k=parseInt(_wpCustomizeHeader.data.height,10),l=!!parseInt(_wpCustomizeHeader.data["flex-width"],10),m=!!parseInt(_wpCustomizeHeader.data["flex-height"],10);return h=a.get("width"),g=a.get("height"),this.headerImage=new f.HeaderTool.ImageModel,this.headerImage.set({themeWidth:j,themeHeight:k,themeFlexWidth:l,themeFlexHeight:m,imageWidth:h,imageHeight:g}),b.set("canSkipCrop",!this.headerImage.shouldBeCropped()),c=j/k,d=h,e=g,d/e>c?(k=e,j=k*c):(j=d,k=j/c),i={handles:!0,keys:!0,instance:!0,persistent:!0,imageWidth:h,imageHeight:g,x1:0,y1:0,x2:j,y2:k},m===!1&&l===!1&&(i.aspectRatio=j+":"+k),m===!1&&(i.maxHeight=k),l===!1&&(i.maxWidth=j),i},openMedia:function(a){var b=_wpMediaViewsL10n;a.preventDefault(),this.frame=wp.media({button:{text:b.selectAndCrop,close:!1},states:[new wp.media.controller.Library({title:b.chooseImage,library:wp.media.query({type:"image"}),multiple:!1,date:!1,priority:20,suggestedWidth:_wpCustomizeHeader.data.width,suggestedHeight:_wpCustomizeHeader.data.height}),new wp.media.controller.Cropper({imgSelectOptions:this.calculateImageSelectOptions})]}),this.frame.on("select",this.onSelect,this),this.frame.on("cropped",this.onCropped,this),this.frame.on("skippedcrop",this.onSkippedCrop,this),this.frame.open()},onSelect:function(){this.frame.setState("cropper")},onCropped:function(a){var b=a.url,c=a.attachment_id,d=a.width,e=a.height;this.setImageFromURL(b,c,d,e)},onSkippedCrop:function(a){var b=a.get("url"),c=a.get("width"),d=a.get("height");this.setImageFromURL(b,a.id,c,d)},setImageFromURL:function(a,b,c,d){var e,g={};g.url=a,g.thumbnail_url=a,g.timestamp=_.now(),b&&(g.attachment_id=b),c&&(g.width=c),d&&(g.height=d),e=new f.HeaderTool.ImageModel({header:g,choice:a.split("/").pop()}),f.HeaderTool.UploadsList.add(e),f.HeaderTool.currentHeader.set(e.toJSON()),e.save(),e.importImage()},removeImage:function(){f.HeaderTool.currentHeader.trigger("hide"),f.HeaderTool.CombinedList.trigger("control:removeImage")}}),f.ThemeControl=f.Control.extend({touchDrag:!1,screenshotRendered:!1,ready:function(){function a(){return!g.canSwitchTheme(e.params.theme.id)}function c(){return a()||!1===f.settings.theme._canInstall||!0===f.settings.theme._filesystemCredentialsNeeded}function d(){e.container.find("button.preview, button.preview-theme").toggleClass("disabled",a()),e.container.find("button.theme-install").toggleClass("disabled",c())}var e=this,g=f.panel("themes");f.state("selectedChangesetStatus").bind(d),f.state("changesetStatus").bind(d),d(),e.container.on("touchmove",".theme",function(){e.touchDrag=!0}),e.container.on("click keydown touchend",".theme",function(a){var c;if(!f.utils.isKeydownButNotEnterEvent(a))return e.touchDrag===!0?e.touchDrag=!1:void(b(a.target).is(".theme-actions .button, .update-theme")||(a.preventDefault(),c=f.section(e.section()),c.showDetails(e.params.theme,function(){f.settings.theme._filesystemCredentialsNeeded&&c.overlay.find(".theme-actions .delete-theme").remove()})))}),e.container.on("render-screenshot",function(){var a=b(this).find("img"),c=a.data("src");c&&a.attr("src",c),e.screenshotRendered=!0})},filter:function(a){var b=this,c=0,d=b.params.theme.name+" "+b.params.theme.description+" "+b.params.theme.tags+" "+b.params.theme.author+" ";return d=d.toLowerCase().replace("-"," "),_.isArray(a)||(a=[a]),b.params.theme.name.toLowerCase()===a.join(" ")?c=100:(c+=10*(d.split(a.join(" ")).length-1),_.each(a,function(a){c+=2*(d.split(a+" ").length-1),c=c+d.split(a).length-1}),c>99&&(c=99)),0!==c?(b.activate(),b.params.priority=101-c,!0):(b.deactivate(),b.params.priority=101,!1)},rerenderAsInstalled:function(a){var b,c=this;a?c.params.theme.type="installed":(b=f.section(c.params.section),c.params.theme.type=b.params.action),c.renderContent(),c.container.trigger("render-screenshot")}}),f.CodeEditorControl=f.Control.extend({initialize:function(a,c){var d=this;d.deferred=_.extend(d.deferred||{},{codemirror:b.Deferred()}),f.Control.prototype.initialize.call(d,a,c),d.notifications.bind("add",function(a){a.code===d.setting.id+":csslint_error"&&(a.templateId="customize-code-editor-lint-error-notification",a.render=function(a){return function(){var b=a.call(this);return b.find("input[type=checkbox]").on("click",function(){d.setting.notifications.remove("csslint_error")}),b}}(a.render))})},ready:function(){var a=this;return a.section()?void f.section(a.section(),function(b){b.deferred.embedded.done(function(){var c;b.expanded()?a.initEditor():(c=function(d){d&&(a.initEditor(),b.expanded.unbind(c))},b.expanded.bind(c))})}):void a.initEditor()},initEditor:function(){var a,b=this,c=!1;wp.codeEditor&&(_.isUndefined(b.params.editor_settings)||!1!==b.params.editor_settings)&&(c=wp.codeEditor.defaultSettings?_.clone(wp.codeEditor.defaultSettings):{},c.codemirror=_.extend({},c.codemirror,{indentUnit:2,tabSize:2}),_.isObject(b.params.editor_settings)&&_.each(b.params.editor_settings,function(a,b){_.isObject(a)&&(c[b]=_.extend({},c[b],a))})),a=new f.Element(b.container.find("textarea")),b.elements.push(a),a.sync(b.setting),a.set(b.setting()),c?b.initSyntaxHighlightingEditor(c):b.initPlainTextareaEditor()},focus:function(a){var b,c=this,d=_.extend({},a);b=d.completeCallback,d.completeCallback=function(){b&&b(),c.editor&&c.editor.codemirror.focus()},f.Control.prototype.focus.call(c,d)},initSyntaxHighlightingEditor:function(a){var c,d=this,e=d.container.find("textarea"),f=!1;c=_.extend({},a,{onTabNext:_.bind(d.onTabNext,d),onTabPrevious:_.bind(d.onTabPrevious,d),onUpdateErrorNotice:_.bind(d.onUpdateErrorNotice,d)}),d.editor=wp.codeEditor.initialize(e,c),b(d.editor.codemirror.display.lineDiv).attr({role:"textbox","aria-multiline":"true","aria-label":d.params.label,"aria-describedby":"editor-keyboard-trap-help-1 editor-keyboard-trap-help-2 editor-keyboard-trap-help-3 editor-keyboard-trap-help-4"}),d.container.find("label").on("click",function(){d.editor.codemirror.focus()}),d.editor.codemirror.on("change",function(a){f=!0,e.val(a.getValue()).trigger("change"),f=!1}),d.setting.bind(function(a){f||d.editor.codemirror.setValue(a)}),d.editor.codemirror.on("keydown",function(a,b){var c=27;c===b.keyCode&&b.stopPropagation()}),d.deferred.codemirror.resolveWith(d,[d.editor.codemirror])},onTabNext:function(){var a,c,d,e=this;d=f.section(e.section()),a=d.controls(),c=a.indexOf(e),a.length===c+1?b("#customize-footer-actions .collapse-sidebar").focus():a[c+1].container.find(":focusable:first").focus()},onTabPrevious:function(){var a,b,c,d=this;c=f.section(d.section()),a=c.controls(),b=a.indexOf(d),0===b?c.contentContainer.find(".customize-section-title .customize-help-toggle, .customize-section-title .customize-section-description.open .section-description-close").last().focus():a[b-1].contentContainer.find(":focusable:first").focus()},onUpdateErrorNotice:function(a){var b,c=this;c.setting.notifications.remove("csslint_error"),0!==a.length&&(b=1===a.length?f.l10n.customCssError.singular.replace("%d","1"):f.l10n.customCssError.plural.replace("%d",String(a.length)),c.setting.notifications.add(new f.Notification("csslint_error",{message:b,type:"error"})))},initPlainTextareaEditor:function(){var a=this,b=a.container.find("textarea"),c=b[0];b.on("blur",function(){b.data("next-tab-blurs",!1)}),b.on("keydown",function(a){var d,e,f,g=9,h=27;return h===a.keyCode?void(b.data("next-tab-blurs")||(b.data("next-tab-blurs",!0),a.stopPropagation())):void(g!==a.keyCode||a.ctrlKey||a.altKey||a.shiftKey||b.data("next-tab-blurs")||(d=c.selectionStart, -e=c.selectionEnd,f=c.value,d>=0&&(c.value=f.substring(0,d).concat("\t",f.substring(e)),b.selectionStart=c.selectionEnd=d+1),a.stopPropagation(),a.preventDefault()))}),a.deferred.codemirror.rejectWith(a)}}),f.DateTimeControl=f.Control.extend({ready:function(){var a=this;if(a.inputElements={},a.invalidDate=!1,_.bindAll(a,"populateSetting","updateDaysForMonth","populateDateInputs"),!a.setting)throw new Error("Missing setting");a.container.find(".date-input").each(function(){var c,d,e=b(this);c=e.data("component"),d=new f.Element(e),a.inputElements[c]=d,a.elements.push(d),e.on("change",function(){a.invalidDate&&a.notifications.add(new f.Notification("invalid_date",{message:f.l10n.invalidDate}))}),e.on("input",_.debounce(function(){a.invalidDate||a.notifications.remove("invalid_date")})),e.on("blur",_.debounce(function(){a.invalidDate||a.populateDateInputs()}))}),a.inputElements.month.bind(a.updateDaysForMonth),a.inputElements.year.bind(a.updateDaysForMonth),a.populateDateInputs(),a.setting.bind(a.populateDateInputs),_.each(a.inputElements,function(b){b.bind(a.populateSetting)})},parseDateTime:function(a){var b,c,d=this,e=12;return a&&(b=a.match(/^(\d\d\d\d)-(\d\d)-(\d\d)(?: (\d\d):(\d\d)(?::(\d\d))?)?$/)),b?(b.shift(),c={year:b.shift(),month:b.shift(),day:b.shift(),hour:b.shift()||"00",minute:b.shift()||"00",second:b.shift()||"00"},d.params.includeTime&&d.params.twelveHourFormat&&(c.hour=parseInt(c.hour,10),c.meridian=c.hour>=e?"pm":"am",c.hour=c.hour%e?String(c.hour%e):String(e),delete c.second),c):null},validateInputs:function(){var a,b,c=this;return c.invalidDate=!1,a=["year","day"],c.params.includeTime&&a.push("hour","minute"),_.find(a,function(a){var d,e,f,g;return d=c.inputElements[a],b=d.element.get(0),e=parseInt(d.element.attr("max"),10),f=parseInt(d.element.attr("min"),10),g=parseInt(d(),10),c.invalidDate=isNaN(g)||g>e||g<f,c.invalidDate||b.setCustomValidity(""),c.invalidDate}),c.inputElements.meridian&&!c.invalidDate&&(b=c.inputElements.meridian.element.get(0),"am"!==c.inputElements.meridian.get()&&"pm"!==c.inputElements.meridian.get()?c.invalidDate=!0:b.setCustomValidity("")),c.invalidDate?b.setCustomValidity(f.l10n.invalidValue):b.setCustomValidity(""),(!c.section()||f.section.has(c.section())&&f.section(c.section()).expanded())&&_.result(b,"reportValidity"),c.invalidDate},updateDaysForMonth:function(){var a,b,c,d,e=this;c=parseInt(e.inputElements.month(),10),b=parseInt(e.inputElements.year(),10),d=parseInt(e.inputElements.day(),10),c&&b&&(a=new Date(b,c,0).getDate(),e.inputElements.day.element.attr("max",a),d>a&&e.inputElements.day(String(a)))},populateSetting:function(){var a,b=this;return!(b.validateInputs()||!b.params.allowPastDate&&!b.isFutureDate())&&(a=b.convertInputDateToString(),b.setting.set(a),!0)},convertInputDateToString:function(){var a,b,c,d,e=this,f="";return d=function(a,b){var c;return String(a).length<b&&(c=b-String(a).length,a=Math.pow(10,c).toString().substr(1)+String(a)),a},c=function(a){var b=parseInt(e.inputElements[a].get(),10);return _.contains(["month","day","hour","minute"],a)?b=d(b,2):"year"===a&&(b=d(b,4)),b},a=["year","-","month","-","day"],e.params.includeTime&&(b=e.inputElements.meridian?e.convertHourToTwentyFourHourFormat(e.inputElements.hour(),e.inputElements.meridian()):e.inputElements.hour(),a=a.concat([" ",d(b,2),":","minute",":","00"])),_.each(a,function(a){f+=e.inputElements[a]?c(a):a}),f},isFutureDate:function(){var a=this;return 0<f.utils.getRemainingTime(a.convertInputDateToString())},convertHourToTwentyFourHourFormat:function(a,b){var c,d,e=12;return d=parseInt(a,10),isNaN(d)?"":(c="pm"===b&&d<e?d+e:"am"===b&&e===d?d-e:d,String(c))},populateDateInputs:function(){var a,b=this;return!!(a=b.parseDateTime(b.setting.get()))&&(_.each(b.inputElements,function(b,c){var d=a[c];"month"===c||"meridian"===c?(d=d.replace(/^0/,""),b.set(d)):(d=parseInt(d,10),b.element.is(document.activeElement)?d!==parseInt(b(),10)&&b.set(String(d)):b.set(a[c]))}),!0)},toggleFutureDateNotification:function(a){var b,c,d=this;return b="not_future_date",a?(c=new f.Notification(b,{type:"error",message:f.l10n.futureDateError}),d.notifications.add(c)):d.notifications.remove(b),d}}),f.PreviewLinkControl=f.Control.extend({defaults:_.extend({},f.Control.prototype.defaults,{templateId:"customize-preview-link-control"}),ready:function(){var a,c,d,e,g,h,i=this;_.bindAll(i,"updatePreviewLink"),i.setting||(i.setting=new f.Value),i.previewElements={},i.container.find(".preview-control-element").each(function(){d=b(this),c=d.data("component"),a=new f.Element(d),i.previewElements[c]=a,i.elements.push(a)}),e=i.previewElements.url,g=i.previewElements.input,h=i.previewElements.button,g.link(i.setting),e.link(i.setting),e.bind(function(a){e.element.parent().attr({href:a,target:f.settings.changeset.uuid})}),f.bind("ready",i.updatePreviewLink),f.state("saved").bind(i.updatePreviewLink),f.state("changesetStatus").bind(i.updatePreviewLink),f.state("activated").bind(i.updatePreviewLink),f.previewer.previewUrl.bind(i.updatePreviewLink),h.element.on("click",function(a){a.preventDefault(),i.setting()&&(g.element.select(),document.execCommand("copy"),h(h.element.data("copied-text")))}),e.element.parent().on("click",function(a){b(this).hasClass("disabled")&&a.preventDefault()}),h.element.on("mouseenter",function(){i.setting()&&h(h.element.data("copy-text"))})},updatePreviewLink:function(){var a,b=this;a=!f.state("saved").get()||""===f.state("changesetStatus").get()||"auto-draft"===f.state("changesetStatus").get(),b.toggleSaveNotification(a),b.previewElements.url.element.parent().toggleClass("disabled",a),b.previewElements.button.element.prop("disabled",a),b.setting.set(f.previewer.getFrontendPreviewUrl())},toggleSaveNotification:function(a){var b,c,d=this;b="changes_not_saved",a?(c=new f.Notification(b,{type:"info",message:f.l10n.saveBeforeShare}),d.notifications.add(c)):d.notifications.remove(b)}}),f.defaultConstructor=f.Setting,f.control=new f.Values({defaultConstructor:f.Control}),f.section=new f.Values({defaultConstructor:f.Section}),f.panel=new f.Values({defaultConstructor:f.Panel}),f.notifications=new f.Notifications,f.PreviewFrame=f.Messenger.extend({sensitivity:null,initialize:function(a,c){var d=b.Deferred();d.promise(this),this.container=a.container,b.extend(a,{channel:f.PreviewFrame.uuid()}),f.Messenger.prototype.initialize.call(this,a,c),this.add("previewUrl",a.previewUrl),this.query=b.extend(a.query||{},{customize_messenger_channel:this.channel()}),this.run(d)},run:function(a){var c,d,e,g=this,h=!1,i=!1,j=null,k="{}"!==g.query.customized;g._ready&&g.unbind("ready",g._ready),g._ready=function(b){i=!0,j=b,g.container.addClass("iframe-ready"),b&&h&&a.resolveWith(g,[b])},g.bind("ready",g._ready),c=document.createElement("a"),c.href=g.previewUrl(),d=_.extend(f.utils.parseQueryString(c.search.substr(1)),{customize_changeset_uuid:g.query.customize_changeset_uuid,customize_theme:g.query.customize_theme,customize_messenger_channel:g.query.customize_messenger_channel}),!f.settings.changeset.autosaved&&f.state("saved").get()||(d.customize_autosaved="on"),c.search=b.param(d),g.iframe=b("<iframe />",{title:f.l10n.previewIframeTitle,name:"customize-"+g.channel()}),g.iframe.attr("onmousewheel",""),k?g.iframe.attr("data-src",c.href):g.iframe.attr("src",c.href),g.iframe.appendTo(g.container),g.targetWindow(g.iframe[0].contentWindow),k&&(e=b("<form>",{action:c.href,target:g.iframe.attr("name"),method:"post",hidden:"hidden"}),e.append(b("<input>",{type:"hidden",name:"_method",value:"GET"})),_.each(g.query,function(a,c){e.append(b("<input>",{type:"hidden",name:c,value:a}))}),g.container.append(e),e.submit(),e.remove()),g.bind("iframe-loading-error",function(b){return g.iframe.remove(),0===b?void g.login(a):-1===b?void a.rejectWith(g,["cheatin"]):void a.rejectWith(g,["request failure"])}),g.iframe.one("load",function(){h=!0,i?a.resolveWith(g,[j]):setTimeout(function(){a.rejectWith(g,["ready timeout"])},g.sensitivity)})},login:function(a){var c,d=this;return c=function(){a.rejectWith(d,["logged out"])},this.triedLogin?c():void b.get(f.settings.url.ajax,{action:"logged-in"}).fail(c).done(function(e){var g;"1"!==e&&c(),g=b("<iframe />",{src:d.previewUrl(),title:f.l10n.previewIframeTitle}).hide(),g.appendTo(d.container),g.on("load",function(){d.triedLogin=!0,g.remove(),d.run(a)})})},destroy:function(){f.Messenger.prototype.destroy.call(this),this.iframe&&this.iframe.remove(),delete this.iframe,delete this.targetWindow}}),function(){var a=0;f.PreviewFrame.uuid=function(){return"preview-"+String(a++)}}(),f.setDocumentTitle=function(a){var b,c;b=f.settings.documentTitleTmpl,c=b.replace("%s",a),document.title=c,f.trigger("title",c)},f.Previewer=f.Messenger.extend({refreshBuffer:null,initialize:function(a,c){var d=this,e=document.createElement("a");b.extend(d,c||{}),d.deferred={active:b.Deferred()},d.refresh=_.debounce(function(a){return function(){var b,c;b=function(){return 0===f.state("processing").get()},b()?a.call(d):(c=function(){b()&&(a.call(d),f.state("processing").unbind(c))},f.state("processing").bind(c))}}(d.refresh),d.refreshBuffer),d.container=f.ensure(a.container),d.allowedUrls=a.allowedUrls,a.url=window.location.href,f.Messenger.prototype.initialize.call(d,a),e.href=d.origin(),d.add("scheme",e.protocol.replace(/:$/,"")),d.add("previewUrl",a.previewUrl).setter(function(a){var c,e,g,h=null,i=[];return c=document.createElement("a"),c.href=a,/\/wp-(admin|includes|content)(\/|$)/.test(c.pathname)?null:(c.search.length>1&&(e=f.utils.parseQueryString(c.search.substr(1)),delete e.customize_changeset_uuid,delete e.customize_theme,delete e.customize_messenger_channel,delete e.customize_autosaved,_.isEmpty(e)?c.search="":c.search=b.param(e)),i.push(c),d.scheme.get()+":"!==c.protocol&&(c=document.createElement("a"),c.href=i[0].href,c.protocol=d.scheme.get()+":",i.unshift(c)),g=document.createElement("a"),_.find(i,function(a){return!_.isUndefined(_.find(d.allowedUrls,function(b){if(g.href=b,c.protocol===g.protocol&&c.host===g.host&&0===c.pathname.indexOf(g.pathname.replace(/\/$/,"")))return h=a.href,!0}))}),h)}),d.bind("ready",d.ready),d.deferred.active.done(_.bind(d.keepPreviewAlive,d)),d.bind("synced",function(){d.send("active")}),d.previewUrl.bind(d.refresh),d.scroll=0,d.bind("scroll",function(a){d.scroll=a}),d.bind("url",function(a){var b,c=!1;d.scroll=0,b=function(){c=!0},d.previewUrl.bind(b),d.previewUrl.set(a),d.previewUrl.unbind(b),c||d.refresh()}),d.bind("documentTitle",function(a){f.setDocumentTitle(a)})},ready:function(a){var b,c=this,d={};d.settings=f.get(),d["settings-modified-while-loading"]=c.settingsModifiedWhileLoading,("resolved"!==c.deferred.active.state()||c.loading)&&(d.scroll=c.scroll),d["edit-shortcut-visibility"]=f.state("editShortcutVisibility").get(),c.send("sync",d),a.currentUrl&&(c.previewUrl.unbind(c.refresh),c.previewUrl.set(a.currentUrl),c.previewUrl.bind(c.refresh)),b={panel:a.activePanels,section:a.activeSections,control:a.activeControls},_(b).each(function(a,b){f[b].each(function(c,d){var e=_.isUndefined(f.settings[b+"s"][d]);e&&_.isUndefined(a[d])||(a[d]?c.activate():c.deactivate())})}),a.settingValidities&&f._handleSettingValidities({settingValidities:a.settingValidities,focusInvalidControl:!1})},keepPreviewAlive:function(){var a,b,c,d,e=this;d=function(){b=setTimeout(c,f.settings.timeouts.keepAliveCheck)},a=function(){f.state("previewerAlive").set(!0),clearTimeout(b),d()},c=function(){f.state("previewerAlive").set(!1)},d(),e.bind("ready",a),e.bind("keep-alive",a)},query:function(){},abort:function(){this.loading&&(this.loading.destroy(),delete this.loading)},refresh:function(){var a,b=this;b.send("loading-initiated"),b.abort(),b.loading=new f.PreviewFrame({url:b.url(),previewUrl:b.previewUrl(),query:b.query({excludeCustomizedSaved:!0})||{},container:b.container}),b.settingsModifiedWhileLoading={},a=function(a){b.settingsModifiedWhileLoading[a.id]=!0},f.bind("change",a),b.loading.always(function(){f.unbind("change",a)}),b.loading.done(function(a){var c,d=this;b.preview=d,b.targetWindow(d.targetWindow()),b.channel(d.channel()),c=function(){d.unbind("synced",c),b._previousPreview&&b._previousPreview.destroy(),b._previousPreview=b.preview,b.deferred.active.resolve(),delete b.loading},d.bind("synced",c),b.trigger("ready",a)}),b.loading.fail(function(a){b.send("loading-failed"),"logged out"===a&&(b.preview&&(b.preview.destroy(),delete b.preview),b.login().done(b.refresh)),"cheatin"===a&&b.cheatin()})},login:function(){var a,c,d,e=this;return this._login?this._login:(a=b.Deferred(),this._login=a.promise(),c=new f.Messenger({channel:"login",url:f.settings.url.login}),d=b("<iframe />",{src:f.settings.url.login,title:f.l10n.loginIframeTitle}).appendTo(this.container),c.targetWindow(d[0].contentWindow),c.bind("login",function(){var b=e.refreshNonces();b.always(function(){d.remove(),c.destroy(),delete e._login}),b.done(function(){a.resolve()}),b.fail(function(){e.cheatin(),a.reject()})}),this._login)},cheatin:function(){b(document.body).empty().addClass("cheatin").append("<h1>"+f.l10n.cheatin+"</h1><p>"+f.l10n.notAllowed+"</p>")},refreshNonces:function(){var a,c=b.Deferred();return c.promise(),a=wp.ajax.post("customize_refresh_nonces",{wp_customize:"on",customize_theme:f.settings.theme.stylesheet}),a.done(function(a){f.trigger("nonce-refresh",a),c.resolve()}),a.fail(function(){c.reject()}),c}}),f.settingConstructor={},f.controlConstructor={color:f.ColorControl,media:f.MediaControl,upload:f.UploadControl,image:f.ImageControl,cropped_image:f.CroppedImageControl,site_icon:f.SiteIconControl,header:f.HeaderControl,background:f.BackgroundControl,background_position:f.BackgroundPositionControl,theme:f.ThemeControl,date_time:f.DateTimeControl,code_editor:f.CodeEditorControl},f.panelConstructor={themes:f.ThemesPanel},f.sectionConstructor={themes:f.ThemesSection,outer:f.OuterSection},f._handleSettingValidities=function(a){var b,c=[],d=!1;_.each(a.settingValidities,function(a,b){var d=f(b);d&&(_.isObject(a)&&_.each(a,function(a,b){var e,g,h=!1;e=new f.Notification(b,_.extend({fromServer:!0},a)),g=d.notifications(e.code),g&&(h=e.type!==g.type||e.message!==g.message||!_.isEqual(e.data,g.data)),h&&d.notifications.remove(b),d.notifications.has(e.code)||d.notifications.add(e),c.push(d.id)}),d.notifications.each(function(b){!b.fromServer||"error"!==b.type||!0!==a&&a[b.code]||d.notifications.remove(b.code)}))}),a.focusInvalidControl&&(b=f.findControlsForSettings(c),_(_.values(b)).find(function(a){return _(a).find(function(a){var b=a.section()&&f.section.has(a.section())&&f.section(a.section()).expanded();return b&&a.expanded&&(b=a.expanded()),b&&(a.focus(),d=!0),d})}),d||_.isEmpty(b)||_.values(b)[0][0].focus())},f.findControlsForSettings=function(a){var b,c={};return _.each(_.unique(a),function(a){var d=f(a);d&&(b=d.findControls(),b&&b.length>0&&(c[a]=b))}),c},f.reflowPaneContents=_.bind(function(){var a,c,d,e=[],g=!1;document.activeElement&&(c=b(document.activeElement)),f.panel.each(function(b){if("themes"!==b.id){var c=b.sections(),d=_.pluck(c,"headContainer");e.push(b),a=b.contentContainer.is("ul")?b.contentContainer:b.contentContainer.find("ul:first"),f.utils.areElementListsEqual(d,a.children("[id]"))||(_(c).each(function(b){a.append(b.headContainer)}),g=!0)}}),f.section.each(function(b){var c=b.controls(),d=_.pluck(c,"container");b.panel()||e.push(b),a=b.contentContainer.is("ul")?b.contentContainer:b.contentContainer.find("ul:first"),f.utils.areElementListsEqual(d,a.children("[id]"))||(_(c).each(function(b){a.append(b.container)}),g=!0)}),e.sort(f.utils.prioritySort),d=_.pluck(e,"headContainer"),a=b("#customize-theme-controls .customize-pane-parent"),f.utils.areElementListsEqual(d,a.children())||(_(e).each(function(b){a.append(b.headContainer)}),g=!0),f.panel.each(function(a){var b=a.active();a.active.callbacks.fireWith(a.active,[b,b])}),f.section.each(function(a){var b=a.active();a.active.callbacks.fireWith(a.active,[b,b])}),g&&c&&c.focus(),f.trigger("pane-contents-reflowed")},f),f.state=new f.Values,_.each(["saved","saving","trashing","activated","processing","paneVisible","expandedPanel","expandedSection","changesetDate","selectedChangesetDate","changesetStatus","selectedChangesetStatus","remainingTimeToPublish","previewerAlive","editShortcutVisibility","changesetLocked","previewedDevice"],function(a){f.state.create(a)}),b(function(){function a(){function c(a){a||f.settings.changeset.autosaved||(f.settings.changeset.autosaved=!0,f.previewer.send("autosaving"))}var d,e,g,h=!1;f.unbind("change",a),f.state("saved").bind(c),c(f.state("saved").get()),e=function(){h||(h=!0,f.requestChangesetUpdate({},{autosave:!0}).always(function(){h=!1})),g()},g=function(){clearTimeout(d),d=setTimeout(function(){e()},f.settings.timeouts.changesetAutoSave)},g(),b(document).on("visibilitychange.wp-customize-changeset-update",function(){document.hidden&&e()}),b(window).on("beforeunload.wp-customize-changeset-update",function(){e()})}if(f.settings=window._wpCustomizeSettings,f.l10n=window._wpCustomizeControlsL10n,f.settings&&b.support.postMessage&&(b.support.cors||!f.settings.isCrossDomain)){null===f.PreviewFrame.prototype.sensitivity&&(f.PreviewFrame.prototype.sensitivity=f.settings.timeouts.previewFrameSensitivity),null===f.Previewer.prototype.refreshBuffer&&(f.Previewer.prototype.refreshBuffer=f.settings.timeouts.windowRefresh);var c,d=b(document.body),e=d.children(".wp-full-overlay"),g=b("#customize-info .panel-title.site-title"),h=b(".customize-controls-close"),i=b("#save"),j=b("#customize-save-button-wrapper"),k=b("#publish-settings"),l=b("#customize-footer-actions");f.bind("ready",function(){f.section.add(new f.OuterSection("publish_settings",{title:f.l10n.publishSettings,priority:0,active:f.settings.theme.active}))}),f.section("publish_settings",function(a){function b(){r||(r=f.utils.highlightButton(j,{delay:1e3,focusTarget:i}))}function c(){r&&(r(),r=null)}var d,e,g,h,l,m,n,o,p,q,r,s=1e3;e=new f.Control("trash_changeset",{type:"button",section:a.id,priority:30,input_attrs:{"class":"button-link button-link-delete",value:f.l10n.discardChanges}}),f.control.add(e),e.deferred.embedded.done(function(){e.container.find(".button-link").on("click",function(){confirm(f.l10n.trashConfirm)&&wp.customize.previewer.trash()})}),f.control.add(new f.PreviewLinkControl("changeset_preview_link",{section:a.id,priority:100})),h=function(){return!!f.state("activated").get()&&(!f.state("trashing").get()&&"trash"!==f.state("changesetStatus").get()&&(""!==f.state("changesetStatus").get()||!f.state("saved").get()))},a.active.validate=h,g=function(){a.active.set(h())},f.state("activated").bind(g),f.state("trashing").bind(g),f.state("saved").bind(g),f.state("changesetStatus").bind(g),g(),d=function(){k.toggle(a.active.get()),i.toggleClass("has-next-sibling",a.active.get())},d(),a.active.bind(d),f.state("selectedChangesetStatus").bind(c),a.contentContainer.find(".customize-action").text(f.l10n.updating),a.contentContainer.find(".customize-section-back").removeAttr("tabindex"),k.prop("disabled",!1),k.on("click",function(b){b.preventDefault(),a.expanded.set(!a.expanded.get())}),a.expanded.bind(function(a){var d;return k.attr("aria-expanded",String(a)),k.toggleClass("active",a),a?void c():(d=f.state("changesetStatus").get(),""!==d&&"auto-draft"!==d||(d="publish"),void(f.state("selectedChangesetStatus").get()!==d?b():"future"===f.state("selectedChangesetStatus").get()&&f.state("selectedChangesetDate").get()!==f.state("changesetDate").get()&&b()))}),l=new f.Control("changeset_status",{priority:10,type:"radio",section:"publish_settings",setting:f.state("selectedChangesetStatus"),templateId:"customize-selected-changeset-status-control",label:f.l10n.action,choices:f.settings.changeset.statusChoices}),f.control.add(l),m=new f.DateTimeControl("changeset_scheduled_date",{priority:20,section:"publish_settings",setting:f.state("selectedChangesetDate"),minYear:(new Date).getFullYear(),allowPastDate:!1,includeTime:!0,twelveHourFormat:/a/i.test(f.settings.timeFormat),description:f.l10n.scheduleDescription}),m.notifications.alt=!0,f.control.add(m),o=function(){f.state("selectedChangesetStatus").set("publish"),f.previewer.save()},q=function(){var a="future"===f.state("changesetStatus").get()&&"future"===f.state("selectedChangesetStatus").get()&&f.state("changesetDate").get()&&f.state("selectedChangesetDate").get()===f.state("changesetDate").get()&&f.utils.getRemainingTime(f.state("changesetDate").get())>=0;a&&!p?p=setInterval(function(){var a=f.utils.getRemainingTime(f.state("changesetDate").get());f.state("remainingTimeToPublish").set(a),a<=0&&(clearInterval(p),p=0,o())},s):!a&&p&&(clearInterval(p),p=0)},f.state("changesetDate").bind(q),f.state("selectedChangesetDate").bind(q),f.state("changesetStatus").bind(q),f.state("selectedChangesetStatus").bind(q),q(),m.active.validate=function(){return"future"===f.state("selectedChangesetStatus").get()},n=function(a){m.active.set("future"===a)},n(f.state("selectedChangesetStatus").get()),f.state("selectedChangesetStatus").bind(n),f.state("saving").bind(function(a){a&&"future"===f.state("selectedChangesetStatus").get()&&m.toggleFutureDateNotification(!m.isFutureDate())})}),b("#customize-controls").on("keydown",function(a){var c=13===a.which,d=b(a.target);c&&(d.is("input:not([type=button])")||d.is("select"))&&a.preventDefault()}),b(".customize-info").find("> .accordion-section-title .customize-help-toggle").on("click",function(){var a=b(this).closest(".accordion-section"),c=a.find(".customize-panel-description:first");a.hasClass("cannot-expand")||(a.hasClass("open")?(a.toggleClass("open"),c.slideUp(f.Panel.prototype.defaultExpandedArguments.duration,function(){c.trigger("toggled")}),b(this).attr("aria-expanded",!1)):(c.slideDown(f.Panel.prototype.defaultExpandedArguments.duration,function(){c.trigger("toggled")}),a.toggleClass("open"),b(this).attr("aria-expanded",!0)))}),f.previewer=new f.Previewer({container:"#customize-preview",form:"#customize-controls",previewUrl:f.settings.url.preview,allowedUrls:f.settings.url.allowed},{nonce:f.settings.nonce,query:function(a){var b={wp_customize:"on",customize_theme:f.settings.theme.stylesheet,nonce:this.nonce.preview,customize_changeset_uuid:f.settings.changeset.uuid};return!f.settings.changeset.autosaved&&f.state("saved").get()||(b.customize_autosaved="on"),b.customized=JSON.stringify(f.dirtyValues({unsaved:a&&a.excludeCustomizedSaved})),b},save:function(a){function d(a){m[a.id]=!0}var e,g,h=this,i=b.Deferred(),j=f.state("selectedChangesetStatus").get(),k=f.state("selectedChangesetDate").get(),l=f.state("processing"),m={},n=[],o=[],p=[];return a&&a.status&&(j=a.status),f.state("saving").get()&&(i.reject("already_saving"),i.promise()),f.state("saving").set(!0),g=function(){var e,g,l={},q=f._latestRevision,r="client_side_error";return f.bind("change",d),f.notifications.remove(r),f.each(function(a){a.notifications.each(function(b){"error"!==b.type||b.fromServer||(n.push(a.id),l[a.id]||(l[a.id]={}),l[a.id][b.code]=b)})}),f.control.each(function(a){(!a.setting||!a.setting.id&&a.active.get())&&a.notifications.each(function(b){"error"===b.type&&p.push([a])})}),o=_.union(p,_.values(f.findControlsForSettings(n))),_.isEmpty(o)?(g=b.extend(h.query({excludeCustomizedSaved:!1}),{nonce:h.nonce.save,customize_changeset_status:j}),a&&a.date?g.customize_changeset_date=a.date:"future"===j&&k&&(g.customize_changeset_date=k),a&&a.title&&(g.customize_changeset_title=a.title),f.trigger("save-request-params",g),e=wp.ajax.post("customize_save",g),f.state("processing").set(f.state("processing").get()+1),f.trigger("save",e),e.always(function(){f.state("processing").set(f.state("processing").get()-1),f.state("saving").set(!1),f.unbind("change",d)}),f.notifications.each(function(a){a.saveFailure&&f.notifications.remove(a.code)}),e.fail(function(a){var b,d;d={type:"error",dismissible:!0,fromServer:!0,saveFailure:!0},"0"===a?a="not_logged_in":"-1"===a&&(a="invalid_nonce"),"invalid_nonce"===a?h.cheatin():"not_logged_in"===a?(h.preview.iframe.hide(),h.login().done(function(){h.save(),h.preview.iframe.show()})):a.code?"not_future_date"===a.code&&f.section.has("publish_settings")&&f.section("publish_settings").active.get()&&f.control.has("changeset_scheduled_date")?f.control("changeset_scheduled_date").toggleFutureDateNotification(!0).focus():"changeset_locked"!==a.code&&(b=new f.Notification(a.code,_.extend(d,{message:a.message}))):b=new f.Notification("unknown_error",_.extend(d,{message:f.l10n.unknownRequestFail})),b&&f.notifications.add(b),a.setting_validities&&f._handleSettingValidities({settingValidities:a.setting_validities,focusInvalidControl:!0}),i.rejectWith(h,[a]),f.trigger("error",a),"changeset_already_published"===a.code&&a.next_changeset_uuid&&(f.settings.changeset.uuid=a.next_changeset_uuid,f.state("changesetStatus").set(""),f.settings.changeset.branching&&c.send("changeset-uuid",f.settings.changeset.uuid),f.previewer.send("changeset-uuid",f.settings.changeset.uuid))}),void e.done(function(a){h.send("saved",a),f.state("changesetStatus").set(a.changeset_status),a.changeset_date&&f.state("changesetDate").set(a.changeset_date),"publish"===a.changeset_status&&(f.each(function(a){a._dirty&&(_.isUndefined(f._latestSettingRevisions[a.id])||f._latestSettingRevisions[a.id]<=q)&&(a._dirty=!1)}),f.state("changesetStatus").set(""),f.settings.changeset.uuid=a.next_changeset_uuid,f.settings.changeset.branching&&c.send("changeset-uuid",f.settings.changeset.uuid)),f._lastSavedRevision=Math.max(q,f._lastSavedRevision),a.setting_validities&&f._handleSettingValidities({settingValidities:a.setting_validities,focusInvalidControl:!0}),i.resolveWith(h,[a]),f.trigger("saved",a),_.isEmpty(m)||f.state("saved").set(!1)})):(o[0][0].focus(),f.unbind("change",d),n.length&&f.notifications.add(new f.Notification(r,{message:(1===n.length?f.l10n.saveBlockedError.singular:f.l10n.saveBlockedError.plural).replace(/%s/g,String(n.length)),type:"error",dismissible:!0,saveFailure:!0})),i.rejectWith(h,[{setting_invalidities:l}]),f.state("saving").set(!1),i.promise())},0===l()?g():(e=function(){0===l()&&(f.state.unbind("change",e),g())},f.state.bind("change",e)),i.promise()},trash:function(){var a,c,d;f.state("trashing").set(!0),f.state("processing").set(f.state("processing").get()+1),a=wp.ajax.post("customize_trash",{customize_changeset_uuid:f.settings.changeset.uuid,nonce:f.settings.nonce.trash}),f.notifications.add(new f.OverlayNotification("changeset_trashing",{type:"info",message:f.l10n.revertingChanges,loading:!0})),c=function(){var a,c=document.createElement("a");f.state("changesetStatus").set("trash"),f.each(function(a){a._dirty=!1}),f.state("saved").set(!0),c.href=location.href,a=f.utils.parseQueryString(c.search.substr(1)),delete a.changeset_uuid,a["return"]=f.settings.url["return"],c.search=b.param(a),location.replace(c.href)},d=function(a,b){var c=a||"unknown_error";f.state("processing").set(f.state("processing").get()-1),f.state("trashing").set(!1),f.notifications.remove("changeset_trashing"),f.notifications.add(new f.Notification(c,{message:b||f.l10n.unknownError,dismissible:!0,type:"error"}))},a.done(function(a){c(a.message)}),a.fail(function(a){var b=a.code||"trashing_failed";a.success||"non_existent_changeset"===b||"changeset_already_trashed"===b?c(a.message):d(b,a.message)})},getFrontendPreviewUrl:function(){var a,c,d=this;return c=document.createElement("a"),c.href=d.previewUrl.get(),a=f.utils.parseQueryString(c.search.substr(1)),f.state("changesetStatus").get()&&"publish"!==f.state("changesetStatus").get()&&(a.customize_changeset_uuid=f.settings.changeset.uuid),f.state("activated").get()||(a.customize_theme=f.settings.theme.stylesheet),c.search=b.param(a),c.href}}),b.ajaxPrefilter(function(a){/wp_customize=on/.test(a.data)&&(a.data+="&"+b.param({customize_preview_nonce:f.settings.nonce.preview}))}),f.previewer.bind("nonce",function(a){b.extend(this.nonce,a)}),f.bind("nonce-refresh",function(a){b.extend(f.settings.nonce,a),b.extend(f.previewer.nonce,a),f.previewer.send("nonce-refresh",a)}),b.each(f.settings.settings,function(a,b){var c=f.settingConstructor[b.type]||f.Setting;f.add(new c(a,b.value,{transport:b.transport,previewer:f.previewer,dirty:!!b.dirty}))}),b.each(f.settings.panels,function(a,b){var c,d=f.panelConstructor[b.type]||f.Panel;c=_.extend({params:b},b),f.panel.add(new d(a,c))}),b.each(f.settings.sections,function(a,b){var c,d=f.sectionConstructor[b.type]||f.Section;c=_.extend({params:b},b),f.section.add(new d(a,c))}),b.each(f.settings.controls,function(a,b){var c,d=f.controlConstructor[b.type]||f.Control;c=_.extend({params:b},b),f.control.add(new d(a,c))}),_.each(["panel","section","control"],function(a){var b=f.settings.autofocus[a];b&&f[a](b,function(a){a.deferred.embedded.done(function(){f.previewer.deferred.active.done(function(){a.focus()})})})}),f.bind("ready",f.reflowPaneContents),b([f.panel,f.section,f.control]).each(function(a,b){var c=_.debounce(f.reflowPaneContents,f.settings.timeouts.reflowPaneContents);b.bind("add",c),b.bind("change",c),b.bind("remove",c)}),f.bind("ready",function(){var a,c,d;f.notifications.container=b("#customize-notifications-area"),f.notifications.bind("change",_.debounce(function(){f.notifications.render()})),a=b(".wp-full-overlay-sidebar-content"),f.notifications.bind("rendered",function(){a.css("top",""),0!==f.notifications.count()&&(c=f.notifications.container.outerHeight()+1,d=parseInt(a.css("top"),10),a.css("top",d+c+"px")),f.notifications.trigger("sidebarTopUpdated")}),f.notifications.render()}),function(a){var c,e,g=a.instance("saved"),j=a.instance("saving"),k=a.instance("trashing"),l=a.instance("activated"),m=a.instance("processing"),n=a.instance("paneVisible"),o=a.instance("expandedPanel"),p=a.instance("expandedSection"),q=a.instance("changesetStatus"),r=a.instance("selectedChangesetStatus"),s=a.instance("changesetDate"),t=a.instance("selectedChangesetDate"),u=a.instance("previewerAlive"),v=a.instance("editShortcutVisibility"),w=a.instance("changesetLocked");a.bind("change",function(){var a;l()?""===q.get()&&g()?(f.settings.changeset.currentUserCanPublish?i.val(f.l10n.published):i.val(f.l10n.saved),h.find(".screen-reader-text").text(f.l10n.close)):("draft"===r()?g()&&r()===q()?i.val(f.l10n.draftSaved):i.val(f.l10n.saveDraft):"future"===r()?g()&&r()===q()?s.get()!==t.get()?i.val(f.l10n.schedule):i.val(f.l10n.scheduled):i.val(f.l10n.schedule):f.settings.changeset.currentUserCanPublish&&i.val(f.l10n.publish),h.find(".screen-reader-text").text(f.l10n.cancel)):(i.val(f.l10n.activate),h.find(".screen-reader-text").text(f.l10n.cancel)),a=!j()&&!k()&&!w()&&(!l()||!g()||q()!==r()&&""!==q()||"future"===r()&&s.get()!==t.get()),i.prop("disabled",!a)}),r.validate=function(a){return""===a||"auto-draft"===a?null:a},e=f.settings.changeset.currentUserCanPublish?"publish":"draft",q(f.settings.changeset.status),w(Boolean(f.settings.changeset.lockUser)),s(f.settings.changeset.publishDate),t(f.settings.changeset.publishDate),r(""===f.settings.changeset.status||"auto-draft"===f.settings.changeset.status?e:f.settings.changeset.status),r.link(q),g(!0),""===q()&&f.each(function(a){a._dirty&&g(!1)}),j(!1),l(f.settings.theme.active),m(0),n(!0),o(!1),p(!1),u(!0),v("visible"),f.bind("change",function(){a("saved").get()&&a("saved").set(!1)}),f.settings.changeset.branching&&g.bind(function(a){a||c(!0)}),j.bind(function(a){d.toggleClass("saving",a)}),k.bind(function(a){d.toggleClass("trashing",a)}),f.bind("saved",function(b){a("saved").set(!0),"publish"===b.changeset_status&&a("activated").set(!0)}),l.bind(function(a){a&&f.trigger("activated")}),c=function(a){var c,d;if(history.replaceState){if(c=document.createElement("a"),c.href=location.href,d=f.utils.parseQueryString(c.search.substr(1)),a){if(d.changeset_uuid===f.settings.changeset.uuid)return;d.changeset_uuid=f.settings.changeset.uuid}else{if(!d.changeset_uuid)return;delete d.changeset_uuid}c.search=b.param(d),history.replaceState({},document.title,c.href)}},f.settings.changeset.branching&&q.bind(function(a){c(""!==a&&"publish"!==a&&"trash"!==a); -})}(f.state),function(){function a(a){a&&a.lockUser&&(f.settings.changeset.lockUser=a.lockUser),f.state("changesetLocked").set(!0),f.notifications.add(new c("changeset_locked",{lockUser:f.settings.changeset.lockUser,allowOverride:Boolean(a&&a.allowOverride)}))}var c=f.OverlayNotification.extend({templateId:"customize-changeset-locked-notification",lockUser:null,initialize:function(a,b){var c,d,e=this;c=a||"changeset_locked",d=_.extend({type:"warning",containerClasses:"",lockUser:{}},b),d.containerClasses+=" notification-changeset-locked",f.OverlayNotification.prototype.initialize.call(e,c,d)},render:function(){var a,b,c,d,e=this;return b=_.extend({allowOverride:!1,returnUrl:f.settings.url["return"],previewUrl:f.previewer.previewUrl.get(),frontendPreviewUrl:f.previewer.getFrontendPreviewUrl()},this),a=f.OverlayNotification.prototype.render.call(b),f.requestChangesetUpdate({},{autosave:!0}).fail(function(b){b.autosaved||a.find(".notice-error").prop("hidden",!1).text(b.message||f.l10n.unknownRequestFail)}),c=a.find(".customize-notice-take-over-button"),c.on("click",function(b){b.preventDefault(),d||(c.addClass("disabled"),d=wp.ajax.post("customize_override_changeset_lock",{wp_customize:"on",customize_theme:f.settings.theme.stylesheet,customize_changeset_uuid:f.settings.changeset.uuid,nonce:f.settings.nonce.override_lock}),d.done(function(){f.notifications.remove(e.code),f.state("changesetLocked").set(!1)}),d.fail(function(b){var e=b.message||f.l10n.unknownRequestFail;a.find(".notice-error").prop("hidden",!1).text(e),d.always(function(){c.removeClass("disabled")})}),d.always(function(){d=null}))}),a}});f.settings.changeset.lockUser&&a({allowOverride:!0}),b(document).on("heartbeat-send.update_lock_notice",function(a,b){b.check_changeset_lock=!0,b.changeset_uuid=f.settings.changeset.uuid}),b(document).on("heartbeat-tick.update_lock_notice",function(b,c){var d,e="changeset_locked";c.customize_changeset_lock_user&&(d=f.notifications(e),d&&d.lockUser.id!==f.settings.changeset.lockUser.id&&f.notifications.remove(e),a({lockUser:c.customize_changeset_lock_user}))}),f.bind("error",function(b){"changeset_locked"===b.code&&b.lock_user&&a({lockUser:b.lock_user})})}(),function(){function a(){var a,c;return a=document.createElement("a"),a.href=location.href,c=f.utils.parseQueryString(a.search.substr(1)),f.settings.changeset.latestAutoDraftUuid?c.changeset_uuid=f.settings.changeset.latestAutoDraftUuid:c.customize_autosaved="on",c["return"]=f.settings.url["return"],a.search=b.param(c),a.href}function c(a){var c,d=document.createElement("a"),e=0;d.href=location.href,c=f.utils.parseQueryString(d.search.substr(1)),_.each(a,function(a){"undefined"!=typeof c[a]&&(e+=1,delete c[a])}),0!==e&&(d.search=b.param(c),history.replaceState({},document.title,d.href))}function d(){h||(wp.ajax.post("customize_dismiss_autosave_or_lock",{wp_customize:"on",customize_theme:f.settings.theme.stylesheet,customize_changeset_uuid:f.settings.changeset.uuid,nonce:f.settings.nonce.dismiss_autosave_or_lock,dismiss_autosave:!0}),h=!0)}function e(){var b,c="autosave_available";f.notifications.add(new f.Notification(c,{message:f.l10n.autosaveNotice,type:"warning",dismissible:!0,render:function(){var b,c=f.Notification.prototype.render.call(this);return b=c.find("a"),b.prop("href",a()),b.on("click",function(b){b.preventDefault(),location.replace(a())}),c.find(".notice-dismiss").on("click",d),c}})),b=function(){d(),f.notifications.remove(c),f.unbind("change",b),f.state("changesetStatus").unbind(b)},f.bind("change",b),f.state("changesetStatus").bind(b)}var g=[],h=!1;f.settings.changeset.autosaved&&(f.state("saved").set(!1),g.push("customize_autosaved")),f.settings.changeset.branching||f.settings.changeset.status&&"auto-draft"!==f.settings.changeset.status||g.push("changeset_uuid"),g.length>0&&c(g),(f.settings.changeset.latestAutoDraftUuid||f.settings.changeset.hasAutosaveRevision)&&e()}(),f.previewer.previewUrl()?f.previewer.refresh():f.previewer.previewUrl(f.settings.url.home),i.click(function(a){f.previewer.save(),a.preventDefault()}).keydown(function(a){9!==a.which&&(13===a.which&&f.previewer.save(),a.preventDefault())}),h.keydown(function(a){9!==a.which&&(13===a.which&&this.click(),a.preventDefault())}),b(".collapse-sidebar").on("click",function(){f.state("paneVisible").set(!f.state("paneVisible").get())}),f.state("paneVisible").bind(function(a){e.toggleClass("preview-only",!a),e.toggleClass("expanded",a),e.toggleClass("collapsed",!a),a?b(".collapse-sidebar").attr({"aria-expanded":"true","aria-label":f.l10n.collapseSidebar}):b(".collapse-sidebar").attr({"aria-expanded":"false","aria-label":f.l10n.expandSidebar})}),d.on("keydown",function(a){var c,e=[],g=[],h=[];if(27===a.which&&(b(a.target).is("body")||b.contains(b("#customize-controls")[0],a.target))&&(f.control.each(function(a){a.expanded&&a.expanded()&&_.isFunction(a.collapse)&&e.push(a)}),f.section.each(function(a){a.expanded()&&g.push(a)}),f.panel.each(function(a){a.expanded()&&h.push(a)}),e.length>0&&0===g.length&&(e.length=0),c=e[0]||g[0]||h[0])){if("themes"===c.params.type)return void(d.hasClass("modal-open")?c.closeDetails():f.panel.has("themes")&&f.panel("themes").collapse());c.collapse(),a.preventDefault()}}),b(".customize-controls-preview-toggle").on("click",function(){f.state("paneVisible").set(!f.state("paneVisible").get())}),function(){var a,c,d,e,g,h,i,j=b(".wp-full-overlay-sidebar-content");a=function(a){var b,g=a,i=f.state("expandedSection").get(),j=f.state("expandedPanel").get();if(h&&h.element&&(d(h.element),h.element.find(".description").off("toggled",c)),!g)if(!i&&j&&j.contentContainer)g=j;else{if(j||!i||!i.contentContainer)return void(h=!1);g=i}b=g.contentContainer.find(".customize-section-title, .panel-meta").first(),b.length?(h={instance:g,element:b,parent:b.closest(".customize-pane-child"),height:b.outerHeight()},h.element.find(".description").on("toggled",c),i&&e(h.element,h.parent)):h=!1},f.state("expandedSection").bind(a),f.state("expandedPanel").bind(a),j.on("scroll",_.throttle(function(){if(h){var a,b=j.scrollTop();a=i?b===i?0:b>i?1:-1:1,i=b,0!==a&&g(h,b,a)}},8)),f.notifications.bind("sidebarTopUpdated",function(){h&&h.element.hasClass("is-sticky")&&h.element.css("top",j.css("top"))}),d=function(a){a.hasClass("is-sticky")&&a.removeClass("is-sticky").addClass("maybe-sticky is-in-view").css("top",j.scrollTop()+"px")},e=function(a,b){a.hasClass("is-in-view")&&(a.removeClass("maybe-sticky is-in-view").css({width:"",top:""}),b.css("padding-top",""))},c=function(){h.height=h.element.outerHeight()},g=function(a,b,c){var d=a.element,e=a.parent,f=a.height,g=parseInt(d.css("top"),10),h=d.hasClass("maybe-sticky"),i=d.hasClass("is-sticky"),k=d.hasClass("is-in-view"),l=-1===c;if(!l)return i&&(g=b,d.removeClass("is-sticky").css({top:g+"px",width:""})),void(k&&b>g+f&&(d.removeClass("is-in-view"),e.css("padding-top","")));if(!h&&b>=f)h=!0,d.addClass("maybe-sticky");else if(0===b)return d.removeClass("maybe-sticky is-in-view is-sticky").css({top:"",width:""}),void e.css("padding-top","");k&&!i?g>=b&&d.addClass("is-sticky").css({top:j.css("top"),width:e.outerWidth()+"px"}):h&&!k&&(d.addClass("is-in-view").css("top",b-f+"px"),e.css("padding-top",f+"px"))}}(),f.previewedDevice=f.state("previewedDevice"),f.bind("ready",function(){_.find(f.settings.previewableDevices,function(a,b){if(!0===a["default"])return f.previewedDevice.set(b),!0})}),l.find(".devices button").on("click",function(a){f.previewedDevice.set(b(a.currentTarget).data("device"))}),f.previewedDevice.bind(function(a){var c=b(".wp-full-overlay"),d="";l.find(".devices button").removeClass("active").attr("aria-pressed",!1),l.find(".devices .preview-"+a).addClass("active").attr("aria-pressed",!0),b.each(f.settings.previewableDevices,function(a){d+=" preview-"+a}),c.removeClass(d).addClass("preview-"+a)}),g.length&&f("blogname",function(a){var c=function(){g.text(b.trim(a())||f.l10n.untitledBlogName)};a.bind(c),c()}),c=new f.Messenger({url:f.settings.url.parent,channel:"loader"}),function(){function a(){var a;return f.state("activated").get()?(a=f.state("changesetStatus").get(),""!==a&&"auto-draft"!==a||(a="publish"),f.state("selectedChangesetStatus").get()===a&&(("future"!==f.state("selectedChangesetStatus").get()||f.state("selectedChangesetDate").get()===f.state("changesetDate").get())&&(f.state("saved").get()&&"auto-draft"!==f.state("changesetStatus").get()))):0===f._latestRevision}function d(){f.unbind("change",d),f.state("selectedChangesetStatus").unbind(d),f.state("selectedChangesetDate").unbind(d),b(window).on("beforeunload.customize-confirm",function(){if(!a()&&!f.state("changesetLocked").get())return setTimeout(function(){e.removeClass("customize-loading")},1),f.l10n.saveAlert})}function g(){var c=b.Deferred(),d=!1,e=!1;return a()?e=!0:confirm(f.l10n.saveAlert)?(e=!0,f.each(function(a){a._dirty=!1}),b(document).off("visibilitychange.wp-customize-changeset-update"),b(window).off("beforeunload.wp-customize-changeset-update"),h.css("cursor","progress"),""!==f.state("changesetStatus").get()&&(d=!0)):c.reject(),(e||d)&&wp.ajax.send("customize_dismiss_autosave_or_lock",{timeout:500,data:{wp_customize:"on",customize_theme:f.settings.theme.stylesheet,customize_changeset_uuid:f.settings.changeset.uuid,nonce:f.settings.nonce.dismiss_autosave_or_lock,dismiss_autosave:d,dismiss_lock:e}}).always(function(){c.resolve()}),c.promise()}var i=!1;c.bind("back",function(){i=!0}),f.bind("change",d),f.state("selectedChangesetStatus").bind(d),f.state("selectedChangesetDate").bind(d),c.bind("confirm-close",function(){g().done(function(){c.send("confirmed-close",!0)}).fail(function(){c.send("confirmed-close",!1)})}),h.on("click.customize-controls-close",function(a){a.preventDefault(),i?c.send("close"):g().done(function(){b(window).off("beforeunload.customize-confirm"),window.location.href=h.prop("href")})})}(),b.each(["saved","change"],function(a,b){f.bind(b,function(){c.send(b)})}),f.bind("title",function(a){c.send("title",a)}),f.settings.changeset.branching&&c.send("changeset-uuid",f.settings.changeset.uuid),c.send("ready"),b.each({background_image:{controls:["background_preset","background_position","background_size","background_repeat","background_attachment"],callback:function(a){return!!a}},show_on_front:{controls:["page_on_front","page_for_posts"],callback:function(a){return"page"===a}},header_textcolor:{controls:["header_textcolor"],callback:function(a){return"blank"!==a}}},function(a,c){f(a,function(a){b.each(c.controls,function(b,d){f.control(d,function(b){var d=function(a){b.container.toggle(c.callback(a))};d(a.get()),a.bind(d)})})})}),f.control("background_preset",function(a){var b,c,d,e,g,h;b={"default":[!1,!1,!1,!1],fill:[!0,!1,!1,!1],fit:[!0,!1,!0,!1],repeat:[!0,!1,!1,!0],custom:[!0,!0,!0,!0]},c=[_wpCustomizeBackground.defaults["default-position-x"],_wpCustomizeBackground.defaults["default-position-y"],_wpCustomizeBackground.defaults["default-size"],_wpCustomizeBackground.defaults["default-repeat"],_wpCustomizeBackground.defaults["default-attachment"]],d={"default":c,fill:["left","top","cover","no-repeat","fixed"],fit:["left","top","contain","no-repeat","fixed"],repeat:["left","top","auto","repeat","scroll"]},e=function(a){_.each(["background_position","background_size","background_repeat","background_attachment"],function(c,d){var e=f.control(c);e&&e.container.toggle(b[a][d])})},g=function(a){_.each(["background_position_x","background_position_y","background_size","background_repeat","background_attachment"],function(b,c){var e=f(b);e&&e.set(d[a][c])})},h=a.setting.get(),e(h),a.setting.bind("change",function(a){e(a),"custom"!==a&&g(a)})}),f.control("background_repeat",function(a){a.elements[0].unsync(f("background_repeat")),a.element=new f.Element(a.container.find("input")),a.element.set("no-repeat"!==a.setting()),a.element.bind(function(b){a.setting.set(b?"repeat":"no-repeat")}),a.setting.bind(function(b){a.element.set("no-repeat"!==b)})}),f.control("background_attachment",function(a){a.elements[0].unsync(f("background_attachment")),a.element=new f.Element(a.container.find("input")),a.element.set("fixed"!==a.setting()),a.element.bind(function(b){a.setting.set(b?"scroll":"fixed")}),a.setting.bind(function(b){a.element.set("fixed"!==b)})}),f.control("display_header_text",function(a){var b="";a.elements[0].unsync(f("header_textcolor")),a.element=new f.Element(a.container.find("input")),a.element.set("blank"!==a.setting()),a.element.bind(function(c){c||(b=f("header_textcolor").get()),a.setting.set(c?b:"blank")}),a.setting.bind(function(b){a.element.set("blank"!==b)})}),f("show_on_front","page_on_front","page_for_posts",function(a,b,c){var d=function(){var d,e,g=this,h="show_on_front_page_collision";d=parseInt(b(),10),e=parseInt(c(),10),"page"===a()&&(g===b&&d>0&&f.previewer.previewUrl.set(f.settings.url.home),g===c&&e>0&&f.previewer.previewUrl.set(f.settings.url.home+"?page_id="+e)),"page"===a()&&d&&e&&d===e?a.notifications.add(new f.Notification(h,{type:"error",message:f.l10n.pageOnFrontError})):a.notifications.remove(h)};a.bind(d),b.bind(d),c.bind(d),d.call(a,a()),f.control("show_on_front",function(a){a.deferred.embedded.done(function(){a.container.append(a.getNotificationsContainerElement())})})}),function(){var a=b.Deferred();f.section("custom_css",function(b){b.deferred.embedded.done(function(){b.expanded()?a.resolve(b):b.expanded.bind(function(c){c&&a.resolve(b)})})}),a.done(function(a){var b=f.control("custom_css");b.container.find(".customize-control-title:first").addClass("screen-reader-text"),a.container.find(".section-description-buttons .section-description-close").on("click",function(){a.container.find(".section-meta .customize-section-description:first").removeClass("open").slideUp(),a.container.find(".customize-help-toggle").attr("aria-expanded","false").focus()}),b&&!b.setting.get()&&(a.container.find(".section-meta .customize-section-description:first").addClass("open").show().trigger("toggled"),a.container.find(".customize-help-toggle").attr("aria-expanded","true"))})}(),f.control("header_video",function(a){a.deferred.embedded.done(function(){var b=function(){var b=f.section(a.section()),c="video_header_not_available";b&&(a.active.get()?b.notifications.remove(c):b.notifications.add(new f.Notification(c,{type:"info",message:f.l10n.videoHeaderNotice})))};b(),a.active.bind(b)})}),f.previewer.bind("selective-refresh-setting-validities",function(a){f._handleSettingValidities({settingValidities:a,focusInvalidControl:!1})}),f.previewer.bind("focus-control-for-setting",function(a){var b=[];f.control.each(function(c){var d=_.pluck(c.settings,"id");-1!==_.indexOf(d,a)&&b.push(c)}),b.length&&(b.sort(function(a,b){return a.priority()-b.priority()}),b[0].focus())}),f.previewer.bind("refresh",function(){f.previewer.refresh()}),f.state("paneVisible").bind(function(a){var c;c=window.matchMedia?window.matchMedia("screen and ( max-width: 640px )").matches:b(window).width()<=640,f.state("editShortcutVisibility").set(a||c?"visible":"hidden")}),window.matchMedia&&window.matchMedia("screen and ( max-width: 640px )").addListener(function(){var a=f.state("paneVisible");a.callbacks.fireWith(a,[a.get(),a.get()])}),f.previewer.bind("edit-shortcut-visibility",function(a){f.state("editShortcutVisibility").set(a)}),f.state("editShortcutVisibility").bind(function(a){f.previewer.send("edit-shortcut-visibility",a)}),f.bind("change",a),b(document).one("wp-before-tinymce-init",function(){(!window.tinymce.ui.FloatPanel.zIndex||window.tinymce.ui.FloatPanel.zIndex<500001)&&(window.tinymce.ui.FloatPanel.zIndex=500001)}),d.addClass("ready"),f.trigger("ready")}})}(wp,jQuery); \ No newline at end of file +e=c.selectionEnd,f=c.value,d>=0&&(c.value=f.substring(0,d).concat("\t",f.substring(e)),b.selectionStart=c.selectionEnd=d+1),a.stopPropagation(),a.preventDefault()))}),a.deferred.codemirror.rejectWith(a)}}),f.DateTimeControl=f.Control.extend({ready:function(){var a=this;if(a.inputElements={},a.invalidDate=!1,_.bindAll(a,"populateSetting","updateDaysForMonth","populateDateInputs"),!a.setting)throw new Error("Missing setting");a.container.find(".date-input").each(function(){var c,d,e=b(this);c=e.data("component"),d=new f.Element(e),a.inputElements[c]=d,a.elements.push(d),e.on("change",function(){a.invalidDate&&a.notifications.add(new f.Notification("invalid_date",{message:f.l10n.invalidDate}))}),e.on("input",_.debounce(function(){a.invalidDate||a.notifications.remove("invalid_date")})),e.on("blur",_.debounce(function(){a.invalidDate||a.populateDateInputs()}))}),a.inputElements.month.bind(a.updateDaysForMonth),a.inputElements.year.bind(a.updateDaysForMonth),a.populateDateInputs(),a.setting.bind(a.populateDateInputs),_.each(a.inputElements,function(b){b.bind(a.populateSetting)})},parseDateTime:function(a){var b,c,d=this,e=12;return a&&(b=a.match(/^(\d\d\d\d)-(\d\d)-(\d\d)(?: (\d\d):(\d\d)(?::(\d\d))?)?$/)),b?(b.shift(),c={year:b.shift(),month:b.shift(),day:b.shift(),hour:b.shift()||"00",minute:b.shift()||"00",second:b.shift()||"00"},d.params.includeTime&&d.params.twelveHourFormat&&(c.hour=parseInt(c.hour,10),c.meridian=c.hour>=e?"pm":"am",c.hour=c.hour%e?String(c.hour%e):String(e),delete c.second),c):null},validateInputs:function(){var a,b,c=this;return c.invalidDate=!1,a=["year","day"],c.params.includeTime&&a.push("hour","minute"),_.find(a,function(a){var d,e,f,g;return d=c.inputElements[a],b=d.element.get(0),e=parseInt(d.element.attr("max"),10),f=parseInt(d.element.attr("min"),10),g=parseInt(d(),10),c.invalidDate=isNaN(g)||g>e||g<f,c.invalidDate||b.setCustomValidity(""),c.invalidDate}),c.inputElements.meridian&&!c.invalidDate&&(b=c.inputElements.meridian.element.get(0),"am"!==c.inputElements.meridian.get()&&"pm"!==c.inputElements.meridian.get()?c.invalidDate=!0:b.setCustomValidity("")),c.invalidDate?b.setCustomValidity(f.l10n.invalidValue):b.setCustomValidity(""),(!c.section()||f.section.has(c.section())&&f.section(c.section()).expanded())&&_.result(b,"reportValidity"),c.invalidDate},updateDaysForMonth:function(){var a,b,c,d,e=this;c=parseInt(e.inputElements.month(),10),b=parseInt(e.inputElements.year(),10),d=parseInt(e.inputElements.day(),10),c&&b&&(a=new Date(b,c,0).getDate(),e.inputElements.day.element.attr("max",a),d>a&&e.inputElements.day(String(a)))},populateSetting:function(){var a,b=this;return!(b.validateInputs()||!b.params.allowPastDate&&!b.isFutureDate())&&(a=b.convertInputDateToString(),b.setting.set(a),!0)},convertInputDateToString:function(){var a,b,c,d,e=this,f="";return d=function(a,b){var c;return String(a).length<b&&(c=b-String(a).length,a=Math.pow(10,c).toString().substr(1)+String(a)),a},c=function(a){var b=parseInt(e.inputElements[a].get(),10);return _.contains(["month","day","hour","minute"],a)?b=d(b,2):"year"===a&&(b=d(b,4)),b},a=["year","-","month","-","day"],e.params.includeTime&&(b=e.inputElements.meridian?e.convertHourToTwentyFourHourFormat(e.inputElements.hour(),e.inputElements.meridian()):e.inputElements.hour(),a=a.concat([" ",d(b,2),":","minute",":","00"])),_.each(a,function(a){f+=e.inputElements[a]?c(a):a}),f},isFutureDate:function(){var a=this;return 0<f.utils.getRemainingTime(a.convertInputDateToString())},convertHourToTwentyFourHourFormat:function(a,b){var c,d,e=12;return d=parseInt(a,10),isNaN(d)?"":(c="pm"===b&&d<e?d+e:"am"===b&&e===d?d-e:d,String(c))},populateDateInputs:function(){var a,b=this;return!!(a=b.parseDateTime(b.setting.get()))&&(_.each(b.inputElements,function(b,c){var d=a[c];"month"===c||"meridian"===c?(d=d.replace(/^0/,""),b.set(d)):(d=parseInt(d,10),b.element.is(document.activeElement)?d!==parseInt(b(),10)&&b.set(String(d)):b.set(a[c]))}),!0)},toggleFutureDateNotification:function(a){var b,c,d=this;return b="not_future_date",a?(c=new f.Notification(b,{type:"error",message:f.l10n.futureDateError}),d.notifications.add(c)):d.notifications.remove(b),d}}),f.PreviewLinkControl=f.Control.extend({defaults:_.extend({},f.Control.prototype.defaults,{templateId:"customize-preview-link-control"}),ready:function(){var a,c,d,e,g,h,i=this;_.bindAll(i,"updatePreviewLink"),i.setting||(i.setting=new f.Value),i.previewElements={},i.container.find(".preview-control-element").each(function(){d=b(this),c=d.data("component"),a=new f.Element(d),i.previewElements[c]=a,i.elements.push(a)}),e=i.previewElements.url,g=i.previewElements.input,h=i.previewElements.button,g.link(i.setting),e.link(i.setting),e.bind(function(a){e.element.parent().attr({href:a,target:f.settings.changeset.uuid})}),f.bind("ready",i.updatePreviewLink),f.state("saved").bind(i.updatePreviewLink),f.state("changesetStatus").bind(i.updatePreviewLink),f.state("activated").bind(i.updatePreviewLink),f.previewer.previewUrl.bind(i.updatePreviewLink),h.element.on("click",function(a){a.preventDefault(),i.setting()&&(g.element.select(),document.execCommand("copy"),h(h.element.data("copied-text")))}),e.element.parent().on("click",function(a){b(this).hasClass("disabled")&&a.preventDefault()}),h.element.on("mouseenter",function(){i.setting()&&h(h.element.data("copy-text"))})},updatePreviewLink:function(){var a,b=this;a=!f.state("saved").get()||""===f.state("changesetStatus").get()||"auto-draft"===f.state("changesetStatus").get(),b.toggleSaveNotification(a),b.previewElements.url.element.parent().toggleClass("disabled",a),b.previewElements.button.element.prop("disabled",a),b.setting.set(f.previewer.getFrontendPreviewUrl())},toggleSaveNotification:function(a){var b,c,d=this;b="changes_not_saved",a?(c=new f.Notification(b,{type:"info",message:f.l10n.saveBeforeShare}),d.notifications.add(c)):d.notifications.remove(b)}}),f.defaultConstructor=f.Setting,f.control=new f.Values({defaultConstructor:f.Control}),f.section=new f.Values({defaultConstructor:f.Section}),f.panel=new f.Values({defaultConstructor:f.Panel}),f.notifications=new f.Notifications,f.PreviewFrame=f.Messenger.extend({sensitivity:null,initialize:function(a,c){var d=b.Deferred();d.promise(this),this.container=a.container,b.extend(a,{channel:f.PreviewFrame.uuid()}),f.Messenger.prototype.initialize.call(this,a,c),this.add("previewUrl",a.previewUrl),this.query=b.extend(a.query||{},{customize_messenger_channel:this.channel()}),this.run(d)},run:function(a){var c,d,e,g=this,h=!1,i=!1,j=null,k="{}"!==g.query.customized;g._ready&&g.unbind("ready",g._ready),g._ready=function(b){i=!0,j=b,g.container.addClass("iframe-ready"),b&&h&&a.resolveWith(g,[b])},g.bind("ready",g._ready),c=document.createElement("a"),c.href=g.previewUrl(),d=_.extend(f.utils.parseQueryString(c.search.substr(1)),{customize_changeset_uuid:g.query.customize_changeset_uuid,customize_theme:g.query.customize_theme,customize_messenger_channel:g.query.customize_messenger_channel}),!f.settings.changeset.autosaved&&f.state("saved").get()||(d.customize_autosaved="on"),c.search=b.param(d),g.iframe=b("<iframe />",{title:f.l10n.previewIframeTitle,name:"customize-"+g.channel()}),g.iframe.attr("onmousewheel",""),k?g.iframe.attr("data-src",c.href):g.iframe.attr("src",c.href),g.iframe.appendTo(g.container),g.targetWindow(g.iframe[0].contentWindow),k&&(e=b("<form>",{action:c.href,target:g.iframe.attr("name"),method:"post",hidden:"hidden"}),e.append(b("<input>",{type:"hidden",name:"_method",value:"GET"})),_.each(g.query,function(a,c){e.append(b("<input>",{type:"hidden",name:c,value:a}))}),g.container.append(e),e.submit(),e.remove()),g.bind("iframe-loading-error",function(b){return g.iframe.remove(),0===b?void g.login(a):-1===b?void a.rejectWith(g,["cheatin"]):void a.rejectWith(g,["request failure"])}),g.iframe.one("load",function(){h=!0,i?a.resolveWith(g,[j]):setTimeout(function(){a.rejectWith(g,["ready timeout"])},g.sensitivity)})},login:function(a){var c,d=this;return c=function(){a.rejectWith(d,["logged out"])},this.triedLogin?c():void b.get(f.settings.url.ajax,{action:"logged-in"}).fail(c).done(function(e){var g;"1"!==e&&c(),g=b("<iframe />",{src:d.previewUrl(),title:f.l10n.previewIframeTitle}).hide(),g.appendTo(d.container),g.on("load",function(){d.triedLogin=!0,g.remove(),d.run(a)})})},destroy:function(){f.Messenger.prototype.destroy.call(this),this.iframe&&this.iframe.remove(),delete this.iframe,delete this.targetWindow}}),function(){var a=0;f.PreviewFrame.uuid=function(){return"preview-"+String(a++)}}(),f.setDocumentTitle=function(a){var b,c;b=f.settings.documentTitleTmpl,c=b.replace("%s",a),document.title=c,f.trigger("title",c)},f.Previewer=f.Messenger.extend({refreshBuffer:null,initialize:function(a,c){var d=this,e=document.createElement("a");b.extend(d,c||{}),d.deferred={active:b.Deferred()},d.refresh=_.debounce(function(a){return function(){var b,c;b=function(){return 0===f.state("processing").get()},b()?a.call(d):(c=function(){b()&&(a.call(d),f.state("processing").unbind(c))},f.state("processing").bind(c))}}(d.refresh),d.refreshBuffer),d.container=f.ensure(a.container),d.allowedUrls=a.allowedUrls,a.url=window.location.href,f.Messenger.prototype.initialize.call(d,a),e.href=d.origin(),d.add("scheme",e.protocol.replace(/:$/,"")),d.add("previewUrl",a.previewUrl).setter(function(a){var c,e,g,h=null,i=[];return c=document.createElement("a"),c.href=a,/\/wp-(admin|includes|content)(\/|$)/.test(c.pathname)?null:(c.search.length>1&&(e=f.utils.parseQueryString(c.search.substr(1)),delete e.customize_changeset_uuid,delete e.customize_theme,delete e.customize_messenger_channel,delete e.customize_autosaved,_.isEmpty(e)?c.search="":c.search=b.param(e)),i.push(c),d.scheme.get()+":"!==c.protocol&&(c=document.createElement("a"),c.href=i[0].href,c.protocol=d.scheme.get()+":",i.unshift(c)),g=document.createElement("a"),_.find(i,function(a){return!_.isUndefined(_.find(d.allowedUrls,function(b){if(g.href=b,c.protocol===g.protocol&&c.host===g.host&&0===c.pathname.indexOf(g.pathname.replace(/\/$/,"")))return h=a.href,!0}))}),h)}),d.bind("ready",d.ready),d.deferred.active.done(_.bind(d.keepPreviewAlive,d)),d.bind("synced",function(){d.send("active")}),d.previewUrl.bind(d.refresh),d.scroll=0,d.bind("scroll",function(a){d.scroll=a}),d.bind("url",function(a){var b,c=!1;d.scroll=0,b=function(){c=!0},d.previewUrl.bind(b),d.previewUrl.set(a),d.previewUrl.unbind(b),c||d.refresh()}),d.bind("documentTitle",function(a){f.setDocumentTitle(a)})},ready:function(a){var b,c=this,d={};d.settings=f.get(),d["settings-modified-while-loading"]=c.settingsModifiedWhileLoading,("resolved"!==c.deferred.active.state()||c.loading)&&(d.scroll=c.scroll),d["edit-shortcut-visibility"]=f.state("editShortcutVisibility").get(),c.send("sync",d),a.currentUrl&&(c.previewUrl.unbind(c.refresh),c.previewUrl.set(a.currentUrl),c.previewUrl.bind(c.refresh)),b={panel:a.activePanels,section:a.activeSections,control:a.activeControls},_(b).each(function(a,b){f[b].each(function(c,d){var e=_.isUndefined(f.settings[b+"s"][d]);e&&_.isUndefined(a[d])||(a[d]?c.activate():c.deactivate())})}),a.settingValidities&&f._handleSettingValidities({settingValidities:a.settingValidities,focusInvalidControl:!1})},keepPreviewAlive:function(){var a,b,c,d,e=this;d=function(){b=setTimeout(c,f.settings.timeouts.keepAliveCheck)},a=function(){f.state("previewerAlive").set(!0),clearTimeout(b),d()},c=function(){f.state("previewerAlive").set(!1)},d(),e.bind("ready",a),e.bind("keep-alive",a)},query:function(){},abort:function(){this.loading&&(this.loading.destroy(),delete this.loading)},refresh:function(){var a,b=this;b.send("loading-initiated"),b.abort(),b.loading=new f.PreviewFrame({url:b.url(),previewUrl:b.previewUrl(),query:b.query({excludeCustomizedSaved:!0})||{},container:b.container}),b.settingsModifiedWhileLoading={},a=function(a){b.settingsModifiedWhileLoading[a.id]=!0},f.bind("change",a),b.loading.always(function(){f.unbind("change",a)}),b.loading.done(function(a){var c,d=this;b.preview=d,b.targetWindow(d.targetWindow()),b.channel(d.channel()),c=function(){d.unbind("synced",c),b._previousPreview&&b._previousPreview.destroy(),b._previousPreview=b.preview,b.deferred.active.resolve(),delete b.loading},d.bind("synced",c),b.trigger("ready",a)}),b.loading.fail(function(a){b.send("loading-failed"),"logged out"===a&&(b.preview&&(b.preview.destroy(),delete b.preview),b.login().done(b.refresh)),"cheatin"===a&&b.cheatin()})},login:function(){var a,c,d,e=this;return this._login?this._login:(a=b.Deferred(),this._login=a.promise(),c=new f.Messenger({channel:"login",url:f.settings.url.login}),d=b("<iframe />",{src:f.settings.url.login,title:f.l10n.loginIframeTitle}).appendTo(this.container),c.targetWindow(d[0].contentWindow),c.bind("login",function(){var b=e.refreshNonces();b.always(function(){d.remove(),c.destroy(),delete e._login}),b.done(function(){a.resolve()}),b.fail(function(){e.cheatin(),a.reject()})}),this._login)},cheatin:function(){b(document.body).empty().addClass("cheatin").append("<h1>"+f.l10n.notAllowedHeading+"</h1><p>"+f.l10n.notAllowed+"</p>")},refreshNonces:function(){var a,c=b.Deferred();return c.promise(),a=wp.ajax.post("customize_refresh_nonces",{wp_customize:"on",customize_theme:f.settings.theme.stylesheet}),a.done(function(a){f.trigger("nonce-refresh",a),c.resolve()}),a.fail(function(){c.reject()}),c}}),f.settingConstructor={},f.controlConstructor={color:f.ColorControl,media:f.MediaControl,upload:f.UploadControl,image:f.ImageControl,cropped_image:f.CroppedImageControl,site_icon:f.SiteIconControl,header:f.HeaderControl,background:f.BackgroundControl,background_position:f.BackgroundPositionControl,theme:f.ThemeControl,date_time:f.DateTimeControl,code_editor:f.CodeEditorControl},f.panelConstructor={themes:f.ThemesPanel},f.sectionConstructor={themes:f.ThemesSection,outer:f.OuterSection},f._handleSettingValidities=function(a){var b,c=[],d=!1;_.each(a.settingValidities,function(a,b){var d=f(b);d&&(_.isObject(a)&&_.each(a,function(a,b){var e,g,h=!1;e=new f.Notification(b,_.extend({fromServer:!0},a)),g=d.notifications(e.code),g&&(h=e.type!==g.type||e.message!==g.message||!_.isEqual(e.data,g.data)),h&&d.notifications.remove(b),d.notifications.has(e.code)||d.notifications.add(e),c.push(d.id)}),d.notifications.each(function(b){!b.fromServer||"error"!==b.type||!0!==a&&a[b.code]||d.notifications.remove(b.code)}))}),a.focusInvalidControl&&(b=f.findControlsForSettings(c),_(_.values(b)).find(function(a){return _(a).find(function(a){var b=a.section()&&f.section.has(a.section())&&f.section(a.section()).expanded();return b&&a.expanded&&(b=a.expanded()),b&&(a.focus(),d=!0),d})}),d||_.isEmpty(b)||_.values(b)[0][0].focus())},f.findControlsForSettings=function(a){var b,c={};return _.each(_.unique(a),function(a){var d=f(a);d&&(b=d.findControls(),b&&b.length>0&&(c[a]=b))}),c},f.reflowPaneContents=_.bind(function(){var a,c,d,e=[],g=!1;document.activeElement&&(c=b(document.activeElement)),f.panel.each(function(b){if("themes"!==b.id){var c=b.sections(),d=_.pluck(c,"headContainer");e.push(b),a=b.contentContainer.is("ul")?b.contentContainer:b.contentContainer.find("ul:first"),f.utils.areElementListsEqual(d,a.children("[id]"))||(_(c).each(function(b){a.append(b.headContainer)}),g=!0)}}),f.section.each(function(b){var c=b.controls(),d=_.pluck(c,"container");b.panel()||e.push(b),a=b.contentContainer.is("ul")?b.contentContainer:b.contentContainer.find("ul:first"),f.utils.areElementListsEqual(d,a.children("[id]"))||(_(c).each(function(b){a.append(b.container)}),g=!0)}),e.sort(f.utils.prioritySort),d=_.pluck(e,"headContainer"),a=b("#customize-theme-controls .customize-pane-parent"),f.utils.areElementListsEqual(d,a.children())||(_(e).each(function(b){a.append(b.headContainer)}),g=!0),f.panel.each(function(a){var b=a.active();a.active.callbacks.fireWith(a.active,[b,b])}),f.section.each(function(a){var b=a.active();a.active.callbacks.fireWith(a.active,[b,b])}),g&&c&&c.focus(),f.trigger("pane-contents-reflowed")},f),f.state=new f.Values,_.each(["saved","saving","trashing","activated","processing","paneVisible","expandedPanel","expandedSection","changesetDate","selectedChangesetDate","changesetStatus","selectedChangesetStatus","remainingTimeToPublish","previewerAlive","editShortcutVisibility","changesetLocked","previewedDevice"],function(a){f.state.create(a)}),b(function(){function a(){function c(a){a||f.settings.changeset.autosaved||(f.settings.changeset.autosaved=!0,f.previewer.send("autosaving"))}var d,e,g,h=!1;f.unbind("change",a),f.state("saved").bind(c),c(f.state("saved").get()),e=function(){h||(h=!0,f.requestChangesetUpdate({},{autosave:!0}).always(function(){h=!1})),g()},g=function(){clearTimeout(d),d=setTimeout(function(){e()},f.settings.timeouts.changesetAutoSave)},g(),b(document).on("visibilitychange.wp-customize-changeset-update",function(){document.hidden&&e()}),b(window).on("beforeunload.wp-customize-changeset-update",function(){e()})}if(f.settings=window._wpCustomizeSettings,f.l10n=window._wpCustomizeControlsL10n,f.settings&&b.support.postMessage&&(b.support.cors||!f.settings.isCrossDomain)){null===f.PreviewFrame.prototype.sensitivity&&(f.PreviewFrame.prototype.sensitivity=f.settings.timeouts.previewFrameSensitivity),null===f.Previewer.prototype.refreshBuffer&&(f.Previewer.prototype.refreshBuffer=f.settings.timeouts.windowRefresh);var c,d=b(document.body),e=d.children(".wp-full-overlay"),g=b("#customize-info .panel-title.site-title"),h=b(".customize-controls-close"),i=b("#save"),j=b("#customize-save-button-wrapper"),k=b("#publish-settings"),l=b("#customize-footer-actions");f.bind("ready",function(){f.section.add(new f.OuterSection("publish_settings",{title:f.l10n.publishSettings,priority:0,active:f.settings.theme.active}))}),f.section("publish_settings",function(a){function b(){r||(r=f.utils.highlightButton(j,{delay:1e3,focusTarget:i}))}function c(){r&&(r(),r=null)}var d,e,g,h,l,m,n,o,p,q,r,s=1e3;e=new f.Control("trash_changeset",{type:"button",section:a.id,priority:30,input_attrs:{"class":"button-link button-link-delete",value:f.l10n.discardChanges}}),f.control.add(e),e.deferred.embedded.done(function(){e.container.find(".button-link").on("click",function(){confirm(f.l10n.trashConfirm)&&wp.customize.previewer.trash()})}),f.control.add(new f.PreviewLinkControl("changeset_preview_link",{section:a.id,priority:100})),h=function(){return!!f.state("activated").get()&&(!f.state("trashing").get()&&"trash"!==f.state("changesetStatus").get()&&(""!==f.state("changesetStatus").get()||!f.state("saved").get()))},a.active.validate=h,g=function(){a.active.set(h())},f.state("activated").bind(g),f.state("trashing").bind(g),f.state("saved").bind(g),f.state("changesetStatus").bind(g),g(),d=function(){k.toggle(a.active.get()),i.toggleClass("has-next-sibling",a.active.get())},d(),a.active.bind(d),f.state("selectedChangesetStatus").bind(c),a.contentContainer.find(".customize-action").text(f.l10n.updating),a.contentContainer.find(".customize-section-back").removeAttr("tabindex"),k.prop("disabled",!1),k.on("click",function(b){b.preventDefault(),a.expanded.set(!a.expanded.get())}),a.expanded.bind(function(a){var d;return k.attr("aria-expanded",String(a)),k.toggleClass("active",a),a?void c():(d=f.state("changesetStatus").get(),""!==d&&"auto-draft"!==d||(d="publish"),void(f.state("selectedChangesetStatus").get()!==d?b():"future"===f.state("selectedChangesetStatus").get()&&f.state("selectedChangesetDate").get()!==f.state("changesetDate").get()&&b()))}),l=new f.Control("changeset_status",{priority:10,type:"radio",section:"publish_settings",setting:f.state("selectedChangesetStatus"),templateId:"customize-selected-changeset-status-control",label:f.l10n.action,choices:f.settings.changeset.statusChoices}),f.control.add(l),m=new f.DateTimeControl("changeset_scheduled_date",{priority:20,section:"publish_settings",setting:f.state("selectedChangesetDate"),minYear:(new Date).getFullYear(),allowPastDate:!1,includeTime:!0,twelveHourFormat:/a/i.test(f.settings.timeFormat),description:f.l10n.scheduleDescription}),m.notifications.alt=!0,f.control.add(m),o=function(){f.state("selectedChangesetStatus").set("publish"),f.previewer.save()},q=function(){var a="future"===f.state("changesetStatus").get()&&"future"===f.state("selectedChangesetStatus").get()&&f.state("changesetDate").get()&&f.state("selectedChangesetDate").get()===f.state("changesetDate").get()&&f.utils.getRemainingTime(f.state("changesetDate").get())>=0;a&&!p?p=setInterval(function(){var a=f.utils.getRemainingTime(f.state("changesetDate").get());f.state("remainingTimeToPublish").set(a),a<=0&&(clearInterval(p),p=0,o())},s):!a&&p&&(clearInterval(p),p=0)},f.state("changesetDate").bind(q),f.state("selectedChangesetDate").bind(q),f.state("changesetStatus").bind(q),f.state("selectedChangesetStatus").bind(q),q(),m.active.validate=function(){return"future"===f.state("selectedChangesetStatus").get()},n=function(a){m.active.set("future"===a)},n(f.state("selectedChangesetStatus").get()),f.state("selectedChangesetStatus").bind(n),f.state("saving").bind(function(a){a&&"future"===f.state("selectedChangesetStatus").get()&&m.toggleFutureDateNotification(!m.isFutureDate())})}),b("#customize-controls").on("keydown",function(a){var c=13===a.which,d=b(a.target);c&&(d.is("input:not([type=button])")||d.is("select"))&&a.preventDefault()}),b(".customize-info").find("> .accordion-section-title .customize-help-toggle").on("click",function(){var a=b(this).closest(".accordion-section"),c=a.find(".customize-panel-description:first");a.hasClass("cannot-expand")||(a.hasClass("open")?(a.toggleClass("open"),c.slideUp(f.Panel.prototype.defaultExpandedArguments.duration,function(){c.trigger("toggled")}),b(this).attr("aria-expanded",!1)):(c.slideDown(f.Panel.prototype.defaultExpandedArguments.duration,function(){c.trigger("toggled")}),a.toggleClass("open"),b(this).attr("aria-expanded",!0)))}),f.previewer=new f.Previewer({container:"#customize-preview",form:"#customize-controls",previewUrl:f.settings.url.preview,allowedUrls:f.settings.url.allowed},{nonce:f.settings.nonce,query:function(a){var b={wp_customize:"on",customize_theme:f.settings.theme.stylesheet,nonce:this.nonce.preview,customize_changeset_uuid:f.settings.changeset.uuid};return!f.settings.changeset.autosaved&&f.state("saved").get()||(b.customize_autosaved="on"),b.customized=JSON.stringify(f.dirtyValues({unsaved:a&&a.excludeCustomizedSaved})),b},save:function(a){function d(a){m[a.id]=!0}var e,g,h=this,i=b.Deferred(),j=f.state("selectedChangesetStatus").get(),k=f.state("selectedChangesetDate").get(),l=f.state("processing"),m={},n=[],o=[],p=[];return a&&a.status&&(j=a.status),f.state("saving").get()&&(i.reject("already_saving"),i.promise()),f.state("saving").set(!0),g=function(){var e,g,l={},q=f._latestRevision,r="client_side_error";return f.bind("change",d),f.notifications.remove(r),f.each(function(a){a.notifications.each(function(b){"error"!==b.type||b.fromServer||(n.push(a.id),l[a.id]||(l[a.id]={}),l[a.id][b.code]=b)})}),f.control.each(function(a){(!a.setting||!a.setting.id&&a.active.get())&&a.notifications.each(function(b){"error"===b.type&&p.push([a])})}),o=_.union(p,_.values(f.findControlsForSettings(n))),_.isEmpty(o)?(g=b.extend(h.query({excludeCustomizedSaved:!1}),{nonce:h.nonce.save,customize_changeset_status:j}),a&&a.date?g.customize_changeset_date=a.date:"future"===j&&k&&(g.customize_changeset_date=k),a&&a.title&&(g.customize_changeset_title=a.title),f.trigger("save-request-params",g),e=wp.ajax.post("customize_save",g),f.state("processing").set(f.state("processing").get()+1),f.trigger("save",e),e.always(function(){f.state("processing").set(f.state("processing").get()-1),f.state("saving").set(!1),f.unbind("change",d)}),f.notifications.each(function(a){a.saveFailure&&f.notifications.remove(a.code)}),e.fail(function(a){var b,d;d={type:"error",dismissible:!0,fromServer:!0,saveFailure:!0},"0"===a?a="not_logged_in":"-1"===a&&(a="invalid_nonce"),"invalid_nonce"===a?h.cheatin():"not_logged_in"===a?(h.preview.iframe.hide(),h.login().done(function(){h.save(),h.preview.iframe.show()})):a.code?"not_future_date"===a.code&&f.section.has("publish_settings")&&f.section("publish_settings").active.get()&&f.control.has("changeset_scheduled_date")?f.control("changeset_scheduled_date").toggleFutureDateNotification(!0).focus():"changeset_locked"!==a.code&&(b=new f.Notification(a.code,_.extend(d,{message:a.message}))):b=new f.Notification("unknown_error",_.extend(d,{message:f.l10n.unknownRequestFail})),b&&f.notifications.add(b),a.setting_validities&&f._handleSettingValidities({settingValidities:a.setting_validities,focusInvalidControl:!0}),i.rejectWith(h,[a]),f.trigger("error",a),"changeset_already_published"===a.code&&a.next_changeset_uuid&&(f.settings.changeset.uuid=a.next_changeset_uuid,f.state("changesetStatus").set(""),f.settings.changeset.branching&&c.send("changeset-uuid",f.settings.changeset.uuid),f.previewer.send("changeset-uuid",f.settings.changeset.uuid))}),void e.done(function(a){h.send("saved",a),f.state("changesetStatus").set(a.changeset_status),a.changeset_date&&f.state("changesetDate").set(a.changeset_date),"publish"===a.changeset_status&&(f.each(function(a){a._dirty&&(_.isUndefined(f._latestSettingRevisions[a.id])||f._latestSettingRevisions[a.id]<=q)&&(a._dirty=!1)}),f.state("changesetStatus").set(""),f.settings.changeset.uuid=a.next_changeset_uuid,f.settings.changeset.branching&&c.send("changeset-uuid",f.settings.changeset.uuid)),f._lastSavedRevision=Math.max(q,f._lastSavedRevision),a.setting_validities&&f._handleSettingValidities({settingValidities:a.setting_validities,focusInvalidControl:!0}),i.resolveWith(h,[a]),f.trigger("saved",a),_.isEmpty(m)||f.state("saved").set(!1)})):(o[0][0].focus(),f.unbind("change",d),n.length&&f.notifications.add(new f.Notification(r,{message:(1===n.length?f.l10n.saveBlockedError.singular:f.l10n.saveBlockedError.plural).replace(/%s/g,String(n.length)),type:"error",dismissible:!0,saveFailure:!0})),i.rejectWith(h,[{setting_invalidities:l}]),f.state("saving").set(!1),i.promise())},0===l()?g():(e=function(){0===l()&&(f.state.unbind("change",e),g())},f.state.bind("change",e)),i.promise()},trash:function(){var a,c,d;f.state("trashing").set(!0),f.state("processing").set(f.state("processing").get()+1),a=wp.ajax.post("customize_trash",{customize_changeset_uuid:f.settings.changeset.uuid,nonce:f.settings.nonce.trash}),f.notifications.add(new f.OverlayNotification("changeset_trashing",{type:"info",message:f.l10n.revertingChanges,loading:!0})),c=function(){var a,c=document.createElement("a");f.state("changesetStatus").set("trash"),f.each(function(a){a._dirty=!1}),f.state("saved").set(!0),c.href=location.href,a=f.utils.parseQueryString(c.search.substr(1)),delete a.changeset_uuid,a["return"]=f.settings.url["return"],c.search=b.param(a),location.replace(c.href)},d=function(a,b){var c=a||"unknown_error";f.state("processing").set(f.state("processing").get()-1),f.state("trashing").set(!1),f.notifications.remove("changeset_trashing"),f.notifications.add(new f.Notification(c,{message:b||f.l10n.unknownError,dismissible:!0,type:"error"}))},a.done(function(a){c(a.message)}),a.fail(function(a){var b=a.code||"trashing_failed";a.success||"non_existent_changeset"===b||"changeset_already_trashed"===b?c(a.message):d(b,a.message)})},getFrontendPreviewUrl:function(){var a,c,d=this;return c=document.createElement("a"),c.href=d.previewUrl.get(),a=f.utils.parseQueryString(c.search.substr(1)),f.state("changesetStatus").get()&&"publish"!==f.state("changesetStatus").get()&&(a.customize_changeset_uuid=f.settings.changeset.uuid),f.state("activated").get()||(a.customize_theme=f.settings.theme.stylesheet),c.search=b.param(a),c.href}}),b.ajaxPrefilter(function(a){/wp_customize=on/.test(a.data)&&(a.data+="&"+b.param({customize_preview_nonce:f.settings.nonce.preview}))}),f.previewer.bind("nonce",function(a){b.extend(this.nonce,a)}),f.bind("nonce-refresh",function(a){b.extend(f.settings.nonce,a),b.extend(f.previewer.nonce,a),f.previewer.send("nonce-refresh",a)}),b.each(f.settings.settings,function(a,b){var c=f.settingConstructor[b.type]||f.Setting;f.add(new c(a,b.value,{transport:b.transport,previewer:f.previewer,dirty:!!b.dirty}))}),b.each(f.settings.panels,function(a,b){var c,d=f.panelConstructor[b.type]||f.Panel;c=_.extend({params:b},b),f.panel.add(new d(a,c))}),b.each(f.settings.sections,function(a,b){var c,d=f.sectionConstructor[b.type]||f.Section;c=_.extend({params:b},b),f.section.add(new d(a,c))}),b.each(f.settings.controls,function(a,b){var c,d=f.controlConstructor[b.type]||f.Control;c=_.extend({params:b},b),f.control.add(new d(a,c))}),_.each(["panel","section","control"],function(a){var b=f.settings.autofocus[a];b&&f[a](b,function(a){a.deferred.embedded.done(function(){f.previewer.deferred.active.done(function(){a.focus()})})})}),f.bind("ready",f.reflowPaneContents),b([f.panel,f.section,f.control]).each(function(a,b){var c=_.debounce(f.reflowPaneContents,f.settings.timeouts.reflowPaneContents);b.bind("add",c),b.bind("change",c),b.bind("remove",c)}),f.bind("ready",function(){var a,c,d;f.notifications.container=b("#customize-notifications-area"),f.notifications.bind("change",_.debounce(function(){f.notifications.render()})),a=b(".wp-full-overlay-sidebar-content"),f.notifications.bind("rendered",function(){a.css("top",""),0!==f.notifications.count()&&(c=f.notifications.container.outerHeight()+1,d=parseInt(a.css("top"),10),a.css("top",d+c+"px")),f.notifications.trigger("sidebarTopUpdated")}),f.notifications.render()}),function(a){var c,e,g=a.instance("saved"),j=a.instance("saving"),k=a.instance("trashing"),l=a.instance("activated"),m=a.instance("processing"),n=a.instance("paneVisible"),o=a.instance("expandedPanel"),p=a.instance("expandedSection"),q=a.instance("changesetStatus"),r=a.instance("selectedChangesetStatus"),s=a.instance("changesetDate"),t=a.instance("selectedChangesetDate"),u=a.instance("previewerAlive"),v=a.instance("editShortcutVisibility"),w=a.instance("changesetLocked");a.bind("change",function(){var a;l()?""===q.get()&&g()?(f.settings.changeset.currentUserCanPublish?i.val(f.l10n.published):i.val(f.l10n.saved),h.find(".screen-reader-text").text(f.l10n.close)):("draft"===r()?g()&&r()===q()?i.val(f.l10n.draftSaved):i.val(f.l10n.saveDraft):"future"===r()?g()&&r()===q()?s.get()!==t.get()?i.val(f.l10n.schedule):i.val(f.l10n.scheduled):i.val(f.l10n.schedule):f.settings.changeset.currentUserCanPublish&&i.val(f.l10n.publish),h.find(".screen-reader-text").text(f.l10n.cancel)):(i.val(f.l10n.activate),h.find(".screen-reader-text").text(f.l10n.cancel)),a=!j()&&!k()&&!w()&&(!l()||!g()||q()!==r()&&""!==q()||"future"===r()&&s.get()!==t.get()),i.prop("disabled",!a)}),r.validate=function(a){return""===a||"auto-draft"===a?null:a},e=f.settings.changeset.currentUserCanPublish?"publish":"draft",q(f.settings.changeset.status),w(Boolean(f.settings.changeset.lockUser)),s(f.settings.changeset.publishDate),t(f.settings.changeset.publishDate),r(""===f.settings.changeset.status||"auto-draft"===f.settings.changeset.status?e:f.settings.changeset.status),r.link(q),g(!0),""===q()&&f.each(function(a){a._dirty&&g(!1)}),j(!1),l(f.settings.theme.active),m(0),n(!0),o(!1),p(!1),u(!0),v("visible"),f.bind("change",function(){a("saved").get()&&a("saved").set(!1)}),f.settings.changeset.branching&&g.bind(function(a){a||c(!0)}),j.bind(function(a){d.toggleClass("saving",a)}),k.bind(function(a){d.toggleClass("trashing",a)}),f.bind("saved",function(b){a("saved").set(!0),"publish"===b.changeset_status&&a("activated").set(!0)}),l.bind(function(a){a&&f.trigger("activated")}),c=function(a){var c,d;if(history.replaceState){if(c=document.createElement("a"),c.href=location.href,d=f.utils.parseQueryString(c.search.substr(1)),a){if(d.changeset_uuid===f.settings.changeset.uuid)return;d.changeset_uuid=f.settings.changeset.uuid}else{if(!d.changeset_uuid)return;delete d.changeset_uuid}c.search=b.param(d),history.replaceState({},document.title,c.href)}},f.settings.changeset.branching&&q.bind(function(a){c(""!==a&&"publish"!==a&&"trash"!==a); +})}(f.state),function(){function a(a){a&&a.lockUser&&(f.settings.changeset.lockUser=a.lockUser),f.state("changesetLocked").set(!0),f.notifications.add(new c("changeset_locked",{lockUser:f.settings.changeset.lockUser,allowOverride:Boolean(a&&a.allowOverride)}))}var c=f.OverlayNotification.extend({templateId:"customize-changeset-locked-notification",lockUser:null,initialize:function(a,b){var c,d,e=this;c=a||"changeset_locked",d=_.extend({type:"warning",containerClasses:"",lockUser:{}},b),d.containerClasses+=" notification-changeset-locked",f.OverlayNotification.prototype.initialize.call(e,c,d)},render:function(){var a,b,c,d,e=this;return b=_.extend({allowOverride:!1,returnUrl:f.settings.url["return"],previewUrl:f.previewer.previewUrl.get(),frontendPreviewUrl:f.previewer.getFrontendPreviewUrl()},this),a=f.OverlayNotification.prototype.render.call(b),f.requestChangesetUpdate({},{autosave:!0}).fail(function(b){b.autosaved||a.find(".notice-error").prop("hidden",!1).text(b.message||f.l10n.unknownRequestFail)}),c=a.find(".customize-notice-take-over-button"),c.on("click",function(b){b.preventDefault(),d||(c.addClass("disabled"),d=wp.ajax.post("customize_override_changeset_lock",{wp_customize:"on",customize_theme:f.settings.theme.stylesheet,customize_changeset_uuid:f.settings.changeset.uuid,nonce:f.settings.nonce.override_lock}),d.done(function(){f.notifications.remove(e.code),f.state("changesetLocked").set(!1)}),d.fail(function(b){var e=b.message||f.l10n.unknownRequestFail;a.find(".notice-error").prop("hidden",!1).text(e),d.always(function(){c.removeClass("disabled")})}),d.always(function(){d=null}))}),a}});f.settings.changeset.lockUser&&a({allowOverride:!0}),b(document).on("heartbeat-send.update_lock_notice",function(a,b){b.check_changeset_lock=!0,b.changeset_uuid=f.settings.changeset.uuid}),b(document).on("heartbeat-tick.update_lock_notice",function(b,c){var d,e="changeset_locked";c.customize_changeset_lock_user&&(d=f.notifications(e),d&&d.lockUser.id!==f.settings.changeset.lockUser.id&&f.notifications.remove(e),a({lockUser:c.customize_changeset_lock_user}))}),f.bind("error",function(b){"changeset_locked"===b.code&&b.lock_user&&a({lockUser:b.lock_user})})}(),function(){function a(){var a,c;return a=document.createElement("a"),a.href=location.href,c=f.utils.parseQueryString(a.search.substr(1)),f.settings.changeset.latestAutoDraftUuid?c.changeset_uuid=f.settings.changeset.latestAutoDraftUuid:c.customize_autosaved="on",c["return"]=f.settings.url["return"],a.search=b.param(c),a.href}function c(a){var c,d=document.createElement("a"),e=0;d.href=location.href,c=f.utils.parseQueryString(d.search.substr(1)),_.each(a,function(a){"undefined"!=typeof c[a]&&(e+=1,delete c[a])}),0!==e&&(d.search=b.param(c),history.replaceState({},document.title,d.href))}function d(){h||(wp.ajax.post("customize_dismiss_autosave_or_lock",{wp_customize:"on",customize_theme:f.settings.theme.stylesheet,customize_changeset_uuid:f.settings.changeset.uuid,nonce:f.settings.nonce.dismiss_autosave_or_lock,dismiss_autosave:!0}),h=!0)}function e(){var b,c="autosave_available";f.notifications.add(new f.Notification(c,{message:f.l10n.autosaveNotice,type:"warning",dismissible:!0,render:function(){var b,c=f.Notification.prototype.render.call(this);return b=c.find("a"),b.prop("href",a()),b.on("click",function(b){b.preventDefault(),location.replace(a())}),c.find(".notice-dismiss").on("click",d),c}})),b=function(){d(),f.notifications.remove(c),f.unbind("change",b),f.state("changesetStatus").unbind(b)},f.bind("change",b),f.state("changesetStatus").bind(b)}var g=[],h=!1;f.settings.changeset.autosaved&&(f.state("saved").set(!1),g.push("customize_autosaved")),f.settings.changeset.branching||f.settings.changeset.status&&"auto-draft"!==f.settings.changeset.status||g.push("changeset_uuid"),g.length>0&&c(g),(f.settings.changeset.latestAutoDraftUuid||f.settings.changeset.hasAutosaveRevision)&&e()}(),f.previewer.previewUrl()?f.previewer.refresh():f.previewer.previewUrl(f.settings.url.home),i.click(function(a){f.previewer.save(),a.preventDefault()}).keydown(function(a){9!==a.which&&(13===a.which&&f.previewer.save(),a.preventDefault())}),h.keydown(function(a){9!==a.which&&(13===a.which&&this.click(),a.preventDefault())}),b(".collapse-sidebar").on("click",function(){f.state("paneVisible").set(!f.state("paneVisible").get())}),f.state("paneVisible").bind(function(a){e.toggleClass("preview-only",!a),e.toggleClass("expanded",a),e.toggleClass("collapsed",!a),a?b(".collapse-sidebar").attr({"aria-expanded":"true","aria-label":f.l10n.collapseSidebar}):b(".collapse-sidebar").attr({"aria-expanded":"false","aria-label":f.l10n.expandSidebar})}),d.on("keydown",function(a){var c,e=[],g=[],h=[];if(27===a.which&&(b(a.target).is("body")||b.contains(b("#customize-controls")[0],a.target))&&(f.control.each(function(a){a.expanded&&a.expanded()&&_.isFunction(a.collapse)&&e.push(a)}),f.section.each(function(a){a.expanded()&&g.push(a)}),f.panel.each(function(a){a.expanded()&&h.push(a)}),e.length>0&&0===g.length&&(e.length=0),c=e[0]||g[0]||h[0])){if("themes"===c.params.type)return void(d.hasClass("modal-open")?c.closeDetails():f.panel.has("themes")&&f.panel("themes").collapse());c.collapse(),a.preventDefault()}}),b(".customize-controls-preview-toggle").on("click",function(){f.state("paneVisible").set(!f.state("paneVisible").get())}),function(){var a,c,d,e,g,h,i,j=b(".wp-full-overlay-sidebar-content");a=function(a){var b,g=a,i=f.state("expandedSection").get(),j=f.state("expandedPanel").get();if(h&&h.element&&(d(h.element),h.element.find(".description").off("toggled",c)),!g)if(!i&&j&&j.contentContainer)g=j;else{if(j||!i||!i.contentContainer)return void(h=!1);g=i}b=g.contentContainer.find(".customize-section-title, .panel-meta").first(),b.length?(h={instance:g,element:b,parent:b.closest(".customize-pane-child"),height:b.outerHeight()},h.element.find(".description").on("toggled",c),i&&e(h.element,h.parent)):h=!1},f.state("expandedSection").bind(a),f.state("expandedPanel").bind(a),j.on("scroll",_.throttle(function(){if(h){var a,b=j.scrollTop();a=i?b===i?0:b>i?1:-1:1,i=b,0!==a&&g(h,b,a)}},8)),f.notifications.bind("sidebarTopUpdated",function(){h&&h.element.hasClass("is-sticky")&&h.element.css("top",j.css("top"))}),d=function(a){a.hasClass("is-sticky")&&a.removeClass("is-sticky").addClass("maybe-sticky is-in-view").css("top",j.scrollTop()+"px")},e=function(a,b){a.hasClass("is-in-view")&&(a.removeClass("maybe-sticky is-in-view").css({width:"",top:""}),b.css("padding-top",""))},c=function(){h.height=h.element.outerHeight()},g=function(a,b,c){var d=a.element,e=a.parent,f=a.height,g=parseInt(d.css("top"),10),h=d.hasClass("maybe-sticky"),i=d.hasClass("is-sticky"),k=d.hasClass("is-in-view"),l=-1===c;if(!l)return i&&(g=b,d.removeClass("is-sticky").css({top:g+"px",width:""})),void(k&&b>g+f&&(d.removeClass("is-in-view"),e.css("padding-top","")));if(!h&&b>=f)h=!0,d.addClass("maybe-sticky");else if(0===b)return d.removeClass("maybe-sticky is-in-view is-sticky").css({top:"",width:""}),void e.css("padding-top","");k&&!i?g>=b&&d.addClass("is-sticky").css({top:j.css("top"),width:e.outerWidth()+"px"}):h&&!k&&(d.addClass("is-in-view").css("top",b-f+"px"),e.css("padding-top",f+"px"))}}(),f.previewedDevice=f.state("previewedDevice"),f.bind("ready",function(){_.find(f.settings.previewableDevices,function(a,b){if(!0===a["default"])return f.previewedDevice.set(b),!0})}),l.find(".devices button").on("click",function(a){f.previewedDevice.set(b(a.currentTarget).data("device"))}),f.previewedDevice.bind(function(a){var c=b(".wp-full-overlay"),d="";l.find(".devices button").removeClass("active").attr("aria-pressed",!1),l.find(".devices .preview-"+a).addClass("active").attr("aria-pressed",!0),b.each(f.settings.previewableDevices,function(a){d+=" preview-"+a}),c.removeClass(d).addClass("preview-"+a)}),g.length&&f("blogname",function(a){var c=function(){g.text(b.trim(a())||f.l10n.untitledBlogName)};a.bind(c),c()}),c=new f.Messenger({url:f.settings.url.parent,channel:"loader"}),function(){function a(){var a;return f.state("activated").get()?(a=f.state("changesetStatus").get(),""!==a&&"auto-draft"!==a||(a="publish"),f.state("selectedChangesetStatus").get()===a&&(("future"!==f.state("selectedChangesetStatus").get()||f.state("selectedChangesetDate").get()===f.state("changesetDate").get())&&(f.state("saved").get()&&"auto-draft"!==f.state("changesetStatus").get()))):0===f._latestRevision}function d(){f.unbind("change",d),f.state("selectedChangesetStatus").unbind(d),f.state("selectedChangesetDate").unbind(d),b(window).on("beforeunload.customize-confirm",function(){if(!a()&&!f.state("changesetLocked").get())return setTimeout(function(){e.removeClass("customize-loading")},1),f.l10n.saveAlert})}function g(){var c=b.Deferred(),d=!1,e=!1;return a()?e=!0:confirm(f.l10n.saveAlert)?(e=!0,f.each(function(a){a._dirty=!1}),b(document).off("visibilitychange.wp-customize-changeset-update"),b(window).off("beforeunload.wp-customize-changeset-update"),h.css("cursor","progress"),""!==f.state("changesetStatus").get()&&(d=!0)):c.reject(),(e||d)&&wp.ajax.send("customize_dismiss_autosave_or_lock",{timeout:500,data:{wp_customize:"on",customize_theme:f.settings.theme.stylesheet,customize_changeset_uuid:f.settings.changeset.uuid,nonce:f.settings.nonce.dismiss_autosave_or_lock,dismiss_autosave:d,dismiss_lock:e}}).always(function(){c.resolve()}),c.promise()}var i=!1;c.bind("back",function(){i=!0}),f.bind("change",d),f.state("selectedChangesetStatus").bind(d),f.state("selectedChangesetDate").bind(d),c.bind("confirm-close",function(){g().done(function(){c.send("confirmed-close",!0)}).fail(function(){c.send("confirmed-close",!1)})}),h.on("click.customize-controls-close",function(a){a.preventDefault(),i?c.send("close"):g().done(function(){b(window).off("beforeunload.customize-confirm"),window.location.href=h.prop("href")})})}(),b.each(["saved","change"],function(a,b){f.bind(b,function(){c.send(b)})}),f.bind("title",function(a){c.send("title",a)}),f.settings.changeset.branching&&c.send("changeset-uuid",f.settings.changeset.uuid),c.send("ready"),b.each({background_image:{controls:["background_preset","background_position","background_size","background_repeat","background_attachment"],callback:function(a){return!!a}},show_on_front:{controls:["page_on_front","page_for_posts"],callback:function(a){return"page"===a}},header_textcolor:{controls:["header_textcolor"],callback:function(a){return"blank"!==a}}},function(a,c){f(a,function(a){b.each(c.controls,function(b,d){f.control(d,function(b){var d=function(a){b.container.toggle(c.callback(a))};d(a.get()),a.bind(d)})})})}),f.control("background_preset",function(a){var b,c,d,e,g,h;b={"default":[!1,!1,!1,!1],fill:[!0,!1,!1,!1],fit:[!0,!1,!0,!1],repeat:[!0,!1,!1,!0],custom:[!0,!0,!0,!0]},c=[_wpCustomizeBackground.defaults["default-position-x"],_wpCustomizeBackground.defaults["default-position-y"],_wpCustomizeBackground.defaults["default-size"],_wpCustomizeBackground.defaults["default-repeat"],_wpCustomizeBackground.defaults["default-attachment"]],d={"default":c,fill:["left","top","cover","no-repeat","fixed"],fit:["left","top","contain","no-repeat","fixed"],repeat:["left","top","auto","repeat","scroll"]},e=function(a){_.each(["background_position","background_size","background_repeat","background_attachment"],function(c,d){var e=f.control(c);e&&e.container.toggle(b[a][d])})},g=function(a){_.each(["background_position_x","background_position_y","background_size","background_repeat","background_attachment"],function(b,c){var e=f(b);e&&e.set(d[a][c])})},h=a.setting.get(),e(h),a.setting.bind("change",function(a){e(a),"custom"!==a&&g(a)})}),f.control("background_repeat",function(a){a.elements[0].unsync(f("background_repeat")),a.element=new f.Element(a.container.find("input")),a.element.set("no-repeat"!==a.setting()),a.element.bind(function(b){a.setting.set(b?"repeat":"no-repeat")}),a.setting.bind(function(b){a.element.set("no-repeat"!==b)})}),f.control("background_attachment",function(a){a.elements[0].unsync(f("background_attachment")),a.element=new f.Element(a.container.find("input")),a.element.set("fixed"!==a.setting()),a.element.bind(function(b){a.setting.set(b?"scroll":"fixed")}),a.setting.bind(function(b){a.element.set("fixed"!==b)})}),f.control("display_header_text",function(a){var b="";a.elements[0].unsync(f("header_textcolor")),a.element=new f.Element(a.container.find("input")),a.element.set("blank"!==a.setting()),a.element.bind(function(c){c||(b=f("header_textcolor").get()),a.setting.set(c?b:"blank")}),a.setting.bind(function(b){a.element.set("blank"!==b)})}),f("show_on_front","page_on_front","page_for_posts",function(a,b,c){var d=function(){var d,e,g=this,h="show_on_front_page_collision";d=parseInt(b(),10),e=parseInt(c(),10),"page"===a()&&(g===b&&d>0&&f.previewer.previewUrl.set(f.settings.url.home),g===c&&e>0&&f.previewer.previewUrl.set(f.settings.url.home+"?page_id="+e)),"page"===a()&&d&&e&&d===e?a.notifications.add(new f.Notification(h,{type:"error",message:f.l10n.pageOnFrontError})):a.notifications.remove(h)};a.bind(d),b.bind(d),c.bind(d),d.call(a,a()),f.control("show_on_front",function(a){a.deferred.embedded.done(function(){a.container.append(a.getNotificationsContainerElement())})})}),function(){var a=b.Deferred();f.section("custom_css",function(b){b.deferred.embedded.done(function(){b.expanded()?a.resolve(b):b.expanded.bind(function(c){c&&a.resolve(b)})})}),a.done(function(a){var b=f.control("custom_css");b.container.find(".customize-control-title:first").addClass("screen-reader-text"),a.container.find(".section-description-buttons .section-description-close").on("click",function(){a.container.find(".section-meta .customize-section-description:first").removeClass("open").slideUp(),a.container.find(".customize-help-toggle").attr("aria-expanded","false").focus()}),b&&!b.setting.get()&&(a.container.find(".section-meta .customize-section-description:first").addClass("open").show().trigger("toggled"),a.container.find(".customize-help-toggle").attr("aria-expanded","true"))})}(),f.control("header_video",function(a){a.deferred.embedded.done(function(){var b=function(){var b=f.section(a.section()),c="video_header_not_available";b&&(a.active.get()?b.notifications.remove(c):b.notifications.add(new f.Notification(c,{type:"info",message:f.l10n.videoHeaderNotice})))};b(),a.active.bind(b)})}),f.previewer.bind("selective-refresh-setting-validities",function(a){f._handleSettingValidities({settingValidities:a,focusInvalidControl:!1})}),f.previewer.bind("focus-control-for-setting",function(a){var b=[];f.control.each(function(c){var d=_.pluck(c.settings,"id");-1!==_.indexOf(d,a)&&b.push(c)}),b.length&&(b.sort(function(a,b){return a.priority()-b.priority()}),b[0].focus())}),f.previewer.bind("refresh",function(){f.previewer.refresh()}),f.state("paneVisible").bind(function(a){var c;c=window.matchMedia?window.matchMedia("screen and ( max-width: 640px )").matches:b(window).width()<=640,f.state("editShortcutVisibility").set(a||c?"visible":"hidden")}),window.matchMedia&&window.matchMedia("screen and ( max-width: 640px )").addListener(function(){var a=f.state("paneVisible");a.callbacks.fireWith(a,[a.get(),a.get()])}),f.previewer.bind("edit-shortcut-visibility",function(a){f.state("editShortcutVisibility").set(a)}),f.state("editShortcutVisibility").bind(function(a){f.previewer.send("edit-shortcut-visibility",a)}),f.bind("change",a),b(document).one("tinymce-editor-setup",function(){window.tinymce.ui.FloatPanel&&(!window.tinymce.ui.FloatPanel.zIndex||window.tinymce.ui.FloatPanel.zIndex<500001)&&(window.tinymce.ui.FloatPanel.zIndex=500001)}),d.addClass("ready"),f.trigger("ready")}})}(wp,jQuery); \ No newline at end of file diff --git a/wp-admin/js/customize-nav-menus.js b/wp-admin/js/customize-nav-menus.js index 081807965..dab5e8940 100644 --- a/wp-admin/js/customize-nav-menus.js +++ b/wp-admin/js/customize-nav-menus.js @@ -723,7 +723,7 @@ $( 'body' ).removeClass( 'adding-menu-items' ); $( '#available-menu-items .menu-item-handle.item-added' ).removeClass( 'item-added' ); - this.$search.val( '' ); + this.$search.val( '' ).trigger( 'keyup' ); }, // Add a few keyboard enhancements to the panel. diff --git a/wp-admin/js/customize-nav-menus.min.js b/wp-admin/js/customize-nav-menus.min.js index f8eaa60f7..6e775c1b9 100644 --- a/wp-admin/js/customize-nav-menus.min.js +++ b/wp-admin/js/customize-nav-menus.min.js @@ -1,2 +1,2 @@ -!function(a,b,c){"use strict";function d(a){return"nav_menu_item["+a+"]"}function e(b){return b=b||"",b=c("<div>").text(b).html(),b=c.trim(b),b||a.Menus.data.l10n.unnamed}wpNavMenu.originalInit=wpNavMenu.init,wpNavMenu.options.menuItemDepthPerLevel=20,wpNavMenu.options.sortableItems="> .customize-control-nav_menu_item",wpNavMenu.options.targetTolerance=10,wpNavMenu.init=function(){this.jQueryExtensions()},a.Menus=a.Menus||{},a.Menus.data={itemTypes:[],l10n:{},settingTransport:"refresh",phpIntMax:0,defaultSettingValues:{nav_menu:{},nav_menu_item:{}},locationSlugMappedToName:{}},"undefined"!=typeof _wpCustomizeNavMenusSettings&&c.extend(a.Menus.data,_wpCustomizeNavMenusSettings),a.Menus.generatePlaceholderAutoIncrementId=function(){return-Math.ceil(a.Menus.data.phpIntMax*Math.random())},a.Menus.AvailableItemModel=Backbone.Model.extend(c.extend({id:null},a.Menus.data.defaultSettingValues.nav_menu_item)),a.Menus.AvailableItemCollection=Backbone.Collection.extend({model:a.Menus.AvailableItemModel,sort_key:"order",comparator:function(a){return-a.get(this.sort_key)},sortByField:function(a){this.sort_key=a,this.sort()}}),a.Menus.availableMenuItems=new a.Menus.AvailableItemCollection(a.Menus.data.availableMenuItems),a.Menus.insertAutoDraftPost=function(d){var e,f=c.Deferred();return e=b.ajax.post("customize-nav-menus-insert-auto-draft",{"customize-menus-nonce":a.settings.nonce["customize-menus"],wp_customize:"on",customize_changeset_uuid:a.settings.changeset.uuid,params:d}),e.done(function(b){b.post_id&&(a("nav_menus_created_posts").set(a("nav_menus_created_posts").get().concat([b.post_id])),"page"===d.post_type&&(a.section.has("static_front_page")&&a.section("static_front_page").activate(),a.control.each(function(a){var c;"dropdown-pages"===a.params.type&&(c=a.container.find('select[name^="_customize-dropdown-pages-"]'),c.append(new Option(d.post_title,b.post_id)))})),f.resolve(b))}),e.fail(function(a){var b=a||"";"undefined"!=typeof a.message&&(b=a.message),console.error(b),f.rejectWith(b)}),f.promise()},a.Menus.AvailableMenuItemsPanelView=b.Backbone.View.extend({el:"#available-menu-items",events:{"input #menu-items-search":"debounceSearch","keyup #menu-items-search":"debounceSearch","focus .menu-item-tpl":"focus","click .menu-item-tpl":"_submit","click #custom-menu-item-submit":"_submitLink","keypress #custom-menu-item-name":"_submitLink","click .new-content-item .add-content":"_submitNew","keypress .create-item-input":"_submitNew",keydown:"keyboardAccessible"},selected:null,currentMenuControl:null,debounceSearch:null,$search:null,$clearResults:null,searchTerm:"",rendered:!1,pages:{},sectionContent:"",loading:!1,addingNew:!1,initialize:function(){var b=this;a.panel.has("nav_menus")&&(this.$search=c("#menu-items-search"),this.$clearResults=this.$el.find(".clear-results"),this.sectionContent=this.$el.find(".available-menu-items-list"),this.debounceSearch=_.debounce(b.search,500),_.bindAll(this,"close"),c("#customize-controls, .customize-section-back").on("click keydown",function(a){var d=c(a.target).is(".item-delete, .item-delete *"),e=c(a.target).is(".add-new-menu-item, .add-new-menu-item *");!c("body").hasClass("adding-menu-items")||d||e||b.close()}),this.$clearResults.on("click",function(){b.$search.val("").focus().trigger("keyup")}),this.$el.on("input","#custom-menu-item-name.invalid, #custom-menu-item-url.invalid",function(){c(this).removeClass("invalid")}),a.panel("nav_menus").container.bind("expanded",function(){b.rendered||(b.initList(),b.rendered=!0)}),this.sectionContent.scroll(function(){var a=b.$el.find(".accordion-section.open .available-menu-items-list").prop("scrollHeight"),d=b.$el.find(".accordion-section.open").height();if(!b.loading&&c(this).scrollTop()>.75*a-d){var e=c(this).data("type"),f=c(this).data("object");"search"===e?b.searchTerm&&b.doSearch(b.pages.search):b.loadItems([{type:e,object:f}])}}),a.previewer.bind("url",this.close),b.delegateEvents())},search:function(a){var b=c("#available-menu-items-search"),d=c("#available-menu-items .accordion-section").not(b);a&&this.searchTerm!==a.target.value&&(""===a.target.value||b.hasClass("open")?""===a.target.value&&(b.removeClass("open"),d.show(),this.$clearResults.removeClass("is-visible")):(d.fadeOut(100),b.find(".accordion-section-content").slideDown("fast"),b.addClass("open"),this.$clearResults.addClass("is-visible")),this.searchTerm=a.target.value,this.pages.search=1,this.doSearch(1))},doSearch:function(d){var e,f=this,g=c("#available-menu-items-search"),h=g.find(".accordion-section-content"),i=b.template("available-menu-item");if(f.currentRequest&&f.currentRequest.abort(),!(d<0)){if(d>1)g.addClass("loading-more"),h.attr("aria-busy","true"),b.a11y.speak(a.Menus.data.l10n.itemsLoadingMore);else if(""===f.searchTerm)return h.html(""),void b.a11y.speak("");g.addClass("loading"),f.loading=!0,e=a.previewer.query({excludeCustomizedSaved:!0}),_.extend(e,{"customize-menus-nonce":a.settings.nonce["customize-menus"],wp_customize:"on",search:f.searchTerm,page:d}),f.currentRequest=b.ajax.post("search-available-menu-items-customizer",e),f.currentRequest.done(function(c){var e;1===d&&h.empty(),g.removeClass("loading loading-more"),h.attr("aria-busy","false"),g.addClass("open"),f.loading=!1,e=new a.Menus.AvailableItemCollection(c.items),f.collection.add(e.models),e.each(function(a){h.append(i(a.attributes))}),20>e.length?f.pages.search=-1:f.pages.search=f.pages.search+1,e&&d>1?b.a11y.speak(a.Menus.data.l10n.itemsFoundMore.replace("%d",e.length)):e&&1===d&&b.a11y.speak(a.Menus.data.l10n.itemsFound.replace("%d",e.length))}),f.currentRequest.fail(function(a){a.message&&(h.empty().append(c('<li class="nothing-found"></li>').text(a.message)),b.a11y.speak(a.message)),f.pages.search=-1}),f.currentRequest.always(function(){g.removeClass("loading loading-more"),h.attr("aria-busy","false"),f.loading=!1,f.currentRequest=null})}},initList:function(){var b=this;_.each(a.Menus.data.itemTypes,function(a){b.pages[a.type+":"+a.object]=0}),b.loadItems(a.Menus.data.itemTypes)},loadItems:function(d,e){var f,g,h,i,j=this,k=[],l={};i=b.template("available-menu-item"),f=_.isString(d)&&_.isString(e)?[{type:d,object:e}]:d,_.each(f,function(a){var b,d=a.type+":"+a.object;-1!==j.pages[d]&&(b=c("#available-menu-items-"+a.type+"-"+a.object),b.find(".accordion-section-title").addClass("loading"),l[d]=b,k.push({object:a.object,type:a.type,page:j.pages[d]}))}),0!==k.length&&(j.loading=!0,g=a.previewer.query({excludeCustomizedSaved:!0}),_.extend(g,{"customize-menus-nonce":a.settings.nonce["customize-menus"],wp_customize:"on",item_types:k}),h=b.ajax.post("load-available-menu-items-customizer",g),h.done(function(b){var c;_.each(b.items,function(b,d){return 0===b.length?(0===j.pages[d]&&l[d].find(".accordion-section-title").addClass("cannot-expand").removeClass("loading").find(".accordion-section-title > button").prop("tabIndex",-1),void(j.pages[d]=-1)):("post_type:page"!==d||l[d].hasClass("open")||l[d].find(".accordion-section-title > button").click(),b=new a.Menus.AvailableItemCollection(b),j.collection.add(b.models),c=l[d].find(".available-menu-items-list"),b.each(function(a){c.append(i(a.attributes))}),void(j.pages[d]+=1))})}),h.fail(function(a){"undefined"!=typeof console&&console.error&&console.error(a)}),h.always(function(){_.each(l,function(a){a.find(".accordion-section-title").removeClass("loading")}),j.loading=!1}))},itemSectionHeight:function(){var a,b,c,d,e;c=window.innerHeight,a=this.$el.find(".accordion-section:not( #available-menu-items-search ) .accordion-section-content"),b=this.$el.find('.accordion-section:not( #available-menu-items-search ) .available-menu-items-list:not(":only-child")'),d=46*(1+a.length)+14,e=c-d,120<e&&290>e&&(a.css("max-height",e),b.css("max-height",e-60))},select:function(a){this.selected=c(a),this.selected.siblings(".menu-item-tpl").removeClass("selected"),this.selected.addClass("selected")},focus:function(a){this.select(c(a.currentTarget))},_submit:function(a){"keypress"===a.type&&13!==a.which&&32!==a.which||this.submit(c(a.currentTarget))},submit:function(a){var b,d;a||(a=this.selected),a&&this.currentMenuControl&&(this.select(a),b=c(this.selected).data("menu-item-id"),d=this.collection.findWhere({id:b}),d&&(this.currentMenuControl.addItemToMenu(d.attributes),c(a).find(".menu-item-handle").addClass("item-added")))},_submitLink:function(a){"keypress"===a.type&&13!==a.which||this.submitLink()},submitLink:function(){var b,d,e=c("#custom-menu-item-name"),f=c("#custom-menu-item-url");if(this.currentMenuControl){if(d=/^((\w+:)?\/\/\w.*|\w+:(?!\/\/$)|\/|\?|#)/,""===e.val())return void e.addClass("invalid");if(!d.test(f.val()))return void f.addClass("invalid");b={title:e.val(),url:f.val(),type:"custom",type_label:a.Menus.data.l10n.custom_label,object:"custom"},this.currentMenuControl.addItemToMenu(b),f.val("http://"),e.val("")}},_submitNew:function(a){var b;"keypress"===a.type&&13!==a.which||this.addingNew||(b=c(a.target).closest(".accordion-section"),this.submitNew(b))},submitNew:function(d){var e,f=this,g=d.find(".create-item-input"),h=g.val(),i=d.find(".available-menu-items-list"),j=i.data("type"),k=i.data("object"),l=i.data("type_label");if(this.currentMenuControl&&"post_type"===j){if(""===c.trim(g.val()))return g.addClass("invalid"),void g.focus();g.removeClass("invalid"),d.find(".accordion-section-title").addClass("loading"),f.addingNew=!0,g.attr("disabled","disabled"),e=a.Menus.insertAutoDraftPost({post_title:h,post_type:k}),e.done(function(e){var h,i,m;h=new a.Menus.AvailableItemModel({id:"post-"+e.post_id,title:g.val(),type:j,type_label:l,object:k,object_id:e.post_id,url:e.url}),f.currentMenuControl.addItemToMenu(h.attributes),a.Menus.availableMenuItemsPanel.collection.add(h),i=d.find(".available-menu-items-list"),m=c(b.template("available-menu-item")(h.attributes)),m.find(".menu-item-handle:first").addClass("item-added"),i.prepend(m),i.scrollTop(),g.val("").removeAttr("disabled"),f.addingNew=!1,d.find(".accordion-section-title").removeClass("loading")})}},open:function(b){var d,e=this;this.currentMenuControl=b,this.itemSectionHeight(),a.section.has("publish_settings")&&a.section("publish_settings").collapse(),c("body").addClass("adding-menu-items"),d=function(){e.close(),c(this).off("click",d)},c("#customize-preview").on("click",d),_(this.currentMenuControl.getMenuItemControls()).each(function(a){a.collapseForm()}),this.$el.find(".selected").removeClass("selected"),this.$search.focus()},close:function(a){a=a||{},a.returnFocus&&this.currentMenuControl&&this.currentMenuControl.container.find(".add-new-menu-item").focus(),this.currentMenuControl=null,this.selected=null,c("body").removeClass("adding-menu-items"),c("#available-menu-items .menu-item-handle.item-added").removeClass("item-added"),this.$search.val("")},keyboardAccessible:function(a){var b=13===a.which,d=27===a.which,e=9===a.which&&a.shiftKey,f=c(a.target).is(this.$search);b&&!this.$search.val()||(f&&e?(this.currentMenuControl.container.find(".add-new-menu-item").focus(),a.preventDefault()):d&&this.close({returnFocus:!0}))}}),a.Menus.MenusPanel=a.Panel.extend({attachEvents:function(){a.Panel.prototype.attachEvents.call(this);var b=this,d=b.container.find(".panel-meta"),e=d.find(".customize-help-toggle"),f=d.find(".customize-panel-description"),g=c("#screen-options-wrap"),h=d.find(".customize-screen-options-toggle");h.on("click keydown",function(b){if(!a.utils.isKeydownButNotEnterEvent(b))return b.preventDefault(),f.not(":hidden")&&(f.slideUp("fast"),e.attr("aria-expanded","false")),"true"===h.attr("aria-expanded")?(h.attr("aria-expanded","false"),d.removeClass("open"),d.removeClass("active-menu-screen-options"),g.slideUp("fast")):(h.attr("aria-expanded","true"),d.addClass("open"),d.addClass("active-menu-screen-options"),g.slideDown("fast")),!1}),e.on("click keydown",function(b){a.utils.isKeydownButNotEnterEvent(b)||(b.preventDefault(),"true"===h.attr("aria-expanded")&&(h.attr("aria-expanded","false"),e.attr("aria-expanded","true"),d.addClass("open"),d.removeClass("active-menu-screen-options"),g.slideUp("fast"),f.slideDown("fast")))})},ready:function(){var c=this;c.container.find(".hide-column-tog").click(function(){c.saveManageColumnsState()}),a.section("menu_locations",function(c){c.headContainer.prepend(b.template("nav-menu-locations-header")(a.Menus.data))})},saveManageColumnsState:_.debounce(function(){var a=this;a._updateHiddenColumnsRequest&&a._updateHiddenColumnsRequest.abort(),a._updateHiddenColumnsRequest=b.ajax.post("hidden-columns",{hidden:a.hidden(),screenoptionnonce:c("#screenoptionnonce").val(),page:"nav-menus"}),a._updateHiddenColumnsRequest.always(function(){a._updateHiddenColumnsRequest=null})},2e3),checked:function(){},unchecked:function(){},hidden:function(){return c(".hide-column-tog").not(":checked").map(function(){var a=this.id;return a.substring(0,a.length-5)}).get().join(",")}}),a.Menus.MenuSection=a.Section.extend({initialize:function(b,d){var e=this;a.Section.prototype.initialize.call(e,b,d),e.deferred.initSortables=c.Deferred()},ready:function(){var b,d,e=this;if("undefined"==typeof e.params.menu_id)throw new Error("params.menu_id was not defined");e.active.validate=function(){return!!a.has(e.id)&&!!a(e.id).get()},e.populateControls(),e.navMenuLocationSettings={},e.assignedLocations=new a.Value([]),a.each(function(a,b){var c=b.match(/^nav_menu_locations\[(.+?)]/);c&&(e.navMenuLocationSettings[c[1]]=a,a.bind(function(){e.refreshAssignedLocations()}))}),e.assignedLocations.bind(function(a){e.updateAssignedLocationsInSectionTitle(a)}),e.refreshAssignedLocations(),a.bind("pane-contents-reflowed",function(){e.contentContainer.parent().length&&(e.container.find(".menu-item .menu-item-reorder-nav button").attr({tabindex:"0","aria-hidden":"false"}),e.container.find(".menu-item.move-up-disabled .menus-move-up").attr({tabindex:"-1","aria-hidden":"true"}),e.container.find(".menu-item.move-down-disabled .menus-move-down").attr({tabindex:"-1","aria-hidden":"true"}),e.container.find(".menu-item.move-left-disabled .menus-move-left").attr({tabindex:"-1","aria-hidden":"true"}),e.container.find(".menu-item.move-right-disabled .menus-move-right").attr({tabindex:"-1","aria-hidden":"true"}))}),d=function(){var a="field-"+c(this).val()+"-active";e.contentContainer.toggleClass(a,c(this).prop("checked"))},b=a.panel("nav_menus").contentContainer.find(".metabox-prefs:first").find(".hide-column-tog"),b.each(d),b.on("click",d)},populateControls:function(){var b,c,d,e,f,g,h,i,j,k=this;b=k.id+"[name]",g=a.control(b),g||(g=new a.controlConstructor.nav_menu_name(b,{type:"nav_menu_name",label:a.Menus.data.l10n.menuNameLabel,section:k.id,priority:0,settings:{"default":k.id}}),a.control.add(g),g.active.set(!0)),f=a.control(k.id),f||(f=new a.controlConstructor.nav_menu(k.id,{type:"nav_menu",section:k.id,priority:998,settings:{"default":k.id},menu_id:k.params.menu_id}),a.control.add(f),f.active.set(!0)),c=k.id+"[locations]",h=a.control(c),h||(h=new a.controlConstructor.nav_menu_locations(c,{section:k.id,priority:999,settings:{"default":k.id},menu_id:k.params.menu_id}),a.control.add(h.id,h),f.active.set(!0)),d=k.id+"[auto_add]",i=a.control(d),i||(i=new a.controlConstructor.nav_menu_auto_add(d,{type:"nav_menu_auto_add",label:"",section:k.id,priority:1e3,settings:{"default":k.id}}),a.control.add(i),i.active.set(!0)),e=k.id+"[delete]",j=a.control(e),j||(j=new a.Control(e,{section:k.id,priority:1001,templateId:"nav-menu-delete-button"}),a.control.add(j.id,j),j.active.set(!0),j.deferred.embedded.done(function(){j.container.find("button").on("click",function(){var b=k.params.menu_id,c=a.Menus.getMenuControl(b);c.setting.set(!1)})}))},refreshAssignedLocations:function(){var a=this,b=a.params.menu_id,c=[];_.each(a.navMenuLocationSettings,function(a,d){a()===b&&c.push(d)}),a.assignedLocations.set(c)},updateAssignedLocationsInSectionTitle:function(b){var d,e=this;d=e.container.find(".accordion-section-title:first"),d.find(".menu-in-location").remove(),_.each(b,function(b){var e,f;e=c('<span class="menu-in-location"></span>'),f=a.Menus.data.locationSlugMappedToName[b],e.text(a.Menus.data.l10n.menuLocation.replace("%s",f)),d.append(e)}),e.container.toggleClass("assigned-to-menu-location",0!==b.length)},onChangeExpanded:function(b,d){var e,f=this;b&&(wpNavMenu.menuList=f.contentContainer,wpNavMenu.targetList=wpNavMenu.menuList,c("#menu-to-edit").removeAttr("id"),wpNavMenu.menuList.attr("id","menu-to-edit").addClass("menu"),_.each(a.section(f.id).controls(),function(a){"nav_menu_item"===a.params.type&&a.actuallyEmbed()}),d.completeCallback&&(e=d.completeCallback),d.completeCallback=function(){"resolved"!==f.deferred.initSortables.state()&&(wpNavMenu.initSortables(),f.deferred.initSortables.resolve(wpNavMenu.menuList),a.control("nav_menu["+String(f.params.menu_id)+"]").reflowMenuItems()),_.isFunction(e)&&e()}),a.Section.prototype.onChangeExpanded.call(f,b,d)},highlightNewItemButton:function(){a.utils.highlightButton(this.contentContainer.find(".add-new-menu-item"),{delay:2e3})}}),a.Menus.createNavMenu=function(b){var d,f,g;return f=a.Menus.generatePlaceholderAutoIncrementId(),d="nav_menu["+String(f)+"]",g=a.create(d,d,{},{type:"nav_menu",transport:a.Menus.data.settingTransport,previewer:a.previewer}),g.set(c.extend({},a.Menus.data.defaultSettingValues.nav_menu,{name:b||""})),a.section.add(new a.Menus.MenuSection(d,{panel:"nav_menus",title:e(b),customizeAction:a.Menus.data.l10n.customizingMenus,priority:10,menu_id:f}))},a.Menus.NewMenuSection=a.Section.extend({attachEvents:function(){function c(){var b=0;return a.each(function(a){j.test(a.id)&&!1!==a.get()&&(b+=1)}),b}function d(){h.find(".add-new-menu-notice").prop("hidden",c()>0)}function e(a){j.test(a.id)&&(a.bind(d),d())}function f(a){j.test(a.id)&&(a.unbind(d),d())}var g=this,h=g.container,i=g.contentContainer,j=/^nav_menu\[/;g.headContainer.find(".accordion-section-title").replaceWith(b.template("nav-menu-create-menu-section-title")),h.on("click",".customize-add-menu-button",function(){g.expand()}),i.on("keydown",".menu-name-field",function(a){13===a.which&&g.submit()}),i.on("click","#customize-new-menu-submit",function(a){g.submit(),a.stopPropagation(),a.preventDefault()}),a.each(e),a.bind("add",e),a.bind("removed",f),d(),a.Section.prototype.attachEvents.apply(g,arguments)},ready:function(){this.populateControls()},populateControls:function(){var b,c,d,e,f,g,h=this;b=h.id+"[name]",e=a.control(b),e||(e=new a.controlConstructor.nav_menu_name(b,{label:a.Menus.data.l10n.menuNameLabel,description:a.Menus.data.l10n.newMenuNameDescription,section:h.id,priority:0}),a.control.add(e.id,e),e.active.set(!0)),c=h.id+"[locations]",f=a.control(c),f||(f=new a.controlConstructor.nav_menu_locations(c,{section:h.id,priority:1,menu_id:"",isCreating:!0}),a.control.add(c,f),f.active.set(!0)),d=h.id+"[submit]",g=a.control(d),g||(g=new a.Control(d,{section:h.id,priority:1,templateId:"nav-menu-submit-new-button"}),a.control.add(d,g),g.active.set(!0))},submit:function(){var d,e=this,f=e.contentContainer,g=f.find(".menu-name-field").first(),h=g.val();return h?(d=a.Menus.createNavMenu(h),g.val(""),g.removeClass("invalid"),f.find(".assigned-menu-location input[type=checkbox]").each(function(){var b,e=c(this);e.prop("checked")&&(b=a("nav_menu_locations["+e.data("location-id")+"]"),b.set(d.params.menu_id),e.prop("checked",!1))}),b.a11y.speak(a.Menus.data.l10n.menuAdded),void d.focus({completeCallback:function(){d.highlightNewItemButton()}})):(g.addClass("invalid"),void g.focus())},selectDefaultLocation:function(b){var c=a.control(this.id+"[locations]"),d={};null!==b&&(d[b]=!0),c.setSelections(d)}}),a.Menus.MenuLocationControl=a.Control.extend({initialize:function(b,c){var d=this,e=b.match(/^nav_menu_locations\[(.+?)]/);d.themeLocation=e[1],a.Control.prototype.initialize.call(d,b,c)},ready:function(){var b=this,c=/^nav_menu\[(-?\d+)]/;b.setting.validate=function(a){return""===a?0:parseInt(a,10)},b.container.find(".create-menu").on("click",function(){var b=a.section("add_menu");b.selectDefaultLocation(this.dataset.locationId),b.focus()}),b.container.find(".edit-menu").on("click",function(){var c=b.setting();a.section("nav_menu["+c+"]").focus()}),b.setting.bind("change",function(){var a=0!==b.setting();b.container.find(".create-menu").toggleClass("hidden",a),b.container.find(".edit-menu").toggleClass("hidden",!a)}),a.bind("add",function(a){var d,f,g=a.id.match(c);g&&!1!==a()&&(f=g[1],d=new Option(e(a().name),f),b.container.find("select").append(d))}),a.bind("remove",function(a){var d,e=a.id.match(c);e&&(d=parseInt(e[1],10),b.setting()===d&&b.setting.set(""),b.container.find("option[value="+d+"]").remove())}),a.bind("change",function(a){var d,f=a.id.match(c);f&&(d=parseInt(f[1],10),!1===a()?(b.setting()===d&&b.setting.set(""),b.container.find("option[value="+d+"]").remove()):b.container.find("option[value="+d+"]").text(e(a().name)))})}}),a.Menus.MenuItemControl=a.Control.extend({initialize:function(b,d){var e=this;e.expanded=new a.Value(!1),e.expandedArgumentsQueue=[],e.expanded.bind(function(a){var b=e.expandedArgumentsQueue.shift();b=c.extend({},e.defaultExpandedArguments,b),e.onChangeExpanded(a,b)}),a.Control.prototype.initialize.call(e,b,d),e.active.validate=function(){var b,c=a.section(e.section());return b=!!c&&c.active()}},embed:function(){var b,c=this,d=c.section();d&&(b=a.section(d),(b&&b.expanded()||a.settings.autofocus.control===c.id)&&c.actuallyEmbed())},actuallyEmbed:function(){var a=this;"resolved"!==a.deferred.embedded.state()&&(a.renderContent(),a.deferred.embedded.resolve())},ready:function(){if("undefined"==typeof this.params.menu_item_id)throw new Error("params.menu_item_id was not defined");this._setupControlToggle(),this._setupReorderUI(),this._setupUpdateUI(),this._setupRemoveUI(),this._setupLinksUI(),this._setupTitleUI()},_setupControlToggle:function(){var b=this;this.container.find(".menu-item-handle").on("click",function(d){d.preventDefault(),d.stopPropagation();var e=b.getMenuControl(),f=c(d.target).is(".item-delete, .item-delete *"),g=c(d.target).is(".add-new-menu-item, .add-new-menu-item *");!c("body").hasClass("adding-menu-items")||f||g||a.Menus.availableMenuItemsPanel.close(),e.isReordering||e.isSorting||b.toggleForm()})},_setupReorderUI:function(){var a,d,e=this;a=b.template("menu-item-reorder-nav"),e.container.find(".item-controls").after(a),d=e.container.find(".menu-item-reorder-nav"),d.find(".menus-move-up, .menus-move-down, .menus-move-left, .menus-move-right").on("click",function(){var a=c(this);a.focus();var b=a.is(".menus-move-up"),d=a.is(".menus-move-down"),f=a.is(".menus-move-left"),g=a.is(".menus-move-right");b?e.moveUp():d?e.moveDown():f?e.moveLeft():g&&e.moveRight(),a.focus()})},_setupUpdateUI:function(){var b,c=this,d=c.setting();c.elements={},c.elements.url=new a.Element(c.container.find(".edit-menu-item-url")),c.elements.title=new a.Element(c.container.find(".edit-menu-item-title")),c.elements.attr_title=new a.Element(c.container.find(".edit-menu-item-attr-title")),c.elements.target=new a.Element(c.container.find(".edit-menu-item-target")),c.elements.classes=new a.Element(c.container.find(".edit-menu-item-classes")),c.elements.xfn=new a.Element(c.container.find(".edit-menu-item-xfn")),c.elements.description=new a.Element(c.container.find(".edit-menu-item-description")),_.each(c.elements,function(a,b){a.bind(function(d){a.element.is("input[type=checkbox]")&&(d=d?a.element.val():"");var e=c.setting();e&&e[b]!==d&&(e=_.clone(e),e[b]=d,c.setting.set(e))}),d&&("classes"!==b&&"xfn"!==b||!_.isArray(d[b])?a.set(d[b]):a.set(d[b].join(" ")))}),c.setting.bind(function(b,d){var e,f=c.params.menu_item_id,g=[],h=[];!1===b?(e=a.control("nav_menu["+String(d.nav_menu_term_id)+"]"),c.container.remove(),_.each(e.getMenuItemControls(),function(a){d.menu_item_parent===a.setting().menu_item_parent&&a.setting().position>d.position?g.push(a):a.setting().menu_item_parent===f&&h.push(a)}),_.each(g,function(a){var b=_.clone(a.setting());b.position+=h.length,a.setting.set(b)}),_.each(h,function(a,b){var c=_.clone(a.setting());c.position=d.position+b,c.menu_item_parent=d.menu_item_parent,a.setting.set(c)}),e.debouncedReflowMenuItems()):(_.each(b,function(a,d){c.elements[d]&&c.elements[d].set(b[d])}),c.container.find(".menu-item-data-parent-id").val(b.menu_item_parent),b.position===d.position&&b.menu_item_parent===d.menu_item_parent||c.getMenuControl().debouncedReflowMenuItems())}),b=function(){c.elements.url.element.toggleClass("invalid",c.setting.notifications.has("invalid_url"))},c.setting.notifications.bind("add",b),c.setting.notifications.bind("removed",b)},_setupRemoveUI:function(){var d,e=this;d=e.container.find(".item-delete"),d.on("click",function(){var d,f,g,h=!0;c("body").hasClass("adding-menu-items")||(h=!1),f=e.container.nextAll(".customize-control-nav_menu_item:visible").first(),g=e.container.prevAll(".customize-control-nav_menu_item:visible").first(),d=f.length?f.find(!1===h?".item-edit":".item-delete").first():g.length?g.find(!1===h?".item-edit":".item-delete").first():e.container.nextAll(".customize-control-nav_menu").find(".add-new-menu-item").first(),e.container.slideUp(function(){e.setting.set(!1),b.a11y.speak(a.Menus.data.l10n.itemDeleted),d.focus()}),e.setting.set(!1)})},_setupLinksUI:function(){var b;b=this.container.find("a.original-link"),b.on("click",function(b){b.preventDefault(),a.previewer.previewUrl(b.target.toString())})},_setupTitleUI:function(){var b,d=this;d.container.find(".edit-menu-item-title").on("blur",function(){c(this).val(c.trim(c(this).val()))}),b=d.container.find(".menu-item-title"),d.setting.bind(function(d){var e,f;d&&(e=c.trim(d.title),f=e||d.original_title||a.Menus.data.l10n.untitled,d._invalid&&(f=a.Menus.data.l10n.invalidTitleTpl.replace("%s",f)),e||d.original_title?b.text(f).removeClass("no-title"):b.text(f).addClass("no-title"))})},getDepth:function(){var b=this,c=b.setting(),d=0;if(!c)return 0;for(;c&&c.menu_item_parent&&(d+=1,b=a.control("nav_menu_item["+c.menu_item_parent+"]"));)c=b.setting();return d},renderContent:function(){var b,c=this,d=c.setting();c.params.title=d.title||"",c.params.depth=c.getDepth(),c.container.data("item-depth",c.params.depth),b=["menu-item","menu-item-depth-"+String(c.params.depth),"menu-item-"+d.object,"menu-item-edit-inactive"],d._invalid?(b.push("menu-item-invalid"),c.params.title=a.Menus.data.l10n.invalidTitleTpl.replace("%s",c.params.title)):"draft"===d.status&&(b.push("pending"),c.params.title=a.Menus.data.pendingTitleTpl.replace("%s",c.params.title)),c.params.el_classes=b.join(" "),c.params.item_type_label=d.type_label,c.params.item_type=d.type,c.params.url=d.url,c.params.target=d.target,c.params.attr_title=d.attr_title,c.params.classes=_.isArray(d.classes)?d.classes.join(" "):d.classes,c.params.attr_title=d.attr_title,c.params.xfn=d.xfn,c.params.description=d.description,c.params.parent=d.menu_item_parent,c.params.original_title=d.original_title||"",c.container.addClass(c.params.el_classes),a.Control.prototype.renderContent.call(c)},getMenuControl:function(){var b=this,c=b.setting();return c&&c.nav_menu_term_id?a.control("nav_menu["+c.nav_menu_term_id+"]"):null},expandControlSection:function(){var a=this.container.closest(".accordion-section");a.hasClass("open")||a.find(".accordion-section-title:first").trigger("click")},_toggleExpanded:a.Section.prototype._toggleExpanded,expand:a.Section.prototype.expand,expandForm:function(a){this.expand(a)},collapse:a.Section.prototype.collapse,collapseForm:function(a){this.collapse(a)},toggleForm:function(a,b){"undefined"==typeof a&&(a=!this.expanded()),a?this.expand(b):this.collapse(b)},onChangeExpanded:function(b,c){var d,e,f,g=this;return d=this.container,e=d.find(".menu-item-settings:first"),"undefined"==typeof b&&(b=!e.is(":visible")),e.is(":visible")===b?void(c&&c.completeCallback&&c.completeCallback()):void(b?(a.control.each(function(a){g.params.type===a.params.type&&g!==a&&a.collapseForm()}),f=function(){d.removeClass("menu-item-edit-inactive").addClass("menu-item-edit-active"),g.container.trigger("expanded"),c&&c.completeCallback&&c.completeCallback()},d.find(".item-edit").attr("aria-expanded","true"),e.slideDown("fast",f),g.container.trigger("expand")):(f=function(){d.addClass("menu-item-edit-inactive").removeClass("menu-item-edit-active"),g.container.trigger("collapsed"),c&&c.completeCallback&&c.completeCallback()},g.container.trigger("collapse"),d.find(".item-edit").attr("aria-expanded","false"),e.slideUp("fast",f)))},focus:function(b){b=b||{};var c,d=this,e=b.completeCallback;c=function(){d.expandControlSection(),b.completeCallback=function(){var a;a=d.container.find(".menu-item-settings").find("input, select, textarea, button, object, a[href], [tabindex]").filter(":visible"),a.first().focus(),e&&e()},d.expandForm(b)},a.section.has(d.section())?a.section(d.section()).expand({completeCallback:c}):c()},moveUp:function(){this._changePosition(-1),b.a11y.speak(a.Menus.data.l10n.movedUp)},moveDown:function(){this._changePosition(1),b.a11y.speak(a.Menus.data.l10n.movedDown)},moveLeft:function(){this._changeDepth(-1),b.a11y.speak(a.Menus.data.l10n.movedLeft)},moveRight:function(){this._changeDepth(1),b.a11y.speak(a.Menus.data.l10n.movedRight)},_changePosition:function(a){var b,d,e=this,f=_.clone(e.setting()),g=[];if(1!==a&&-1!==a)throw new Error("Offset changes by 1 are only supported.");if(e.setting()){if(_(e.getMenuControl().getMenuItemControls()).each(function(a){a.setting().menu_item_parent===f.menu_item_parent&&g.push(a.setting)}),g.sort(function(a,b){return a().position-b().position}),d=_.indexOf(g,e.setting),-1===d)throw new Error("Expected setting to be among siblings.");0===d&&a<0||d===g.length-1&&a>0||(b=g[d+a],b&&b.set(c.extend(_.clone(b()),{position:f.position})),f.position+=a,e.setting.set(f))}},_changeDepth:function(b){if(1!==b&&-1!==b)throw new Error("Offset changes by 1 are only supported.");var d,e,f,g=this,h=_.clone(g.setting()),i=[];if(_(g.getMenuControl().getMenuItemControls()).each(function(a){a.setting().menu_item_parent===h.menu_item_parent&&i.push(a)}),i.sort(function(a,b){return a.setting().position-b.setting().position}),d=_.indexOf(i,g),-1===d)throw new Error("Expected control to be among siblings.");if(-1===b){if(!h.menu_item_parent)return;f=a.control("nav_menu_item["+h.menu_item_parent+"]"),_(i).chain().slice(d).each(function(a,b){a.setting.set(c.extend({},a.setting(),{menu_item_parent:g.params.menu_item_id,position:b}))}),_(g.getMenuControl().getMenuItemControls()).each(function(a){var b,d;d=a.setting().menu_item_parent===f.setting().menu_item_parent&&a.setting().position>f.setting().position,d&&(b=_.clone(a.setting()),a.setting.set(c.extend(b,{position:b.position+1})))}),h.position=f.setting().position+1,h.menu_item_parent=f.setting().menu_item_parent,g.setting.set(h)}else if(1===b){if(0===d)return;e=i[d-1],h.menu_item_parent=e.params.menu_item_id,h.position=0,_(g.getMenuControl().getMenuItemControls()).each(function(a){a.setting().menu_item_parent===h.menu_item_parent&&(h.position=Math.max(h.position,a.setting().position))}),h.position+=1,g.setting.set(h)}}}),a.Menus.MenuNameControl=a.Control.extend({ready:function(){var b=this;if(b.setting){var c=b.setting();b.nameElement=new a.Element(b.container.find(".menu-name-field")),b.nameElement.bind(function(a){var c=b.setting();c&&c.name!==a&&(c=_.clone(c),c.name=a,b.setting.set(c))}),c&&b.nameElement.set(c.name),b.setting.bind(function(a){a&&b.nameElement.set(a.name)})}}}),a.Menus.MenuLocationsControl=a.Control.extend({ready:function(){var b=this;b.container.find(".assigned-menu-location").each(function(){var d=c(this),f=d.find("input[type=checkbox]"),g=new a.Element(f),h=a("nav_menu_locations["+f.data("location-id")+"]"),i=""===b.params.menu_id,j=i?_.noop:function(a){g.set(a)},k=i?_.noop:function(a){h.set(a?b.params.menu_id:0)},l=function(b){var c=a("nav_menu["+String(b)+"]");b&&c&&c()?d.find(".theme-location-set").show().find("span").text(e(c().name)):d.find(".theme-location-set").hide()};j(h.get()===b.params.menu_id),f.on("change",function(){ +!function(a,b,c){"use strict";function d(a){return"nav_menu_item["+a+"]"}function e(b){return b=b||"",b=c("<div>").text(b).html(),b=c.trim(b),b||a.Menus.data.l10n.unnamed}wpNavMenu.originalInit=wpNavMenu.init,wpNavMenu.options.menuItemDepthPerLevel=20,wpNavMenu.options.sortableItems="> .customize-control-nav_menu_item",wpNavMenu.options.targetTolerance=10,wpNavMenu.init=function(){this.jQueryExtensions()},a.Menus=a.Menus||{},a.Menus.data={itemTypes:[],l10n:{},settingTransport:"refresh",phpIntMax:0,defaultSettingValues:{nav_menu:{},nav_menu_item:{}},locationSlugMappedToName:{}},"undefined"!=typeof _wpCustomizeNavMenusSettings&&c.extend(a.Menus.data,_wpCustomizeNavMenusSettings),a.Menus.generatePlaceholderAutoIncrementId=function(){return-Math.ceil(a.Menus.data.phpIntMax*Math.random())},a.Menus.AvailableItemModel=Backbone.Model.extend(c.extend({id:null},a.Menus.data.defaultSettingValues.nav_menu_item)),a.Menus.AvailableItemCollection=Backbone.Collection.extend({model:a.Menus.AvailableItemModel,sort_key:"order",comparator:function(a){return-a.get(this.sort_key)},sortByField:function(a){this.sort_key=a,this.sort()}}),a.Menus.availableMenuItems=new a.Menus.AvailableItemCollection(a.Menus.data.availableMenuItems),a.Menus.insertAutoDraftPost=function(d){var e,f=c.Deferred();return e=b.ajax.post("customize-nav-menus-insert-auto-draft",{"customize-menus-nonce":a.settings.nonce["customize-menus"],wp_customize:"on",customize_changeset_uuid:a.settings.changeset.uuid,params:d}),e.done(function(b){b.post_id&&(a("nav_menus_created_posts").set(a("nav_menus_created_posts").get().concat([b.post_id])),"page"===d.post_type&&(a.section.has("static_front_page")&&a.section("static_front_page").activate(),a.control.each(function(a){var c;"dropdown-pages"===a.params.type&&(c=a.container.find('select[name^="_customize-dropdown-pages-"]'),c.append(new Option(d.post_title,b.post_id)))})),f.resolve(b))}),e.fail(function(a){var b=a||"";"undefined"!=typeof a.message&&(b=a.message),console.error(b),f.rejectWith(b)}),f.promise()},a.Menus.AvailableMenuItemsPanelView=b.Backbone.View.extend({el:"#available-menu-items",events:{"input #menu-items-search":"debounceSearch","keyup #menu-items-search":"debounceSearch","focus .menu-item-tpl":"focus","click .menu-item-tpl":"_submit","click #custom-menu-item-submit":"_submitLink","keypress #custom-menu-item-name":"_submitLink","click .new-content-item .add-content":"_submitNew","keypress .create-item-input":"_submitNew",keydown:"keyboardAccessible"},selected:null,currentMenuControl:null,debounceSearch:null,$search:null,$clearResults:null,searchTerm:"",rendered:!1,pages:{},sectionContent:"",loading:!1,addingNew:!1,initialize:function(){var b=this;a.panel.has("nav_menus")&&(this.$search=c("#menu-items-search"),this.$clearResults=this.$el.find(".clear-results"),this.sectionContent=this.$el.find(".available-menu-items-list"),this.debounceSearch=_.debounce(b.search,500),_.bindAll(this,"close"),c("#customize-controls, .customize-section-back").on("click keydown",function(a){var d=c(a.target).is(".item-delete, .item-delete *"),e=c(a.target).is(".add-new-menu-item, .add-new-menu-item *");!c("body").hasClass("adding-menu-items")||d||e||b.close()}),this.$clearResults.on("click",function(){b.$search.val("").focus().trigger("keyup")}),this.$el.on("input","#custom-menu-item-name.invalid, #custom-menu-item-url.invalid",function(){c(this).removeClass("invalid")}),a.panel("nav_menus").container.bind("expanded",function(){b.rendered||(b.initList(),b.rendered=!0)}),this.sectionContent.scroll(function(){var a=b.$el.find(".accordion-section.open .available-menu-items-list").prop("scrollHeight"),d=b.$el.find(".accordion-section.open").height();if(!b.loading&&c(this).scrollTop()>.75*a-d){var e=c(this).data("type"),f=c(this).data("object");"search"===e?b.searchTerm&&b.doSearch(b.pages.search):b.loadItems([{type:e,object:f}])}}),a.previewer.bind("url",this.close),b.delegateEvents())},search:function(a){var b=c("#available-menu-items-search"),d=c("#available-menu-items .accordion-section").not(b);a&&this.searchTerm!==a.target.value&&(""===a.target.value||b.hasClass("open")?""===a.target.value&&(b.removeClass("open"),d.show(),this.$clearResults.removeClass("is-visible")):(d.fadeOut(100),b.find(".accordion-section-content").slideDown("fast"),b.addClass("open"),this.$clearResults.addClass("is-visible")),this.searchTerm=a.target.value,this.pages.search=1,this.doSearch(1))},doSearch:function(d){var e,f=this,g=c("#available-menu-items-search"),h=g.find(".accordion-section-content"),i=b.template("available-menu-item");if(f.currentRequest&&f.currentRequest.abort(),!(d<0)){if(d>1)g.addClass("loading-more"),h.attr("aria-busy","true"),b.a11y.speak(a.Menus.data.l10n.itemsLoadingMore);else if(""===f.searchTerm)return h.html(""),void b.a11y.speak("");g.addClass("loading"),f.loading=!0,e=a.previewer.query({excludeCustomizedSaved:!0}),_.extend(e,{"customize-menus-nonce":a.settings.nonce["customize-menus"],wp_customize:"on",search:f.searchTerm,page:d}),f.currentRequest=b.ajax.post("search-available-menu-items-customizer",e),f.currentRequest.done(function(c){var e;1===d&&h.empty(),g.removeClass("loading loading-more"),h.attr("aria-busy","false"),g.addClass("open"),f.loading=!1,e=new a.Menus.AvailableItemCollection(c.items),f.collection.add(e.models),e.each(function(a){h.append(i(a.attributes))}),20>e.length?f.pages.search=-1:f.pages.search=f.pages.search+1,e&&d>1?b.a11y.speak(a.Menus.data.l10n.itemsFoundMore.replace("%d",e.length)):e&&1===d&&b.a11y.speak(a.Menus.data.l10n.itemsFound.replace("%d",e.length))}),f.currentRequest.fail(function(a){a.message&&(h.empty().append(c('<li class="nothing-found"></li>').text(a.message)),b.a11y.speak(a.message)),f.pages.search=-1}),f.currentRequest.always(function(){g.removeClass("loading loading-more"),h.attr("aria-busy","false"),f.loading=!1,f.currentRequest=null})}},initList:function(){var b=this;_.each(a.Menus.data.itemTypes,function(a){b.pages[a.type+":"+a.object]=0}),b.loadItems(a.Menus.data.itemTypes)},loadItems:function(d,e){var f,g,h,i,j=this,k=[],l={};i=b.template("available-menu-item"),f=_.isString(d)&&_.isString(e)?[{type:d,object:e}]:d,_.each(f,function(a){var b,d=a.type+":"+a.object;-1!==j.pages[d]&&(b=c("#available-menu-items-"+a.type+"-"+a.object),b.find(".accordion-section-title").addClass("loading"),l[d]=b,k.push({object:a.object,type:a.type,page:j.pages[d]}))}),0!==k.length&&(j.loading=!0,g=a.previewer.query({excludeCustomizedSaved:!0}),_.extend(g,{"customize-menus-nonce":a.settings.nonce["customize-menus"],wp_customize:"on",item_types:k}),h=b.ajax.post("load-available-menu-items-customizer",g),h.done(function(b){var c;_.each(b.items,function(b,d){return 0===b.length?(0===j.pages[d]&&l[d].find(".accordion-section-title").addClass("cannot-expand").removeClass("loading").find(".accordion-section-title > button").prop("tabIndex",-1),void(j.pages[d]=-1)):("post_type:page"!==d||l[d].hasClass("open")||l[d].find(".accordion-section-title > button").click(),b=new a.Menus.AvailableItemCollection(b),j.collection.add(b.models),c=l[d].find(".available-menu-items-list"),b.each(function(a){c.append(i(a.attributes))}),void(j.pages[d]+=1))})}),h.fail(function(a){"undefined"!=typeof console&&console.error&&console.error(a)}),h.always(function(){_.each(l,function(a){a.find(".accordion-section-title").removeClass("loading")}),j.loading=!1}))},itemSectionHeight:function(){var a,b,c,d,e;c=window.innerHeight,a=this.$el.find(".accordion-section:not( #available-menu-items-search ) .accordion-section-content"),b=this.$el.find('.accordion-section:not( #available-menu-items-search ) .available-menu-items-list:not(":only-child")'),d=46*(1+a.length)+14,e=c-d,120<e&&290>e&&(a.css("max-height",e),b.css("max-height",e-60))},select:function(a){this.selected=c(a),this.selected.siblings(".menu-item-tpl").removeClass("selected"),this.selected.addClass("selected")},focus:function(a){this.select(c(a.currentTarget))},_submit:function(a){"keypress"===a.type&&13!==a.which&&32!==a.which||this.submit(c(a.currentTarget))},submit:function(a){var b,d;a||(a=this.selected),a&&this.currentMenuControl&&(this.select(a),b=c(this.selected).data("menu-item-id"),d=this.collection.findWhere({id:b}),d&&(this.currentMenuControl.addItemToMenu(d.attributes),c(a).find(".menu-item-handle").addClass("item-added")))},_submitLink:function(a){"keypress"===a.type&&13!==a.which||this.submitLink()},submitLink:function(){var b,d,e=c("#custom-menu-item-name"),f=c("#custom-menu-item-url");if(this.currentMenuControl){if(d=/^((\w+:)?\/\/\w.*|\w+:(?!\/\/$)|\/|\?|#)/,""===e.val())return void e.addClass("invalid");if(!d.test(f.val()))return void f.addClass("invalid");b={title:e.val(),url:f.val(),type:"custom",type_label:a.Menus.data.l10n.custom_label,object:"custom"},this.currentMenuControl.addItemToMenu(b),f.val("http://"),e.val("")}},_submitNew:function(a){var b;"keypress"===a.type&&13!==a.which||this.addingNew||(b=c(a.target).closest(".accordion-section"),this.submitNew(b))},submitNew:function(d){var e,f=this,g=d.find(".create-item-input"),h=g.val(),i=d.find(".available-menu-items-list"),j=i.data("type"),k=i.data("object"),l=i.data("type_label");if(this.currentMenuControl&&"post_type"===j){if(""===c.trim(g.val()))return g.addClass("invalid"),void g.focus();g.removeClass("invalid"),d.find(".accordion-section-title").addClass("loading"),f.addingNew=!0,g.attr("disabled","disabled"),e=a.Menus.insertAutoDraftPost({post_title:h,post_type:k}),e.done(function(e){var h,i,m;h=new a.Menus.AvailableItemModel({id:"post-"+e.post_id,title:g.val(),type:j,type_label:l,object:k,object_id:e.post_id,url:e.url}),f.currentMenuControl.addItemToMenu(h.attributes),a.Menus.availableMenuItemsPanel.collection.add(h),i=d.find(".available-menu-items-list"),m=c(b.template("available-menu-item")(h.attributes)),m.find(".menu-item-handle:first").addClass("item-added"),i.prepend(m),i.scrollTop(),g.val("").removeAttr("disabled"),f.addingNew=!1,d.find(".accordion-section-title").removeClass("loading")})}},open:function(b){var d,e=this;this.currentMenuControl=b,this.itemSectionHeight(),a.section.has("publish_settings")&&a.section("publish_settings").collapse(),c("body").addClass("adding-menu-items"),d=function(){e.close(),c(this).off("click",d)},c("#customize-preview").on("click",d),_(this.currentMenuControl.getMenuItemControls()).each(function(a){a.collapseForm()}),this.$el.find(".selected").removeClass("selected"),this.$search.focus()},close:function(a){a=a||{},a.returnFocus&&this.currentMenuControl&&this.currentMenuControl.container.find(".add-new-menu-item").focus(),this.currentMenuControl=null,this.selected=null,c("body").removeClass("adding-menu-items"),c("#available-menu-items .menu-item-handle.item-added").removeClass("item-added"),this.$search.val("").trigger("keyup")},keyboardAccessible:function(a){var b=13===a.which,d=27===a.which,e=9===a.which&&a.shiftKey,f=c(a.target).is(this.$search);b&&!this.$search.val()||(f&&e?(this.currentMenuControl.container.find(".add-new-menu-item").focus(),a.preventDefault()):d&&this.close({returnFocus:!0}))}}),a.Menus.MenusPanel=a.Panel.extend({attachEvents:function(){a.Panel.prototype.attachEvents.call(this);var b=this,d=b.container.find(".panel-meta"),e=d.find(".customize-help-toggle"),f=d.find(".customize-panel-description"),g=c("#screen-options-wrap"),h=d.find(".customize-screen-options-toggle");h.on("click keydown",function(b){if(!a.utils.isKeydownButNotEnterEvent(b))return b.preventDefault(),f.not(":hidden")&&(f.slideUp("fast"),e.attr("aria-expanded","false")),"true"===h.attr("aria-expanded")?(h.attr("aria-expanded","false"),d.removeClass("open"),d.removeClass("active-menu-screen-options"),g.slideUp("fast")):(h.attr("aria-expanded","true"),d.addClass("open"),d.addClass("active-menu-screen-options"),g.slideDown("fast")),!1}),e.on("click keydown",function(b){a.utils.isKeydownButNotEnterEvent(b)||(b.preventDefault(),"true"===h.attr("aria-expanded")&&(h.attr("aria-expanded","false"),e.attr("aria-expanded","true"),d.addClass("open"),d.removeClass("active-menu-screen-options"),g.slideUp("fast"),f.slideDown("fast")))})},ready:function(){var c=this;c.container.find(".hide-column-tog").click(function(){c.saveManageColumnsState()}),a.section("menu_locations",function(c){c.headContainer.prepend(b.template("nav-menu-locations-header")(a.Menus.data))})},saveManageColumnsState:_.debounce(function(){var a=this;a._updateHiddenColumnsRequest&&a._updateHiddenColumnsRequest.abort(),a._updateHiddenColumnsRequest=b.ajax.post("hidden-columns",{hidden:a.hidden(),screenoptionnonce:c("#screenoptionnonce").val(),page:"nav-menus"}),a._updateHiddenColumnsRequest.always(function(){a._updateHiddenColumnsRequest=null})},2e3),checked:function(){},unchecked:function(){},hidden:function(){return c(".hide-column-tog").not(":checked").map(function(){var a=this.id;return a.substring(0,a.length-5)}).get().join(",")}}),a.Menus.MenuSection=a.Section.extend({initialize:function(b,d){var e=this;a.Section.prototype.initialize.call(e,b,d),e.deferred.initSortables=c.Deferred()},ready:function(){var b,d,e=this;if("undefined"==typeof e.params.menu_id)throw new Error("params.menu_id was not defined");e.active.validate=function(){return!!a.has(e.id)&&!!a(e.id).get()},e.populateControls(),e.navMenuLocationSettings={},e.assignedLocations=new a.Value([]),a.each(function(a,b){var c=b.match(/^nav_menu_locations\[(.+?)]/);c&&(e.navMenuLocationSettings[c[1]]=a,a.bind(function(){e.refreshAssignedLocations()}))}),e.assignedLocations.bind(function(a){e.updateAssignedLocationsInSectionTitle(a)}),e.refreshAssignedLocations(),a.bind("pane-contents-reflowed",function(){e.contentContainer.parent().length&&(e.container.find(".menu-item .menu-item-reorder-nav button").attr({tabindex:"0","aria-hidden":"false"}),e.container.find(".menu-item.move-up-disabled .menus-move-up").attr({tabindex:"-1","aria-hidden":"true"}),e.container.find(".menu-item.move-down-disabled .menus-move-down").attr({tabindex:"-1","aria-hidden":"true"}),e.container.find(".menu-item.move-left-disabled .menus-move-left").attr({tabindex:"-1","aria-hidden":"true"}),e.container.find(".menu-item.move-right-disabled .menus-move-right").attr({tabindex:"-1","aria-hidden":"true"}))}),d=function(){var a="field-"+c(this).val()+"-active";e.contentContainer.toggleClass(a,c(this).prop("checked"))},b=a.panel("nav_menus").contentContainer.find(".metabox-prefs:first").find(".hide-column-tog"),b.each(d),b.on("click",d)},populateControls:function(){var b,c,d,e,f,g,h,i,j,k=this;b=k.id+"[name]",g=a.control(b),g||(g=new a.controlConstructor.nav_menu_name(b,{type:"nav_menu_name",label:a.Menus.data.l10n.menuNameLabel,section:k.id,priority:0,settings:{"default":k.id}}),a.control.add(g),g.active.set(!0)),f=a.control(k.id),f||(f=new a.controlConstructor.nav_menu(k.id,{type:"nav_menu",section:k.id,priority:998,settings:{"default":k.id},menu_id:k.params.menu_id}),a.control.add(f),f.active.set(!0)),c=k.id+"[locations]",h=a.control(c),h||(h=new a.controlConstructor.nav_menu_locations(c,{section:k.id,priority:999,settings:{"default":k.id},menu_id:k.params.menu_id}),a.control.add(h.id,h),f.active.set(!0)),d=k.id+"[auto_add]",i=a.control(d),i||(i=new a.controlConstructor.nav_menu_auto_add(d,{type:"nav_menu_auto_add",label:"",section:k.id,priority:1e3,settings:{"default":k.id}}),a.control.add(i),i.active.set(!0)),e=k.id+"[delete]",j=a.control(e),j||(j=new a.Control(e,{section:k.id,priority:1001,templateId:"nav-menu-delete-button"}),a.control.add(j.id,j),j.active.set(!0),j.deferred.embedded.done(function(){j.container.find("button").on("click",function(){var b=k.params.menu_id,c=a.Menus.getMenuControl(b);c.setting.set(!1)})}))},refreshAssignedLocations:function(){var a=this,b=a.params.menu_id,c=[];_.each(a.navMenuLocationSettings,function(a,d){a()===b&&c.push(d)}),a.assignedLocations.set(c)},updateAssignedLocationsInSectionTitle:function(b){var d,e=this;d=e.container.find(".accordion-section-title:first"),d.find(".menu-in-location").remove(),_.each(b,function(b){var e,f;e=c('<span class="menu-in-location"></span>'),f=a.Menus.data.locationSlugMappedToName[b],e.text(a.Menus.data.l10n.menuLocation.replace("%s",f)),d.append(e)}),e.container.toggleClass("assigned-to-menu-location",0!==b.length)},onChangeExpanded:function(b,d){var e,f=this;b&&(wpNavMenu.menuList=f.contentContainer,wpNavMenu.targetList=wpNavMenu.menuList,c("#menu-to-edit").removeAttr("id"),wpNavMenu.menuList.attr("id","menu-to-edit").addClass("menu"),_.each(a.section(f.id).controls(),function(a){"nav_menu_item"===a.params.type&&a.actuallyEmbed()}),d.completeCallback&&(e=d.completeCallback),d.completeCallback=function(){"resolved"!==f.deferred.initSortables.state()&&(wpNavMenu.initSortables(),f.deferred.initSortables.resolve(wpNavMenu.menuList),a.control("nav_menu["+String(f.params.menu_id)+"]").reflowMenuItems()),_.isFunction(e)&&e()}),a.Section.prototype.onChangeExpanded.call(f,b,d)},highlightNewItemButton:function(){a.utils.highlightButton(this.contentContainer.find(".add-new-menu-item"),{delay:2e3})}}),a.Menus.createNavMenu=function(b){var d,f,g;return f=a.Menus.generatePlaceholderAutoIncrementId(),d="nav_menu["+String(f)+"]",g=a.create(d,d,{},{type:"nav_menu",transport:a.Menus.data.settingTransport,previewer:a.previewer}),g.set(c.extend({},a.Menus.data.defaultSettingValues.nav_menu,{name:b||""})),a.section.add(new a.Menus.MenuSection(d,{panel:"nav_menus",title:e(b),customizeAction:a.Menus.data.l10n.customizingMenus,priority:10,menu_id:f}))},a.Menus.NewMenuSection=a.Section.extend({attachEvents:function(){function c(){var b=0;return a.each(function(a){j.test(a.id)&&!1!==a.get()&&(b+=1)}),b}function d(){h.find(".add-new-menu-notice").prop("hidden",c()>0)}function e(a){j.test(a.id)&&(a.bind(d),d())}function f(a){j.test(a.id)&&(a.unbind(d),d())}var g=this,h=g.container,i=g.contentContainer,j=/^nav_menu\[/;g.headContainer.find(".accordion-section-title").replaceWith(b.template("nav-menu-create-menu-section-title")),h.on("click",".customize-add-menu-button",function(){g.expand()}),i.on("keydown",".menu-name-field",function(a){13===a.which&&g.submit()}),i.on("click","#customize-new-menu-submit",function(a){g.submit(),a.stopPropagation(),a.preventDefault()}),a.each(e),a.bind("add",e),a.bind("removed",f),d(),a.Section.prototype.attachEvents.apply(g,arguments)},ready:function(){this.populateControls()},populateControls:function(){var b,c,d,e,f,g,h=this;b=h.id+"[name]",e=a.control(b),e||(e=new a.controlConstructor.nav_menu_name(b,{label:a.Menus.data.l10n.menuNameLabel,description:a.Menus.data.l10n.newMenuNameDescription,section:h.id,priority:0}),a.control.add(e.id,e),e.active.set(!0)),c=h.id+"[locations]",f=a.control(c),f||(f=new a.controlConstructor.nav_menu_locations(c,{section:h.id,priority:1,menu_id:"",isCreating:!0}),a.control.add(c,f),f.active.set(!0)),d=h.id+"[submit]",g=a.control(d),g||(g=new a.Control(d,{section:h.id,priority:1,templateId:"nav-menu-submit-new-button"}),a.control.add(d,g),g.active.set(!0))},submit:function(){var d,e=this,f=e.contentContainer,g=f.find(".menu-name-field").first(),h=g.val();return h?(d=a.Menus.createNavMenu(h),g.val(""),g.removeClass("invalid"),f.find(".assigned-menu-location input[type=checkbox]").each(function(){var b,e=c(this);e.prop("checked")&&(b=a("nav_menu_locations["+e.data("location-id")+"]"),b.set(d.params.menu_id),e.prop("checked",!1))}),b.a11y.speak(a.Menus.data.l10n.menuAdded),void d.focus({completeCallback:function(){d.highlightNewItemButton()}})):(g.addClass("invalid"),void g.focus())},selectDefaultLocation:function(b){var c=a.control(this.id+"[locations]"),d={};null!==b&&(d[b]=!0),c.setSelections(d)}}),a.Menus.MenuLocationControl=a.Control.extend({initialize:function(b,c){var d=this,e=b.match(/^nav_menu_locations\[(.+?)]/);d.themeLocation=e[1],a.Control.prototype.initialize.call(d,b,c)},ready:function(){var b=this,c=/^nav_menu\[(-?\d+)]/;b.setting.validate=function(a){return""===a?0:parseInt(a,10)},b.container.find(".create-menu").on("click",function(){var b=a.section("add_menu");b.selectDefaultLocation(this.dataset.locationId),b.focus()}),b.container.find(".edit-menu").on("click",function(){var c=b.setting();a.section("nav_menu["+c+"]").focus()}),b.setting.bind("change",function(){var a=0!==b.setting();b.container.find(".create-menu").toggleClass("hidden",a),b.container.find(".edit-menu").toggleClass("hidden",!a)}),a.bind("add",function(a){var d,f,g=a.id.match(c);g&&!1!==a()&&(f=g[1],d=new Option(e(a().name),f),b.container.find("select").append(d))}),a.bind("remove",function(a){var d,e=a.id.match(c);e&&(d=parseInt(e[1],10),b.setting()===d&&b.setting.set(""),b.container.find("option[value="+d+"]").remove())}),a.bind("change",function(a){var d,f=a.id.match(c);f&&(d=parseInt(f[1],10),!1===a()?(b.setting()===d&&b.setting.set(""),b.container.find("option[value="+d+"]").remove()):b.container.find("option[value="+d+"]").text(e(a().name)))})}}),a.Menus.MenuItemControl=a.Control.extend({initialize:function(b,d){var e=this;e.expanded=new a.Value(!1),e.expandedArgumentsQueue=[],e.expanded.bind(function(a){var b=e.expandedArgumentsQueue.shift();b=c.extend({},e.defaultExpandedArguments,b),e.onChangeExpanded(a,b)}),a.Control.prototype.initialize.call(e,b,d),e.active.validate=function(){var b,c=a.section(e.section());return b=!!c&&c.active()}},embed:function(){var b,c=this,d=c.section();d&&(b=a.section(d),(b&&b.expanded()||a.settings.autofocus.control===c.id)&&c.actuallyEmbed())},actuallyEmbed:function(){var a=this;"resolved"!==a.deferred.embedded.state()&&(a.renderContent(),a.deferred.embedded.resolve())},ready:function(){if("undefined"==typeof this.params.menu_item_id)throw new Error("params.menu_item_id was not defined");this._setupControlToggle(),this._setupReorderUI(),this._setupUpdateUI(),this._setupRemoveUI(),this._setupLinksUI(),this._setupTitleUI()},_setupControlToggle:function(){var b=this;this.container.find(".menu-item-handle").on("click",function(d){d.preventDefault(),d.stopPropagation();var e=b.getMenuControl(),f=c(d.target).is(".item-delete, .item-delete *"),g=c(d.target).is(".add-new-menu-item, .add-new-menu-item *");!c("body").hasClass("adding-menu-items")||f||g||a.Menus.availableMenuItemsPanel.close(),e.isReordering||e.isSorting||b.toggleForm()})},_setupReorderUI:function(){var a,d,e=this;a=b.template("menu-item-reorder-nav"),e.container.find(".item-controls").after(a),d=e.container.find(".menu-item-reorder-nav"),d.find(".menus-move-up, .menus-move-down, .menus-move-left, .menus-move-right").on("click",function(){var a=c(this);a.focus();var b=a.is(".menus-move-up"),d=a.is(".menus-move-down"),f=a.is(".menus-move-left"),g=a.is(".menus-move-right");b?e.moveUp():d?e.moveDown():f?e.moveLeft():g&&e.moveRight(),a.focus()})},_setupUpdateUI:function(){var b,c=this,d=c.setting();c.elements={},c.elements.url=new a.Element(c.container.find(".edit-menu-item-url")),c.elements.title=new a.Element(c.container.find(".edit-menu-item-title")),c.elements.attr_title=new a.Element(c.container.find(".edit-menu-item-attr-title")),c.elements.target=new a.Element(c.container.find(".edit-menu-item-target")),c.elements.classes=new a.Element(c.container.find(".edit-menu-item-classes")),c.elements.xfn=new a.Element(c.container.find(".edit-menu-item-xfn")),c.elements.description=new a.Element(c.container.find(".edit-menu-item-description")),_.each(c.elements,function(a,b){a.bind(function(d){a.element.is("input[type=checkbox]")&&(d=d?a.element.val():"");var e=c.setting();e&&e[b]!==d&&(e=_.clone(e),e[b]=d,c.setting.set(e))}),d&&("classes"!==b&&"xfn"!==b||!_.isArray(d[b])?a.set(d[b]):a.set(d[b].join(" ")))}),c.setting.bind(function(b,d){var e,f=c.params.menu_item_id,g=[],h=[];!1===b?(e=a.control("nav_menu["+String(d.nav_menu_term_id)+"]"),c.container.remove(),_.each(e.getMenuItemControls(),function(a){d.menu_item_parent===a.setting().menu_item_parent&&a.setting().position>d.position?g.push(a):a.setting().menu_item_parent===f&&h.push(a)}),_.each(g,function(a){var b=_.clone(a.setting());b.position+=h.length,a.setting.set(b)}),_.each(h,function(a,b){var c=_.clone(a.setting());c.position=d.position+b,c.menu_item_parent=d.menu_item_parent,a.setting.set(c)}),e.debouncedReflowMenuItems()):(_.each(b,function(a,d){c.elements[d]&&c.elements[d].set(b[d])}),c.container.find(".menu-item-data-parent-id").val(b.menu_item_parent),b.position===d.position&&b.menu_item_parent===d.menu_item_parent||c.getMenuControl().debouncedReflowMenuItems())}),b=function(){c.elements.url.element.toggleClass("invalid",c.setting.notifications.has("invalid_url"))},c.setting.notifications.bind("add",b),c.setting.notifications.bind("removed",b)},_setupRemoveUI:function(){var d,e=this;d=e.container.find(".item-delete"),d.on("click",function(){var d,f,g,h=!0;c("body").hasClass("adding-menu-items")||(h=!1),f=e.container.nextAll(".customize-control-nav_menu_item:visible").first(),g=e.container.prevAll(".customize-control-nav_menu_item:visible").first(),d=f.length?f.find(!1===h?".item-edit":".item-delete").first():g.length?g.find(!1===h?".item-edit":".item-delete").first():e.container.nextAll(".customize-control-nav_menu").find(".add-new-menu-item").first(),e.container.slideUp(function(){e.setting.set(!1),b.a11y.speak(a.Menus.data.l10n.itemDeleted),d.focus()}),e.setting.set(!1)})},_setupLinksUI:function(){var b;b=this.container.find("a.original-link"),b.on("click",function(b){b.preventDefault(),a.previewer.previewUrl(b.target.toString())})},_setupTitleUI:function(){var b,d=this;d.container.find(".edit-menu-item-title").on("blur",function(){c(this).val(c.trim(c(this).val()))}),b=d.container.find(".menu-item-title"),d.setting.bind(function(d){var e,f;d&&(e=c.trim(d.title),f=e||d.original_title||a.Menus.data.l10n.untitled,d._invalid&&(f=a.Menus.data.l10n.invalidTitleTpl.replace("%s",f)),e||d.original_title?b.text(f).removeClass("no-title"):b.text(f).addClass("no-title"))})},getDepth:function(){var b=this,c=b.setting(),d=0;if(!c)return 0;for(;c&&c.menu_item_parent&&(d+=1,b=a.control("nav_menu_item["+c.menu_item_parent+"]"));)c=b.setting();return d},renderContent:function(){var b,c=this,d=c.setting();c.params.title=d.title||"",c.params.depth=c.getDepth(),c.container.data("item-depth",c.params.depth),b=["menu-item","menu-item-depth-"+String(c.params.depth),"menu-item-"+d.object,"menu-item-edit-inactive"],d._invalid?(b.push("menu-item-invalid"),c.params.title=a.Menus.data.l10n.invalidTitleTpl.replace("%s",c.params.title)):"draft"===d.status&&(b.push("pending"),c.params.title=a.Menus.data.pendingTitleTpl.replace("%s",c.params.title)),c.params.el_classes=b.join(" "),c.params.item_type_label=d.type_label,c.params.item_type=d.type,c.params.url=d.url,c.params.target=d.target,c.params.attr_title=d.attr_title,c.params.classes=_.isArray(d.classes)?d.classes.join(" "):d.classes,c.params.attr_title=d.attr_title,c.params.xfn=d.xfn,c.params.description=d.description,c.params.parent=d.menu_item_parent,c.params.original_title=d.original_title||"",c.container.addClass(c.params.el_classes),a.Control.prototype.renderContent.call(c)},getMenuControl:function(){var b=this,c=b.setting();return c&&c.nav_menu_term_id?a.control("nav_menu["+c.nav_menu_term_id+"]"):null},expandControlSection:function(){var a=this.container.closest(".accordion-section");a.hasClass("open")||a.find(".accordion-section-title:first").trigger("click")},_toggleExpanded:a.Section.prototype._toggleExpanded,expand:a.Section.prototype.expand,expandForm:function(a){this.expand(a)},collapse:a.Section.prototype.collapse,collapseForm:function(a){this.collapse(a)},toggleForm:function(a,b){"undefined"==typeof a&&(a=!this.expanded()),a?this.expand(b):this.collapse(b)},onChangeExpanded:function(b,c){var d,e,f,g=this;return d=this.container,e=d.find(".menu-item-settings:first"),"undefined"==typeof b&&(b=!e.is(":visible")),e.is(":visible")===b?void(c&&c.completeCallback&&c.completeCallback()):void(b?(a.control.each(function(a){g.params.type===a.params.type&&g!==a&&a.collapseForm()}),f=function(){d.removeClass("menu-item-edit-inactive").addClass("menu-item-edit-active"),g.container.trigger("expanded"),c&&c.completeCallback&&c.completeCallback()},d.find(".item-edit").attr("aria-expanded","true"),e.slideDown("fast",f),g.container.trigger("expand")):(f=function(){d.addClass("menu-item-edit-inactive").removeClass("menu-item-edit-active"),g.container.trigger("collapsed"),c&&c.completeCallback&&c.completeCallback()},g.container.trigger("collapse"),d.find(".item-edit").attr("aria-expanded","false"),e.slideUp("fast",f)))},focus:function(b){b=b||{};var c,d=this,e=b.completeCallback;c=function(){d.expandControlSection(),b.completeCallback=function(){var a;a=d.container.find(".menu-item-settings").find("input, select, textarea, button, object, a[href], [tabindex]").filter(":visible"),a.first().focus(),e&&e()},d.expandForm(b)},a.section.has(d.section())?a.section(d.section()).expand({completeCallback:c}):c()},moveUp:function(){this._changePosition(-1),b.a11y.speak(a.Menus.data.l10n.movedUp)},moveDown:function(){this._changePosition(1),b.a11y.speak(a.Menus.data.l10n.movedDown)},moveLeft:function(){this._changeDepth(-1),b.a11y.speak(a.Menus.data.l10n.movedLeft)},moveRight:function(){this._changeDepth(1),b.a11y.speak(a.Menus.data.l10n.movedRight)},_changePosition:function(a){var b,d,e=this,f=_.clone(e.setting()),g=[];if(1!==a&&-1!==a)throw new Error("Offset changes by 1 are only supported.");if(e.setting()){if(_(e.getMenuControl().getMenuItemControls()).each(function(a){a.setting().menu_item_parent===f.menu_item_parent&&g.push(a.setting)}),g.sort(function(a,b){return a().position-b().position}),d=_.indexOf(g,e.setting),-1===d)throw new Error("Expected setting to be among siblings.");0===d&&a<0||d===g.length-1&&a>0||(b=g[d+a],b&&b.set(c.extend(_.clone(b()),{position:f.position})),f.position+=a,e.setting.set(f))}},_changeDepth:function(b){if(1!==b&&-1!==b)throw new Error("Offset changes by 1 are only supported.");var d,e,f,g=this,h=_.clone(g.setting()),i=[];if(_(g.getMenuControl().getMenuItemControls()).each(function(a){a.setting().menu_item_parent===h.menu_item_parent&&i.push(a)}),i.sort(function(a,b){return a.setting().position-b.setting().position}),d=_.indexOf(i,g),-1===d)throw new Error("Expected control to be among siblings.");if(-1===b){if(!h.menu_item_parent)return;f=a.control("nav_menu_item["+h.menu_item_parent+"]"),_(i).chain().slice(d).each(function(a,b){a.setting.set(c.extend({},a.setting(),{menu_item_parent:g.params.menu_item_id,position:b}))}),_(g.getMenuControl().getMenuItemControls()).each(function(a){var b,d;d=a.setting().menu_item_parent===f.setting().menu_item_parent&&a.setting().position>f.setting().position,d&&(b=_.clone(a.setting()),a.setting.set(c.extend(b,{position:b.position+1})))}),h.position=f.setting().position+1,h.menu_item_parent=f.setting().menu_item_parent,g.setting.set(h)}else if(1===b){if(0===d)return;e=i[d-1],h.menu_item_parent=e.params.menu_item_id,h.position=0,_(g.getMenuControl().getMenuItemControls()).each(function(a){a.setting().menu_item_parent===h.menu_item_parent&&(h.position=Math.max(h.position,a.setting().position))}),h.position+=1,g.setting.set(h)}}}),a.Menus.MenuNameControl=a.Control.extend({ready:function(){var b=this;if(b.setting){var c=b.setting();b.nameElement=new a.Element(b.container.find(".menu-name-field")),b.nameElement.bind(function(a){var c=b.setting();c&&c.name!==a&&(c=_.clone(c),c.name=a,b.setting.set(c))}),c&&b.nameElement.set(c.name),b.setting.bind(function(a){a&&b.nameElement.set(a.name)})}}}),a.Menus.MenuLocationsControl=a.Control.extend({ready:function(){var b=this;b.container.find(".assigned-menu-location").each(function(){var d=c(this),f=d.find("input[type=checkbox]"),g=new a.Element(f),h=a("nav_menu_locations["+f.data("location-id")+"]"),i=""===b.params.menu_id,j=i?_.noop:function(a){g.set(a)},k=i?_.noop:function(a){h.set(a?b.params.menu_id:0)},l=function(b){var c=a("nav_menu["+String(b)+"]");b&&c&&c()?d.find(".theme-location-set").show().find("span").text(e(c().name)):d.find(".theme-location-set").hide()};j(h.get()===b.params.menu_id),f.on("change",function(){ k(this.checked)}),h.bind(function(a){j(a===b.params.menu_id),l(a)}),l(h.get())})},setSelections:function(a){this.container.find(".menu-location").each(function(b,c){var d=c.dataset.locationId;c.checked=d in a&&a[d]})}}),a.Menus.MenuAutoAddControl=a.Control.extend({ready:function(){var b=this,c=b.setting();b.active.validate=function(){var c,d=a.section(b.section());return c=!!d&&d.active()},b.autoAddElement=new a.Element(b.container.find("input[type=checkbox].auto_add")),b.autoAddElement.bind(function(a){var c=b.setting();c&&c.name!==a&&(c=_.clone(c),c.auto_add=a,b.setting.set(c))}),c&&b.autoAddElement.set(c.auto_add),b.setting.bind(function(a){a&&b.autoAddElement.set(a.auto_add)})}}),a.Menus.MenuControl=a.Control.extend({ready:function(){var b,d,f,g=this,h=a.section(g.section()),i=g.params.menu_id,j=g.setting();if("undefined"==typeof this.params.menu_id)throw new Error("params.menu_id was not defined");g.active.validate=function(){var a;return a=!!h&&h.active()},g.$controlSection=h.headContainer,g.$sectionContent=g.container.closest(".accordion-section-content"),this._setupModel(),a.section(g.section(),function(a){a.deferred.initSortables.done(function(a){g._setupSortable(a)})}),this._setupAddition(),this._setupTitle(),j&&(b=e(j.name),a.control.each(function(c){c.extended(a.controlConstructor.widget_form)&&"nav_menu"===c.params.widget_id_base&&(c.container.find(".nav-menu-widget-form-controls:first").show(),c.container.find(".nav-menu-widget-no-menus-message:first").hide(),f=c.container.find("select"),0===f.find("option[value="+String(i)+"]").length&&f.append(new Option(b,i)))}),d=c("#available-widgets-list .widget-tpl:has( input.id_base[ value=nav_menu ] )"),d.find(".nav-menu-widget-form-controls:first").show(),d.find(".nav-menu-widget-no-menus-message:first").hide(),f=d.find(".widget-inside select:first"),0===f.find("option[value="+String(i)+"]").length&&f.append(new Option(b,i))),_.defer(function(){g.updateInvitationVisibility()})},_setupModel:function(){var b=this,c=b.params.menu_id;b.setting.bind(function(d){var f;!1===d?b._handleDeletion():(f=e(d.name),a.control.each(function(b){if(b.extended(a.controlConstructor.widget_form)&&"nav_menu"===b.params.widget_id_base){var d=b.container.find("select");d.find("option[value="+String(c)+"]").text(f)}}))})},_setupSortable:function(b){var c=this;if(!b.is(c.$sectionContent))throw new Error("Unexpected menuList.");b.on("sortstart",function(){c.isSorting=!0}),b.on("sortstop",function(){setTimeout(function(){var b=c.$sectionContent.sortable("toArray"),d=[],e=0,f=10;c.isSorting=!1,c.$sectionContent.scrollLeft(0),_.each(b,function(b){var c,e,f;f=b.match(/^customize-control-nav_menu_item-(-?\d+)$/,""),f&&(c=parseInt(f[1],10),e=a.control("nav_menu_item["+String(c)+"]"),e&&d.push(e))}),_.each(d,function(a){if(!1!==a.setting()){var b=_.clone(a.setting());e+=1,f+=1,b.position=e,a.priority(f),b.menu_item_parent=parseInt(a.container.find(".menu-item-data-parent-id").val(),10),b.menu_item_parent||(b.menu_item_parent=0),a.setting.set(b)}})})}),c.isReordering=!1,this.container.find(".reorder-toggle").on("click",function(){c.toggleReordering(!c.isReordering)})},_setupAddition:function(){var b=this;this.container.find(".add-new-menu-item").on("click",function(d){b.$sectionContent.hasClass("reordering")||(c("body").hasClass("adding-menu-items")?(c(this).attr("aria-expanded","false"),a.Menus.availableMenuItemsPanel.close(),d.stopPropagation()):(c(this).attr("aria-expanded","true"),a.Menus.availableMenuItemsPanel.open(b)))})},_handleDeletion:function(){var d,e,f,g=this,h=g.params.menu_id,i=0;d=a.section(g.section()),e=function(){d.container.remove(),a.section.remove(d.id)},d&&d.expanded()?d.collapse({completeCallback:function(){e(),b.a11y.speak(a.Menus.data.l10n.menuDeleted),a.panel("nav_menus").focus()}}):e(),a.each(function(a){/^nav_menu\[/.test(a.id)&&!1!==a()&&(i+=1)}),a.control.each(function(b){if(b.extended(a.controlConstructor.widget_form)&&"nav_menu"===b.params.widget_id_base){var c=b.container.find("select");c.val()===String(h)&&c.prop("selectedIndex",0).trigger("change"),b.container.find(".nav-menu-widget-form-controls:first").toggle(0!==i),b.container.find(".nav-menu-widget-no-menus-message:first").toggle(0===i),b.container.find("option[value="+String(h)+"]").remove()}}),f=c("#available-widgets-list .widget-tpl:has( input.id_base[ value=nav_menu ] )"),f.find(".nav-menu-widget-form-controls:first").toggle(0!==i),f.find(".nav-menu-widget-no-menus-message:first").toggle(0===i),f.find("option[value="+String(h)+"]").remove()},_setupTitle:function(){var b=this;b.setting.bind(function(d){if(d){var f=a.section(b.section()),g=b.params.menu_id,h=f.headContainer.find(".accordion-section-title"),i=f.contentContainer.find(".customize-section-title h3"),j=f.headContainer.find(".menu-in-location"),k=i.find(".customize-action"),l=e(d.name);h.text(l),j.length&&j.appendTo(h),i.text(l),k.length&&k.prependTo(i),a.control.each(function(a){/^nav_menu_locations\[/.test(a.id)&&a.container.find("option[value="+g+"]").text(l)}),f.contentContainer.find(".customize-control-checkbox input").each(function(){c(this).prop("checked")&&c(".current-menu-location-name-"+c(this).data("location-id")).text(l)})}})},toggleReordering:function(c){var d=this.container.find(".add-new-menu-item"),e=this.container.find(".reorder-toggle"),f=this.$sectionContent.find(".item-title");c=Boolean(c),c!==this.$sectionContent.hasClass("reordering")&&(this.isReordering=c,this.$sectionContent.toggleClass("reordering",c),this.$sectionContent.sortable(this.isReordering?"disable":"enable"),this.isReordering?(d.attr({tabindex:"-1","aria-hidden":"true"}),e.attr("aria-label",a.Menus.data.l10n.reorderLabelOff),b.a11y.speak(a.Menus.data.l10n.reorderModeOn),f.attr("aria-hidden","false")):(d.removeAttr("tabindex aria-hidden"),e.attr("aria-label",a.Menus.data.l10n.reorderLabelOn),b.a11y.speak(a.Menus.data.l10n.reorderModeOff),f.attr("aria-hidden","true")),c&&_(this.getMenuItemControls()).each(function(a){a.collapseForm()}))},getMenuItemControls:function(){var b=this,c=[],d=b.params.menu_id;return a.control.each(function(a){"nav_menu_item"===a.params.type&&a.setting()&&d===a.setting().nav_menu_term_id&&c.push(a)}),c},reflowMenuItems:function(){var a,b=this,c=b.getMenuItemControls();a=function(b){var c=[],d=b.currentParent;_.each(b.menuItemControls,function(a){d===a.setting().menu_item_parent&&c.push(a)}),c.sort(function(a,b){return a.setting().position-b.setting().position}),_.each(c,function(c){b.currentAbsolutePosition+=1,c.priority.set(b.currentAbsolutePosition),c.container.hasClass("menu-item-depth-"+String(b.currentDepth))||(_.each(c.container.prop("className").match(/menu-item-depth-\d+/g),function(a){c.container.removeClass(a)}),c.container.addClass("menu-item-depth-"+String(b.currentDepth))),c.container.data("item-depth",b.currentDepth),b.currentDepth+=1,b.currentParent=c.params.menu_item_id,a(b),b.currentDepth-=1,b.currentParent=d}),c.length&&(_(c).each(function(a){a.container.removeClass("move-up-disabled move-down-disabled move-left-disabled move-right-disabled"),0===b.currentDepth?a.container.addClass("move-left-disabled"):10===b.currentDepth&&a.container.addClass("move-right-disabled")}),c[0].container.addClass("move-up-disabled").addClass("move-right-disabled").toggleClass("move-down-disabled",1===c.length),c[c.length-1].container.addClass("move-down-disabled").toggleClass("move-up-disabled",1===c.length))},a({menuItemControls:c,currentParent:0,currentDepth:0,currentAbsolutePosition:0}),b.updateInvitationVisibility(c),b.container.find(".reorder-toggle").toggle(c.length>1)},debouncedReflowMenuItems:_.debounce(function(){this.reflowMenuItems.apply(this,arguments)},0),addItemToMenu:function(d){var e,f,g,h,i,j=this,k=0,l=10;return _.each(j.getMenuItemControls(),function(a){!1!==a.setting()&&(l=Math.max(l,a.priority()),0===a.setting().menu_item_parent&&(k=Math.max(k,a.setting().position)))}),k+=1,l+=1,d=c.extend({},a.Menus.data.defaultSettingValues.nav_menu_item,d,{nav_menu_term_id:j.params.menu_id,original_title:d.title,position:k}),delete d.id,i=a.Menus.generatePlaceholderAutoIncrementId(),e="nav_menu_item["+String(i)+"]",f={type:"nav_menu_item",transport:a.Menus.data.settingTransport,previewer:a.previewer},g=a.create(e,e,{},f),g.set(d),h=new a.controlConstructor.nav_menu_item(e,{type:"nav_menu_item",section:j.id,priority:l,settings:{"default":e},menu_item_id:i}),a.control.add(h),g.preview(),j.debouncedReflowMenuItems(),b.a11y.speak(a.Menus.data.l10n.itemAdded),h},updateInvitationVisibility:function(a){var b=a||this.getMenuItemControls();this.container.find(".new-menu-item-invitation").toggle(0===b.length)}}),a.Menus.NewMenuControl=a.Control.extend({initialize:function(){"undefined"!=typeof console&&console.warn&&console.warn("[DEPRECATED] wp.customize.NewMenuControl will be removed. Please use wp.customize.Menus.createNavMenu() instead."),a.Control.prototype.initialize.apply(this,arguments)},ready:function(){this._bindHandlers()},_bindHandlers:function(){var a=this,b=c("#customize-control-new_menu_name input"),d=c("#create-new-menu-submit");b.on("keydown",function(b){13===b.which&&a.submit()}),d.on("click",function(b){a.submit(),b.stopPropagation(),b.preventDefault()})},submit:function(){var c,d=this,e=d.container.closest(".accordion-section-new-menu"),f=e.find(".menu-name-field").first(),g=f.val();return g?(c=a.Menus.createNavMenu(g),f.val(""),f.removeClass("invalid"),b.a11y.speak(a.Menus.data.l10n.menuAdded),void c.focus()):(f.addClass("invalid"),void f.focus())}}),c.extend(a.controlConstructor,{nav_menu_location:a.Menus.MenuLocationControl,nav_menu_item:a.Menus.MenuItemControl,nav_menu:a.Menus.MenuControl,nav_menu_name:a.Menus.MenuNameControl,new_menu:a.Menus.NewMenuControl,nav_menu_locations:a.Menus.MenuLocationsControl,nav_menu_auto_add:a.Menus.MenuAutoAddControl}),c.extend(a.panelConstructor,{nav_menus:a.Menus.MenusPanel}),c.extend(a.sectionConstructor,{nav_menu:a.Menus.MenuSection,new_menu:a.Menus.NewMenuSection}),a.bind("ready",function(){a.Menus.availableMenuItemsPanel=new a.Menus.AvailableMenuItemsPanelView({collection:a.Menus.availableMenuItems}),a.bind("saved",function(b){(b.nav_menu_updates||b.nav_menu_item_updates)&&a.Menus.applySavedData(b)}),a.state("changesetStatus").bind(function(b){"publish"===b&&(a("nav_menus_created_posts")._value=[])}),a.previewer.bind("focus-nav-menu-item-control",a.Menus.focusMenuItemControl)}),a.Menus.applySavedData=function(d){var e={},f={};_(d.nav_menu_updates).each(function(d){var f,g,h,i,j,k,l,m,n,o,p,q,r;if("inserted"===d.status){if(!d.previous_term_id)throw new Error("Expected previous_term_id");if(!d.term_id)throw new Error("Expected term_id");if(f="nav_menu["+String(d.previous_term_id)+"]",!a.has(f))throw new Error("Expected setting to exist: "+f);if(i=a(f),!a.section.has(f))throw new Error("Expected control to exist: "+f);if(m=a.section(f),l=i.get(),!l)throw new Error("Did not expect setting to be empty (deleted).");l=c.extend(_.clone(l),d.saved_value),e[d.previous_term_id]=d.term_id,g="nav_menu["+String(d.term_id)+"]",j=a.create(g,g,l,{type:"nav_menu",transport:a.Menus.data.settingTransport,previewer:a.previewer}),r=m.expanded(),r&&m.collapse(),n=new a.Menus.MenuSection(g,{panel:"nav_menus",title:l.name,customizeAction:a.Menus.data.l10n.customizingMenus,type:"nav_menu",priority:m.priority.get(),menu_id:d.term_id}),a.section.add(n),a.control.each(function(b){if(b.extended(a.controlConstructor.widget_form)&&"nav_menu"===b.params.widget_id_base){var c,e,f;c=b.container.find("select"),e=c.find("option[value="+String(d.previous_term_id)+"]"),f=c.find("option[value="+String(d.term_id)+"]"),f.prop("selected",e.prop("selected")),e.remove()}}),i.callbacks.disable(),i.set(!1),i.preview(),j.preview(),i._dirty=!1,m.container.remove(),a.section.remove(f),q=0,a.each(function(a){/^nav_menu\[/.test(a.id)&&!1!==a()&&(q+=1)}),p=c("#available-widgets-list .widget-tpl:has( input.id_base[ value=nav_menu ] )"),p.find(".nav-menu-widget-form-controls:first").toggle(0!==q),p.find(".nav-menu-widget-no-menus-message:first").toggle(0===q),p.find("option[value="+String(d.previous_term_id)+"]").remove(),b.customize.control.each(function(a){/^nav_menu_locations\[/.test(a.id)&&a.container.find("option[value="+String(d.previous_term_id)+"]").remove()}),a.each(function(b){var c=a.state("saved").get();/^nav_menu_locations\[/.test(b.id)&&b.get()===d.previous_term_id&&(b.set(d.term_id),b._dirty=!1,a.state("saved").set(c),b.preview())}),r&&n.expand()}else if("updated"===d.status){if(h="nav_menu["+String(d.term_id)+"]",!a.has(h))throw new Error("Expected setting to exist: "+h);k=a(h),_.isEqual(d.saved_value,k.get())||(o=a.state("saved").get(),k.set(d.saved_value),k._dirty=!1,a.state("saved").set(o))}}),_(d.nav_menu_item_updates).each(function(a){a.previous_post_id&&(f[a.previous_post_id]=a.post_id)}),_(d.nav_menu_item_updates).each(function(b){var c,d,g,h,i,j,k;if("inserted"===b.status){if(!b.previous_post_id)throw new Error("Expected previous_post_id");if(!b.post_id)throw new Error("Expected post_id");if(c="nav_menu_item["+String(b.previous_post_id)+"]",!a.has(c))throw new Error("Expected setting to exist: "+c);if(g=a(c),!a.control.has(c))throw new Error("Expected control to exist: "+c);if(j=a.control(c),i=g.get(),!i)throw new Error("Did not expect setting to be empty (deleted).");if(i=_.clone(i),i.menu_item_parent<0){if(!f[i.menu_item_parent])throw new Error("inserted ID for menu_item_parent not available");i.menu_item_parent=f[i.menu_item_parent]}e[i.nav_menu_term_id]&&(i.nav_menu_term_id=e[i.nav_menu_term_id]),d="nav_menu_item["+String(b.post_id)+"]",h=a.create(d,d,i,{type:"nav_menu_item",transport:a.Menus.data.settingTransport,previewer:a.previewer}),k=new a.controlConstructor.nav_menu_item(d,{type:"nav_menu_item",menu_id:b.post_id,section:"nav_menu["+String(i.nav_menu_term_id)+"]",priority:j.priority.get(),settings:{"default":d},menu_item_id:b.post_id}),j.container.remove(),a.control.remove(c),a.control.add(k),g.callbacks.disable(),g.set(!1),g.preview(),h.preview(),g._dirty=!1,k.container.toggleClass("menu-item-edit-inactive",j.container.hasClass("menu-item-edit-inactive"))}}),_.each(d.widget_nav_menu_updates,function(b,c){var d=a(c);d&&(d._value=b,d.preview())})},a.Menus.focusMenuItemControl=function(b){var c=a.Menus.getMenuItemControl(b);c&&c.focus()},a.Menus.getMenuControl=function(b){return a.control("nav_menu["+b+"]")},a.Menus.getMenuItemControl=function(b){return a.control(d(b))}}(wp.customize,wp,jQuery); \ No newline at end of file diff --git a/wp-admin/js/image-edit.js b/wp-admin/js/image-edit.js index 0d8eaf081..14af25eaf 100644 --- a/wp-admin/js/image-edit.js +++ b/wp-admin/js/image-edit.js @@ -627,7 +627,7 @@ * * @returns {void} */ - parent.children().mousedown(function(e){ + parent.children().on( 'mousedown, touchstart', function(e){ var ratio = false, sel, defRatio; if ( e.shiftKey ) { diff --git a/wp-admin/js/image-edit.min.js b/wp-admin/js/image-edit.min.js index 24ab0c636..6437c1432 100644 --- a/wp-admin/js/image-edit.min.js +++ b/wp-admin/js/image-edit.min.js @@ -1 +1 @@ -!function(a){var b=window.imageEdit={iasapi:{},hold:{},postid:"",_view:!1,intval:function(a){return 0|a},setDisabled:function(a,b){b?a.removeClass("disabled").prop("disabled",!1):a.addClass("disabled").prop("disabled",!0)},init:function(b){var c=this,d=a("#image-editor-"+c.postid),e=c.intval(a("#imgedit-x-"+b).val()),f=c.intval(a("#imgedit-y-"+b).val());c.postid!==b&&d.length&&c.close(c.postid),c.hold.w=c.hold.ow=e,c.hold.h=c.hold.oh=f,c.hold.xy_ratio=e/f,c.hold.sizer=parseFloat(a("#imgedit-sizer-"+b).val()),c.postid=b,a("#imgedit-response-"+b).empty(),a('input[type="text"]',"#imgedit-panel-"+b).keypress(function(b){var c=b.keyCode;if(36<c&&c<41&&a(this).blur(),13===c)return b.preventDefault(),b.stopPropagation(),!1})},toggleEditor:function(b,c){var d=a("#imgedit-wait-"+b);c?d.fadeIn("fast"):d.fadeOut("fast")},toggleHelp:function(b){var c=a(b);return c.attr("aria-expanded","false"===c.attr("aria-expanded")?"true":"false").parents(".imgedit-group-top").toggleClass("imgedit-help-toggled").find(".imgedit-help").slideToggle("fast"),!1},getTarget:function(b){return a('input[name="imgedit-target-'+b+'"]:checked',"#imgedit-save-target-"+b).val()||"full"},scaleChanged:function(b,c,d){var e=a("#imgedit-scale-width-"+b),f=a("#imgedit-scale-height-"+b),g=a("#imgedit-scale-warn-"+b),h="",i="";!1!==this.validateNumeric(d)&&(c?(i=""!==e.val()?Math.round(e.val()/this.hold.xy_ratio):"",f.val(i)):(h=""!==f.val()?Math.round(f.val()*this.hold.xy_ratio):"",e.val(h)),i&&i>this.hold.oh||h&&h>this.hold.ow?g.css("visibility","visible"):g.css("visibility","hidden"))},getSelRatio:function(b){var c=this.hold.w,d=this.hold.h,e=this.intval(a("#imgedit-crop-width-"+b).val()),f=this.intval(a("#imgedit-crop-height-"+b).val());return e&&f?e+":"+f:c&&d?c+":"+d:"1:1"},filterHistory:function(b,c){var d,e,f,g,h=a("#imgedit-history-"+b).val(),i=[];if(""!==h){if(h=JSON.parse(h),d=this.intval(a("#imgedit-undone-"+b).val()),d>0)for(;d>0;)h.pop(),d--;if(c){if(!h.length)return this.hold.w=this.hold.ow,this.hold.h=this.hold.oh,"";f=h[h.length-1],f=f.c||f.r||f.f||!1,f&&(this.hold.w=f.fw,this.hold.h=f.fh)}for(e in h)g=h[e],g.hasOwnProperty("c")?i[e]={c:{x:g.c.x,y:g.c.y,w:g.c.w,h:g.c.h}}:g.hasOwnProperty("r")?i[e]={r:g.r.r}:g.hasOwnProperty("f")&&(i[e]={f:g.f.f});return JSON.stringify(i)}return""},refreshEditor:function(c,d,e){var f,g,h=this;h.toggleEditor(c,1),f={action:"imgedit-preview",_ajax_nonce:d,postid:c,history:h.filterHistory(c,1),rand:h.intval(1e6*Math.random())},g=a('<img id="image-preview-'+c+'" alt="" />').on("load",{history:f.history},function(d){var f,h,i,j=a("#imgedit-crop-"+c),k=b;""!==d.data.history&&(i=JSON.parse(d.data.history),i[i.length-1].hasOwnProperty("c")&&(k.setDisabled(a("#image-undo-"+c),!0),a("#image-undo-"+c).focus())),j.empty().append(g),f=Math.max(k.hold.w,k.hold.h),h=Math.max(a(g).width(),a(g).height()),k.hold.sizer=f>h?h/f:1,k.initCrop(c,g,j),k.setCropSelection(c,0),"undefined"!=typeof e&&null!==e&&e(),a("#imgedit-history-"+c).val()&&"0"===a("#imgedit-undone-"+c).val()?a("input.imgedit-submit-btn","#imgedit-panel-"+c).removeAttr("disabled"):a("input.imgedit-submit-btn","#imgedit-panel-"+c).prop("disabled",!0),k.toggleEditor(c,0)}).on("error",function(){a("#imgedit-crop-"+c).empty().append('<div class="error"><p>'+imageEditL10n.error+"</p></div>"),h.toggleEditor(c,0)}).attr("src",ajaxurl+"?"+a.param(f))},action:function(b,c,d){var e,f,g,h,i,j=this;if(j.notsaved(b))return!1;if(e={action:"image-editor",_ajax_nonce:c,postid:b},"scale"===d){if(f=a("#imgedit-scale-width-"+b),g=a("#imgedit-scale-height-"+b),h=j.intval(f.val()),i=j.intval(g.val()),h<1)return f.focus(),!1;if(i<1)return g.focus(),!1;if(h===j.hold.ow||i===j.hold.oh)return!1;e["do"]="scale",e.fwidth=h,e.fheight=i}else{if("restore"!==d)return!1;e["do"]="restore"}j.toggleEditor(b,1),a.post(ajaxurl,e,function(c){a("#image-editor-"+b).empty().append(c),j.toggleEditor(b,0),j._view&&j._view.refresh()})},save:function(c,d){var e,f=this.getTarget(c),g=this.filterHistory(c,0),h=this;return""!==g&&(this.toggleEditor(c,1),e={action:"image-editor",_ajax_nonce:d,postid:c,history:g,target:f,context:a("#image-edit-context").length?a("#image-edit-context").val():null,"do":"save"},void a.post(ajaxurl,e,function(d){var e=JSON.parse(d);return e.error?(a("#imgedit-response-"+c).html('<div class="error"><p>'+e.error+"</p></div>"),void b.close(c)):(e.fw&&e.fh&&a("#media-dims-"+c).html(e.fw+" × "+e.fh),e.thumbnail&&a(".thumbnail","#thumbnail-head-"+c).attr("src",""+e.thumbnail),e.msg&&a("#imgedit-response-"+c).html('<div class="updated"><p>'+e.msg+"</p></div>"),void(h._view?h._view.save():b.close(c)))}))},open:function(c,d,e){this._view=e;var f,g,h=a("#image-editor-"+c),i=a("#media-head-"+c),j=a("#imgedit-open-btn-"+c),k=j.siblings(".spinner");if(!j.hasClass("button-activated"))return k.addClass("is-active"),g={action:"image-editor",_ajax_nonce:d,postid:c,"do":"open"},f=a.ajax({url:ajaxurl,type:"post",data:g,beforeSend:function(){j.addClass("button-activated")}}).done(function(a){h.html(a),i.fadeOut("fast",function(){h.fadeIn("fast"),j.removeClass("button-activated"),k.removeClass("is-active")}),b.init(c)})},imgLoaded:function(b){var c=a("#image-preview-"+b),d=a("#imgedit-crop-"+b);"undefined"==typeof this.hold.sizer&&this.init(b),this.initCrop(b,c,d),this.setCropSelection(b,0),this.toggleEditor(b,0),a(".imgedit-wrap .imgedit-help-toggle").eq(0).focus()},initCrop:function(c,d,e){var f,g=this,h=a("#imgedit-sel-width-"+c),i=a("#imgedit-sel-height-"+c);g.iasapi=a(d).imgAreaSelect({parent:e,instance:!0,handles:!0,keys:!0,minWidth:3,minHeight:3,onInit:function(b){f=a(b),f.next().css("position","absolute").nextAll(".imgareaselect-outer").css("position","absolute"),e.children().mousedown(function(a){var b,d,e=!1;a.shiftKey&&(b=g.iasapi.getSelection(),d=g.getSelRatio(c),e=b&&b.width&&b.height?b.width+":"+b.height:d),g.iasapi.setOptions({aspectRatio:e})})},onSelectStart:function(){b.setDisabled(a("#imgedit-crop-sel-"+c),1)},onSelectEnd:function(a,d){b.setCropSelection(c,d)},onSelectChange:function(a,c){var d=b.hold.sizer;h.val(b.round(c.width/d)),i.val(b.round(c.height/d))}})},setCropSelection:function(b,c){var d;return c=c||0,!c||c.width<3&&c.height<3?(this.setDisabled(a(".imgedit-crop","#imgedit-panel-"+b),0),this.setDisabled(a("#imgedit-crop-sel-"+b),0),a("#imgedit-sel-width-"+b).val(""),a("#imgedit-sel-height-"+b).val(""),a("#imgedit-selection-"+b).val(""),!1):(d={x:c.x1,y:c.y1,w:c.width,h:c.height},this.setDisabled(a(".imgedit-crop","#imgedit-panel-"+b),1),void a("#imgedit-selection-"+b).val(JSON.stringify(d)))},close:function(b,c){return c=c||!1,(!c||!this.notsaved(b))&&(this.iasapi={},this.hold={},void(this._view?this._view.back():a("#image-editor-"+b).fadeOut("fast",function(){a("#media-head-"+b).fadeIn("fast",function(){a("#imgedit-open-btn-"+b).focus()}),a(this).empty()})))},notsaved:function(b){var c=a("#imgedit-history-"+b).val(),d=""!==c?JSON.parse(c):[],e=this.intval(a("#imgedit-undone-"+b).val());return e<d.length&&!confirm(a("#imgedit-leaving-"+b).html())},addStep:function(b,c,d){for(var e=this,f=a("#imgedit-history-"+c),g=""!==f.val()?JSON.parse(f.val()):[],h=a("#imgedit-undone-"+c),i=e.intval(h.val());i>0;)g.pop(),i--;h.val(0),g.push(b),f.val(JSON.stringify(g)),e.refreshEditor(c,d,function(){e.setDisabled(a("#image-undo-"+c),!0),e.setDisabled(a("#image-redo-"+c),!1)})},rotate:function(b,c,d,e){return!a(e).hasClass("disabled")&&void this.addStep({r:{r:b,fw:this.hold.h,fh:this.hold.w}},c,d)},flip:function(b,c,d,e){return!a(e).hasClass("disabled")&&void this.addStep({f:{f:b,fw:this.hold.w,fh:this.hold.h}},c,d)},crop:function(b,c,d){var e=a("#imgedit-selection-"+b).val(),f=this.intval(a("#imgedit-sel-width-"+b).val()),g=this.intval(a("#imgedit-sel-height-"+b).val());return!a(d).hasClass("disabled")&&""!==e&&(e=JSON.parse(e),void(e.w>0&&e.h>0&&f>0&&g>0&&(e.fw=f,e.fh=g,this.addStep({c:e},b,c))))},undo:function(b,c){var d=this,e=a("#image-undo-"+b),f=a("#imgedit-undone-"+b),g=d.intval(f.val())+1;e.hasClass("disabled")||(f.val(g),d.refreshEditor(b,c,function(){var c=a("#imgedit-history-"+b),f=""!==c.val()?JSON.parse(c.val()):[];d.setDisabled(a("#image-redo-"+b),!0),d.setDisabled(e,g<f.length),f.length===g&&a("#image-redo-"+b).focus()}))},redo:function(b,c){var d=this,e=a("#image-redo-"+b),f=a("#imgedit-undone-"+b),g=d.intval(f.val())-1;e.hasClass("disabled")||(f.val(g),d.refreshEditor(b,c,function(){d.setDisabled(a("#image-undo-"+b),!0),d.setDisabled(e,g>0),0===g&&a("#image-undo-"+b).focus()}))},setNumSelection:function(b,c){var d,e,f,g,h,i=a("#imgedit-sel-width-"+b),j=a("#imgedit-sel-height-"+b),k=this.intval(i.val()),l=this.intval(j.val()),m=a("#image-preview-"+b),n=m.height(),o=m.width(),p=this.hold.sizer,q=this.iasapi;if(!1!==this.validateNumeric(c))return k<1?(i.val(""),!1):l<1?(j.val(""),!1):void(k&&l&&(d=q.getSelection())&&(g=d.x1+Math.round(k*p),h=d.y1+Math.round(l*p),e=d.x1,f=d.y1,g>o&&(e=0,g=o,i.val(Math.round(g/p))),h>n&&(f=0,h=n,j.val(Math.round(h/p))),q.setSelection(e,f,g,h),q.update(),this.setCropSelection(b,q.getSelection())))},round:function(a){var b;return a=Math.round(a),this.hold.sizer>.6?a:(b=a.toString().slice(-1),"1"===b?a-1:"9"===b?a+1:a)},setRatioSelection:function(b,c,d){var e,f,g=this.intval(a("#imgedit-crop-width-"+b).val()),h=this.intval(a("#imgedit-crop-height-"+b).val()),i=a("#image-preview-"+b).height();!1!==this.validateNumeric(d)&&g&&h&&(this.iasapi.setOptions({aspectRatio:g+":"+h}),(e=this.iasapi.getSelection(!0))&&(f=Math.ceil(e.y1+(e.x2-e.x1)/(g/h)),f>i&&(f=i,c?a("#imgedit-crop-height-"+b).val(""):a("#imgedit-crop-width-"+b).val("")),this.iasapi.setSelection(e.x1,e.y1,e.x2,f),this.iasapi.update()))},validateNumeric:function(b){if(!this.intval(a(b).val()))return a(b).val(""),!1}}}(jQuery); \ No newline at end of file +!function(a){var b=window.imageEdit={iasapi:{},hold:{},postid:"",_view:!1,intval:function(a){return 0|a},setDisabled:function(a,b){b?a.removeClass("disabled").prop("disabled",!1):a.addClass("disabled").prop("disabled",!0)},init:function(b){var c=this,d=a("#image-editor-"+c.postid),e=c.intval(a("#imgedit-x-"+b).val()),f=c.intval(a("#imgedit-y-"+b).val());c.postid!==b&&d.length&&c.close(c.postid),c.hold.w=c.hold.ow=e,c.hold.h=c.hold.oh=f,c.hold.xy_ratio=e/f,c.hold.sizer=parseFloat(a("#imgedit-sizer-"+b).val()),c.postid=b,a("#imgedit-response-"+b).empty(),a('input[type="text"]',"#imgedit-panel-"+b).keypress(function(b){var c=b.keyCode;if(36<c&&c<41&&a(this).blur(),13===c)return b.preventDefault(),b.stopPropagation(),!1})},toggleEditor:function(b,c){var d=a("#imgedit-wait-"+b);c?d.fadeIn("fast"):d.fadeOut("fast")},toggleHelp:function(b){var c=a(b);return c.attr("aria-expanded","false"===c.attr("aria-expanded")?"true":"false").parents(".imgedit-group-top").toggleClass("imgedit-help-toggled").find(".imgedit-help").slideToggle("fast"),!1},getTarget:function(b){return a('input[name="imgedit-target-'+b+'"]:checked',"#imgedit-save-target-"+b).val()||"full"},scaleChanged:function(b,c,d){var e=a("#imgedit-scale-width-"+b),f=a("#imgedit-scale-height-"+b),g=a("#imgedit-scale-warn-"+b),h="",i="";!1!==this.validateNumeric(d)&&(c?(i=""!==e.val()?Math.round(e.val()/this.hold.xy_ratio):"",f.val(i)):(h=""!==f.val()?Math.round(f.val()*this.hold.xy_ratio):"",e.val(h)),i&&i>this.hold.oh||h&&h>this.hold.ow?g.css("visibility","visible"):g.css("visibility","hidden"))},getSelRatio:function(b){var c=this.hold.w,d=this.hold.h,e=this.intval(a("#imgedit-crop-width-"+b).val()),f=this.intval(a("#imgedit-crop-height-"+b).val());return e&&f?e+":"+f:c&&d?c+":"+d:"1:1"},filterHistory:function(b,c){var d,e,f,g,h=a("#imgedit-history-"+b).val(),i=[];if(""!==h){if(h=JSON.parse(h),d=this.intval(a("#imgedit-undone-"+b).val()),d>0)for(;d>0;)h.pop(),d--;if(c){if(!h.length)return this.hold.w=this.hold.ow,this.hold.h=this.hold.oh,"";f=h[h.length-1],f=f.c||f.r||f.f||!1,f&&(this.hold.w=f.fw,this.hold.h=f.fh)}for(e in h)g=h[e],g.hasOwnProperty("c")?i[e]={c:{x:g.c.x,y:g.c.y,w:g.c.w,h:g.c.h}}:g.hasOwnProperty("r")?i[e]={r:g.r.r}:g.hasOwnProperty("f")&&(i[e]={f:g.f.f});return JSON.stringify(i)}return""},refreshEditor:function(c,d,e){var f,g,h=this;h.toggleEditor(c,1),f={action:"imgedit-preview",_ajax_nonce:d,postid:c,history:h.filterHistory(c,1),rand:h.intval(1e6*Math.random())},g=a('<img id="image-preview-'+c+'" alt="" />').on("load",{history:f.history},function(d){var f,h,i,j=a("#imgedit-crop-"+c),k=b;""!==d.data.history&&(i=JSON.parse(d.data.history),i[i.length-1].hasOwnProperty("c")&&(k.setDisabled(a("#image-undo-"+c),!0),a("#image-undo-"+c).focus())),j.empty().append(g),f=Math.max(k.hold.w,k.hold.h),h=Math.max(a(g).width(),a(g).height()),k.hold.sizer=f>h?h/f:1,k.initCrop(c,g,j),k.setCropSelection(c,0),"undefined"!=typeof e&&null!==e&&e(),a("#imgedit-history-"+c).val()&&"0"===a("#imgedit-undone-"+c).val()?a("input.imgedit-submit-btn","#imgedit-panel-"+c).removeAttr("disabled"):a("input.imgedit-submit-btn","#imgedit-panel-"+c).prop("disabled",!0),k.toggleEditor(c,0)}).on("error",function(){a("#imgedit-crop-"+c).empty().append('<div class="error"><p>'+imageEditL10n.error+"</p></div>"),h.toggleEditor(c,0)}).attr("src",ajaxurl+"?"+a.param(f))},action:function(b,c,d){var e,f,g,h,i,j=this;if(j.notsaved(b))return!1;if(e={action:"image-editor",_ajax_nonce:c,postid:b},"scale"===d){if(f=a("#imgedit-scale-width-"+b),g=a("#imgedit-scale-height-"+b),h=j.intval(f.val()),i=j.intval(g.val()),h<1)return f.focus(),!1;if(i<1)return g.focus(),!1;if(h===j.hold.ow||i===j.hold.oh)return!1;e["do"]="scale",e.fwidth=h,e.fheight=i}else{if("restore"!==d)return!1;e["do"]="restore"}j.toggleEditor(b,1),a.post(ajaxurl,e,function(c){a("#image-editor-"+b).empty().append(c),j.toggleEditor(b,0),j._view&&j._view.refresh()})},save:function(c,d){var e,f=this.getTarget(c),g=this.filterHistory(c,0),h=this;return""!==g&&(this.toggleEditor(c,1),e={action:"image-editor",_ajax_nonce:d,postid:c,history:g,target:f,context:a("#image-edit-context").length?a("#image-edit-context").val():null,"do":"save"},void a.post(ajaxurl,e,function(d){var e=JSON.parse(d);return e.error?(a("#imgedit-response-"+c).html('<div class="error"><p>'+e.error+"</p></div>"),void b.close(c)):(e.fw&&e.fh&&a("#media-dims-"+c).html(e.fw+" × "+e.fh),e.thumbnail&&a(".thumbnail","#thumbnail-head-"+c).attr("src",""+e.thumbnail),e.msg&&a("#imgedit-response-"+c).html('<div class="updated"><p>'+e.msg+"</p></div>"),void(h._view?h._view.save():b.close(c)))}))},open:function(c,d,e){this._view=e;var f,g,h=a("#image-editor-"+c),i=a("#media-head-"+c),j=a("#imgedit-open-btn-"+c),k=j.siblings(".spinner");if(!j.hasClass("button-activated"))return k.addClass("is-active"),g={action:"image-editor",_ajax_nonce:d,postid:c,"do":"open"},f=a.ajax({url:ajaxurl,type:"post",data:g,beforeSend:function(){j.addClass("button-activated")}}).done(function(a){h.html(a),i.fadeOut("fast",function(){h.fadeIn("fast"),j.removeClass("button-activated"),k.removeClass("is-active")}),b.init(c)})},imgLoaded:function(b){var c=a("#image-preview-"+b),d=a("#imgedit-crop-"+b);"undefined"==typeof this.hold.sizer&&this.init(b),this.initCrop(b,c,d),this.setCropSelection(b,0),this.toggleEditor(b,0),a(".imgedit-wrap .imgedit-help-toggle").eq(0).focus()},initCrop:function(c,d,e){var f,g=this,h=a("#imgedit-sel-width-"+c),i=a("#imgedit-sel-height-"+c);g.iasapi=a(d).imgAreaSelect({parent:e,instance:!0,handles:!0,keys:!0,minWidth:3,minHeight:3,onInit:function(b){f=a(b),f.next().css("position","absolute").nextAll(".imgareaselect-outer").css("position","absolute"),e.children().on("mousedown, touchstart",function(a){var b,d,e=!1;a.shiftKey&&(b=g.iasapi.getSelection(),d=g.getSelRatio(c),e=b&&b.width&&b.height?b.width+":"+b.height:d),g.iasapi.setOptions({aspectRatio:e})})},onSelectStart:function(){b.setDisabled(a("#imgedit-crop-sel-"+c),1)},onSelectEnd:function(a,d){b.setCropSelection(c,d)},onSelectChange:function(a,c){var d=b.hold.sizer;h.val(b.round(c.width/d)),i.val(b.round(c.height/d))}})},setCropSelection:function(b,c){var d;return c=c||0,!c||c.width<3&&c.height<3?(this.setDisabled(a(".imgedit-crop","#imgedit-panel-"+b),0),this.setDisabled(a("#imgedit-crop-sel-"+b),0),a("#imgedit-sel-width-"+b).val(""),a("#imgedit-sel-height-"+b).val(""),a("#imgedit-selection-"+b).val(""),!1):(d={x:c.x1,y:c.y1,w:c.width,h:c.height},this.setDisabled(a(".imgedit-crop","#imgedit-panel-"+b),1),void a("#imgedit-selection-"+b).val(JSON.stringify(d)))},close:function(b,c){return c=c||!1,(!c||!this.notsaved(b))&&(this.iasapi={},this.hold={},void(this._view?this._view.back():a("#image-editor-"+b).fadeOut("fast",function(){a("#media-head-"+b).fadeIn("fast",function(){a("#imgedit-open-btn-"+b).focus()}),a(this).empty()})))},notsaved:function(b){var c=a("#imgedit-history-"+b).val(),d=""!==c?JSON.parse(c):[],e=this.intval(a("#imgedit-undone-"+b).val());return e<d.length&&!confirm(a("#imgedit-leaving-"+b).html())},addStep:function(b,c,d){for(var e=this,f=a("#imgedit-history-"+c),g=""!==f.val()?JSON.parse(f.val()):[],h=a("#imgedit-undone-"+c),i=e.intval(h.val());i>0;)g.pop(),i--;h.val(0),g.push(b),f.val(JSON.stringify(g)),e.refreshEditor(c,d,function(){e.setDisabled(a("#image-undo-"+c),!0),e.setDisabled(a("#image-redo-"+c),!1)})},rotate:function(b,c,d,e){return!a(e).hasClass("disabled")&&void this.addStep({r:{r:b,fw:this.hold.h,fh:this.hold.w}},c,d)},flip:function(b,c,d,e){return!a(e).hasClass("disabled")&&void this.addStep({f:{f:b,fw:this.hold.w,fh:this.hold.h}},c,d)},crop:function(b,c,d){var e=a("#imgedit-selection-"+b).val(),f=this.intval(a("#imgedit-sel-width-"+b).val()),g=this.intval(a("#imgedit-sel-height-"+b).val());return!a(d).hasClass("disabled")&&""!==e&&(e=JSON.parse(e),void(e.w>0&&e.h>0&&f>0&&g>0&&(e.fw=f,e.fh=g,this.addStep({c:e},b,c))))},undo:function(b,c){var d=this,e=a("#image-undo-"+b),f=a("#imgedit-undone-"+b),g=d.intval(f.val())+1;e.hasClass("disabled")||(f.val(g),d.refreshEditor(b,c,function(){var c=a("#imgedit-history-"+b),f=""!==c.val()?JSON.parse(c.val()):[];d.setDisabled(a("#image-redo-"+b),!0),d.setDisabled(e,g<f.length),f.length===g&&a("#image-redo-"+b).focus()}))},redo:function(b,c){var d=this,e=a("#image-redo-"+b),f=a("#imgedit-undone-"+b),g=d.intval(f.val())-1;e.hasClass("disabled")||(f.val(g),d.refreshEditor(b,c,function(){d.setDisabled(a("#image-undo-"+b),!0),d.setDisabled(e,g>0),0===g&&a("#image-undo-"+b).focus()}))},setNumSelection:function(b,c){var d,e,f,g,h,i=a("#imgedit-sel-width-"+b),j=a("#imgedit-sel-height-"+b),k=this.intval(i.val()),l=this.intval(j.val()),m=a("#image-preview-"+b),n=m.height(),o=m.width(),p=this.hold.sizer,q=this.iasapi;if(!1!==this.validateNumeric(c))return k<1?(i.val(""),!1):l<1?(j.val(""),!1):void(k&&l&&(d=q.getSelection())&&(g=d.x1+Math.round(k*p),h=d.y1+Math.round(l*p),e=d.x1,f=d.y1,g>o&&(e=0,g=o,i.val(Math.round(g/p))),h>n&&(f=0,h=n,j.val(Math.round(h/p))),q.setSelection(e,f,g,h),q.update(),this.setCropSelection(b,q.getSelection())))},round:function(a){var b;return a=Math.round(a),this.hold.sizer>.6?a:(b=a.toString().slice(-1),"1"===b?a-1:"9"===b?a+1:a)},setRatioSelection:function(b,c,d){var e,f,g=this.intval(a("#imgedit-crop-width-"+b).val()),h=this.intval(a("#imgedit-crop-height-"+b).val()),i=a("#image-preview-"+b).height();!1!==this.validateNumeric(d)&&g&&h&&(this.iasapi.setOptions({aspectRatio:g+":"+h}),(e=this.iasapi.getSelection(!0))&&(f=Math.ceil(e.y1+(e.x2-e.x1)/(g/h)),f>i&&(f=i,c?a("#imgedit-crop-height-"+b).val(""):a("#imgedit-crop-width-"+b).val("")),this.iasapi.setSelection(e.x1,e.y1,e.x2,f),this.iasapi.update()))},validateNumeric:function(b){if(!this.intval(a(b).val()))return a(b).val(""),!1}}}(jQuery); \ No newline at end of file diff --git a/wp-admin/js/post.js b/wp-admin/js/post.js index 662c62bff..36e103e56 100644 --- a/wp-admin/js/post.js +++ b/wp-admin/js/post.js @@ -1264,4 +1264,5 @@ jQuery(document).ready( function($) { update(); } ); + } )( jQuery, new wp.utils.WordCounter() ); diff --git a/wp-admin/js/xfn.js b/wp-admin/js/xfn.js index de8401b66..ba36bcb8a 100644 --- a/wp-admin/js/xfn.js +++ b/wp-admin/js/xfn.js @@ -15,3 +15,259 @@ jQuery( document ).ready(function( $ ) { $( '#link_rel' ).val( ( isMe ) ? 'me' : inputs.substr( 0,inputs.length - 1 ) ); }); }); + +// Privacy request action handling +jQuery( document ).ready( function( $ ) { + var strings = window.privacyToolsL10n || {}; + + function setActionState( $action, state ) { + $action.children().hide(); + $action.children( '.' + state ).show(); + } + + function clearResultsAfterRow( $requestRow ) { + $requestRow.removeClass( 'has-request-results' ); + + if ( $requestRow.next().hasClass( 'request-results' ) ) { + $requestRow.next().remove(); + } + } + + function appendResultsAfterRow( $requestRow, classes, summaryMessage, additionalMessages ) { + var itemList = '', + resultRowClasses = 'request-results'; + + clearResultsAfterRow( $requestRow ); + + if ( additionalMessages.length ) { + $.each( additionalMessages, function( index, value ) { + itemList = itemList + '<li>' + value + '</li>'; + }); + itemList = '<ul>' + itemList + '</ul>'; + } + + $requestRow.addClass( 'has-request-results' ); + + if ( $requestRow.hasClass( 'status-request-confirmed' ) ) { + resultRowClasses = resultRowClasses + ' status-request-confirmed'; + } + + if ( $requestRow.hasClass( 'status-request-failed' ) ) { + resultRowClasses = resultRowClasses + ' status-request-failed'; + } + + $requestRow.after( function() { + return '<tr class="' + resultRowClasses + '"><th colspan="5">' + + '<div class="notice inline notice-alt ' + classes + '">' + + '<p>' + summaryMessage + '</p>' + + itemList + + '</div>' + + '</td>' + + '</tr>'; + }); + } + + $( '.export-personal-data-handle' ).click( function( event ) { + + var $this = $( this ), + $action = $this.parents( '.export-personal-data' ), + $requestRow = $this.parents( 'tr' ), + requestID = $action.data( 'request-id' ), + nonce = $action.data( 'nonce' ), + exportersCount = $action.data( 'exporters-count' ), + sendAsEmail = $action.data( 'send-as-email' ) ? true : false; + + event.preventDefault(); + event.stopPropagation(); + + $action.blur(); + clearResultsAfterRow( $requestRow ); + + function onExportDoneSuccess( zipUrl ) { + setActionState( $action, 'export-personal-data-success' ); + if ( 'undefined' !== typeof zipUrl ) { + window.location = zipUrl; + } else if ( ! sendAsEmail ) { + onExportFailure( strings.noExportFile ); + } + } + + function onExportFailure( errorMessage ) { + setActionState( $action, 'export-personal-data-failed' ); + if ( errorMessage ) { + appendResultsAfterRow( $requestRow, 'notice-error', strings.exportError, [ errorMessage ] ); + } + } + + function doNextExport( exporterIndex, pageIndex ) { + $.ajax( + { + url: window.ajaxurl, + data: { + action: 'wp-privacy-export-personal-data', + exporter: exporterIndex, + id: requestID, + page: pageIndex, + security: nonce, + sendAsEmail: sendAsEmail + }, + method: 'post' + } + ).done( function( response ) { + var responseData = response.data; + + if ( ! response.success ) { + + // e.g. invalid request ID + onExportFailure( response.data ); + return; + } + + if ( ! responseData.done ) { + setTimeout( doNextExport( exporterIndex, pageIndex + 1 ) ); + } else { + if ( exporterIndex < exportersCount ) { + setTimeout( doNextExport( exporterIndex + 1, 1 ) ); + } else { + onExportDoneSuccess( responseData.url ); + } + } + }).fail( function( jqxhr, textStatus, error ) { + + // e.g. Nonce failure + onExportFailure( error ); + }); + } + + // And now, let's begin + setActionState( $action, 'export-personal-data-processing' ); + doNextExport( 1, 1 ); + }); + + $( '.remove-personal-data-handle' ).click( function( event ) { + + var $this = $( this ), + $action = $this.parents( '.remove-personal-data' ), + $requestRow = $this.parents( 'tr' ), + requestID = $action.data( 'request-id' ), + nonce = $action.data( 'nonce' ), + erasersCount = $action.data( 'erasers-count' ), + hasRemoved = false, + hasRetained = false, + messages = []; + + event.stopPropagation(); + + $action.blur(); + clearResultsAfterRow( $requestRow ); + + function onErasureDoneSuccess() { + var summaryMessage = strings.noDataFound; + var classes = 'notice-success'; + + setActionState( $action, 'remove-personal-data-idle' ); + + if ( false === hasRemoved ) { + if ( false === hasRetained ) { + summaryMessage = strings.noDataFound; + } else { + summaryMessage = strings.noneRemoved; + classes = 'notice-warning'; + } + } else { + if ( false === hasRetained ) { + summaryMessage = strings.foundAndRemoved; + } else { + summaryMessage = strings.someNotRemoved; + classes = 'notice-warning'; + } + } + appendResultsAfterRow( $requestRow, 'notice-success', summaryMessage, messages ); + } + + function onErasureFailure() { + setActionState( $action, 'remove-personal-data-failed' ); + appendResultsAfterRow( $requestRow, 'notice-error', strings.removalError, [] ); + } + + function doNextErasure( eraserIndex, pageIndex ) { + $.ajax({ + url: window.ajaxurl, + data: { + action: 'wp-privacy-erase-personal-data', + eraser: eraserIndex, + id: requestID, + page: pageIndex, + security: nonce + }, + method: 'post' + }).done( function( response ) { + var responseData = response.data; + + if ( ! response.success ) { + onErasureFailure(); + return; + } + if ( responseData.items_removed ) { + hasRemoved = hasRemoved || responseData.items_removed; + } + if ( responseData.items_retained ) { + hasRetained = hasRetained || responseData.items_retained; + } + if ( responseData.messages ) { + messages = messages.concat( responseData.messages ); + } + if ( ! responseData.done ) { + setTimeout( doNextErasure( eraserIndex, pageIndex + 1 ) ); + } else { + if ( eraserIndex < erasersCount ) { + setTimeout( doNextErasure( eraserIndex + 1, 1 ) ); + } else { + onErasureDoneSuccess(); + } + } + }).fail( function() { + onErasureFailure(); + }); + } + + // And now, let's begin + setActionState( $action, 'remove-personal-data-processing' ); + + doNextErasure( 1, 1 ); + }); +}); + +( function( $ ) { + + // Privacy policy page, copy button. + $( document ).on( 'click', function( event ) { + var $target = $( event.target ); + var $parent, $container, range; + + if ( $target.is( 'button.privacy-text-copy' ) ) { + $parent = $target.parent().parent(); + $container = $parent.find( 'div.wp-suggested-text' ); + + if ( ! $container.length ) { + $container = $parent.find( 'div.policy-text' ); + } + + if ( $container.length ) { + try { + window.getSelection().removeAllRanges(); + range = document.createRange(); + $container.addClass( 'hide-privacy-policy-tutorial' ); + + range.selectNodeContents( $container[0] ); + window.getSelection().addRange( range ); + document.execCommand( 'copy' ); + + $container.removeClass( 'hide-privacy-policy-tutorial' ); + window.getSelection().removeAllRanges(); + } catch ( er ) {} + } + } + }); + +} ( jQuery ) ); diff --git a/wp-admin/js/xfn.min.js b/wp-admin/js/xfn.min.js index 1743f9dbd..53250bb70 100644 --- a/wp-admin/js/xfn.min.js +++ b/wp-admin/js/xfn.min.js @@ -1 +1 @@ -jQuery(document).ready(function(a){a("#link_rel").prop("readonly",!0),a("#linkxfndiv input").bind("click keyup",function(){var b=a("#me").is(":checked"),c="";a("input.valinp").each(function(){b?a(this).prop("disabled",!0).parent().addClass("disabled"):(a(this).removeAttr("disabled").parent().removeClass("disabled"),a(this).is(":checked")&&""!==a(this).val()&&(c+=a(this).val()+" "))}),a("#link_rel").val(b?"me":c.substr(0,c.length-1))})}); \ No newline at end of file +jQuery(document).ready(function(a){a("#link_rel").prop("readonly",!0),a("#linkxfndiv input").bind("click keyup",function(){var b=a("#me").is(":checked"),c="";a("input.valinp").each(function(){b?a(this).prop("disabled",!0).parent().addClass("disabled"):(a(this).removeAttr("disabled").parent().removeClass("disabled"),a(this).is(":checked")&&""!==a(this).val()&&(c+=a(this).val()+" "))}),a("#link_rel").val(b?"me":c.substr(0,c.length-1))})}),jQuery(document).ready(function(a){function b(a,b){a.children().hide(),a.children("."+b).show()}function c(a){a.removeClass("has-request-results"),a.next().hasClass("request-results")&&a.next().remove()}function d(b,d,e,f){var g="",h="request-results";c(b),f.length&&(a.each(f,function(a,b){g=g+"<li>"+b+"</li>"}),g="<ul>"+g+"</ul>"),b.addClass("has-request-results"),b.hasClass("status-request-confirmed")&&(h+=" status-request-confirmed"),b.hasClass("status-request-failed")&&(h+=" status-request-failed"),b.after(function(){return'<tr class="'+h+'"><th colspan="5"><div class="notice inline notice-alt '+d+'"><p>'+e+"</p>"+g+"</div></td></tr>"})}var e=window.privacyToolsL10n||{};a(".export-personal-data-handle").click(function(f){function g(a){b(k,"export-personal-data-success"),"undefined"!=typeof a?window.location=a:p||h(e.noExportFile)}function h(a){b(k,"export-personal-data-failed"),a&&d(l,"notice-error",e.exportError,[a])}function i(b,c){a.ajax({url:window.ajaxurl,data:{action:"wp-privacy-export-personal-data",exporter:b,id:m,page:c,security:n,sendAsEmail:p},method:"post"}).done(function(a){var d=a.data;return a.success?void(d.done?b<o?setTimeout(i(b+1,1)):g(d.url):setTimeout(i(b,c+1))):void h(a.data)}).fail(function(a,b,c){h(c)})}var j=a(this),k=j.parents(".export-personal-data"),l=j.parents("tr"),m=k.data("request-id"),n=k.data("nonce"),o=k.data("exporters-count"),p=!!k.data("send-as-email");f.preventDefault(),f.stopPropagation(),k.blur(),c(l),b(k,"export-personal-data-processing"),i(1,1)}),a(".remove-personal-data-handle").click(function(f){function g(){var a=e.noDataFound,c="notice-success";b(k,"remove-personal-data-idle"),!1===p?!1===q?a=e.noDataFound:(a=e.noneRemoved,c="notice-warning"):!1===q?a=e.foundAndRemoved:(a=e.someNotRemoved,c="notice-warning"),d(l,"notice-success",a,r)}function h(){b(k,"remove-personal-data-failed"),d(l,"notice-error",e.removalError,[])}function i(b,c){a.ajax({url:window.ajaxurl,data:{action:"wp-privacy-erase-personal-data",eraser:b,id:m,page:c,security:n},method:"post"}).done(function(a){var d=a.data;return a.success?(d.items_removed&&(p=p||d.items_removed),d.items_retained&&(q=q||d.items_retained),d.messages&&(r=r.concat(d.messages)),void(d.done?b<o?setTimeout(i(b+1,1)):g():setTimeout(i(b,c+1)))):void h()}).fail(function(){h()})}var j=a(this),k=j.parents(".remove-personal-data"),l=j.parents("tr"),m=k.data("request-id"),n=k.data("nonce"),o=k.data("erasers-count"),p=!1,q=!1,r=[];f.stopPropagation(),k.blur(),c(l),b(k,"remove-personal-data-processing"),i(1,1)})}),function(a){a(document).on("click",function(b){var c,d,e,f=a(b.target);if(f.is("button.privacy-text-copy")&&(c=f.parent().parent(),d=c.find("div.wp-suggested-text"),d.length||(d=c.find("div.policy-text")),d.length))try{window.getSelection().removeAllRanges(),e=document.createRange(),d.addClass("hide-privacy-policy-tutorial"),e.selectNodeContents(d[0]),window.getSelection().addRange(e),document.execCommand("copy"),d.removeClass("hide-privacy-policy-tutorial"),window.getSelection().removeAllRanges()}catch(g){}})}(jQuery); \ No newline at end of file diff --git a/wp-admin/media-upload.php b/wp-admin/media-upload.php index ebede4e8f..988d0eb1a 100644 --- a/wp-admin/media-upload.php +++ b/wp-admin/media-upload.php @@ -34,7 +34,7 @@ $post_id = isset($post_id)? (int) $post_id : 0; // Require an ID for the edit screen. if ( isset( $action ) && $action == 'edit' && !$ID ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'Something went wrong.' ) . '</h1>' . '<p>' . __( 'Invalid item ID.' ) . '</p>', 403 ); @@ -42,7 +42,7 @@ if ( isset( $action ) && $action == 'edit' && !$ID ) { if ( ! empty( $_REQUEST['post_id'] ) && ! current_user_can( 'edit_post' , $_REQUEST['post_id'] ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'You need a higher level of permission.' ) . '</h1>' . '<p>' . __( 'Sorry, you are not allowed to edit this item.' ) . '</p>', 403 ); diff --git a/wp-admin/menu.php b/wp-admin/menu.php index 990ddf7db..2ad758ea4 100644 --- a/wp-admin/menu.php +++ b/wp-admin/menu.php @@ -249,13 +249,21 @@ $menu[75] = array( __('Tools'), 'edit_posts', 'tools.php', '', 'menu-top menu-ic if ( ! is_multisite() && defined('WP_ALLOW_MULTISITE') && WP_ALLOW_MULTISITE ) $submenu['tools.php'][50] = array(__('Network Setup'), 'setup_network', 'network.php'); -$menu[80] = array( __('Settings'), 'manage_options', 'options-general.php', '', 'menu-top menu-icon-settings', 'menu-settings', 'dashicons-admin-settings' ); - $submenu['options-general.php'][10] = array(_x('General', 'settings screen'), 'manage_options', 'options-general.php'); - $submenu['options-general.php'][15] = array(__('Writing'), 'manage_options', 'options-writing.php'); - $submenu['options-general.php'][20] = array(__('Reading'), 'manage_options', 'options-reading.php'); - $submenu['options-general.php'][25] = array(__('Discussion'), 'manage_options', 'options-discussion.php'); - $submenu['options-general.php'][30] = array(__('Media'), 'manage_options', 'options-media.php'); - $submenu['options-general.php'][40] = array(__('Permalinks'), 'manage_options', 'options-permalink.php'); +$change_notice = ''; +if ( current_user_can( 'manage_privacy_options' ) && WP_Privacy_Policy_Content::text_change_check() ) { + $change_notice = ' <span class="update-plugins 1"><span class="plugin-count">' . number_format_i18n( 1 ) . '</span></span>'; +} + +// translators: %s is the update notification bubble, if updates are available. +$menu[80] = array( sprintf( __( 'Settings %s' ), $change_notice ), 'manage_options', 'options-general.php', '', 'menu-top menu-icon-settings', 'menu-settings', 'dashicons-admin-settings' ); + $submenu['options-general.php'][10] = array( _x( 'General', 'settings screen' ), 'manage_options', 'options-general.php' ); + $submenu['options-general.php'][15] = array( __( 'Writing' ), 'manage_options', 'options-writing.php' ); + $submenu['options-general.php'][20] = array( __( 'Reading' ), 'manage_options', 'options-reading.php' ); + $submenu['options-general.php'][25] = array( __( 'Discussion' ), 'manage_options', 'options-discussion.php' ); + $submenu['options-general.php'][30] = array( __( 'Media' ), 'manage_options', 'options-media.php' ); + $submenu['options-general.php'][40] = array( __( 'Permalinks' ), 'manage_options', 'options-permalink.php' ); + // translators: %s is the update notification bubble, if updates are available. + $submenu['options-general.php'][45] = array( sprintf( __( 'Privacy %s' ), $change_notice ), 'manage_privacy_options', 'privacy.php' ); $_wp_last_utility_menu = 80; // The index of the last top-level menu in the utility menu group diff --git a/wp-admin/nav-menus.php b/wp-admin/nav-menus.php index 88485d0f6..185d54b1b 100644 --- a/wp-admin/nav-menus.php +++ b/wp-admin/nav-menus.php @@ -21,7 +21,7 @@ if ( ! current_theme_supports( 'menus' ) && ! current_theme_supports( 'widgets' // Permissions Check if ( ! current_user_can( 'edit_theme_options' ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'You need a higher level of permission.' ) . '</h1>' . '<p>' . __( 'Sorry, you are not allowed to edit theme options on this site.' ) . '</p>', 403 ); diff --git a/wp-admin/network/site-users.php b/wp-admin/network/site-users.php index 95db76575..42f71b5ac 100644 --- a/wp-admin/network/site-users.php +++ b/wp-admin/network/site-users.php @@ -154,7 +154,7 @@ if ( $action ) { // If the user doesn't already belong to the blog, bail. if ( ! is_user_member_of_blog( $user_id ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'Something went wrong.' ) . '</h1>' . '<p>' . __( 'One of the selected users is not a member of this site.' ) . '</p>', 403 ); diff --git a/wp-admin/options-media.php b/wp-admin/options-media.php index a0f8a9ebd..24ded99be 100644 --- a/wp-admin/options-media.php +++ b/wp-admin/options-media.php @@ -51,13 +51,15 @@ include( ABSPATH . 'wp-admin/admin-header.php' ); <table class="form-table"> <tr> <th scope="row"><?php _e('Thumbnail size') ?></th> -<td> -<label for="thumbnail_size_w"><?php _e('Width'); ?></label> -<input name="thumbnail_size_w" type="number" step="1" min="0" id="thumbnail_size_w" value="<?php form_option('thumbnail_size_w'); ?>" class="small-text" /> -<label for="thumbnail_size_h"><?php _e('Height'); ?></label> -<input name="thumbnail_size_h" type="number" step="1" min="0" id="thumbnail_size_h" value="<?php form_option('thumbnail_size_h'); ?>" class="small-text" /> -<p><input name="thumbnail_crop" type="checkbox" id="thumbnail_crop" value="1" <?php checked('1', get_option('thumbnail_crop')); ?>/> -<label for="thumbnail_crop"><?php _e('Crop thumbnail to exact dimensions (normally thumbnails are proportional)'); ?></label></p> +<td><fieldset><legend class="screen-reader-text"><span><?php _e( 'Thumbnail size' ); ?></span></legend> +<label for="thumbnail_size_w"><?php _e( 'Width' ); ?></label> +<input name="thumbnail_size_w" type="number" step="1" min="0" id="thumbnail_size_w" value="<?php form_option( 'thumbnail_size_w' ); ?>" class="small-text" /> +<br /> +<label for="thumbnail_size_h"><?php _e( 'Height' ); ?></label> +<input name="thumbnail_size_h" type="number" step="1" min="0" id="thumbnail_size_h" value="<?php form_option( 'thumbnail_size_h' ); ?>" class="small-text" /> +</fieldset> +<input name="thumbnail_crop" type="checkbox" id="thumbnail_crop" value="1" <?php checked( '1', get_option( 'thumbnail_crop' ) ); ?>/> +<label for="thumbnail_crop"><?php _e( 'Crop thumbnail to exact dimensions (normally thumbnails are proportional)' ); ?></label> </td> </tr> diff --git a/wp-admin/options.php b/wp-admin/options.php index f7aa8cf50..611605259 100644 --- a/wp-admin/options.php +++ b/wp-admin/options.php @@ -46,7 +46,7 @@ if ( empty($option_page) ) { if ( ! current_user_can( $capability ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'You need a higher level of permission.' ) . '</h1>' . '<p>' . __( 'Sorry, you are not allowed to manage these options.' ) . '</p>', 403 ); @@ -74,7 +74,7 @@ if ( ! empty( $_GET[ 'adminhash' ] ) ) { if ( is_multisite() && ! current_user_can( 'manage_network_options' ) && 'update' != $action ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'You need a higher level of permission.' ) . '</h1>' . '<p>' . __( 'Sorry, you are not allowed to delete these items.' ) . '</p>', 403 ); diff --git a/wp-admin/post-new.php b/wp-admin/post-new.php index 46e402ab0..5eee06a66 100644 --- a/wp-admin/post-new.php +++ b/wp-admin/post-new.php @@ -56,7 +56,7 @@ $editing = true; if ( ! current_user_can( $post_type_object->cap->edit_posts ) || ! current_user_can( $post_type_object->cap->create_posts ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'You need a higher level of permission.' ) . '</h1>' . '<p>' . __( 'Sorry, you are not allowed to create posts as this user.' ) . '</p>', 403 ); diff --git a/wp-admin/press-this.php b/wp-admin/press-this.php index ddf0d6c7a..ddf760398 100644 --- a/wp-admin/press-this.php +++ b/wp-admin/press-this.php @@ -18,7 +18,7 @@ function wp_load_press_this() { if ( ! current_user_can( 'edit_posts' ) || ! current_user_can( get_post_type_object( 'post' )->cap->create_posts ) ) { wp_die( __( 'Sorry, you are not allowed to create posts as this user.' ), - __( 'Cheatin’ uh?' ), + __( 'You need a higher level of permission.' ), 403 ); } elseif ( is_plugin_active( $plugin_file ) ) { diff --git a/wp-admin/privacy.php b/wp-admin/privacy.php index c0fcbba87..991ad72ef 100644 --- a/wp-admin/privacy.php +++ b/wp-admin/privacy.php @@ -1,6 +1,6 @@ <?php /** - * Privacy administration panel. + * Privacy Settings Screen. * * @package WordPress * @subpackage Administration @@ -9,34 +9,222 @@ /** WordPress Administration Bootstrap */ require_once( dirname( __FILE__ ) . '/admin.php' ); -$title = __( 'Privacy' ); +if ( ! current_user_can( 'manage_privacy_options' ) ) { + wp_die( __( 'Sorry, you are not allowed to manage privacy on this site.' ) ); +} -list( $display_version ) = explode( '-', get_bloginfo( 'version' ) ); +$action = isset( $_POST['action'] ) ? $_POST['action'] : ''; + +if ( ! empty( $action ) ) { + check_admin_referer( $action ); + + if ( 'set-privacy-page' === $action ) { + $privacy_policy_page_id = isset( $_POST['page_for_privacy_policy'] ) ? (int) $_POST['page_for_privacy_policy'] : 0; + update_option( 'wp_page_for_privacy_policy', $privacy_policy_page_id ); + + add_settings_error( + 'page_for_privacy_policy', + 'page_for_privacy_policy', + sprintf( + /* translators: %s: URL to Customizer -> Menus */ + __( 'Privacy policy page updated successfully. Remember to <a href="%s">update your menus</a>!' ), + 'customize.php?autofocus[panel]=nav_menus' + ), + 'updated' + ); + } elseif ( 'create-privacy-page' === $action ) { + + if ( ! class_exists( 'WP_Privacy_Policy_Content' ) ) { + require_once( ABSPATH . 'wp-admin/includes/misc.php' ); + } + + $privacy_policy_page_content = WP_Privacy_Policy_Content::get_default_content(); + $privacy_policy_page_id = wp_insert_post( + array( + 'post_title' => __( 'Privacy Policy' ), + 'post_status' => 'draft', + 'post_type' => 'page', + 'post_content' => $privacy_policy_page_content, + ), + true + ); + + if ( is_wp_error( $privacy_policy_page_id ) ) { + add_settings_error( + 'page_for_privacy_policy', + 'page_for_privacy_policy', + __( 'Unable to create privacy policy page.' ), + 'error' + ); + } else { + update_option( 'wp_page_for_privacy_policy', $privacy_policy_page_id ); + + wp_redirect( admin_url( 'post.php?post=' . $privacy_policy_page_id . '&action=edit' ) ); + exit; + } + } +} + +// If a privacy policy page ID is available, make sure the page actually exists. If not, display an error. +$privacy_policy_page_exists = false; +$privacy_policy_page_id = (int) get_option( 'wp_page_for_privacy_policy' ); + +if ( ! empty( $privacy_policy_page_id ) ) { + + $privacy_policy_page = get_post( $privacy_policy_page_id ); + + if ( ! $privacy_policy_page instanceof WP_Post ) { + add_settings_error( + 'page_for_privacy_policy', + 'page_for_privacy_policy', + __( 'The currently selected privacy policy page does not exist. Please create or select new page.' ), + 'error' + ); + } else { + if ( 'trash' === $privacy_policy_page->post_status ) { + add_settings_error( + 'page_for_privacy_policy', + 'page_for_privacy_policy', + sprintf( + /* translators: URL to Pages Trash */ + __( 'The currently selected privacy policy page is in the trash. Please create or select new privacy policy page or <a href="%s">restore the current page</a>.' ), + 'edit.php?post_status=trash&post_type=page' + ), + 'error' + ); + } else { + $privacy_policy_page_exists = true; + } + } +} + +$title = __( 'Privacy Settings' ); +$parent_file = 'options-general.php'; + +require_once( ABSPATH . 'wp-admin/admin-header.php' ); -include( ABSPATH . 'wp-admin/admin-header.php' ); ?> -<div class="wrap about-wrap full-width-layout"> +<div class="wrap"> + <h1><?php echo $title; ?></h1> + <h2><?php _e( 'Privacy Policy page' ); ?></h2> + <p> + <?php _e( 'As a website owner, you may need to follow national or international privacy laws. For example, you may need to create and display a privacy policy.' ); ?> + <?php _e( 'If you already have a privacy policy page, please select it below. If not, please create one.' ); ?> + </p> + <p> + <?php _e( 'The new page will include help and suggestions for your privacy policy.' ); ?> + <?php _e( 'However, it is your responsibility to use those resources correctly, to provide the information that your privacy policy requires, and to keep that information current and accurate.' ); ?> + </p> + <p> + <?php _e( 'After your privacy policy page is set, we suggest that you edit it.' ); ?> + <?php _e( 'We would also suggest reviewing your privacy policy from time to time, especially after installing or updating any themes or plugins. There may be changes or new suggested information for you to consider adding to your policy.' ); ?> + </p> + <?php -<h1><?php printf( __( 'Welcome to WordPress %s' ), $display_version ); ?></h1> + if ( $privacy_policy_page_exists ) { + $edit_href = add_query_arg( + array( + 'post' => $privacy_policy_page_id, + 'action' => 'edit', + ), + admin_url( 'post.php' ) + ); -<p class="about-text"><?php printf( __( 'Thank you for updating to the latest version! WordPress %s will smooth your design workflow and keep you safe from coding errors.' ), $display_version ); ?></p> + $view_href = get_permalink( $privacy_policy_page_id ); -<div class="wp-badge"><?php printf( __( 'Version %s' ), $display_version ); ?></div> + ?> + <p class="tools-privacy-edit"><strong> + <?php -<h2 class="nav-tab-wrapper wp-clearfix"> - <a href="about.php" class="nav-tab"><?php _e( 'What’s New' ); ?></a> - <a href="credits.php" class="nav-tab"><?php _e( 'Credits' ); ?></a> - <a href="freedoms.php" class="nav-tab"><?php _e( 'Freedoms' ); ?></a> - <a href="privacy.php" class="nav-tab nav-tab-active"><?php _e( 'Privacy' ); ?></a> -</h2> + /* translators: 1: URL to edit page, 2: URL to view page */ + printf( __( '<a href="%1$s">Edit</a> or <a href="%2$s">view</a> your privacy policy page content.' ), $edit_href, $view_href ); -<div class="about-wrap-content"> - <p class="about-description"><?php _e( 'From time to time, your WordPress site may send data to WordPress.org — including, but not limited to — the version of WordPress you are using, and a list of installed plugins and themes.' ); ?></p> + ?> + </strong></p> + <p> + <?php - <p><?php printf( __( 'This data is used to provide general enhancements to WordPress, which includes helping to protect your site by finding and automatically installing new updates. It is also used to calculate statistics, such as those shown on the <a href="%s">WordPress.org stats page</a>.' ), 'https://wordpress.org/about/stats/' ); ?></p> + /* translators: 1: Privacy Policy guide URL, 2: additional link attributes, 3: accessibility text */ + printf( + __( 'Need help putting together your new Privacy Policy page? <a href="%1$s" %2$s>Check out our guide%3$s</a> for recommendations on what content to include, along with policies suggested by your plugins and theme.' ), + admin_url( 'tools.php?wp-privacy-policy-guide' ), + '', + '' + ); - <p><?php printf( __( 'We take privacy and transparency very seriously. To learn more about what data we collect, and how we use it, please visit <a href="%s">WordPress.org/about/privacy</a>.' ), 'https://wordpress.org/about/privacy/' ); ?></p> -</div> + ?> + </p> + <?php + } + ?> + <hr> + <table class="form-table tools-privacy-policy-page"> + <tr> + <th scope="row"> + <?php + if ( $privacy_policy_page_exists ) { + _e( 'Change your Privacy Policy page' ); + } else { + _e( 'Select a Privacy Policy page' ); + } + ?> + </th> + <td> + <?php + $has_pages = (bool) get_posts( array( + 'post_type' => 'page', + 'posts_per_page' => 1, + 'post_status' => array( + 'publish', + 'draft', + ), + ) ); + + if ( $has_pages ) : ?> + <form method="post" action=""> + <label for="page_for_privacy_policy"> + <?php _e( 'Select an existing page:' ); ?> + </label> + <input type="hidden" name="action" value="set-privacy-page" /> + <?php + wp_dropdown_pages( + array( + 'name' => 'page_for_privacy_policy', + 'show_option_none' => __( '— Select —' ), + 'option_none_value' => '0', + 'selected' => $privacy_policy_page_id, + 'post_status' => array( 'draft', 'publish' ), + ) + ); + wp_nonce_field( 'set-privacy-page' ); + + submit_button( __( 'Use This Page' ), 'primary', 'submit', false, array( 'id' => 'set-page' ) ); + ?> + </form> + <?php endif; ?> + + <form class="wp-create-privacy-page" method="post" action=""> + <input type="hidden" name="action" value="create-privacy-page" /> + <span> + <?php + if ( $has_pages ) { + _e( 'Or:' ); + } else { + _e( 'There are no pages.' ); + } + ?> + </span> + <?php + wp_nonce_field( 'create-privacy-page' ); + + submit_button( __( 'Create New Page' ), 'primary', 'submit', false, array( 'id' => 'create-page' ) ); + ?> + </form> + </td> + </tr> + </table> </div> -<?php include( ABSPATH . 'wp-admin/admin-footer.php' ); ?> +<?php + +include( ABSPATH . 'wp-admin/admin-footer.php' ); diff --git a/wp-admin/term.php b/wp-admin/term.php index 1f79f088e..64b11123c 100644 --- a/wp-admin/term.php +++ b/wp-admin/term.php @@ -34,7 +34,7 @@ if ( ! in_array( $taxonomy, get_taxonomies( array( 'show_ui' => true ) ) ) || ! current_user_can( 'edit_term', $tag->term_id ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'You need a higher level of permission.' ) . '</h1>' . '<p>' . __( 'Sorry, you are not allowed to edit this item.' ) . '</p>', 403 ); diff --git a/wp-admin/themes.php b/wp-admin/themes.php index 921898323..d5c803f35 100644 --- a/wp-admin/themes.php +++ b/wp-admin/themes.php @@ -11,7 +11,7 @@ require_once( dirname( __FILE__ ) . '/admin.php' ); if ( ! current_user_can( 'switch_themes' ) && ! current_user_can( 'edit_theme_options' ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'You need a higher level of permission.' ) . '</h1>' . '<p>' . __( 'Sorry, you are not allowed to edit theme options on this site.' ) . '</p>', 403 ); @@ -24,7 +24,7 @@ if ( current_user_can( 'switch_themes' ) && isset($_GET['action'] ) ) { if ( ! $theme->exists() || ! $theme->is_allowed() ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'Something went wrong.' ) . '</h1>' . '<p>' . __( 'The requested theme does not exist.' ) . '</p>', 403 ); @@ -39,7 +39,7 @@ if ( current_user_can( 'switch_themes' ) && isset($_GET['action'] ) ) { if ( ! current_user_can( 'delete_themes' ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'You need a higher level of permission.' ) . '</h1>' . '<p>' . __( 'Sorry, you are not allowed to delete this item.' ) . '</p>', 403 ); @@ -47,7 +47,7 @@ if ( current_user_can( 'switch_themes' ) && isset($_GET['action'] ) ) { if ( ! $theme->exists() ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'Something went wrong.' ) . '</h1>' . '<p>' . __( 'The requested theme does not exist.' ) . '</p>', 403 ); diff --git a/wp-admin/tools.php b/wp-admin/tools.php index b61d71f5d..ddb092176 100644 --- a/wp-admin/tools.php +++ b/wp-admin/tools.php @@ -9,20 +9,31 @@ /** WordPress Administration Bootstrap */ require_once( dirname( __FILE__ ) . '/admin.php' ); -$title = __('Tools'); +$is_privacy_guide = ( isset( $_GET['wp-privacy-policy-guide'] ) && current_user_can( 'manage_privacy_options' ) ); -get_current_screen()->add_help_tab( array( - 'id' => 'converter', - 'title' => __('Categories and Tags Converter'), - 'content' => '<p>' . __('Categories have hierarchy, meaning that you can nest sub-categories. Tags do not have hierarchy and cannot be nested. Sometimes people start out using one on their posts, then later realize that the other would work better for their content.' ) . '</p>' . - '<p>' . __( 'The Categories and Tags Converter link on this screen will take you to the Import screen, where that Converter is one of the plugins you can install. Once that plugin is installed, the Activate Plugin & Run Importer link will take you to a screen where you can choose to convert tags into categories or vice versa.' ) . '</p>', -) ); +if ( $is_privacy_guide ) { + $title = __( 'Privacy Policy Guide' ); -get_current_screen()->set_help_sidebar( - '<p><strong>' . __('For more information:') . '</strong></p>' . - '<p>' . __('<a href="https://codex.wordpress.org/Tools_Screen">Documentation on Tools</a>') . '</p>' . - '<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>' -); + // "Borrow" xfn.js for now so we don't have to create new files. + wp_enqueue_script( 'xfn' ); + +} else { + + $title = __('Tools'); + + get_current_screen()->add_help_tab( array( + 'id' => 'converter', + 'title' => __('Categories and Tags Converter'), + 'content' => '<p>' . __('Categories have hierarchy, meaning that you can nest sub-categories. Tags do not have hierarchy and cannot be nested. Sometimes people start out using one on their posts, then later realize that the other would work better for their content.' ) . '</p>' . + '<p>' . __( 'The Categories and Tags Converter link on this screen will take you to the Import screen, where that Converter is one of the plugins you can install. Once that plugin is installed, the Activate Plugin & Run Importer link will take you to a screen where you can choose to convert tags into categories or vice versa.' ) . '</p>', + ) ); + + get_current_screen()->set_help_sidebar( + '<p><strong>' . __('For more information:') . '</strong></p>' . + '<p>' . __('<a href="https://codex.wordpress.org/Tools_Screen">Documentation on Tools</a>') . '</p>' . + '<p>' . __('<a href="https://wordpress.org/support/">Support Forums</a>') . '</p>' + ); +} require_once( ABSPATH . 'wp-admin/admin-header.php' ); @@ -30,24 +41,35 @@ require_once( ABSPATH . 'wp-admin/admin-header.php' ); <div class="wrap"> <h1><?php echo esc_html( $title ); ?></h1> <?php -if ( current_user_can( 'import' ) ) : -$cats = get_taxonomy('category'); -$tags = get_taxonomy('post_tag'); -if ( current_user_can($cats->cap->manage_terms) || current_user_can($tags->cap->manage_terms) ) : ?> -<div class="card"> - <h2 class="title"><?php _e( 'Categories and Tags Converter' ) ?></h2> - <p><?php printf( __('If you want to convert your categories to tags (or vice versa), use the <a href="%s">Categories and Tags Converter</a> available from the Import screen.'), 'import.php' ); ?></p> -</div> -<?php -endif; -endif; -/** - * Fires at the end of the Tools Administration screen. - * - * @since 2.8.0 - */ -do_action( 'tool_box' ); +if ( $is_privacy_guide ) { + ?> + <div class="wp-privacy-policy-guide"> + <?php WP_Privacy_Policy_Content::privacy_policy_guide(); ?> + </div> + <?php + +} else { + + if ( current_user_can( 'import' ) ) : + $cats = get_taxonomy('category'); + $tags = get_taxonomy('post_tag'); + if ( current_user_can($cats->cap->manage_terms) || current_user_can($tags->cap->manage_terms) ) : ?> + <div class="card"> + <h2 class="title"><?php _e( 'Categories and Tags Converter' ) ?></h2> + <p><?php printf( __('If you want to convert your categories to tags (or vice versa), use the <a href="%s">Categories and Tags Converter</a> available from the Import screen.'), 'import.php' ); ?></p> + </div> + <?php + endif; + endif; + + /** + * Fires at the end of the Tools Administration screen. + * + * @since 2.8.0 + */ + do_action( 'tool_box' ); +} ?> </div> <?php diff --git a/wp-admin/user-new.php b/wp-admin/user-new.php index 641fd822f..6fda4634f 100644 --- a/wp-admin/user-new.php +++ b/wp-admin/user-new.php @@ -12,14 +12,14 @@ require_once( dirname( __FILE__ ) . '/admin.php' ); if ( is_multisite() ) { if ( ! current_user_can( 'create_users' ) && ! current_user_can( 'promote_users' ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'You need a higher level of permission.' ) . '</h1>' . '<p>' . __( 'Sorry, you are not allowed to add users to this network.' ) . '</p>', 403 ); } } elseif ( ! current_user_can( 'create_users' ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'You need a higher level of permission.' ) . '</h1>' . '<p>' . __( 'Sorry, you are not allowed to create users.' ) . '</p>', 403 ); @@ -52,7 +52,7 @@ if ( isset($_REQUEST['action']) && 'adduser' == $_REQUEST['action'] ) { if ( ! current_user_can( 'promote_user', $user_details->ID ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'You need a higher level of permission.' ) . '</h1>' . '<p>' . __( 'Sorry, you are not allowed to add users to this network.' ) . '</p>', 403 ); @@ -118,7 +118,7 @@ Please click the following link to confirm the invite: if ( ! current_user_can( 'create_users' ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'You need a higher level of permission.' ) . '</h1>' . '<p>' . __( 'Sorry, you are not allowed to create users.' ) . '</p>', 403 ); diff --git a/wp-admin/users.php b/wp-admin/users.php index 93d91c83c..cae3d8360 100644 --- a/wp-admin/users.php +++ b/wp-admin/users.php @@ -12,7 +12,7 @@ require_once( dirname( __FILE__ ) . '/admin.php' ); if ( ! current_user_can( 'list_users' ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'You need a higher level of permission.' ) . '</h1>' . '<p>' . __( 'Sorry, you are not allowed to list users.' ) . '</p>', 403 ); @@ -130,7 +130,7 @@ case 'promote': // If the user doesn't already belong to the blog, bail. if ( is_multisite() && !is_user_member_of_blog( $id ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'Something went wrong.' ) . '</h1>' . '<p>' . __( 'One of the selected users is not a member of this site.' ) . '</p>', 403 ); diff --git a/wp-admin/widgets.php b/wp-admin/widgets.php index d967c5ccb..f3a35ec01 100644 --- a/wp-admin/widgets.php +++ b/wp-admin/widgets.php @@ -14,7 +14,7 @@ require_once(ABSPATH . 'wp-admin/includes/widgets.php'); if ( ! current_user_can( 'edit_theme_options' ) ) { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'You need a higher level of permission.' ) . '</h1>' . '<p>' . __( 'Sorry, you are not allowed to edit theme options on this site.' ) . '</p>', 403 ); diff --git a/wp-comments-post.php b/wp-comments-post.php index 2c421d327..ef67a0799 100644 --- a/wp-comments-post.php +++ b/wp-comments-post.php @@ -33,16 +33,19 @@ if ( is_wp_error( $comment ) ) { } $user = wp_get_current_user(); +$cookies_consent = ( isset( $_POST['wp-comment-cookies-consent'] ) ); /** * Perform other actions when comment cookies are set. * * @since 3.4.0 + * @since 4.9.6 The `$cookies_consent` parameter was added. * - * @param WP_Comment $comment Comment object. - * @param WP_User $user User object. The user may not exist. + * @param WP_Comment $comment Comment object. + * @param WP_User $user Comment author's user object. The user may not exist. + * @param boolean $cookies_consent Comment author's consent to store cookies. */ -do_action( 'set_comment_cookies', $comment, $user ); +do_action( 'set_comment_cookies', $comment, $user, $cookies_consent ); $location = empty( $_POST['redirect_to'] ) ? get_comment_link( $comment ) : $_POST['redirect_to'] . '#comment-' . $comment->comment_ID; diff --git a/wp-content/plugins/akismet/.htaccess b/wp-content/plugins/akismet/.htaccess new file mode 100644 index 000000000..49d72d71d --- /dev/null +++ b/wp-content/plugins/akismet/.htaccess @@ -0,0 +1,34 @@ +# Only allow direct access to specific Web-available files. + +# Apache 2.2 +<IfModule !mod_authz_core.c> + Order Deny,Allow + Deny from all +</IfModule> + +# Apache 2.4 +<IfModule mod_authz_core.c> + Require all denied +</IfModule> + +# Akismet CSS and JS +<FilesMatch "^(form\.js|akismet\.js|akismet\.css)$"> + <IfModule !mod_authz_core.c> + Allow from all + </IfModule> + + <IfModule mod_authz_core.c> + Require all granted + </IfModule> +</FilesMatch> + +# Akismet images +<FilesMatch "^logo-full-2x\.png$"> + <IfModule !mod_authz_core.c> + Allow from all + </IfModule> + + <IfModule mod_authz_core.c> + Require all granted + </IfModule> +</FilesMatch> \ No newline at end of file diff --git a/wp-content/plugins/akismet/LICENSE.txt b/wp-content/plugins/akismet/LICENSE.txt new file mode 100644 index 000000000..d159169d1 --- /dev/null +++ b/wp-content/plugins/akismet/LICENSE.txt @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + <signature of Ty Coon>, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/wp-content/plugins/akismet/_inc/akismet.css b/wp-content/plugins/akismet/_inc/akismet.css new file mode 100644 index 000000000..85f3c5ec7 --- /dev/null +++ b/wp-content/plugins/akismet/_inc/akismet.css @@ -0,0 +1,586 @@ +.wp-admin.jetpack_page_akismet-key-config, .wp-admin.settings_page_akismet-key-config { + background-color:#f3f6f8; +} + +#submitted-on { + position: relative; +} +#the-comment-list .author .akismet-user-comment-count { + display: inline; +} +#the-comment-list .author a span { + text-decoration: none; + color: #999; +} +#the-comment-list .author a span.akismet-span-link { + text-decoration: inherit; + color: inherit; +} +#the-comment-list .akismet_remove_url { + margin-left: 3px; + color: #999; + padding: 2px 3px 2px 0; +} +#the-comment-list .akismet_remove_url:hover { + color: #A7301F; + font-weight: bold; + padding: 2px 2px 2px 0; +} +#dashboard_recent_comments .akismet-status { + display: none; +} +.akismet-status { + float: right; +} +.akismet-status a { + color: #AAA; + font-style: italic; +} +table.comments td.comment p a { + text-decoration: underline; +} +table.comments td.comment p a:after { + content: attr(href); + color: #aaa; + display: inline-block; /* Show the URL without the link's underline extending under it. */ + padding: 0 1ex; /* Because it's inline block, we can't just use spaces in the content: attribute to separate it from the link text. */ +} +.mshot-arrow { + width: 0; + height: 0; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + border-right: 10px solid #5C5C5C; + position: absolute; + left: -6px; + top: 91px; +} +.mshot-container { + background: #5C5C5C; + position: absolute; + top: -94px; + padding: 7px; + width: 450px; + height: 338px; + z-index: 20000; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-border-radius: 6px; +} +.akismet-mshot { + position: absolute; + z-index: 100; +} +.akismet-mshot .mshot-image { + margin: 0; + height: 338px; + width: 450px; +} +.checkforspam { + display: inline-block !important; +} +.checkforspam-progress { + padding-left: 1ex; + display: none; +} +.checkforspam.button-disabled .checkforspam-progress { + display: inline; +} + +.checkforspam-spinner { + display: inline-block; + margin-top: 7px; +} + +.akismet-right { + float: right; +} + +.akismet-card .akismet-right { + margin: 1em 0; +} + +.akismet-alert-text { + color: #dd3d36; + font-weight: bold; + font-size: 120%; + margin-top: .5rem; +} +.akismet-alert { + border: 1px solid #e5e5e5; + padding: 0.4em 1em 1.4em 1em; + border-radius: 3px; + -webkit-border-radius: 3px; + border-width: 1px; + border-style: solid; +} + +.akismet-alert h3.akismet-key-status { + color: #fff; + margin: 1em 0 0.5em 0; +} + +.akismet-alert.akismet-critical { + background-color: #993300; +} + +.akismet-alert.akismet-active { + background-color: #649316; +} + +.akismet-alert p.akismet-key-status { + font-size: 24px; +} + +.akismet-alert p.akismet-description { + color:#fff; + font-size: 14px; + margin: 0 0; + font-style: normal; +} + +.akismet-alert p.akismet-description a, +.akismet-alert p.akismet-description a, +.akismet-alert p.akismet-description a, +.akismet-alert p.akismet-description a { + color: #fff; +} + +.akismet-new-snapshot { + margin-top: 1em; + padding: 1em; + text-align: center; + background: #fff; +} + +.akismet-new-snapshot h3 { + background: #f5f5f5; + color: #888; + font-size: 11px; + margin: 0; + padding: 3px; +} + +.new-snapspot ul { + font-size: 12px; + width: 100%; +} + +.akismet-new-snapshot ul li { + color: #999; + float: left; + font-size: 11px; + padding: 0 20px; + text-transform: uppercase; + width: 33%; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; +} + +.akismet-new-snapshot ul li:first-child, +.akismet-new-snapshot ul li:nth-child(2) { + border-right:1px dotted #ccc; +} + +.akismet-new-snapshot ul li span { + color: #52accc; + display: block; + font-size: 32px; + font-weight: lighter; + line-height: 1.5em; +} + +.akismet-settings th:first-child { + vertical-align: top; + padding-top: 15px; +} + +.akismet-settings th.akismet-api-key { + vertical-align: middle; + padding-top: 0; +} + +.akismet-settings input[type=text] { + width: 75%; +} + +.akismet-settings span.akismet-note{ + float: left; + padding-left: 23px; + font-size: 75%; + margin-top: -10px; +} + +/** + * For the activation notice on the plugins page. + */ +.akismet_activate { + min-width: 825px; + border: 1px solid #4F800D; + padding: 5px; + margin: 15px 0; + background: #83AF24; + background-image: -webkit-gradient(linear, 0% 0, 80% 100%, from(#83AF24), to(#4F800D)); + background-image: -moz-linear-gradient(80% 100% 120deg, #4F800D, #83AF24); + -moz-border-radius: 3px; + border-radius: 3px; + -webkit-border-radius: 3px; + position: relative; + overflow: hidden; +} + +.akismet_activate .aa_a { + position: absolute; + top: -5px; + right: 10px; + font-size: 140px; + color: #769F33; + font-family: Georgia, "Times New Roman", Times, serif; + z-index: 1; +} + +.akismet_activate .aa_button { + font-weight: bold; + border: 1px solid #029DD6; + border-top: 1px solid #06B9FD; + font-size: 15px; + text-align: center; + padding: 9px 0 8px 0; + color: #FFF; + background: #029DD6; + background-image: -webkit-gradient(linear, 0% 0, 0% 100%, from(#029DD6), to(#0079B1)); + background-image: -moz-linear-gradient(0% 100% 90deg, #0079B1, #029DD6); + -moz-border-radius: 2px; + border-radius: 2px; + -webkit-border-radius: 2px; + width: 100%; + cursor: pointer; + margin: 0; +} + +.akismet_activate .aa_button:hover { + text-decoration: none !important; + border: 1px solid #029DD6; + border-bottom: 1px solid #00A8EF; + font-size: 15px; + text-align: center; + padding: 9px 0 8px 0; + color: #F0F8FB; + background: #0079B1; + background-image: -webkit-gradient(linear, 0% 0, 0% 100%, from(#0079B1), to(#0092BF)); + background-image: -moz-linear-gradient(0% 100% 90deg, #0092BF, #0079B1); + -moz-border-radius: 2px; + border-radius: 2px; + -webkit-border-radius: 2px; +} + +.akismet_activate .aa_button_border { + border: 1px solid #006699; + -moz-border-radius: 2px; + border-radius: 2px; + -webkit-border-radius: 2px; + background: #029DD6; + background-image: -webkit-gradient(linear, 0% 0, 0% 100%, from(#029DD6), to(#0079B1)); + background-image: -moz-linear-gradient(0% 100% 90deg, #0079B1, #029DD6); +} + +.akismet_activate .aa_button_container { + display: inline-block; + background: #DEF1B8; + padding: 5px; + -moz-border-radius: 2px; + border-radius: 2px; + -webkit-border-radius: 2px; + width: 266px; +} + +.akismet_activate .aa_description { + position: absolute; + top: 22px; + left: 285px; + margin-left: 25px; + color: #E5F2B1; + font-size: 15px; + z-index: 1000; +} + +.akismet_activate .aa_description strong { + color: #FFF; + font-weight: normal; +} + +.jetpack_page_akismet-key-config #wpcontent, .settings_page_akismet-key-config #wpcontent { + padding-left: 0; +} + +.akismet-masthead { + background-color:#fff; + text-align:center; + box-shadow:0 1px 0 rgba(200,215,225,0.5),0 1px 2px #e9eff3 +} +@media (max-width: 45rem) { + .akismet-masthead { + padding:0 1.25rem + } +} + +.akismet-masthead__inside-container { + padding:.375rem 0; + margin:0 auto; + width:100%; + max-width:45rem; + text-align: left; +} +.akismet-masthead__logo-container { + padding:.3125rem 0 0 +} +.akismet-masthead__logo { + width:10.375rem; + height:1.8125rem; +} +.akismet-masthead__logo-link { + display:inline-block; + outline:none; + vertical-align:middle +} +.akismet-masthead__logo-link:focus { + line-height:0; + box-shadow:0 0 0 2px #78dcfa +} +.akismet-masthead__logo-link+code { + margin:0 10px; + padding:5px 9px; + border-radius:2px; + background:#e6ecf1; + color:#647a88 +} +.akismet-masthead__links { + display:-ms-flexbox; + display:flex; + -ms-flex-flow:row wrap; + flex-flow:row wrap; + -ms-flex:2 50%; + flex:2 50%; + -ms-flex-pack:end; + justify-content:flex-end; + margin:0 +} +@media (max-width: 480px) { + .akismet-masthead__links { + padding-right:.625rem + } +} +.akismet-masthead__link-li { + margin:0; + padding:0 +} +.akismet-masthead__link { + font-style:normal; + color:#0087be; + padding:.625rem; + display:inline-block +} +.akismet-masthead__link:visited { + color:#0087be +} +.akismet-masthead__link:active,.akismet-masthead__link:hover { + color:#00aadc +} +.akismet-masthead__link:hover { + text-decoration:underline +} +.akismet-masthead__link .dashicons { + display:none +} +@media (max-width: 480px) { + .akismet-masthead__link:hover,.akismet-masthead__link:active { + text-decoration:none + } + .akismet-masthead__link .dashicons { + display:block; + font-size:1.75rem + } + .akismet-masthead__link span+span { + display:none + } +} +.akismet-masthead__link-li:last-of-type .akismet-masthead__link { + padding-right:0 +} + +.akismet-lower { + margin: 0 auto; + text-align: left; + max-width: 45rem; + padding: 1.5rem; +} + +.akismet-card { + margin-top: 1rem; + margin-bottom: 0; + position: relative; + margin: 0 auto 0.625rem auto; + box-sizing: border-box; + background: white; + box-shadow: 0 0 0 1px rgba(200, 215, 225, 0.5), 0 1px 2px #e9eff3; +} + +.akismet-card:after, .akismet-card .inside:after, .akismet-masthead__logo-container:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +.akismet-card .inside { + padding: 1.5rem; + padding-top: 1rem; +} + +.akismet-card .akismet-card-actions { + margin-top: 1rem; +} + +.jetpack_page_akismet-key-config .update-nag, .settings_page_akismet-key-config .update-nag { + display: none; +} + +.akismet-masthead .akismet-right { + line-height: 2.125rem; + font-size: 0.9rem; +} + +.akismet-box { + box-sizing: border-box; + background: white; + border: 1px solid rgba(200, 215, 225, 0.5); +} + +.akismet-box h2, .akismet-box h3 { + padding: 1.5rem 1.5rem .5rem 1.5rem; + margin: 0; +} + +.akismet-box p { + padding: 0 1.5rem 1.5rem 1.5rem; + margin: 0; +} + +.akismet-jetpack-email { + font-style: oblique; +} + +.akismet-jetpack-gravatar { + padding: 0 0 0 1.5rem; + float: left; + margin-right: 1rem; + width: 54px; + height: 54px; +} + +.akismet-box p:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} + +.akismet-box .akismet-right { + padding-right: 1.5rem; +} + +.akismet-boxes .akismet-box { + margin-bottom: 0; + padding: 0; + margin-top: -1px; +} + +.akismet-boxes .akismet-box:last-child { + margin-bottom: 1.5rem; +} + +.akismet-boxes .akismet-box:first-child { + margin-top: 1.5rem; +} + +.akismet-button, .akismet-button:hover, .akismet-button:visited { + background: white; + border-color: #c8d7e1; + border-style: solid; + border-width: 1px 1px 2px; + color: #2e4453; + cursor: pointer; + display: inline-block; + margin: 0; + outline: 0; + overflow: hidden; + font-size: 14px; + font-weight: 500; + text-overflow: ellipsis; + text-decoration: none; + vertical-align: top; + box-sizing: border-box; + font-size: 14px; + line-height: 21px; + border-radius: 4px; + padding: 7px 14px 9px; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.akismet-button:hover { + border-color: #a8bece; +} + +.akismet-button:active { + border-width: 2px 1px 1px; +} + +.akismet-is-primary, .akismet-is-primary:hover, .akismet-is-primary:visited { + background: #00aadc; + border-color: #0087be; + color: white; +} + +.akismet-is-primary:hover, .akismet-is-primary:focus { + border-color: #005082; +} + +.akismet-is-primary:hover { + border-color: #005082; +} + +.akismet-section-header { + position: relative; + margin: 0 auto 0.625rem auto; + padding: 1rem; + box-sizing: border-box; + box-shadow: 0 0 0 1px rgba(200, 215, 225, 0.5), 0 1px 2px #e9eff3; + background: #ffffff; + width: 100%; + padding-top: 0.6875rem; + padding-bottom: 0.6875rem; + display: flex; +} + +.akismet-section-header__label { + display: -ms-flexbox; + display: flex; + -ms-flex-align: center; + align-items: center; + -ms-flex-positive: 1; + flex-grow: 1; + line-height: 1.75rem; + position: relative; + font-size: 0.875rem; + color: #4f748e; +} + +.akismet-section-header__actions { + line-height: 1.75rem; +} \ No newline at end of file diff --git a/wp-content/plugins/akismet/_inc/akismet.js b/wp-content/plugins/akismet/_inc/akismet.js new file mode 100644 index 000000000..cac4d57fd --- /dev/null +++ b/wp-content/plugins/akismet/_inc/akismet.js @@ -0,0 +1,276 @@ +jQuery( function ( $ ) { + var mshotRemovalTimer = null; + var mshotSecondTryTimer = null + var mshotThirdTryTimer = null + + var mshotEnabledLinkSelector = 'a[id^="author_comment_url"], tr.pingback td.column-author a:first-of-type, td.comment p a'; + + $('.akismet-status').each(function () { + var thisId = $(this).attr('commentid'); + $(this).prependTo('#comment-' + thisId + ' .column-comment'); + }); + $('.akismet-user-comment-count').each(function () { + var thisId = $(this).attr('commentid'); + $(this).insertAfter('#comment-' + thisId + ' .author strong:first').show(); + }); + + akismet_enable_comment_author_url_removal(); + + $( '#the-comment-list' ).on( 'click', '.akismet_remove_url', function () { + var thisId = $(this).attr('commentid'); + var data = { + action: 'comment_author_deurl', + _wpnonce: WPAkismet.comment_author_url_nonce, + id: thisId + }; + $.ajax({ + url: ajaxurl, + type: 'POST', + data: data, + beforeSend: function () { + // Removes "x" link + $("a[commentid='"+ thisId +"']").hide(); + // Show temp status + $("#author_comment_url_"+ thisId).html( $( '<span/>' ).text( WPAkismet.strings['Removing...'] ) ); + }, + success: function (response) { + if (response) { + // Show status/undo link + $("#author_comment_url_"+ thisId) + .attr('cid', thisId) + .addClass('akismet_undo_link_removal') + .html( + $( '<span/>' ).text( WPAkismet.strings['URL removed'] ) + ) + .append( ' ' ) + .append( + $( '<span/>' ) + .text( WPAkismet.strings['(undo)'] ) + .addClass( 'akismet-span-link' ) + ); + } + } + }); + + return false; + }).on( 'click', '.akismet_undo_link_removal', function () { + var thisId = $(this).attr('cid'); + var thisUrl = $(this).attr('href'); + var data = { + action: 'comment_author_reurl', + _wpnonce: WPAkismet.comment_author_url_nonce, + id: thisId, + url: thisUrl + }; + $.ajax({ + url: ajaxurl, + type: 'POST', + data: data, + beforeSend: function () { + // Show temp status + $("#author_comment_url_"+ thisId).html( $( '<span/>' ).text( WPAkismet.strings['Re-adding...'] ) ); + }, + success: function (response) { + if (response) { + // Add "x" link + $("a[commentid='"+ thisId +"']").show(); + // Show link. Core strips leading http://, so let's do that too. + $("#author_comment_url_"+ thisId).removeClass('akismet_undo_link_removal').text( thisUrl.replace( /^http:\/\/(www\.)?/ig, '' ) ); + } + } + }); + + return false; + }); + + // Show a preview image of the hovered URL. Applies to author URLs and URLs inside the comments. + $( '#the-comment-list' ).on( 'mouseover', mshotEnabledLinkSelector, function () { + clearTimeout( mshotRemovalTimer ); + + if ( $( '.akismet-mshot' ).length > 0 ) { + if ( $( '.akismet-mshot:first' ).data( 'link' ) == this ) { + // The preview is already showing for this link. + return; + } + else { + // A new link is being hovered, so remove the old preview. + $( '.akismet-mshot' ).remove(); + } + } + + clearTimeout( mshotSecondTryTimer ); + clearTimeout( mshotThirdTryTimer ); + + var thisHref = $( this ).attr( 'href' ); + + var mShot = $( '<div class="akismet-mshot mshot-container"><div class="mshot-arrow"></div><img src="' + akismet_mshot_url( thisHref ) + '" width="450" height="338" class="mshot-image" /></div>' ); + mShot.data( 'link', this ); + + var offset = $( this ).offset(); + + mShot.offset( { + left : Math.min( $( window ).width() - 475, offset.left + $( this ).width() + 10 ), // Keep it on the screen if the link is near the edge of the window. + top: offset.top + ( $( this ).height() / 2 ) - 101 // 101 = top offset of the arrow plus the top border thickness + } ); + + // These retries appear to be superfluous if .mshot-image has already loaded, but it's because mShots + // can return a "Generating thumbnail..." image if it doesn't have a thumbnail ready, so we need + // to retry to see if we can get the newly generated thumbnail. + mshotSecondTryTimer = setTimeout( function () { + mShot.find( '.mshot-image' ).attr( 'src', akismet_mshot_url( thisHref, 2 ) ); + }, 6000 ); + + mshotThirdTryTimer = setTimeout( function () { + mShot.find( '.mshot-image' ).attr( 'src', akismet_mshot_url( thisHref, 3 ) ); + }, 12000 ); + + $( 'body' ).append( mShot ); + } ).on( 'mouseout', 'a[id^="author_comment_url"], tr.pingback td.column-author a:first-of-type, td.comment p a', function () { + mshotRemovalTimer = setTimeout( function () { + clearTimeout( mshotSecondTryTimer ); + clearTimeout( mshotThirdTryTimer ); + + $( '.akismet-mshot' ).remove(); + }, 200 ); + } ).on( 'mouseover', 'tr', function () { + // When the mouse hovers over a comment row, begin preloading mshots for any links in the comment or the comment author. + var linksToPreloadMshotsFor = $( this ).find( mshotEnabledLinkSelector ); + + linksToPreloadMshotsFor.each( function () { + // Don't attempt to preload an mshot for a single link twice. Browser caching should cover this, but in case of + // race conditions, save a flag locally when we've begun trying to preload one. + if ( ! $( this ).data( 'akismet-mshot-preloaded' ) ) { + akismet_preload_mshot( $( this ).attr( 'href' ) ); + $( this ).data( 'akismet-mshot-preloaded', true ); + } + } ); + } ); + + $('.checkforspam:not(.button-disabled)').click( function(e) { + e.preventDefault(); + + $('.checkforspam:not(.button-disabled)').addClass('button-disabled'); + $('.checkforspam-spinner').addClass( 'spinner' ).addClass( 'is-active' ); + + // Update the label on the "Check for Spam" button to use the active "Checking for Spam" language. + $( '.checkforspam .akismet-label' ).text( $( '.checkforspam' ).data( 'active-label' ) ); + + akismet_check_for_spam(0, 100); + }); + + var spam_count = 0; + var recheck_count = 0; + + function akismet_check_for_spam(offset, limit) { + var check_for_spam_buttons = $( '.checkforspam' ); + + // We show the percentage complete down to one decimal point so even queues with 100k + // pending comments will show some progress pretty quickly. + var percentage_complete = Math.round( ( recheck_count / check_for_spam_buttons.data( 'pending-comment-count' ) ) * 1000 ) / 10; + + // Update the progress counter on the "Check for Spam" button. + $( '.checkforspam-progress' ).text( check_for_spam_buttons.data( 'progress-label-format' ).replace( '%1$s', percentage_complete ) ); + + $.post( + ajaxurl, + { + 'action': 'akismet_recheck_queue', + 'offset': offset, + 'limit': limit + }, + function(result) { + recheck_count += result.counts.processed; + spam_count += result.counts.spam; + + if (result.counts.processed < limit) { + window.location.href = check_for_spam_buttons.data( 'success-url' ).replace( '__recheck_count__', recheck_count ).replace( '__spam_count__', spam_count ); + } + else { + // Account for comments that were caught as spam and moved out of the queue. + akismet_check_for_spam(offset + limit - result.counts.spam, limit); + } + } + ); + } + + if ( "start_recheck" in WPAkismet && WPAkismet.start_recheck ) { + $( '.checkforspam' ).click(); + } + + if ( typeof MutationObserver !== 'undefined' ) { + // Dynamically add the "X" next the the author URL links when a comment is quick-edited. + var comment_list_container = document.getElementById( 'the-comment-list' ); + + if ( comment_list_container ) { + var observer = new MutationObserver( function ( mutations ) { + for ( var i = 0, _len = mutations.length; i < _len; i++ ) { + if ( mutations[i].addedNodes.length > 0 ) { + akismet_enable_comment_author_url_removal(); + + // Once we know that we'll have to check for new author links, skip the rest of the mutations. + break; + } + } + } ); + + observer.observe( comment_list_container, { attributes: true, childList: true, characterData: true } ); + } + } + + function akismet_enable_comment_author_url_removal() { + $( '#the-comment-list' ) + .find( 'tr.comment, tr[id ^= "comment-"]' ) + .find( '.column-author a[href^="http"]:first' ) // Ignore mailto: links, which would be the comment author's email. + .each(function () { + if ( $( this ).parent().find( '.akismet_remove_url' ).length > 0 ) { + return; + } + + var linkHref = $(this).attr( 'href' ); + + // Ignore any links to the current domain, which are diagnostic tools, like the IP address link + // or any other links another plugin might add. + var currentHostParts = document.location.href.split( '/' ); + var currentHost = currentHostParts[0] + '//' + currentHostParts[2] + '/'; + + if ( linkHref.indexOf( currentHost ) != 0 ) { + var thisCommentId = $(this).parents('tr:first').attr('id').split("-"); + + $(this) + .attr("id", "author_comment_url_"+ thisCommentId[1]) + .after( + $( '<a href="#" class="akismet_remove_url">x</a>' ) + .attr( 'commentid', thisCommentId[1] ) + .attr( 'title', WPAkismet.strings['Remove this URL'] ) + ); + } + }); + } + + /** + * Generate an mShot URL if given a link URL. + * + * @param string linkUrl + * @param int retry If retrying a request, the number of the retry. + * @return string The mShot URL; + */ + function akismet_mshot_url( linkUrl, retry ) { + var mshotUrl = '//s0.wordpress.com/mshots/v1/' + encodeURIComponent( linkUrl ) + '?w=900'; + + if ( retry ) { + mshotUrl += '&r=' + encodeURIComponent( retry ); + } + + return mshotUrl; + } + + /** + * Begin loading an mShot preview of a link. + * + * @param string linkUrl + */ + function akismet_preload_mshot( linkUrl ) { + var img = new Image(); + img.src = akismet_mshot_url( linkUrl ); + } +}); \ No newline at end of file diff --git a/wp-content/plugins/akismet/_inc/form.js b/wp-content/plugins/akismet/_inc/form.js new file mode 100644 index 000000000..3a5be8af0 --- /dev/null +++ b/wp-content/plugins/akismet/_inc/form.js @@ -0,0 +1,30 @@ +var ak_js = document.getElementById( "ak_js" ); + +if ( ! ak_js ) { + ak_js = document.createElement( 'input' ); + ak_js.setAttribute( 'id', 'ak_js' ); + ak_js.setAttribute( 'name', 'ak_js' ); + ak_js.setAttribute( 'type', 'hidden' ); +} +else { + ak_js.parentNode.removeChild( ak_js ); +} + +ak_js.setAttribute( 'value', ( new Date() ).getTime() ); + +var commentForm = document.getElementById( 'commentform' ); + +if ( commentForm ) { + commentForm.appendChild( ak_js ); +} +else { + var replyRowContainer = document.getElementById( 'replyrow' ); + + if ( replyRowContainer ) { + var children = replyRowContainer.getElementsByTagName( 'td' ); + + if ( children.length > 0 ) { + children[0].appendChild( ak_js ); + } + } +} \ No newline at end of file diff --git a/wp-content/plugins/akismet/_inc/img/logo-full-2x.png b/wp-content/plugins/akismet/_inc/img/logo-full-2x.png new file mode 100644 index 0000000000000000000000000000000000000000..795458540ade4085a8b6cc33e8d160b3d2a193e9 GIT binary patch literal 5052 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 I;vB~M9|qg2I{*Lx literal 0 HcmV?d00001 diff --git a/wp-content/plugins/akismet/akismet.php b/wp-content/plugins/akismet/akismet.php new file mode 100644 index 000000000..a8ea4a15d --- /dev/null +++ b/wp-content/plugins/akismet/akismet.php @@ -0,0 +1,66 @@ +<?php +/** + * @package Akismet + */ +/* +Plugin Name: Akismet Anti-Spam +Plugin URI: https://akismet.com/ +Description: Used by millions, Akismet is quite possibly the best way in the world to <strong>protect your blog from spam</strong>. It keeps your site protected even while you sleep. To get started: activate the Akismet plugin and then go to your Akismet Settings page to set up your API key. +Version: 4.0.3 +Author: Automattic +Author URI: https://automattic.com/wordpress-plugins/ +License: GPLv2 or later +Text Domain: akismet +*/ + +/* +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +Copyright 2005-2015 Automattic, Inc. +*/ + +// Make sure we don't expose any info if called directly +if ( !function_exists( 'add_action' ) ) { + echo 'Hi there! I\'m just a plugin, not much I can do when called directly.'; + exit; +} + +define( 'AKISMET_VERSION', '4.0.3' ); +define( 'AKISMET__MINIMUM_WP_VERSION', '4.0' ); +define( 'AKISMET__PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); +define( 'AKISMET_DELETE_LIMIT', 100000 ); + +register_activation_hook( __FILE__, array( 'Akismet', 'plugin_activation' ) ); +register_deactivation_hook( __FILE__, array( 'Akismet', 'plugin_deactivation' ) ); + +require_once( AKISMET__PLUGIN_DIR . 'class.akismet.php' ); +require_once( AKISMET__PLUGIN_DIR . 'class.akismet-widget.php' ); +require_once( AKISMET__PLUGIN_DIR . 'class.akismet-rest-api.php' ); + +add_action( 'init', array( 'Akismet', 'init' ) ); + +add_action( 'rest_api_init', array( 'Akismet_REST_API', 'init' ) ); + +if ( is_admin() || ( defined( 'WP_CLI' ) && WP_CLI ) ) { + require_once( AKISMET__PLUGIN_DIR . 'class.akismet-admin.php' ); + add_action( 'init', array( 'Akismet_Admin', 'init' ) ); +} + +//add wrapper class around deprecated akismet functions that are referenced elsewhere +require_once( AKISMET__PLUGIN_DIR . 'wrapper.php' ); + +if ( defined( 'WP_CLI' ) && WP_CLI ) { + require_once( AKISMET__PLUGIN_DIR . 'class.akismet-cli.php' ); +} diff --git a/wp-content/plugins/akismet/class.akismet-admin.php b/wp-content/plugins/akismet/class.akismet-admin.php new file mode 100644 index 000000000..42e884f98 --- /dev/null +++ b/wp-content/plugins/akismet/class.akismet-admin.php @@ -0,0 +1,1131 @@ +<?php + +class Akismet_Admin { + const NONCE = 'akismet-update-key'; + + private static $initiated = false; + private static $notices = array(); + private static $allowed = array( + 'a' => array( + 'href' => true, + 'title' => true, + ), + 'b' => array(), + 'code' => array(), + 'del' => array( + 'datetime' => true, + ), + 'em' => array(), + 'i' => array(), + 'q' => array( + 'cite' => true, + ), + 'strike' => array(), + 'strong' => array(), + ); + + public static function init() { + if ( ! self::$initiated ) { + self::init_hooks(); + } + + if ( isset( $_POST['action'] ) && $_POST['action'] == 'enter-key' ) { + self::enter_api_key(); + } + } + + public static function init_hooks() { + // The standalone stats page was removed in 3.0 for an all-in-one config and stats page. + // Redirect any links that might have been bookmarked or in browser history. + if ( isset( $_GET['page'] ) && 'akismet-stats-display' == $_GET['page'] ) { + wp_safe_redirect( esc_url_raw( self::get_page_url( 'stats' ) ), 301 ); + die; + } + + self::$initiated = true; + + add_action( 'admin_init', array( 'Akismet_Admin', 'admin_init' ) ); + add_action( 'admin_menu', array( 'Akismet_Admin', 'admin_menu' ), 5 ); # Priority 5, so it's called before Jetpack's admin_menu. + add_action( 'admin_notices', array( 'Akismet_Admin', 'display_notice' ) ); + add_action( 'admin_enqueue_scripts', array( 'Akismet_Admin', 'load_resources' ) ); + add_action( 'activity_box_end', array( 'Akismet_Admin', 'dashboard_stats' ) ); + add_action( 'rightnow_end', array( 'Akismet_Admin', 'rightnow_stats' ) ); + add_action( 'manage_comments_nav', array( 'Akismet_Admin', 'check_for_spam_button' ) ); + add_action( 'admin_action_akismet_recheck_queue', array( 'Akismet_Admin', 'recheck_queue' ) ); + add_action( 'wp_ajax_akismet_recheck_queue', array( 'Akismet_Admin', 'recheck_queue' ) ); + add_action( 'wp_ajax_comment_author_deurl', array( 'Akismet_Admin', 'remove_comment_author_url' ) ); + add_action( 'wp_ajax_comment_author_reurl', array( 'Akismet_Admin', 'add_comment_author_url' ) ); + add_action( 'jetpack_auto_activate_akismet', array( 'Akismet_Admin', 'connect_jetpack_user' ) ); + + add_filter( 'plugin_action_links', array( 'Akismet_Admin', 'plugin_action_links' ), 10, 2 ); + add_filter( 'comment_row_actions', array( 'Akismet_Admin', 'comment_row_action' ), 10, 2 ); + + add_filter( 'plugin_action_links_'.plugin_basename( plugin_dir_path( __FILE__ ) . 'akismet.php'), array( 'Akismet_Admin', 'admin_plugin_settings_link' ) ); + + add_filter( 'wxr_export_skip_commentmeta', array( 'Akismet_Admin', 'exclude_commentmeta_from_export' ), 10, 3 ); + + add_filter( 'all_plugins', array( 'Akismet_Admin', 'modify_plugin_description' ) ); + } + + public static function admin_init() { + load_plugin_textdomain( 'akismet' ); + add_meta_box( 'akismet-status', __('Comment History', 'akismet'), array( 'Akismet_Admin', 'comment_status_meta_box' ), 'comment', 'normal' ); + } + + public static function admin_menu() { + if ( class_exists( 'Jetpack' ) ) + add_action( 'jetpack_admin_menu', array( 'Akismet_Admin', 'load_menu' ) ); + else + self::load_menu(); + } + + public static function admin_head() { + if ( !current_user_can( 'manage_options' ) ) + return; + } + + public static function admin_plugin_settings_link( $links ) { + $settings_link = '<a href="'.esc_url( self::get_page_url() ).'">'.__('Settings', 'akismet').'</a>'; + array_unshift( $links, $settings_link ); + return $links; + } + + public static function load_menu() { + if ( class_exists( 'Jetpack' ) ) { + $hook = add_submenu_page( 'jetpack', __( 'Akismet Anti-Spam' , 'akismet'), __( 'Akismet Anti-Spam' , 'akismet'), 'manage_options', 'akismet-key-config', array( 'Akismet_Admin', 'display_page' ) ); + } + else { + $hook = add_options_page( __('Akismet Anti-Spam', 'akismet'), __('Akismet Anti-Spam', 'akismet'), 'manage_options', 'akismet-key-config', array( 'Akismet_Admin', 'display_page' ) ); + } + + if ( $hook ) { + add_action( "load-$hook", array( 'Akismet_Admin', 'admin_help' ) ); + } + } + + public static function load_resources() { + global $hook_suffix; + + if ( in_array( $hook_suffix, apply_filters( 'akismet_admin_page_hook_suffixes', array( + 'index.php', # dashboard + 'edit-comments.php', + 'comment.php', + 'post.php', + 'settings_page_akismet-key-config', + 'jetpack_page_akismet-key-config', + 'plugins.php', + ) ) ) ) { + wp_register_style( 'akismet.css', plugin_dir_url( __FILE__ ) . '_inc/akismet.css', array(), AKISMET_VERSION ); + wp_enqueue_style( 'akismet.css'); + + wp_register_script( 'akismet.js', plugin_dir_url( __FILE__ ) . '_inc/akismet.js', array('jquery'), AKISMET_VERSION ); + wp_enqueue_script( 'akismet.js' ); + + $inline_js = array( + 'comment_author_url_nonce' => wp_create_nonce( 'comment_author_url_nonce' ), + 'strings' => array( + 'Remove this URL' => __( 'Remove this URL' , 'akismet'), + 'Removing...' => __( 'Removing...' , 'akismet'), + 'URL removed' => __( 'URL removed' , 'akismet'), + '(undo)' => __( '(undo)' , 'akismet'), + 'Re-adding...' => __( 'Re-adding...' , 'akismet'), + ) + ); + + if ( isset( $_GET['akismet_recheck'] ) && wp_verify_nonce( $_GET['akismet_recheck'], 'akismet_recheck' ) ) { + $inline_js['start_recheck'] = true; + } + + wp_localize_script( 'akismet.js', 'WPAkismet', $inline_js ); + } + } + + /** + * Add help to the Akismet page + * + * @return false if not the Akismet page + */ + public static function admin_help() { + $current_screen = get_current_screen(); + + // Screen Content + if ( current_user_can( 'manage_options' ) ) { + if ( !Akismet::get_api_key() || ( isset( $_GET['view'] ) && $_GET['view'] == 'start' ) ) { + //setup page + $current_screen->add_help_tab( + array( + 'id' => 'overview', + 'title' => __( 'Overview' , 'akismet'), + 'content' => + '<p><strong>' . esc_html__( 'Akismet Setup' , 'akismet') . '</strong></p>' . + '<p>' . esc_html__( 'Akismet filters out spam, so you can focus on more important things.' , 'akismet') . '</p>' . + '<p>' . esc_html__( 'On this page, you are able to set up the Akismet plugin.' , 'akismet') . '</p>', + ) + ); + + $current_screen->add_help_tab( + array( + 'id' => 'setup-signup', + 'title' => __( 'New to Akismet' , 'akismet'), + 'content' => + '<p><strong>' . esc_html__( 'Akismet Setup' , 'akismet') . '</strong></p>' . + '<p>' . esc_html__( 'You need to enter an API key to activate the Akismet service on your site.' , 'akismet') . '</p>' . + '<p>' . sprintf( __( 'Sign up for an account on %s to get an API Key.' , 'akismet'), '<a href="https://akismet.com/plugin-signup/" target="_blank">Akismet.com</a>' ) . '</p>', + ) + ); + + $current_screen->add_help_tab( + array( + 'id' => 'setup-manual', + 'title' => __( 'Enter an API Key' , 'akismet'), + 'content' => + '<p><strong>' . esc_html__( 'Akismet Setup' , 'akismet') . '</strong></p>' . + '<p>' . esc_html__( 'If you already have an API key' , 'akismet') . '</p>' . + '<ol>' . + '<li>' . esc_html__( 'Copy and paste the API key into the text field.' , 'akismet') . '</li>' . + '<li>' . esc_html__( 'Click the Use this Key button.' , 'akismet') . '</li>' . + '</ol>', + ) + ); + } + elseif ( isset( $_GET['view'] ) && $_GET['view'] == 'stats' ) { + //stats page + $current_screen->add_help_tab( + array( + 'id' => 'overview', + 'title' => __( 'Overview' , 'akismet'), + 'content' => + '<p><strong>' . esc_html__( 'Akismet Stats' , 'akismet') . '</strong></p>' . + '<p>' . esc_html__( 'Akismet filters out spam, so you can focus on more important things.' , 'akismet') . '</p>' . + '<p>' . esc_html__( 'On this page, you are able to view stats on spam filtered on your site.' , 'akismet') . '</p>', + ) + ); + } + else { + //configuration page + $current_screen->add_help_tab( + array( + 'id' => 'overview', + 'title' => __( 'Overview' , 'akismet'), + 'content' => + '<p><strong>' . esc_html__( 'Akismet Configuration' , 'akismet') . '</strong></p>' . + '<p>' . esc_html__( 'Akismet filters out spam, so you can focus on more important things.' , 'akismet') . '</p>' . + '<p>' . esc_html__( 'On this page, you are able to update your Akismet settings and view spam stats.' , 'akismet') . '</p>', + ) + ); + + $current_screen->add_help_tab( + array( + 'id' => 'settings', + 'title' => __( 'Settings' , 'akismet'), + 'content' => + '<p><strong>' . esc_html__( 'Akismet Configuration' , 'akismet') . '</strong></p>' . + ( Akismet::predefined_api_key() ? '' : '<p><strong>' . esc_html__( 'API Key' , 'akismet') . '</strong> - ' . esc_html__( 'Enter/remove an API key.' , 'akismet') . '</p>' ) . + '<p><strong>' . esc_html__( 'Comments' , 'akismet') . '</strong> - ' . esc_html__( 'Show the number of approved comments beside each comment author in the comments list page.' , 'akismet') . '</p>' . + '<p><strong>' . esc_html__( 'Strictness' , 'akismet') . '</strong> - ' . esc_html__( 'Choose to either discard the worst spam automatically or to always put all spam in spam folder.' , 'akismet') . '</p>', + ) + ); + + if ( ! Akismet::predefined_api_key() ) { + $current_screen->add_help_tab( + array( + 'id' => 'account', + 'title' => __( 'Account' , 'akismet'), + 'content' => + '<p><strong>' . esc_html__( 'Akismet Configuration' , 'akismet') . '</strong></p>' . + '<p><strong>' . esc_html__( 'Subscription Type' , 'akismet') . '</strong> - ' . esc_html__( 'The Akismet subscription plan' , 'akismet') . '</p>' . + '<p><strong>' . esc_html__( 'Status' , 'akismet') . '</strong> - ' . esc_html__( 'The subscription status - active, cancelled or suspended' , 'akismet') . '</p>', + ) + ); + } + } + } + + // Help Sidebar + $current_screen->set_help_sidebar( + '<p><strong>' . esc_html__( 'For more information:' , 'akismet') . '</strong></p>' . + '<p><a href="https://akismet.com/faq/" target="_blank">' . esc_html__( 'Akismet FAQ' , 'akismet') . '</a></p>' . + '<p><a href="https://akismet.com/support/" target="_blank">' . esc_html__( 'Akismet Support' , 'akismet') . '</a></p>' + ); + } + + public static function enter_api_key() { + if ( ! current_user_can( 'manage_options' ) ) { + die( __( 'Cheatin’ uh?', 'akismet' ) ); + } + + if ( !wp_verify_nonce( $_POST['_wpnonce'], self::NONCE ) ) + return false; + + foreach( array( 'akismet_strictness', 'akismet_show_user_comments_approved' ) as $option ) { + update_option( $option, isset( $_POST[$option] ) && (int) $_POST[$option] == 1 ? '1' : '0' ); + } + + if ( Akismet::predefined_api_key() ) { + return false; //shouldn't have option to save key if already defined + } + + $new_key = preg_replace( '/[^a-f0-9]/i', '', $_POST['key'] ); + $old_key = Akismet::get_api_key(); + + if ( empty( $new_key ) ) { + if ( !empty( $old_key ) ) { + delete_option( 'wordpress_api_key' ); + self::$notices[] = 'new-key-empty'; + } + } + elseif ( $new_key != $old_key ) { + self::save_key( $new_key ); + } + + return true; + } + + public static function save_key( $api_key ) { + $key_status = Akismet::verify_key( $api_key ); + + if ( $key_status == 'valid' ) { + $akismet_user = self::get_akismet_user( $api_key ); + + if ( $akismet_user ) { + if ( in_array( $akismet_user->status, array( 'active', 'active-dunning', 'no-sub' ) ) ) + update_option( 'wordpress_api_key', $api_key ); + + if ( $akismet_user->status == 'active' ) + self::$notices['status'] = 'new-key-valid'; + elseif ( $akismet_user->status == 'notice' ) + self::$notices['status'] = $akismet_user; + else + self::$notices['status'] = $akismet_user->status; + } + else + self::$notices['status'] = 'new-key-invalid'; + } + elseif ( in_array( $key_status, array( 'invalid', 'failed' ) ) ) + self::$notices['status'] = 'new-key-'.$key_status; + } + + public static function dashboard_stats() { + if ( did_action( 'rightnow_end' ) ) { + return; // We already displayed this info in the "Right Now" section + } + + if ( !$count = get_option('akismet_spam_count') ) + return; + + global $submenu; + + echo '<h3>' . esc_html( _x( 'Spam', 'comments' , 'akismet') ) . '</h3>'; + + echo '<p>'.sprintf( _n( + '<a href="%1$s">Akismet</a> has protected your site from <a href="%2$s">%3$s spam comment</a>.', + '<a href="%1$s">Akismet</a> has protected your site from <a href="%2$s">%3$s spam comments</a>.', + $count + , 'akismet'), 'https://akismet.com/wordpress/', esc_url( add_query_arg( array( 'page' => 'akismet-admin' ), admin_url( isset( $submenu['edit-comments.php'] ) ? 'edit-comments.php' : 'edit.php' ) ) ), number_format_i18n($count) ).'</p>'; + } + + // WP 2.5+ + public static function rightnow_stats() { + if ( $count = get_option('akismet_spam_count') ) { + $intro = sprintf( _n( + '<a href="%1$s">Akismet</a> has protected your site from %2$s spam comment already. ', + '<a href="%1$s">Akismet</a> has protected your site from %2$s spam comments already. ', + $count + , 'akismet'), 'https://akismet.com/wordpress/', number_format_i18n( $count ) ); + } else { + $intro = sprintf( __('<a href="%s">Akismet</a> blocks spam from getting to your blog. ', 'akismet'), 'https://akismet.com/wordpress/' ); + } + + $link = add_query_arg( array( 'comment_status' => 'spam' ), admin_url( 'edit-comments.php' ) ); + + if ( $queue_count = self::get_spam_count() ) { + $queue_text = sprintf( _n( + 'There’s <a href="%2$s">%1$s comment</a> in your spam queue right now.', + 'There are <a href="%2$s">%1$s comments</a> in your spam queue right now.', + $queue_count + , 'akismet'), number_format_i18n( $queue_count ), esc_url( $link ) ); + } else { + $queue_text = sprintf( __( "There’s nothing in your <a href='%s'>spam queue</a> at the moment." , 'akismet'), esc_url( $link ) ); + } + + $text = $intro . '<br />' . $queue_text; + echo "<p class='akismet-right-now'>$text</p>\n"; + } + + public static function check_for_spam_button( $comment_status ) { + // The "Check for Spam" button should only appear when the page might be showing + // a comment with comment_approved=0, which means an un-trashed, un-spammed, + // not-yet-moderated comment. + if ( 'all' != $comment_status && 'moderated' != $comment_status ) { + return; + } + + $link = add_query_arg( array( 'action' => 'akismet_recheck_queue' ), admin_url( 'admin.php' ) ); + + $comments_count = wp_count_comments(); + + echo '</div>'; + echo '<div class="alignleft">'; + echo '<a + class="button-secondary checkforspam" + href="' . esc_url( $link ) . '" + data-active-label="' . esc_attr( __( 'Checking for Spam', 'akismet' ) ) . '" + data-progress-label-format="' . esc_attr( __( '(%1$s%)', 'akismet' ) ) . '" + data-success-url="' . esc_attr( remove_query_arg( 'akismet_recheck', add_query_arg( array( 'akismet_recheck_complete' => 1, 'recheck_count' => urlencode( '__recheck_count__' ), 'spam_count' => urlencode( '__spam_count__' ) ) ) ) ) . '" + data-pending-comment-count="' . esc_attr( $comments_count->moderated ) . '" + >'; + echo '<span class="akismet-label">' . esc_html__('Check for Spam', 'akismet') . '</span>'; + echo '<span class="checkforspam-progress"></span>'; + echo '</a>'; + echo '<span class="checkforspam-spinner"></span>'; + + } + + public static function recheck_queue() { + global $wpdb; + + Akismet::fix_scheduled_recheck(); + + if ( ! ( isset( $_GET['recheckqueue'] ) || ( isset( $_REQUEST['action'] ) && 'akismet_recheck_queue' == $_REQUEST['action'] ) ) ) { + return; + } + + $result_counts = self::recheck_queue_portion( empty( $_POST['offset'] ) ? 0 : $_POST['offset'], empty( $_POST['limit'] ) ? 100 : $_POST['limit'] ); + + if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) { + wp_send_json( array( + 'counts' => $result_counts, + )); + } + else { + $redirect_to = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : admin_url( 'edit-comments.php' ); + wp_safe_redirect( $redirect_to ); + exit; + } + } + + public static function recheck_queue_portion( $start = 0, $limit = 100 ) { + global $wpdb; + + $paginate = ''; + + if ( $limit <= 0 ) { + $limit = 100; + } + + if ( $start < 0 ) { + $start = 0; + } + + $moderation = $wpdb->get_col( $wpdb->prepare( "SELECT * FROM {$wpdb->comments} WHERE comment_approved = '0' LIMIT %d OFFSET %d", $limit, $start ) ); + + $result_counts = array( + 'processed' => count( $moderation ), + 'spam' => 0, + 'ham' => 0, + 'error' => 0, + ); + + foreach ( $moderation as $comment_id ) { + $api_response = Akismet::recheck_comment( $comment_id, 'recheck_queue' ); + + if ( 'true' === $api_response ) { + ++$result_counts['spam']; + } + elseif ( 'false' === $api_response ) { + ++$result_counts['ham']; + } + else { + ++$result_counts['error']; + } + } + + return $result_counts; + } + + // Adds an 'x' link next to author URLs, clicking will remove the author URL and show an undo link + public static function remove_comment_author_url() { + if ( !empty( $_POST['id'] ) && check_admin_referer( 'comment_author_url_nonce' ) ) { + $comment_id = intval( $_POST['id'] ); + $comment = get_comment( $comment_id, ARRAY_A ); + if ( $comment && current_user_can( 'edit_comment', $comment['comment_ID'] ) ) { + $comment['comment_author_url'] = ''; + do_action( 'comment_remove_author_url' ); + print( wp_update_comment( $comment ) ); + die(); + } + } + } + + public static function add_comment_author_url() { + if ( !empty( $_POST['id'] ) && !empty( $_POST['url'] ) && check_admin_referer( 'comment_author_url_nonce' ) ) { + $comment_id = intval( $_POST['id'] ); + $comment = get_comment( $comment_id, ARRAY_A ); + if ( $comment && current_user_can( 'edit_comment', $comment['comment_ID'] ) ) { + $comment['comment_author_url'] = esc_url( $_POST['url'] ); + do_action( 'comment_add_author_url' ); + print( wp_update_comment( $comment ) ); + die(); + } + } + } + + public static function comment_row_action( $a, $comment ) { + $akismet_result = get_comment_meta( $comment->comment_ID, 'akismet_result', true ); + $akismet_error = get_comment_meta( $comment->comment_ID, 'akismet_error', true ); + $user_result = get_comment_meta( $comment->comment_ID, 'akismet_user_result', true); + $comment_status = wp_get_comment_status( $comment->comment_ID ); + $desc = null; + if ( $akismet_error ) { + $desc = __( 'Awaiting spam check' , 'akismet'); + } elseif ( !$user_result || $user_result == $akismet_result ) { + // Show the original Akismet result if the user hasn't overridden it, or if their decision was the same + if ( $akismet_result == 'true' && $comment_status != 'spam' && $comment_status != 'trash' ) + $desc = __( 'Flagged as spam by Akismet' , 'akismet'); + elseif ( $akismet_result == 'false' && $comment_status == 'spam' ) + $desc = __( 'Cleared by Akismet' , 'akismet'); + } else { + $who = get_comment_meta( $comment->comment_ID, 'akismet_user', true ); + if ( $user_result == 'true' ) + $desc = sprintf( __('Flagged as spam by %s', 'akismet'), $who ); + else + $desc = sprintf( __('Un-spammed by %s', 'akismet'), $who ); + } + + // add a History item to the hover links, just after Edit + if ( $akismet_result ) { + $b = array(); + foreach ( $a as $k => $item ) { + $b[ $k ] = $item; + if ( + $k == 'edit' + || $k == 'unspam' + ) { + $b['history'] = '<a href="comment.php?action=editcomment&c='.$comment->comment_ID.'#akismet-status" title="'. esc_attr__( 'View comment history' , 'akismet') . '"> '. esc_html__('History', 'akismet') . '</a>'; + } + } + + $a = $b; + } + + if ( $desc ) + echo '<span class="akismet-status" commentid="'.$comment->comment_ID.'"><a href="comment.php?action=editcomment&c='.$comment->comment_ID.'#akismet-status" title="' . esc_attr__( 'View comment history' , 'akismet') . '">'.esc_html( $desc ).'</a></span>'; + + $show_user_comments_option = get_option( 'akismet_show_user_comments_approved' ); + + if ( $show_user_comments_option === false ) { + // Default to active if the user hasn't made a decision. + $show_user_comments_option = '1'; + } + + $show_user_comments = apply_filters( 'akismet_show_user_comments_approved', $show_user_comments_option ); + $show_user_comments = $show_user_comments === 'false' ? false : $show_user_comments; //option used to be saved as 'false' / 'true' + + if ( $show_user_comments ) { + $comment_count = Akismet::get_user_comments_approved( $comment->user_id, $comment->comment_author_email, $comment->comment_author, $comment->comment_author_url ); + $comment_count = intval( $comment_count ); + echo '<span class="akismet-user-comment-count" commentid="'.$comment->comment_ID.'" style="display:none;"><br><span class="akismet-user-comment-counts">'. sprintf( esc_html( _n( '%s approved', '%s approved', $comment_count , 'akismet') ), number_format_i18n( $comment_count ) ) . '</span></span>'; + } + + return $a; + } + + public static function comment_status_meta_box( $comment ) { + $history = Akismet::get_comment_history( $comment->comment_ID ); + + if ( $history ) { + echo '<div class="akismet-history" style="margin: 13px;">'; + + foreach ( $history as $row ) { + $time = date( 'D d M Y @ h:i:m a', $row['time'] ) . ' GMT'; + + $message = ''; + + if ( ! empty( $row['message'] ) ) { + // Old versions of Akismet stored the message as a literal string in the commentmeta. + // New versions don't do that for two reasons: + // 1) Save space. + // 2) The message can be translated into the current language of the blog, not stuck + // in the language of the blog when the comment was made. + $message = $row['message']; + } + + // If possible, use a current translation. + switch ( $row['event'] ) { + case 'recheck-spam'; + $message = __( 'Akismet re-checked and caught this comment as spam.', 'akismet' ); + break; + case 'check-spam': + $message = __( 'Akismet caught this comment as spam.', 'akismet' ); + break; + case 'recheck-ham': + $message = __( 'Akismet re-checked and cleared this comment.', 'akismet' ); + break; + case 'check-ham': + $message = __( 'Akismet cleared this comment.', 'akismet' ); + break; + case 'wp-blacklisted': + $message = __( 'Comment was caught by wp_blacklist_check.', 'akismet' ); + break; + case 'report-spam': + if ( isset( $row['user'] ) ) { + $message = sprintf( __( '%s reported this comment as spam.', 'akismet' ), $row['user'] ); + } + else if ( ! $message ) { + $message = __( 'This comment was reported as spam.', 'akismet' ); + } + break; + case 'report-ham': + if ( isset( $row['user'] ) ) { + $message = sprintf( __( '%s reported this comment as not spam.', 'akismet' ), $row['user'] ); + } + else if ( ! $message ) { + $message = __( 'This comment was reported as not spam.', 'akismet' ); + } + break; + case 'cron-retry-spam': + $message = __( 'Akismet caught this comment as spam during an automatic retry.' , 'akismet'); + break; + case 'cron-retry-ham': + $message = __( 'Akismet cleared this comment during an automatic retry.', 'akismet'); + break; + case 'check-error': + if ( isset( $row['meta'], $row['meta']['response'] ) ) { + $message = sprintf( __( 'Akismet was unable to check this comment (response: %s) but will automatically retry later.', 'akismet'), $row['meta']['response'] ); + } + break; + case 'recheck-error': + if ( isset( $row['meta'], $row['meta']['response'] ) ) { + $message = sprintf( __( 'Akismet was unable to recheck this comment (response: %s).', 'akismet'), $row['meta']['response'] ); + } + break; + default: + if ( preg_match( '/^status-changed/', $row['event'] ) ) { + // Half of these used to be saved without the dash after 'status-changed'. + // See https://plugins.trac.wordpress.org/changeset/1150658/akismet/trunk + $new_status = preg_replace( '/^status-changed-?/', '', $row['event'] ); + $message = sprintf( __( 'Comment status was changed to %s', 'akismet' ), $new_status ); + } + else if ( preg_match( '/^status-/', $row['event'] ) ) { + $new_status = preg_replace( '/^status-/', '', $row['event'] ); + + if ( isset( $row['user'] ) ) { + $message = sprintf( __( '%1$s changed the comment status to %2$s.', 'akismet' ), $row['user'], $new_status ); + } + } + break; + + } + + echo '<div style="margin-bottom: 13px;">'; + echo '<span style="color: #999;" alt="' . $time . '" title="' . $time . '">' . sprintf( esc_html__('%s ago', 'akismet'), human_time_diff( $row['time'] ) ) . '</span>'; + echo ' - '; + echo esc_html( $message ); + echo '</div>'; + } + + echo '</div>'; + } + } + + public static function plugin_action_links( $links, $file ) { + if ( $file == plugin_basename( plugin_dir_url( __FILE__ ) . '/akismet.php' ) ) { + $links[] = '<a href="' . esc_url( self::get_page_url() ) . '">'.esc_html__( 'Settings' , 'akismet').'</a>'; + } + + return $links; + } + + // Total spam in queue + // get_option( 'akismet_spam_count' ) is the total caught ever + public static function get_spam_count( $type = false ) { + global $wpdb; + + if ( !$type ) { // total + $count = wp_cache_get( 'akismet_spam_count', 'widget' ); + if ( false === $count ) { + $count = wp_count_comments(); + $count = $count->spam; + wp_cache_set( 'akismet_spam_count', $count, 'widget', 3600 ); + } + return $count; + } elseif ( 'comments' == $type || 'comment' == $type ) { // comments + $type = ''; + } + + return (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(comment_ID) FROM {$wpdb->comments} WHERE comment_approved = 'spam' AND comment_type = %s", $type ) ); + } + + // Check connectivity between the WordPress blog and Akismet's servers. + // Returns an associative array of server IP addresses, where the key is the IP address, and value is true (available) or false (unable to connect). + public static function check_server_ip_connectivity() { + + $servers = $ips = array(); + + // Some web hosts may disable this function + if ( function_exists('gethostbynamel') ) { + + $ips = gethostbynamel( 'rest.akismet.com' ); + if ( $ips && is_array($ips) && count($ips) ) { + $api_key = Akismet::get_api_key(); + + foreach ( $ips as $ip ) { + $response = Akismet::verify_key( $api_key, $ip ); + // even if the key is invalid, at least we know we have connectivity + if ( $response == 'valid' || $response == 'invalid' ) + $servers[$ip] = 'connected'; + else + $servers[$ip] = $response ? $response : 'unable to connect'; + } + } + } + + return $servers; + } + + // Simpler connectivity check + public static function check_server_connectivity($cache_timeout = 86400) { + + $debug = array(); + $debug[ 'PHP_VERSION' ] = PHP_VERSION; + $debug[ 'WORDPRESS_VERSION' ] = $GLOBALS['wp_version']; + $debug[ 'AKISMET_VERSION' ] = AKISMET_VERSION; + $debug[ 'AKISMET__PLUGIN_DIR' ] = AKISMET__PLUGIN_DIR; + $debug[ 'SITE_URL' ] = site_url(); + $debug[ 'HOME_URL' ] = home_url(); + + $servers = get_option('akismet_available_servers'); + if ( (time() - get_option('akismet_connectivity_time') < $cache_timeout) && $servers !== false ) { + $servers = self::check_server_ip_connectivity(); + update_option('akismet_available_servers', $servers); + update_option('akismet_connectivity_time', time()); + } + + if ( wp_http_supports( array( 'ssl' ) ) ) { + $response = wp_remote_get( 'https://rest.akismet.com/1.1/test' ); + } + else { + $response = wp_remote_get( 'http://rest.akismet.com/1.1/test' ); + } + + $debug[ 'gethostbynamel' ] = function_exists('gethostbynamel') ? 'exists' : 'not here'; + $debug[ 'Servers' ] = $servers; + $debug[ 'Test Connection' ] = $response; + + Akismet::log( $debug ); + + if ( $response && 'connected' == wp_remote_retrieve_body( $response ) ) + return true; + + return false; + } + + // Check the server connectivity and store the available servers in an option. + public static function get_server_connectivity($cache_timeout = 86400) { + return self::check_server_connectivity( $cache_timeout ); + } + + /** + * Find out whether any comments in the Pending queue have not yet been checked by Akismet. + * + * @return bool + */ + public static function are_any_comments_waiting_to_be_checked() { + return !! get_comments( array( + // Exclude comments that are not pending. This would happen if someone manually approved or spammed a comment + // that was waiting to be checked. The akismet_error meta entry will eventually be removed by the cron recheck job. + 'status' => 'hold', + + // This is the commentmeta that is saved when a comment couldn't be checked. + 'meta_key' => 'akismet_error', + + // We only need to know whether at least one comment is waiting for a check. + 'number' => 1, + ) ); + } + + public static function get_page_url( $page = 'config' ) { + + $args = array( 'page' => 'akismet-key-config' ); + + if ( $page == 'stats' ) + $args = array( 'page' => 'akismet-key-config', 'view' => 'stats' ); + elseif ( $page == 'delete_key' ) + $args = array( 'page' => 'akismet-key-config', 'view' => 'start', 'action' => 'delete-key', '_wpnonce' => wp_create_nonce( self::NONCE ) ); + + $url = add_query_arg( $args, class_exists( 'Jetpack' ) ? admin_url( 'admin.php' ) : admin_url( 'options-general.php' ) ); + + return $url; + } + + public static function get_akismet_user( $api_key ) { + $akismet_user = false; + + $subscription_verification = Akismet::http_post( Akismet::build_query( array( 'key' => $api_key, 'blog' => get_option( 'home' ) ) ), 'get-subscription' ); + + if ( ! empty( $subscription_verification[1] ) ) { + if ( 'invalid' !== $subscription_verification[1] ) { + $akismet_user = json_decode( $subscription_verification[1] ); + } + } + + return $akismet_user; + } + + public static function get_stats( $api_key ) { + $stat_totals = array(); + + foreach( array( '6-months', 'all' ) as $interval ) { + $response = Akismet::http_post( Akismet::build_query( array( 'blog' => get_option( 'home' ), 'key' => $api_key, 'from' => $interval ) ), 'get-stats' ); + + if ( ! empty( $response[1] ) ) { + $stat_totals[$interval] = json_decode( $response[1] ); + } + } + + return $stat_totals; + } + + public static function verify_wpcom_key( $api_key, $user_id, $extra = array() ) { + $akismet_account = Akismet::http_post( Akismet::build_query( array_merge( array( + 'user_id' => $user_id, + 'api_key' => $api_key, + 'get_account_type' => 'true' + ), $extra ) ), 'verify-wpcom-key' ); + + if ( ! empty( $akismet_account[1] ) ) + $akismet_account = json_decode( $akismet_account[1] ); + + Akismet::log( compact( 'akismet_account' ) ); + + return $akismet_account; + } + + public static function connect_jetpack_user() { + + if ( $jetpack_user = self::get_jetpack_user() ) { + if ( isset( $jetpack_user['user_id'] ) && isset( $jetpack_user['api_key'] ) ) { + $akismet_user = self::verify_wpcom_key( $jetpack_user['api_key'], $jetpack_user['user_id'], array( 'action' => 'connect_jetpack_user' ) ); + + if ( is_object( $akismet_user ) ) { + self::save_key( $akismet_user->api_key ); + return in_array( $akismet_user->status, array( 'active', 'active-dunning', 'no-sub' ) ); + } + } + } + + return false; + } + + public static function display_alert() { + Akismet::view( 'notice', array( + 'type' => 'alert', + 'code' => (int) get_option( 'akismet_alert_code' ), + 'msg' => get_option( 'akismet_alert_msg' ) + ) ); + } + + public static function display_spam_check_warning() { + Akismet::fix_scheduled_recheck(); + + if ( wp_next_scheduled('akismet_schedule_cron_recheck') > time() && self::are_any_comments_waiting_to_be_checked() ) { + $link_text = apply_filters( 'akismet_spam_check_warning_link_text', sprintf( __( 'Please check your <a href="%s">Akismet configuration</a> and contact your web host if problems persist.', 'akismet'), esc_url( self::get_page_url() ) ) ); + Akismet::view( 'notice', array( 'type' => 'spam-check', 'link_text' => $link_text ) ); + } + } + + public static function display_api_key_warning() { + Akismet::view( 'notice', array( 'type' => 'plugin' ) ); + } + + public static function display_page() { + if ( !Akismet::get_api_key() || ( isset( $_GET['view'] ) && $_GET['view'] == 'start' ) ) + self::display_start_page(); + elseif ( isset( $_GET['view'] ) && $_GET['view'] == 'stats' ) + self::display_stats_page(); + else + self::display_configuration_page(); + } + + public static function display_start_page() { + if ( isset( $_GET['action'] ) ) { + if ( $_GET['action'] == 'delete-key' ) { + if ( isset( $_GET['_wpnonce'] ) && wp_verify_nonce( $_GET['_wpnonce'], self::NONCE ) ) + delete_option( 'wordpress_api_key' ); + } + } + + if ( $api_key = Akismet::get_api_key() && ( empty( self::$notices['status'] ) || 'existing-key-invalid' != self::$notices['status'] ) ) { + self::display_configuration_page(); + return; + } + + //the user can choose to auto connect their API key by clicking a button on the akismet done page + //if jetpack, get verified api key by using connected wpcom user id + //if no jetpack, get verified api key by using an akismet token + + $akismet_user = false; + + if ( isset( $_GET['token'] ) && preg_match('/^(\d+)-[0-9a-f]{20}$/', $_GET['token'] ) ) + $akismet_user = self::verify_wpcom_key( '', '', array( 'token' => $_GET['token'] ) ); + elseif ( $jetpack_user = self::get_jetpack_user() ) + $akismet_user = self::verify_wpcom_key( $jetpack_user['api_key'], $jetpack_user['user_id'] ); + + if ( isset( $_GET['action'] ) ) { + if ( $_GET['action'] == 'save-key' ) { + if ( is_object( $akismet_user ) ) { + self::save_key( $akismet_user->api_key ); + self::display_configuration_page(); + return; + } + } + } + + Akismet::view( 'start', compact( 'akismet_user' ) ); + + /* + // To see all variants when testing. + $akismet_user->status = 'no-sub'; + Akismet::view( 'start', compact( 'akismet_user' ) ); + $akismet_user->status = 'cancelled'; + Akismet::view( 'start', compact( 'akismet_user' ) ); + $akismet_user->status = 'suspended'; + Akismet::view( 'start', compact( 'akismet_user' ) ); + $akismet_user->status = 'other'; + Akismet::view( 'start', compact( 'akismet_user' ) ); + $akismet_user = false; + */ + } + + public static function display_stats_page() { + Akismet::view( 'stats' ); + } + + public static function display_configuration_page() { + $api_key = Akismet::get_api_key(); + $akismet_user = self::get_akismet_user( $api_key ); + + if ( ! $akismet_user ) { + // This could happen if the user's key became invalid after it was previously valid and successfully set up. + self::$notices['status'] = 'existing-key-invalid'; + self::display_start_page(); + return; + } + + $stat_totals = self::get_stats( $api_key ); + + // If unset, create the new strictness option using the old discard option to determine its default. + // If the old option wasn't set, default to discarding the blatant spam. + if ( get_option( 'akismet_strictness' ) === false ) { + add_option( 'akismet_strictness', ( get_option( 'akismet_discard_month' ) === 'false' ? '0' : '1' ) ); + } + + // Sync the local "Total spam blocked" count with the authoritative count from the server. + if ( isset( $stat_totals['all'], $stat_totals['all']->spam ) ) { + update_option( 'akismet_spam_count', $stat_totals['all']->spam ); + } + + $notices = array(); + + if ( empty( self::$notices ) ) { + if ( ! empty( $stat_totals['all'] ) && isset( $stat_totals['all']->time_saved ) && $akismet_user->status == 'active' && $akismet_user->account_type == 'free-api-key' ) { + + $time_saved = false; + + if ( $stat_totals['all']->time_saved > 1800 ) { + $total_in_minutes = round( $stat_totals['all']->time_saved / 60 ); + $total_in_hours = round( $total_in_minutes / 60 ); + $total_in_days = round( $total_in_hours / 8 ); + $cleaning_up = __( 'Cleaning up spam takes time.' , 'akismet'); + + if ( $total_in_days > 1 ) + $time_saved = $cleaning_up . ' ' . sprintf( _n( 'Akismet has saved you %s day!', 'Akismet has saved you %s days!', $total_in_days, 'akismet' ), number_format_i18n( $total_in_days ) ); + elseif ( $total_in_hours > 1 ) + $time_saved = $cleaning_up . ' ' . sprintf( _n( 'Akismet has saved you %d hour!', 'Akismet has saved you %d hours!', $total_in_hours, 'akismet' ), $total_in_hours ); + elseif ( $total_in_minutes >= 30 ) + $time_saved = $cleaning_up . ' ' . sprintf( _n( 'Akismet has saved you %d minute!', 'Akismet has saved you %d minutes!', $total_in_minutes, 'akismet' ), $total_in_minutes ); + } + + $notices[] = array( 'type' => 'active-notice', 'time_saved' => $time_saved ); + } + + if ( !empty( $akismet_user->limit_reached ) && in_array( $akismet_user->limit_reached, array( 'yellow', 'red' ) ) ) { + $notices[] = array( 'type' => 'limit-reached', 'level' => $akismet_user->limit_reached ); + } + } + + if ( !isset( self::$notices['status'] ) && in_array( $akismet_user->status, array( 'cancelled', 'suspended', 'missing', 'no-sub' ) ) ) { + $notices[] = array( 'type' => $akismet_user->status ); + } + + /* + // To see all variants when testing. + $notices[] = array( 'type' => 'active-notice', 'time_saved' => 'Cleaning up spam takes time. Akismet has saved you 1 minute!' ); + $notices[] = array( 'type' => 'plugin' ); + $notices[] = array( 'type' => 'spam-check', 'link_text' => 'Link text.' ); + $notices[] = array( 'type' => 'notice', 'notice_header' => 'This is the notice header.', 'notice_text' => 'This is the notice text.' ); + $notices[] = array( 'type' => 'missing-functions' ); + $notices[] = array( 'type' => 'servers-be-down' ); + $notices[] = array( 'type' => 'active-dunning' ); + $notices[] = array( 'type' => 'cancelled' ); + $notices[] = array( 'type' => 'suspended' ); + $notices[] = array( 'type' => 'missing' ); + $notices[] = array( 'type' => 'no-sub' ); + $notices[] = array( 'type' => 'new-key-valid' ); + $notices[] = array( 'type' => 'new-key-invalid' ); + $notices[] = array( 'type' => 'existing-key-invalid' ); + $notices[] = array( 'type' => 'new-key-failed' ); + $notices[] = array( 'type' => 'limit-reached', 'level' => 'yellow' ); + $notices[] = array( 'type' => 'limit-reached', 'level' => 'red' ); + */ + + Akismet::log( compact( 'stat_totals', 'akismet_user' ) ); + Akismet::view( 'config', compact( 'api_key', 'akismet_user', 'stat_totals', 'notices' ) ); + } + + public static function display_notice() { + global $hook_suffix; + + if ( in_array( $hook_suffix, array( 'jetpack_page_akismet-key-config', 'settings_page_akismet-key-config' ) ) ) { + // This page manages the notices and puts them inline where they make sense. + return; + } + + if ( in_array( $hook_suffix, array( 'edit-comments.php' ) ) && (int) get_option( 'akismet_alert_code' ) > 0 ) { + Akismet::verify_key( Akismet::get_api_key() ); //verify that the key is still in alert state + + if ( get_option( 'akismet_alert_code' ) > 0 ) + self::display_alert(); + } + elseif ( $hook_suffix == 'plugins.php' && !Akismet::get_api_key() ) { + self::display_api_key_warning(); + } + elseif ( $hook_suffix == 'edit-comments.php' && wp_next_scheduled( 'akismet_schedule_cron_recheck' ) ) { + self::display_spam_check_warning(); + } + else if ( isset( $_GET['akismet_recheck_complete'] ) ) { + $recheck_count = (int) $_GET['recheck_count']; + $spam_count = (int) $_GET['spam_count']; + + if ( $recheck_count === 0 ) { + $message = __( 'There were no comments to check. Akismet will only check comments in the Pending queue.', 'akismet' ); + } + else { + $message = sprintf( _n( 'Akismet checked %s comment.', 'Akismet checked %s comments.', $recheck_count, 'akismet' ), number_format( $recheck_count ) ); + $message .= ' '; + + if ( $spam_count === 0 ) { + $message .= __( 'No comments were caught as spam.' ); + } + else { + $message .= sprintf( _n( '%s comment was caught as spam.', '%s comments were caught as spam.', $spam_count, 'akismet' ), number_format( $spam_count ) ); + } + } + + echo '<div class="notice notice-success"><p>' . esc_html( $message ) . '</p></div>'; + } + } + + public static function display_status() { + if ( ! self::get_server_connectivity() ) { + Akismet::view( 'notice', array( 'type' => 'servers-be-down' ) ); + } + else if ( ! empty( self::$notices ) ) { + foreach ( self::$notices as $index => $type ) { + if ( is_object( $type ) ) { + $notice_header = $notice_text = ''; + + if ( property_exists( $type, 'notice_header' ) ) { + $notice_header = wp_kses( $type->notice_header, self::$allowed ); + } + + if ( property_exists( $type, 'notice_text' ) ) { + $notice_text = wp_kses( $type->notice_text, self::$allowed ); + } + + if ( property_exists( $type, 'status' ) ) { + $type = wp_kses( $type->status, self::$allowed ); + Akismet::view( 'notice', compact( 'type', 'notice_header', 'notice_text' ) ); + + unset( self::$notices[ $index ] ); + } + } + else { + Akismet::view( 'notice', compact( 'type' ) ); + + unset( self::$notices[ $index ] ); + } + } + } + } + + private static function get_jetpack_user() { + if ( !class_exists('Jetpack') ) + return false; + + Jetpack::load_xml_rpc_client(); + $xml = new Jetpack_IXR_ClientMulticall( array( 'user_id' => get_current_user_id() ) ); + + $xml->addCall( 'wpcom.getUserID' ); + $xml->addCall( 'akismet.getAPIKey' ); + $xml->query(); + + Akismet::log( compact( 'xml' ) ); + + if ( !$xml->isError() ) { + $responses = $xml->getResponse(); + if ( count( $responses ) > 1 ) { + // Due to a quirk in how Jetpack does multi-calls, the response order + // can't be trusted to match the call order. It's a good thing our + // return values can be mostly differentiated from each other. + $first_response_value = array_shift( $responses[0] ); + $second_response_value = array_shift( $responses[1] ); + + // If WPCOM ever reaches 100 billion users, this will fail. :-) + if ( preg_match( '/^[a-f0-9]{12}$/i', $first_response_value ) ) { + $api_key = $first_response_value; + $user_id = (int) $second_response_value; + } + else { + $api_key = $second_response_value; + $user_id = (int) $first_response_value; + } + + return compact( 'api_key', 'user_id' ); + } + } + return false; + } + + /** + * Some commentmeta isn't useful in an export file. Suppress it (when supported). + * + * @param bool $exclude + * @param string $key The meta key + * @param object $meta The meta object + * @return bool Whether to exclude this meta entry from the export. + */ + public static function exclude_commentmeta_from_export( $exclude, $key, $meta ) { + if ( in_array( $key, array( 'akismet_as_submitted', 'akismet_rechecking', 'akismet_delayed_moderation_email' ) ) ) { + return true; + } + + return $exclude; + } + + /** + * When Akismet is active, remove the "Activate Akismet" step from the plugin description. + */ + public static function modify_plugin_description( $all_plugins ) { + if ( isset( $all_plugins['akismet/akismet.php'] ) ) { + if ( Akismet::get_api_key() ) { + $all_plugins['akismet/akismet.php']['Description'] = __( 'Used by millions, Akismet is quite possibly the best way in the world to <strong>protect your blog from spam</strong>. Your site is fully configured and being protected, even while you sleep.', 'akismet' ); + } + else { + $all_plugins['akismet/akismet.php']['Description'] = __( 'Used by millions, Akismet is quite possibly the best way in the world to <strong>protect your blog from spam</strong>. It keeps your site protected even while you sleep. To get started, just go to <a href="admin.php?page=akismet-key-config">your Akismet Settings page</a> to set up your API key.', 'akismet' ); + } + } + + return $all_plugins; + } +} diff --git a/wp-content/plugins/akismet/class.akismet-cli.php b/wp-content/plugins/akismet/class.akismet-cli.php new file mode 100644 index 000000000..b0b483670 --- /dev/null +++ b/wp-content/plugins/akismet/class.akismet-cli.php @@ -0,0 +1,91 @@ +<?php + +WP_CLI::add_command( 'akismet', 'Akismet_CLI' ); + +/** + * Filter spam comments. + */ +class Akismet_CLI extends WP_CLI_Command { + /** + * Checks one or more comments against the Akismet API. + * + * ## OPTIONS + * <comment_id>... + * : The ID(s) of the comment(s) to check. + * + * [--noaction] + * : Don't change the status of the comment. Just report what Akismet thinks it is. + * + * ## EXAMPLES + * + * wp akismet check 12345 + * + * @alias comment-check + */ + public function check( $args, $assoc_args ) { + foreach ( $args as $comment_id ) { + if ( isset( $assoc_args['noaction'] ) ) { + // Check the comment, but don't reclassify it. + $api_response = Akismet::check_db_comment( $comment_id, 'wp-cli' ); + } + else { + $api_response = Akismet::recheck_comment( $comment_id, 'wp-cli' ); + } + + if ( 'true' === $api_response ) { + WP_CLI::line( sprintf( __( "Comment #%d is spam.", 'akismet' ), $comment_id ) ); + } + else if ( 'false' === $api_response ) { + WP_CLI::line( sprintf( __( "Comment #%d is not spam.", 'akismet' ), $comment_id ) ); + } + else { + if ( false === $api_response ) { + WP_CLI::error( __( "Failed to connect to Akismet.", 'akismet' ) ); + } + else if ( is_wp_error( $api_response ) ) { + WP_CLI::warning( sprintf( __( "Comment #%d could not be checked.", 'akismet' ), $comment_id ) ); + } + } + } + } + + /** + * Recheck all comments in the Pending queue. + * + * ## EXAMPLES + * + * wp akismet recheck_queue + * + * @alias recheck-queue + */ + public function recheck_queue() { + $batch_size = 100; + $start = 0; + + $total_counts = array(); + + do { + $result_counts = Akismet_Admin::recheck_queue_portion( $start, $batch_size ); + + if ( $result_counts['processed'] > 0 ) { + foreach ( $result_counts as $key => $count ) { + if ( ! isset( $total_counts[ $key ] ) ) { + $total_counts[ $key ] = $count; + } + else { + $total_counts[ $key ] += $count; + } + } + $start += $batch_size; + $start -= $result_counts['spam']; // These comments will have been removed from the queue. + } + } while ( $result_counts['processed'] > 0 ); + + WP_CLI::line( sprintf( _n( "Processed %d comment.", "Processed %d comments.", $total_counts['processed'], 'akismet' ), number_format( $total_counts['processed'] ) ) ); + WP_CLI::line( sprintf( _n( "%d comment moved to Spam.", "%d comments moved to Spam.", $total_counts['spam'], 'akismet' ), number_format( $total_counts['spam'] ) ) ); + + if ( $total_counts['error'] ) { + WP_CLI::line( sprintf( _n( "%d comment could not be checked.", "%d comments could not be checked.", $total_counts['error'], 'akismet' ), number_format( $total_counts['error'] ) ) ); + } + } +} \ No newline at end of file diff --git a/wp-content/plugins/akismet/class.akismet-rest-api.php b/wp-content/plugins/akismet/class.akismet-rest-api.php new file mode 100644 index 000000000..f97b710d3 --- /dev/null +++ b/wp-content/plugins/akismet/class.akismet-rest-api.php @@ -0,0 +1,271 @@ +<?php + +class Akismet_REST_API { + /** + * Register the REST API routes. + */ + public static function init() { + if ( ! function_exists( 'register_rest_route' ) ) { + // The REST API wasn't integrated into core until 4.4, and we support 4.0+ (for now). + return false; + } + + register_rest_route( 'akismet/v1', '/key', array( + array( + 'methods' => WP_REST_Server::READABLE, + 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), + 'callback' => array( 'Akismet_REST_API', 'get_key' ), + ), array( + 'methods' => WP_REST_Server::EDITABLE, + 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), + 'callback' => array( 'Akismet_REST_API', 'set_key' ), + 'args' => array( + 'key' => array( + 'required' => true, + 'type' => 'string', + 'sanitize_callback' => array( 'Akismet_REST_API', 'sanitize_key' ), + 'description' => __( 'A 12-character Akismet API key. Available at akismet.com/get/', 'akismet' ), + ), + ), + ), array( + 'methods' => WP_REST_Server::DELETABLE, + 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), + 'callback' => array( 'Akismet_REST_API', 'delete_key' ), + ) + ) ); + + register_rest_route( 'akismet/v1', '/settings/', array( + array( + 'methods' => WP_REST_Server::READABLE, + 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), + 'callback' => array( 'Akismet_REST_API', 'get_settings' ), + ), + array( + 'methods' => WP_REST_Server::EDITABLE, + 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), + 'callback' => array( 'Akismet_REST_API', 'set_boolean_settings' ), + 'args' => array( + 'akismet_strictness' => array( + 'required' => false, + 'type' => 'boolean', + 'description' => __( 'If true, Akismet will automatically discard the worst spam automatically rather than putting it in the spam folder.', 'akismet' ), + ), + 'akismet_show_user_comments_approved' => array( + 'required' => false, + 'type' => 'boolean', + 'description' => __( 'If true, show the number of approved comments beside each comment author in the comments list page.', 'akismet' ), + ), + ), + ) + ) ); + + register_rest_route( 'akismet/v1', '/stats', array( + 'methods' => WP_REST_Server::READABLE, + 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), + 'callback' => array( 'Akismet_REST_API', 'get_stats' ), + 'args' => array( + 'interval' => array( + 'required' => false, + 'type' => 'string', + 'sanitize_callback' => array( 'Akismet_REST_API', 'sanitize_interval' ), + 'description' => __( 'The time period for which to retrieve stats. Options: 60-days, 6-months, all', 'akismet' ), + 'default' => 'all', + ), + ), + ) ); + + register_rest_route( 'akismet/v1', '/stats/(?P<interval>[\w+])', array( + 'args' => array( + 'interval' => array( + 'description' => __( 'The time period for which to retrieve stats. Options: 60-days, 6-months, all', 'akismet' ), + 'type' => 'string', + ), + ), + array( + 'methods' => WP_REST_Server::READABLE, + 'permission_callback' => array( 'Akismet_REST_API', 'privileged_permission_callback' ), + 'callback' => array( 'Akismet_REST_API', 'get_stats' ), + ) + ) ); + } + + /** + * Get the current Akismet API key. + * + * @param WP_REST_Request $request + * @return WP_Error|WP_REST_Response + */ + public static function get_key( $request = null ) { + return rest_ensure_response( Akismet::get_api_key() ); + } + + /** + * Set the API key, if possible. + * + * @param WP_REST_Request $request + * @return WP_Error|WP_REST_Response + */ + public static function set_key( $request ) { + if ( defined( 'WPCOM_API_KEY' ) ) { + return rest_ensure_response( new WP_Error( 'hardcoded_key', __( 'This site\'s API key is hardcoded and cannot be changed via the API.', 'akismet' ), array( 'status'=> 409 ) ) ); + } + + $new_api_key = $request->get_param( 'key' ); + + if ( ! self::key_is_valid( $new_api_key ) ) { + return rest_ensure_response( new WP_Error( 'invalid_key', __( 'The value provided is not a valid and registered API key.', 'akismet' ), array( 'status' => 400 ) ) ); + } + + update_option( 'wordpress_api_key', $new_api_key ); + + return self::get_key(); + } + + /** + * Unset the API key, if possible. + * + * @param WP_REST_Request $request + * @return WP_Error|WP_REST_Response + */ + public static function delete_key( $request ) { + if ( defined( 'WPCOM_API_KEY' ) ) { + return rest_ensure_response( new WP_Error( 'hardcoded_key', __( 'This site\'s API key is hardcoded and cannot be deleted.', 'akismet' ), array( 'status'=> 409 ) ) ); + } + + delete_option( 'wordpress_api_key' ); + + return rest_ensure_response( true ); + } + + /** + * Get the Akismet settings. + * + * @param WP_REST_Request $request + * @return WP_Error|WP_REST_Response + */ + public static function get_settings( $request = null ) { + return rest_ensure_response( array( + 'akismet_strictness' => ( get_option( 'akismet_strictness', '1' ) === '1' ), + 'akismet_show_user_comments_approved' => ( get_option( 'akismet_show_user_comments_approved', '1' ) === '1' ), + ) ); + } + + /** + * Update the Akismet settings. + * + * @param WP_REST_Request $request + * @return WP_Error|WP_REST_Response + */ + public static function set_boolean_settings( $request ) { + foreach ( array( + 'akismet_strictness', + 'akismet_show_user_comments_approved', + ) as $setting_key ) { + + $setting_value = $request->get_param( $setting_key ); + if ( is_null( $setting_value ) ) { + // This setting was not specified. + continue; + } + + // From 4.7+, WP core will ensure that these are always boolean + // values because they are registered with 'type' => 'boolean', + // but we need to do this ourselves for prior versions. + $setting_value = Akismet_REST_API::parse_boolean( $setting_value ); + + update_option( $setting_key, $setting_value ? '1' : '0' ); + } + + return self::get_settings(); + } + + /** + * Parse a numeric or string boolean value into a boolean. + * + * @param mixed $value The value to convert into a boolean. + * @return bool The converted value. + */ + public static function parse_boolean( $value ) { + switch ( $value ) { + case true: + case 'true': + case '1': + case 1: + return true; + + case false: + case 'false': + case '0': + case 0: + return false; + + default: + return (bool) $value; + } + } + + /** + * Get the Akismet stats for a given time period. + * + * Possible `interval` values: + * - all + * - 60-days + * - 6-months + * + * @param WP_REST_Request $request + * @return WP_Error|WP_REST_Response + */ + public static function get_stats( $request ) { + $api_key = Akismet::get_api_key(); + + $interval = $request->get_param( 'interval' ); + + $stat_totals = array(); + + $response = Akismet::http_post( Akismet::build_query( array( 'blog' => get_option( 'home' ), 'key' => $api_key, 'from' => $interval ) ), 'get-stats' ); + + if ( ! empty( $response[1] ) ) { + $stat_totals[$interval] = json_decode( $response[1] ); + } + + return rest_ensure_response( $stat_totals ); + } + + private static function key_is_valid( $key ) { + $response = Akismet::http_post( + Akismet::build_query( + array( + 'key' => $key, + 'blog' => get_option( 'home' ) + ) + ), + 'verify-key' + ); + + if ( $response[1] == 'valid' ) { + return true; + } + + return false; + } + + public static function privileged_permission_callback() { + return current_user_can( 'manage_options' ); + } + + public static function sanitize_interval( $interval, $request, $param ) { + $interval = trim( $interval ); + + $valid_intervals = array( '60-days', '6-months', 'all', ); + + if ( ! in_array( $interval, $valid_intervals ) ) { + $interval = 'all'; + } + + return $interval; + } + + public static function sanitize_key( $key, $request, $param ) { + return trim( $key ); + } +} diff --git a/wp-content/plugins/akismet/class.akismet-widget.php b/wp-content/plugins/akismet/class.akismet-widget.php new file mode 100644 index 000000000..55b0f35c2 --- /dev/null +++ b/wp-content/plugins/akismet/class.akismet-widget.php @@ -0,0 +1,114 @@ +<?php +/** + * @package Akismet + */ +class Akismet_Widget extends WP_Widget { + + function __construct() { + load_plugin_textdomain( 'akismet' ); + + parent::__construct( + 'akismet_widget', + __( 'Akismet Widget' , 'akismet'), + array( 'description' => __( 'Display the number of spam comments Akismet has caught' , 'akismet') ) + ); + + if ( is_active_widget( false, false, $this->id_base ) ) { + add_action( 'wp_head', array( $this, 'css' ) ); + } + } + + function css() { +?> + +<style type="text/css"> +.a-stats { + width: auto; +} +.a-stats a { + background: #7CA821; + background-image:-moz-linear-gradient(0% 100% 90deg,#5F8E14,#7CA821); + background-image:-webkit-gradient(linear,0% 0,0% 100%,from(#7CA821),to(#5F8E14)); + border: 1px solid #5F8E14; + border-radius:3px; + color: #CFEA93; + cursor: pointer; + display: block; + font-weight: normal; + height: 100%; + -moz-border-radius:3px; + padding: 7px 0 8px; + text-align: center; + text-decoration: none; + -webkit-border-radius:3px; + width: 100%; +} +.a-stats a:hover { + text-decoration: none; + background-image:-moz-linear-gradient(0% 100% 90deg,#6F9C1B,#659417); + background-image:-webkit-gradient(linear,0% 0,0% 100%,from(#659417),to(#6F9C1B)); +} +.a-stats .count { + color: #FFF; + display: block; + font-size: 15px; + line-height: 16px; + padding: 0 13px; + white-space: nowrap; +} +</style> + +<?php + } + + function form( $instance ) { + if ( $instance && isset( $instance['title'] ) ) { + $title = $instance['title']; + } + else { + $title = __( 'Spam Blocked' , 'akismet' ); + } +?> + + <p> + <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php esc_html_e( 'Title:' , 'akismet'); ?></label> + <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" /> + </p> + +<?php + } + + function update( $new_instance, $old_instance ) { + $instance['title'] = strip_tags( $new_instance['title'] ); + return $instance; + } + + function widget( $args, $instance ) { + $count = get_option( 'akismet_spam_count' ); + + if ( ! isset( $instance['title'] ) ) { + $instance['title'] = __( 'Spam Blocked' , 'akismet' ); + } + + echo $args['before_widget']; + if ( ! empty( $instance['title'] ) ) { + echo $args['before_title']; + echo esc_html( $instance['title'] ); + echo $args['after_title']; + } +?> + + <div class="a-stats"> + <a href="https://akismet.com" target="_blank" title=""><?php printf( _n( '<strong class="count">%1$s spam</strong> blocked by <strong>Akismet</strong>', '<strong class="count">%1$s spam</strong> blocked by <strong>Akismet</strong>', $count , 'akismet'), number_format_i18n( $count ) ); ?></a> + </div> + +<?php + echo $args['after_widget']; + } +} + +function akismet_register_widgets() { + register_widget( 'Akismet_Widget' ); +} + +add_action( 'widgets_init', 'akismet_register_widgets' ); diff --git a/wp-content/plugins/akismet/class.akismet.php b/wp-content/plugins/akismet/class.akismet.php new file mode 100644 index 000000000..0ed53fcea --- /dev/null +++ b/wp-content/plugins/akismet/class.akismet.php @@ -0,0 +1,1391 @@ +<?php + +class Akismet { + const API_HOST = 'rest.akismet.com'; + const API_PORT = 80; + const MAX_DELAY_BEFORE_MODERATION_EMAIL = 86400; // One day in seconds + + private static $last_comment = ''; + private static $initiated = false; + private static $prevent_moderation_email_for_these_comments = array(); + private static $last_comment_result = null; + private static $comment_as_submitted_allowed_keys = array( 'blog' => '', 'blog_charset' => '', 'blog_lang' => '', 'blog_ua' => '', 'comment_agent' => '', 'comment_author' => '', 'comment_author_IP' => '', 'comment_author_email' => '', 'comment_author_url' => '', 'comment_content' => '', 'comment_date_gmt' => '', 'comment_tags' => '', 'comment_type' => '', 'guid' => '', 'is_test' => '', 'permalink' => '', 'reporter' => '', 'site_domain' => '', 'submit_referer' => '', 'submit_uri' => '', 'user_ID' => '', 'user_agent' => '', 'user_id' => '', 'user_ip' => '' ); + private static $is_rest_api_call = false; + + public static function init() { + if ( ! self::$initiated ) { + self::init_hooks(); + } + } + + /** + * Initializes WordPress hooks + */ + private static function init_hooks() { + self::$initiated = true; + + add_action( 'wp_insert_comment', array( 'Akismet', 'auto_check_update_meta' ), 10, 2 ); + add_filter( 'preprocess_comment', array( 'Akismet', 'auto_check_comment' ), 1 ); + add_filter( 'rest_pre_insert_comment', array( 'Akismet', 'rest_auto_check_comment' ), 1 ); + + add_action( 'akismet_scheduled_delete', array( 'Akismet', 'delete_old_comments' ) ); + add_action( 'akismet_scheduled_delete', array( 'Akismet', 'delete_old_comments_meta' ) ); + add_action( 'akismet_scheduled_delete', array( 'Akismet', 'delete_orphaned_commentmeta' ) ); + add_action( 'akismet_schedule_cron_recheck', array( 'Akismet', 'cron_recheck' ) ); + + add_action( 'comment_form', array( 'Akismet', 'add_comment_nonce' ), 1 ); + + add_action( 'admin_head-edit-comments.php', array( 'Akismet', 'load_form_js' ) ); + add_action( 'comment_form', array( 'Akismet', 'load_form_js' ) ); + add_action( 'comment_form', array( 'Akismet', 'inject_ak_js' ) ); + add_filter( 'script_loader_tag', array( 'Akismet', 'set_form_js_async' ), 10, 3 ); + + add_filter( 'comment_moderation_recipients', array( 'Akismet', 'disable_moderation_emails_if_unreachable' ), 1000, 2 ); + add_filter( 'pre_comment_approved', array( 'Akismet', 'last_comment_status' ), 10, 2 ); + + add_action( 'transition_comment_status', array( 'Akismet', 'transition_comment_status' ), 10, 3 ); + + // Run this early in the pingback call, before doing a remote fetch of the source uri + add_action( 'xmlrpc_call', array( 'Akismet', 'pre_check_pingback' ) ); + + // Jetpack compatibility + add_filter( 'jetpack_options_whitelist', array( 'Akismet', 'add_to_jetpack_options_whitelist' ) ); + add_action( 'update_option_wordpress_api_key', array( 'Akismet', 'updated_option' ), 10, 2 ); + } + + public static function get_api_key() { + return apply_filters( 'akismet_get_api_key', defined('WPCOM_API_KEY') ? constant('WPCOM_API_KEY') : get_option('wordpress_api_key') ); + } + + public static function check_key_status( $key, $ip = null ) { + return self::http_post( Akismet::build_query( array( 'key' => $key, 'blog' => get_option( 'home' ) ) ), 'verify-key', $ip ); + } + + public static function verify_key( $key, $ip = null ) { + $response = self::check_key_status( $key, $ip ); + + if ( $response[1] != 'valid' && $response[1] != 'invalid' ) + return 'failed'; + + return $response[1]; + } + + public static function deactivate_key( $key ) { + $response = self::http_post( Akismet::build_query( array( 'key' => $key, 'blog' => get_option( 'home' ) ) ), 'deactivate' ); + + if ( $response[1] != 'deactivated' ) + return 'failed'; + + return $response[1]; + } + + /** + * Add the akismet option to the Jetpack options management whitelist. + * + * @param array $options The list of whitelisted option names. + * @return array The updated whitelist + */ + public static function add_to_jetpack_options_whitelist( $options ) { + $options[] = 'wordpress_api_key'; + return $options; + } + + /** + * When the akismet option is updated, run the registration call. + * + * This should only be run when the option is updated from the Jetpack/WP.com + * API call, and only if the new key is different than the old key. + * + * @param mixed $old_value The old option value. + * @param mixed $value The new option value. + */ + public static function updated_option( $old_value, $value ) { + // Not an API call + if ( ! class_exists( 'WPCOM_JSON_API_Update_Option_Endpoint' ) ) { + return; + } + // Only run the registration if the old key is different. + if ( $old_value !== $value ) { + self::verify_key( $value ); + } + } + + public static function rest_auto_check_comment( $commentdata ) { + self::$is_rest_api_call = true; + + return self::auto_check_comment( $commentdata ); + } + + public static function auto_check_comment( $commentdata ) { + self::$last_comment_result = null; + + $comment = $commentdata; + + $comment['user_ip'] = self::get_ip_address(); + $comment['user_agent'] = self::get_user_agent(); + $comment['referrer'] = self::get_referer(); + $comment['blog'] = get_option( 'home' ); + $comment['blog_lang'] = get_locale(); + $comment['blog_charset'] = get_option('blog_charset'); + $comment['permalink'] = get_permalink( $comment['comment_post_ID'] ); + + if ( ! empty( $comment['user_ID'] ) ) { + $comment['user_role'] = Akismet::get_user_roles( $comment['user_ID'] ); + } + + /** See filter documentation in init_hooks(). */ + $akismet_nonce_option = apply_filters( 'akismet_comment_nonce', get_option( 'akismet_comment_nonce' ) ); + $comment['akismet_comment_nonce'] = 'inactive'; + if ( $akismet_nonce_option == 'true' || $akismet_nonce_option == '' ) { + $comment['akismet_comment_nonce'] = 'failed'; + if ( isset( $_POST['akismet_comment_nonce'] ) && wp_verify_nonce( $_POST['akismet_comment_nonce'], 'akismet_comment_nonce_' . $comment['comment_post_ID'] ) ) + $comment['akismet_comment_nonce'] = 'passed'; + + // comment reply in wp-admin + if ( isset( $_POST['_ajax_nonce-replyto-comment'] ) && check_ajax_referer( 'replyto-comment', '_ajax_nonce-replyto-comment' ) ) + $comment['akismet_comment_nonce'] = 'passed'; + + } + + if ( self::is_test_mode() ) + $comment['is_test'] = 'true'; + + foreach( $_POST as $key => $value ) { + if ( is_string( $value ) ) + $comment["POST_{$key}"] = $value; + } + + foreach ( $_SERVER as $key => $value ) { + if ( ! is_string( $value ) ) { + continue; + } + + if ( preg_match( "/^HTTP_COOKIE/", $key ) ) { + continue; + } + + // Send any potentially useful $_SERVER vars, but avoid sending junk we don't need. + if ( preg_match( "/^(HTTP_|REMOTE_ADDR|REQUEST_URI|DOCUMENT_URI)/", $key ) ) { + $comment[ "$key" ] = $value; + } + } + + $post = get_post( $comment['comment_post_ID'] ); + + if ( ! is_null( $post ) ) { + // $post can technically be null, although in the past, it's always been an indicator of another plugin interfering. + $comment[ 'comment_post_modified_gmt' ] = $post->post_modified_gmt; + } + + $response = self::http_post( Akismet::build_query( $comment ), 'comment-check' ); + + do_action( 'akismet_comment_check_response', $response ); + + $commentdata['comment_as_submitted'] = array_intersect_key( $comment, self::$comment_as_submitted_allowed_keys ); + $commentdata['akismet_result'] = $response[1]; + + if ( isset( $response[0]['x-akismet-pro-tip'] ) ) + $commentdata['akismet_pro_tip'] = $response[0]['x-akismet-pro-tip']; + + if ( isset( $response[0]['x-akismet-error'] ) ) { + // An error occurred that we anticipated (like a suspended key) and want the user to act on. + // Send to moderation. + self::$last_comment_result = '0'; + } + else if ( 'true' == $response[1] ) { + // akismet_spam_count will be incremented later by comment_is_spam() + self::$last_comment_result = 'spam'; + + $discard = ( isset( $commentdata['akismet_pro_tip'] ) && $commentdata['akismet_pro_tip'] === 'discard' && self::allow_discard() ); + + do_action( 'akismet_spam_caught', $discard ); + + if ( $discard ) { + // The spam is obvious, so we're bailing out early. + // akismet_result_spam() won't be called so bump the counter here + if ( $incr = apply_filters( 'akismet_spam_count_incr', 1 ) ) { + update_option( 'akismet_spam_count', get_option( 'akismet_spam_count' ) + $incr ); + } + + if ( self::$is_rest_api_call ) { + return new WP_Error( 'akismet_rest_comment_discarded', __( 'Comment discarded.', 'akismet' ) ); + } + else { + // Redirect back to the previous page, or failing that, the post permalink, or failing that, the homepage of the blog. + $redirect_to = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : ( $post ? get_permalink( $post ) : home_url() ); + wp_safe_redirect( esc_url_raw( $redirect_to ) ); + die(); + } + } + else if ( self::$is_rest_api_call ) { + // The way the REST API structures its calls, we can set the comment_approved value right away. + $commentdata['comment_approved'] = 'spam'; + } + } + + // if the response is neither true nor false, hold the comment for moderation and schedule a recheck + if ( 'true' != $response[1] && 'false' != $response[1] ) { + if ( !current_user_can('moderate_comments') ) { + // Comment status should be moderated + self::$last_comment_result = '0'; + } + + if ( ! wp_next_scheduled( 'akismet_schedule_cron_recheck' ) ) { + wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' ); + do_action( 'akismet_scheduled_recheck', 'invalid-response-' . $response[1] ); + } + + self::$prevent_moderation_email_for_these_comments[] = $commentdata; + } + + // Delete old comments daily + if ( ! wp_next_scheduled( 'akismet_scheduled_delete' ) ) { + wp_schedule_event( time(), 'daily', 'akismet_scheduled_delete' ); + } + + self::set_last_comment( $commentdata ); + self::fix_scheduled_recheck(); + + return $commentdata; + } + + public static function get_last_comment() { + return self::$last_comment; + } + + public static function set_last_comment( $comment ) { + if ( is_null( $comment ) ) { + self::$last_comment = null; + } + else { + // We filter it here so that it matches the filtered comment data that we'll have to compare against later. + // wp_filter_comment expects comment_author_IP + self::$last_comment = wp_filter_comment( + array_merge( + array( 'comment_author_IP' => self::get_ip_address() ), + $comment + ) + ); + } + } + + // this fires on wp_insert_comment. we can't update comment_meta when auto_check_comment() runs + // because we don't know the comment ID at that point. + public static function auto_check_update_meta( $id, $comment ) { + // wp_insert_comment() might be called in other contexts, so make sure this is the same comment + // as was checked by auto_check_comment + if ( is_object( $comment ) && !empty( self::$last_comment ) && is_array( self::$last_comment ) ) { + if ( self::matches_last_comment( $comment ) ) { + + load_plugin_textdomain( 'akismet' ); + + // normal result: true or false + if ( self::$last_comment['akismet_result'] == 'true' ) { + update_comment_meta( $comment->comment_ID, 'akismet_result', 'true' ); + self::update_comment_history( $comment->comment_ID, '', 'check-spam' ); + if ( $comment->comment_approved != 'spam' ) + self::update_comment_history( + $comment->comment_ID, + '', + 'status-changed-'.$comment->comment_approved + ); + } + elseif ( self::$last_comment['akismet_result'] == 'false' ) { + update_comment_meta( $comment->comment_ID, 'akismet_result', 'false' ); + self::update_comment_history( $comment->comment_ID, '', 'check-ham' ); + // Status could be spam or trash, depending on the WP version and whether this change applies: + // https://core.trac.wordpress.org/changeset/34726 + if ( $comment->comment_approved == 'spam' || $comment->comment_approved == 'trash' ) { + if ( wp_blacklist_check($comment->comment_author, $comment->comment_author_email, $comment->comment_author_url, $comment->comment_content, $comment->comment_author_IP, $comment->comment_agent) ) + self::update_comment_history( $comment->comment_ID, '', 'wp-blacklisted' ); + else + self::update_comment_history( $comment->comment_ID, '', 'status-changed-'.$comment->comment_approved ); + } + } // abnormal result: error + else { + update_comment_meta( $comment->comment_ID, 'akismet_error', time() ); + self::update_comment_history( + $comment->comment_ID, + '', + 'check-error', + array( 'response' => substr( self::$last_comment['akismet_result'], 0, 50 ) ) + ); + } + + // record the complete original data as submitted for checking + if ( isset( self::$last_comment['comment_as_submitted'] ) ) + update_comment_meta( $comment->comment_ID, 'akismet_as_submitted', self::$last_comment['comment_as_submitted'] ); + + if ( isset( self::$last_comment['akismet_pro_tip'] ) ) + update_comment_meta( $comment->comment_ID, 'akismet_pro_tip', self::$last_comment['akismet_pro_tip'] ); + } + } + } + + public static function delete_old_comments() { + global $wpdb; + + /** + * Determines how many comments will be deleted in each batch. + * + * @param int The default, as defined by AKISMET_DELETE_LIMIT. + */ + $delete_limit = apply_filters( 'akismet_delete_comment_limit', defined( 'AKISMET_DELETE_LIMIT' ) ? AKISMET_DELETE_LIMIT : 10000 ); + $delete_limit = max( 1, intval( $delete_limit ) ); + + /** + * Determines how many days a comment will be left in the Spam queue before being deleted. + * + * @param int The default number of days. + */ + $delete_interval = apply_filters( 'akismet_delete_comment_interval', 15 ); + $delete_interval = max( 1, intval( $delete_interval ) ); + + while ( $comment_ids = $wpdb->get_col( $wpdb->prepare( "SELECT comment_id FROM {$wpdb->comments} WHERE DATE_SUB(NOW(), INTERVAL %d DAY) > comment_date_gmt AND comment_approved = 'spam' LIMIT %d", $delete_interval, $delete_limit ) ) ) { + if ( empty( $comment_ids ) ) + return; + + $wpdb->queries = array(); + + foreach ( $comment_ids as $comment_id ) { + do_action( 'delete_comment', $comment_id ); + do_action( 'akismet_batch_delete_count', __FUNCTION__ ); + } + + // Prepared as strings since comment_id is an unsigned BIGINT, and using %d will constrain the value to the maximum signed BIGINT. + $format_string = implode( ", ", array_fill( 0, count( $comment_ids ), '%s' ) ); + + $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->comments} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) ); + $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->commentmeta} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) ); + + clean_comment_cache( $comment_ids ); + do_action( 'akismet_delete_comment_batch', count( $comment_ids ) ); + } + + if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->comments ) ) // lucky number + $wpdb->query("OPTIMIZE TABLE {$wpdb->comments}"); + } + + public static function delete_old_comments_meta() { + global $wpdb; + + $interval = apply_filters( 'akismet_delete_commentmeta_interval', 15 ); + + # enforce a minimum of 1 day + $interval = absint( $interval ); + if ( $interval < 1 ) + $interval = 1; + + // akismet_as_submitted meta values are large, so expire them + // after $interval days regardless of the comment status + while ( $comment_ids = $wpdb->get_col( $wpdb->prepare( "SELECT m.comment_id FROM {$wpdb->commentmeta} as m INNER JOIN {$wpdb->comments} as c USING(comment_id) WHERE m.meta_key = 'akismet_as_submitted' AND DATE_SUB(NOW(), INTERVAL %d DAY) > c.comment_date_gmt LIMIT 10000", $interval ) ) ) { + if ( empty( $comment_ids ) ) + return; + + $wpdb->queries = array(); + + foreach ( $comment_ids as $comment_id ) { + delete_comment_meta( $comment_id, 'akismet_as_submitted' ); + do_action( 'akismet_batch_delete_count', __FUNCTION__ ); + } + + do_action( 'akismet_delete_commentmeta_batch', count( $comment_ids ) ); + } + + if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->commentmeta ) ) // lucky number + $wpdb->query("OPTIMIZE TABLE {$wpdb->commentmeta}"); + } + + // Clear out comments meta that no longer have corresponding comments in the database + public static function delete_orphaned_commentmeta() { + global $wpdb; + + $last_meta_id = 0; + $start_time = isset( $_SERVER['REQUEST_TIME_FLOAT'] ) ? $_SERVER['REQUEST_TIME_FLOAT'] : microtime( true ); + $max_exec_time = max( ini_get('max_execution_time') - 5, 3 ); + + while ( $commentmeta_results = $wpdb->get_results( $wpdb->prepare( "SELECT m.meta_id, m.comment_id, m.meta_key FROM {$wpdb->commentmeta} as m LEFT JOIN {$wpdb->comments} as c USING(comment_id) WHERE c.comment_id IS NULL AND m.meta_id > %d ORDER BY m.meta_id LIMIT 1000", $last_meta_id ) ) ) { + if ( empty( $commentmeta_results ) ) + return; + + $wpdb->queries = array(); + + $commentmeta_deleted = 0; + + foreach ( $commentmeta_results as $commentmeta ) { + if ( 'akismet_' == substr( $commentmeta->meta_key, 0, 8 ) ) { + delete_comment_meta( $commentmeta->comment_id, $commentmeta->meta_key ); + do_action( 'akismet_batch_delete_count', __FUNCTION__ ); + $commentmeta_deleted++; + } + + $last_meta_id = $commentmeta->meta_id; + } + + do_action( 'akismet_delete_commentmeta_batch', $commentmeta_deleted ); + + // If we're getting close to max_execution_time, quit for this round. + if ( microtime(true) - $start_time > $max_exec_time ) + return; + } + + if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->commentmeta ) ) // lucky number + $wpdb->query("OPTIMIZE TABLE {$wpdb->commentmeta}"); + } + + // how many approved comments does this author have? + public static function get_user_comments_approved( $user_id, $comment_author_email, $comment_author, $comment_author_url ) { + global $wpdb; + + if ( !empty( $user_id ) ) + return (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->comments} WHERE user_id = %d AND comment_approved = 1", $user_id ) ); + + if ( !empty( $comment_author_email ) ) + return (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->comments} WHERE comment_author_email = %s AND comment_author = %s AND comment_author_url = %s AND comment_approved = 1", $comment_author_email, $comment_author, $comment_author_url ) ); + + return 0; + } + + // get the full comment history for a given comment, as an array in reverse chronological order + public static function get_comment_history( $comment_id ) { + $history = get_comment_meta( $comment_id, 'akismet_history', false ); + usort( $history, array( 'Akismet', '_cmp_time' ) ); + return $history; + } + + /** + * Log an event for a given comment, storing it in comment_meta. + * + * @param int $comment_id The ID of the relevant comment. + * @param string $message The string description of the event. No longer used. + * @param string $event The event code. + * @param array $meta Metadata about the history entry. e.g., the user that reported or changed the status of a given comment. + */ + public static function update_comment_history( $comment_id, $message, $event=null, $meta=null ) { + global $current_user; + + $user = ''; + + $event = array( + 'time' => self::_get_microtime(), + 'event' => $event, + ); + + if ( is_object( $current_user ) && isset( $current_user->user_login ) ) { + $event['user'] = $current_user->user_login; + } + + if ( ! empty( $meta ) ) { + $event['meta'] = $meta; + } + + // $unique = false so as to allow multiple values per comment + $r = add_comment_meta( $comment_id, 'akismet_history', $event, false ); + } + + public static function check_db_comment( $id, $recheck_reason = 'recheck_queue' ) { + global $wpdb; + + $c = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->comments} WHERE comment_ID = %d", $id ), ARRAY_A ); + + if ( ! $c ) { + return new WP_Error( 'invalid-comment-id', __( 'Comment not found.', 'akismet' ) ); + } + + $c['user_ip'] = $c['comment_author_IP']; + $c['user_agent'] = $c['comment_agent']; + $c['referrer'] = ''; + $c['blog'] = get_option( 'home' ); + $c['blog_lang'] = get_locale(); + $c['blog_charset'] = get_option('blog_charset'); + $c['permalink'] = get_permalink($c['comment_post_ID']); + $c['recheck_reason'] = $recheck_reason; + + $c['user_role'] = ''; + if ( ! empty( $c['user_ID'] ) ) { + $c['user_role'] = Akismet::get_user_roles( $c['user_ID'] ); + } + + if ( self::is_test_mode() ) + $c['is_test'] = 'true'; + + $response = self::http_post( Akismet::build_query( $c ), 'comment-check' ); + + if ( ! empty( $response[1] ) ) { + return $response[1]; + } + + return false; + } + + public static function recheck_comment( $id, $recheck_reason = 'recheck_queue' ) { + add_comment_meta( $id, 'akismet_rechecking', true ); + + $api_response = self::check_db_comment( $id, $recheck_reason ); + + delete_comment_meta( $id, 'akismet_rechecking' ); + + if ( is_wp_error( $api_response ) ) { + // Invalid comment ID. + } + else if ( 'true' === $api_response ) { + wp_set_comment_status( $id, 'spam' ); + update_comment_meta( $id, 'akismet_result', 'true' ); + delete_comment_meta( $id, 'akismet_error' ); + delete_comment_meta( $id, 'akismet_delayed_moderation_email' ); + Akismet::update_comment_history( $id, '', 'recheck-spam' ); + } + elseif ( 'false' === $api_response ) { + update_comment_meta( $id, 'akismet_result', 'false' ); + delete_comment_meta( $id, 'akismet_error' ); + delete_comment_meta( $id, 'akismet_delayed_moderation_email' ); + Akismet::update_comment_history( $id, '', 'recheck-ham' ); + } + else { + // abnormal result: error + update_comment_meta( $id, 'akismet_result', 'error' ); + Akismet::update_comment_history( + $id, + '', + 'recheck-error', + array( 'response' => substr( $api_response, 0, 50 ) ) + ); + } + + return $api_response; + } + + public static function transition_comment_status( $new_status, $old_status, $comment ) { + + if ( $new_status == $old_status ) + return; + + # we don't need to record a history item for deleted comments + if ( $new_status == 'delete' ) + return; + + if ( !current_user_can( 'edit_post', $comment->comment_post_ID ) && !current_user_can( 'moderate_comments' ) ) + return; + + if ( defined('WP_IMPORTING') && WP_IMPORTING == true ) + return; + + // if this is present, it means the status has been changed by a re-check, not an explicit user action + if ( get_comment_meta( $comment->comment_ID, 'akismet_rechecking' ) ) + return; + + // Assumption alert: + // We want to submit comments to Akismet only when a moderator explicitly spams or approves it - not if the status + // is changed automatically by another plugin. Unfortunately WordPress doesn't provide an unambiguous way to + // determine why the transition_comment_status action was triggered. And there are several different ways by which + // to spam and unspam comments: bulk actions, ajax, links in moderation emails, the dashboard, and perhaps others. + // We'll assume that this is an explicit user action if certain POST/GET variables exist. + if ( + // status=spam: Marking as spam via the REST API or... + // status=unspam: I'm not sure. Maybe this used to be used instead of status=approved? Or the UI for removing from spam but not approving has been since removed?... + // status=approved: Unspamming via the REST API (Calypso) or... + ( isset( $_POST['status'] ) && in_array( $_POST['status'], array( 'spam', 'unspam', 'approved', ) ) ) + // spam=1: Clicking "Spam" underneath a comment in wp-admin and allowing the AJAX request to happen. + || ( isset( $_POST['spam'] ) && (int) $_POST['spam'] == 1 ) + // unspam=1: Clicking "Not Spam" underneath a comment in wp-admin and allowing the AJAX request to happen. Or, clicking "Undo" after marking something as spam. + || ( isset( $_POST['unspam'] ) && (int) $_POST['unspam'] == 1 ) + // comment_status=spam/unspam: It's unclear where this is happening. + || ( isset( $_POST['comment_status'] ) && in_array( $_POST['comment_status'], array( 'spam', 'unspam' ) ) ) + // action=spam: Choosing "Mark as Spam" from the Bulk Actions dropdown in wp-admin (or the "Spam it" link in notification emails). + // action=unspam: Choosing "Not Spam" from the Bulk Actions dropdown in wp-admin. + // action=spamcomment: Following the "Spam" link below a comment in wp-admin (not allowing AJAX request to happen). + // action=unspamcomment: Following the "Not Spam" link below a comment in wp-admin (not allowing AJAX request to happen). + || ( isset( $_GET['action'] ) && in_array( $_GET['action'], array( 'spam', 'unspam', 'spamcomment', 'unspamcomment', ) ) ) + // action=editedcomment: Editing a comment via wp-admin (and possibly changing its status). + || ( isset( $_POST['action'] ) && in_array( $_POST['action'], array( 'editedcomment' ) ) ) + // for=jetpack: Moderation via the WordPress app, Calypso, anything powered by the Jetpack connection. + || ( isset( $_GET['for'] ) && ( 'jetpack' == $_GET['for'] ) && ( ! defined( 'IS_WPCOM' ) || ! IS_WPCOM ) ) + // Certain WordPress.com API requests + || ( defined( 'REST_API_REQUEST' ) && REST_API_REQUEST ) + // WordPress.org REST API requests + || ( defined( 'REST_REQUEST' ) && REST_REQUEST ) + ) { + if ( $new_status == 'spam' && ( $old_status == 'approved' || $old_status == 'unapproved' || !$old_status ) ) { + return self::submit_spam_comment( $comment->comment_ID ); + } elseif ( $old_status == 'spam' && ( $new_status == 'approved' || $new_status == 'unapproved' ) ) { + return self::submit_nonspam_comment( $comment->comment_ID ); + } + } + + self::update_comment_history( $comment->comment_ID, '', 'status-' . $new_status ); + } + + public static function submit_spam_comment( $comment_id ) { + global $wpdb, $current_user, $current_site; + + $comment_id = (int) $comment_id; + + $comment = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->comments} WHERE comment_ID = %d", $comment_id ) ); + + if ( !$comment ) // it was deleted + return; + + if ( 'spam' != $comment->comment_approved ) + return; + + // use the original version stored in comment_meta if available + $as_submitted = self::sanitize_comment_as_submitted( get_comment_meta( $comment_id, 'akismet_as_submitted', true ) ); + + if ( $as_submitted && is_array( $as_submitted ) && isset( $as_submitted['comment_content'] ) ) + $comment = (object) array_merge( (array)$comment, $as_submitted ); + + $comment->blog = get_option( 'home' ); + $comment->blog_lang = get_locale(); + $comment->blog_charset = get_option('blog_charset'); + $comment->permalink = get_permalink($comment->comment_post_ID); + + if ( is_object($current_user) ) + $comment->reporter = $current_user->user_login; + + if ( is_object($current_site) ) + $comment->site_domain = $current_site->domain; + + $comment->user_role = ''; + if ( ! empty( $comment->user_ID ) ) { + $comment->user_role = Akismet::get_user_roles( $comment->user_ID ); + } + + if ( self::is_test_mode() ) + $comment->is_test = 'true'; + + $post = get_post( $comment->comment_post_ID ); + + if ( ! is_null( $post ) ) { + $comment->comment_post_modified_gmt = $post->post_modified_gmt; + } + + $response = Akismet::http_post( Akismet::build_query( $comment ), 'submit-spam' ); + if ( $comment->reporter ) { + self::update_comment_history( $comment_id, '', 'report-spam' ); + update_comment_meta( $comment_id, 'akismet_user_result', 'true' ); + update_comment_meta( $comment_id, 'akismet_user', $comment->reporter ); + } + + do_action('akismet_submit_spam_comment', $comment_id, $response[1]); + } + + public static function submit_nonspam_comment( $comment_id ) { + global $wpdb, $current_user, $current_site; + + $comment_id = (int) $comment_id; + + $comment = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$wpdb->comments} WHERE comment_ID = %d", $comment_id ) ); + if ( !$comment ) // it was deleted + return; + + // use the original version stored in comment_meta if available + $as_submitted = self::sanitize_comment_as_submitted( get_comment_meta( $comment_id, 'akismet_as_submitted', true ) ); + + if ( $as_submitted && is_array($as_submitted) && isset($as_submitted['comment_content']) ) + $comment = (object) array_merge( (array)$comment, $as_submitted ); + + $comment->blog = get_option( 'home' ); + $comment->blog_lang = get_locale(); + $comment->blog_charset = get_option('blog_charset'); + $comment->permalink = get_permalink( $comment->comment_post_ID ); + $comment->user_role = ''; + + if ( is_object($current_user) ) + $comment->reporter = $current_user->user_login; + + if ( is_object($current_site) ) + $comment->site_domain = $current_site->domain; + + if ( ! empty( $comment->user_ID ) ) { + $comment->user_role = Akismet::get_user_roles( $comment->user_ID ); + } + + if ( Akismet::is_test_mode() ) + $comment->is_test = 'true'; + + $post = get_post( $comment->comment_post_ID ); + + if ( ! is_null( $post ) ) { + $comment->comment_post_modified_gmt = $post->post_modified_gmt; + } + + $response = self::http_post( Akismet::build_query( $comment ), 'submit-ham' ); + if ( $comment->reporter ) { + self::update_comment_history( $comment_id, '', 'report-ham' ); + update_comment_meta( $comment_id, 'akismet_user_result', 'false' ); + update_comment_meta( $comment_id, 'akismet_user', $comment->reporter ); + } + + do_action('akismet_submit_nonspam_comment', $comment_id, $response[1]); + } + + public static function cron_recheck() { + global $wpdb; + + $api_key = self::get_api_key(); + + $status = self::verify_key( $api_key ); + if ( get_option( 'akismet_alert_code' ) || $status == 'invalid' ) { + // since there is currently a problem with the key, reschedule a check for 6 hours hence + wp_schedule_single_event( time() + 21600, 'akismet_schedule_cron_recheck' ); + do_action( 'akismet_scheduled_recheck', 'key-problem-' . get_option( 'akismet_alert_code' ) . '-' . $status ); + return false; + } + + delete_option('akismet_available_servers'); + + $comment_errors = $wpdb->get_col( "SELECT comment_id FROM {$wpdb->commentmeta} WHERE meta_key = 'akismet_error' LIMIT 100" ); + + load_plugin_textdomain( 'akismet' ); + + foreach ( (array) $comment_errors as $comment_id ) { + // if the comment no longer exists, or is too old, remove the meta entry from the queue to avoid getting stuck + $comment = get_comment( $comment_id ); + + if ( + ! $comment // Comment has been deleted + || strtotime( $comment->comment_date_gmt ) < strtotime( "-15 days" ) // Comment is too old. + || $comment->comment_approved !== "0" // Comment is no longer in the Pending queue + ) { + echo "Deleting"; + delete_comment_meta( $comment_id, 'akismet_error' ); + delete_comment_meta( $comment_id, 'akismet_delayed_moderation_email' ); + continue; + } + + add_comment_meta( $comment_id, 'akismet_rechecking', true ); + $status = self::check_db_comment( $comment_id, 'retry' ); + + $event = ''; + if ( $status == 'true' ) { + $event = 'cron-retry-spam'; + } elseif ( $status == 'false' ) { + $event = 'cron-retry-ham'; + } + + // If we got back a legit response then update the comment history + // other wise just bail now and try again later. No point in + // re-trying all the comments once we hit one failure. + if ( !empty( $event ) ) { + delete_comment_meta( $comment_id, 'akismet_error' ); + self::update_comment_history( $comment_id, '', $event ); + update_comment_meta( $comment_id, 'akismet_result', $status ); + // make sure the comment status is still pending. if it isn't, that means the user has already moved it elsewhere. + $comment = get_comment( $comment_id ); + if ( $comment && 'unapproved' == wp_get_comment_status( $comment_id ) ) { + if ( $status == 'true' ) { + wp_spam_comment( $comment_id ); + } elseif ( $status == 'false' ) { + // comment is good, but it's still in the pending queue. depending on the moderation settings + // we may need to change it to approved. + if ( check_comment($comment->comment_author, $comment->comment_author_email, $comment->comment_author_url, $comment->comment_content, $comment->comment_author_IP, $comment->comment_agent, $comment->comment_type) ) + wp_set_comment_status( $comment_id, 1 ); + else if ( get_comment_meta( $comment_id, 'akismet_delayed_moderation_email', true ) ) + wp_notify_moderator( $comment_id ); + } + } + + delete_comment_meta( $comment_id, 'akismet_delayed_moderation_email' ); + } else { + // If this comment has been pending moderation for longer than MAX_DELAY_BEFORE_MODERATION_EMAIL, + // send a moderation email now. + if ( ( intval( gmdate( 'U' ) ) - strtotime( $comment->comment_date_gmt ) ) < self::MAX_DELAY_BEFORE_MODERATION_EMAIL ) { + delete_comment_meta( $comment_id, 'akismet_delayed_moderation_email' ); + wp_notify_moderator( $comment_id ); + } + + delete_comment_meta( $comment_id, 'akismet_rechecking' ); + wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' ); + do_action( 'akismet_scheduled_recheck', 'check-db-comment-' . $status ); + return; + } + delete_comment_meta( $comment_id, 'akismet_rechecking' ); + } + + $remaining = $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->commentmeta} WHERE meta_key = 'akismet_error'" ); + if ( $remaining && !wp_next_scheduled('akismet_schedule_cron_recheck') ) { + wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' ); + do_action( 'akismet_scheduled_recheck', 'remaining' ); + } + } + + public static function fix_scheduled_recheck() { + $future_check = wp_next_scheduled( 'akismet_schedule_cron_recheck' ); + if ( !$future_check ) { + return; + } + + if ( get_option( 'akismet_alert_code' ) > 0 ) { + return; + } + + $check_range = time() + 1200; + if ( $future_check > $check_range ) { + wp_clear_scheduled_hook( 'akismet_schedule_cron_recheck' ); + wp_schedule_single_event( time() + 300, 'akismet_schedule_cron_recheck' ); + do_action( 'akismet_scheduled_recheck', 'fix-scheduled-recheck' ); + } + } + + public static function add_comment_nonce( $post_id ) { + /** + * To disable the Akismet comment nonce, add a filter for the 'akismet_comment_nonce' tag + * and return any string value that is not 'true' or '' (empty string). + * + * Don't return boolean false, because that implies that the 'akismet_comment_nonce' option + * has not been set and that Akismet should just choose the default behavior for that + * situation. + */ + $akismet_comment_nonce_option = apply_filters( 'akismet_comment_nonce', get_option( 'akismet_comment_nonce' ) ); + + if ( $akismet_comment_nonce_option == 'true' || $akismet_comment_nonce_option == '' ) { + echo '<p style="display: none;">'; + wp_nonce_field( 'akismet_comment_nonce_' . $post_id, 'akismet_comment_nonce', FALSE ); + echo '</p>'; + } + } + + public static function is_test_mode() { + return defined('AKISMET_TEST_MODE') && AKISMET_TEST_MODE; + } + + public static function allow_discard() { + if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) + return false; + if ( is_user_logged_in() ) + return false; + + return ( get_option( 'akismet_strictness' ) === '1' ); + } + + public static function get_ip_address() { + return isset( $_SERVER['REMOTE_ADDR'] ) ? $_SERVER['REMOTE_ADDR'] : null; + } + + /** + * Do these two comments, without checking the comment_ID, "match"? + * + * @param mixed $comment1 A comment object or array. + * @param mixed $comment2 A comment object or array. + * @return bool Whether the two comments should be treated as the same comment. + */ + private static function comments_match( $comment1, $comment2 ) { + $comment1 = (array) $comment1; + $comment2 = (array) $comment2; + + // Set default values for these strings that we check in order to simplify + // the checks and avoid PHP warnings. + if ( ! isset( $comment1['comment_author'] ) ) { + $comment1['comment_author'] = ''; + } + + if ( ! isset( $comment2['comment_author'] ) ) { + $comment2['comment_author'] = ''; + } + + if ( ! isset( $comment1['comment_author_email'] ) ) { + $comment1['comment_author_email'] = ''; + } + + if ( ! isset( $comment2['comment_author_email'] ) ) { + $comment2['comment_author_email'] = ''; + } + + $comments_match = ( + isset( $comment1['comment_post_ID'], $comment2['comment_post_ID'] ) + && intval( $comment1['comment_post_ID'] ) == intval( $comment2['comment_post_ID'] ) + && ( + // The comment author length max is 255 characters, limited by the TINYTEXT column type. + // If the comment author includes multibyte characters right around the 255-byte mark, they + // may be stripped when the author is saved in the DB, so a 300+ char author may turn into + // a 253-char author when it's saved, not 255 exactly. The longest possible character is + // theoretically 6 bytes, so we'll only look at the first 248 bytes to be safe. + substr( $comment1['comment_author'], 0, 248 ) == substr( $comment2['comment_author'], 0, 248 ) + || substr( stripslashes( $comment1['comment_author'] ), 0, 248 ) == substr( $comment2['comment_author'], 0, 248 ) + || substr( $comment1['comment_author'], 0, 248 ) == substr( stripslashes( $comment2['comment_author'] ), 0, 248 ) + // Certain long comment author names will be truncated to nothing, depending on their encoding. + || ( ! $comment1['comment_author'] && strlen( $comment2['comment_author'] ) > 248 ) + || ( ! $comment2['comment_author'] && strlen( $comment1['comment_author'] ) > 248 ) + ) + && ( + // The email max length is 100 characters, limited by the VARCHAR(100) column type. + // Same argument as above for only looking at the first 93 characters. + substr( $comment1['comment_author_email'], 0, 93 ) == substr( $comment2['comment_author_email'], 0, 93 ) + || substr( stripslashes( $comment1['comment_author_email'] ), 0, 93 ) == substr( $comment2['comment_author_email'], 0, 93 ) + || substr( $comment1['comment_author_email'], 0, 93 ) == substr( stripslashes( $comment2['comment_author_email'] ), 0, 93 ) + // Very long emails can be truncated and then stripped if the [0:100] substring isn't a valid address. + || ( ! $comment1['comment_author_email'] && strlen( $comment2['comment_author_email'] ) > 100 ) + || ( ! $comment2['comment_author_email'] && strlen( $comment1['comment_author_email'] ) > 100 ) + ) + ); + + return $comments_match; + } + + // Does the supplied comment match the details of the one most recently stored in self::$last_comment? + public static function matches_last_comment( $comment ) { + return self::comments_match( self::$last_comment, $comment ); + } + + private static function get_user_agent() { + return isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : null; + } + + private static function get_referer() { + return isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : null; + } + + // return a comma-separated list of role names for the given user + public static function get_user_roles( $user_id ) { + $roles = false; + + if ( !class_exists('WP_User') ) + return false; + + if ( $user_id > 0 ) { + $comment_user = new WP_User( $user_id ); + if ( isset( $comment_user->roles ) ) + $roles = join( ',', $comment_user->roles ); + } + + if ( is_multisite() && is_super_admin( $user_id ) ) { + if ( empty( $roles ) ) { + $roles = 'super_admin'; + } else { + $comment_user->roles[] = 'super_admin'; + $roles = join( ',', $comment_user->roles ); + } + } + + return $roles; + } + + // filter handler used to return a spam result to pre_comment_approved + public static function last_comment_status( $approved, $comment ) { + if ( is_null( self::$last_comment_result ) ) { + // We didn't have reason to store the result of the last check. + return $approved; + } + + // Only do this if it's the correct comment + if ( ! self::matches_last_comment( $comment ) ) { + self::log( "comment_is_spam mismatched comment, returning unaltered $approved" ); + return $approved; + } + + if ( 'trash' === $approved ) { + // If the last comment we checked has had its approval set to 'trash', + // then it failed the comment blacklist check. Let that blacklist override + // the spam check, since users have the (valid) expectation that when + // they fill out their blacklists, comments that match it will always + // end up in the trash. + return $approved; + } + + // bump the counter here instead of when the filter is added to reduce the possibility of overcounting + if ( $incr = apply_filters('akismet_spam_count_incr', 1) ) + update_option( 'akismet_spam_count', get_option('akismet_spam_count') + $incr ); + + return self::$last_comment_result; + } + + /** + * If Akismet is temporarily unreachable, we don't want to "spam" the blogger with + * moderation emails for comments that will be automatically cleared or spammed on + * the next retry. + * + * For comments that will be rechecked later, empty the list of email addresses that + * the moderation email would be sent to. + * + * @param array $emails An array of email addresses that the moderation email will be sent to. + * @param int $comment_id The ID of the relevant comment. + * @return array An array of email addresses that the moderation email will be sent to. + */ + public static function disable_moderation_emails_if_unreachable( $emails, $comment_id ) { + if ( ! empty( self::$prevent_moderation_email_for_these_comments ) && ! empty( $emails ) ) { + $comment = get_comment( $comment_id ); + + foreach ( self::$prevent_moderation_email_for_these_comments as $possible_match ) { + if ( self::comments_match( $possible_match, $comment ) ) { + update_comment_meta( $comment_id, 'akismet_delayed_moderation_email', true ); + return array(); + } + } + } + + return $emails; + } + + public static function _cmp_time( $a, $b ) { + return $a['time'] > $b['time'] ? -1 : 1; + } + + public static function _get_microtime() { + $mtime = explode( ' ', microtime() ); + return $mtime[1] + $mtime[0]; + } + + /** + * Make a POST request to the Akismet API. + * + * @param string $request The body of the request. + * @param string $path The path for the request. + * @param string $ip The specific IP address to hit. + * @return array A two-member array consisting of the headers and the response body, both empty in the case of a failure. + */ + public static function http_post( $request, $path, $ip=null ) { + + $akismet_ua = sprintf( 'WordPress/%s | Akismet/%s', $GLOBALS['wp_version'], constant( 'AKISMET_VERSION' ) ); + $akismet_ua = apply_filters( 'akismet_ua', $akismet_ua ); + + $content_length = strlen( $request ); + + $api_key = self::get_api_key(); + $host = self::API_HOST; + + if ( !empty( $api_key ) ) + $host = $api_key.'.'.$host; + + $http_host = $host; + // use a specific IP if provided + // needed by Akismet_Admin::check_server_connectivity() + if ( $ip && long2ip( ip2long( $ip ) ) ) { + $http_host = $ip; + } + + $http_args = array( + 'body' => $request, + 'headers' => array( + 'Content-Type' => 'application/x-www-form-urlencoded; charset=' . get_option( 'blog_charset' ), + 'Host' => $host, + 'User-Agent' => $akismet_ua, + ), + 'httpversion' => '1.0', + 'timeout' => 15 + ); + + $akismet_url = $http_akismet_url = "http://{$http_host}/1.1/{$path}"; + + /** + * Try SSL first; if that fails, try without it and don't try it again for a while. + */ + + $ssl = $ssl_failed = false; + + // Check if SSL requests were disabled fewer than X hours ago. + $ssl_disabled = get_option( 'akismet_ssl_disabled' ); + + if ( $ssl_disabled && $ssl_disabled < ( time() - 60 * 60 * 24 ) ) { // 24 hours + $ssl_disabled = false; + delete_option( 'akismet_ssl_disabled' ); + } + else if ( $ssl_disabled ) { + do_action( 'akismet_ssl_disabled' ); + } + + if ( ! $ssl_disabled && ( $ssl = wp_http_supports( array( 'ssl' ) ) ) ) { + $akismet_url = set_url_scheme( $akismet_url, 'https' ); + + do_action( 'akismet_https_request_pre' ); + } + + $response = wp_remote_post( $akismet_url, $http_args ); + + Akismet::log( compact( 'akismet_url', 'http_args', 'response' ) ); + + if ( $ssl && is_wp_error( $response ) ) { + do_action( 'akismet_https_request_failure', $response ); + + // Intermittent connection problems may cause the first HTTPS + // request to fail and subsequent HTTP requests to succeed randomly. + // Retry the HTTPS request once before disabling SSL for a time. + $response = wp_remote_post( $akismet_url, $http_args ); + + Akismet::log( compact( 'akismet_url', 'http_args', 'response' ) ); + + if ( is_wp_error( $response ) ) { + $ssl_failed = true; + + do_action( 'akismet_https_request_failure', $response ); + + do_action( 'akismet_http_request_pre' ); + + // Try the request again without SSL. + $response = wp_remote_post( $http_akismet_url, $http_args ); + + Akismet::log( compact( 'http_akismet_url', 'http_args', 'response' ) ); + } + } + + if ( is_wp_error( $response ) ) { + do_action( 'akismet_request_failure', $response ); + + return array( '', '' ); + } + + if ( $ssl_failed ) { + // The request failed when using SSL but succeeded without it. Disable SSL for future requests. + update_option( 'akismet_ssl_disabled', time() ); + + do_action( 'akismet_https_disabled' ); + } + + $simplified_response = array( $response['headers'], $response['body'] ); + + self::update_alert( $simplified_response ); + + return $simplified_response; + } + + // given a response from an API call like check_key_status(), update the alert code options if an alert is present. + public static function update_alert( $response ) { + $code = $msg = null; + if ( isset( $response[0]['x-akismet-alert-code'] ) ) { + $code = $response[0]['x-akismet-alert-code']; + $msg = $response[0]['x-akismet-alert-msg']; + } + + // only call update_option() if the value has changed + if ( $code != get_option( 'akismet_alert_code' ) ) { + if ( ! $code ) { + delete_option( 'akismet_alert_code' ); + delete_option( 'akismet_alert_msg' ); + } + else { + update_option( 'akismet_alert_code', $code ); + update_option( 'akismet_alert_msg', $msg ); + } + } + } + + public static function load_form_js() { + wp_register_script( 'akismet-form', plugin_dir_url( __FILE__ ) . '_inc/form.js', array(), AKISMET_VERSION, true ); + wp_enqueue_script( 'akismet-form' ); + } + + /** + * Mark form.js as async. Because nothing depends on it, it can run at any time + * after it's loaded, and the browser won't have to wait for it to load to continue + * parsing the rest of the page. + */ + public static function set_form_js_async( $tag, $handle, $src ) { + if ( 'akismet-form' !== $handle ) { + return $tag; + } + + return preg_replace( '/^<script /i', '<script async="async" ', $tag ); + } + + public static function inject_ak_js( $fields ) { + echo '<p style="display: none;">'; + echo '<input type="hidden" id="ak_js" name="ak_js" value="' . mt_rand( 0, 250 ) . '"/>'; + echo '</p>'; + } + + private static function bail_on_activation( $message, $deactivate = true ) { +?> +<!doctype html> +<html> +<head> +<meta charset="<?php bloginfo( 'charset' ); ?>"> +<style> +* { + text-align: center; + margin: 0; + padding: 0; + font-family: "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif; +} +p { + margin-top: 1em; + font-size: 18px; +} +</style> +<body> +<p><?php echo esc_html( $message ); ?></p> +</body> +</html> +<?php + if ( $deactivate ) { + $plugins = get_option( 'active_plugins' ); + $akismet = plugin_basename( AKISMET__PLUGIN_DIR . 'akismet.php' ); + $update = false; + foreach ( $plugins as $i => $plugin ) { + if ( $plugin === $akismet ) { + $plugins[$i] = false; + $update = true; + } + } + + if ( $update ) { + update_option( 'active_plugins', array_filter( $plugins ) ); + } + } + exit; + } + + public static function view( $name, array $args = array() ) { + $args = apply_filters( 'akismet_view_arguments', $args, $name ); + + foreach ( $args AS $key => $val ) { + $$key = $val; + } + + load_plugin_textdomain( 'akismet' ); + + $file = AKISMET__PLUGIN_DIR . 'views/'. $name . '.php'; + + include( $file ); + } + + /** + * Attached to activate_{ plugin_basename( __FILES__ ) } by register_activation_hook() + * @static + */ + public static function plugin_activation() { + if ( version_compare( $GLOBALS['wp_version'], AKISMET__MINIMUM_WP_VERSION, '<' ) ) { + load_plugin_textdomain( 'akismet' ); + + $message = '<strong>'.sprintf(esc_html__( 'Akismet %s requires WordPress %s or higher.' , 'akismet'), AKISMET_VERSION, AKISMET__MINIMUM_WP_VERSION ).'</strong> '.sprintf(__('Please <a href="%1$s">upgrade WordPress</a> to a current version, or <a href="%2$s">downgrade to version 2.4 of the Akismet plugin</a>.', 'akismet'), 'https://codex.wordpress.org/Upgrading_WordPress', 'https://wordpress.org/extend/plugins/akismet/download/'); + + Akismet::bail_on_activation( $message ); + } + } + + /** + * Removes all connection options + * @static + */ + public static function plugin_deactivation( ) { + self::deactivate_key( self::get_api_key() ); + + // Remove any scheduled cron jobs. + $akismet_cron_events = array( + 'akismet_schedule_cron_recheck', + 'akismet_scheduled_delete', + ); + + foreach ( $akismet_cron_events as $akismet_cron_event ) { + $timestamp = wp_next_scheduled( $akismet_cron_event ); + + if ( $timestamp ) { + wp_unschedule_event( $timestamp, $akismet_cron_event ); + } + } + } + + /** + * Essentially a copy of WP's build_query but one that doesn't expect pre-urlencoded values. + * + * @param array $args An array of key => value pairs + * @return string A string ready for use as a URL query string. + */ + public static function build_query( $args ) { + return _http_build_query( $args, '', '&' ); + } + + /** + * Log debugging info to the error log. + * + * Enabled when WP_DEBUG_LOG is enabled (and WP_DEBUG, since according to + * core, "WP_DEBUG_DISPLAY and WP_DEBUG_LOG perform no function unless + * WP_DEBUG is true), but can be disabled via the akismet_debug_log filter. + * + * @param mixed $akismet_debug The data to log. + */ + public static function log( $akismet_debug ) { + if ( apply_filters( 'akismet_debug_log', defined( 'WP_DEBUG' ) && WP_DEBUG && defined( 'WP_DEBUG_LOG' ) && WP_DEBUG_LOG && defined( 'AKISMET_DEBUG' ) && AKISMET_DEBUG ) ) { + error_log( print_r( compact( 'akismet_debug' ), true ) ); + } + } + + public static function pre_check_pingback( $method ) { + if ( $method !== 'pingback.ping' ) + return; + + global $wp_xmlrpc_server; + + if ( !is_object( $wp_xmlrpc_server ) ) + return false; + + // Lame: tightly coupled with the IXR class. + $args = $wp_xmlrpc_server->message->params; + + if ( !empty( $args[1] ) ) { + $post_id = url_to_postid( $args[1] ); + + // If this gets through the pre-check, make sure we properly identify the outbound request as a pingback verification + Akismet::pingback_forwarded_for( null, $args[0] ); + add_filter( 'http_request_args', array( 'Akismet', 'pingback_forwarded_for' ), 10, 2 ); + + $comment = array( + 'comment_author_url' => $args[0], + 'comment_post_ID' => $post_id, + 'comment_author' => '', + 'comment_author_email' => '', + 'comment_content' => '', + 'comment_type' => 'pingback', + 'akismet_pre_check' => '1', + 'comment_pingback_target' => $args[1], + ); + + $comment = Akismet::auto_check_comment( $comment ); + + if ( isset( $comment['akismet_result'] ) && 'true' == $comment['akismet_result'] ) { + // Lame: tightly coupled with the IXR classes. Unfortunately the action provides no context and no way to return anything. + $wp_xmlrpc_server->error( new IXR_Error( 0, 'Invalid discovery target' ) ); + } + } + } + + public static function pingback_forwarded_for( $r, $url ) { + static $urls = array(); + + // Call this with $r == null to prime the callback to add headers on a specific URL + if ( is_null( $r ) && !in_array( $url, $urls ) ) { + $urls[] = $url; + } + + // Add X-Pingback-Forwarded-For header, but only for requests to a specific URL (the apparent pingback source) + if ( is_array( $r ) && is_array( $r['headers'] ) && !isset( $r['headers']['X-Pingback-Forwarded-For'] ) && in_array( $url, $urls ) ) { + $remote_ip = preg_replace( '/[^a-fx0-9:.,]/i', '', $_SERVER['REMOTE_ADDR'] ); + + // Note: this assumes REMOTE_ADDR is correct, and it may not be if a reverse proxy or CDN is in use + $r['headers']['X-Pingback-Forwarded-For'] = $remote_ip; + + // Also identify the request as a pingback verification in the UA string so it appears in logs + $r['user-agent'] .= '; verifying pingback from ' . $remote_ip; + } + + return $r; + } + + /** + * Ensure that we are loading expected scalar values from akismet_as_submitted commentmeta. + * + * @param mixed $meta_value + * @return mixed + */ + private static function sanitize_comment_as_submitted( $meta_value ) { + if ( empty( $meta_value ) ) { + return $meta_value; + } + + $meta_value = (array) $meta_value; + + foreach ( $meta_value as $key => $value ) { + if ( ! isset( self::$comment_as_submitted_allowed_keys[$key] ) || ! is_scalar( $value ) ) { + unset( $meta_value[$key] ); + } + } + + return $meta_value; + } + + public static function predefined_api_key() { + if ( defined( 'WPCOM_API_KEY' ) ) { + return true; + } + + return apply_filters( 'akismet_predefined_api_key', false ); + } +} diff --git a/wp-content/plugins/akismet/index.php b/wp-content/plugins/akismet/index.php new file mode 100644 index 000000000..cf879a5e5 --- /dev/null +++ b/wp-content/plugins/akismet/index.php @@ -0,0 +1,2 @@ +<?php +# Silence is golden. \ No newline at end of file diff --git a/wp-content/plugins/akismet/readme.txt b/wp-content/plugins/akismet/readme.txt new file mode 100644 index 000000000..c892430df --- /dev/null +++ b/wp-content/plugins/akismet/readme.txt @@ -0,0 +1,411 @@ +=== Akismet Anti-Spam === +Contributors: matt, ryan, andy, mdawaffe, tellyworth, josephscott, lessbloat, eoigal, cfinke, automattic, jgs, procifer, stephdau +Tags: akismet, comments, spam, antispam, anti-spam, anti spam, comment moderation, comment spam, contact form spam, spam comments +Requires at least: 4.0 +Tested up to: 4.9.1 +Stable tag: 4.0.3 +License: GPLv2 or later + +Akismet checks your comments and contact form submissions against our global database of spam to protect you and your site from malicious content. + +== Description == + +Akismet checks your comments and contact form submissions against our global database of spam to prevent your site from publishing malicious content. You can review the comment spam it catches on your blog's "Comments" admin screen. + +Major features in Akismet include: + +* Automatically checks all comments and filters out the ones that look like spam. +* Each comment has a status history, so you can easily see which comments were caught or cleared by Akismet and which were spammed or unspammed by a moderator. +* URLs are shown in the comment body to reveal hidden or misleading links. +* Moderators can see the number of approved comments for each user. +* A discard feature that outright blocks the worst spam, saving you disk space and speeding up your site. + +PS: You'll need an [Akismet.com API key](https://akismet.com/get/) to use it. Keys are free for personal blogs; paid subscriptions are available for businesses and commercial sites. + +== Installation == + +Upload the Akismet plugin to your blog, Activate it, then enter your [Akismet.com API key](https://akismet.com/get/). + +1, 2, 3: You're done! + +== Changelog == + += 4.0.3 = +*Release Date - 19 February 2018* + +* Added a scheduled task to remove entries in wp_commentmeta that no longer have corresponding comments in wp_comments. +* Added a new `akismet_batch_delete_count` action to the batch delete methods for people who'd like to keep track of the numbers of records being processed by those methods. + += 4.0.2 = +*Release Date - 18 December 2017* + +* Fixed a bug that could cause Akismet to recheck a comment that has already been manually approved or marked as spam. +* Fixed a bug that could cause Akismet to claim that some comments are still waiting to be checked when no comments are waiting to be checked. + += 4.0.1 = +*Release Date - 6 November 2017* + +* Fixed a bug that could prevent some users from connecting Akismet via their Jetpack connection. +* Ensured that any pending Akismet-related events are unscheduled if the plugin is deactivated. +* Allow some JavaScript to be run asynchronously to avoid affecting page render speeds. + += 4.0 = +*Release Date - 19 September 2017* + +* Added REST API endpoints for configuring Akismet and retrieving stats. +* Increased the minimum supported WordPress version to 4.0. +* Added compatibility with comments submitted via the REST API. +* Improved the progress indicator on the "Check for Spam" button. + += 3.3.4 = +*Release Date - 3 August 2017* + +* Disabled Akismet's debug log output by default unless AKISMET_DEBUG is defined. +* URL previews now begin preloading when the mouse moves near them in the comments section of wp-admin. +* When a comment is caught by the Comment Blacklist, Akismet will always allow it to stay in the trash even if it is spam as well. +* Fixed a bug that was preventing an error from being shown when a site can't reach Akismet's servers. + += 3.3.3 = +*Release Date - 13 July 2017* + +* Reduced amount of bandwidth used by the URL Preview feature. +* Improved the admin UI when the API key is manually pre-defined for the site. +* Removed a workaround for WordPress installations older than 3.3 that will improve Akismet's compatibility with other plugins. +* The number of spam blocked that is displayed on the WordPress dashboard will now be more accurate and updated more frequently. +* Fixed a bug in the Akismet widget that could cause PHP warnings. + += 3.3.2 = +*Release Date - 10 May 2017* + +* Fixed a bug causing JavaScript errors in some browsers. + += 3.3.1 = +*Release Date - 2 May 2017* + +* Improve performance by only requesting the akismet_comment_nonce option when absolutely necessary. +* Fixed two bugs that could cause PHP warnings. +* Fixed a bug that was preventing the "Remove author URL" feature from working after a comment was edited using "Quick Edit." +* Fixed a bug that was preventing the URL preview feature from working after a comment was edited using "Quick Edit." + += 3.3 = +*Release Date - 23 February 2017* + +* Updated the Akismet admin pages with a new clean design. +* Fixed bugs preventing the `akismet_add_comment_nonce` and `akismet_update_alert` wrapper functions from working properly. +* Fixed bug preventing the loading indicator from appearing when re-checking all comments for spam. +* Added a progress indicator to the "Check for Spam" button. +* Added a success message after manually rechecking the Pending queue for spam. + += 3.2 = +*Release Date - 6 September 2016* + +* Added a WP-CLI module. You can now check comments and recheck the moderation queue from the command line. +* Stopped using the deprecated jQuery function `.live()`. +* Fixed a bug in `remove_comment_author_url()` and `add_comment_author_url()` that could generate PHP notices. +* Fixed a bug that could cause an infinite loop for sites with very very very large comment IDs. +* Fixed a bug that could cause the Akismet widget title to be blank. + += 3.1.11 = +*Release Date - 12 May 2016* + +* Fixed a bug that could cause the "Check for Spam" button to skip some comments. +* Fixed a bug that could prevent some spam submissions from being sent to Akismet. +* Updated all links to use https:// when possible. +* Disabled Akismet debug logging unless WP_DEBUG and WP_DEBUG_LOG are both enabled. + += 3.1.10 = +*Release Date - 1 April 2016* + +* Fixed a bug that could cause comments caught as spam to be placed in the Pending queue. +* Fixed a bug that could have resulted in comments that were caught by the core WordPress comment blacklist not to have a corresponding History entry. +* Fixed a bug that could have caused avoidable PHP warnings in the error log. + += 3.1.9 = +*Release Date - 28 March 2016* + +* Add compatibility with Jetpack so that Jetpack can automatically configure Akismet settings when appropriate. +* Fixed a bug preventing some comment data from being sent to Akismet. + += 3.1.8 = +*Release Date - 4 March 2016* + +* Fixed a bug preventing Akismet from being used with some plugins that rewrite admin URLs. +* Reduced the amount of bandwidth used on Akismet API calls +* Reduced the amount of space Akismet uses in the database +* Fixed a bug that could cause comments caught as spam to be placed in the Pending queue. + += 3.1.7 = +*Release Date - 4 January 2016* + +* Added documentation for the 'akismet_comment_nonce' filter. +* The post-install activation button is now accessible to screen readers and keyboard-only users. +* Fixed a bug that was preventing the "Remove author URL" feature from working in WordPress 4.4 + += 3.1.6 = +*Release Date - 14 December 2015* + +* Improve the notices shown after activating Akismet. +* Update some strings to allow for the proper plural forms in all languages. + += 3.1.5 = +*Release Date - 13 October 2015* + +* Closes a potential XSS vulnerability. + += 3.1.4 = +*Release Date - 24 September 2015* + +* Fixed a bug that was preventing some users from automatically connecting using Jetpack if they didn't have a current Akismet subscription. +* Fixed a bug that could cause comments caught as spam to be placed in the Pending queue. +* Error messages and instructions have been simplified to be more understandable. +* Link previews are enabled for all links inside comments, not just the author's website link. + += 3.1.3 = +*Release Date - 6 July 2015* + +* Notify users when their account status changes after previously being successfully set up. This should help any users who are seeing blank Akismet settings screens. + += 3.1.2 = +*Release Date - 7 June 2015* + +* Reduced the amount of space Akismet uses in the commentmeta table. +* Fixed a bug where some comments with quotes in the author name weren't getting history entries +* Pre-emptive security improvements to ensure that the Akismet plugin can't be used by attackers to compromise a WordPress installation. +* Better UI for the key entry field: allow whitespace to be included at the beginning or end of the key and strip it out automatically when the form is submitted. +* When deactivating the plugin, notify the Akismet API so the site can be marked as inactive. +* Clearer error messages. + += 3.1.1 = +*Release Date - 17th March, 2015* + +* Improvements to the "Remove comment author URL" JavaScript +* Include the pingback pre-check from the 2.6 branch. + += 3.1 = +*Release Date - 11th March, 2015* + +* Use HTTPS by default for all requests to Akismet. +* Fix for a situation where Akismet might strip HTML from a comment. + += 3.0.4 = +*Release Date - 11th December, 2014* + +* Fix to make .htaccess compatible with Apache 2.4. +* Fix to allow removal of https author URLs. +* Fix to avoid stripping part of the author URL when removing and re-adding. +* Removed the "Check for Spam" button from the "Trash" and "Approved" queues, where it would have no effect. +* Allow automatic API key configuration when Jetpack is installed and connected to a WordPress.com account + += 3.0.3 = +*Release Date - 3rd November, 2014* + +* Fix for sending the wrong data to delete_comment action that could have prevented old spam comments from being deleted. +* Added a filter to disable logging of Akismet debugging information. +* Added a filter for the maximum comment age when deleting old spam comments. +* Added a filter for the number per batch when deleting old spam comments. +* Removed the "Check for Spam" button from the Spam folder. + += 3.0.2 = +*Release Date - 18th August, 2014* + +* Performance improvements. +* Fixed a bug that could truncate the comment data being sent to Akismet for checking. + += 3.0.1 = +*Release Date - 9th July, 2014* + +* Removed dependency on PHP's fsockopen function +* Fix spam/ham reports to work when reported outside of the WP dashboard, e.g., from Notifications or the WP app +* Remove jQuery dependency for comment form JavaScript +* Remove unnecessary data from some Akismet comment meta +* Suspended keys will now result in all comments being put in moderation, not spam. + += 3.0.0 = +*Release Date - 15th April, 2014* + +* Move Akismet to Settings menu +* Drop Akismet Stats menu +* Add stats snapshot to Akismet settings +* Add Akismet subscription details and status to Akismet settings +* Add contextual help for each page +* Improve Akismet setup to use Jetpack to automate plugin setup +* Fix "Check for Spam" to use AJAX to avoid page timing out +* Fix Akismet settings page to be responsive +* Drop legacy code +* Tidy up CSS and Javascript +* Replace the old discard setting with a new "discard pervasive spam" feature. + += 2.6.0 = +*Release Date - 18th March, 2014* + +* Add ajax paging to the check for spam button to handle large volumes of comments +* Optimize javascript and add localization support +* Fix bug in link to spam comments from right now dashboard widget +* Fix bug with deleting old comments to avoid timeouts dealing with large volumes of comments +* Include X-Pingback-Forwarded-For header in outbound WordPress pingback verifications +* Add pre-check for pingbacks, to stop spam before an outbound verification request is made + += 2.5.9 = +*Release Date - 1st August, 2013* + +* Update 'Already have a key' link to redirect page rather than depend on javascript +* Fix some non-translatable strings to be translatable +* Update Activation banner in plugins page to redirect user to Akismet config page + += 2.5.8 = +*Release Date - 20th January, 2013* + +* Simplify the activation process for new users +* Remove the reporter_ip parameter +* Minor preventative security improvements + += 2.5.7 = +*Release Date - 13th December, 2012* + +* FireFox Stats iframe preview bug +* Fix mshots preview when using https +* Add .htaccess to block direct access to files +* Prevent some PHP notices +* Fix Check For Spam return location when referrer is empty +* Fix Settings links for network admins +* Fix prepare() warnings in WP 3.5 + += 2.5.6 = +*Release Date - 26th April, 2012* + +* Prevent retry scheduling problems on sites where wp_cron is misbehaving +* Preload mshot previews +* Modernize the widget code +* Fix a bug where comments were not held for moderation during an error condition +* Improve the UX and display when comments are temporarily held due to an error +* Make the Check For Spam button force a retry when comments are held due to an error +* Handle errors caused by an invalid key +* Don't retry comments that are too old +* Improve error messages when verifying an API key + += 2.5.5 = +*Release Date - 11th January, 2012* + +* Add nonce check for comment author URL remove action +* Fix the settings link + += 2.5.4 = +*Release Date - 5th January, 2012* + +* Limit Akismet CSS and Javascript loading in wp-admin to just the pages that need it +* Added author URL quick removal functionality +* Added mShot preview on Author URL hover +* Added empty index.php to prevent directory listing +* Move wp-admin menu items under Jetpack, if it is installed +* Purge old Akismet comment meta data, default of 15 days + += 2.5.3 = +*Release Date - 8th Febuary, 2011* + +* Specify the license is GPL v2 or later +* Fix a bug that could result in orphaned commentmeta entries +* Include hotfix for WordPress 3.0.5 filter issue + += 2.5.2 = +*Release Date - 14th January, 2011* + +* Properly format the comment count for author counts +* Look for super admins on multisite installs when looking up user roles +* Increase the HTTP request timeout +* Removed padding for author approved count +* Fix typo in function name +* Set Akismet stats iframe height to fixed 2500px. Better to have one tall scroll bar than two side by side. + += 2.5.1 = +*Release Date - 17th December, 2010* + +* Fix a bug that caused the "Auto delete" option to fail to discard comments correctly +* Remove the comment nonce form field from the 'Akismet Configuration' page in favor of using a filter, akismet_comment_nonce +* Fixed padding bug in "author" column of posts screen +* Added margin-top to "cleared by ..." badges on dashboard +* Fix possible error when calling akismet_cron_recheck() +* Fix more PHP warnings +* Clean up XHTML warnings for comment nonce +* Fix for possible condition where scheduled comment re-checks could get stuck +* Clean up the comment meta details after deleting a comment +* Only show the status badge if the comment status has been changed by someone/something other than Akismet +* Show a 'History' link in the row-actions +* Translation fixes +* Reduced font-size on author name +* Moved "flagged by..." notification to top right corner of comment container and removed heavy styling +* Hid "flagged by..." notification while on dashboard + += 2.5.0 = +*Release Date - 7th December, 2010* + +* Track comment actions under 'Akismet Status' on the edit comment screen +* Fix a few remaining deprecated function calls ( props Mike Glendinning ) +* Use HTTPS for the stats IFRAME when wp-admin is using HTTPS +* Use the WordPress HTTP class if available +* Move the admin UI code to a separate file, only loaded when needed +* Add cron retry feature, to replace the old connectivity check +* Display Akismet status badge beside each comment +* Record history for each comment, and display it on the edit page +* Record the complete comment as originally submitted in comment_meta, to use when reporting spam and ham +* Highlight links in comment content +* New option, "Show the number of comments you've approved beside each comment author." +* New option, "Use a nonce on the comment form." + += 2.4.0 = +*Release Date - 23rd August, 2010* + +* Spell out that the license is GPLv2 +* Fix PHP warnings +* Fix WordPress deprecated function calls +* Fire the delete_comment action when deleting comments +* Move code specific for older WP versions to legacy.php +* General code clean up + += 2.3.0 = +*Release Date - 5th June, 2010* + +* Fix "Are you sure" nonce message on config screen in WPMU +* Fix XHTML compliance issue in sidebar widget +* Change author link; remove some old references to WordPress.com accounts +* Localize the widget title (core ticket #13879) + += 2.2.9 = +*Release Date - 2nd June, 2010* + +* Eliminate a potential conflict with some plugins that may cause spurious reports + += 2.2.8 = +*Release Date - 27th May, 2010* + +* Fix bug in initial comment check for ipv6 addresses +* Report comments as ham when they are moved from spam to moderation +* Report comments as ham when clicking undo after spam +* Use transition_comment_status action when available instead of older actions for spam/ham submissions +* Better diagnostic messages when PHP network functions are unavailable +* Better handling of comments by logged-in users + += 2.2.7 = +*Release Date - 17th December, 2009* + +* Add a new AKISMET_VERSION constant +* Reduce the possibility of over-counting spam when another spam filter plugin is in use +* Disable the connectivity check when the API key is hard-coded for WPMU + += 2.2.6 = +*Release Date - 20th July, 2009* + +* Fix a global warning introduced in 2.2.5 +* Add changelog and additional readme.txt tags +* Fix an array conversion warning in some versions of PHP +* Support a new WPCOM_API_KEY constant for easier use with WordPress MU + += 2.2.5 = +*Release Date - 13th July, 2009* + +* Include a new Server Connectivity diagnostic check, to detect problems caused by firewalls + += 2.2.4 = +*Release Date - 3rd June, 2009* + +* Fixed a key problem affecting the stats feature in WordPress MU +* Provide additional blog information in Akismet API calls diff --git a/wp-content/plugins/akismet/views/config.php b/wp-content/plugins/akismet/views/config.php new file mode 100644 index 000000000..59dd18c59 --- /dev/null +++ b/wp-content/plugins/akismet/views/config.php @@ -0,0 +1,231 @@ +<div id="akismet-plugin-container"> + <div class="akismet-masthead"> + <div class="akismet-masthead__inside-container"> + <div class="akismet-masthead__logo-container"> + <img class="akismet-masthead__logo" src="<?php echo esc_url( plugins_url( '../_inc/img/logo-full-2x.png', __FILE__ ) ); ?>" alt="Akismet" /> + </div> + </div> + </div> + <div class="akismet-lower"> + <?php if ( Akismet::get_api_key() ) { ?> + <?php Akismet_Admin::display_status(); ?> + <?php } ?> + <?php if ( ! empty( $notices ) ) { ?> + <?php foreach ( $notices as $notice ) { ?> + <?php Akismet::view( 'notice', $notice ); ?> + <?php } ?> + <?php } ?> + <?php if ( $stat_totals && isset( $stat_totals['all'] ) && (int) $stat_totals['all']->spam > 0 ) : ?> + <div class="akismet-card"> + <div class="akismet-section-header"> + <div class="akismet-section-header__label"> + <span><?php esc_html_e( 'Statistics' , 'akismet'); ?></span> + </div> + <div class="akismet-section-header__actions"> + <a href="<?php echo esc_url( Akismet_Admin::get_page_url( 'stats' ) ); ?>"> + <?php esc_html_e( 'Detailed Stats' , 'akismet');?> + </a> + </div> + </div> + + <div class="akismet-new-snapshot"> + <iframe allowtransparency="true" scrolling="no" frameborder="0" style="width: 100%; height: 220px; overflow: hidden;" src="<?php printf( '//akismet.com/web/1.0/snapshot.php?blog=%s&api_key=%s&height=200&locale=%s', urlencode( get_option( 'home' ) ), Akismet::get_api_key(), get_locale() );?>"></iframe> + <ul> + <li> + <h3><?php esc_html_e( 'Past six months' , 'akismet');?></h3> + <span><?php echo number_format( $stat_totals['6-months']->spam );?></span> + <?php echo esc_html( _n( 'Spam blocked', 'Spam blocked', $stat_totals['6-months']->spam, 'akismet' ) ); ?> + </li> + <li> + <h3><?php esc_html_e( 'All time' , 'akismet');?></h3> + <span><?php echo number_format( $stat_totals['all']->spam );?></span> + <?php echo esc_html( _n( 'Spam blocked', 'Spam blocked', $stat_totals['all']->spam, 'akismet' ) ); ?> + </li> + <li> + <h3><?php esc_html_e( 'Accuracy' , 'akismet');?></h3> + <span><?php echo floatval( $stat_totals['all']->accuracy ); ?>%</span> + <?php printf( _n( '%s missed spam', '%s missed spam', $stat_totals['all']->missed_spam, 'akismet' ), number_format( $stat_totals['all']->missed_spam ) ); ?> + | + <?php printf( _n( '%s false positive', '%s false positives', $stat_totals['all']->false_positives, 'akismet' ), number_format( $stat_totals['all']->false_positives ) ); ?> + </li> + </ul> + </div> + </div> + <?php endif;?> + + <?php if ( $akismet_user ):?> + <div class="akismet-card"> + <div class="akismet-section-header"> + <div class="akismet-section-header__label"> + <span><?php esc_html_e( 'Settings' , 'akismet'); ?></span> + </div> + </div> + + <div class="inside"> + <form action="<?php echo esc_url( Akismet_Admin::get_page_url() ); ?>" method="POST"> + <table cellspacing="0" class="akismet-settings"> + <tbody> + <?php if ( ! Akismet::predefined_api_key() ) { ?> + <tr> + <th class="akismet-api-key" width="10%" align="left" scope="row"><?php esc_html_e('API Key', 'akismet');?></th> + <td width="5%"/> + <td align="left"> + <span class="api-key"><input id="key" name="key" type="text" size="15" value="<?php echo esc_attr( get_option('wordpress_api_key') ); ?>" class="<?php echo esc_attr( 'regular-text code ' . $akismet_user->status ); ?>"></span> + </td> + </tr> + <?php } ?> + <?php if ( isset( $_GET['ssl_status'] ) ) { ?> + <tr> + <th align="left" scope="row"><?php esc_html_e( 'SSL Status', 'akismet' ); ?></th> + <td></td> + <td align="left"> + <p> + <?php + + if ( ! wp_http_supports( array( 'ssl' ) ) ) { + ?><b><?php esc_html_e( 'Disabled.', 'akismet' ); ?></b> <?php esc_html_e( 'Your Web server cannot make SSL requests; contact your Web host and ask them to add support for SSL requests.', 'akismet' ); ?><?php + } + else { + $ssl_disabled = get_option( 'akismet_ssl_disabled' ); + + if ( $ssl_disabled ) { + ?><b><?php esc_html_e( 'Temporarily disabled.', 'akismet' ); ?></b> <?php esc_html_e( 'Akismet encountered a problem with a previous SSL request and disabled it temporarily. It will begin using SSL for requests again shortly.', 'akismet' ); ?><?php + } + else { + ?><b><?php esc_html_e( 'Enabled.', 'akismet' ); ?></b> <?php esc_html_e( 'All systems functional.', 'akismet' ); ?><?php + } + } + + ?> + </p> + </td> + </tr> + <?php } ?> + <tr> + <th align="left" scope="row"><?php esc_html_e('Comments', 'akismet');?></th> + <td></td> + <td align="left"> + <p> + <label for="akismet_show_user_comments_approved" title="<?php esc_attr_e( 'Show approved comments' , 'akismet'); ?>"> + <input + name="akismet_show_user_comments_approved" + id="akismet_show_user_comments_approved" + value="1" + type="checkbox" + <?php + + // If the option isn't set, or if it's enabled ('1'), or if it was enabled a long time ago ('true'), check the checkbox. + checked( true, ( in_array( get_option( 'akismet_show_user_comments_approved' ), array( false, '1', 'true' ), true ) ) ); + + ?> + /> + <?php esc_html_e( 'Show the number of approved comments beside each comment author', 'akismet' ); ?> + </label> + </p> + </td> + </tr> + <tr> + <th class="strictness" align="left" scope="row"><?php esc_html_e('Strictness', 'akismet'); ?></th> + <td></td> + <td align="left"> + <fieldset><legend class="screen-reader-text"><span><?php esc_html_e('Akismet anti-spam strictness', 'akismet'); ?></span></legend> + <p><label for="akismet_strictness_1"><input type="radio" name="akismet_strictness" id="akismet_strictness_1" value="1" <?php checked('1', get_option('akismet_strictness')); ?> /> <?php esc_html_e('Silently discard the worst and most pervasive spam so I never see it.', 'akismet'); ?></label></p> + <p><label for="akismet_strictness_0"><input type="radio" name="akismet_strictness" id="akismet_strictness_0" value="0" <?php checked('0', get_option('akismet_strictness')); ?> /> <?php esc_html_e('Always put spam in the Spam folder for review.', 'akismet'); ?></label></p> + </fieldset> + <span class="akismet-note"><strong><?php esc_html_e('Note:', 'akismet');?></strong> + <?php + + $delete_interval = max( 1, intval( apply_filters( 'akismet_delete_comment_interval', 15 ) ) ); + + printf( + _n( + 'Spam in the <a href="%1$s">spam folder</a> older than 1 day is deleted automatically.', + 'Spam in the <a href="%1$s">spam folder</a> older than %2$d days is deleted automatically.', + $delete_interval, + 'akismet' + ), + admin_url( 'edit-comments.php?comment_status=spam' ), + $delete_interval + ); + + ?> + </td> + </tr> + </tbody> + </table> + <div class="akismet-card-actions"> + <?php if ( ! Akismet::predefined_api_key() ) { ?> + <div id="delete-action"> + <a class="submitdelete deletion" href="<?php echo esc_url( Akismet_Admin::get_page_url( 'delete_key' ) ); ?>"><?php esc_html_e('Disconnect this account', 'akismet'); ?></a> + </div> + <?php } ?> + <?php wp_nonce_field(Akismet_Admin::NONCE) ?> + <div id="publishing-action"> + <input type="hidden" name="action" value="enter-key"> + <input type="submit" name="submit" id="submit" class="akismet-button akismet-is-primary" value="<?php esc_attr_e('Save Changes', 'akismet');?>"> + </div> + <div class="clear"></div> + </div> + </form> + </div> + </div> + + <?php if ( ! Akismet::predefined_api_key() ) { ?> + <div class="akismet-card"> + <div class="akismet-section-header"> + <div class="akismet-section-header__label"> + <span><?php esc_html_e( 'Account' , 'akismet'); ?></span> + </div> + </div> + + <div class="inside"> + <table cellspacing="0" border="0" class="akismet-settings"> + <tbody> + <tr> + <th scope="row" align="left"><?php esc_html_e( 'Subscription Type' , 'akismet');?></th> + <td width="5%"/> + <td align="left"> + <p><?php echo esc_html( $akismet_user->account_name ); ?></p> + </td> + </tr> + <tr> + <th scope="row" align="left"><?php esc_html_e( 'Status' , 'akismet');?></th> + <td width="5%"/> + <td align="left"> + <p><?php + if ( 'cancelled' == $akismet_user->status ) : + esc_html_e( 'Cancelled', 'akismet' ); + elseif ( 'suspended' == $akismet_user->status ) : + esc_html_e( 'Suspended', 'akismet' ); + elseif ( 'missing' == $akismet_user->status ) : + esc_html_e( 'Missing', 'akismet' ); + elseif ( 'no-sub' == $akismet_user->status ) : + esc_html_e( 'No Subscription Found', 'akismet' ); + else : + esc_html_e( 'Active', 'akismet' ); + endif; ?></p> + </td> + </tr> + <?php if ( $akismet_user->next_billing_date ) : ?> + <tr> + <th scope="row" align="left"><?php esc_html_e( 'Next Billing Date' , 'akismet');?></th> + <td width="5%"/> + <td align="left"> + <p><?php echo date( 'F j, Y', $akismet_user->next_billing_date ); ?></p> + </td> + </tr> + <?php endif; ?> + </tbody> + </table> + <div class="akismet-card-actions"> + <div id="publishing-action"> + <?php Akismet::view( 'get', array( 'text' => ( $akismet_user->account_type == 'free-api-key' && $akismet_user->status == 'active' ? __( 'Upgrade' , 'akismet') : __( 'Change' , 'akismet') ), 'redirect' => 'upgrade' ) ); ?> + </div> + <div class="clear"></div> + </div> + </div> + </div> + <?php } ?> + <?php endif;?> + </div> +</div> \ No newline at end of file diff --git a/wp-content/plugins/akismet/views/get.php b/wp-content/plugins/akismet/views/get.php new file mode 100644 index 000000000..c9dbf108d --- /dev/null +++ b/wp-content/plugins/akismet/views/get.php @@ -0,0 +1,6 @@ +<form name="akismet_activate" action="https://akismet.com/get/" method="POST" target="_blank"> + <input type="hidden" name="passback_url" value="<?php echo esc_url( Akismet_Admin::get_page_url() ); ?>"/> + <input type="hidden" name="blog" value="<?php echo esc_url( get_option( 'home' ) ); ?>"/> + <input type="hidden" name="redirect" value="<?php echo isset( $redirect ) ? $redirect : 'plugin-signup'; ?>"/> + <input type="submit" class="<?php echo isset( $classes ) && count( $classes ) > 0 ? implode( ' ', $classes ) : 'akismet-button akismet-is-primary';?>" value="<?php echo esc_attr( $text ); ?>"/> +</form> \ No newline at end of file diff --git a/wp-content/plugins/akismet/views/notice.php b/wp-content/plugins/akismet/views/notice.php new file mode 100644 index 000000000..4f65b8402 --- /dev/null +++ b/wp-content/plugins/akismet/views/notice.php @@ -0,0 +1,135 @@ +<?php if ( $type == 'plugin' ) :?> +<div class="updated" style="padding: 0; margin: 0; border: none; background: none;"> + <form name="akismet_activate" action="<?php echo esc_url( Akismet_Admin::get_page_url() ); ?>" method="POST"> + <div class="akismet_activate"> + <div class="aa_a">A</div> + <div class="aa_button_container"> + <div class="aa_button_border"> + <input type="submit" class="aa_button" value="<?php esc_attr_e( 'Set up your Akismet account', 'akismet' ); ?>" /> + </div> + </div> + <div class="aa_description"><?php _e('<strong>Almost done</strong> - configure Akismet and say goodbye to spam', 'akismet');?></div> + </div> + </form> +</div> +<?php elseif ( $type == 'spam-check' ) :?> +<div class="notice notice-warning"> + <p><strong><?php esc_html_e( 'Akismet has detected a problem.', 'akismet' );?></strong></p> + <p><?php printf( __( 'Some comments have not yet been checked for spam by Akismet. They have been temporarily held for moderation and will automatically be rechecked later.', 'akismet' ) ); ?></p> + <?php if ( $link_text ) { ?> + <p><?php echo $link_text; ?></p> + <?php } ?> +</div> +<?php elseif ( $type == 'alert' ) :?> +<div class='error'> + <p><strong><?php printf( esc_html__( 'Akismet Error Code: %s', 'akismet' ), $code ); ?></strong></p> + <p><?php echo esc_html( $msg ); ?></p> + <p><?php + + /* translators: the placeholder is a clickable URL that leads to more information regarding an error code. */ + printf( esc_html__( 'For more information: %s' , 'akismet'), '<a href="https://akismet.com/errors/' . $code . '">https://akismet.com/errors/' . $code . '</a>' ); + + ?> + </p> +</div> +<?php elseif ( $type == 'notice' ) :?> +<div class="akismet-alert akismet-critical"> + <h3 class="akismet-key-status failed"><?php echo $notice_header; ?></h3> + <p class="akismet-description"> + <?php echo $notice_text; ?> + </p> +</div> +<?php elseif ( $type == 'missing-functions' ) :?> +<div class="akismet-alert akismet-critical"> + <h3 class="akismet-key-status failed"><?php esc_html_e('Network functions are disabled.', 'akismet'); ?></h3> + <p class="akismet-description"><?php printf( __('Your web host or server administrator has disabled PHP’s <code>gethostbynamel</code> function. <strong>Akismet cannot work correctly until this is fixed.</strong> Please contact your web host or firewall administrator and give them <a href="%s" target="_blank">this information about Akismet’s system requirements</a>.', 'akismet'), 'https://blog.akismet.com/akismet-hosting-faq/'); ?></p> +</div> +<?php elseif ( $type == 'servers-be-down' ) :?> +<div class="akismet-alert akismet-critical"> + <h3 class="akismet-key-status failed"><?php esc_html_e("Your site can’t connect to the Akismet servers.", 'akismet'); ?></h3> + <p class="akismet-description"><?php printf( __('Your firewall may be blocking Akismet from connecting to its API. Please contact your host and refer to <a href="%s" target="_blank">our guide about firewalls</a>.', 'akismet'), 'https://blog.akismet.com/akismet-hosting-faq/'); ?></p> +</div> +<?php elseif ( $type == 'active-dunning' ) :?> +<div class="akismet-alert akismet-critical"> + <h3 class="akismet-key-status"><?php esc_html_e("Please update your payment information.", 'akismet'); ?></h3> + <p class="akismet-description"><?php printf( __('We cannot process your payment. Please <a href="%s" target="_blank">update your payment details</a>.', 'akismet'), 'https://akismet.com/account/'); ?></p> +</div> +<?php elseif ( $type == 'cancelled' ) :?> +<div class="akismet-alert akismet-critical"> + <h3 class="akismet-key-status"><?php esc_html_e("Your Akismet plan has been cancelled.", 'akismet'); ?></h3> + <p class="akismet-description"><?php printf( __('Please visit your <a href="%s" target="_blank">Akismet account page</a> to reactivate your subscription.', 'akismet'), 'https://akismet.com/account/'); ?></p> +</div> +<?php elseif ( $type == 'suspended' ) :?> +<div class="akismet-alert akismet-critical"> + <h3 class="akismet-key-status failed"><?php esc_html_e("Your Akismet subscription is suspended.", 'akismet'); ?></h3> + <p class="akismet-description"><?php printf( __('Please contact <a href="%s" target="_blank">Akismet support</a> for assistance.', 'akismet'), 'https://akismet.com/contact/'); ?></p> +</div> +<?php elseif ( $type == 'active-notice' && $time_saved ) :?> +<div class="akismet-alert akismet-active"> + <h3 class="akismet-key-status"><?php echo esc_html( $time_saved ); ?></h3> + <p class="akismet-description"><?php printf( __('You can help us fight spam and upgrade your account by <a href="%s" target="_blank">contributing a token amount</a>.', 'akismet'), 'https://akismet.com/account/upgrade/'); ?></p> +</div> +<?php elseif ( $type == 'missing' ) :?> +<div class="akismet-alert akismet-critical"> + <h3 class="akismet-key-status failed"><?php esc_html_e( 'There is a problem with your API key.', 'akismet'); ?></h3> + <p class="akismet-description"><?php printf( __('Please contact <a href="%s" target="_blank">Akismet support</a> for assistance.', 'akismet'), 'https://akismet.com/contact/'); ?></p> +</div> +<?php elseif ( $type == 'no-sub' ) :?> +<div class="akismet-alert akismet-critical"> + <h3 class="akismet-key-status failed"><?php esc_html_e( 'You don’t have an Akismet plan.', 'akismet'); ?></h3> + <p class="akismet-description"> + <?php printf( __( 'In 2012, Akismet began using subscription plans for all accounts (even free ones). A plan has not been assigned to your account, and we’d appreciate it if you’d <a href="%s" target="_blank">sign into your account</a> and choose one.', 'akismet'), 'https://akismet.com/account/upgrade/' ); ?> + <br /><br /> + <?php printf( __( 'Please <a href="%s" target="_blank">contact our support team</a> with any questions.', 'akismet' ), 'https://akismet.com/contact/' ); ?> + </p> +</div> +<?php elseif ( $type == 'new-key-valid' ) : + global $wpdb; + + $check_pending_link = false; + + $at_least_one_comment_in_moderation = !! $wpdb->get_var( "SELECT comment_ID FROM {$wpdb->comments} WHERE comment_approved = '0' LIMIT 1" ); + + if ( $at_least_one_comment_in_moderation) { + $check_pending_link = 'edit-comments.php?akismet_recheck=' . wp_create_nonce( 'akismet_recheck' ); + } + + ?> +<div class="akismet-alert akismet-active"> + <h3 class="akismet-key-status"><?php esc_html_e( 'Akismet is now protecting your site from spam. Happy blogging!', 'akismet' ); ?></h3> + <?php if ( $check_pending_link ) { ?> + <p class="akismet-description"><?php printf( __( 'Would you like to <a href="%s">check pending comments</a>?', 'akismet' ), esc_url( $check_pending_link ) ); ?></p> + <?php } ?> +</div> +<?php elseif ( $type == 'new-key-invalid' ) :?> +<div class="akismet-alert akismet-critical"> + <h3 class="akismet-key-status"><?php esc_html_e( 'The key you entered is invalid. Please double-check it.' , 'akismet'); ?></h3> +</div> +<?php elseif ( $type == 'existing-key-invalid' ) :?> +<div class="akismet-alert akismet-critical"> + <h3 class="akismet-key-status"><?php esc_html_e( 'Your API key is no longer valid. Please enter a new key or contact support@akismet.com.' , 'akismet'); ?></h3> +</div> +<?php elseif ( $type == 'new-key-failed' ) :?> +<div class="akismet-alert akismet-critical"> + <h3 class="akismet-key-status"><?php esc_html_e( 'The API key you entered could not be verified.' , 'akismet'); ?></h3> + <p class="akismet-description"><?php printf( __('The connection to akismet.com could not be established. Please refer to <a href="%s" target="_blank">our guide about firewalls</a> and check your server configuration.', 'akismet'), 'https://blog.akismet.com/akismet-hosting-faq/'); ?></p> +</div> +<?php elseif ( $type == 'limit-reached' && in_array( $level, array( 'yellow', 'red' ) ) ) :?> +<div class="akismet-alert akismet-critical"> + <?php if ( $level == 'yellow' ): ?> + <h3 class="akismet-key-status failed"><?php esc_html_e( 'You’re using your Akismet key on more sites than your Pro subscription allows.', 'akismet' ); ?></h3> + <p class="akismet-description"> + <?php printf( __( 'Your Pro subscription allows the use of Akismet on only one site. Please <a href="%s" target="_blank">purchase additional Pro subscriptions</a> or upgrade to an Enterprise subscription that allows the use of Akismet on unlimited sites.', 'akismet' ), 'https://docs.akismet.com/billing/add-more-sites/' ); ?> + <br /><br /> + <?php printf( __( 'Please <a href="%s" target="_blank">contact our support team</a> with any questions.', 'akismet' ), 'https://akismet.com/contact/'); ?> + </p> + <?php elseif ( $level == 'red' ): ?> + <h3 class="akismet-key-status failed"><?php esc_html_e( 'You’re using Akismet on far too many sites for your Pro subscription.', 'akismet' ); ?></h3> + <p class="akismet-description"> + <?php printf( __( 'To continue your service, <a href="%s" target="_blank">upgrade to an Enterprise subscription</a>, which covers an unlimited number of sites.', 'akismet'), 'https://akismet.com/account/upgrade/' ); ?> + <br /><br /> + <?php printf( __( 'Please <a href="%s" target="_blank">contact our support team</a> with any questions.', 'akismet' ), 'https://akismet.com/contact/'); ?> + </p> + <?php endif; ?> +</div> +<?php endif;?> \ No newline at end of file diff --git a/wp-content/plugins/akismet/views/start.php b/wp-content/plugins/akismet/views/start.php new file mode 100644 index 000000000..0ec35fdbf --- /dev/null +++ b/wp-content/plugins/akismet/views/start.php @@ -0,0 +1,102 @@ +<div id="akismet-plugin-container"> + <div class="akismet-masthead"> + <div class="akismet-masthead__inside-container"> + <div class="akismet-masthead__logo-container"> + <img class="akismet-masthead__logo" src="<?php echo esc_url( plugins_url( '../_inc/img/logo-full-2x.png', __FILE__ ) ); ?>" alt="Akismet" /> + </div> + </div> + </div> + <div class="akismet-lower"> + <?php Akismet_Admin::display_status(); ?> + + <div class="akismet-box"> + <h2><?php esc_html_e( 'Eliminate spam from your site', 'akismet' ); ?></h2> + <p><?php esc_html_e( 'Select one of the options below to get started.', 'akismet' ); ?></p> + </div> + <div class="akismet-boxes"> + <?php if ( ! Akismet::predefined_api_key() ) { ?> + <?php if ( $akismet_user && in_array( $akismet_user->status, array( 'active', 'active-dunning', 'no-sub', 'missing', 'cancelled', 'suspended' ) ) ) { ?> + <?php if ( in_array( $akismet_user->status, array( 'no-sub', 'missing' ) ) ) { ?> + <div class="akismet-box"> + <h3><?php esc_html_e( 'Connect via Jetpack', 'akismet' ); ?></h3> + <p><?php esc_html_e( 'Use your Jetpack connection to activate Akismet.', 'akismet' ); ?></p> + <form name="akismet_activate" id="akismet_activate" action="https://akismet.com/get/" method="post" class="akismet-right" target="_blank"> + <input type="hidden" name="passback_url" value="<?php echo esc_url( Akismet_Admin::get_page_url() ); ?>"/> + <input type="hidden" name="blog" value="<?php echo esc_url( get_option( 'home' ) ); ?>"/> + <input type="hidden" name="auto-connect" value="<?php echo esc_attr( $akismet_user->ID ); ?>"/> + <input type="hidden" name="redirect" value="plugin-signup"/> + <input type="submit" class="akismet-button akismet-is-primary" value="<?php esc_attr_e( 'Connect with Jetpack' , 'akismet' ); ?>"/> + </form> + <?php echo get_avatar( $akismet_user->user_email, null, null, null, array( 'class' => 'akismet-jetpack-gravatar' ) ); ?> + <p><?php echo sprintf( esc_html( __( 'You are connected as %s.', 'akismet' ) ), '<b>' . esc_html( $akismet_user->user_login ) . '</b>' ); ?><br /><span class="akismet-jetpack-email"><?php echo esc_html( $akismet_user->user_email ); ?></span></p> + </div> + <?php } elseif ( $akismet_user->status == 'cancelled' ) { ?> + <div class="akismet-box"> + <h3><?php esc_html_e( 'Connect via Jetpack', 'akismet' ); ?></h3> + <form name="akismet_activate" id="akismet_activate" action="https://akismet.com/get/" method="post" class="akismet-right" target="_blank"> + <input type="hidden" name="passback_url" value="<?php echo esc_url( Akismet_Admin::get_page_url() ); ?>"/> + <input type="hidden" name="blog" value="<?php echo esc_url( get_option( 'home' ) ); ?>"/> + <input type="hidden" name="user_id" value="<?php echo esc_attr( $akismet_user->ID ); ?>"/> + <input type="hidden" name="redirect" value="upgrade"/> + <input type="submit" class="akismet-button akismet-is-primary" value="<?php esc_attr_e( 'Reactivate Akismet' , 'akismet' ); ?>"/> + </form> + <p><?php echo esc_html( sprintf( __( 'Your subscription for %s is cancelled.' , 'akismet' ), $akismet_user->user_email ) ); ?></p> + </div> + <?php } elseif ( $akismet_user->status == 'suspended' ) { ?> + <div class="centered akismet-box"> + <h3><?php esc_html_e( 'Connected via Jetpack' , 'akismet' ); ?></h3> + <p class="akismet-alert-text"><?php echo esc_html( sprintf( __( 'Your subscription for %s is suspended.' , 'akismet' ), $akismet_user->user_email ) ); ?></p> + <p><?php esc_html_e( 'No worries! Get in touch and we’ll sort this out.', 'akismet' ); ?></p> + <p><a href="https://akismet.com/contact" class="akismet-button akismet-is-primary"><?php esc_html_e( 'Contact Akismet support' , 'akismet' ); ?></a></p> + </div> + <?php } else { // ask do they want to use akismet account found using jetpack wpcom connection ?> + <div class="akismet-box"> + <h3><?php esc_html_e( 'Connect via Jetpack', 'akismet' ); ?></h3> + <p><?php esc_html_e( 'Use your Jetpack connection to activate Akismet.', 'akismet' ); ?></p> + <form name="akismet_use_wpcom_key" action="<?php echo esc_url( Akismet_Admin::get_page_url() ); ?>" method="post" id="akismet-activate" class="akismet-right"> + <input type="hidden" name="key" value="<?php echo esc_attr( $akismet_user->api_key );?>"/> + <input type="hidden" name="action" value="enter-key"> + <?php wp_nonce_field( Akismet_Admin::NONCE ) ?> + <input type="submit" class="akismet-button akismet-is-primary" value="<?php esc_attr_e( 'Connect with Jetpack' , 'akismet' ); ?>"/> + </form> + <?php echo get_avatar( $akismet_user->user_email, null, null, null, array( 'class' => 'akismet-jetpack-gravatar' ) ); ?> + <p><?php echo sprintf( esc_html( __( 'You are connected as %s.', 'akismet' ) ), '<b>' . esc_html( $akismet_user->user_login ) . '</b>' ); ?><br /><span class="akismet-jetpack-email"><?php echo esc_html( $akismet_user->user_email ); ?></span></p> + </div> + <?php } ?> + <div class="akismet-box"> + <h3><?php esc_html_e( 'Or sign up with a different email address', 'akismet' ); ?></h3> + <div class="akismet-right"> + <?php Akismet::view( 'get', array( 'text' => __( 'Sign up with a different email address' , 'akismet' ), 'classes' => array( 'akismet-button' ) ) ); ?> + </div> + <p><?php esc_html_e( 'Choose this option to use Akismet independently of your Jetpack connection.', 'akismet' ); ?></p> + </div> + <?php } else { ?> + <div class="akismet-box"> + <h3><?php esc_html_e( 'Activate Akismet' , 'akismet' );?></h3> + <div class="akismet-right"> + <?php Akismet::view( 'get', array( 'text' => __( 'Get your API key' , 'akismet' ), 'classes' => array( 'akismet-button', 'akismet-is-primary' ) ) ); ?> + </div> + <p><?php esc_html_e( 'Log in or sign up now.', 'akismet' ); ?></p> + </div> + <?php } ?> + <div class="akismet-box"> + <h3><?php esc_html_e( 'Or enter an API key', 'akismet' ); ?></h3> + <p><?php esc_html_e( 'Already have your key? Enter it here.', 'akismet' ); ?> <a href="https://docs.akismet.com/getting-started/api-key/" target="_blank"><?php esc_html_e( '(What is an API key?)', 'akismet' ); ?></a></p> + <form action="<?php echo esc_url( Akismet_Admin::get_page_url() ); ?>" method="post"> + <?php wp_nonce_field( Akismet_Admin::NONCE ) ?> + <input type="hidden" name="action" value="enter-key"> + <p style="width: 100%; display: flex; flex-wrap: nowrap; box-sizing: border-box;"> + <input id="key" name="key" type="text" size="15" value="" class="regular-text code" style="flex-grow: 1; margin-right: 1rem;"> + <input type="submit" name="submit" id="submit" class="akismet-button" value="<?php esc_attr_e( 'Connect with API key', 'akismet' );?>"> + </p> + </form> + </div> + <?php } else { ?> + <div class="akismet-box"> + <h2><?php esc_html_e( 'Manual Configuration', 'akismet' ); ?></h2> + <p><?php echo sprintf( esc_html__( 'An Akismet API key has been defined in the %s file for this site.', 'akismet' ), '<code>wp-config.php</code>' ); ?></p> + </div> + <?php } ?> + </div> + </div> +</div> \ No newline at end of file diff --git a/wp-content/plugins/akismet/views/stats.php b/wp-content/plugins/akismet/views/stats.php new file mode 100644 index 000000000..2302c11a8 --- /dev/null +++ b/wp-content/plugins/akismet/views/stats.php @@ -0,0 +1,11 @@ +<div id="akismet-plugin-container"> + <div class="akismet-masthead"> + <div class="akismet-masthead__inside-container"> + <a href="<?php echo esc_url( Akismet_Admin::get_page_url() );?>" class="akismet-right"><?php esc_html_e( 'Akismet Settings' , 'akismet' ); ?></a> + <div class="akismet-masthead__logo-container"> + <img class="akismet-masthead__logo" src="<?php echo esc_url( plugins_url( '../_inc/img/logo-full-2x.png', __FILE__ ) ); ?>" alt="Akismet" /> + </div> + </div> + </div> + <iframe src="<?php echo esc_url( sprintf( '//akismet.com/web/1.0/user-stats.php?blog=%s&api_key=%s&locale=%s', urlencode( get_option( 'home' ) ), Akismet::get_api_key(), get_locale() ) ); ?>" width="100%" height="2500px" frameborder="0"></iframe> +</div> \ No newline at end of file diff --git a/wp-content/plugins/akismet/wrapper.php b/wp-content/plugins/akismet/wrapper.php new file mode 100644 index 000000000..f687e099a --- /dev/null +++ b/wp-content/plugins/akismet/wrapper.php @@ -0,0 +1,213 @@ +<?php + +global $wpcom_api_key, $akismet_api_host, $akismet_api_port; + +$wpcom_api_key = defined( 'WPCOM_API_KEY' ) ? constant( 'WPCOM_API_KEY' ) : ''; +$akismet_api_host = Akismet::get_api_key() . '.rest.akismet.com'; +$akismet_api_port = 80; + +function akismet_test_mode() { + return Akismet::is_test_mode(); +} + +function akismet_http_post( $request, $host, $path, $port = 80, $ip = null ) { + $path = str_replace( '/1.1/', '', $path ); + + return Akismet::http_post( $request, $path, $ip ); +} + +function akismet_microtime() { + return Akismet::_get_microtime(); +} + +function akismet_delete_old() { + return Akismet::delete_old_comments(); +} + +function akismet_delete_old_metadata() { + return Akismet::delete_old_comments_meta(); +} + +function akismet_check_db_comment( $id, $recheck_reason = 'recheck_queue' ) { + return Akismet::check_db_comment( $id, $recheck_reason ); +} + +function akismet_rightnow() { + if ( !class_exists( 'Akismet_Admin' ) ) + return false; + + return Akismet_Admin::rightnow_stats(); +} + +function akismet_admin_init() { + _deprecated_function( __FUNCTION__, '3.0' ); +} +function akismet_version_warning() { + _deprecated_function( __FUNCTION__, '3.0' ); +} +function akismet_load_js_and_css() { + _deprecated_function( __FUNCTION__, '3.0' ); +} +function akismet_nonce_field( $action = -1 ) { + return wp_nonce_field( $action ); +} +function akismet_plugin_action_links( $links, $file ) { + return Akismet_Admin::plugin_action_links( $links, $file ); +} +function akismet_conf() { + _deprecated_function( __FUNCTION__, '3.0' ); +} +function akismet_stats_display() { + _deprecated_function( __FUNCTION__, '3.0' ); +} +function akismet_stats() { + return Akismet_Admin::dashboard_stats(); +} +function akismet_admin_warnings() { + _deprecated_function( __FUNCTION__, '3.0' ); +} +function akismet_comment_row_action( $a, $comment ) { + return Akismet_Admin::comment_row_actions( $a, $comment ); +} +function akismet_comment_status_meta_box( $comment ) { + return Akismet_Admin::comment_status_meta_box( $comment ); +} +function akismet_comments_columns( $columns ) { + _deprecated_function( __FUNCTION__, '3.0' ); + + return $columns; +} +function akismet_comment_column_row( $column, $comment_id ) { + _deprecated_function( __FUNCTION__, '3.0' ); +} +function akismet_text_add_link_callback( $m ) { + return Akismet_Admin::text_add_link_callback( $m ); +} +function akismet_text_add_link_class( $comment_text ) { + return Akismet_Admin::text_add_link_class( $comment_text ); +} +function akismet_check_for_spam_button( $comment_status ) { + return Akismet_Admin::check_for_spam_button( $comment_status ); +} +function akismet_submit_nonspam_comment( $comment_id ) { + return Akismet::submit_nonspam_comment( $comment_id ); +} +function akismet_submit_spam_comment( $comment_id ) { + return Akismet::submit_spam_comment( $comment_id ); +} +function akismet_transition_comment_status( $new_status, $old_status, $comment ) { + return Akismet::transition_comment_status( $new_status, $old_status, $comment ); +} +function akismet_spam_count( $type = false ) { + return Akismet_Admin::get_spam_count( $type ); +} +function akismet_recheck_queue() { + return Akismet_Admin::recheck_queue(); +} +function akismet_remove_comment_author_url() { + return Akismet_Admin::remove_comment_author_url(); +} +function akismet_add_comment_author_url() { + return Akismet_Admin::add_comment_author_url(); +} +function akismet_check_server_connectivity() { + return Akismet_Admin::check_server_connectivity(); +} +function akismet_get_server_connectivity( $cache_timeout = 86400 ) { + return Akismet_Admin::get_server_connectivity( $cache_timeout ); +} +function akismet_server_connectivity_ok() { + _deprecated_function( __FUNCTION__, '3.0' ); + + return true; +} +function akismet_admin_menu() { + return Akismet_Admin::admin_menu(); +} +function akismet_load_menu() { + return Akismet_Admin::load_menu(); +} +function akismet_init() { + _deprecated_function( __FUNCTION__, '3.0' ); +} +function akismet_get_key() { + return Akismet::get_api_key(); +} +function akismet_check_key_status( $key, $ip = null ) { + return Akismet::check_key_status( $key, $ip ); +} +function akismet_update_alert( $response ) { + return Akismet::update_alert( $response ); +} +function akismet_verify_key( $key, $ip = null ) { + return Akismet::verify_key( $key, $ip ); +} +function akismet_get_user_roles( $user_id ) { + return Akismet::get_user_roles( $user_id ); +} +function akismet_result_spam( $approved ) { + return Akismet::comment_is_spam( $approved ); +} +function akismet_result_hold( $approved ) { + return Akismet::comment_needs_moderation( $approved ); +} +function akismet_get_user_comments_approved( $user_id, $comment_author_email, $comment_author, $comment_author_url ) { + return Akismet::get_user_comments_approved( $user_id, $comment_author_email, $comment_author, $comment_author_url ); +} +function akismet_update_comment_history( $comment_id, $message, $event = null ) { + return Akismet::update_comment_history( $comment_id, $message, $event ); +} +function akismet_get_comment_history( $comment_id ) { + return Akismet::get_comment_history( $comment_id ); +} +function akismet_cmp_time( $a, $b ) { + return Akismet::_cmp_time( $a, $b ); +} +function akismet_auto_check_update_meta( $id, $comment ) { + return Akismet::auto_check_update_meta( $id, $comment ); +} +function akismet_auto_check_comment( $commentdata ) { + return Akismet::auto_check_comment( $commentdata ); +} +function akismet_get_ip_address() { + return Akismet::get_ip_address(); +} +function akismet_cron_recheck() { + return Akismet::cron_recheck(); +} +function akismet_add_comment_nonce( $post_id ) { + return Akismet::add_comment_nonce( $post_id ); +} +function akismet_fix_scheduled_recheck() { + return Akismet::fix_scheduled_recheck(); +} +function akismet_spam_comments() { + _deprecated_function( __FUNCTION__, '3.0' ); + + return array(); +} +function akismet_spam_totals() { + _deprecated_function( __FUNCTION__, '3.0' ); + + return array(); +} +function akismet_manage_page() { + _deprecated_function( __FUNCTION__, '3.0' ); +} +function akismet_caught() { + _deprecated_function( __FUNCTION__, '3.0' ); +} +function redirect_old_akismet_urls() { + _deprecated_function( __FUNCTION__, '3.0' ); +} +function akismet_kill_proxy_check( $option ) { + _deprecated_function( __FUNCTION__, '3.0' ); + + return 0; +} +function akismet_pingback_forwarded_for( $r, $url ) { + return Akismet::pingback_forwarded_for( $r, $url ); +} +function akismet_pre_check_pingback( $method ) { + return Akismet::pre_check_pingback( $method ); +} \ No newline at end of file diff --git a/wp-content/plugins/hello.php b/wp-content/plugins/hello.php new file mode 100644 index 000000000..5db558fdb --- /dev/null +++ b/wp-content/plugins/hello.php @@ -0,0 +1,81 @@ +<?php +/** + * @package Hello_Dolly + * @version 1.7 + */ +/* +Plugin Name: Hello Dolly +Plugin URI: http://wordpress.org/plugins/hello-dolly/ +Description: This is not just a plugin, it symbolizes the hope and enthusiasm of an entire generation summed up in two words sung most famously by Louis Armstrong: Hello, Dolly. When activated you will randomly see a lyric from <cite>Hello, Dolly</cite> in the upper right of your admin screen on every page. +Author: Matt Mullenweg +Version: 1.7 +Author URI: http://ma.tt/ +*/ + +function hello_dolly_get_lyric() { + /** These are the lyrics to Hello Dolly */ + $lyrics = "Hello, Dolly +Well, hello, Dolly +It's so nice to have you back where you belong +You're lookin' swell, Dolly +I can tell, Dolly +You're still glowin', you're still crowin' +You're still goin' strong +I feel the room swayin' +While the band's playin' +One of our old favorite songs from way back when +So, take her wrap, fellas +Dolly, never go away again +Hello, Dolly +Well, hello, Dolly +It's so nice to have you back where you belong +You're lookin' swell, Dolly +I can tell, Dolly +You're still glowin', you're still crowin' +You're still goin' strong +I feel the room swayin' +While the band's playin' +One of our old favorite songs from way back when +So, golly, gee, fellas +Have a little faith in me, fellas +Dolly, never go away +Promise, you'll never go away +Dolly'll never go away again"; + + // Here we split it into lines + $lyrics = explode( "\n", $lyrics ); + + // And then randomly choose a line + return wptexturize( $lyrics[ mt_rand( 0, count( $lyrics ) - 1 ) ] ); +} + +// This just echoes the chosen line, we'll position it later +function hello_dolly() { + $chosen = hello_dolly_get_lyric(); + echo "<p id='dolly'>$chosen</p>"; +} + +// Now we set that function up to execute when the admin_notices action is called +add_action( 'admin_notices', 'hello_dolly' ); + +// We need some CSS to position the paragraph +function dolly_css() { + // This makes sure that the positioning is also good for right-to-left languages + $x = is_rtl() ? 'left' : 'right'; + + echo " + <style type='text/css'> + #dolly { + float: $x; + padding-$x: 15px; + padding-top: 5px; + margin: 0; + font-size: 11px; + } + </style> + "; +} + +add_action( 'admin_head', 'dolly_css' ); + +?> diff --git a/wp-content/themes/twentyfifteen/footer.php b/wp-content/themes/twentyfifteen/footer.php index e57b5f583..6447da0e1 100644 --- a/wp-content/themes/twentyfifteen/footer.php +++ b/wp-content/themes/twentyfifteen/footer.php @@ -22,7 +22,14 @@ */ do_action( 'twentyfifteen_credits' ); ?> - <a href="<?php echo esc_url( __( 'https://wordpress.org/', 'twentyfifteen' ) ); ?>"><?php printf( __( 'Proudly powered by %s', 'twentyfifteen' ), 'WordPress' ); ?></a> + <?php + if ( function_exists( 'the_privacy_policy_link' ) ) { + the_privacy_policy_link( '', '<span role="separator" aria-hidden="true"></span>' ); + } + ?> + <a href="<?php echo esc_url( __( 'https://wordpress.org/', 'twentyfifteen' ) ); ?>" class="imprint"> + <?php printf( __( 'Proudly powered by %s', 'twentyfifteen' ), 'WordPress' ); ?> + </a> </div><!-- .site-info --> </footer><!-- .site-footer --> diff --git a/wp-content/themes/twentyfifteen/readme.txt b/wp-content/themes/twentyfifteen/readme.txt index 16e131a57..8231e099e 100644 --- a/wp-content/themes/twentyfifteen/readme.txt +++ b/wp-content/themes/twentyfifteen/readme.txt @@ -2,7 +2,7 @@ Contributors: the WordPress team Requires at least: WordPress 4.1 Tested up to: WordPress 5.0-trunk -Version: 1.9 +Version: 2.0 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Tags: blog, two-columns, left-sidebar, accessibility-ready, custom-background, custom-colors, custom-header, custom-logo, custom-menu, editor-style, featured-images, microformats, post-formats, rtl-language-support, sticky-post, threaded-comments, translation-ready @@ -30,7 +30,7 @@ For more information about Twenty Fifteen please go to https://codex.wordpress.o == Copyright == -Twenty Fifteen WordPress Theme, Copyright 2014-2017 WordPress.org & Automattic.com +Twenty Fifteen WordPress Theme, Copyright 2014-2018 WordPress.org & Automattic.com Twenty Fifteen is distributed under the terms of the GNU GPL This program is free software: you can redistribute it and/or modify @@ -55,6 +55,11 @@ Source: http://www.genericons.com == Changelog == += 2.0 = +* Released: May 17, 2018 + +https://codex.wordpress.org/Twenty_Fifteen_Theme_Changelog#Version_2.0 + = 1.9 = * Released: November 14, 2017 diff --git a/wp-content/themes/twentyfifteen/rtl.css b/wp-content/themes/twentyfifteen/rtl.css index 3c1079d06..4a7397f85 100644 --- a/wp-content/themes/twentyfifteen/rtl.css +++ b/wp-content/themes/twentyfifteen/rtl.css @@ -400,6 +400,9 @@ img.alignleft { float: left; } +.comment-form #wp-comment-cookies-consent { + margin: 0 0 0 10px; +} /** * 11.0 Media Queries diff --git a/wp-content/themes/twentyfifteen/style.css b/wp-content/themes/twentyfifteen/style.css index 77c731163..e36ffa523 100644 --- a/wp-content/themes/twentyfifteen/style.css +++ b/wp-content/themes/twentyfifteen/style.css @@ -4,7 +4,7 @@ Theme URI: https://wordpress.org/themes/twentyfifteen/ Author: the WordPress team Author URI: https://wordpress.org/ Description: Our 2015 default theme is clean, blog-focused, and designed for clarity. Twenty Fifteen's simple, straightforward typography is readable on a wide variety of screen sizes, and suitable for multiple languages. We designed it using a mobile-first approach, meaning your content takes center-stage, regardless of whether your visitors arrive by smartphone, tablet, laptop, or desktop computer. -Version: 1.9 +Version: 2.0 License: GNU General Public License v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Tags: blog, two-columns, left-sidebar, accessibility-ready, custom-background, custom-colors, custom-header, custom-logo, custom-menu, editor-style, featured-images, microformats, post-formats, rtl-language-support, sticky-post, threaded-comments, translation-ready @@ -2406,6 +2406,18 @@ a.post-thumbnail:focus { top: -3px; } +.comment-form #wp-comment-cookies-consent { + margin: 0 10px 0 0; +} + +.comment-form .comment-form-cookies-consent label { + display: inline; + font-size: 12px; + font-size: 1.2rem; + font-weight: normal; + letter-spacing: 0; + text-transform: none; +} /** * 13.0 Footer @@ -2434,6 +2446,13 @@ a.post-thumbnail:focus { color: #333; } +.site-info span[role=separator] { + padding: 0 0.25em 0 0.5em; +} + +.site-info span[role=separator]::before { + content: '\002f'; +} /** * 14.0 Media @@ -3033,6 +3052,7 @@ p > video { .comment-awaiting-moderation, .logged-in-as, .comment-form label, + .comment-form .comment-form-cookies-consent label, .form-allowed-tags, .site-info, .wp-caption-text, @@ -3662,6 +3682,7 @@ p > video { .comment-awaiting-moderation, .logged-in-as, .comment-form label, + .comment-form .comment-form-cookies-consent label, .form-allowed-tags, .site-info, .wp-caption-text, @@ -4281,6 +4302,7 @@ p > video { .comment-awaiting-moderation, .logged-in-as, .comment-form label, + .comment-form .comment-form-cookies-consent label, .form-allowed-tags, .site-info, .wp-caption-text, @@ -4938,6 +4960,7 @@ p > video { .comment-awaiting-moderation, .logged-in-as, .comment-form label, + .comment-form .comment-form-cookies-consent label, .form-allowed-tags, .site-info, .wp-caption-text, @@ -5479,6 +5502,7 @@ p > video { .comment-awaiting-moderation, .logged-in-as, .comment-form label, + .comment-form .comment-form-cookies-consent label, .form-allowed-tags, .site-info, .wp-caption-text, diff --git a/wp-content/themes/twentyseventeen/README.txt b/wp-content/themes/twentyseventeen/README.txt index 54860160a..a11d2b507 100644 --- a/wp-content/themes/twentyseventeen/README.txt +++ b/wp-content/themes/twentyseventeen/README.txt @@ -2,7 +2,7 @@ Contributors: the WordPress team Requires at least: WordPress 4.7 Tested up to: WordPress 5.0-trunk -Version: 1.4 +Version: 1.6 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Tags: one-column, two-columns, right-sidebar, flexible-header, accessibility-ready, custom-colors, custom-header, custom-menu, custom-logo, editor-style, featured-images, footer-widgets, post-formats, rtl-language-support, sticky-post, theme-options, threaded-comments, translation-ready @@ -60,6 +60,16 @@ Source: https://unsplash.com/@englr?photo=bIhpiQA009k == Changelog == += 1.6 = +* Released: May 17, 2018 + +https://codex.wordpress.org/Twenty_Seventeen_Theme_Changelog#Version_1.6 + += 1.5 = +* Released: April 4, 2018 + +https://codex.wordpress.org/Twenty_Seventeen_Theme_Changelog#Version_1.5 + = 1.4 = * Released: November 14, 2017 diff --git a/wp-content/themes/twentyseventeen/assets/css/colors-dark.css b/wp-content/themes/twentyseventeen/assets/css/colors-dark.css index d6fda60c4..3b85b97d9 100644 --- a/wp-content/themes/twentyseventeen/assets/css/colors-dark.css +++ b/wp-content/themes/twentyseventeen/assets/css/colors-dark.css @@ -19,6 +19,8 @@ .colors-dark .entry-content a:hover, .colors-dark .entry-summary a:focus, .colors-dark .entry-summary a:hover, +.colors-dark .comment-content a:focus, +.colors-dark .comment-content a:hover, .colors-dark .widget a:focus, .colors-dark .widget a:hover, .colors-dark .site-footer .widget-area a:focus, @@ -74,6 +76,8 @@ .colors-dark .entry-content a:hover, .colors-dark .entry-summary a:focus, .colors-dark .entry-summary a:hover, +.colors-dark .comment-content a:focus, +.colors-dark .comment-content a:hover, .colors-dark .widget a:focus, .colors-dark .widget a:hover, .colors-dark .site-footer .widget-area a:focus, @@ -128,6 +132,7 @@ .colors-dark .entry-content a, .colors-dark .entry-summary a, +.colors-dark .comment-content a, .colors-dark .widget a, .colors-dark .site-footer .widget-area a, .colors-dark .posts-navigation a, @@ -475,6 +480,7 @@ body.colors-dark, /* Fixes linked images */ .colors-dark .entry-content a img, +.colors-dark .comment-content a img, .colors-dark .widget a img { -webkit-box-shadow: 0 0 0 8px #222; box-shadow: 0 0 0 8px #222; diff --git a/wp-content/themes/twentyseventeen/inc/color-patterns.php b/wp-content/themes/twentyseventeen/inc/color-patterns.php index 74d5031db..3f1ecddd0 100644 --- a/wp-content/themes/twentyseventeen/inc/color-patterns.php +++ b/wp-content/themes/twentyseventeen/inc/color-patterns.php @@ -36,6 +36,8 @@ function twentyseventeen_custom_colors_css() { .colors-custom .entry-content a:hover, .colors-custom .entry-summary a:focus, .colors-custom .entry-summary a:hover, +.colors-custom .comment-content a:focus, +.colors-custom .comment-content a:hover, .colors-custom .widget a:focus, .colors-custom .widget a:hover, .colors-custom .site-footer .widget-area a:focus, @@ -91,6 +93,7 @@ function twentyseventeen_custom_colors_css() { .colors-custom .entry-content a, .colors-custom .entry-summary a, +.colors-custom .comment-content a, .colors-custom .widget a, .colors-custom .site-footer .widget-area a, .colors-custom .posts-navigation a, @@ -152,6 +155,8 @@ function twentyseventeen_custom_colors_css() { .colors-custom .entry-content a:hover, .colors-custom .entry-summary a:focus, .colors-custom .entry-summary a:hover, +.colors-custom .comment-content a:focus, +.colors-custom .comment-content a:hover, .colors-custom .widget a:focus, .colors-custom .widget a:hover, .colors-custom .site-footer .widget-area a:focus, @@ -493,6 +498,8 @@ body.colors-custom, .colors-custom .entry-content a:focus, .colors-custom .entry-summary a:hover, .colors-custom .entry-summary a:focus, +.colors-custom .comment-content a:focus, +.colors-custom .comment-content a:hover, .colors-custom .widget a:hover, .colors-custom .widget a:focus, .colors-custom .site-footer .widget-area a:hover, diff --git a/wp-content/themes/twentyseventeen/rtl.css b/wp-content/themes/twentyseventeen/rtl.css index ff5c00c95..1c5e4c7ad 100644 --- a/wp-content/themes/twentyseventeen/rtl.css +++ b/wp-content/themes/twentyseventeen/rtl.css @@ -199,6 +199,10 @@ input[type="checkbox"] { text-align: left; } +.comment-form #wp-comment-cookies-consent { + margin: 0 0 0 10px; +} + /* Post Formats */ .format-quote blockquote .icon { diff --git a/wp-content/themes/twentyseventeen/style.css b/wp-content/themes/twentyseventeen/style.css index 5580e4e48..09425f2c8 100644 --- a/wp-content/themes/twentyseventeen/style.css +++ b/wp-content/themes/twentyseventeen/style.css @@ -4,7 +4,7 @@ Theme URI: https://wordpress.org/themes/twentyseventeen/ Author: the WordPress team Author URI: https://wordpress.org/ Description: Twenty Seventeen brings your site to life with header video and immersive featured images. With a focus on business sites, it features multiple sections on the front page as well as widgets, navigation and social menus, a logo, and more. Personalize its asymmetrical grid with a custom color scheme and showcase your multimedia content with post formats. Our default theme for 2017 works great in many languages, for any abilities, and on any device. -Version: 1.4 +Version: 1.6 License: GNU General Public License v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Text Domain: twentyseventeen @@ -1178,6 +1178,7 @@ a:active { .entry-content a, .entry-summary a, +.comment-content a, .widget a, .site-footer .widget-area a, .posts-navigation a, @@ -1225,6 +1226,8 @@ a .nav-title, .entry-content a:hover, .entry-summary a:focus, .entry-summary a:hover, +.comment-content a:focus, +.comment-content a:hover, .widget a:focus, .widget a:hover, .site-footer .widget-area a:focus, @@ -1276,6 +1279,7 @@ a:hover .nav-title, /* Fixes linked images */ .entry-content a img, +.comment-content a img, .widget a img { -webkit-box-shadow: 0 0 0 8px #fff; box-shadow: 0 0 0 8px #fff; @@ -2374,6 +2378,14 @@ body:not(.twentyseventeen-front-page) .entry-header { width: 100%; } +.site-info span[role=separator] { + padding: 0 0.2em 0 0.4em; +} + +.site-info span[role=separator]::before { + content: '\002f'; +} + /*-------------------------------------------------------------- 14.0 Comments --------------------------------------------------------------*/ @@ -2493,6 +2505,14 @@ body:not(.twentyseventeen-front-page) .entry-header { text-align: right; } +.comment-form #wp-comment-cookies-consent { + margin: 0 10px 0 0; +} + +.comment-form .comment-form-cookies-consent label { + display: inline; +} + /*-------------------------------------------------------------- 15.0 Widgets --------------------------------------------------------------*/ diff --git a/wp-content/themes/twentyseventeen/template-parts/footer/site-info.php b/wp-content/themes/twentyseventeen/template-parts/footer/site-info.php index 8455dc423..2f528efb1 100644 --- a/wp-content/themes/twentyseventeen/template-parts/footer/site-info.php +++ b/wp-content/themes/twentyseventeen/template-parts/footer/site-info.php @@ -10,5 +10,12 @@ ?> <div class="site-info"> - <a href="<?php echo esc_url( __( 'https://wordpress.org/', 'twentyseventeen' ) ); ?>"><?php printf( __( 'Proudly powered by %s', 'twentyseventeen' ), 'WordPress' ); ?></a> + <?php + if ( function_exists( 'the_privacy_policy_link' ) ) { + the_privacy_policy_link( '', '<span role="separator" aria-hidden="true"></span>' ); + } + ?> + <a href="<?php echo esc_url( __( 'https://wordpress.org/', 'twentyseventeen' ) ); ?>" class="imprint"> + <?php printf( __( 'Proudly powered by %s', 'twentyseventeen' ), 'WordPress' ); ?> + </a> </div><!-- .site-info --> diff --git a/wp-content/themes/twentysixteen/footer.php b/wp-content/themes/twentysixteen/footer.php index 5c6a18275..baa820928 100644 --- a/wp-content/themes/twentysixteen/footer.php +++ b/wp-content/themes/twentysixteen/footer.php @@ -48,7 +48,14 @@ do_action( 'twentysixteen_credits' ); ?> <span class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></span> - <a href="<?php echo esc_url( __( 'https://wordpress.org/', 'twentysixteen' ) ); ?>"><?php printf( __( 'Proudly powered by %s', 'twentysixteen' ), 'WordPress' ); ?></a> + <?php + if ( function_exists( 'the_privacy_policy_link' ) ) { + the_privacy_policy_link( '', '<span role="separator" aria-hidden="true"></span>' ); + } + ?> + <a href="<?php echo esc_url( __( 'https://wordpress.org/', 'twentysixteen' ) ); ?>" class="imprint"> + <?php printf( __( 'Proudly powered by %s', 'twentysixteen' ), 'WordPress' ); ?> + </a> </div><!-- .site-info --> </footer><!-- .site-footer --> </div><!-- .site-inner --> diff --git a/wp-content/themes/twentysixteen/readme.txt b/wp-content/themes/twentysixteen/readme.txt index 95e055909..9c0cf092b 100644 --- a/wp-content/themes/twentysixteen/readme.txt +++ b/wp-content/themes/twentysixteen/readme.txt @@ -2,7 +2,7 @@ Contributors: the WordPress team Requires at least: WordPress 4.4 Tested up to: WordPress 5.0-trunk -Version: 1.4 +Version: 1.5 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Tags: one-column, two-columns, right-sidebar, accessibility-ready, custom-background, custom-colors, custom-header, custom-menu, editor-style, featured-images, flexible-header, microformats, post-formats, rtl-language-support, sticky-post, threaded-comments, translation-ready, blog @@ -29,7 +29,7 @@ For more information about Twenty Sixteen please go to https://codex.wordpress.o == Copyright == -Twenty Sixteen WordPress Theme, Copyright 2014-2017 WordPress.org +Twenty Sixteen WordPress Theme, Copyright 2014-2018 WordPress.org Twenty Sixteen is distributed under the terms of the GNU GPL This program is free software: you can redistribute it and/or modify @@ -56,6 +56,11 @@ Image used in screenshot.png: A photo by Austin Schmid (https://unsplash.com/sch == Changelog == += 1.5 = +* Released: May 17, 2018 + +https://codex.wordpress.org/Twenty_Sixteen_Theme_Changelog#Version_1.5 + = 1.4 = * Released: November 14, 2017 diff --git a/wp-content/themes/twentysixteen/rtl.css b/wp-content/themes/twentysixteen/rtl.css index f88041a2c..48ece280a 100644 --- a/wp-content/themes/twentysixteen/rtl.css +++ b/wp-content/themes/twentysixteen/rtl.css @@ -98,7 +98,8 @@ textarea, .site-footer .site-title, .site-footer .site-title:after, .widecolumn label, -.widecolumn .mu_register label { +.widecolumn .mu_register label, +.site-footer span[role=separator] { font-family: Arial, Tahoma, sans-serif; } @@ -399,16 +400,13 @@ body:not(.search-results) .entry-summary .alignleft { float: left; } - -/** - * 8.4 - Footer - */ - -.site-footer .site-title:after { - padding-right: 0.538461538em; - padding-left: 0.307692308em; +.comment-form #wp-comment-cookies-consent { + margin: 0 0 0 10px; } +.comment-form .comment-form-cookies-consent label { + font-family: Arial, Tahoma, sans-serif; +} /** * 9.0 - Multisites diff --git a/wp-content/themes/twentysixteen/style.css b/wp-content/themes/twentysixteen/style.css index ed2282869..aacb880a0 100644 --- a/wp-content/themes/twentysixteen/style.css +++ b/wp-content/themes/twentysixteen/style.css @@ -4,7 +4,7 @@ Theme URI: https://wordpress.org/themes/twentysixteen/ Author: the WordPress team Author URI: https://wordpress.org/ Description: Twenty Sixteen is a modernized take on an ever-popular WordPress layout — the horizontal masthead with an optional right sidebar that works perfectly for blogs and websites. It has custom color options with beautiful default color schemes, a harmonious fluid grid using a mobile-first approach, and impeccable polish in every detail. Twenty Sixteen will make your WordPress look beautiful everywhere. -Version: 1.4 +Version: 1.5 License: GNU General Public License v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Tags: one-column, two-columns, right-sidebar, accessibility-ready, custom-background, custom-colors, custom-header, custom-menu, editor-style, featured-images, flexible-header, microformats, post-formats, rtl-language-support, sticky-post, threaded-comments, translation-ready, blog @@ -2394,6 +2394,16 @@ body.search-no-results .page-header { top: -5px; } +.comment-form #wp-comment-cookies-consent { + margin: 0 10px 0 0; +} + +.comment-form .comment-form-cookies-consent label { + display: inline; + font-family: Merriweather, Georgia, serif; + letter-spacing: 0; + text-transform: none; +} /** * 11.5 - Sidebar @@ -2443,6 +2453,16 @@ body.search-no-results .page-header { padding: 0 0.307692308em 0 0.538461538em; } +.site-footer span[role=separator] { + font-family: Montserrat, sans-serif; + opacity: 0.7; + padding: 0 0.307692308em 0 0.538461538em; +} + +.site-footer span[role=separator]::before { + content: '\002f'; +} + /** * 12.0 - Media diff --git a/wp-includes/IXR/class-IXR-message.php b/wp-includes/IXR/class-IXR-message.php index 69af8aa2c..013eae399 100644 --- a/wp-includes/IXR/class-IXR-message.php +++ b/wp-includes/IXR/class-IXR-message.php @@ -9,12 +9,12 @@ */ class IXR_Message { - var $message; - var $messageType; // methodCall / methodResponse / fault - var $faultCode; - var $faultString; - var $methodName; - var $params; + var $message = false; + var $messageType = false; // methodCall / methodResponse / fault + var $faultCode = false; + var $faultString = false; + var $methodName = ''; + var $params = array(); // Current variable stacks var $_arraystructs = array(); // The stack used to keep track of the current array/struct diff --git a/wp-includes/capabilities.php b/wp-includes/capabilities.php index c5a921b7c..e71cbfa92 100644 --- a/wp-includes/capabilities.php +++ b/wp-includes/capabilities.php @@ -119,6 +119,15 @@ function map_meta_cap( $cap, $user_id ) { $caps[] = $post_type->cap->delete_private_posts; } } + + /* + * Setting the privacy policy page requires `manage_privacy_options`, + * so deleting it should require that too. + */ + if ( (int) get_option( 'wp_page_for_privacy_policy' ) === $post->ID ) { + $caps = array_merge( $caps, map_meta_cap( 'manage_privacy_options', $user_id ) ); + } + break; // edit_post breaks down to edit_posts, edit_published_posts, or // edit_others_posts @@ -180,6 +189,15 @@ function map_meta_cap( $cap, $user_id ) { $caps[] = $post_type->cap->edit_private_posts; } } + + /* + * Setting the privacy policy page requires `manage_privacy_options`, + * so editing it should require that too. + */ + if ( (int) get_option( 'wp_page_for_privacy_policy' ) === $post->ID ) { + $caps = array_merge( $caps, map_meta_cap( 'manage_privacy_options', $user_id ) ); + } + break; case 'read_post': case 'read_page': @@ -539,6 +557,11 @@ function map_meta_cap( $cap, $user_id ) { $caps[] = 'manage_options'; } break; + case 'export_others_personal_data': + case 'erase_others_personal_data': + case 'manage_privacy_options': + $caps[] = is_multisite() ? 'manage_network' : 'manage_options'; + break; default: // Handle meta capabilities for custom post types. global $post_type_meta_caps; diff --git a/wp-includes/class-wp-customize-manager.php b/wp-includes/class-wp-customize-manager.php index 804524e10..1a5360d55 100644 --- a/wp-includes/class-wp-customize-manager.php +++ b/wp-includes/class-wp-customize-manager.php @@ -447,7 +447,7 @@ final class WP_Customize_Manager { } if ( ! $message ) { - $message = __( 'Cheatin’ uh?' ); + $message = __( 'Something went wrong.' ); } if ( $this->messenger_channel ) { @@ -512,7 +512,7 @@ final class WP_Customize_Manager { auth_redirect(); } else { wp_die( - '<h1>' . __( 'Cheatin’ uh?' ) . '</h1>' . + '<h1>' . __( 'You need a higher level of permission.' ) . '</h1>' . '<p>' . __( 'Sorry, you are not allowed to customize this site.' ) . '</p>', 403 ); diff --git a/wp-includes/class-wp-editor.php b/wp-includes/class-wp-editor.php index 0743a840f..298d3edd7 100644 --- a/wp-includes/class-wp-editor.php +++ b/wp-includes/class-wp-editor.php @@ -1401,8 +1401,16 @@ final class _WP_Editors { $version = 'ver=' . $tinymce_version; $baseurl = self::get_baseurl(); - $compressed = $compress_scripts && $concatenate_scripts && isset($_SERVER['HTTP_ACCEPT_ENCODING']) - && false !== stripos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip'); + $has_custom_theme = false; + foreach ( self::$mce_settings as $init ) { + if ( ! empty( $init['theme_url'] ) ) { + $has_custom_theme = true; + break; + } + } + + $compressed = $compress_scripts && $concatenate_scripts && isset( $_SERVER['HTTP_ACCEPT_ENCODING'] ) + && false !== stripos( $_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip' ) && ! $has_custom_theme; // Load tinymce.js when running from /src, else load wp-tinymce.js.gz (production) or tinymce.min.js (SCRIPT_DEBUG) $mce_suffix = false !== strpos( get_bloginfo( 'version' ), '-src' ) ? '' : '.min'; diff --git a/wp-includes/class-wp-theme.php b/wp-includes/class-wp-theme.php index d98085a3d..b53bdcc54 100644 --- a/wp-includes/class-wp-theme.php +++ b/wp-includes/class-wp-theme.php @@ -1067,6 +1067,19 @@ final class WP_Theme implements ArrayAccess { $post_templates = $this->get_post_templates(); $post_templates = isset( $post_templates[ $post_type ] ) ? $post_templates[ $post_type ] : array(); + /** + * Filters list of page templates for a theme. + * + * @since 4.9.6 + * + * @param string[] $post_templates Array of page templates. Keys are filenames, + * values are translated names. + * @param WP_Theme $this The theme object. + * @param WP_Post|null $post The post being edited, provided for context, or null. + * @param string $post_type Post type to get the templates for. + */ + $post_templates = (array) apply_filters( 'theme_templates', $post_templates, $this, $post, $post_type ); + /** * Filters list of page templates for a theme. * @@ -1082,7 +1095,9 @@ final class WP_Theme implements ArrayAccess { * @param WP_Post|null $post The post being edited, provided for context, or null. * @param string $post_type Post type to get the templates for. */ - return (array) apply_filters( "theme_{$post_type}_templates", $post_templates, $this, $post, $post_type ); + $post_templates = (array) apply_filters( "theme_{$post_type}_templates", $post_templates, $this, $post, $post_type ); + + return $post_templates; } /** diff --git a/wp-includes/class-wp-xmlrpc-server.php b/wp-includes/class-wp-xmlrpc-server.php index c35498cd9..826f2efdf 100644 --- a/wp-includes/class-wp-xmlrpc-server.php +++ b/wp-includes/class-wp-xmlrpc-server.php @@ -3686,7 +3686,7 @@ class wp_xmlrpc_server extends IXR_Server { } if ( ! $comment_ID ) { - return new IXR_Error( 403, __( 'An unidentified error has occurred.' ) ); + return new IXR_Error( 403, __( 'Something went wrong.' ) ); } /** diff --git a/wp-includes/comment-template.php b/wp-includes/comment-template.php index e2bdaf60c..51193cec1 100644 --- a/wp-includes/comment-template.php +++ b/wp-includes/comment-template.php @@ -2192,16 +2192,18 @@ function comment_form( $args = array(), $post_id = null ) { $args['format'] = current_theme_supports( 'html5', 'comment-form' ) ? 'html5' : 'xhtml'; $req = get_option( 'require_name_email' ); - $aria_req = ( $req ? " aria-required='true'" : '' ); $html_req = ( $req ? " required='required'" : '' ); $html5 = 'html5' === $args['format']; + $consent = empty( $commenter['comment_author_email'] ) ? '' : ' checked="checked"'; $fields = array( - 'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name' ) . ( $req ? ' <span class="required">*</span>' : '' ) . '</label> ' . - '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30" maxlength="245"' . $aria_req . $html_req . ' /></p>', - 'email' => '<p class="comment-form-email"><label for="email">' . __( 'Email' ) . ( $req ? ' <span class="required">*</span>' : '' ) . '</label> ' . - '<input id="email" name="email" ' . ( $html5 ? 'type="email"' : 'type="text"' ) . ' value="' . esc_attr( $commenter['comment_author_email'] ) . '" size="30" maxlength="100" aria-describedby="email-notes"' . $aria_req . $html_req . ' /></p>', - 'url' => '<p class="comment-form-url"><label for="url">' . __( 'Website' ) . '</label> ' . - '<input id="url" name="url" ' . ( $html5 ? 'type="url"' : 'type="text"' ) . ' value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" maxlength="200" /></p>', + 'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name' ) . ( $req ? ' <span class="required">*</span>' : '' ) . '</label> ' . + '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30" maxlength="245"' . $html_req . ' /></p>', + 'email' => '<p class="comment-form-email"><label for="email">' . __( 'Email' ) . ( $req ? ' <span class="required">*</span>' : '' ) . '</label> ' . + '<input id="email" name="email" ' . ( $html5 ? 'type="email"' : 'type="text"' ) . ' value="' . esc_attr( $commenter['comment_author_email'] ) . '" size="30" maxlength="100" aria-describedby="email-notes"' . $html_req . ' /></p>', + 'url' => '<p class="comment-form-url"><label for="url">' . __( 'Website' ) . '</label> ' . + '<input id="url" name="url" ' . ( $html5 ? 'type="url"' : 'type="text"' ) . ' value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" maxlength="200" /></p>', + 'cookies' => '<p class="comment-form-cookies-consent"><input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes"' . $consent . ' />' . + '<label for="wp-comment-cookies-consent">' . __( 'Save my name, email, and website in this browser for the next time I comment.' ) . '</label></p>', ); $required_text = sprintf( ' ' . __('Required fields are marked %s'), '<span class="required">*</span>' ); @@ -2216,7 +2218,7 @@ function comment_form( $args = array(), $post_id = null ) { $fields = apply_filters( 'comment_form_default_fields', $fields ); $defaults = array( 'fields' => $fields, - 'comment_field' => '<p class="comment-form-comment"><label for="comment">' . _x( 'Comment', 'noun' ) . '</label> <textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" aria-required="true" required="required"></textarea></p>', + 'comment_field' => '<p class="comment-form-comment"><label for="comment">' . _x( 'Comment', 'noun' ) . '</label> <textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" required="required"></textarea></p>', /** This filter is documented in wp-includes/link-template.php */ 'must_log_in' => '<p class="must-log-in">' . sprintf( /* translators: %s: login URL */ diff --git a/wp-includes/comment.php b/wp-includes/comment.php index 07fed8100..6c0a5d571 100644 --- a/wp-includes/comment.php +++ b/wp-includes/comment.php @@ -522,14 +522,28 @@ function wp_queue_comments_for_comment_meta_lazyload( $comments ) { * Sets the cookies used to store an unauthenticated commentator's identity. Typically used * to recall previous comments by this commentator that are still held in moderation. * - * @param WP_Comment $comment Comment object. - * @param object $user Comment author's object. - * * @since 3.4.0 + * @since 4.9.6 The `$cookies_consent` parameter was added. + * + * @param WP_Comment $comment Comment object. + * @param WP_User $user Comment author's user object. The user may not exist. + * @param boolean $cookies_consent Optional. Comment author's consent to store cookies. Default true. */ -function wp_set_comment_cookies($comment, $user) { - if ( $user->exists() ) +function wp_set_comment_cookies( $comment, $user, $cookies_consent = true ) { + // If the user already exists, or the user opted out of cookies, don't set cookies. + if ( $user->exists() ) { return; + } + + if ( false === $cookies_consent ) { + // Remove any existing cookies. + $past = time() - YEAR_IN_SECONDS; + setcookie( 'comment_author_' . COOKIEHASH, ' ', $past, COOKIEPATH, COOKIE_DOMAIN ); + setcookie( 'comment_author_email_' . COOKIEHASH, ' ', $past, COOKIEPATH, COOKIE_DOMAIN ); + setcookie( 'comment_author_url_' . COOKIEHASH, ' ', $past, COOKIEPATH, COOKIE_DOMAIN ); + + return; + } /** * Filters the lifetime of the comment cookie in seconds. @@ -538,11 +552,11 @@ function wp_set_comment_cookies($comment, $user) { * * @param int $seconds Comment cookie lifetime. Default 30000000. */ - $comment_cookie_lifetime = apply_filters( 'comment_cookie_lifetime', 30000000 ); + $comment_cookie_lifetime = time() + apply_filters( 'comment_cookie_lifetime', 30000000 ); $secure = ( 'https' === parse_url( home_url(), PHP_URL_SCHEME ) ); - setcookie( 'comment_author_' . COOKIEHASH, $comment->comment_author, time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN, $secure ); - setcookie( 'comment_author_email_' . COOKIEHASH, $comment->comment_author_email, time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN, $secure ); - setcookie( 'comment_author_url_' . COOKIEHASH, esc_url($comment->comment_author_url), time() + $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN, $secure ); + setcookie( 'comment_author_' . COOKIEHASH, $comment->comment_author, $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN, $secure ); + setcookie( 'comment_author_email_' . COOKIEHASH, $comment->comment_author_email, $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN, $secure ); + setcookie( 'comment_author_url_' . COOKIEHASH, esc_url( $comment->comment_author_url ), $comment_cookie_lifetime, COOKIEPATH, COOKIE_DOMAIN, $secure ); } /** @@ -3145,3 +3159,230 @@ function wp_handle_comment_submission( $comment_data ) { return get_comment( $comment_id ); } + +/** + * Registers the personal data exporter for comments. + * + * @since 4.9.6 + * + * @param array $exporters An array of personal data exporters. + * @return array $exporters An array of personal data exporters. + */ +function wp_register_comment_personal_data_exporter( $exporters ) { + $exporters['wordpress-comments'] = array( + 'exporter_friendly_name' => __( 'WordPress Comments' ), + 'callback' => 'wp_comments_personal_data_exporter', + ); + + return $exporters; +} + +/** + * Finds and exports personal data associated with an email address from the comments table. + * + * @since 4.9.6 + * + * @param string $email_address The comment author email address. + * @param int $page Comment page. + * @return array $return An array of personal data. + */ +function wp_comments_personal_data_exporter( $email_address, $page = 1 ) { + // Limit us to 500 comments at a time to avoid timing out. + $number = 500; + $page = (int) $page; + + $data_to_export = array(); + + $comments = get_comments( + array( + 'author_email' => $email_address, + 'number' => $number, + 'paged' => $page, + 'order_by' => 'comment_ID', + 'order' => 'ASC', + 'update_comment_meta_cache' => false, + ) + ); + + $comment_prop_to_export = array( + 'comment_author' => __( 'Comment Author' ), + 'comment_author_email' => __( 'Comment Author Email' ), + 'comment_author_url' => __( 'Comment Author URL' ), + 'comment_author_IP' => __( 'Comment Author IP' ), + 'comment_agent' => __( 'Comment Author User Agent' ), + 'comment_date' => __( 'Comment Date' ), + 'comment_content' => __( 'Comment Content' ), + 'comment_link' => __( 'Comment URL' ), + ); + + foreach ( (array) $comments as $comment ) { + $comment_data_to_export = array(); + + foreach ( $comment_prop_to_export as $key => $name ) { + $value = ''; + + switch ( $key ) { + case 'comment_author': + case 'comment_author_email': + case 'comment_author_url': + case 'comment_author_IP': + case 'comment_agent': + case 'comment_date': + $value = $comment->{$key}; + break; + + case 'comment_content': + $value = get_comment_text( $comment->comment_ID ); + break; + + case 'comment_link': + $value = get_comment_link( $comment->comment_ID ); + $value = sprintf( + '<a href="%s" target="_blank" rel="noreferrer noopener">%s</a>', + esc_url( $value ), + esc_html( $value ) + ); + break; + } + + if ( ! empty( $value ) ) { + $comment_data_to_export[] = array( + 'name' => $name, + 'value' => $value, + ); + } + } + + $data_to_export[] = array( + 'group_id' => 'comments', + 'group_label' => __( 'Comments' ), + 'item_id' => "comment-{$comment->comment_ID}", + 'data' => $comment_data_to_export, + ); + } + + $done = count( $comments ) < $number; + + return array( + 'data' => $data_to_export, + 'done' => $done, + ); +} + +/** + * Registers the personal data eraser for comments. + * + * @since 4.9.6 + * + * @param array $erasers An array of personal data erasers. + * @return array $erasers An array of personal data erasers. + */ +function wp_register_comment_personal_data_eraser( $erasers ) { + $erasers['wordpress-comments'] = array( + 'eraser_friendly_name' => __( 'WordPress Comments' ), + 'callback' => 'wp_comments_personal_data_eraser', + ); + + return $erasers; +} + +/** + * Erases personal data associated with an email address from the comments table. + * + * @since 4.9.6 + * + * @param string $email_address The comment author email address. + * @param int $page Comment page. + * @return array + */ +function wp_comments_personal_data_eraser( $email_address, $page = 1 ) { + global $wpdb; + + if ( empty( $email_address ) ) { + return array( + 'items_removed' => false, + 'items_retained' => false, + 'messages' => array(), + 'done' => true, + ); + } + + // Limit us to 500 comments at a time to avoid timing out. + $number = 500; + $page = (int) $page; + $items_removed = false; + $items_retained = false; + + $comments = get_comments( + array( + 'author_email' => $email_address, + 'number' => $number, + 'paged' => $page, + 'order_by' => 'comment_ID', + 'order' => 'ASC', + 'include_unapproved' => true, + ) + ); + + $anon_author = __( 'Anonymous' ); + $messages = array(); + + foreach ( (array) $comments as $comment ) { + $anonymized_comment = array(); + $anonymized_comment['comment_agent'] = ''; + $anonymized_comment['comment_author'] = $anon_author; + $anonymized_comment['comment_author_email'] = wp_privacy_anonymize_data( 'email', $comment->comment_author_email ); + $anonymized_comment['comment_author_IP'] = wp_privacy_anonymize_data( 'ip', $comment->comment_author_IP ); + $anonymized_comment['comment_author_url'] = wp_privacy_anonymize_data( 'url', $comment->comment_author_url ); + $anonymized_comment['user_id'] = 0; + + $comment_id = (int) $comment->comment_ID; + + /** + * Filters whether to anonymize the comment. + * + * @since 4.9.6 + * + * @param bool|string Whether to apply the comment anonymization (bool). + * Custom prevention message (string). Default true. + * @param WP_Comment $comment WP_Comment object. + * @param array $anonymized_comment Anonymized comment data. + */ + $anon_message = apply_filters( 'wp_anonymize_comment', true, $comment, $anonymized_comment ); + + if ( true !== $anon_message ) { + if ( $anon_message && is_string( $anon_message ) ) { + $messages[] = esc_html( $anon_message ); + } else { + /* translators: %d: Comment ID */ + $messages[] = sprintf( __( 'Comment %d contains personal data but could not be anonymized.' ), $comment_id ); + } + + $items_retained = true; + + continue; + } + + $args = array( + 'comment_ID' => $comment_id, + ); + + $updated = $wpdb->update( $wpdb->comments, $anonymized_comment, $args ); + + if ( $updated ) { + $items_removed = true; + clean_comment_cache( $comment_id ); + } else { + $items_retained = true; + } + } + + $done = count( $comments ) < $number; + + return array( + 'items_removed' => $items_removed, + 'items_retained' => $items_retained, + 'messages' => $messages, + 'done' => $done, + ); +} diff --git a/wp-includes/compat.php b/wp-includes/compat.php index 7e37c3076..596da9770 100644 --- a/wp-includes/compat.php +++ b/wp-includes/compat.php @@ -497,3 +497,43 @@ endif; if ( ! function_exists( 'spl_autoload_register' ) ) { require_once ABSPATH . WPINC . '/spl-autoload-compat.php'; } + +if ( ! function_exists( 'is_countable' ) ) { + /** + * Polyfill for is_countable() function added in PHP 7.3. + * + * Verify that the content of a variable is an array or an object + * implementing the Countable interface. + * + * @since 4.9.6 + * + * @param mixed $var The value to check. + * + * @return bool True if `$var` is countable, false otherwise. + */ + function is_countable( $var ) { + return ( is_array( $var ) + || $var instanceof Countable + || $var instanceof SimpleXMLElement + || $var instanceof ResourceBundle + ); + } +} + +if ( ! function_exists( 'is_iterable' ) ) { + /** + * Polyfill for is_iterable() function added in PHP 7.1. + * + * Verify that the content of a variable is an array or an object + * implementing the Traversable interface. + * + * @since 4.9.6 + * + * @param mixed $var The value to check. + * + * @return bool True if `$var` is iterable, false otherwise. + */ + function is_iterable( $var ) { + return ( is_array( $var ) || $var instanceof Traversable ); + } +} diff --git a/wp-includes/css/editor-rtl.css b/wp-includes/css/editor-rtl.css index 44846c8a8..b4b1d3c86 100644 --- a/wp-includes/css/editor-rtl.css +++ b/wp-includes/css/editor-rtl.css @@ -4,6 +4,10 @@ /* TinyMCE widgets/containers */ +.mce-tinymce { + box-shadow: none; +} + .mce-container, .mce-container *, .mce-widget, @@ -25,6 +29,7 @@ opacity: 0.7; filter: alpha(opacity=70); transition: none; + background: #000; } .mce-window { @@ -216,6 +221,7 @@ div.mce-tab:focus { .mce-menu-item { border: none; margin-bottom: 2px; + padding: 6px 12px 6px 15px; } .mce-menu-has-icons i.mce-ico { @@ -410,6 +416,14 @@ div.mce-path { box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.3 ); } +.mce-btn.mce-active, +.mce-btn.mce-active button, +.mce-btn.mce-active:hover button, +.mce-btn.mce-active i, +.mce-btn.mce-active:hover i { + color: inherit; +} + .mce-toolbar .mce-btn-group .mce-btn.mce-active:hover, .mce-toolbar .mce-btn-group .mce-btn.mce-active:focus { border-color: #23282d; @@ -562,12 +576,16 @@ div.mce-path { color: #fff; } -.mce-menu .mce-menu-item-preview.mce-active { - border-right: none; -} - -.mce-menu .mce-menu-item-preview.mce-active .mce-text { - color: #fff; +.mce-menu-item:hover .mce-text, +.mce-menu-item:focus .mce-text, +.mce-menu-item:hover .mce-ico, +.mce-menu-item:focus .mce-ico, +.mce-menu-item:hover .mce-menu-shortcut, +.mce-menu-item:focus .mce-menu-shortcut, +.mce-menu-item.mce-active .mce-menu-shortcut, +.mce-menu-item.mce-disabled:hover .mce-text, +.mce-menu-item.mce-disabled:hover .mce-ico { + color: inherit; } .mce-menu .mce-menu-item.mce-disabled { diff --git a/wp-includes/css/editor-rtl.min.css b/wp-includes/css/editor-rtl.min.css index 2c1ca6b7e..12e2d3407 100644 --- a/wp-includes/css/editor-rtl.min.css +++ b/wp-includes/css/editor-rtl.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -#wp-link-wrap,.mce-window{box-shadow:0 3px 6px rgba(0,0,0,.3)}.mce-window .mce-wp-help *,.wp-editor-area{box-sizing:border-box}.mce-container,.mce-container *,.mce-widget,.mce-widget *{color:inherit;font-family:inherit}.mce-container .mce-monospace,.mce-widget .mce-monospace{font-family:Consolas,Monaco,monospace;font-size:13px;line-height:150%}#mce-modal-block,#mce-modal-block.mce-fade{opacity:.7;filter:alpha(opacity=70);transition:none}.mce-window{border-radius:0;-webkit-font-smoothing:subpixel-antialiased;transition:none}.mce-window .mce-container-body.mce-abs-layout{overflow:visible}.mce-window .mce-window-head{background:#fcfcfc;border-bottom:1px solid #ddd;padding:0;min-height:36px}.mce-window .mce-window-head .mce-title{color:#444;font-size:18px;font-weight:600;line-height:36px;margin:0;padding:0 16px 0 36px}.mce-window .mce-window-head .mce-close,.mce-window-head .mce-close .mce-i-remove{color:transparent;top:0;left:0;width:36px;height:36px;padding:0;line-height:36px;text-align:center}.mce-window-head .mce-close .mce-i-remove:before{font:400 20px/36px dashicons;text-align:center;color:#666;width:36px;height:36px;display:block}.mce-window-head .mce-close:focus .mce-i-remove:before,.mce-window-head .mce-close:hover .mce-i-remove:before{color:#00a0d2}.mce-window-head .mce-close:focus .mce-i-remove,div.mce-tab:focus{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.mce-window .mce-window-head .mce-dragh{width:calc(100% - 36px)}.mce-window .mce-foot{border-top:1px solid #ddd}#wp-link .query-results,.mce-checkbox i.mce-i-checkbox,.mce-textbox{border:1px solid #ddd;border-radius:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.07);transition:.05s all ease-in-out}#wp-link .query-results:focus,.mce-checkbox:focus i.mce-i-checkbox,.mce-textbox.mce-focus,.mce-textbox:focus{border-color:#5b9dd9;box-shadow:0 0 2px rgba(30,140,190,.8)}.mce-window .mce-wp-help{height:360px;width:460px;overflow:auto}.mce-window .mce-wp-help>.mce-container-body{width:auto!important}.mce-window .wp-editor-help{padding:10px 20px 0 10px}.mce-window .wp-editor-help h2,.mce-window .wp-editor-help p{margin:8px 0;white-space:normal;font-size:14px;font-weight:400}.mce-window .wp-editor-help table{width:100%;margin-bottom:20px}.mce-window .wp-editor-help table.wp-help-single{margin:0 8px 20px}.mce-window .wp-editor-help table.fixed{table-layout:fixed}.mce-window .wp-editor-help table.fixed td:nth-child(odd),.mce-window .wp-editor-help table.fixed th:nth-child(odd){width:12%}.mce-window .wp-editor-help table.fixed td:nth-child(even),.mce-window .wp-editor-help table.fixed th:nth-child(even){width:38%}.mce-window .wp-editor-help table.fixed th:nth-child(odd){padding:5px 0 0}.mce-window .wp-editor-help td,.mce-window .wp-editor-help th{font-size:13px;padding:5px;vertical-align:middle;word-wrap:break-word;white-space:normal}.mce-window .wp-editor-help th{font-weight:600;padding-bottom:0}.mce-window .wp-editor-help kbd{font-family:monospace;padding:2px 7px 3px;font-weight:600;margin:0;background:#eaeaea;background:rgba(0,0,0,.08)}.mce-window .wp-help-th-center td:nth-child(odd),.mce-window .wp-help-th-center th:nth-child(odd){text-align:center}.mce-floatpanel.mce-popover,.mce-menu{border-color:rgba(0,0,0,.15);border-radius:0;box-shadow:0 3px 5px rgba(0,0,0,.2)}.mce-floatpanel.mce-popover.mce-bottom,.mce-menu{margin-top:2px}.mce-floatpanel .mce-arrow{display:none}.mce-menu .mce-container-body{min-width:160px}.mce-menu-item{border:none;margin-bottom:2px}.mce-menu-has-icons i.mce-ico{line-height:20px}div.mce-panel{border:0;background:#fff}.mce-panel.mce-menu{border:1px solid #ddd}div.mce-tab{line-height:13px}div.mce-toolbar-grp{border-bottom:1px solid #ddd;background:#f5f5f5;padding:0;position:relative}div.mce-inline-toolbar-grp{border:1px solid #a0a5aa;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.15);box-sizing:border-box;margin-bottom:8px;position:absolute;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;max-width:98%;z-index:100100}div.mce-inline-toolbar-grp>div.mce-stack-layout{padding:1px}div.mce-inline-toolbar-grp.mce-arrow-up{margin-bottom:0;margin-top:8px}div.mce-inline-toolbar-grp:after,div.mce-inline-toolbar-grp:before{position:absolute;right:50%;display:block;width:0;height:0;border-style:solid;border-color:transparent;content:""}.mce-menu.mce-menu-align .mce-menu-item-normal,.quicktags-toolbar,.wp-editor-tools,.wp-editor-wrap,.wp-switch-editor{position:relative}div.mce-inline-toolbar-grp.mce-arrow-up:before{top:-9px;border-bottom-color:#a0a5aa;border-width:0 9px 9px;margin-right:-9px}div.mce-inline-toolbar-grp.mce-arrow-down:before{bottom:-9px;border-top-color:#a0a5aa;border-width:9px 9px 0;margin-right:-9px}div.mce-inline-toolbar-grp.mce-arrow-up:after{top:-8px;border-bottom-color:#f5f5f5;border-width:0 8px 8px;margin-right:-8px}div.mce-inline-toolbar-grp.mce-arrow-down:after{bottom:-8px;border-top-color:#f5f5f5;border-width:8px 8px 0;margin-right:-8px}div.mce-inline-toolbar-grp.mce-arrow-left:after,div.mce-inline-toolbar-grp.mce-arrow-left:before{margin:0}div.mce-inline-toolbar-grp.mce-arrow-left:before{right:20px}div.mce-inline-toolbar-grp.mce-arrow-left:after{right:21px}div.mce-inline-toolbar-grp.mce-arrow-right:after,div.mce-inline-toolbar-grp.mce-arrow-right:before{right:auto;margin:0}div.mce-inline-toolbar-grp.mce-arrow-right:before{left:20px}div.mce-inline-toolbar-grp.mce-arrow-right:after{left:21px}div.mce-inline-toolbar-grp.mce-arrow-full{left:0}div.mce-inline-toolbar-grp.mce-arrow-full>div{width:100%;overflow-x:auto}div.mce-toolbar-grp>div{padding:3px}.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-left:32px}.mce-toolbar .mce-btn-group{margin:0}div.mce-statusbar{border-top:1px solid #e5e5e5}div.mce-path{padding:2px 10px;margin:0}.mce-path,.mce-path .mce-divider,.mce-path-item{font-size:12px}.mce-toolbar .mce-btn,.qt-dfw{border-color:transparent;background:0 0;box-shadow:none;text-shadow:none;cursor:pointer}.mce-btn .mce-txt{direction:inherit;text-align:inherit}.mce-toolbar .mce-btn-group .mce-btn,.qt-dfw{border:1px solid transparent;margin:2px;border-radius:2px}.mce-toolbar .mce-btn-group .mce-btn:focus,.mce-toolbar .mce-btn-group .mce-btn:hover,.qt-dfw:focus,.qt-dfw:hover{background:#fafafa;border-color:#555d66;color:#23282d;box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);outline:0}.mce-toolbar .mce-btn-group .mce-btn.mce-active,.mce-toolbar .mce-btn-group .mce-btn:active,.qt-dfw.active{background:#ebebeb;border-color:#555d66;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.3)}.mce-toolbar .mce-btn-group .mce-btn.mce-active:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-active:hover{border-color:#23282d}.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:hover{color:#a0a5aa;background:0 0;border-color:#ddd;text-shadow:0 1px 0 #fff;box-shadow:none}.mce-menu .mce-menu-item-preview.mce-active .mce-text,.mce-toolbar .mce-btn-group .mce-btn.mce-primary .mce-ico{color:#fff}.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus{border-color:#555d66}.mce-toolbar .mce-btn-group .mce-first,.mce-toolbar .mce-btn-group .mce-last{border-color:transparent}.mce-toolbar .mce-btn button,.qt-dfw{padding:2px 3px;line-height:normal}.mce-toolbar .mce-listbox button{font-size:13px;line-height:20px;padding-right:6px;padding-left:20px}.mce-toolbar .mce-btn i{text-shadow:none}.mce-toolbar .mce-btn-group>div{white-space:normal}.mce-toolbar .mce-colorbutton .mce-open{border-left:0}.mce-toolbar .mce-colorbutton .mce-preview{margin:0;padding:0;top:auto;bottom:2px;right:3px;height:3px;width:20px;background:#555d66}.mce-toolbar .mce-btn-group .mce-btn.mce-primary{min-width:0;background:#0085ba;border-color:#0073aa #006799 #006799;box-shadow:0 1px 0 #006799;color:#fff;text-decoration:none;text-shadow:none}.mce-toolbar .mce-btn-group .mce-btn.mce-primary button{padding:2px 3px 1px}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-primary:hover{background:#008ec2;border-color:#006799;color:#fff}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:focus{box-shadow:0 0 1px 1px #33b3db}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:active{background:#0073aa;border-color:#006799;box-shadow:inset 0 2px 0 #006799}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox{border-radius:0;direction:rtl;background:#fff;border:1px solid #ddd;box-shadow:inset 0 1px 1px -1px rgba(0,0,0,.2)}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:hover{border-color:#b4b9be}.mce-panel .mce-btn i.mce-caret{border-top:6px solid #555d66;margin-right:2px;margin-left:2px}.mce-listbox i.mce-caret{left:4px}.mce-panel .mce-btn:focus i.mce-caret,.mce-panel .mce-btn:hover i.mce-caret{border-top-color:#23282d}.mce-panel .mce-active i.mce-caret{border-top:0;border-bottom:6px solid #23282d;margin-top:7px}.mce-listbox.mce-active i.mce-caret{margin-top:-3px}.mce-toolbar .mce-splitbtn:hover .mce-open{border-left-color:transparent}.mce-toolbar .mce-splitbtn .mce-open.mce-active{background:0 0;outline:0}.mce-menu .mce-menu-item-normal.mce-active,.mce-menu .mce-menu-item-preview.mce-active,.mce-menu .mce-menu-item.mce-selected,.mce-menu .mce-menu-item:focus,.mce-menu .mce-menu-item:hover{background:#0073aa;color:#fff}.mce-menu .mce-menu-item-preview.mce-active{border-right:none}.mce-menu .mce-menu-item.mce-disabled{cursor:default}.mce-menu .mce-menu-item.mce-disabled:hover{background:#ccc}div.mce-menubar{border-color:#e5e5e5;background:#fff;border-width:0 0 1px}.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus,.mce-menubar .mce-menubtn:hover{border-color:transparent;background:0 0}.mce-menubar .mce-menubtn:focus{color:#124964;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.mce-menu-item-sep:hover,div.mce-menu .mce-menu-item-sep{border-bottom:1px solid #ddd;height:0;margin:5px 0}.mce-menubtn span{margin-left:0;padding-right:3px}.mce-menu-has-icons i.mce-ico:before{margin-right:-2px}.mce-menu.mce-menu-align .mce-menu-shortcut{bottom:.6em;font-size:.9em}.mce-primary button,.mce-primary button i{text-align:center;color:#fff;text-shadow:none;padding:0;line-height:26px}.mce-window .mce-btn{color:#555;background:#f7f7f7;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0;cursor:pointer;border:1px solid #ccc;-webkit-appearance:none;border-radius:3px;white-space:nowrap;box-shadow:0 1px 0 #ccc}.mce-window .mce-btn::-moz-focus-inner{border-width:0;border-style:none;padding:0}.mce-window .mce-btn:focus,.mce-window .mce-btn:hover{background:#fafafa;border-color:#999;color:#23282d}.mce-window .mce-btn:focus{border-color:#5b9dd9;box-shadow:0 0 3px rgba(0,115,170,.8)}.mce-window .mce-btn:active{background:#eee;border-color:#999;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);-webkit-transform:translateY(1px);transform:translateY(1px)}.mce-window .mce-btn.mce-disabled{color:#a0a5aa!important;border-color:#ddd!important;background:#f7f7f7!important;box-shadow:none!important;text-shadow:0 1px 0 #fff!important;cursor:default;-webkit-transform:none!important;transform:none!important}.mce-window .mce-btn.mce-primary{background:#0085ba;border-color:#0073aa #006799 #006799;box-shadow:0 1px 0 #006799;color:#fff;text-decoration:none;text-shadow:0 -1px 1px #006799,-1px 0 1px #006799,0 1px 1px #006799,1px 0 1px #006799}.mce-window .mce-btn.mce-primary:focus,.mce-window .mce-btn.mce-primary:hover{background:#008ec2;border-color:#006799;color:#fff}.mce-window .mce-btn.mce-primary:focus{box-shadow:0 1px 0 #0073aa,0 0 2px 1px #33b3db}.mce-window .mce-btn.mce-primary:active{background:#0073aa;border-color:#006799;box-shadow:inset 0 2px 0 #006799;vertical-align:top}.mce-window .mce-btn.mce-primary.mce-disabled{color:#66c6e4!important;background:#008ec2!important;border-color:#007cb2!important;box-shadow:none!important;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important;cursor:default}.mce-toolbar .mce-ico,.qt-dfw{text-shadow:none;text-align:center}.mce-menubtn.mce-fixed-width span{overflow-x:hidden;text-overflow:ellipsis;width:82px}.mce-charmap{margin:3px}.mce-charmap td{padding:0;border-color:#ddd;cursor:pointer}.mce-charmap td:hover{background:#f3f3f3}.mce-charmap td div{width:18px;height:22px;line-height:22px}.mce-toolbar .mce-btn .mce-open,.qt-dfw{line-height:20px}.mce-tooltip{margin-top:2px}.rtl .mce-tooltip.wp-hide-mce-tooltip{display:none!important}.mce-tooltip-inner{border-radius:3px;box-shadow:0 3px 5px rgba(0,0,0,.2);color:#fff;font-size:12px}.mce-ico{font-family:tinymce,Arial}.mce-btn-small .mce-ico{font-family:tinymce-small,Arial}.mce-toolbar .mce-ico{color:#555d66;line-height:20px;width:20px;height:20px;margin:0;padding:0}.qt-dfw{color:#555d66;width:28px;height:26px}.mce-toolbar .mce-btn.mce-active .mce-open,.mce-toolbar .mce-btn:focus .mce-open,.mce-toolbar .mce-btn:hover .mce-open{border-right-color:#23282d}div.mce-notification{right:10%!important;left:10%}.mce-notification button.mce-close{left:6px;top:3px;font-weight:400;color:#555d66}.mce-notification button.mce-close:focus,.mce-notification button.mce-close:hover{color:#000}i.mce-i-aligncenter,i.mce-i-alignjustify,i.mce-i-alignleft,i.mce-i-alignright,i.mce-i-backcolor,i.mce-i-blockquote,i.mce-i-bold,i.mce-i-bullist,i.mce-i-charmap,i.mce-i-dashicon,i.mce-i-dfw,i.mce-i-forecolor,i.mce-i-fullscreen,i.mce-i-help,i.mce-i-hr,i.mce-i-indent,i.mce-i-italic,i.mce-i-link,i.mce-i-ltr,i.mce-i-numlist,i.mce-i-outdent,i.mce-i-pastetext,i.mce-i-pasteword,i.mce-i-redo,i.mce-i-remove,i.mce-i-removeformat,i.mce-i-spellchecker,i.mce-i-strikethrough,i.mce-i-underline,i.mce-i-undo,i.mce-i-unlink,i.mce-i-wp-media-library,i.mce-i-wp_adv,i.mce-i-wp_code,i.mce-i-wp_fullscreen,i.mce-i-wp_help,i.mce-i-wp_more,i.mce-i-wp_page{font:400 20px/1 dashicons;padding:0 0 0 2px;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin-right:-2px}.qt-dfw{font:400 20px/1 dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}i.mce-i-bold:before{content:"\f200"}i.mce-i-italic:before{content:"\f201"}i.mce-i-bullist:before{content:"\f203"}i.mce-i-numlist:before{content:"\f204"}i.mce-i-blockquote:before{content:"\f205"}i.mce-i-alignleft:before{content:"\f206"}i.mce-i-aligncenter:before{content:"\f207"}i.mce-i-alignright:before{content:"\f208"}i.mce-i-link:before{content:"\f103"}i.mce-i-unlink:before{content:"\f225"}i.mce-i-wp_more:before{content:"\f209"}i.mce-i-strikethrough:before{content:"\f224"}i.mce-i-spellchecker:before{content:"\f210"}.qt-dfw:before,i.mce-i-dfw:before,i.mce-i-fullscreen:before,i.mce-i-wp_fullscreen:before{content:"\f211"}i.mce-i-wp_adv:before{content:"\f212"}i.mce-i-underline:before{content:"\f213"}i.mce-i-alignjustify:before{content:"\f214"}i.mce-i-backcolor:before,i.mce-i-forecolor:before{content:"\f215"}i.mce-i-pastetext:before{content:"\f217"}i.mce-i-removeformat:before{content:"\f218"}i.mce-i-charmap:before{content:"\f220"}i.mce-i-outdent:before{content:"\f221"}i.mce-i-indent:before{content:"\f222"}i.mce-i-undo:before{content:"\f171"}i.mce-i-redo:before{content:"\f172"}i.mce-i-help:before,i.mce-i-wp_help:before{content:"\f223"}i.mce-i-wp-media-library:before{content:"\f104"}i.mce-i-ltr:before{content:"\f320"}i.mce-i-wp_page:before{content:"\f105"}i.mce-i-hr:before{content:"\f460"}i.mce-i-remove:before{content:"\f158"}i.mce-i-wp_code:before{content:"\f475"}.rtl i.mce-i-outdent:before{content:"\f222"}.rtl i.mce-i-indent:before{content:"\f221"}.wp-editor-tools{z-index:1}.wp-editor-tools:after{clear:both;content:"";display:table}.wp-editor-container{clear:both;border:1px solid #e5e5e5}.wp-editor-area{font-family:Consolas,Monaco,monospace;font-size:13px;padding:10px;margin:1px 0 0;line-height:150%;border:0;outline:0;display:block;resize:vertical}.rtl .wp-editor-area{font-family:Tahoma,Monaco,monospace}.locale-he-il .wp-editor-area{font-family:Arial,Monaco,monospace}.wp-editor-container textarea.wp-editor-area{width:100%;margin:0;box-shadow:none}.wp-editor-tabs{float:left}.wp-switch-editor{float:right;box-sizing:content-box;top:1px;background:#ebebeb;color:#666;cursor:pointer;font-size:13px;line-height:19px;height:20px;margin:5px 5px 0 0;padding:3px 8px 4px;border:1px solid #e5e5e5}.wp-switch-editor:focus{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);outline:0;color:#23282d}.html-active .switch-html:focus,.tmce-active .switch-tmce:focus,.wp-switch-editor:active{box-shadow:none}.wp-switch-editor:active{background-color:#f5f5f5;box-shadow:none}.js .tmce-active .wp-editor-area{color:#fff}.tmce-active .quicktags-toolbar{display:none}.html-active .switch-html,.tmce-active .switch-tmce{background:#f5f5f5;color:#555;border-bottom-color:#f5f5f5}.wp-media-buttons{float:right}.wp-media-buttons .button{margin-left:5px;margin-bottom:4px;padding-right:7px;padding-left:7px}.wp-media-buttons .button:active{position:relative;top:1px;margin-top:-1px;margin-bottom:1px}.wp-media-buttons .insert-media{padding-right:5px}.wp-media-buttons a{text-decoration:none;color:#444;font-size:12px}.wp-media-buttons img{padding:0 4px;vertical-align:middle}.wp-media-buttons span.wp-media-buttons-icon{display:inline-block;width:18px;height:18px;vertical-align:text-top;margin:0 2px}.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font:400 18px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f104"}.quicktags-toolbar{padding:3px;border-bottom:1px solid #ddd;background:#f5f5f5;min-height:30px}.has-dfw .quicktags-toolbar{padding-left:35px}.wp-core-ui .quicktags-toolbar input.button.button-small{margin:2px}.quicktags-toolbar input[value=link]{text-decoration:underline}.quicktags-toolbar input[value=del]{text-decoration:line-through}.quicktags-toolbar input[value="i"]{font-style:italic}.quicktags-toolbar input[value="b"]{font-weight:600}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw,.qt-dfw{position:absolute;top:0;left:0;margin:5px 0 0 5px}.qt-fullscreen{position:static;margin:2px}@media screen and (max-width:782px){.mce-toolbar .mce-btn button,.qt-dfw{padding:6px 7px}.mce-toolbar .mce-btn-group .mce-btn.mce-primary button{padding:6px 7px 5px}.mce-toolbar .mce-btn-group .mce-btn{margin:1px}.qt-dfw{width:36px;height:34px}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw{margin:4px 0 0 4px}.mce-toolbar .mce-colorbutton .mce-preview{right:8px;bottom:6px}.mce-window .mce-btn{padding:2px 0}.has-dfw .quicktags-toolbar,.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-left:40px}}@media screen and (min-width:782px){.wp-core-ui .quicktags-toolbar input.button.button-small{font-size:12px;height:26px;line-height:24px}}#wp_editbtns,#wp_gallerybtns{padding:2px;position:absolute;display:none;z-index:100020}#wp_delgallery,#wp_delimgbtn,#wp_editgallery,#wp_editimgbtn{border-color:#999;background-color:#eee;margin:2px;padding:2px;border-width:1px;border-style:solid;border-radius:3px}#wp_delgallery:hover,#wp_delimgbtn:hover,#wp_editgallery:hover,#wp_editimgbtn:hover{border-color:#555;background-color:#ccc}#wp-link-wrap{display:none;background-color:#fff;width:500px;overflow:hidden;margin-right:-250px;position:fixed;top:50%;right:50%;z-index:100105;transition:height .2s,margin-top .2s;height:500px;margin-top:-250px}#wp-link-backdrop{display:none;position:fixed;top:0;right:0;left:0;bottom:0;min-height:360px;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:100100}#wp-link{position:relative;height:100%}#wp-link-wrap .wp-link-text-field{display:none}#wp-link-wrap.has-text-field .wp-link-text-field{display:block}#link-modal-title{background:#fcfcfc;border-bottom:1px solid #ddd;height:36px;font-size:18px;font-weight:600;line-height:36px;margin:0;padding:0 16px 0 36px}#wp-link-close{color:#666;padding:0;position:absolute;top:0;left:0;width:36px;height:36px;text-align:center;background:0 0;border:none;cursor:pointer}#wp-link-close:before{font:400 20px/36px dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:36px;height:36px;content:"\f158"}#wp-link-close:focus,#wp-link-close:hover{color:#00a0d2}#wp-link-close:focus{outline:0;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#wp-link-wrap #link-selector{-webkit-overflow-scrolling:touch;padding:0 16px;position:absolute;top:37px;right:0;left:0;bottom:44px}#wp-link ol,#wp-link ul{list-style:none;margin:0;padding:0}#wp-link input[type=text]{box-sizing:border-box}#wp-link #link-options{padding:8px 0 12px}#wp-link p.howto{margin:3px 0}#wp-link p.howto a{text-decoration:none;color:inherit}#wp-link label input[type=text]{margin-top:5px;width:70%}#wp-link #link-options label span,#wp-link #search-panel label span.search-label{display:inline-block;width:80px;text-align:left;padding-left:5px;max-width:24%;vertical-align:middle;word-wrap:break-word}#wp-link .link-search-field{float:right;width:250px;max-width:70%}#wp-link .link-search-wrapper{margin:5px 0 9px;display:block;overflow:hidden}#wp-link .link-search-wrapper span{float:right;margin-top:4px}#wp-link .link-search-wrapper .spinner{margin-top:5px}#wp-link .link-target{padding:3px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#wp-link .link-target label{max-width:70%}#wp-link .query-results{border:1px solid #dfdfdf;margin:0 0 12px;background:#fff;overflow:auto;position:absolute;right:16px;left:16px;bottom:0;top:166px}.has-text-field #wp-link .query-results{top:200px}#wp-link li{clear:both;margin-bottom:0;border-bottom:1px solid #f1f1f1;color:#32373c;padding:4px 10px 4px 6px;cursor:pointer;position:relative}#wp-link .query-notice,#wp-link li.unselectable{border-bottom:1px solid #dfdfdf}#wp-link .query-notice{padding:0;background-color:#f7fcfe;color:#000}#wp-link .query-notice .query-notice-default,#wp-link .query-notice .query-notice-hint{display:block;padding:6px;border-right:4px solid #00a0d2}#wp-link .unselectable.no-matches-found{padding:0;border-bottom:1px solid #dfdfdf;background-color:#fef7f1}#wp-link .no-matches-found .item-title{display:block;padding:6px;border-right:4px solid #d54e21}#wp-link .query-results em{font-style:normal}#wp-link li:hover{background:#eaf2fa;color:#151515}#wp-link li.unselectable:hover{background:#fff;cursor:auto;color:#32373c}#wp-link li.selected{background:#ddd;color:#32373c}#wp-link li.selected .item-title{font-weight:600}#wp-link li:last-child{border:none}#wp-link .item-title{display:inline-block;width:80%;width:calc(100% - 68px);word-wrap:break-word}#wp-link .item-info{text-transform:uppercase;color:#666;font-size:11px;position:absolute;left:5px;top:5px}#wp-link .river-waiting{display:none;padding:10px 0}#wp-link .submitbox{padding:8px 16px;background:#fcfcfc;border-top:1px solid #ddd;position:absolute;bottom:0;right:0;left:0}#wp-link-cancel{line-height:25px;float:right}#wp-link-update{line-height:23px;float:left}#wp-link-submit{float:left}@media screen and (max-width:782px){#wp-link-wrap{margin-top:-140px}#wp-link-wrap .query-results{top:195px}#wp-link-wrap.has-text-field .query-results{top:235px}#link-selector{padding:0 16px 60px}#wp-link-wrap #link-selector{bottom:52px}#wp-link-cancel{line-height:32px}#wp-link .link-target{padding-top:10px}#wp-link .submitbox .button{margin-bottom:0}}@media screen and (max-width:520px){#wp-link-wrap{width:auto;margin-right:0;right:10px;left:10px;max-width:500px}}@media screen and (max-height:520px){#wp-link-wrap{transition:none;height:auto;margin-top:0;top:10px;bottom:10px}#link-selector{overflow:auto}#search-panel .query-results{position:static}}@media screen and (max-height:290px){#wp-link-wrap{height:auto;margin-top:0;top:10px;bottom:10px}#link-selector{overflow:auto;height:calc(100% - 92px);padding-bottom:2px}#search-panel .query-results{position:static}}div.wp-link-preview{float:right;margin:5px;max-width:694px;overflow:hidden;text-overflow:ellipsis}div.wp-link-preview a{color:#0073aa;text-decoration:underline;transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out;cursor:pointer}div.wp-link-preview a.wplink-url-error{color:#dc3232}div.wp-link-input{float:right;margin:2px;max-width:694px}div.wp-link-input input{width:300px;padding:3px;box-sizing:border-box}.mce-toolbar div.wp-link-input~.mce-btn,.mce-toolbar div.wp-link-preview~.mce-btn{margin:2px 1px}.mce-inline-toolbar-grp .mce-btn-group .mce-btn:last-child{margin-left:2px}.ui-autocomplete.wplink-autocomplete{z-index:100110;max-height:200px;overflow-y:auto;padding:0;margin:0;list-style:none;position:absolute;border:1px solid #5b9dd9;box-shadow:0 1px 2px rgba(30,140,190,.8);background-color:#fff}.ui-autocomplete.wplink-autocomplete li{margin-bottom:0;padding:4px 10px;clear:both;white-space:normal;text-align:right}.ui-autocomplete.wplink-autocomplete li .wp-editor-float-right{float:left}.ui-autocomplete.wplink-autocomplete li.ui-state-focus{background-color:#ddd;cursor:pointer}@media screen and (max-width:782px){div.wp-link-input,div.wp-link-preview{max-width:70%;max-width:calc(100% - 86px)}div.wp-link-preview{margin:8px 5px 8px 0}div.wp-link-input{width:300px}div.wp-link-input input{width:100%;font-size:16px;padding:5px}}.mce-fullscreen{z-index:100010}.rtl .quicktags-toolbar input,.rtl .wp-switch-editor{font-family:Tahoma,sans-serif}.mce-rtl .mce-flow-layout .mce-flow-layout-item>div{direction:rtl}.mce-rtl .mce-listbox i.mce-caret{left:6px}html:lang(he-il) .rtl .quicktags-toolbar input,html:lang(he-il) .rtl .wp-switch-editor{font-family:Arial,sans-serif}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}} \ No newline at end of file +.mce-window .mce-wp-help *,.wp-editor-area{box-sizing:border-box}.mce-tinymce{box-shadow:none}#wp-link-wrap,.mce-window{box-shadow:0 3px 6px rgba(0,0,0,.3)}.mce-container,.mce-container *,.mce-widget,.mce-widget *{color:inherit;font-family:inherit}.mce-container .mce-monospace,.mce-widget .mce-monospace{font-family:Consolas,Monaco,monospace;font-size:13px;line-height:150%}#mce-modal-block,#mce-modal-block.mce-fade{opacity:.7;filter:alpha(opacity=70);transition:none;background:#000}.mce-window{border-radius:0;-webkit-font-smoothing:subpixel-antialiased;transition:none}.mce-window .mce-container-body.mce-abs-layout{overflow:visible}.mce-window .mce-window-head{background:#fcfcfc;border-bottom:1px solid #ddd;padding:0;min-height:36px}.mce-window .mce-window-head .mce-title{color:#444;font-size:18px;font-weight:600;line-height:36px;margin:0;padding:0 16px 0 36px}.mce-window .mce-window-head .mce-close,.mce-window-head .mce-close .mce-i-remove{color:transparent;top:0;left:0;width:36px;height:36px;padding:0;line-height:36px;text-align:center}.mce-window-head .mce-close .mce-i-remove:before{font:400 20px/36px dashicons;text-align:center;color:#666;width:36px;height:36px;display:block}.mce-window-head .mce-close:focus .mce-i-remove:before,.mce-window-head .mce-close:hover .mce-i-remove:before{color:#00a0d2}.mce-window-head .mce-close:focus .mce-i-remove,div.mce-tab:focus{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.mce-window .mce-window-head .mce-dragh{width:calc(100% - 36px)}.mce-window .mce-foot{border-top:1px solid #ddd}#wp-link .query-results,.mce-checkbox i.mce-i-checkbox,.mce-textbox{border:1px solid #ddd;border-radius:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.07);transition:.05s all ease-in-out}#wp-link .query-results:focus,.mce-checkbox:focus i.mce-i-checkbox,.mce-textbox.mce-focus,.mce-textbox:focus{border-color:#5b9dd9;box-shadow:0 0 2px rgba(30,140,190,.8)}.mce-window .mce-wp-help{height:360px;width:460px;overflow:auto}.mce-window .mce-wp-help>.mce-container-body{width:auto!important}.mce-window .wp-editor-help{padding:10px 20px 0 10px}.mce-window .wp-editor-help h2,.mce-window .wp-editor-help p{margin:8px 0;white-space:normal;font-size:14px;font-weight:400}.mce-window .wp-editor-help table{width:100%;margin-bottom:20px}.mce-window .wp-editor-help table.wp-help-single{margin:0 8px 20px}.mce-window .wp-editor-help table.fixed{table-layout:fixed}.mce-window .wp-editor-help table.fixed td:nth-child(odd),.mce-window .wp-editor-help table.fixed th:nth-child(odd){width:12%}.mce-window .wp-editor-help table.fixed td:nth-child(even),.mce-window .wp-editor-help table.fixed th:nth-child(even){width:38%}.mce-window .wp-editor-help table.fixed th:nth-child(odd){padding:5px 0 0}.mce-window .wp-editor-help td,.mce-window .wp-editor-help th{font-size:13px;padding:5px;vertical-align:middle;word-wrap:break-word;white-space:normal}.mce-window .wp-editor-help th{font-weight:600;padding-bottom:0}.mce-window .wp-editor-help kbd{font-family:monospace;padding:2px 7px 3px;font-weight:600;margin:0;background:#eaeaea;background:rgba(0,0,0,.08)}.mce-window .wp-help-th-center td:nth-child(odd),.mce-window .wp-help-th-center th:nth-child(odd){text-align:center}.mce-floatpanel.mce-popover,.mce-menu{border-color:rgba(0,0,0,.15);border-radius:0;box-shadow:0 3px 5px rgba(0,0,0,.2)}.mce-floatpanel.mce-popover.mce-bottom,.mce-menu{margin-top:2px}.mce-floatpanel .mce-arrow{display:none}.mce-menu .mce-container-body{min-width:160px}.mce-menu-item{border:none;margin-bottom:2px;padding:6px 12px 6px 15px}.mce-menu-has-icons i.mce-ico{line-height:20px}div.mce-panel{border:0;background:#fff}.mce-panel.mce-menu{border:1px solid #ddd}div.mce-tab{line-height:13px}div.mce-toolbar-grp{border-bottom:1px solid #ddd;background:#f5f5f5;padding:0;position:relative}div.mce-inline-toolbar-grp{border:1px solid #a0a5aa;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.15);box-sizing:border-box;margin-bottom:8px;position:absolute;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;max-width:98%;z-index:100100}div.mce-inline-toolbar-grp>div.mce-stack-layout{padding:1px}div.mce-inline-toolbar-grp.mce-arrow-up{margin-bottom:0;margin-top:8px}div.mce-inline-toolbar-grp:after,div.mce-inline-toolbar-grp:before{position:absolute;right:50%;display:block;width:0;height:0;border-style:solid;border-color:transparent;content:""}.mce-menu.mce-menu-align .mce-menu-item-normal,.quicktags-toolbar,.wp-editor-tools,.wp-editor-wrap,.wp-switch-editor{position:relative}div.mce-inline-toolbar-grp.mce-arrow-up:before{top:-9px;border-bottom-color:#a0a5aa;border-width:0 9px 9px;margin-right:-9px}div.mce-inline-toolbar-grp.mce-arrow-down:before{bottom:-9px;border-top-color:#a0a5aa;border-width:9px 9px 0;margin-right:-9px}div.mce-inline-toolbar-grp.mce-arrow-up:after{top:-8px;border-bottom-color:#f5f5f5;border-width:0 8px 8px;margin-right:-8px}div.mce-inline-toolbar-grp.mce-arrow-down:after{bottom:-8px;border-top-color:#f5f5f5;border-width:8px 8px 0;margin-right:-8px}div.mce-inline-toolbar-grp.mce-arrow-left:after,div.mce-inline-toolbar-grp.mce-arrow-left:before{margin:0}div.mce-inline-toolbar-grp.mce-arrow-left:before{right:20px}div.mce-inline-toolbar-grp.mce-arrow-left:after{right:21px}div.mce-inline-toolbar-grp.mce-arrow-right:after,div.mce-inline-toolbar-grp.mce-arrow-right:before{right:auto;margin:0}div.mce-inline-toolbar-grp.mce-arrow-right:before{left:20px}div.mce-inline-toolbar-grp.mce-arrow-right:after{left:21px}div.mce-inline-toolbar-grp.mce-arrow-full{left:0}div.mce-inline-toolbar-grp.mce-arrow-full>div{width:100%;overflow-x:auto}div.mce-toolbar-grp>div{padding:3px}.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-left:32px}.mce-toolbar .mce-btn-group{margin:0}div.mce-statusbar{border-top:1px solid #e5e5e5}div.mce-path{padding:2px 10px;margin:0}.mce-path,.mce-path .mce-divider,.mce-path-item{font-size:12px}.mce-toolbar .mce-btn,.qt-dfw{border-color:transparent;background:0 0;box-shadow:none;text-shadow:none;cursor:pointer}.mce-btn .mce-txt{direction:inherit;text-align:inherit}.mce-toolbar .mce-btn-group .mce-btn,.qt-dfw{border:1px solid transparent;margin:2px;border-radius:2px}.mce-toolbar .mce-btn-group .mce-btn:focus,.mce-toolbar .mce-btn-group .mce-btn:hover,.qt-dfw:focus,.qt-dfw:hover{background:#fafafa;border-color:#555d66;color:#23282d;box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);outline:0}.mce-toolbar .mce-btn-group .mce-btn.mce-active,.mce-toolbar .mce-btn-group .mce-btn:active,.qt-dfw.active{background:#ebebeb;border-color:#555d66;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.3)}.mce-btn.mce-active,.mce-btn.mce-active button,.mce-btn.mce-active i,.mce-btn.mce-active:hover button,.mce-btn.mce-active:hover i{color:inherit}.mce-toolbar .mce-btn-group .mce-btn.mce-active:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-active:hover{border-color:#23282d}.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:hover{color:#a0a5aa;background:0 0;border-color:#ddd;text-shadow:0 1px 0 #fff;box-shadow:none}.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus{border-color:#555d66}.mce-toolbar .mce-btn-group .mce-first,.mce-toolbar .mce-btn-group .mce-last{border-color:transparent}.mce-toolbar .mce-btn button,.qt-dfw{padding:2px 3px;line-height:normal}.mce-toolbar .mce-listbox button{font-size:13px;line-height:20px;padding-right:6px;padding-left:20px}.mce-toolbar .mce-btn i{text-shadow:none}.mce-toolbar .mce-btn-group>div{white-space:normal}.mce-toolbar .mce-colorbutton .mce-open{border-left:0}.mce-toolbar .mce-colorbutton .mce-preview{margin:0;padding:0;top:auto;bottom:2px;right:3px;height:3px;width:20px;background:#555d66}.mce-toolbar .mce-btn-group .mce-btn.mce-primary{min-width:0;background:#0085ba;border-color:#0073aa #006799 #006799;box-shadow:0 1px 0 #006799;color:#fff;text-decoration:none;text-shadow:none}.mce-toolbar .mce-btn-group .mce-btn.mce-primary button{padding:2px 3px 1px}.mce-toolbar .mce-btn-group .mce-btn.mce-primary .mce-ico{color:#fff}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-primary:hover{background:#008ec2;border-color:#006799;color:#fff}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:focus{box-shadow:0 0 1px 1px #33b3db}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:active{background:#0073aa;border-color:#006799;box-shadow:inset 0 2px 0 #006799}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox{border-radius:0;direction:rtl;background:#fff;border:1px solid #ddd;box-shadow:inset 0 1px 1px -1px rgba(0,0,0,.2)}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:hover{border-color:#b4b9be}.mce-panel .mce-btn i.mce-caret{border-top:6px solid #555d66;margin-right:2px;margin-left:2px}.mce-listbox i.mce-caret{left:4px}.mce-panel .mce-btn:focus i.mce-caret,.mce-panel .mce-btn:hover i.mce-caret{border-top-color:#23282d}.mce-panel .mce-active i.mce-caret{border-top:0;border-bottom:6px solid #23282d;margin-top:7px}.mce-listbox.mce-active i.mce-caret{margin-top:-3px}.mce-toolbar .mce-splitbtn:hover .mce-open{border-left-color:transparent}.mce-toolbar .mce-splitbtn .mce-open.mce-active{background:0 0;outline:0}.mce-menu .mce-menu-item-normal.mce-active,.mce-menu .mce-menu-item-preview.mce-active,.mce-menu .mce-menu-item.mce-selected,.mce-menu .mce-menu-item:focus,.mce-menu .mce-menu-item:hover{background:#0073aa;color:#fff}.mce-menu-item.mce-active .mce-menu-shortcut,.mce-menu-item.mce-disabled:hover .mce-ico,.mce-menu-item.mce-disabled:hover .mce-text,.mce-menu-item:focus .mce-ico,.mce-menu-item:focus .mce-menu-shortcut,.mce-menu-item:focus .mce-text,.mce-menu-item:hover .mce-ico,.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item:hover .mce-text{color:inherit}.mce-menu .mce-menu-item.mce-disabled{cursor:default}.mce-menu .mce-menu-item.mce-disabled:hover{background:#ccc}div.mce-menubar{border-color:#e5e5e5;background:#fff;border-width:0 0 1px}.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus,.mce-menubar .mce-menubtn:hover{border-color:transparent;background:0 0}.mce-menubar .mce-menubtn:focus{color:#124964;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.mce-menu-item-sep:hover,div.mce-menu .mce-menu-item-sep{border-bottom:1px solid #ddd;height:0;margin:5px 0}.mce-menubtn span{margin-left:0;padding-right:3px}.mce-menu-has-icons i.mce-ico:before{margin-right:-2px}.mce-menu.mce-menu-align .mce-menu-shortcut{bottom:.6em;font-size:.9em}.mce-primary button,.mce-primary button i{text-align:center;color:#fff;text-shadow:none;padding:0;line-height:26px}.mce-window .mce-btn{color:#555;background:#f7f7f7;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0;cursor:pointer;border:1px solid #ccc;-webkit-appearance:none;border-radius:3px;white-space:nowrap;box-shadow:0 1px 0 #ccc}.mce-window .mce-btn::-moz-focus-inner{border-width:0;border-style:none;padding:0}.mce-window .mce-btn:focus,.mce-window .mce-btn:hover{background:#fafafa;border-color:#999;color:#23282d}.mce-window .mce-btn:focus{border-color:#5b9dd9;box-shadow:0 0 3px rgba(0,115,170,.8)}.mce-window .mce-btn:active{background:#eee;border-color:#999;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);-webkit-transform:translateY(1px);transform:translateY(1px)}.mce-window .mce-btn.mce-disabled{color:#a0a5aa!important;border-color:#ddd!important;background:#f7f7f7!important;box-shadow:none!important;text-shadow:0 1px 0 #fff!important;cursor:default;-webkit-transform:none!important;transform:none!important}.mce-window .mce-btn.mce-primary{background:#0085ba;border-color:#0073aa #006799 #006799;box-shadow:0 1px 0 #006799;color:#fff;text-decoration:none;text-shadow:0 -1px 1px #006799,-1px 0 1px #006799,0 1px 1px #006799,1px 0 1px #006799}.mce-window .mce-btn.mce-primary:focus,.mce-window .mce-btn.mce-primary:hover{background:#008ec2;border-color:#006799;color:#fff}.mce-window .mce-btn.mce-primary:focus{box-shadow:0 1px 0 #0073aa,0 0 2px 1px #33b3db}.mce-window .mce-btn.mce-primary:active{background:#0073aa;border-color:#006799;box-shadow:inset 0 2px 0 #006799;vertical-align:top}.mce-window .mce-btn.mce-primary.mce-disabled{color:#66c6e4!important;background:#008ec2!important;border-color:#007cb2!important;box-shadow:none!important;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important;cursor:default}.mce-toolbar .mce-ico,.qt-dfw{text-shadow:none;text-align:center}.mce-menubtn.mce-fixed-width span{overflow-x:hidden;text-overflow:ellipsis;width:82px}.mce-charmap{margin:3px}.mce-charmap td{padding:0;border-color:#ddd;cursor:pointer}.mce-charmap td:hover{background:#f3f3f3}.mce-charmap td div{width:18px;height:22px;line-height:22px}.mce-toolbar .mce-btn .mce-open,.qt-dfw{line-height:20px}.mce-tooltip{margin-top:2px}.rtl .mce-tooltip.wp-hide-mce-tooltip{display:none!important}.mce-tooltip-inner{border-radius:3px;box-shadow:0 3px 5px rgba(0,0,0,.2);color:#fff;font-size:12px}.mce-ico{font-family:tinymce,Arial}.mce-btn-small .mce-ico{font-family:tinymce-small,Arial}.mce-toolbar .mce-ico{color:#555d66;line-height:20px;width:20px;height:20px;margin:0;padding:0}.qt-dfw{color:#555d66;width:28px;height:26px}.mce-toolbar .mce-btn.mce-active .mce-open,.mce-toolbar .mce-btn:focus .mce-open,.mce-toolbar .mce-btn:hover .mce-open{border-right-color:#23282d}div.mce-notification{right:10%!important;left:10%}.mce-notification button.mce-close{left:6px;top:3px;font-weight:400;color:#555d66}.mce-notification button.mce-close:focus,.mce-notification button.mce-close:hover{color:#000}i.mce-i-aligncenter,i.mce-i-alignjustify,i.mce-i-alignleft,i.mce-i-alignright,i.mce-i-backcolor,i.mce-i-blockquote,i.mce-i-bold,i.mce-i-bullist,i.mce-i-charmap,i.mce-i-dashicon,i.mce-i-dfw,i.mce-i-forecolor,i.mce-i-fullscreen,i.mce-i-help,i.mce-i-hr,i.mce-i-indent,i.mce-i-italic,i.mce-i-link,i.mce-i-ltr,i.mce-i-numlist,i.mce-i-outdent,i.mce-i-pastetext,i.mce-i-pasteword,i.mce-i-redo,i.mce-i-remove,i.mce-i-removeformat,i.mce-i-spellchecker,i.mce-i-strikethrough,i.mce-i-underline,i.mce-i-undo,i.mce-i-unlink,i.mce-i-wp-media-library,i.mce-i-wp_adv,i.mce-i-wp_code,i.mce-i-wp_fullscreen,i.mce-i-wp_help,i.mce-i-wp_more,i.mce-i-wp_page{font:400 20px/1 dashicons;padding:0 0 0 2px;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin-right:-2px}.qt-dfw{font:400 20px/1 dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}i.mce-i-bold:before{content:"\f200"}i.mce-i-italic:before{content:"\f201"}i.mce-i-bullist:before{content:"\f203"}i.mce-i-numlist:before{content:"\f204"}i.mce-i-blockquote:before{content:"\f205"}i.mce-i-alignleft:before{content:"\f206"}i.mce-i-aligncenter:before{content:"\f207"}i.mce-i-alignright:before{content:"\f208"}i.mce-i-link:before{content:"\f103"}i.mce-i-unlink:before{content:"\f225"}i.mce-i-wp_more:before{content:"\f209"}i.mce-i-strikethrough:before{content:"\f224"}i.mce-i-spellchecker:before{content:"\f210"}.qt-dfw:before,i.mce-i-dfw:before,i.mce-i-fullscreen:before,i.mce-i-wp_fullscreen:before{content:"\f211"}i.mce-i-wp_adv:before{content:"\f212"}i.mce-i-underline:before{content:"\f213"}i.mce-i-alignjustify:before{content:"\f214"}i.mce-i-backcolor:before,i.mce-i-forecolor:before{content:"\f215"}i.mce-i-pastetext:before{content:"\f217"}i.mce-i-removeformat:before{content:"\f218"}i.mce-i-charmap:before{content:"\f220"}i.mce-i-outdent:before{content:"\f221"}i.mce-i-indent:before{content:"\f222"}i.mce-i-undo:before{content:"\f171"}i.mce-i-redo:before{content:"\f172"}i.mce-i-help:before,i.mce-i-wp_help:before{content:"\f223"}i.mce-i-wp-media-library:before{content:"\f104"}i.mce-i-ltr:before{content:"\f320"}i.mce-i-wp_page:before{content:"\f105"}i.mce-i-hr:before{content:"\f460"}i.mce-i-remove:before{content:"\f158"}i.mce-i-wp_code:before{content:"\f475"}.rtl i.mce-i-outdent:before{content:"\f222"}.rtl i.mce-i-indent:before{content:"\f221"}.wp-editor-tools{z-index:1}.wp-editor-tools:after{clear:both;content:"";display:table}.wp-editor-container{clear:both;border:1px solid #e5e5e5}.wp-editor-area{font-family:Consolas,Monaco,monospace;font-size:13px;padding:10px;margin:1px 0 0;line-height:150%;border:0;outline:0;display:block;resize:vertical}.rtl .wp-editor-area{font-family:Tahoma,Monaco,monospace}.locale-he-il .wp-editor-area{font-family:Arial,Monaco,monospace}.wp-editor-container textarea.wp-editor-area{width:100%;margin:0;box-shadow:none}.wp-editor-tabs{float:left}.wp-switch-editor{float:right;box-sizing:content-box;top:1px;background:#ebebeb;color:#666;cursor:pointer;font-size:13px;line-height:19px;height:20px;margin:5px 5px 0 0;padding:3px 8px 4px;border:1px solid #e5e5e5}.wp-switch-editor:focus{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);outline:0;color:#23282d}.html-active .switch-html:focus,.tmce-active .switch-tmce:focus,.wp-switch-editor:active{box-shadow:none}.wp-switch-editor:active{background-color:#f5f5f5;box-shadow:none}.js .tmce-active .wp-editor-area{color:#fff}.tmce-active .quicktags-toolbar{display:none}.html-active .switch-html,.tmce-active .switch-tmce{background:#f5f5f5;color:#555;border-bottom-color:#f5f5f5}.wp-media-buttons{float:right}.wp-media-buttons .button{margin-left:5px;margin-bottom:4px;padding-right:7px;padding-left:7px}.wp-media-buttons .button:active{position:relative;top:1px;margin-top:-1px;margin-bottom:1px}.wp-media-buttons .insert-media{padding-right:5px}.wp-media-buttons a{text-decoration:none;color:#444;font-size:12px}.wp-media-buttons img{padding:0 4px;vertical-align:middle}.wp-media-buttons span.wp-media-buttons-icon{display:inline-block;width:18px;height:18px;vertical-align:text-top;margin:0 2px}.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font:400 18px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f104"}.quicktags-toolbar{padding:3px;border-bottom:1px solid #ddd;background:#f5f5f5;min-height:30px}.has-dfw .quicktags-toolbar{padding-left:35px}.wp-core-ui .quicktags-toolbar input.button.button-small{margin:2px}.quicktags-toolbar input[value=link]{text-decoration:underline}.quicktags-toolbar input[value=del]{text-decoration:line-through}.quicktags-toolbar input[value="i"]{font-style:italic}.quicktags-toolbar input[value="b"]{font-weight:600}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw,.qt-dfw{position:absolute;top:0;left:0;margin:5px 0 0 5px}.qt-fullscreen{position:static;margin:2px}@media screen and (max-width:782px){.mce-toolbar .mce-btn button,.qt-dfw{padding:6px 7px}.mce-toolbar .mce-btn-group .mce-btn.mce-primary button{padding:6px 7px 5px}.mce-toolbar .mce-btn-group .mce-btn{margin:1px}.qt-dfw{width:36px;height:34px}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw{margin:4px 0 0 4px}.mce-toolbar .mce-colorbutton .mce-preview{right:8px;bottom:6px}.mce-window .mce-btn{padding:2px 0}.has-dfw .quicktags-toolbar,.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-left:40px}}@media screen and (min-width:782px){.wp-core-ui .quicktags-toolbar input.button.button-small{font-size:12px;height:26px;line-height:24px}}#wp_editbtns,#wp_gallerybtns{padding:2px;position:absolute;display:none;z-index:100020}#wp_delgallery,#wp_delimgbtn,#wp_editgallery,#wp_editimgbtn{border-color:#999;background-color:#eee;margin:2px;padding:2px;border-width:1px;border-style:solid;border-radius:3px}#wp_delgallery:hover,#wp_delimgbtn:hover,#wp_editgallery:hover,#wp_editimgbtn:hover{border-color:#555;background-color:#ccc}#wp-link-wrap{display:none;background-color:#fff;width:500px;overflow:hidden;margin-right:-250px;position:fixed;top:50%;right:50%;z-index:100105;transition:height .2s,margin-top .2s;height:500px;margin-top:-250px}#wp-link-backdrop{display:none;position:fixed;top:0;right:0;left:0;bottom:0;min-height:360px;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:100100}#wp-link{position:relative;height:100%}#wp-link-wrap .wp-link-text-field{display:none}#wp-link-wrap.has-text-field .wp-link-text-field{display:block}#link-modal-title{background:#fcfcfc;border-bottom:1px solid #ddd;height:36px;font-size:18px;font-weight:600;line-height:36px;margin:0;padding:0 16px 0 36px}#wp-link-close{color:#666;padding:0;position:absolute;top:0;left:0;width:36px;height:36px;text-align:center;background:0 0;border:none;cursor:pointer}#wp-link-close:before{font:400 20px/36px dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:36px;height:36px;content:"\f158"}#wp-link-close:focus,#wp-link-close:hover{color:#00a0d2}#wp-link-close:focus{outline:0;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#wp-link-wrap #link-selector{-webkit-overflow-scrolling:touch;padding:0 16px;position:absolute;top:37px;right:0;left:0;bottom:44px}#wp-link ol,#wp-link ul{list-style:none;margin:0;padding:0}#wp-link input[type=text]{box-sizing:border-box}#wp-link #link-options{padding:8px 0 12px}#wp-link p.howto{margin:3px 0}#wp-link p.howto a{text-decoration:none;color:inherit}#wp-link label input[type=text]{margin-top:5px;width:70%}#wp-link #link-options label span,#wp-link #search-panel label span.search-label{display:inline-block;width:80px;text-align:left;padding-left:5px;max-width:24%;vertical-align:middle;word-wrap:break-word}#wp-link .link-search-field{float:right;width:250px;max-width:70%}#wp-link .link-search-wrapper{margin:5px 0 9px;display:block;overflow:hidden}#wp-link .link-search-wrapper span{float:right;margin-top:4px}#wp-link .link-search-wrapper .spinner{margin-top:5px}#wp-link .link-target{padding:3px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#wp-link .link-target label{max-width:70%}#wp-link .query-results{border:1px solid #dfdfdf;margin:0 0 12px;background:#fff;overflow:auto;position:absolute;right:16px;left:16px;bottom:0;top:166px}.has-text-field #wp-link .query-results{top:200px}#wp-link li{clear:both;margin-bottom:0;border-bottom:1px solid #f1f1f1;color:#32373c;padding:4px 10px 4px 6px;cursor:pointer;position:relative}#wp-link .query-notice,#wp-link li.unselectable{border-bottom:1px solid #dfdfdf}#wp-link .query-notice{padding:0;background-color:#f7fcfe;color:#000}#wp-link .query-notice .query-notice-default,#wp-link .query-notice .query-notice-hint{display:block;padding:6px;border-right:4px solid #00a0d2}#wp-link .unselectable.no-matches-found{padding:0;border-bottom:1px solid #dfdfdf;background-color:#fef7f1}#wp-link .no-matches-found .item-title{display:block;padding:6px;border-right:4px solid #d54e21}#wp-link .query-results em{font-style:normal}#wp-link li:hover{background:#eaf2fa;color:#151515}#wp-link li.unselectable:hover{background:#fff;cursor:auto;color:#32373c}#wp-link li.selected{background:#ddd;color:#32373c}#wp-link li.selected .item-title{font-weight:600}#wp-link li:last-child{border:none}#wp-link .item-title{display:inline-block;width:80%;width:calc(100% - 68px);word-wrap:break-word}#wp-link .item-info{text-transform:uppercase;color:#666;font-size:11px;position:absolute;left:5px;top:5px}#wp-link .river-waiting{display:none;padding:10px 0}#wp-link .submitbox{padding:8px 16px;background:#fcfcfc;border-top:1px solid #ddd;position:absolute;bottom:0;right:0;left:0}#wp-link-cancel{line-height:25px;float:right}#wp-link-update{line-height:23px;float:left}#wp-link-submit{float:left}@media screen and (max-width:782px){#wp-link-wrap{margin-top:-140px}#wp-link-wrap .query-results{top:195px}#wp-link-wrap.has-text-field .query-results{top:235px}#link-selector{padding:0 16px 60px}#wp-link-wrap #link-selector{bottom:52px}#wp-link-cancel{line-height:32px}#wp-link .link-target{padding-top:10px}#wp-link .submitbox .button{margin-bottom:0}}@media screen and (max-width:520px){#wp-link-wrap{width:auto;margin-right:0;right:10px;left:10px;max-width:500px}}@media screen and (max-height:520px){#wp-link-wrap{transition:none;height:auto;margin-top:0;top:10px;bottom:10px}#link-selector{overflow:auto}#search-panel .query-results{position:static}}@media screen and (max-height:290px){#wp-link-wrap{height:auto;margin-top:0;top:10px;bottom:10px}#link-selector{overflow:auto;height:calc(100% - 92px);padding-bottom:2px}#search-panel .query-results{position:static}}div.wp-link-preview{float:right;margin:5px;max-width:694px;overflow:hidden;text-overflow:ellipsis}div.wp-link-preview a{color:#0073aa;text-decoration:underline;transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out;cursor:pointer}div.wp-link-preview a.wplink-url-error{color:#dc3232}div.wp-link-input{float:right;margin:2px;max-width:694px}div.wp-link-input input{width:300px;padding:3px;box-sizing:border-box}.mce-toolbar div.wp-link-input~.mce-btn,.mce-toolbar div.wp-link-preview~.mce-btn{margin:2px 1px}.mce-inline-toolbar-grp .mce-btn-group .mce-btn:last-child{margin-left:2px}.ui-autocomplete.wplink-autocomplete{z-index:100110;max-height:200px;overflow-y:auto;padding:0;margin:0;list-style:none;position:absolute;border:1px solid #5b9dd9;box-shadow:0 1px 2px rgba(30,140,190,.8);background-color:#fff}.ui-autocomplete.wplink-autocomplete li{margin-bottom:0;padding:4px 10px;clear:both;white-space:normal;text-align:right}.ui-autocomplete.wplink-autocomplete li .wp-editor-float-right{float:left}.ui-autocomplete.wplink-autocomplete li.ui-state-focus{background-color:#ddd;cursor:pointer}@media screen and (max-width:782px){div.wp-link-input,div.wp-link-preview{max-width:70%;max-width:calc(100% - 86px)}div.wp-link-preview{margin:8px 5px 8px 0}div.wp-link-input{width:300px}div.wp-link-input input{width:100%;font-size:16px;padding:5px}}.mce-fullscreen{z-index:100010}.rtl .quicktags-toolbar input,.rtl .wp-switch-editor{font-family:Tahoma,sans-serif}.mce-rtl .mce-flow-layout .mce-flow-layout-item>div{direction:rtl}.mce-rtl .mce-listbox i.mce-caret{left:6px}html:lang(he-il) .rtl .quicktags-toolbar input,html:lang(he-il) .rtl .wp-switch-editor{font-family:Arial,sans-serif}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}} \ No newline at end of file diff --git a/wp-includes/css/editor.css b/wp-includes/css/editor.css index 0e042cf67..d8cba05b2 100644 --- a/wp-includes/css/editor.css +++ b/wp-includes/css/editor.css @@ -4,6 +4,10 @@ /* TinyMCE widgets/containers */ +.mce-tinymce { + box-shadow: none; +} + .mce-container, .mce-container *, .mce-widget, @@ -25,6 +29,7 @@ opacity: 0.7; filter: alpha(opacity=70); transition: none; + background: #000; } .mce-window { @@ -216,6 +221,7 @@ div.mce-tab:focus { .mce-menu-item { border: none; margin-bottom: 2px; + padding: 6px 15px 6px 12px; } .mce-menu-has-icons i.mce-ico { @@ -410,6 +416,14 @@ div.mce-path { box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.3 ); } +.mce-btn.mce-active, +.mce-btn.mce-active button, +.mce-btn.mce-active:hover button, +.mce-btn.mce-active i, +.mce-btn.mce-active:hover i { + color: inherit; +} + .mce-toolbar .mce-btn-group .mce-btn.mce-active:hover, .mce-toolbar .mce-btn-group .mce-btn.mce-active:focus { border-color: #23282d; @@ -562,12 +576,16 @@ div.mce-path { color: #fff; } -.mce-menu .mce-menu-item-preview.mce-active { - border-left: none; -} - -.mce-menu .mce-menu-item-preview.mce-active .mce-text { - color: #fff; +.mce-menu-item:hover .mce-text, +.mce-menu-item:focus .mce-text, +.mce-menu-item:hover .mce-ico, +.mce-menu-item:focus .mce-ico, +.mce-menu-item:hover .mce-menu-shortcut, +.mce-menu-item:focus .mce-menu-shortcut, +.mce-menu-item.mce-active .mce-menu-shortcut, +.mce-menu-item.mce-disabled:hover .mce-text, +.mce-menu-item.mce-disabled:hover .mce-ico { + color: inherit; } .mce-menu .mce-menu-item.mce-disabled { diff --git a/wp-includes/css/editor.min.css b/wp-includes/css/editor.min.css index 370e5eff7..ffcfce21e 100644 --- a/wp-includes/css/editor.min.css +++ b/wp-includes/css/editor.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -#wp-link-wrap,.mce-window{box-shadow:0 3px 6px rgba(0,0,0,.3)}.mce-window .mce-wp-help *,.wp-editor-area{box-sizing:border-box}.mce-container,.mce-container *,.mce-widget,.mce-widget *{color:inherit;font-family:inherit}.mce-container .mce-monospace,.mce-widget .mce-monospace{font-family:Consolas,Monaco,monospace;font-size:13px;line-height:150%}#mce-modal-block,#mce-modal-block.mce-fade{opacity:.7;filter:alpha(opacity=70);transition:none}.mce-window{border-radius:0;-webkit-font-smoothing:subpixel-antialiased;transition:none}.mce-window .mce-container-body.mce-abs-layout{overflow:visible}.mce-window .mce-window-head{background:#fcfcfc;border-bottom:1px solid #ddd;padding:0;min-height:36px}.mce-window .mce-window-head .mce-title{color:#444;font-size:18px;font-weight:600;line-height:36px;margin:0;padding:0 36px 0 16px}.mce-window .mce-window-head .mce-close,.mce-window-head .mce-close .mce-i-remove{color:transparent;top:0;right:0;width:36px;height:36px;padding:0;line-height:36px;text-align:center}.mce-window-head .mce-close .mce-i-remove:before{font:400 20px/36px dashicons;text-align:center;color:#666;width:36px;height:36px;display:block}.mce-window-head .mce-close:focus .mce-i-remove:before,.mce-window-head .mce-close:hover .mce-i-remove:before{color:#00a0d2}.mce-window-head .mce-close:focus .mce-i-remove,div.mce-tab:focus{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.mce-window .mce-window-head .mce-dragh{width:calc(100% - 36px)}.mce-window .mce-foot{border-top:1px solid #ddd}#wp-link .query-results,.mce-checkbox i.mce-i-checkbox,.mce-textbox{border:1px solid #ddd;border-radius:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.07);transition:.05s all ease-in-out}#wp-link .query-results:focus,.mce-checkbox:focus i.mce-i-checkbox,.mce-textbox.mce-focus,.mce-textbox:focus{border-color:#5b9dd9;box-shadow:0 0 2px rgba(30,140,190,.8)}.mce-window .mce-wp-help{height:360px;width:460px;overflow:auto}.mce-window .mce-wp-help>.mce-container-body{width:auto!important}.mce-window .wp-editor-help{padding:10px 10px 0 20px}.mce-window .wp-editor-help h2,.mce-window .wp-editor-help p{margin:8px 0;white-space:normal;font-size:14px;font-weight:400}.mce-window .wp-editor-help table{width:100%;margin-bottom:20px}.mce-window .wp-editor-help table.wp-help-single{margin:0 8px 20px}.mce-window .wp-editor-help table.fixed{table-layout:fixed}.mce-window .wp-editor-help table.fixed td:nth-child(odd),.mce-window .wp-editor-help table.fixed th:nth-child(odd){width:12%}.mce-window .wp-editor-help table.fixed td:nth-child(even),.mce-window .wp-editor-help table.fixed th:nth-child(even){width:38%}.mce-window .wp-editor-help table.fixed th:nth-child(odd){padding:5px 0 0}.mce-window .wp-editor-help td,.mce-window .wp-editor-help th{font-size:13px;padding:5px;vertical-align:middle;word-wrap:break-word;white-space:normal}.mce-window .wp-editor-help th{font-weight:600;padding-bottom:0}.mce-window .wp-editor-help kbd{font-family:monospace;padding:2px 7px 3px;font-weight:600;margin:0;background:#eaeaea;background:rgba(0,0,0,.08)}.mce-window .wp-help-th-center td:nth-child(odd),.mce-window .wp-help-th-center th:nth-child(odd){text-align:center}.mce-floatpanel.mce-popover,.mce-menu{border-color:rgba(0,0,0,.15);border-radius:0;box-shadow:0 3px 5px rgba(0,0,0,.2)}.mce-floatpanel.mce-popover.mce-bottom,.mce-menu{margin-top:2px}.mce-floatpanel .mce-arrow{display:none}.mce-menu .mce-container-body{min-width:160px}.mce-menu-item{border:none;margin-bottom:2px}.mce-menu-has-icons i.mce-ico{line-height:20px}div.mce-panel{border:0;background:#fff}.mce-panel.mce-menu{border:1px solid #ddd}div.mce-tab{line-height:13px}div.mce-toolbar-grp{border-bottom:1px solid #ddd;background:#f5f5f5;padding:0;position:relative}div.mce-inline-toolbar-grp{border:1px solid #a0a5aa;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.15);box-sizing:border-box;margin-bottom:8px;position:absolute;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;max-width:98%;z-index:100100}div.mce-inline-toolbar-grp>div.mce-stack-layout{padding:1px}div.mce-inline-toolbar-grp.mce-arrow-up{margin-bottom:0;margin-top:8px}div.mce-inline-toolbar-grp:after,div.mce-inline-toolbar-grp:before{position:absolute;left:50%;display:block;width:0;height:0;border-style:solid;border-color:transparent;content:""}.mce-menu.mce-menu-align .mce-menu-item-normal,.quicktags-toolbar,.wp-editor-tools,.wp-editor-wrap,.wp-switch-editor{position:relative}div.mce-inline-toolbar-grp.mce-arrow-up:before{top:-9px;border-bottom-color:#a0a5aa;border-width:0 9px 9px;margin-left:-9px}div.mce-inline-toolbar-grp.mce-arrow-down:before{bottom:-9px;border-top-color:#a0a5aa;border-width:9px 9px 0;margin-left:-9px}div.mce-inline-toolbar-grp.mce-arrow-up:after{top:-8px;border-bottom-color:#f5f5f5;border-width:0 8px 8px;margin-left:-8px}div.mce-inline-toolbar-grp.mce-arrow-down:after{bottom:-8px;border-top-color:#f5f5f5;border-width:8px 8px 0;margin-left:-8px}div.mce-inline-toolbar-grp.mce-arrow-left:after,div.mce-inline-toolbar-grp.mce-arrow-left:before{margin:0}div.mce-inline-toolbar-grp.mce-arrow-left:before{left:20px}div.mce-inline-toolbar-grp.mce-arrow-left:after{left:21px}div.mce-inline-toolbar-grp.mce-arrow-right:after,div.mce-inline-toolbar-grp.mce-arrow-right:before{left:auto;margin:0}div.mce-inline-toolbar-grp.mce-arrow-right:before{right:20px}div.mce-inline-toolbar-grp.mce-arrow-right:after{right:21px}div.mce-inline-toolbar-grp.mce-arrow-full{right:0}div.mce-inline-toolbar-grp.mce-arrow-full>div{width:100%;overflow-x:auto}div.mce-toolbar-grp>div{padding:3px}.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-right:32px}.mce-toolbar .mce-btn-group{margin:0}div.mce-statusbar{border-top:1px solid #e5e5e5}div.mce-path{padding:2px 10px;margin:0}.mce-path,.mce-path .mce-divider,.mce-path-item{font-size:12px}.mce-toolbar .mce-btn,.qt-dfw{border-color:transparent;background:0 0;box-shadow:none;text-shadow:none;cursor:pointer}.mce-btn .mce-txt{direction:inherit;text-align:inherit}.mce-toolbar .mce-btn-group .mce-btn,.qt-dfw{border:1px solid transparent;margin:2px;border-radius:2px}.mce-toolbar .mce-btn-group .mce-btn:focus,.mce-toolbar .mce-btn-group .mce-btn:hover,.qt-dfw:focus,.qt-dfw:hover{background:#fafafa;border-color:#555d66;color:#23282d;box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);outline:0}.mce-toolbar .mce-btn-group .mce-btn.mce-active,.mce-toolbar .mce-btn-group .mce-btn:active,.qt-dfw.active{background:#ebebeb;border-color:#555d66;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.3)}.mce-toolbar .mce-btn-group .mce-btn.mce-active:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-active:hover{border-color:#23282d}.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:hover{color:#a0a5aa;background:0 0;border-color:#ddd;text-shadow:0 1px 0 #fff;box-shadow:none}.mce-menu .mce-menu-item-preview.mce-active .mce-text,.mce-toolbar .mce-btn-group .mce-btn.mce-primary .mce-ico{color:#fff}.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus{border-color:#555d66}.mce-toolbar .mce-btn-group .mce-first,.mce-toolbar .mce-btn-group .mce-last{border-color:transparent}.mce-toolbar .mce-btn button,.qt-dfw{padding:2px 3px;line-height:normal}.mce-toolbar .mce-listbox button{font-size:13px;line-height:20px;padding-left:6px;padding-right:20px}.mce-toolbar .mce-btn i{text-shadow:none}.mce-toolbar .mce-btn-group>div{white-space:normal}.mce-toolbar .mce-colorbutton .mce-open{border-right:0}.mce-toolbar .mce-colorbutton .mce-preview{margin:0;padding:0;top:auto;bottom:2px;left:3px;height:3px;width:20px;background:#555d66}.mce-toolbar .mce-btn-group .mce-btn.mce-primary{min-width:0;background:#0085ba;border-color:#0073aa #006799 #006799;box-shadow:0 1px 0 #006799;color:#fff;text-decoration:none;text-shadow:none}.mce-toolbar .mce-btn-group .mce-btn.mce-primary button{padding:2px 3px 1px}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-primary:hover{background:#008ec2;border-color:#006799;color:#fff}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:focus{box-shadow:0 0 1px 1px #33b3db}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:active{background:#0073aa;border-color:#006799;box-shadow:inset 0 2px 0 #006799}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox{border-radius:0;direction:ltr;background:#fff;border:1px solid #ddd;box-shadow:inset 0 1px 1px -1px rgba(0,0,0,.2)}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:hover{border-color:#b4b9be}.mce-panel .mce-btn i.mce-caret{border-top:6px solid #555d66;margin-left:2px;margin-right:2px}.mce-listbox i.mce-caret{right:4px}.mce-panel .mce-btn:focus i.mce-caret,.mce-panel .mce-btn:hover i.mce-caret{border-top-color:#23282d}.mce-panel .mce-active i.mce-caret{border-top:0;border-bottom:6px solid #23282d;margin-top:7px}.mce-listbox.mce-active i.mce-caret{margin-top:-3px}.mce-toolbar .mce-splitbtn:hover .mce-open{border-right-color:transparent}.mce-toolbar .mce-splitbtn .mce-open.mce-active{background:0 0;outline:0}.mce-menu .mce-menu-item-normal.mce-active,.mce-menu .mce-menu-item-preview.mce-active,.mce-menu .mce-menu-item.mce-selected,.mce-menu .mce-menu-item:focus,.mce-menu .mce-menu-item:hover{background:#0073aa;color:#fff}.mce-menu .mce-menu-item-preview.mce-active{border-left:none}.mce-menu .mce-menu-item.mce-disabled{cursor:default}.mce-menu .mce-menu-item.mce-disabled:hover{background:#ccc}div.mce-menubar{border-color:#e5e5e5;background:#fff;border-width:0 0 1px}.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus,.mce-menubar .mce-menubtn:hover{border-color:transparent;background:0 0}.mce-menubar .mce-menubtn:focus{color:#124964;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.mce-menu-item-sep:hover,div.mce-menu .mce-menu-item-sep{border-bottom:1px solid #ddd;height:0;margin:5px 0}.mce-menubtn span{margin-right:0;padding-left:3px}.mce-menu-has-icons i.mce-ico:before{margin-left:-2px}.mce-menu.mce-menu-align .mce-menu-shortcut{bottom:.6em;font-size:.9em}.mce-primary button,.mce-primary button i{text-align:center;color:#fff;text-shadow:none;padding:0;line-height:26px}.mce-window .mce-btn{color:#555;background:#f7f7f7;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0;cursor:pointer;border:1px solid #ccc;-webkit-appearance:none;border-radius:3px;white-space:nowrap;box-shadow:0 1px 0 #ccc}.mce-window .mce-btn::-moz-focus-inner{border-width:0;border-style:none;padding:0}.mce-window .mce-btn:focus,.mce-window .mce-btn:hover{background:#fafafa;border-color:#999;color:#23282d}.mce-window .mce-btn:focus{border-color:#5b9dd9;box-shadow:0 0 3px rgba(0,115,170,.8)}.mce-window .mce-btn:active{background:#eee;border-color:#999;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);-webkit-transform:translateY(1px);transform:translateY(1px)}.mce-window .mce-btn.mce-disabled{color:#a0a5aa!important;border-color:#ddd!important;background:#f7f7f7!important;box-shadow:none!important;text-shadow:0 1px 0 #fff!important;cursor:default;-webkit-transform:none!important;transform:none!important}.mce-window .mce-btn.mce-primary{background:#0085ba;border-color:#0073aa #006799 #006799;box-shadow:0 1px 0 #006799;color:#fff;text-decoration:none;text-shadow:0 -1px 1px #006799,1px 0 1px #006799,0 1px 1px #006799,-1px 0 1px #006799}.mce-window .mce-btn.mce-primary:focus,.mce-window .mce-btn.mce-primary:hover{background:#008ec2;border-color:#006799;color:#fff}.mce-window .mce-btn.mce-primary:focus{box-shadow:0 1px 0 #0073aa,0 0 2px 1px #33b3db}.mce-window .mce-btn.mce-primary:active{background:#0073aa;border-color:#006799;box-shadow:inset 0 2px 0 #006799;vertical-align:top}.mce-window .mce-btn.mce-primary.mce-disabled{color:#66c6e4!important;background:#008ec2!important;border-color:#007cb2!important;box-shadow:none!important;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important;cursor:default}.mce-toolbar .mce-ico,.qt-dfw{text-shadow:none;text-align:center}.mce-menubtn.mce-fixed-width span{overflow-x:hidden;text-overflow:ellipsis;width:82px}.mce-charmap{margin:3px}.mce-charmap td{padding:0;border-color:#ddd;cursor:pointer}.mce-charmap td:hover{background:#f3f3f3}.mce-charmap td div{width:18px;height:22px;line-height:22px}.mce-toolbar .mce-btn .mce-open,.qt-dfw{line-height:20px}.mce-tooltip{margin-top:2px}.rtl .mce-tooltip.wp-hide-mce-tooltip{display:none!important}.mce-tooltip-inner{border-radius:3px;box-shadow:0 3px 5px rgba(0,0,0,.2);color:#fff;font-size:12px}.mce-ico{font-family:tinymce,Arial}.mce-btn-small .mce-ico{font-family:tinymce-small,Arial}.mce-toolbar .mce-ico{color:#555d66;line-height:20px;width:20px;height:20px;margin:0;padding:0}.qt-dfw{color:#555d66;width:28px;height:26px}.mce-toolbar .mce-btn.mce-active .mce-open,.mce-toolbar .mce-btn:focus .mce-open,.mce-toolbar .mce-btn:hover .mce-open{border-left-color:#23282d}div.mce-notification{left:10%!important;right:10%}.mce-notification button.mce-close{right:6px;top:3px;font-weight:400;color:#555d66}.mce-notification button.mce-close:focus,.mce-notification button.mce-close:hover{color:#000}i.mce-i-aligncenter,i.mce-i-alignjustify,i.mce-i-alignleft,i.mce-i-alignright,i.mce-i-backcolor,i.mce-i-blockquote,i.mce-i-bold,i.mce-i-bullist,i.mce-i-charmap,i.mce-i-dashicon,i.mce-i-dfw,i.mce-i-forecolor,i.mce-i-fullscreen,i.mce-i-help,i.mce-i-hr,i.mce-i-indent,i.mce-i-italic,i.mce-i-link,i.mce-i-ltr,i.mce-i-numlist,i.mce-i-outdent,i.mce-i-pastetext,i.mce-i-pasteword,i.mce-i-redo,i.mce-i-remove,i.mce-i-removeformat,i.mce-i-spellchecker,i.mce-i-strikethrough,i.mce-i-underline,i.mce-i-undo,i.mce-i-unlink,i.mce-i-wp-media-library,i.mce-i-wp_adv,i.mce-i-wp_code,i.mce-i-wp_fullscreen,i.mce-i-wp_help,i.mce-i-wp_more,i.mce-i-wp_page{font:400 20px/1 dashicons;padding:0 2px 0 0;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin-left:-2px}.qt-dfw{font:400 20px/1 dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}i.mce-i-bold:before{content:"\f200"}i.mce-i-italic:before{content:"\f201"}i.mce-i-bullist:before{content:"\f203"}i.mce-i-numlist:before{content:"\f204"}i.mce-i-blockquote:before{content:"\f205"}i.mce-i-alignleft:before{content:"\f206"}i.mce-i-aligncenter:before{content:"\f207"}i.mce-i-alignright:before{content:"\f208"}i.mce-i-link:before{content:"\f103"}i.mce-i-unlink:before{content:"\f225"}i.mce-i-wp_more:before{content:"\f209"}i.mce-i-strikethrough:before{content:"\f224"}i.mce-i-spellchecker:before{content:"\f210"}.qt-dfw:before,i.mce-i-dfw:before,i.mce-i-fullscreen:before,i.mce-i-wp_fullscreen:before{content:"\f211"}i.mce-i-wp_adv:before{content:"\f212"}i.mce-i-underline:before{content:"\f213"}i.mce-i-alignjustify:before{content:"\f214"}i.mce-i-backcolor:before,i.mce-i-forecolor:before{content:"\f215"}i.mce-i-pastetext:before{content:"\f217"}i.mce-i-removeformat:before{content:"\f218"}i.mce-i-charmap:before{content:"\f220"}i.mce-i-outdent:before{content:"\f221"}i.mce-i-indent:before{content:"\f222"}i.mce-i-undo:before{content:"\f171"}i.mce-i-redo:before{content:"\f172"}i.mce-i-help:before,i.mce-i-wp_help:before{content:"\f223"}i.mce-i-wp-media-library:before{content:"\f104"}i.mce-i-ltr:before{content:"\f320"}i.mce-i-wp_page:before{content:"\f105"}i.mce-i-hr:before{content:"\f460"}i.mce-i-remove:before{content:"\f158"}i.mce-i-wp_code:before{content:"\f475"}.rtl i.mce-i-outdent:before{content:"\f222"}.rtl i.mce-i-indent:before{content:"\f221"}.wp-editor-tools{z-index:1}.wp-editor-tools:after{clear:both;content:"";display:table}.wp-editor-container{clear:both;border:1px solid #e5e5e5}.wp-editor-area{font-family:Consolas,Monaco,monospace;font-size:13px;padding:10px;margin:1px 0 0;line-height:150%;border:0;outline:0;display:block;resize:vertical}.rtl .wp-editor-area{font-family:Tahoma,Monaco,monospace}.locale-he-il .wp-editor-area{font-family:Arial,Monaco,monospace}.wp-editor-container textarea.wp-editor-area{width:100%;margin:0;box-shadow:none}.wp-editor-tabs{float:right}.wp-switch-editor{float:left;box-sizing:content-box;top:1px;background:#ebebeb;color:#666;cursor:pointer;font-size:13px;line-height:19px;height:20px;margin:5px 0 0 5px;padding:3px 8px 4px;border:1px solid #e5e5e5}.wp-switch-editor:focus{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);outline:0;color:#23282d}.html-active .switch-html:focus,.tmce-active .switch-tmce:focus,.wp-switch-editor:active{box-shadow:none}.wp-switch-editor:active{background-color:#f5f5f5;box-shadow:none}.js .tmce-active .wp-editor-area{color:#fff}.tmce-active .quicktags-toolbar{display:none}.html-active .switch-html,.tmce-active .switch-tmce{background:#f5f5f5;color:#555;border-bottom-color:#f5f5f5}.wp-media-buttons{float:left}.wp-media-buttons .button{margin-right:5px;margin-bottom:4px;padding-left:7px;padding-right:7px}.wp-media-buttons .button:active{position:relative;top:1px;margin-top:-1px;margin-bottom:1px}.wp-media-buttons .insert-media{padding-left:5px}.wp-media-buttons a{text-decoration:none;color:#444;font-size:12px}.wp-media-buttons img{padding:0 4px;vertical-align:middle}.wp-media-buttons span.wp-media-buttons-icon{display:inline-block;width:18px;height:18px;vertical-align:text-top;margin:0 2px}.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font:400 18px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f104"}.quicktags-toolbar{padding:3px;border-bottom:1px solid #ddd;background:#f5f5f5;min-height:30px}.has-dfw .quicktags-toolbar{padding-right:35px}.wp-core-ui .quicktags-toolbar input.button.button-small{margin:2px}.quicktags-toolbar input[value=link]{text-decoration:underline}.quicktags-toolbar input[value=del]{text-decoration:line-through}.quicktags-toolbar input[value="i"]{font-style:italic}.quicktags-toolbar input[value="b"]{font-weight:600}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw,.qt-dfw{position:absolute;top:0;right:0;margin:5px 5px 0 0}.qt-fullscreen{position:static;margin:2px}@media screen and (max-width:782px){.mce-toolbar .mce-btn button,.qt-dfw{padding:6px 7px}.mce-toolbar .mce-btn-group .mce-btn.mce-primary button{padding:6px 7px 5px}.mce-toolbar .mce-btn-group .mce-btn{margin:1px}.qt-dfw{width:36px;height:34px}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw{margin:4px 4px 0 0}.mce-toolbar .mce-colorbutton .mce-preview{left:8px;bottom:6px}.mce-window .mce-btn{padding:2px 0}.has-dfw .quicktags-toolbar,.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-right:40px}}@media screen and (min-width:782px){.wp-core-ui .quicktags-toolbar input.button.button-small{font-size:12px;height:26px;line-height:24px}}#wp_editbtns,#wp_gallerybtns{padding:2px;position:absolute;display:none;z-index:100020}#wp_delgallery,#wp_delimgbtn,#wp_editgallery,#wp_editimgbtn{border-color:#999;background-color:#eee;margin:2px;padding:2px;border-width:1px;border-style:solid;border-radius:3px}#wp_delgallery:hover,#wp_delimgbtn:hover,#wp_editgallery:hover,#wp_editimgbtn:hover{border-color:#555;background-color:#ccc}#wp-link-wrap{display:none;background-color:#fff;width:500px;overflow:hidden;margin-left:-250px;position:fixed;top:50%;left:50%;z-index:100105;transition:height .2s,margin-top .2s;height:500px;margin-top:-250px}#wp-link-backdrop{display:none;position:fixed;top:0;left:0;right:0;bottom:0;min-height:360px;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:100100}#wp-link{position:relative;height:100%}#wp-link-wrap .wp-link-text-field{display:none}#wp-link-wrap.has-text-field .wp-link-text-field{display:block}#link-modal-title{background:#fcfcfc;border-bottom:1px solid #ddd;height:36px;font-size:18px;font-weight:600;line-height:36px;margin:0;padding:0 36px 0 16px}#wp-link-close{color:#666;padding:0;position:absolute;top:0;right:0;width:36px;height:36px;text-align:center;background:0 0;border:none;cursor:pointer}#wp-link-close:before{font:400 20px/36px dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:36px;height:36px;content:"\f158"}#wp-link-close:focus,#wp-link-close:hover{color:#00a0d2}#wp-link-close:focus{outline:0;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#wp-link-wrap #link-selector{-webkit-overflow-scrolling:touch;padding:0 16px;position:absolute;top:37px;left:0;right:0;bottom:44px}#wp-link ol,#wp-link ul{list-style:none;margin:0;padding:0}#wp-link input[type=text]{box-sizing:border-box}#wp-link #link-options{padding:8px 0 12px}#wp-link p.howto{margin:3px 0}#wp-link p.howto a{text-decoration:none;color:inherit}#wp-link label input[type=text]{margin-top:5px;width:70%}#wp-link #link-options label span,#wp-link #search-panel label span.search-label{display:inline-block;width:80px;text-align:right;padding-right:5px;max-width:24%;vertical-align:middle;word-wrap:break-word}#wp-link .link-search-field{float:left;width:250px;max-width:70%}#wp-link .link-search-wrapper{margin:5px 0 9px;display:block;overflow:hidden}#wp-link .link-search-wrapper span{float:left;margin-top:4px}#wp-link .link-search-wrapper .spinner{margin-top:5px}#wp-link .link-target{padding:3px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#wp-link .link-target label{max-width:70%}#wp-link .query-results{border:1px solid #dfdfdf;margin:0 0 12px;background:#fff;overflow:auto;position:absolute;left:16px;right:16px;bottom:0;top:166px}.has-text-field #wp-link .query-results{top:200px}#wp-link li{clear:both;margin-bottom:0;border-bottom:1px solid #f1f1f1;color:#32373c;padding:4px 6px 4px 10px;cursor:pointer;position:relative}#wp-link .query-notice,#wp-link li.unselectable{border-bottom:1px solid #dfdfdf}#wp-link .query-notice{padding:0;background-color:#f7fcfe;color:#000}#wp-link .query-notice .query-notice-default,#wp-link .query-notice .query-notice-hint{display:block;padding:6px;border-left:4px solid #00a0d2}#wp-link .unselectable.no-matches-found{padding:0;border-bottom:1px solid #dfdfdf;background-color:#fef7f1}#wp-link .no-matches-found .item-title{display:block;padding:6px;border-left:4px solid #d54e21}#wp-link .query-results em{font-style:normal}#wp-link li:hover{background:#eaf2fa;color:#151515}#wp-link li.unselectable:hover{background:#fff;cursor:auto;color:#32373c}#wp-link li.selected{background:#ddd;color:#32373c}#wp-link li.selected .item-title{font-weight:600}#wp-link li:last-child{border:none}#wp-link .item-title{display:inline-block;width:80%;width:calc(100% - 68px);word-wrap:break-word}#wp-link .item-info{text-transform:uppercase;color:#666;font-size:11px;position:absolute;right:5px;top:5px}#wp-link .river-waiting{display:none;padding:10px 0}#wp-link .submitbox{padding:8px 16px;background:#fcfcfc;border-top:1px solid #ddd;position:absolute;bottom:0;left:0;right:0}#wp-link-cancel{line-height:25px;float:left}#wp-link-update{line-height:23px;float:right}#wp-link-submit{float:right}@media screen and (max-width:782px){#wp-link-wrap{margin-top:-140px}#wp-link-wrap .query-results{top:195px}#wp-link-wrap.has-text-field .query-results{top:235px}#link-selector{padding:0 16px 60px}#wp-link-wrap #link-selector{bottom:52px}#wp-link-cancel{line-height:32px}#wp-link .link-target{padding-top:10px}#wp-link .submitbox .button{margin-bottom:0}}@media screen and (max-width:520px){#wp-link-wrap{width:auto;margin-left:0;left:10px;right:10px;max-width:500px}}@media screen and (max-height:520px){#wp-link-wrap{transition:none;height:auto;margin-top:0;top:10px;bottom:10px}#link-selector{overflow:auto}#search-panel .query-results{position:static}}@media screen and (max-height:290px){#wp-link-wrap{height:auto;margin-top:0;top:10px;bottom:10px}#link-selector{overflow:auto;height:calc(100% - 92px);padding-bottom:2px}#search-panel .query-results{position:static}}div.wp-link-preview{float:left;margin:5px;max-width:694px;overflow:hidden;text-overflow:ellipsis}div.wp-link-preview a{color:#0073aa;text-decoration:underline;transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out;cursor:pointer}div.wp-link-preview a.wplink-url-error{color:#dc3232}div.wp-link-input{float:left;margin:2px;max-width:694px}div.wp-link-input input{width:300px;padding:3px;box-sizing:border-box}.mce-toolbar div.wp-link-input~.mce-btn,.mce-toolbar div.wp-link-preview~.mce-btn{margin:2px 1px}.mce-inline-toolbar-grp .mce-btn-group .mce-btn:last-child{margin-right:2px}.ui-autocomplete.wplink-autocomplete{z-index:100110;max-height:200px;overflow-y:auto;padding:0;margin:0;list-style:none;position:absolute;border:1px solid #5b9dd9;box-shadow:0 1px 2px rgba(30,140,190,.8);background-color:#fff}.ui-autocomplete.wplink-autocomplete li{margin-bottom:0;padding:4px 10px;clear:both;white-space:normal;text-align:left}.ui-autocomplete.wplink-autocomplete li .wp-editor-float-right{float:right}.ui-autocomplete.wplink-autocomplete li.ui-state-focus{background-color:#ddd;cursor:pointer}@media screen and (max-width:782px){div.wp-link-input,div.wp-link-preview{max-width:70%;max-width:calc(100% - 86px)}div.wp-link-preview{margin:8px 0 8px 5px}div.wp-link-input{width:300px}div.wp-link-input input{width:100%;font-size:16px;padding:5px}}.mce-fullscreen{z-index:100010}.rtl .quicktags-toolbar input,.rtl .wp-switch-editor{font-family:Tahoma,sans-serif}.mce-rtl .mce-flow-layout .mce-flow-layout-item>div{direction:rtl}.mce-rtl .mce-listbox i.mce-caret{left:6px}html:lang(he-il) .rtl .quicktags-toolbar input,html:lang(he-il) .rtl .wp-switch-editor{font-family:Arial,sans-serif}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}} \ No newline at end of file +.mce-window .mce-wp-help *,.wp-editor-area{box-sizing:border-box}.mce-tinymce{box-shadow:none}#wp-link-wrap,.mce-window{box-shadow:0 3px 6px rgba(0,0,0,.3)}.mce-container,.mce-container *,.mce-widget,.mce-widget *{color:inherit;font-family:inherit}.mce-container .mce-monospace,.mce-widget .mce-monospace{font-family:Consolas,Monaco,monospace;font-size:13px;line-height:150%}#mce-modal-block,#mce-modal-block.mce-fade{opacity:.7;filter:alpha(opacity=70);transition:none;background:#000}.mce-window{border-radius:0;-webkit-font-smoothing:subpixel-antialiased;transition:none}.mce-window .mce-container-body.mce-abs-layout{overflow:visible}.mce-window .mce-window-head{background:#fcfcfc;border-bottom:1px solid #ddd;padding:0;min-height:36px}.mce-window .mce-window-head .mce-title{color:#444;font-size:18px;font-weight:600;line-height:36px;margin:0;padding:0 36px 0 16px}.mce-window .mce-window-head .mce-close,.mce-window-head .mce-close .mce-i-remove{color:transparent;top:0;right:0;width:36px;height:36px;padding:0;line-height:36px;text-align:center}.mce-window-head .mce-close .mce-i-remove:before{font:400 20px/36px dashicons;text-align:center;color:#666;width:36px;height:36px;display:block}.mce-window-head .mce-close:focus .mce-i-remove:before,.mce-window-head .mce-close:hover .mce-i-remove:before{color:#00a0d2}.mce-window-head .mce-close:focus .mce-i-remove,div.mce-tab:focus{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.mce-window .mce-window-head .mce-dragh{width:calc(100% - 36px)}.mce-window .mce-foot{border-top:1px solid #ddd}#wp-link .query-results,.mce-checkbox i.mce-i-checkbox,.mce-textbox{border:1px solid #ddd;border-radius:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.07);transition:.05s all ease-in-out}#wp-link .query-results:focus,.mce-checkbox:focus i.mce-i-checkbox,.mce-textbox.mce-focus,.mce-textbox:focus{border-color:#5b9dd9;box-shadow:0 0 2px rgba(30,140,190,.8)}.mce-window .mce-wp-help{height:360px;width:460px;overflow:auto}.mce-window .mce-wp-help>.mce-container-body{width:auto!important}.mce-window .wp-editor-help{padding:10px 10px 0 20px}.mce-window .wp-editor-help h2,.mce-window .wp-editor-help p{margin:8px 0;white-space:normal;font-size:14px;font-weight:400}.mce-window .wp-editor-help table{width:100%;margin-bottom:20px}.mce-window .wp-editor-help table.wp-help-single{margin:0 8px 20px}.mce-window .wp-editor-help table.fixed{table-layout:fixed}.mce-window .wp-editor-help table.fixed td:nth-child(odd),.mce-window .wp-editor-help table.fixed th:nth-child(odd){width:12%}.mce-window .wp-editor-help table.fixed td:nth-child(even),.mce-window .wp-editor-help table.fixed th:nth-child(even){width:38%}.mce-window .wp-editor-help table.fixed th:nth-child(odd){padding:5px 0 0}.mce-window .wp-editor-help td,.mce-window .wp-editor-help th{font-size:13px;padding:5px;vertical-align:middle;word-wrap:break-word;white-space:normal}.mce-window .wp-editor-help th{font-weight:600;padding-bottom:0}.mce-window .wp-editor-help kbd{font-family:monospace;padding:2px 7px 3px;font-weight:600;margin:0;background:#eaeaea;background:rgba(0,0,0,.08)}.mce-window .wp-help-th-center td:nth-child(odd),.mce-window .wp-help-th-center th:nth-child(odd){text-align:center}.mce-floatpanel.mce-popover,.mce-menu{border-color:rgba(0,0,0,.15);border-radius:0;box-shadow:0 3px 5px rgba(0,0,0,.2)}.mce-floatpanel.mce-popover.mce-bottom,.mce-menu{margin-top:2px}.mce-floatpanel .mce-arrow{display:none}.mce-menu .mce-container-body{min-width:160px}.mce-menu-item{border:none;margin-bottom:2px;padding:6px 15px 6px 12px}.mce-menu-has-icons i.mce-ico{line-height:20px}div.mce-panel{border:0;background:#fff}.mce-panel.mce-menu{border:1px solid #ddd}div.mce-tab{line-height:13px}div.mce-toolbar-grp{border-bottom:1px solid #ddd;background:#f5f5f5;padding:0;position:relative}div.mce-inline-toolbar-grp{border:1px solid #a0a5aa;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.15);box-sizing:border-box;margin-bottom:8px;position:absolute;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;max-width:98%;z-index:100100}div.mce-inline-toolbar-grp>div.mce-stack-layout{padding:1px}div.mce-inline-toolbar-grp.mce-arrow-up{margin-bottom:0;margin-top:8px}div.mce-inline-toolbar-grp:after,div.mce-inline-toolbar-grp:before{position:absolute;left:50%;display:block;width:0;height:0;border-style:solid;border-color:transparent;content:""}.mce-menu.mce-menu-align .mce-menu-item-normal,.quicktags-toolbar,.wp-editor-tools,.wp-editor-wrap,.wp-switch-editor{position:relative}div.mce-inline-toolbar-grp.mce-arrow-up:before{top:-9px;border-bottom-color:#a0a5aa;border-width:0 9px 9px;margin-left:-9px}div.mce-inline-toolbar-grp.mce-arrow-down:before{bottom:-9px;border-top-color:#a0a5aa;border-width:9px 9px 0;margin-left:-9px}div.mce-inline-toolbar-grp.mce-arrow-up:after{top:-8px;border-bottom-color:#f5f5f5;border-width:0 8px 8px;margin-left:-8px}div.mce-inline-toolbar-grp.mce-arrow-down:after{bottom:-8px;border-top-color:#f5f5f5;border-width:8px 8px 0;margin-left:-8px}div.mce-inline-toolbar-grp.mce-arrow-left:after,div.mce-inline-toolbar-grp.mce-arrow-left:before{margin:0}div.mce-inline-toolbar-grp.mce-arrow-left:before{left:20px}div.mce-inline-toolbar-grp.mce-arrow-left:after{left:21px}div.mce-inline-toolbar-grp.mce-arrow-right:after,div.mce-inline-toolbar-grp.mce-arrow-right:before{left:auto;margin:0}div.mce-inline-toolbar-grp.mce-arrow-right:before{right:20px}div.mce-inline-toolbar-grp.mce-arrow-right:after{right:21px}div.mce-inline-toolbar-grp.mce-arrow-full{right:0}div.mce-inline-toolbar-grp.mce-arrow-full>div{width:100%;overflow-x:auto}div.mce-toolbar-grp>div{padding:3px}.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-right:32px}.mce-toolbar .mce-btn-group{margin:0}div.mce-statusbar{border-top:1px solid #e5e5e5}div.mce-path{padding:2px 10px;margin:0}.mce-path,.mce-path .mce-divider,.mce-path-item{font-size:12px}.mce-toolbar .mce-btn,.qt-dfw{border-color:transparent;background:0 0;box-shadow:none;text-shadow:none;cursor:pointer}.mce-btn .mce-txt{direction:inherit;text-align:inherit}.mce-toolbar .mce-btn-group .mce-btn,.qt-dfw{border:1px solid transparent;margin:2px;border-radius:2px}.mce-toolbar .mce-btn-group .mce-btn:focus,.mce-toolbar .mce-btn-group .mce-btn:hover,.qt-dfw:focus,.qt-dfw:hover{background:#fafafa;border-color:#555d66;color:#23282d;box-shadow:inset 0 1px 0 #fff,0 1px 0 rgba(0,0,0,.08);outline:0}.mce-toolbar .mce-btn-group .mce-btn.mce-active,.mce-toolbar .mce-btn-group .mce-btn:active,.qt-dfw.active{background:#ebebeb;border-color:#555d66;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.3)}.mce-btn.mce-active,.mce-btn.mce-active button,.mce-btn.mce-active i,.mce-btn.mce-active:hover button,.mce-btn.mce-active:hover i{color:inherit}.mce-toolbar .mce-btn-group .mce-btn.mce-active:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-active:hover{border-color:#23282d}.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:hover{color:#a0a5aa;background:0 0;border-color:#ddd;text-shadow:0 1px 0 #fff;box-shadow:none}.mce-toolbar .mce-btn-group .mce-btn.mce-disabled:focus{border-color:#555d66}.mce-toolbar .mce-btn-group .mce-first,.mce-toolbar .mce-btn-group .mce-last{border-color:transparent}.mce-toolbar .mce-btn button,.qt-dfw{padding:2px 3px;line-height:normal}.mce-toolbar .mce-listbox button{font-size:13px;line-height:20px;padding-left:6px;padding-right:20px}.mce-toolbar .mce-btn i{text-shadow:none}.mce-toolbar .mce-btn-group>div{white-space:normal}.mce-toolbar .mce-colorbutton .mce-open{border-right:0}.mce-toolbar .mce-colorbutton .mce-preview{margin:0;padding:0;top:auto;bottom:2px;left:3px;height:3px;width:20px;background:#555d66}.mce-toolbar .mce-btn-group .mce-btn.mce-primary{min-width:0;background:#0085ba;border-color:#0073aa #006799 #006799;box-shadow:0 1px 0 #006799;color:#fff;text-decoration:none;text-shadow:none}.mce-toolbar .mce-btn-group .mce-btn.mce-primary button{padding:2px 3px 1px}.mce-toolbar .mce-btn-group .mce-btn.mce-primary .mce-ico{color:#fff}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-primary:hover{background:#008ec2;border-color:#006799;color:#fff}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:focus{box-shadow:0 0 1px 1px #33b3db}.mce-toolbar .mce-btn-group .mce-btn.mce-primary:active{background:#0073aa;border-color:#006799;box-shadow:inset 0 2px 0 #006799}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox{border-radius:0;direction:ltr;background:#fff;border:1px solid #ddd;box-shadow:inset 0 1px 1px -1px rgba(0,0,0,.2)}.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:focus,.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:hover{border-color:#b4b9be}.mce-panel .mce-btn i.mce-caret{border-top:6px solid #555d66;margin-left:2px;margin-right:2px}.mce-listbox i.mce-caret{right:4px}.mce-panel .mce-btn:focus i.mce-caret,.mce-panel .mce-btn:hover i.mce-caret{border-top-color:#23282d}.mce-panel .mce-active i.mce-caret{border-top:0;border-bottom:6px solid #23282d;margin-top:7px}.mce-listbox.mce-active i.mce-caret{margin-top:-3px}.mce-toolbar .mce-splitbtn:hover .mce-open{border-right-color:transparent}.mce-toolbar .mce-splitbtn .mce-open.mce-active{background:0 0;outline:0}.mce-menu .mce-menu-item-normal.mce-active,.mce-menu .mce-menu-item-preview.mce-active,.mce-menu .mce-menu-item.mce-selected,.mce-menu .mce-menu-item:focus,.mce-menu .mce-menu-item:hover{background:#0073aa;color:#fff}.mce-menu-item.mce-active .mce-menu-shortcut,.mce-menu-item.mce-disabled:hover .mce-ico,.mce-menu-item.mce-disabled:hover .mce-text,.mce-menu-item:focus .mce-ico,.mce-menu-item:focus .mce-menu-shortcut,.mce-menu-item:focus .mce-text,.mce-menu-item:hover .mce-ico,.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item:hover .mce-text{color:inherit}.mce-menu .mce-menu-item.mce-disabled{cursor:default}.mce-menu .mce-menu-item.mce-disabled:hover{background:#ccc}div.mce-menubar{border-color:#e5e5e5;background:#fff;border-width:0 0 1px}.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus,.mce-menubar .mce-menubtn:hover{border-color:transparent;background:0 0}.mce-menubar .mce-menubtn:focus{color:#124964;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.mce-menu-item-sep:hover,div.mce-menu .mce-menu-item-sep{border-bottom:1px solid #ddd;height:0;margin:5px 0}.mce-menubtn span{margin-right:0;padding-left:3px}.mce-menu-has-icons i.mce-ico:before{margin-left:-2px}.mce-menu.mce-menu-align .mce-menu-shortcut{bottom:.6em;font-size:.9em}.mce-primary button,.mce-primary button i{text-align:center;color:#fff;text-shadow:none;padding:0;line-height:26px}.mce-window .mce-btn{color:#555;background:#f7f7f7;text-decoration:none;font-size:13px;line-height:26px;height:28px;margin:0;padding:0;cursor:pointer;border:1px solid #ccc;-webkit-appearance:none;border-radius:3px;white-space:nowrap;box-shadow:0 1px 0 #ccc}.mce-window .mce-btn::-moz-focus-inner{border-width:0;border-style:none;padding:0}.mce-window .mce-btn:focus,.mce-window .mce-btn:hover{background:#fafafa;border-color:#999;color:#23282d}.mce-window .mce-btn:focus{border-color:#5b9dd9;box-shadow:0 0 3px rgba(0,115,170,.8)}.mce-window .mce-btn:active{background:#eee;border-color:#999;box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);-webkit-transform:translateY(1px);transform:translateY(1px)}.mce-window .mce-btn.mce-disabled{color:#a0a5aa!important;border-color:#ddd!important;background:#f7f7f7!important;box-shadow:none!important;text-shadow:0 1px 0 #fff!important;cursor:default;-webkit-transform:none!important;transform:none!important}.mce-window .mce-btn.mce-primary{background:#0085ba;border-color:#0073aa #006799 #006799;box-shadow:0 1px 0 #006799;color:#fff;text-decoration:none;text-shadow:0 -1px 1px #006799,1px 0 1px #006799,0 1px 1px #006799,-1px 0 1px #006799}.mce-window .mce-btn.mce-primary:focus,.mce-window .mce-btn.mce-primary:hover{background:#008ec2;border-color:#006799;color:#fff}.mce-window .mce-btn.mce-primary:focus{box-shadow:0 1px 0 #0073aa,0 0 2px 1px #33b3db}.mce-window .mce-btn.mce-primary:active{background:#0073aa;border-color:#006799;box-shadow:inset 0 2px 0 #006799;vertical-align:top}.mce-window .mce-btn.mce-primary.mce-disabled{color:#66c6e4!important;background:#008ec2!important;border-color:#007cb2!important;box-shadow:none!important;text-shadow:0 -1px 0 rgba(0,0,0,.1)!important;cursor:default}.mce-toolbar .mce-ico,.qt-dfw{text-shadow:none;text-align:center}.mce-menubtn.mce-fixed-width span{overflow-x:hidden;text-overflow:ellipsis;width:82px}.mce-charmap{margin:3px}.mce-charmap td{padding:0;border-color:#ddd;cursor:pointer}.mce-charmap td:hover{background:#f3f3f3}.mce-charmap td div{width:18px;height:22px;line-height:22px}.mce-toolbar .mce-btn .mce-open,.qt-dfw{line-height:20px}.mce-tooltip{margin-top:2px}.rtl .mce-tooltip.wp-hide-mce-tooltip{display:none!important}.mce-tooltip-inner{border-radius:3px;box-shadow:0 3px 5px rgba(0,0,0,.2);color:#fff;font-size:12px}.mce-ico{font-family:tinymce,Arial}.mce-btn-small .mce-ico{font-family:tinymce-small,Arial}.mce-toolbar .mce-ico{color:#555d66;line-height:20px;width:20px;height:20px;margin:0;padding:0}.qt-dfw{color:#555d66;width:28px;height:26px}.mce-toolbar .mce-btn.mce-active .mce-open,.mce-toolbar .mce-btn:focus .mce-open,.mce-toolbar .mce-btn:hover .mce-open{border-left-color:#23282d}div.mce-notification{left:10%!important;right:10%}.mce-notification button.mce-close{right:6px;top:3px;font-weight:400;color:#555d66}.mce-notification button.mce-close:focus,.mce-notification button.mce-close:hover{color:#000}i.mce-i-aligncenter,i.mce-i-alignjustify,i.mce-i-alignleft,i.mce-i-alignright,i.mce-i-backcolor,i.mce-i-blockquote,i.mce-i-bold,i.mce-i-bullist,i.mce-i-charmap,i.mce-i-dashicon,i.mce-i-dfw,i.mce-i-forecolor,i.mce-i-fullscreen,i.mce-i-help,i.mce-i-hr,i.mce-i-indent,i.mce-i-italic,i.mce-i-link,i.mce-i-ltr,i.mce-i-numlist,i.mce-i-outdent,i.mce-i-pastetext,i.mce-i-pasteword,i.mce-i-redo,i.mce-i-remove,i.mce-i-removeformat,i.mce-i-spellchecker,i.mce-i-strikethrough,i.mce-i-underline,i.mce-i-undo,i.mce-i-unlink,i.mce-i-wp-media-library,i.mce-i-wp_adv,i.mce-i-wp_code,i.mce-i-wp_fullscreen,i.mce-i-wp_help,i.mce-i-wp_more,i.mce-i-wp_page{font:400 20px/1 dashicons;padding:0 2px 0 0;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin-left:-2px}.qt-dfw{font:400 20px/1 dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}i.mce-i-bold:before{content:"\f200"}i.mce-i-italic:before{content:"\f201"}i.mce-i-bullist:before{content:"\f203"}i.mce-i-numlist:before{content:"\f204"}i.mce-i-blockquote:before{content:"\f205"}i.mce-i-alignleft:before{content:"\f206"}i.mce-i-aligncenter:before{content:"\f207"}i.mce-i-alignright:before{content:"\f208"}i.mce-i-link:before{content:"\f103"}i.mce-i-unlink:before{content:"\f225"}i.mce-i-wp_more:before{content:"\f209"}i.mce-i-strikethrough:before{content:"\f224"}i.mce-i-spellchecker:before{content:"\f210"}.qt-dfw:before,i.mce-i-dfw:before,i.mce-i-fullscreen:before,i.mce-i-wp_fullscreen:before{content:"\f211"}i.mce-i-wp_adv:before{content:"\f212"}i.mce-i-underline:before{content:"\f213"}i.mce-i-alignjustify:before{content:"\f214"}i.mce-i-backcolor:before,i.mce-i-forecolor:before{content:"\f215"}i.mce-i-pastetext:before{content:"\f217"}i.mce-i-removeformat:before{content:"\f218"}i.mce-i-charmap:before{content:"\f220"}i.mce-i-outdent:before{content:"\f221"}i.mce-i-indent:before{content:"\f222"}i.mce-i-undo:before{content:"\f171"}i.mce-i-redo:before{content:"\f172"}i.mce-i-help:before,i.mce-i-wp_help:before{content:"\f223"}i.mce-i-wp-media-library:before{content:"\f104"}i.mce-i-ltr:before{content:"\f320"}i.mce-i-wp_page:before{content:"\f105"}i.mce-i-hr:before{content:"\f460"}i.mce-i-remove:before{content:"\f158"}i.mce-i-wp_code:before{content:"\f475"}.rtl i.mce-i-outdent:before{content:"\f222"}.rtl i.mce-i-indent:before{content:"\f221"}.wp-editor-tools{z-index:1}.wp-editor-tools:after{clear:both;content:"";display:table}.wp-editor-container{clear:both;border:1px solid #e5e5e5}.wp-editor-area{font-family:Consolas,Monaco,monospace;font-size:13px;padding:10px;margin:1px 0 0;line-height:150%;border:0;outline:0;display:block;resize:vertical}.rtl .wp-editor-area{font-family:Tahoma,Monaco,monospace}.locale-he-il .wp-editor-area{font-family:Arial,Monaco,monospace}.wp-editor-container textarea.wp-editor-area{width:100%;margin:0;box-shadow:none}.wp-editor-tabs{float:right}.wp-switch-editor{float:left;box-sizing:content-box;top:1px;background:#ebebeb;color:#666;cursor:pointer;font-size:13px;line-height:19px;height:20px;margin:5px 0 0 5px;padding:3px 8px 4px;border:1px solid #e5e5e5}.wp-switch-editor:focus{box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);outline:0;color:#23282d}.html-active .switch-html:focus,.tmce-active .switch-tmce:focus,.wp-switch-editor:active{box-shadow:none}.wp-switch-editor:active{background-color:#f5f5f5;box-shadow:none}.js .tmce-active .wp-editor-area{color:#fff}.tmce-active .quicktags-toolbar{display:none}.html-active .switch-html,.tmce-active .switch-tmce{background:#f5f5f5;color:#555;border-bottom-color:#f5f5f5}.wp-media-buttons{float:left}.wp-media-buttons .button{margin-right:5px;margin-bottom:4px;padding-left:7px;padding-right:7px}.wp-media-buttons .button:active{position:relative;top:1px;margin-top:-1px;margin-bottom:1px}.wp-media-buttons .insert-media{padding-left:5px}.wp-media-buttons a{text-decoration:none;color:#444;font-size:12px}.wp-media-buttons img{padding:0 4px;vertical-align:middle}.wp-media-buttons span.wp-media-buttons-icon{display:inline-block;width:18px;height:18px;vertical-align:text-top;margin:0 2px}.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}.wp-media-buttons .add_media span.wp-media-buttons-icon:before{font:400 18px/1 dashicons;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:"\f104"}.quicktags-toolbar{padding:3px;border-bottom:1px solid #ddd;background:#f5f5f5;min-height:30px}.has-dfw .quicktags-toolbar{padding-right:35px}.wp-core-ui .quicktags-toolbar input.button.button-small{margin:2px}.quicktags-toolbar input[value=link]{text-decoration:underline}.quicktags-toolbar input[value=del]{text-decoration:line-through}.quicktags-toolbar input[value="i"]{font-style:italic}.quicktags-toolbar input[value="b"]{font-weight:600}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw,.qt-dfw{position:absolute;top:0;right:0;margin:5px 5px 0 0}.qt-fullscreen{position:static;margin:2px}@media screen and (max-width:782px){.mce-toolbar .mce-btn button,.qt-dfw{padding:6px 7px}.mce-toolbar .mce-btn-group .mce-btn.mce-primary button{padding:6px 7px 5px}.mce-toolbar .mce-btn-group .mce-btn{margin:1px}.qt-dfw{width:36px;height:34px}.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw{margin:4px 4px 0 0}.mce-toolbar .mce-colorbutton .mce-preview{left:8px;bottom:6px}.mce-window .mce-btn{padding:2px 0}.has-dfw .quicktags-toolbar,.has-dfw div.mce-toolbar-grp .mce-toolbar.mce-first{padding-right:40px}}@media screen and (min-width:782px){.wp-core-ui .quicktags-toolbar input.button.button-small{font-size:12px;height:26px;line-height:24px}}#wp_editbtns,#wp_gallerybtns{padding:2px;position:absolute;display:none;z-index:100020}#wp_delgallery,#wp_delimgbtn,#wp_editgallery,#wp_editimgbtn{border-color:#999;background-color:#eee;margin:2px;padding:2px;border-width:1px;border-style:solid;border-radius:3px}#wp_delgallery:hover,#wp_delimgbtn:hover,#wp_editgallery:hover,#wp_editimgbtn:hover{border-color:#555;background-color:#ccc}#wp-link-wrap{display:none;background-color:#fff;width:500px;overflow:hidden;margin-left:-250px;position:fixed;top:50%;left:50%;z-index:100105;transition:height .2s,margin-top .2s;height:500px;margin-top:-250px}#wp-link-backdrop{display:none;position:fixed;top:0;left:0;right:0;bottom:0;min-height:360px;background:#000;opacity:.7;filter:alpha(opacity=70);z-index:100100}#wp-link{position:relative;height:100%}#wp-link-wrap .wp-link-text-field{display:none}#wp-link-wrap.has-text-field .wp-link-text-field{display:block}#link-modal-title{background:#fcfcfc;border-bottom:1px solid #ddd;height:36px;font-size:18px;font-weight:600;line-height:36px;margin:0;padding:0 36px 0 16px}#wp-link-close{color:#666;padding:0;position:absolute;top:0;right:0;width:36px;height:36px;text-align:center;background:0 0;border:none;cursor:pointer}#wp-link-close:before{font:400 20px/36px dashicons;vertical-align:top;speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:36px;height:36px;content:"\f158"}#wp-link-close:focus,#wp-link-close:hover{color:#00a0d2}#wp-link-close:focus{outline:0;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#wp-link-wrap #link-selector{-webkit-overflow-scrolling:touch;padding:0 16px;position:absolute;top:37px;left:0;right:0;bottom:44px}#wp-link ol,#wp-link ul{list-style:none;margin:0;padding:0}#wp-link input[type=text]{box-sizing:border-box}#wp-link #link-options{padding:8px 0 12px}#wp-link p.howto{margin:3px 0}#wp-link p.howto a{text-decoration:none;color:inherit}#wp-link label input[type=text]{margin-top:5px;width:70%}#wp-link #link-options label span,#wp-link #search-panel label span.search-label{display:inline-block;width:80px;text-align:right;padding-right:5px;max-width:24%;vertical-align:middle;word-wrap:break-word}#wp-link .link-search-field{float:left;width:250px;max-width:70%}#wp-link .link-search-wrapper{margin:5px 0 9px;display:block;overflow:hidden}#wp-link .link-search-wrapper span{float:left;margin-top:4px}#wp-link .link-search-wrapper .spinner{margin-top:5px}#wp-link .link-target{padding:3px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#wp-link .link-target label{max-width:70%}#wp-link .query-results{border:1px solid #dfdfdf;margin:0 0 12px;background:#fff;overflow:auto;position:absolute;left:16px;right:16px;bottom:0;top:166px}.has-text-field #wp-link .query-results{top:200px}#wp-link li{clear:both;margin-bottom:0;border-bottom:1px solid #f1f1f1;color:#32373c;padding:4px 6px 4px 10px;cursor:pointer;position:relative}#wp-link .query-notice,#wp-link li.unselectable{border-bottom:1px solid #dfdfdf}#wp-link .query-notice{padding:0;background-color:#f7fcfe;color:#000}#wp-link .query-notice .query-notice-default,#wp-link .query-notice .query-notice-hint{display:block;padding:6px;border-left:4px solid #00a0d2}#wp-link .unselectable.no-matches-found{padding:0;border-bottom:1px solid #dfdfdf;background-color:#fef7f1}#wp-link .no-matches-found .item-title{display:block;padding:6px;border-left:4px solid #d54e21}#wp-link .query-results em{font-style:normal}#wp-link li:hover{background:#eaf2fa;color:#151515}#wp-link li.unselectable:hover{background:#fff;cursor:auto;color:#32373c}#wp-link li.selected{background:#ddd;color:#32373c}#wp-link li.selected .item-title{font-weight:600}#wp-link li:last-child{border:none}#wp-link .item-title{display:inline-block;width:80%;width:calc(100% - 68px);word-wrap:break-word}#wp-link .item-info{text-transform:uppercase;color:#666;font-size:11px;position:absolute;right:5px;top:5px}#wp-link .river-waiting{display:none;padding:10px 0}#wp-link .submitbox{padding:8px 16px;background:#fcfcfc;border-top:1px solid #ddd;position:absolute;bottom:0;left:0;right:0}#wp-link-cancel{line-height:25px;float:left}#wp-link-update{line-height:23px;float:right}#wp-link-submit{float:right}@media screen and (max-width:782px){#wp-link-wrap{margin-top:-140px}#wp-link-wrap .query-results{top:195px}#wp-link-wrap.has-text-field .query-results{top:235px}#link-selector{padding:0 16px 60px}#wp-link-wrap #link-selector{bottom:52px}#wp-link-cancel{line-height:32px}#wp-link .link-target{padding-top:10px}#wp-link .submitbox .button{margin-bottom:0}}@media screen and (max-width:520px){#wp-link-wrap{width:auto;margin-left:0;left:10px;right:10px;max-width:500px}}@media screen and (max-height:520px){#wp-link-wrap{transition:none;height:auto;margin-top:0;top:10px;bottom:10px}#link-selector{overflow:auto}#search-panel .query-results{position:static}}@media screen and (max-height:290px){#wp-link-wrap{height:auto;margin-top:0;top:10px;bottom:10px}#link-selector{overflow:auto;height:calc(100% - 92px);padding-bottom:2px}#search-panel .query-results{position:static}}div.wp-link-preview{float:left;margin:5px;max-width:694px;overflow:hidden;text-overflow:ellipsis}div.wp-link-preview a{color:#0073aa;text-decoration:underline;transition-property:border,background,color;transition-duration:.05s;transition-timing-function:ease-in-out;cursor:pointer}div.wp-link-preview a.wplink-url-error{color:#dc3232}div.wp-link-input{float:left;margin:2px;max-width:694px}div.wp-link-input input{width:300px;padding:3px;box-sizing:border-box}.mce-toolbar div.wp-link-input~.mce-btn,.mce-toolbar div.wp-link-preview~.mce-btn{margin:2px 1px}.mce-inline-toolbar-grp .mce-btn-group .mce-btn:last-child{margin-right:2px}.ui-autocomplete.wplink-autocomplete{z-index:100110;max-height:200px;overflow-y:auto;padding:0;margin:0;list-style:none;position:absolute;border:1px solid #5b9dd9;box-shadow:0 1px 2px rgba(30,140,190,.8);background-color:#fff}.ui-autocomplete.wplink-autocomplete li{margin-bottom:0;padding:4px 10px;clear:both;white-space:normal;text-align:left}.ui-autocomplete.wplink-autocomplete li .wp-editor-float-right{float:right}.ui-autocomplete.wplink-autocomplete li.ui-state-focus{background-color:#ddd;cursor:pointer}@media screen and (max-width:782px){div.wp-link-input,div.wp-link-preview{max-width:70%;max-width:calc(100% - 86px)}div.wp-link-preview{margin:8px 0 8px 5px}div.wp-link-input{width:300px}div.wp-link-input input{width:100%;font-size:16px;padding:5px}}.mce-fullscreen{z-index:100010}.rtl .quicktags-toolbar input,.rtl .wp-switch-editor{font-family:Tahoma,sans-serif}.mce-rtl .mce-flow-layout .mce-flow-layout-item>div{direction:rtl}.mce-rtl .mce-listbox i.mce-caret{left:6px}html:lang(he-il) .rtl .quicktags-toolbar input,html:lang(he-il) .rtl .wp-switch-editor{font-family:Arial,sans-serif}@media print,(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.wp-media-buttons .add_media span.wp-media-buttons-icon{background:0 0}} \ No newline at end of file diff --git a/wp-includes/css/wp-pointer-rtl.css b/wp-includes/css/wp-pointer-rtl.css index 77c112a96..15c8a1947 100644 --- a/wp-includes/css/wp-pointer-rtl.css +++ b/wp-includes/css/wp-pointer-rtl.css @@ -36,8 +36,13 @@ -moz-osx-font-smoothing: grayscale; } +.wp-pointer-content h4 { + margin: 1.33em 20px 1em; + font-size: 1.15em; +} + .wp-pointer-content p { - padding: 0 15px; + padding: 0 20px; } .wp-pointer-buttons { @@ -202,6 +207,15 @@ content: " "; } +.wp-pointer.arrow-bottom .wp-pointer-content { + margin-bottom: -45px; +} + +.wp-pointer.arrow-bottom .wp-pointer-arrow { + top: 100%; + margin-top: -30px; +} + /* Disable pointers at responsive sizes */ @media screen and ( max-width: 782px ) { .wp-pointer { diff --git a/wp-includes/css/wp-pointer-rtl.min.css b/wp-includes/css/wp-pointer-rtl.min.css index 1e482b042..9fac286ae 100644 --- a/wp-includes/css/wp-pointer-rtl.min.css +++ b/wp-includes/css/wp-pointer-rtl.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -.wp-pointer-content{padding:0 0 10px;position:relative;font-size:13px;background:#fff;border:1px solid #ddd;box-shadow:0 3px 6px rgba(0,0,0,.075)}.wp-pointer-content h3{position:relative;margin:-1px -1px 5px;padding:15px 60px 14px 18px;border:1px solid #3592b6;border-bottom:none;line-height:1.4em;font-size:14px;color:#fff;background:#00a0d2}.wp-pointer-content h3:before{background:#fff;border-radius:50%;color:#00a0d2;content:"\f227";font:400 20px/1.6 dashicons;position:absolute;top:8px;right:15px;speak:none;text-align:center;width:32px;height:32px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-pointer-content p{padding:0 15px}.wp-pointer-buttons{margin:0;padding:5px 15px;overflow:auto}.wp-pointer-buttons a{float:left;display:inline-block;text-decoration:none}.wp-pointer-buttons a.close{padding-right:3px;position:relative}.wp-pointer-buttons a.close:before{background:0 0;color:#72777c;content:"\f153";display:block!important;font:400 16px/1 dashicons;speak:none;margin:1px 0;text-align:center;-webkit-font-smoothing:antialiased!important;width:10px;height:100%;position:absolute;right:-15px;top:1px}.wp-pointer-buttons a.close:hover:before{color:#c00}.wp-pointer-arrow,.wp-pointer-arrow-inner{position:absolute;width:0;height:0}.wp-pointer-arrow{z-index:10;width:0;height:0;border:0 solid transparent}.wp-pointer-arrow-inner{z-index:20}.wp-pointer-top,.wp-pointer-undefined{padding-top:13px}.wp-pointer-bottom{margin-top:-13px;padding-bottom:13px}.wp-pointer-left{padding-left:13px}.wp-pointer-right{margin-left:-13px;padding-right:13px}.wp-pointer-bottom .wp-pointer-arrow,.wp-pointer-top .wp-pointer-arrow,.wp-pointer-undefined .wp-pointer-arrow{right:50px}.wp-pointer-left .wp-pointer-arrow,.wp-pointer-right .wp-pointer-arrow{top:50%;margin-top:-15px}.wp-pointer-top .wp-pointer-arrow,.wp-pointer-undefined .wp-pointer-arrow{top:0;border-width:0 13px 13px;border-bottom-color:#3592b6}.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer-undefined .wp-pointer-arrow-inner{top:1px;margin-right:-13px;margin-top:-13px;border:13px solid transparent;border-bottom-color:#00a0d2;display:block;content:" "}.wp-pointer-bottom .wp-pointer-arrow{bottom:0;border-width:13px 13px 0;border-top-color:#ccc}.wp-pointer-bottom .wp-pointer-arrow-inner{bottom:1px;margin-right:-13px;margin-bottom:-13px;border:13px solid transparent;border-top-color:#fff;display:block;content:" "}.wp-pointer-left .wp-pointer-arrow{left:0;border-width:13px 13px 13px 0;border-right-color:#ccc}.wp-pointer-left .wp-pointer-arrow-inner{left:1px;margin-left:-13px;margin-top:-13px;border:13px solid transparent;border-right-color:#fff;display:block;content:" "}.wp-pointer-right .wp-pointer-arrow{right:0;border-width:13px 0 13px 13px;border-left-color:#ccc}.wp-pointer-right .wp-pointer-arrow-inner{right:1px;margin-right:-13px;margin-top:-13px;border:13px solid transparent;border-left-color:#fff;display:block;content:" "}@media screen and (max-width:782px){.wp-pointer{display:none}} \ No newline at end of file +.wp-pointer-content{padding:0 0 10px;position:relative;font-size:13px;background:#fff;border:1px solid #ddd;box-shadow:0 3px 6px rgba(0,0,0,.075)}.wp-pointer-content h3{position:relative;margin:-1px -1px 5px;padding:15px 60px 14px 18px;border:1px solid #3592b6;border-bottom:none;line-height:1.4em;font-size:14px;color:#fff;background:#00a0d2}.wp-pointer-content h3:before{background:#fff;border-radius:50%;color:#00a0d2;content:"\f227";font:400 20px/1.6 dashicons;position:absolute;top:8px;right:15px;speak:none;text-align:center;width:32px;height:32px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-pointer-content h4{margin:1.33em 20px 1em;font-size:1.15em}.wp-pointer-content p{padding:0 20px}.wp-pointer-buttons{margin:0;padding:5px 15px;overflow:auto}.wp-pointer-buttons a{float:left;display:inline-block;text-decoration:none}.wp-pointer-buttons a.close{padding-right:3px;position:relative}.wp-pointer-buttons a.close:before{background:0 0;color:#72777c;content:"\f153";display:block!important;font:400 16px/1 dashicons;speak:none;margin:1px 0;text-align:center;-webkit-font-smoothing:antialiased!important;width:10px;height:100%;position:absolute;right:-15px;top:1px}.wp-pointer-buttons a.close:hover:before{color:#c00}.wp-pointer-arrow,.wp-pointer-arrow-inner{position:absolute;width:0;height:0}.wp-pointer-arrow{z-index:10;width:0;height:0;border:0 solid transparent}.wp-pointer-arrow-inner{z-index:20}.wp-pointer-top,.wp-pointer-undefined{padding-top:13px}.wp-pointer-bottom{margin-top:-13px;padding-bottom:13px}.wp-pointer-left{padding-left:13px}.wp-pointer-right{margin-left:-13px;padding-right:13px}.wp-pointer-bottom .wp-pointer-arrow,.wp-pointer-top .wp-pointer-arrow,.wp-pointer-undefined .wp-pointer-arrow{right:50px}.wp-pointer-left .wp-pointer-arrow,.wp-pointer-right .wp-pointer-arrow{top:50%;margin-top:-15px}.wp-pointer-top .wp-pointer-arrow,.wp-pointer-undefined .wp-pointer-arrow{top:0;border-width:0 13px 13px;border-bottom-color:#3592b6}.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer-undefined .wp-pointer-arrow-inner{top:1px;margin-right:-13px;margin-top:-13px;border:13px solid transparent;border-bottom-color:#00a0d2;display:block;content:" "}.wp-pointer-bottom .wp-pointer-arrow{bottom:0;border-width:13px 13px 0;border-top-color:#ccc}.wp-pointer-bottom .wp-pointer-arrow-inner{bottom:1px;margin-right:-13px;margin-bottom:-13px;border:13px solid transparent;border-top-color:#fff;display:block;content:" "}.wp-pointer-left .wp-pointer-arrow{left:0;border-width:13px 13px 13px 0;border-right-color:#ccc}.wp-pointer-left .wp-pointer-arrow-inner{left:1px;margin-left:-13px;margin-top:-13px;border:13px solid transparent;border-right-color:#fff;display:block;content:" "}.wp-pointer-right .wp-pointer-arrow{right:0;border-width:13px 0 13px 13px;border-left-color:#ccc}.wp-pointer-right .wp-pointer-arrow-inner{right:1px;margin-right:-13px;margin-top:-13px;border:13px solid transparent;border-left-color:#fff;display:block;content:" "}.wp-pointer.arrow-bottom .wp-pointer-content{margin-bottom:-45px}.wp-pointer.arrow-bottom .wp-pointer-arrow{top:100%;margin-top:-30px}@media screen and (max-width:782px){.wp-pointer{display:none}} \ No newline at end of file diff --git a/wp-includes/css/wp-pointer.css b/wp-includes/css/wp-pointer.css index ed37b8443..f8d58be9f 100644 --- a/wp-includes/css/wp-pointer.css +++ b/wp-includes/css/wp-pointer.css @@ -36,8 +36,13 @@ -moz-osx-font-smoothing: grayscale; } +.wp-pointer-content h4 { + margin: 1.33em 20px 1em; + font-size: 1.15em; +} + .wp-pointer-content p { - padding: 0 15px; + padding: 0 20px; } .wp-pointer-buttons { @@ -202,6 +207,15 @@ content: " "; } +.wp-pointer.arrow-bottom .wp-pointer-content { + margin-bottom: -45px; +} + +.wp-pointer.arrow-bottom .wp-pointer-arrow { + top: 100%; + margin-top: -30px; +} + /* Disable pointers at responsive sizes */ @media screen and ( max-width: 782px ) { .wp-pointer { diff --git a/wp-includes/css/wp-pointer.min.css b/wp-includes/css/wp-pointer.min.css index 75bc76bab..3c047e524 100644 --- a/wp-includes/css/wp-pointer.min.css +++ b/wp-includes/css/wp-pointer.min.css @@ -1,2 +1,2 @@ /*! This file is auto-generated */ -.wp-pointer-content{padding:0 0 10px;position:relative;font-size:13px;background:#fff;border:1px solid #ddd;box-shadow:0 3px 6px rgba(0,0,0,.075)}.wp-pointer-content h3{position:relative;margin:-1px -1px 5px;padding:15px 18px 14px 60px;border:1px solid #3592b6;border-bottom:none;line-height:1.4em;font-size:14px;color:#fff;background:#00a0d2}.wp-pointer-content h3:before{background:#fff;border-radius:50%;color:#00a0d2;content:"\f227";font:400 20px/1.6 dashicons;position:absolute;top:8px;left:15px;speak:none;text-align:center;width:32px;height:32px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-pointer-content p{padding:0 15px}.wp-pointer-buttons{margin:0;padding:5px 15px;overflow:auto}.wp-pointer-buttons a{float:right;display:inline-block;text-decoration:none}.wp-pointer-buttons a.close{padding-left:3px;position:relative}.wp-pointer-buttons a.close:before{background:0 0;color:#72777c;content:"\f153";display:block!important;font:400 16px/1 dashicons;speak:none;margin:1px 0;text-align:center;-webkit-font-smoothing:antialiased!important;width:10px;height:100%;position:absolute;left:-15px;top:1px}.wp-pointer-buttons a.close:hover:before{color:#c00}.wp-pointer-arrow,.wp-pointer-arrow-inner{position:absolute;width:0;height:0}.wp-pointer-arrow{z-index:10;width:0;height:0;border:0 solid transparent}.wp-pointer-arrow-inner{z-index:20}.wp-pointer-top,.wp-pointer-undefined{padding-top:13px}.wp-pointer-bottom{margin-top:-13px;padding-bottom:13px}.wp-pointer-left{padding-left:13px}.wp-pointer-right{margin-left:-13px;padding-right:13px}.wp-pointer-bottom .wp-pointer-arrow,.wp-pointer-top .wp-pointer-arrow,.wp-pointer-undefined .wp-pointer-arrow{left:50px}.wp-pointer-left .wp-pointer-arrow,.wp-pointer-right .wp-pointer-arrow{top:50%;margin-top:-15px}.wp-pointer-top .wp-pointer-arrow,.wp-pointer-undefined .wp-pointer-arrow{top:0;border-width:0 13px 13px;border-bottom-color:#3592b6}.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer-undefined .wp-pointer-arrow-inner{top:1px;margin-left:-13px;margin-top:-13px;border:13px solid transparent;border-bottom-color:#00a0d2;display:block;content:" "}.wp-pointer-bottom .wp-pointer-arrow{bottom:0;border-width:13px 13px 0;border-top-color:#ccc}.wp-pointer-bottom .wp-pointer-arrow-inner{bottom:1px;margin-left:-13px;margin-bottom:-13px;border:13px solid transparent;border-top-color:#fff;display:block;content:" "}.wp-pointer-left .wp-pointer-arrow{left:0;border-width:13px 13px 13px 0;border-right-color:#ccc}.wp-pointer-left .wp-pointer-arrow-inner{left:1px;margin-left:-13px;margin-top:-13px;border:13px solid transparent;border-right-color:#fff;display:block;content:" "}.wp-pointer-right .wp-pointer-arrow{right:0;border-width:13px 0 13px 13px;border-left-color:#ccc}.wp-pointer-right .wp-pointer-arrow-inner{right:1px;margin-right:-13px;margin-top:-13px;border:13px solid transparent;border-left-color:#fff;display:block;content:" "}@media screen and (max-width:782px){.wp-pointer{display:none}} \ No newline at end of file +.wp-pointer-content{padding:0 0 10px;position:relative;font-size:13px;background:#fff;border:1px solid #ddd;box-shadow:0 3px 6px rgba(0,0,0,.075)}.wp-pointer-content h3{position:relative;margin:-1px -1px 5px;padding:15px 18px 14px 60px;border:1px solid #3592b6;border-bottom:none;line-height:1.4em;font-size:14px;color:#fff;background:#00a0d2}.wp-pointer-content h3:before{background:#fff;border-radius:50%;color:#00a0d2;content:"\f227";font:400 20px/1.6 dashicons;position:absolute;top:8px;left:15px;speak:none;text-align:center;width:32px;height:32px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.wp-pointer-content h4{margin:1.33em 20px 1em;font-size:1.15em}.wp-pointer-content p{padding:0 20px}.wp-pointer-buttons{margin:0;padding:5px 15px;overflow:auto}.wp-pointer-buttons a{float:right;display:inline-block;text-decoration:none}.wp-pointer-buttons a.close{padding-left:3px;position:relative}.wp-pointer-buttons a.close:before{background:0 0;color:#72777c;content:"\f153";display:block!important;font:400 16px/1 dashicons;speak:none;margin:1px 0;text-align:center;-webkit-font-smoothing:antialiased!important;width:10px;height:100%;position:absolute;left:-15px;top:1px}.wp-pointer-buttons a.close:hover:before{color:#c00}.wp-pointer-arrow,.wp-pointer-arrow-inner{position:absolute;width:0;height:0}.wp-pointer-arrow{z-index:10;width:0;height:0;border:0 solid transparent}.wp-pointer-arrow-inner{z-index:20}.wp-pointer-top,.wp-pointer-undefined{padding-top:13px}.wp-pointer-bottom{margin-top:-13px;padding-bottom:13px}.wp-pointer-left{padding-left:13px}.wp-pointer-right{margin-left:-13px;padding-right:13px}.wp-pointer-bottom .wp-pointer-arrow,.wp-pointer-top .wp-pointer-arrow,.wp-pointer-undefined .wp-pointer-arrow{left:50px}.wp-pointer-left .wp-pointer-arrow,.wp-pointer-right .wp-pointer-arrow{top:50%;margin-top:-15px}.wp-pointer-top .wp-pointer-arrow,.wp-pointer-undefined .wp-pointer-arrow{top:0;border-width:0 13px 13px;border-bottom-color:#3592b6}.wp-pointer-top .wp-pointer-arrow-inner,.wp-pointer-undefined .wp-pointer-arrow-inner{top:1px;margin-left:-13px;margin-top:-13px;border:13px solid transparent;border-bottom-color:#00a0d2;display:block;content:" "}.wp-pointer-bottom .wp-pointer-arrow{bottom:0;border-width:13px 13px 0;border-top-color:#ccc}.wp-pointer-bottom .wp-pointer-arrow-inner{bottom:1px;margin-left:-13px;margin-bottom:-13px;border:13px solid transparent;border-top-color:#fff;display:block;content:" "}.wp-pointer-left .wp-pointer-arrow{left:0;border-width:13px 13px 13px 0;border-right-color:#ccc}.wp-pointer-left .wp-pointer-arrow-inner{left:1px;margin-left:-13px;margin-top:-13px;border:13px solid transparent;border-right-color:#fff;display:block;content:" "}.wp-pointer-right .wp-pointer-arrow{right:0;border-width:13px 0 13px 13px;border-left-color:#ccc}.wp-pointer-right .wp-pointer-arrow-inner{right:1px;margin-right:-13px;margin-top:-13px;border:13px solid transparent;border-left-color:#fff;display:block;content:" "}.wp-pointer.arrow-bottom .wp-pointer-content{margin-bottom:-45px}.wp-pointer.arrow-bottom .wp-pointer-arrow{top:100%;margin-top:-30px}@media screen and (max-width:782px){.wp-pointer{display:none}} \ No newline at end of file diff --git a/wp-includes/customize/class-wp-customize-theme-control.php b/wp-includes/customize/class-wp-customize-theme-control.php index b80e93d19..daec9b72e 100644 --- a/wp-includes/customize/class-wp-customize-theme-control.php +++ b/wp-includes/customize/class-wp-customize-theme-control.php @@ -115,7 +115,7 @@ class WP_Customize_Theme_Control extends WP_Customize_Control { <div class="theme-id-container"> <h3 class="theme-name" id="{{ data.section }}-{{ data.theme.id }}-name">{{ data.theme.name }}</h3> <div class="theme-actions"> - <button type="button" class="button button-primary preview-theme" aria-label="<?php echo esc_attr( $preview_label ); ?>" data-slug="{{ data.theme.id }}"><?php _e( 'Live Preview' ); ?></span> + <button type="button" class="button button-primary preview-theme" aria-label="<?php echo esc_attr( $preview_label ); ?>" data-slug="{{ data.theme.id }}"><?php _e( 'Live Preview' ); ?></button> </div> </div> <div class="notice notice-success notice-alt"><p><?php _ex( 'Installed', 'theme' ); ?></p></div> diff --git a/wp-includes/default-filters.php b/wp-includes/default-filters.php index d28c07b12..e012beb18 100644 --- a/wp-includes/default-filters.php +++ b/wp-includes/default-filters.php @@ -300,7 +300,7 @@ add_action( 'do_feed_rss2', 'do_feed_rss2', add_action( 'do_feed_atom', 'do_feed_atom', 10, 1 ); add_action( 'do_pings', 'do_all_pings', 10, 1 ); add_action( 'do_robots', 'do_robots' ); -add_action( 'set_comment_cookies', 'wp_set_comment_cookies', 10, 2 ); +add_action( 'set_comment_cookies', 'wp_set_comment_cookies', 10, 3 ); add_action( 'sanitize_comment_cookies', 'sanitize_comment_cookies' ); add_action( 'admin_print_scripts', 'print_emoji_detection_script' ); add_action( 'admin_print_scripts', 'print_head_scripts', 20 ); @@ -320,6 +320,16 @@ add_action( 'comment_form', 'wp_comment_form_unfiltered_html_nonce add_action( 'admin_init', 'send_frame_options_header', 10, 0 ); add_action( 'welcome_panel', 'wp_welcome_panel' ); +// Privacy +add_action( 'user_request_action_confirmed', '_wp_privacy_account_request_confirmed' ); +add_action( 'user_request_action_confirmed', '_wp_privacy_send_request_confirmation_notification', 12 ); // After request marked as completed. +add_filter( 'wp_privacy_personal_data_exporters', 'wp_register_comment_personal_data_exporter' ); +add_filter( 'wp_privacy_personal_data_exporters', 'wp_register_media_personal_data_exporter' ); +add_filter( 'wp_privacy_personal_data_exporters', 'wp_register_user_personal_data_exporter', 1 ); +add_filter( 'wp_privacy_personal_data_erasers', 'wp_register_comment_personal_data_eraser' ); +add_action( 'init', 'wp_schedule_delete_old_privacy_export_files' ); +add_action( 'wp_privacy_delete_old_export_files', 'wp_privacy_delete_old_export_files' ); + // Cron tasks add_action( 'wp_scheduled_delete', 'wp_scheduled_delete' ); add_action( 'wp_scheduled_auto_draft_delete', 'wp_delete_auto_drafts' ); diff --git a/wp-includes/functions.php b/wp-includes/functions.php index da9f6326a..dd2ff35e7 100644 --- a/wp-includes/functions.php +++ b/wp-includes/functions.php @@ -1615,7 +1615,7 @@ function wp_mkdir_p( $target ) { // We need to find the permissions of the parent folder that exists and inherit that. $target_parent = dirname( $target ); - while ( '.' != $target_parent && ! is_dir( $target_parent ) ) { + while ( '.' != $target_parent && ! is_dir( $target_parent ) && dirname( $target_parent ) !== $target_parent ) { $target_parent = dirname( $target_parent ); } @@ -2446,6 +2446,7 @@ function wp_get_mime_types() { 'dfxp' => 'application/ttaf+xml', // Audio formats. 'mp3|m4a|m4b' => 'audio/mpeg', + 'aac' => 'audio/aac', 'ra|ram' => 'audio/x-realaudio', 'wav' => 'audio/wav', 'ogg|oga' => 'audio/ogg', @@ -2604,7 +2605,7 @@ function wp_nonce_ays( $action ) { wp_logout_url( $redirect_to ) ); } else { - $html = __( 'Are you sure you want to do this?' ); + $html = __( 'The link you followed has expired.' ); if ( wp_get_referer() ) { $html .= '</p><p>'; $html .= sprintf( '<a href="%s">%s</a>', @@ -2614,7 +2615,7 @@ function wp_nonce_ays( $action ) { } } - wp_die( $html, __( 'WordPress Failure Notice' ), 403 ); + wp_die( $html, __( 'Something went wrong.' ), 403 ); } /** @@ -5816,3 +5817,220 @@ All at ###SITENAME### $site_name ), $email_change_email['message'], $email_change_email['headers'] ); } + +/** + * Return an anonymized IPv4 or IPv6 address. + * + * @since 4.9.6 Abstracted from `WP_Community_Events::get_unsafe_client_ip()`. + * + * @param string $ip_addr The IPv4 or IPv6 address to be anonymized. + * @param bool $ipv6_fallback Optional. Whether to return the original IPv6 address if the needed functions + * to anonymize it are not present. Default false, return `::` (unspecified address). + * @return string The anonymized IP address. + */ +function wp_privacy_anonymize_ip( $ip_addr, $ipv6_fallback = false ) { + // Detect what kind of IP address this is. + $ip_prefix = ''; + $is_ipv6 = substr_count( $ip_addr, ':' ) > 1; + $is_ipv4 = ( 3 === substr_count( $ip_addr, '.' ) ); + + if ( $is_ipv6 && $is_ipv4 ) { + // IPv6 compatibility mode, temporarily strip the IPv6 part, and treat it like IPv4. + $ip_prefix = '::ffff:'; + $ip_addr = preg_replace( '/^\[?[0-9a-f:]*:/i', '', $ip_addr ); + $ip_addr = str_replace( ']', '', $ip_addr ); + $is_ipv6 = false; + } + + if ( $is_ipv6 ) { + // IPv6 addresses will always be enclosed in [] if there's a port. + $left_bracket = strpos( $ip_addr, '[' ); + $right_bracket = strpos( $ip_addr, ']' ); + $percent = strpos( $ip_addr, '%' ); + $netmask = 'ffff:ffff:ffff:ffff:0000:0000:0000:0000'; + + // Strip the port (and [] from IPv6 addresses), if they exist. + if ( false !== $left_bracket && false !== $right_bracket ) { + $ip_addr = substr( $ip_addr, $left_bracket + 1, $right_bracket - $left_bracket - 1 ); + } elseif ( false !== $left_bracket || false !== $right_bracket ) { + // The IP has one bracket, but not both, so it's malformed. + return '::'; + } + + // Strip the reachability scope. + if ( false !== $percent ) { + $ip_addr = substr( $ip_addr, 0, $percent ); + } + + // No invalid characters should be left. + if ( preg_match( '/[^0-9a-f:]/i', $ip_addr ) ) { + return '::'; + } + + // Partially anonymize the IP by reducing it to the corresponding network ID. + if ( function_exists( 'inet_pton' ) && function_exists( 'inet_ntop' ) ) { + $ip_addr = inet_ntop( inet_pton( $ip_addr ) & inet_pton( $netmask ) ); + if ( false === $ip_addr) { + return '::'; + } + } elseif ( ! $ipv6_fallback ) { + return '::'; + } + } elseif ( $is_ipv4 ) { + // Strip any port and partially anonymize the IP. + $last_octet_position = strrpos( $ip_addr, '.' ); + $ip_addr = substr( $ip_addr, 0, $last_octet_position ) . '.0'; + } else { + return '0.0.0.0'; + } + + // Restore the IPv6 prefix to compatibility mode addresses. + return $ip_prefix . $ip_addr; +} + +/** + * Return uniform "anonymous" data by type. + * + * @since 4.9.6 + * + * @param string $type The type of data to be anonymized. + * @param string $data Optional The data to be anonymized. + * @return string The anonymous data for the requested type. + */ +function wp_privacy_anonymize_data( $type, $data = '' ) { + + switch ( $type ) { + case 'email': + $anonymous = 'deleted@site.invalid'; + break; + case 'url': + $anonymous = 'https://site.invalid'; + break; + case 'ip': + $anonymous = wp_privacy_anonymize_ip( $data ); + break; + case 'date': + $anonymous = '0000-00-00 00:00:00'; + break; + case 'text': + /* translators: deleted text */ + $anonymous = __( '[deleted]' ); + break; + case 'longtext': + /* translators: deleted long text */ + $anonymous = __( 'This content was deleted by the author.' ); + break; + default: + $anonymous = ''; + } + + /** + * Filters the anonymous data for each type. + * + * @since 4.9.6 + * + * @param string $anonymous Anonymized data. + * @param string $type Type of the data. + * @param string $data Original data. + */ + return apply_filters( 'wp_privacy_anonymize_data', $anonymous, $type, $data ); +} + +/** + * Returns the directory used to store personal data export files. + * + * @since 4.9.6 + * + * @see wp_privacy_exports_url + * + * @return string Exports directory. + */ +function wp_privacy_exports_dir() { + $upload_dir = wp_upload_dir(); + $exports_dir = trailingslashit( $upload_dir['basedir'] ) . 'wp-personal-data-exports/'; + + /** + * Filters the directory used to store personal data export files. + * + * @since 4.9.6 + * + * @param string $exports_dir Exports directory. + */ + return apply_filters( 'wp_privacy_exports_dir', $exports_dir ); +} + +/** + * Returns the URL of the directory used to store personal data export files. + * + * @since 4.9.6 + * + * @see wp_privacy_exports_dir + * + * @return string Exports directory URL. + */ +function wp_privacy_exports_url() { + $upload_dir = wp_upload_dir(); + $exports_url = trailingslashit( $upload_dir['baseurl'] ) . 'wp-personal-data-exports/'; + + /** + * Filters the URL of the directory used to store personal data export files. + * + * @since 4.9.6 + * + * @param string $exports_url Exports directory URL. + */ + return apply_filters( 'wp_privacy_exports_url', $exports_url ); +} + +/** + * Schedule a `WP_Cron` job to delete expired export files. + * + * @since 4.9.6 + */ +function wp_schedule_delete_old_privacy_export_files() { + if ( wp_installing() ) { + return; + } + + if ( ! wp_next_scheduled( 'wp_privacy_delete_old_export_files' ) ) { + wp_schedule_event( time(), 'hourly', 'wp_privacy_delete_old_export_files' ); + } +} + +/** + * Cleans up export files older than three days old. + * + * The export files are stored in `wp-content/uploads`, and are therefore publicly + * accessible. A CSPRN is appended to the filename to mitigate the risk of an + * unauthorized person downloading the file, but it is still possible. Deleting + * the file after the data subject has had a chance to delete it adds an additional + * layer of protection. + * + * @since 4.9.6 + */ +function wp_privacy_delete_old_export_files() { + require_once( ABSPATH . 'wp-admin/includes/file.php' ); + + $exports_dir = wp_privacy_exports_dir(); + $export_files = list_files( $exports_dir, 100, array( 'index.html' ) ); + + /** + * Filters the lifetime, in seconds, of a personal data export file. + * + * By default, the lifetime is 3 days. Once the file reaches that age, it will automatically + * be deleted by a cron job. + * + * @since 4.9.6 + * + * @param int $expiration The expiration age of the export, in seconds. + */ + $expiration = apply_filters( 'wp_privacy_export_expiration', 3 * DAY_IN_SECONDS ); + + foreach ( (array) $export_files as $export_file ) { + $file_age_in_seconds = time() - filemtime( $export_file ); + + if ( $expiration < $file_age_in_seconds ) { + unlink( $export_file ); + } + } +} diff --git a/wp-includes/general-template.php b/wp-includes/general-template.php index 70b1a785f..4ceaaa99a 100644 --- a/wp-includes/general-template.php +++ b/wp-includes/general-template.php @@ -4114,25 +4114,25 @@ function get_the_generator( $type = '' ) { switch ( $type ) { case 'html': - $gen = '<meta name="generator" content="WordPress ' . get_bloginfo( 'version' ) . '">'; + $gen = '<meta name="generator" content="WordPress ' . esc_attr( get_bloginfo( 'version' ) ) . '">'; break; case 'xhtml': - $gen = '<meta name="generator" content="WordPress ' . get_bloginfo( 'version' ) . '" />'; + $gen = '<meta name="generator" content="WordPress ' . esc_attr( get_bloginfo( 'version' ) ) . '" />'; break; case 'atom': - $gen = '<generator uri="https://wordpress.org/" version="' . get_bloginfo_rss( 'version' ) . '">WordPress</generator>'; + $gen = '<generator uri="https://wordpress.org/" version="' . esc_attr( get_bloginfo_rss( 'version' ) ) . '">WordPress</generator>'; break; case 'rss2': - $gen = '<generator>https://wordpress.org/?v=' . get_bloginfo_rss( 'version' ) . '</generator>'; + $gen = '<generator>' . esc_url_raw( 'https://wordpress.org/?v=' . get_bloginfo_rss( 'version' ) ) . '</generator>'; break; case 'rdf': - $gen = '<admin:generatorAgent rdf:resource="https://wordpress.org/?v=' . get_bloginfo_rss( 'version' ) . '" />'; + $gen = '<admin:generatorAgent rdf:resource="' . esc_url_raw( 'https://wordpress.org/?v=' . get_bloginfo_rss( 'version' ) ) . '" />'; break; case 'comment': - $gen = '<!-- generator="WordPress/' . get_bloginfo( 'version' ) . '" -->'; + $gen = '<!-- generator="WordPress/' . esc_attr( get_bloginfo( 'version' ) ) . '" -->'; break; case 'export': - $gen = '<!-- generator="WordPress/' . get_bloginfo_rss('version') . '" created="'. date('Y-m-d H:i') . '" -->'; + $gen = '<!-- generator="WordPress/' . esc_attr( get_bloginfo_rss( 'version' ) ) . '" created="' . date( 'Y-m-d H:i' ) . '" -->'; break; } diff --git a/wp-includes/http.php b/wp-includes/http.php index 9fa31d515..044479242 100644 --- a/wp-includes/http.php +++ b/wp-includes/http.php @@ -530,7 +530,7 @@ function wp_http_validate_url( $url ) { $parsed_home = @parse_url( get_option( 'home' ) ); if ( isset( $parsed_home['host'] ) ) { - $same_host = ( strtolower( $parsed_home['host'] ) === strtolower( $parsed_url['host'] ) || 'localhost' === strtolower( $parsed_url['host'] ) ); + $same_host = strtolower( $parsed_home['host'] ) === strtolower( $parsed_url['host'] ); } else { $same_host = false; } diff --git a/wp-includes/js/imgareaselect/jquery.imgareaselect.js b/wp-includes/js/imgareaselect/jquery.imgareaselect.js index f017895f1..a80c3626b 100644 --- a/wp-includes/js/imgareaselect/jquery.imgareaselect.js +++ b/wp-includes/js/imgareaselect/jquery.imgareaselect.js @@ -748,7 +748,7 @@ $.imgAreaSelect = function (img, options) { */ function imgMouseDown(event) { /* Ignore the event if animation is in progress */ - if (event.which != 1 || $outer.is(':animated')) return false; + if (event.which > 1 || $outer.is(':animated')) return false; adjust(); startX = x1 = evX(event); diff --git a/wp-includes/js/imgareaselect/jquery.imgareaselect.min.js b/wp-includes/js/imgareaselect/jquery.imgareaselect.min.js index c57fd2450..f81ced0f9 100644 --- a/wp-includes/js/imgareaselect/jquery.imgareaselect.min.js +++ b/wp-includes/js/imgareaselect/jquery.imgareaselect.min.js @@ -1 +1 @@ -!function(e){function t(){return e("<div/>")}var o=Math.abs,i=Math.max,s=Math.min,n=Math.round;e.imgAreaSelect=function(r,c){function d(e){return e+gt.left-vt.left}function a(e){return e+gt.top-vt.top}function u(e){return e-gt.left+vt.left}function l(e){return e-gt.top+vt.top}function h(e){return i(e.pageX||0,m(e).x)-vt.left}function f(e){return i(e.pageY||0,m(e).y)-vt.top}function m(e){var t=e.originalEvent||{};return t.touches&&t.touches.length?{x:t.touches[0].pageX,y:t.touches[0].pageY}:{x:0,y:0}}function p(e){var t=e||B,o=e||Q;return{x1:n(wt.x1*t),y1:n(wt.y1*o),x2:n(wt.x2*t),y2:n(wt.y2*o),width:n(wt.x2*t)-n(wt.x1*t),height:n(wt.y2*o)-n(wt.y1*o)}}function y(e,t,o,i,s){var r=s||B,c=s||Q;wt={x1:n(e/r||0),y1:n(t/c||0),x2:n(o/r||0),y2:n(i/c||0)},wt.width=wt.x2-wt.x1,wt.height=wt.y2-wt.y1}function g(){T&<.width()&&(gt={left:n(lt.offset().left),top:n(lt.offset().top)},R=lt.innerWidth(),X=lt.innerHeight(),gt.top+=lt.outerHeight()-X>>1,gt.left+=lt.outerWidth()-R>>1,G=n(c.minWidth/B)||0,J=n(c.minHeight/Q)||0,U=n(s(c.maxWidth/B||1<<24,R)),V=n(s(c.maxHeight/Q||1<<24,X)),"1.3.2"!=e().jquery||"fixed"!=xt||St.getBoundingClientRect||(gt.top+=i(document.body.scrollTop,St.scrollTop),gt.left+=i(document.body.scrollLeft,St.scrollLeft)),vt=/absolute|relative/.test(Y.css("position"))?{left:n(Y.offset().left)-Y.scrollLeft(),top:n(Y.offset().top)-Y.scrollTop()}:"fixed"==xt?{left:e(document).scrollLeft(),top:e(document).scrollTop()}:{left:0,top:0},j=d(0),D=a(0),(wt.x2>R||wt.y2>X)&&C())}function v(t){if(_){switch(ht.css({left:d(wt.x1),top:a(wt.y1)}).add(ft).width(dt=wt.width).height(at=wt.height),ft.add(mt).add(yt).css({left:0,top:0}),mt.width(i(dt-mt.outerWidth()+mt.innerWidth(),0)).height(i(at-mt.outerHeight()+mt.innerHeight(),0)),e(pt[0]).css({left:j,top:D,width:wt.x1,height:X}),e(pt[1]).css({left:j+wt.x1,top:D,width:dt,height:wt.y1}),e(pt[2]).css({left:j+wt.x2,top:D,width:R-wt.x2,height:X}),e(pt[3]).css({left:j+wt.x1,top:D+wt.y2,width:dt,height:X-wt.y2}),dt-=yt.outerWidth(),at-=yt.outerHeight(),yt.length){case 8:e(yt[4]).css({left:dt>>1}),e(yt[5]).css({left:dt,top:at>>1}),e(yt[6]).css({left:dt>>1,top:at}),e(yt[7]).css({top:at>>1});case 4:yt.slice(1,3).css({left:dt}),yt.slice(2,4).css({top:at})}t!==!1&&(e.imgAreaSelect.onKeyPress!=kt&&e(document).unbind(e.imgAreaSelect.keyPress,e.imgAreaSelect.onKeyPress),c.keys&&e(document)[e.imgAreaSelect.keyPress](e.imgAreaSelect.onKeyPress=kt)),Ct&&mt.outerWidth()-mt.innerWidth()==2&&(mt.css("margin",0),setTimeout(function(){mt.css("margin","auto")},0))}}function b(e){g(),v(e),et=d(wt.x1),tt=a(wt.y1),ot=d(wt.x2),it=a(wt.y2)}function x(e,t){c.fadeSpeed?e.fadeOut(c.fadeSpeed,t):e.hide()}function w(e){var t=u(h(e))-wt.x1,o=l(f(e))-wt.y1;ut||(g(),ut=!0,ht.one("mouseout",function(){ut=!1})),F="",c.resizable&&(o<=c.resizeMargin?F="n":o>=wt.height-c.resizeMargin&&(F="s"),t<=c.resizeMargin?F+="w":t>=wt.width-c.resizeMargin&&(F+="e")),ht.css("cursor",F?F+"-resize":c.movable?"move":""),L&&L.toggle()}function S(){e("body").css("cursor",""),(c.autoHide||wt.width*wt.height==0)&&x(ht.add(pt),function(){e(this).hide()}),e(document).off("mousemove touchmove",A),ht.on("mousemove touchmove",w),c.onSelectEnd(r,p())}function z(t){return"mousedown"==t.type&&1!=t.which?!1:(w(t),g(),F?(e("body").css("cursor",F+"-resize"),et=d(wt[/w/.test(F)?"x2":"x1"]),tt=a(wt[/n/.test(F)?"y2":"y1"]),e(document).on("mousemove touchmove",A).one("mouseup touchend",S),ht.off("mousemove touchmove",w)):c.movable?($=j+wt.x1-h(t),q=D+wt.y1-f(t),ht.off("mousemove touchmove",w),e(document).on("mousemove touchmove",I).one("mouseup touchend",function(){c.onSelectEnd(r,p()),e(document).off("mousemove touchmove",I),ht.on("mousemove touchmove",w)})):lt.mousedown(t),!1)}function k(e){Z&&(e?(ot=i(j,s(j+R,et+o(it-tt)*Z*(ot>et||-1))),it=n(i(D,s(D+X,tt+o(ot-et)/Z*(it>tt||-1)))),ot=n(ot)):(it=i(D,s(D+X,tt+o(ot-et)/Z*(it>tt||-1))),ot=n(i(j,s(j+R,et+o(it-tt)*Z*(ot>et||-1)))),it=n(it)))}function C(){et=s(et,j+R),tt=s(tt,D+X),o(ot-et)<G&&(ot=et-G*(et>ot||-1),j>ot?et=j+G:ot>j+R&&(et=j+R-G)),o(it-tt)<J&&(it=tt-J*(tt>it||-1),D>it?tt=D+J:it>D+X&&(tt=D+X-J)),ot=i(j,s(ot,j+R)),it=i(D,s(it,D+X)),k(o(ot-et)<o(it-tt)*Z),o(ot-et)>U&&(ot=et-U*(et>ot||-1),k()),o(it-tt)>V&&(it=tt-V*(tt>it||-1),k(!0)),wt={x1:u(s(et,ot)),x2:u(i(et,ot)),y1:l(s(tt,it)),y2:l(i(tt,it)),width:o(ot-et),height:o(it-tt)},v(),c.onSelectChange(r,p())}function A(e){return ot=/w|e|^$/.test(F)||Z?h(e):d(wt.x2),it=/n|s|^$/.test(F)||Z?f(e):a(wt.y2),C(),!1}function W(t,o){ot=(et=t)+wt.width,it=(tt=o)+wt.height,e.extend(wt,{x1:u(et),y1:l(tt),x2:u(ot),y2:l(it)}),v(),c.onSelectChange(r,p())}function I(e){return et=i(j,s($+h(e),j+R-wt.width)),tt=i(D,s(q+f(e),D+X-wt.height)),W(et,tt),e.preventDefault(),!1}function K(){e(document).off("mousemove touchmove",K),g(),ot=et,it=tt,C(),F="",pt.is(":visible")||ht.add(pt).hide().fadeIn(c.fadeSpeed||0),_=!0,e(document).off("mouseup touchend",P).on("mousemove touchmove",A).one("mouseup touchend",S),ht.off("mousemove touchmove",w),c.onSelectStart(r,p())}function P(){e(document).off("mousemove touchmove",K).off("mouseup touchend",P),x(ht.add(pt)),y(u(et),l(tt),u(et),l(tt)),this instanceof e.imgAreaSelect||(c.onSelectChange(r,p()),c.onSelectEnd(r,p()))}function N(t){return 1!=t.which||pt.is(":animated")?!1:(g(),$=et=h(t),q=tt=f(t),e(document).on({"mousemove touchmove":K,"mouseup touchend":P}),!1)}function H(){b(!1)}function M(){T=!0,O(c=e.extend({classPrefix:"imgareaselect",movable:!0,parent:"body",resizable:!0,resizeMargin:10,onInit:function(){},onSelectStart:function(){},onSelectChange:function(){},onSelectEnd:function(){}},c)),ht.add(pt).css({visibility:""}),c.show&&(_=!0,g(),v(),ht.add(pt).hide().fadeIn(c.fadeSpeed||0)),setTimeout(function(){c.onInit(r,p())},0)}function E(e,t){for(var o in t)void 0!==c[o]&&e.css(t[o],c[o])}function O(o){if(o.parent&&(Y=e(o.parent)).append(ht.add(pt)),e.extend(c,o),g(),null!=o.handles){for(yt.remove(),yt=e([]),rt=o.handles?"corners"==o.handles?4:8:0;rt--;)yt=yt.add(t());yt.addClass(c.classPrefix+"-handle").css({position:"absolute",fontSize:0,zIndex:bt+1||1}),!parseInt(yt.css("width"))>=0&&yt.width(5).height(5),(ct=c.borderWidth)&&yt.css({borderWidth:ct,borderStyle:"solid"}),E(yt,{borderColor1:"border-color",borderColor2:"background-color",borderOpacity:"opacity"})}for(B=c.imageWidth/R||1,Q=c.imageHeight/X||1,null!=o.x1&&(y(o.x1,o.y1,o.x2,o.y2),o.show=!o.hide),o.keys&&(c.keys=e.extend({shift:1,ctrl:"resize"},o.keys)),pt.addClass(c.classPrefix+"-outer"),ft.addClass(c.classPrefix+"-selection"),rt=0;rt++<4;)e(mt[rt-1]).addClass(c.classPrefix+"-border"+rt);E(ft,{selectionColor:"background-color",selectionOpacity:"opacity"}),E(mt,{borderOpacity:"opacity",borderWidth:"border-width"}),E(pt,{outerColor:"background-color",outerOpacity:"opacity"}),(ct=c.borderColor1)&&e(mt[0]).css({borderStyle:"solid",borderColor:ct}),(ct=c.borderColor2)&&e(mt[1]).css({borderStyle:"dashed",borderColor:ct}),ht.append(ft.add(mt).add(L)).append(yt),Ct&&((ct=(pt.css("filter")||"").match(/opacity=(\d+)/))&&pt.css("opacity",ct[1]/100),(ct=(mt.css("filter")||"").match(/opacity=(\d+)/))&&mt.css("opacity",ct[1]/100)),o.hide?x(ht.add(pt)):o.show&&T&&(_=!0,ht.add(pt).fadeIn(c.fadeSpeed||0),b()),Z=(nt=(c.aspectRatio||"").split(/:/))[0]/nt[1],lt.add(pt).unbind("mousedown",N),c.disable||c.enable===!1?(ht.off({"mousemove touchmove":w,"mousedown touchstart":z}),e(window).off("resize",H)):((c.enable||c.disable===!1)&&((c.resizable||c.movable)&&ht.on({"mousemove touchmove":w,"mousedown touchstart":z}),e(window).resize(H)),c.persistent||lt.add(pt).on("mousedown touchstart",N)),c.enable=c.disable=void 0}var T,L,j,D,R,X,Y,$,q,B,Q,F,G,J,U,V,Z,_,et,tt,ot,it,st,nt,rt,ct,dt,at,ut,lt=e(r),ht=t(),ft=t(),mt=t().add(t()).add(t()).add(t()),pt=t().add(t()).add(t()).add(t()),yt=e([]),gt={left:0,top:0},vt={left:0,top:0},bt=0,xt="absolute",wt={x1:0,y1:0,x2:0,y2:0,width:0,height:0},St=document.documentElement,zt=navigator.userAgent,kt=function(e){var t,o,n=c.keys,r=e.keyCode;if(t=isNaN(n.alt)||!e.altKey&&!e.originalEvent.altKey?!isNaN(n.ctrl)&&e.ctrlKey?n.ctrl:!isNaN(n.shift)&&e.shiftKey?n.shift:isNaN(n.arrows)?10:n.arrows:n.alt,"resize"==n.arrows||"resize"==n.shift&&e.shiftKey||"resize"==n.ctrl&&e.ctrlKey||"resize"==n.alt&&(e.altKey||e.originalEvent.altKey)){switch(r){case 37:t=-t;case 39:o=i(et,ot),et=s(et,ot),ot=i(o+t,et),k();break;case 38:t=-t;case 40:o=i(tt,it),tt=s(tt,it),it=i(o+t,tt),k(!0);break;default:return}C()}else switch(et=s(et,ot),tt=s(tt,it),r){case 37:W(i(et-t,j),tt);break;case 38:W(et,i(tt-t,D));break;case 39:W(et+s(t,R-u(ot)),tt);break;case 40:W(et,tt+s(t,X-l(it)));break;default:return}return!1};this.remove=function(){O({disable:!0}),ht.add(pt).remove()},this.getOptions=function(){return c},this.setOptions=O,this.getSelection=p,this.setSelection=y,this.cancelSelection=P,this.update=b;var Ct=(/msie ([\w.]+)/i.exec(zt)||[])[1],At=/opera/i.test(zt),Wt=/webkit/i.test(zt)&&!/chrome/i.test(zt);for(st=lt;st.length;)bt=i(bt,isNaN(st.css("z-index"))?bt:st.css("z-index")),"fixed"==st.css("position")&&(xt="fixed"),st=st.parent(":not(body)");bt=c.zIndex||bt,Ct&<.attr("unselectable","on"),e.imgAreaSelect.keyPress=Ct||Wt?"keydown":"keypress",At&&(L=t().css({width:"100%",height:"100%",position:"absolute",zIndex:bt+2||2})),ht.add(pt).css({visibility:"hidden",position:xt,overflow:"hidden",zIndex:bt||"0"}),ht.css({zIndex:bt+2||2}),ft.add(mt).css({position:"absolute",fontSize:0}),r.complete||"complete"==r.readyState||!lt.is("img")?M():lt.one("load",M),!T&&Ct&&Ct>=7&&(r.src=r.src)},e.fn.imgAreaSelect=function(t){return t=t||{},this.each(function(){e(this).data("imgAreaSelect")?t.remove?(e(this).data("imgAreaSelect").remove(),e(this).removeData("imgAreaSelect")):e(this).data("imgAreaSelect").setOptions(t):t.remove||(void 0===t.enable&&void 0===t.disable&&(t.enable=!0),e(this).data("imgAreaSelect",new e.imgAreaSelect(this,t)))}),t.instance?e(this).data("imgAreaSelect"):this}}(jQuery); \ No newline at end of file +!function(a){function b(){return a("<div/>")}var c=Math.abs,d=Math.max,e=Math.min,f=Math.round;a.imgAreaSelect=function(g,h){function i(a){return a+ra.left-sa.left}function j(a){return a+ra.top-sa.top}function k(a){return a-ra.left+sa.left}function l(a){return a-ra.top+sa.top}function m(a){return d(a.pageX||0,o(a).x)-sa.left}function n(a){return d(a.pageY||0,o(a).y)-sa.top}function o(a){var b=a.originalEvent||{};return b.touches&&b.touches.length?{x:b.touches[0].pageX,y:b.touches[0].pageY}:{x:0,y:0}}function p(a){var b=a||T,c=a||U;return{x1:f(va.x1*b),y1:f(va.y1*c),x2:f(va.x2*b),y2:f(va.y2*c),width:f(va.x2*b)-f(va.x1*b),height:f(va.y2*c)-f(va.y1*c)}}function q(a,b,c,d,e){var g=e||T,h=e||U;va={x1:f(a/g||0),y1:f(b/h||0),x2:f(c/g||0),y2:f(d/h||0)},va.width=va.x2-va.x1,va.height=va.y2-va.y1}function r(){K&&la.width()&&(ra={left:f(la.offset().left),top:f(la.offset().top)},O=la.innerWidth(),P=la.innerHeight(),ra.top+=la.outerHeight()-P>>1,ra.left+=la.outerWidth()-O>>1,W=f(h.minWidth/T)||0,X=f(h.minHeight/U)||0,Y=f(e(h.maxWidth/T||1<<24,O)),Z=f(e(h.maxHeight/U||1<<24,P)),"1.3.2"!=a().jquery||"fixed"!=ua||wa.getBoundingClientRect||(ra.top+=d(document.body.scrollTop,wa.scrollTop),ra.left+=d(document.body.scrollLeft,wa.scrollLeft)),sa=/absolute|relative/.test(Q.css("position"))?{left:f(Q.offset().left)-Q.scrollLeft(),top:f(Q.offset().top)-Q.scrollTop()}:"fixed"==ua?{left:a(document).scrollLeft(),top:a(document).scrollTop()}:{left:0,top:0},M=i(0),N=j(0),(va.x2>O||va.y2>P)&&z())}function s(b){if(_){switch(ma.css({left:i(va.x1),top:j(va.y1)}).add(na).width(ia=va.width).height(ja=va.height),na.add(oa).add(qa).css({left:0,top:0}),oa.width(d(ia-oa.outerWidth()+oa.innerWidth(),0)).height(d(ja-oa.outerHeight()+oa.innerHeight(),0)),a(pa[0]).css({left:M,top:N,width:va.x1,height:P}),a(pa[1]).css({left:M+va.x1,top:N,width:ia,height:va.y1}),a(pa[2]).css({left:M+va.x2,top:N,width:O-va.x2,height:P}),a(pa[3]).css({left:M+va.x1,top:N+va.y2,width:ia,height:P-va.y2}),ia-=qa.outerWidth(),ja-=qa.outerHeight(),qa.length){case 8:a(qa[4]).css({left:ia>>1}),a(qa[5]).css({left:ia,top:ja>>1}),a(qa[6]).css({left:ia>>1,top:ja}),a(qa[7]).css({top:ja>>1});case 4:qa.slice(1,3).css({left:ia}),qa.slice(2,4).css({top:ja})}b!==!1&&(a.imgAreaSelect.onKeyPress!=ya&&a(document).unbind(a.imgAreaSelect.keyPress,a.imgAreaSelect.onKeyPress),h.keys&&a(document)[a.imgAreaSelect.keyPress](a.imgAreaSelect.onKeyPress=ya)),za&&oa.outerWidth()-oa.innerWidth()==2&&(oa.css("margin",0),setTimeout(function(){oa.css("margin","auto")},0))}}function t(a){r(),s(a),aa=i(va.x1),ba=j(va.y1),ca=i(va.x2),da=j(va.y2)}function u(a,b){h.fadeSpeed?a.fadeOut(h.fadeSpeed,b):a.hide()}function v(a){var b=k(m(a))-va.x1,c=l(n(a))-va.y1;ka||(r(),ka=!0,ma.one("mouseout",function(){ka=!1})),V="",h.resizable&&(c<=h.resizeMargin?V="n":c>=va.height-h.resizeMargin&&(V="s"),b<=h.resizeMargin?V+="w":b>=va.width-h.resizeMargin&&(V+="e")),ma.css("cursor",V?V+"-resize":h.movable?"move":""),L&&L.toggle()}function w(b){a("body").css("cursor",""),(h.autoHide||va.width*va.height==0)&&u(ma.add(pa),function(){a(this).hide()}),a(document).off("mousemove touchmove",A),ma.on("mousemove touchmove",v),h.onSelectEnd(g,p())}function x(b){return("mousedown"!=b.type||1==b.which)&&(v(b),r(),V?(a("body").css("cursor",V+"-resize"),aa=i(va[/w/.test(V)?"x2":"x1"]),ba=j(va[/n/.test(V)?"y2":"y1"]),a(document).on("mousemove touchmove",A).one("mouseup touchend",w),ma.off("mousemove touchmove",v)):h.movable?(R=M+va.x1-m(b),S=N+va.y1-n(b),ma.off("mousemove touchmove",v),a(document).on("mousemove touchmove",C).one("mouseup touchend",function(){h.onSelectEnd(g,p()),a(document).off("mousemove touchmove",C),ma.on("mousemove touchmove",v)})):la.mousedown(b),!1)}function y(a){$&&(a?(ca=d(M,e(M+O,aa+c(da-ba)*$*(ca>aa||-1))),da=f(d(N,e(N+P,ba+c(ca-aa)/$*(da>ba||-1)))),ca=f(ca)):(da=d(N,e(N+P,ba+c(ca-aa)/$*(da>ba||-1))),ca=f(d(M,e(M+O,aa+c(da-ba)*$*(ca>aa||-1)))),da=f(da)))}function z(){aa=e(aa,M+O),ba=e(ba,N+P),c(ca-aa)<W&&(ca=aa-W*(ca<aa||-1),ca<M?aa=M+W:ca>M+O&&(aa=M+O-W)),c(da-ba)<X&&(da=ba-X*(da<ba||-1),da<N?ba=N+X:da>N+P&&(ba=N+P-X)),ca=d(M,e(ca,M+O)),da=d(N,e(da,N+P)),y(c(ca-aa)<c(da-ba)*$),c(ca-aa)>Y&&(ca=aa-Y*(ca<aa||-1),y()),c(da-ba)>Z&&(da=ba-Z*(da<ba||-1),y(!0)),va={x1:k(e(aa,ca)),x2:k(d(aa,ca)),y1:l(e(ba,da)),y2:l(d(ba,da)),width:c(ca-aa),height:c(da-ba)},s(),h.onSelectChange(g,p())}function A(a){return ca=/w|e|^$/.test(V)||$?m(a):i(va.x2),da=/n|s|^$/.test(V)||$?n(a):j(va.y2),z(),!1}function B(b,c){ca=(aa=b)+va.width,da=(ba=c)+va.height,a.extend(va,{x1:k(aa),y1:l(ba),x2:k(ca),y2:l(da)}),s(),h.onSelectChange(g,p())}function C(a){return aa=d(M,e(R+m(a),M+O-va.width)),ba=d(N,e(S+n(a),N+P-va.height)),B(aa,ba),a.preventDefault(),!1}function D(){a(document).off("mousemove touchmove",D),r(),ca=aa,da=ba,z(),V="",pa.is(":visible")||ma.add(pa).hide().fadeIn(h.fadeSpeed||0),_=!0,a(document).off("mouseup touchend",E).on("mousemove touchmove",A).one("mouseup touchend",w),ma.off("mousemove touchmove",v),h.onSelectStart(g,p())}function E(){a(document).off("mousemove touchmove",D).off("mouseup touchend",E),u(ma.add(pa)),q(k(aa),l(ba),k(aa),l(ba)),this instanceof a.imgAreaSelect||(h.onSelectChange(g,p()),h.onSelectEnd(g,p()))}function F(b){return!(b.which>1||pa.is(":animated"))&&(r(),R=aa=m(b),S=ba=n(b),a(document).on({"mousemove touchmove":D,"mouseup touchend":E}),!1)}function G(){t(!1)}function H(){K=!0,J(h=a.extend({classPrefix:"imgareaselect",movable:!0,parent:"body",resizable:!0,resizeMargin:10,onInit:function(){},onSelectStart:function(){},onSelectChange:function(){},onSelectEnd:function(){}},h)),ma.add(pa).css({visibility:""}),h.show&&(_=!0,r(),s(),ma.add(pa).hide().fadeIn(h.fadeSpeed||0)),setTimeout(function(){h.onInit(g,p())},0)}function I(a,b){for(var c in b)void 0!==h[c]&&a.css(b[c],h[c])}function J(c){if(c.parent&&(Q=a(c.parent)).append(ma.add(pa)),a.extend(h,c),r(),null!=c.handles){for(qa.remove(),qa=a([]),ga=c.handles?"corners"==c.handles?4:8:0;ga--;)qa=qa.add(b());qa.addClass(h.classPrefix+"-handle").css({position:"absolute",fontSize:0,zIndex:ta+1||1}),!parseInt(qa.css("width"))>=0&&qa.width(5).height(5),(ha=h.borderWidth)&&qa.css({borderWidth:ha,borderStyle:"solid"}),I(qa,{borderColor1:"border-color",borderColor2:"background-color",borderOpacity:"opacity"})}for(T=h.imageWidth/O||1,U=h.imageHeight/P||1,null!=c.x1&&(q(c.x1,c.y1,c.x2,c.y2),c.show=!c.hide),c.keys&&(h.keys=a.extend({shift:1,ctrl:"resize"},c.keys)),pa.addClass(h.classPrefix+"-outer"),na.addClass(h.classPrefix+"-selection"),ga=0;ga++<4;)a(oa[ga-1]).addClass(h.classPrefix+"-border"+ga);I(na,{selectionColor:"background-color",selectionOpacity:"opacity"}),I(oa,{borderOpacity:"opacity",borderWidth:"border-width"}),I(pa,{outerColor:"background-color",outerOpacity:"opacity"}),(ha=h.borderColor1)&&a(oa[0]).css({borderStyle:"solid",borderColor:ha}),(ha=h.borderColor2)&&a(oa[1]).css({borderStyle:"dashed",borderColor:ha}),ma.append(na.add(oa).add(L)).append(qa),za&&((ha=(pa.css("filter")||"").match(/opacity=(\d+)/))&&pa.css("opacity",ha[1]/100),(ha=(oa.css("filter")||"").match(/opacity=(\d+)/))&&oa.css("opacity",ha[1]/100)),c.hide?u(ma.add(pa)):c.show&&K&&(_=!0,ma.add(pa).fadeIn(h.fadeSpeed||0),t()),$=(fa=(h.aspectRatio||"").split(/:/))[0]/fa[1],la.add(pa).unbind("mousedown",F),h.disable||h.enable===!1?(ma.off({"mousemove touchmove":v,"mousedown touchstart":x}),a(window).off("resize",G)):((h.enable||h.disable===!1)&&((h.resizable||h.movable)&&ma.on({"mousemove touchmove":v,"mousedown touchstart":x}),a(window).resize(G)),h.persistent||la.add(pa).on("mousedown touchstart",F)),h.enable=h.disable=void 0}var K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_,aa,ba,ca,da,ea,fa,ga,ha,ia,ja,ka,la=a(g),ma=b(),na=b(),oa=b().add(b()).add(b()).add(b()),pa=b().add(b()).add(b()).add(b()),qa=a([]),ra={left:0,top:0},sa={left:0,top:0},ta=0,ua="absolute",va={x1:0,y1:0,x2:0,y2:0,width:0,height:0},wa=document.documentElement,xa=navigator.userAgent,ya=function(a){var b,c,f=h.keys,g=a.keyCode;if(b=isNaN(f.alt)||!a.altKey&&!a.originalEvent.altKey?!isNaN(f.ctrl)&&a.ctrlKey?f.ctrl:!isNaN(f.shift)&&a.shiftKey?f.shift:isNaN(f.arrows)?10:f.arrows:f.alt,"resize"==f.arrows||"resize"==f.shift&&a.shiftKey||"resize"==f.ctrl&&a.ctrlKey||"resize"==f.alt&&(a.altKey||a.originalEvent.altKey)){switch(g){case 37:b=-b;case 39:c=d(aa,ca),aa=e(aa,ca),ca=d(c+b,aa),y();break;case 38:b=-b;case 40:c=d(ba,da),ba=e(ba,da),da=d(c+b,ba),y(!0);break;default:return}z()}else switch(aa=e(aa,ca),ba=e(ba,da),g){case 37:B(d(aa-b,M),ba);break;case 38:B(aa,d(ba-b,N));break;case 39:B(aa+e(b,O-k(ca)),ba);break;case 40:B(aa,ba+e(b,P-l(da)));break;default:return}return!1};this.remove=function(){J({disable:!0}),ma.add(pa).remove()},this.getOptions=function(){return h},this.setOptions=J,this.getSelection=p,this.setSelection=q,this.cancelSelection=E,this.update=t;var za=(/msie ([\w.]+)/i.exec(xa)||[])[1],Aa=/opera/i.test(xa),Ba=/webkit/i.test(xa)&&!/chrome/i.test(xa);for(ea=la;ea.length;)ta=d(ta,isNaN(ea.css("z-index"))?ta:ea.css("z-index")),"fixed"==ea.css("position")&&(ua="fixed"),ea=ea.parent(":not(body)");ta=h.zIndex||ta,za&&la.attr("unselectable","on"),a.imgAreaSelect.keyPress=za||Ba?"keydown":"keypress",Aa&&(L=b().css({width:"100%",height:"100%",position:"absolute",zIndex:ta+2||2})),ma.add(pa).css({visibility:"hidden",position:ua,overflow:"hidden",zIndex:ta||"0"}),ma.css({zIndex:ta+2||2}),na.add(oa).css({position:"absolute",fontSize:0}),g.complete||"complete"==g.readyState||!la.is("img")?H():la.one("load",H),!K&&za&&za>=7&&(g.src=g.src)},a.fn.imgAreaSelect=function(b){return b=b||{},this.each(function(){a(this).data("imgAreaSelect")?b.remove?(a(this).data("imgAreaSelect").remove(),a(this).removeData("imgAreaSelect")):a(this).data("imgAreaSelect").setOptions(b):b.remove||(void 0===b.enable&&void 0===b.disable&&(b.enable=!0),a(this).data("imgAreaSelect",new a.imgAreaSelect(this,b)))}),b.instance?a(this).data("imgAreaSelect"):this}}(jQuery); \ No newline at end of file diff --git a/wp-includes/js/media-models.js b/wp-includes/js/media-models.js index af6438725..bd194fc88 100644 --- a/wp-includes/js/media-models.js +++ b/wp-includes/js/media-models.js @@ -642,6 +642,15 @@ var Attachments = Backbone.Collection.extend(/** @lends wp.media.model.Attachmen * @returns {Boolean} */ validator: function( attachment ) { + + // Filter out contextually created attachments (e.g. headers, logos, etc.). + if ( + ! _.isUndefined( attachment.attributes.context ) && + '' !== attachment.attributes.context + ) { + return false; + } + if ( ! this.validateDestroyed && attachment.destroyed ) { return false; } @@ -1112,7 +1121,7 @@ Query = Attachments.extend(/** @lends wp.media.model.Query.prototype */{ // Only observe when a limited number of query args are set. There // are no filters for other properties, so observing will result in // false positives in those queries. - allowed = [ 's', 'order', 'orderby', 'posts_per_page', 'post_mime_type', 'post_parent' ]; + allowed = [ 's', 'order', 'orderby', 'posts_per_page', 'post_mime_type', 'post_parent', 'author' ]; if ( wp.Uploader && _( this.args ).chain().keys().difference( allowed ).isEmpty().value() ) { this.observe( wp.Uploader.queue ); } @@ -1229,14 +1238,15 @@ Query = Attachments.extend(/** @lends wp.media.model.Query.prototype */{ * @readonly */ propmap: { - 'search': 's', - 'type': 'post_mime_type', - 'perPage': 'posts_per_page', - 'menuOrder': 'menu_order', - 'uploadedTo': 'post_parent', - 'status': 'post_status', - 'include': 'post__in', - 'exclude': 'post__not_in' + 'search': 's', + 'type': 'post_mime_type', + 'perPage': 'posts_per_page', + 'menuOrder': 'menu_order', + 'uploadedTo': 'post_parent', + 'status': 'post_status', + 'include': 'post__in', + 'exclude': 'post__not_in', + 'author': 'author' }, /** * Creates and returns an Attachments Query collection given the properties. @@ -1258,6 +1268,7 @@ Query = Attachments.extend(/** @lends wp.media.model.Query.prototype */{ * @param {Object} [props.menu_order] * @param {Object} [props.post_parent] * @param {Object} [props.post_status] + * @param {Object} [props.author] * @param {Object} [options] * * @returns {wp.media.model.Query} A new Attachments Query collection. diff --git a/wp-includes/js/media-models.min.js b/wp-includes/js/media-models.min.js index 5c3f95f58..ceb9c5e13 100644 --- a/wp-includes/js/media-models.min.js +++ b/wp-includes/js/media-models.min.js @@ -1 +1 @@ -!function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={i:d,l:!1,exports:{}};return a[d].call(e.exports,e,e.exports,b),e.l=!0,e.exports}var c={};return b.m=a,b.c=c,b.d=function(a,c,d){b.o(a,c)||Object.defineProperty(a,c,{configurable:!1,enumerable:!0,get:d})},b.n=function(a){var c=a&&a.__esModule?function(){return a["default"]}:function(){return a};return b.d(c,"a",c),c},b.o=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)},b.p="",b(b.s=20)}({20:function(a,b,c){var d,e,f,g,h=jQuery;window.wp=window.wp||{},g=wp.media=function(a){var b,c=g.view.MediaFrame;if(c)return a=_.defaults(a||{},{frame:"select"}),"select"===a.frame&&c.Select?b=new c.Select(a):"post"===a.frame&&c.Post?b=new c.Post(a):"manage"===a.frame&&c.Manage?b=new c.Manage(a):"image"===a.frame&&c.ImageDetails?b=new c.ImageDetails(a):"audio"===a.frame&&c.AudioDetails?b=new c.AudioDetails(a):"video"===a.frame&&c.VideoDetails?b=new c.VideoDetails(a):"edit-attachments"===a.frame&&c.EditAttachments&&(b=new c.EditAttachments(a)),delete a.frame,g.frame=b,b},_.extend(g,{model:{},view:{},controller:{},frames:{}}),f=g.model.l10n=window._wpMediaModelsL10n||{},g.model.settings=f.settings||{},delete f.settings,d=g.model.Attachment=c(21),e=g.model.Attachments=c(22),g.model.Query=c(23),g.model.PostImage=c(24),g.model.Selection=c(25),g.compare=function(a,b,c,d){return _.isEqual(a,b)?c===d?0:c>d?-1:1:a>b?-1:1},_.extend(g,{template:wp.template,post:wp.ajax.post,ajax:wp.ajax.send,fit:function(a){var b,c=a.width,d=a.height,e=a.maxWidth,f=a.maxHeight;return _.isUndefined(e)||_.isUndefined(f)?_.isUndefined(f)?b="width":_.isUndefined(e)&&d>f&&(b="height"):b=c/d>e/f?"width":"height","width"===b&&c>e?{width:e,height:Math.round(e*d/c)}:"height"===b&&d>f?{width:Math.round(f*c/d),height:f}:{width:c,height:d}},truncate:function(a,b,c){return b=b||30,c=c||"…",a.length<=b?a:a.substr(0,b/2)+c+a.substr(-1*b/2)}}),g.attachment=function(a){return d.get(a)},e.all=new e,g.query=function(a){return new e(null,{props:_.extend(_.defaults(a||{},{orderby:"date"}),{query:!0})})},h(window).on("unload",function(){window.wp=null})},21:function(a,b){var c,d=Backbone.$;c=Backbone.Model.extend({sync:function(a,b,c){return _.isUndefined(this.id)?d.Deferred().rejectWith(this).promise():"read"===a?(c=c||{},c.context=this,c.data=_.extend(c.data||{},{action:"get-attachment",id:this.id}),wp.media.ajax(c)):"update"===a?this.get("nonces")&&this.get("nonces").update?(c=c||{},c.context=this,c.data=_.extend(c.data||{},{action:"save-attachment",id:this.id,nonce:this.get("nonces").update,post_id:wp.media.model.settings.post.id}),b.hasChanged()&&(c.data.changes={},_.each(b.changed,function(a,b){c.data.changes[b]=this.get(b)},this)),wp.media.ajax(c)):d.Deferred().rejectWith(this).promise():"delete"===a?(c=c||{},c.wait||(this.destroyed=!0),c.context=this,c.data=_.extend(c.data||{},{action:"delete-post",id:this.id,_wpnonce:this.get("nonces")["delete"]}),wp.media.ajax(c).done(function(){this.destroyed=!0}).fail(function(){this.destroyed=!1})):Backbone.Model.prototype.sync.apply(this,arguments)},parse:function(a){return a?(a.date=new Date(a.date),a.modified=new Date(a.modified),a):a},saveCompat:function(a,b){var c=this;return this.get("nonces")&&this.get("nonces").update?wp.media.post("save-attachment-compat",_.defaults({id:this.id,nonce:this.get("nonces").update,post_id:wp.media.model.settings.post.id},a)).done(function(a,d,e){c.set(c.parse(a,e),b)}):d.Deferred().rejectWith(this).promise()}},{create:function(a){var b=wp.media.model.Attachments;return b.all.push(a)},get:_.memoize(function(a,b){var c=wp.media.model.Attachments;return c.all.push(b||{id:a})})}),a.exports=c},22:function(a,b){var c=Backbone.Collection.extend({model:wp.media.model.Attachment,initialize:function(a,b){b=b||{},this.props=new Backbone.Model,this.filters=b.filters||{},this.props.on("change",this._changeFilteredProps,this),this.props.on("change:order",this._changeOrder,this),this.props.on("change:orderby",this._changeOrderby,this),this.props.on("change:query",this._changeQuery,this),this.props.set(_.defaults(b.props||{})),b.observe&&this.observe(b.observe)},_changeOrder:function(){this.comparator&&this.sort()},_changeOrderby:function(a,b){this.comparator&&this.comparator!==c.comparator||(b&&"post__in"!==b?this.comparator=c.comparator:delete this.comparator)},_changeQuery:function(a,b){b?(this.props.on("change",this._requery,this),this._requery()):this.props.off("change",this._requery,this)},_changeFilteredProps:function(a){if(!this.props.get("query")){var b=_.chain(a.changed).map(function(b,d){var e=c.filters[d],f=a.get(d);if(e){if(f&&!this.filters[d])this.filters[d]=e;else{if(f||this.filters[d]!==e)return;delete this.filters[d]}return!0}},this).any().value();b&&(this._source||(this._source=new c(this.models)),this.reset(this._source.filter(this.validator,this)))}},validateDestroyed:!1,validator:function(a){return!(!this.validateDestroyed&&a.destroyed)&&_.all(this.filters,function(b){return!!b.call(this,a)},this)},validate:function(a,b){var c=this.validator(a),d=!!this.get(a.cid);return!c&&d?this.remove(a,b):c&&!d&&this.add(a,b),this},validateAll:function(a,b){return b=b||{},_.each(a.models,function(a){this.validate(a,{silent:!0})},this),b.silent||this.trigger("reset",this,b),this},observe:function(a){return this.observers=this.observers||[],this.observers.push(a),a.on("add change remove",this._validateHandler,this),a.on("reset",this._validateAllHandler,this),this.validateAll(a),this},unobserve:function(a){return a?(a.off(null,null,this),this.observers=_.without(this.observers,a)):(_.each(this.observers,function(a){a.off(null,null,this)},this),delete this.observers),this},_validateHandler:function(a,b,c){return c=b===this.mirroring?c:{silent:c&&c.silent},this.validate(a,c)},_validateAllHandler:function(a,b){return this.validateAll(a,b)},mirror:function(a){return this.mirroring&&this.mirroring===a?this:(this.unmirror(),this.mirroring=a,this.reset([],{silent:!0}),this.observe(a),this)},unmirror:function(){this.mirroring&&(this.unobserve(this.mirroring),delete this.mirroring)},more:function(a){var b=jQuery.Deferred(),c=this.mirroring,d=this;return c&&c.more?(c.more(a).done(function(){this===d.mirroring&&b.resolveWith(this)}),b.promise()):b.resolveWith(this).promise()},hasMore:function(){return!!this.mirroring&&this.mirroring.hasMore()},parse:function(a,b){return _.isArray(a)||(a=[a]),_.map(a,function(a){var c,d,e;return a instanceof Backbone.Model?(c=a.get("id"),a=a.attributes):c=a.id,d=wp.media.model.Attachment.get(c),e=d.parse(a,b),_.isEqual(d.attributes,e)||d.set(e),d})},_requery:function(a){var b;this.props.get("query")&&(b=this.props.toJSON(),b.cache=!0!==a,this.mirror(wp.media.model.Query.get(b)))},saveMenuOrder:function(){if("menuOrder"===this.props.get("orderby")){var a=this.chain().filter(function(a){return!_.isUndefined(a.id)}).map(function(a,b){return b+=1,a.set("menuOrder",b),[a.id,b]}).object().value();if(!_.isEmpty(a))return wp.media.post("save-attachment-order",{nonce:wp.media.model.settings.post.nonce,post_id:wp.media.model.settings.post.id,attachments:a})}}},{comparator:function(a,b,c){var d=this.props.get("orderby"),e=this.props.get("order")||"DESC",f=a.cid,g=b.cid;return a=a.get(d),b=b.get(d),"date"!==d&&"modified"!==d||(a=a||new Date,b=b||new Date),c&&c.ties&&(f=g=null),"DESC"===e?wp.media.compare(a,b,f,g):wp.media.compare(b,a,g,f)},filters:{search:function(a){return!this.props.get("search")||_.any(["title","filename","description","caption","name"],function(b){var c=a.get(b);return c&&-1!==c.search(this.props.get("search"))},this)},type:function(a){var b,c,d=this.props.get("type"),e=a.toJSON();return!(d&&(!_.isArray(d)||d.length))||(b=e.mime||e.file&&e.file.type||"",c=_.isArray(d)?_.find(d,function(a){return-1!==b.indexOf(a)}):-1!==b.indexOf(d))},uploadedTo:function(a){var b=this.props.get("uploadedTo");return!!_.isUndefined(b)||b===a.get("uploadedTo")},status:function(a){var b=this.props.get("status");return!!_.isUndefined(b)||b===a.get("status")}}});a.exports=c},23:function(a,b){var c,d=wp.media.model.Attachments;c=d.extend({initialize:function(a,b){var c;b=b||{},d.prototype.initialize.apply(this,arguments),this.args=b.args,this._hasMore=!0,this.created=new Date,this.filters.order=function(a){var b=this.props.get("orderby"),c=this.props.get("order");return!this.comparator||(this.length?1!==this.comparator(a,this.last(),{ties:!0}):"DESC"!==c||"date"!==b&&"modified"!==b?"ASC"===c&&"menuOrder"===b&&0===a.get(b):a.get(b)>=this.created)},c=["s","order","orderby","posts_per_page","post_mime_type","post_parent"],wp.Uploader&&_(this.args).chain().keys().difference(c).isEmpty().value()&&this.observe(wp.Uploader.queue)},hasMore:function(){return this._hasMore},more:function(a){var b=this;return this._more&&"pending"===this._more.state()?this._more:this.hasMore()?(a=a||{},a.remove=!1,this._more=this.fetch(a).done(function(a){(_.isEmpty(a)||-1===this.args.posts_per_page||a.length<this.args.posts_per_page)&&(b._hasMore=!1)})):jQuery.Deferred().resolveWith(this).promise()},sync:function(a,b,c){var e,f;return"read"===a?(c=c||{},c.context=this,c.data=_.extend(c.data||{},{action:"query-attachments",post_id:wp.media.model.settings.post.id}),e=_.clone(this.args),-1!==e.posts_per_page&&(e.paged=Math.round(this.length/e.posts_per_page)+1),c.data.query=e,wp.media.ajax(c)):(f=d.prototype.sync?d.prototype:Backbone,f.sync.apply(this,arguments))}},{defaultProps:{orderby:"date",order:"DESC"},defaultArgs:{posts_per_page:40},orderby:{allowed:["name","author","date","title","modified","uploadedTo","id","post__in","menuOrder"],valuemap:{id:"ID",uploadedTo:"parent",menuOrder:"menu_order ID"}},propmap:{search:"s",type:"post_mime_type",perPage:"posts_per_page",menuOrder:"menu_order",uploadedTo:"post_parent",status:"post_status",include:"post__in",exclude:"post__not_in"},get:function(){var a=[];return function(b,d){var e,f={},g=c.orderby,h=c.defaultProps,i=!!b.cache||_.isUndefined(b.cache);return delete b.query,delete b.cache,_.defaults(b,h),b.order=b.order.toUpperCase(),"DESC"!==b.order&&"ASC"!==b.order&&(b.order=h.order.toUpperCase()),_.contains(g.allowed,b.orderby)||(b.orderby=h.orderby),_.each(["include","exclude"],function(a){b[a]&&!_.isArray(b[a])&&(b[a]=[b[a]])}),_.each(b,function(a,b){_.isNull(a)||(f[c.propmap[b]||b]=a)}),_.defaults(f,c.defaultArgs),f.orderby=g.valuemap[b.orderby]||b.orderby,i?e=_.find(a,function(a){return _.isEqual(a.args,f)}):a=[],e||(e=new c([],_.extend(d||{},{props:b,args:f})),a.push(e)),e}}()}),a.exports=c},24:function(a,b){var c=Backbone.Model.extend({initialize:function(a){var b=wp.media.model.Attachment;this.attachment=!1,a.attachment_id&&(this.attachment=b.get(a.attachment_id),this.attachment.get("url")?(this.dfd=jQuery.Deferred(),this.dfd.resolve()):this.dfd=this.attachment.fetch(),this.bindAttachmentListeners()),this.on("change:link",this.updateLinkUrl,this),this.on("change:size",this.updateSize,this),this.setLinkTypeFromUrl(),this.setAspectRatio(),this.set("originalUrl",a.url)},bindAttachmentListeners:function(){this.listenTo(this.attachment,"sync",this.setLinkTypeFromUrl),this.listenTo(this.attachment,"sync",this.setAspectRatio),this.listenTo(this.attachment,"change",this.updateSize)},changeAttachment:function(a,b){this.stopListening(this.attachment),this.attachment=a,this.bindAttachmentListeners(),this.set("attachment_id",this.attachment.get("id")),this.set("caption",this.attachment.get("caption")),this.set("alt",this.attachment.get("alt")),this.set("size",b.get("size")),this.set("align",b.get("align")),this.set("link",b.get("link")),this.updateLinkUrl(),this.updateSize()},setLinkTypeFromUrl:function(){var a,b=this.get("linkUrl");return b?(a="custom",this.attachment?this.attachment.get("url")===b?a="file":this.attachment.get("link")===b&&(a="post"):this.get("url")===b&&(a="file"),void this.set("link",a)):void this.set("link","none")},updateLinkUrl:function(){var a,b=this.get("link");switch(b){case"file":a=this.attachment?this.attachment.get("url"):this.get("url"),this.set("linkUrl",a);break;case"post":this.set("linkUrl",this.attachment.get("link"));break;case"none":this.set("linkUrl","")}},updateSize:function(){var a;if(this.attachment){if("custom"===this.get("size"))return this.set("width",this.get("customWidth")),this.set("height",this.get("customHeight")),void this.set("url",this.get("originalUrl"));a=this.attachment.get("sizes")[this.get("size")],a&&(this.set("url",a.url),this.set("width",a.width),this.set("height",a.height))}},setAspectRatio:function(){var a;return this.attachment&&this.attachment.get("sizes")&&(a=this.attachment.get("sizes").full)?void this.set("aspectRatio",a.width/a.height):void this.set("aspectRatio",this.get("customWidth")/this.get("customHeight"))}});a.exports=c},25:function(a,b){var c,d=wp.media.model.Attachments;c=d.extend({initialize:function(a,b){d.prototype.initialize.apply(this,arguments),this.multiple=b&&b.multiple,this.on("add remove reset",_.bind(this.single,this,!1))},add:function(a,b){return this.multiple||this.remove(this.models),d.prototype.add.call(this,a,b)},single:function(a){var b=this._single;return a&&(this._single=a),this._single&&!this.get(this._single.cid)&&delete this._single,this._single=this._single||this.last(),this._single!==b&&(b&&(b.trigger("selection:unsingle",b,this),this.get(b.cid)||this.trigger("selection:unsingle",b,this)),this._single&&this._single.trigger("selection:single",this._single,this)),this._single}}),a.exports=c}}); \ No newline at end of file +!function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={i:d,l:!1,exports:{}};return a[d].call(e.exports,e,e.exports,b),e.l=!0,e.exports}var c={};return b.m=a,b.c=c,b.d=function(a,c,d){b.o(a,c)||Object.defineProperty(a,c,{configurable:!1,enumerable:!0,get:d})},b.n=function(a){var c=a&&a.__esModule?function(){return a["default"]}:function(){return a};return b.d(c,"a",c),c},b.o=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)},b.p="",b(b.s=20)}({20:function(a,b,c){var d,e,f,g,h=jQuery;window.wp=window.wp||{},g=wp.media=function(a){var b,c=g.view.MediaFrame;if(c)return a=_.defaults(a||{},{frame:"select"}),"select"===a.frame&&c.Select?b=new c.Select(a):"post"===a.frame&&c.Post?b=new c.Post(a):"manage"===a.frame&&c.Manage?b=new c.Manage(a):"image"===a.frame&&c.ImageDetails?b=new c.ImageDetails(a):"audio"===a.frame&&c.AudioDetails?b=new c.AudioDetails(a):"video"===a.frame&&c.VideoDetails?b=new c.VideoDetails(a):"edit-attachments"===a.frame&&c.EditAttachments&&(b=new c.EditAttachments(a)),delete a.frame,g.frame=b,b},_.extend(g,{model:{},view:{},controller:{},frames:{}}),f=g.model.l10n=window._wpMediaModelsL10n||{},g.model.settings=f.settings||{},delete f.settings,d=g.model.Attachment=c(21),e=g.model.Attachments=c(22),g.model.Query=c(23),g.model.PostImage=c(24),g.model.Selection=c(25),g.compare=function(a,b,c,d){return _.isEqual(a,b)?c===d?0:c>d?-1:1:a>b?-1:1},_.extend(g,{template:wp.template,post:wp.ajax.post,ajax:wp.ajax.send,fit:function(a){var b,c=a.width,d=a.height,e=a.maxWidth,f=a.maxHeight;return _.isUndefined(e)||_.isUndefined(f)?_.isUndefined(f)?b="width":_.isUndefined(e)&&d>f&&(b="height"):b=c/d>e/f?"width":"height","width"===b&&c>e?{width:e,height:Math.round(e*d/c)}:"height"===b&&d>f?{width:Math.round(f*c/d),height:f}:{width:c,height:d}},truncate:function(a,b,c){return b=b||30,c=c||"…",a.length<=b?a:a.substr(0,b/2)+c+a.substr(-1*b/2)}}),g.attachment=function(a){return d.get(a)},e.all=new e,g.query=function(a){return new e(null,{props:_.extend(_.defaults(a||{},{orderby:"date"}),{query:!0})})},h(window).on("unload",function(){window.wp=null})},21:function(a,b){var c,d=Backbone.$;c=Backbone.Model.extend({sync:function(a,b,c){return _.isUndefined(this.id)?d.Deferred().rejectWith(this).promise():"read"===a?(c=c||{},c.context=this,c.data=_.extend(c.data||{},{action:"get-attachment",id:this.id}),wp.media.ajax(c)):"update"===a?this.get("nonces")&&this.get("nonces").update?(c=c||{},c.context=this,c.data=_.extend(c.data||{},{action:"save-attachment",id:this.id,nonce:this.get("nonces").update,post_id:wp.media.model.settings.post.id}),b.hasChanged()&&(c.data.changes={},_.each(b.changed,function(a,b){c.data.changes[b]=this.get(b)},this)),wp.media.ajax(c)):d.Deferred().rejectWith(this).promise():"delete"===a?(c=c||{},c.wait||(this.destroyed=!0),c.context=this,c.data=_.extend(c.data||{},{action:"delete-post",id:this.id,_wpnonce:this.get("nonces")["delete"]}),wp.media.ajax(c).done(function(){this.destroyed=!0}).fail(function(){this.destroyed=!1})):Backbone.Model.prototype.sync.apply(this,arguments)},parse:function(a){return a?(a.date=new Date(a.date),a.modified=new Date(a.modified),a):a},saveCompat:function(a,b){var c=this;return this.get("nonces")&&this.get("nonces").update?wp.media.post("save-attachment-compat",_.defaults({id:this.id,nonce:this.get("nonces").update,post_id:wp.media.model.settings.post.id},a)).done(function(a,d,e){c.set(c.parse(a,e),b)}):d.Deferred().rejectWith(this).promise()}},{create:function(a){var b=wp.media.model.Attachments;return b.all.push(a)},get:_.memoize(function(a,b){var c=wp.media.model.Attachments;return c.all.push(b||{id:a})})}),a.exports=c},22:function(a,b){var c=Backbone.Collection.extend({model:wp.media.model.Attachment,initialize:function(a,b){b=b||{},this.props=new Backbone.Model,this.filters=b.filters||{},this.props.on("change",this._changeFilteredProps,this),this.props.on("change:order",this._changeOrder,this),this.props.on("change:orderby",this._changeOrderby,this),this.props.on("change:query",this._changeQuery,this),this.props.set(_.defaults(b.props||{})),b.observe&&this.observe(b.observe)},_changeOrder:function(){this.comparator&&this.sort()},_changeOrderby:function(a,b){this.comparator&&this.comparator!==c.comparator||(b&&"post__in"!==b?this.comparator=c.comparator:delete this.comparator)},_changeQuery:function(a,b){b?(this.props.on("change",this._requery,this),this._requery()):this.props.off("change",this._requery,this)},_changeFilteredProps:function(a){if(!this.props.get("query")){var b=_.chain(a.changed).map(function(b,d){var e=c.filters[d],f=a.get(d);if(e){if(f&&!this.filters[d])this.filters[d]=e;else{if(f||this.filters[d]!==e)return;delete this.filters[d]}return!0}},this).any().value();b&&(this._source||(this._source=new c(this.models)),this.reset(this._source.filter(this.validator,this)))}},validateDestroyed:!1,validator:function(a){return!(!_.isUndefined(a.attributes.context)&&""!==a.attributes.context)&&(!(!this.validateDestroyed&&a.destroyed)&&_.all(this.filters,function(b){return!!b.call(this,a)},this))},validate:function(a,b){var c=this.validator(a),d=!!this.get(a.cid);return!c&&d?this.remove(a,b):c&&!d&&this.add(a,b),this},validateAll:function(a,b){return b=b||{},_.each(a.models,function(a){this.validate(a,{silent:!0})},this),b.silent||this.trigger("reset",this,b),this},observe:function(a){return this.observers=this.observers||[],this.observers.push(a),a.on("add change remove",this._validateHandler,this),a.on("reset",this._validateAllHandler,this),this.validateAll(a),this},unobserve:function(a){return a?(a.off(null,null,this),this.observers=_.without(this.observers,a)):(_.each(this.observers,function(a){a.off(null,null,this)},this),delete this.observers),this},_validateHandler:function(a,b,c){return c=b===this.mirroring?c:{silent:c&&c.silent},this.validate(a,c)},_validateAllHandler:function(a,b){return this.validateAll(a,b)},mirror:function(a){return this.mirroring&&this.mirroring===a?this:(this.unmirror(),this.mirroring=a,this.reset([],{silent:!0}),this.observe(a),this)},unmirror:function(){this.mirroring&&(this.unobserve(this.mirroring),delete this.mirroring)},more:function(a){var b=jQuery.Deferred(),c=this.mirroring,d=this;return c&&c.more?(c.more(a).done(function(){this===d.mirroring&&b.resolveWith(this)}),b.promise()):b.resolveWith(this).promise()},hasMore:function(){return!!this.mirroring&&this.mirroring.hasMore()},parse:function(a,b){return _.isArray(a)||(a=[a]),_.map(a,function(a){var c,d,e;return a instanceof Backbone.Model?(c=a.get("id"),a=a.attributes):c=a.id,d=wp.media.model.Attachment.get(c),e=d.parse(a,b),_.isEqual(d.attributes,e)||d.set(e),d})},_requery:function(a){var b;this.props.get("query")&&(b=this.props.toJSON(),b.cache=!0!==a,this.mirror(wp.media.model.Query.get(b)))},saveMenuOrder:function(){if("menuOrder"===this.props.get("orderby")){var a=this.chain().filter(function(a){return!_.isUndefined(a.id)}).map(function(a,b){return b+=1,a.set("menuOrder",b),[a.id,b]}).object().value();if(!_.isEmpty(a))return wp.media.post("save-attachment-order",{nonce:wp.media.model.settings.post.nonce,post_id:wp.media.model.settings.post.id,attachments:a})}}},{comparator:function(a,b,c){var d=this.props.get("orderby"),e=this.props.get("order")||"DESC",f=a.cid,g=b.cid;return a=a.get(d),b=b.get(d),"date"!==d&&"modified"!==d||(a=a||new Date,b=b||new Date),c&&c.ties&&(f=g=null),"DESC"===e?wp.media.compare(a,b,f,g):wp.media.compare(b,a,g,f)},filters:{search:function(a){return!this.props.get("search")||_.any(["title","filename","description","caption","name"],function(b){var c=a.get(b);return c&&-1!==c.search(this.props.get("search"))},this)},type:function(a){var b,c,d=this.props.get("type"),e=a.toJSON();return!(d&&(!_.isArray(d)||d.length))||(b=e.mime||e.file&&e.file.type||"",c=_.isArray(d)?_.find(d,function(a){return-1!==b.indexOf(a)}):-1!==b.indexOf(d))},uploadedTo:function(a){var b=this.props.get("uploadedTo");return!!_.isUndefined(b)||b===a.get("uploadedTo")},status:function(a){var b=this.props.get("status");return!!_.isUndefined(b)||b===a.get("status")}}});a.exports=c},23:function(a,b){var c,d=wp.media.model.Attachments;c=d.extend({initialize:function(a,b){var c;b=b||{},d.prototype.initialize.apply(this,arguments),this.args=b.args,this._hasMore=!0,this.created=new Date,this.filters.order=function(a){var b=this.props.get("orderby"),c=this.props.get("order");return!this.comparator||(this.length?1!==this.comparator(a,this.last(),{ties:!0}):"DESC"!==c||"date"!==b&&"modified"!==b?"ASC"===c&&"menuOrder"===b&&0===a.get(b):a.get(b)>=this.created)},c=["s","order","orderby","posts_per_page","post_mime_type","post_parent","author"],wp.Uploader&&_(this.args).chain().keys().difference(c).isEmpty().value()&&this.observe(wp.Uploader.queue)},hasMore:function(){return this._hasMore},more:function(a){var b=this;return this._more&&"pending"===this._more.state()?this._more:this.hasMore()?(a=a||{},a.remove=!1,this._more=this.fetch(a).done(function(a){(_.isEmpty(a)||-1===this.args.posts_per_page||a.length<this.args.posts_per_page)&&(b._hasMore=!1)})):jQuery.Deferred().resolveWith(this).promise()},sync:function(a,b,c){var e,f;return"read"===a?(c=c||{},c.context=this,c.data=_.extend(c.data||{},{action:"query-attachments",post_id:wp.media.model.settings.post.id}),e=_.clone(this.args),-1!==e.posts_per_page&&(e.paged=Math.round(this.length/e.posts_per_page)+1),c.data.query=e,wp.media.ajax(c)):(f=d.prototype.sync?d.prototype:Backbone,f.sync.apply(this,arguments))}},{defaultProps:{orderby:"date",order:"DESC"},defaultArgs:{posts_per_page:40},orderby:{allowed:["name","author","date","title","modified","uploadedTo","id","post__in","menuOrder"],valuemap:{id:"ID",uploadedTo:"parent",menuOrder:"menu_order ID"}},propmap:{search:"s",type:"post_mime_type",perPage:"posts_per_page",menuOrder:"menu_order",uploadedTo:"post_parent",status:"post_status",include:"post__in",exclude:"post__not_in",author:"author"},get:function(){var a=[];return function(b,d){var e,f={},g=c.orderby,h=c.defaultProps,i=!!b.cache||_.isUndefined(b.cache);return delete b.query,delete b.cache,_.defaults(b,h),b.order=b.order.toUpperCase(),"DESC"!==b.order&&"ASC"!==b.order&&(b.order=h.order.toUpperCase()),_.contains(g.allowed,b.orderby)||(b.orderby=h.orderby),_.each(["include","exclude"],function(a){b[a]&&!_.isArray(b[a])&&(b[a]=[b[a]])}),_.each(b,function(a,b){_.isNull(a)||(f[c.propmap[b]||b]=a)}),_.defaults(f,c.defaultArgs),f.orderby=g.valuemap[b.orderby]||b.orderby,i?e=_.find(a,function(a){return _.isEqual(a.args,f)}):a=[],e||(e=new c([],_.extend(d||{},{props:b,args:f})),a.push(e)),e}}()}),a.exports=c},24:function(a,b){var c=Backbone.Model.extend({initialize:function(a){var b=wp.media.model.Attachment;this.attachment=!1,a.attachment_id&&(this.attachment=b.get(a.attachment_id),this.attachment.get("url")?(this.dfd=jQuery.Deferred(),this.dfd.resolve()):this.dfd=this.attachment.fetch(),this.bindAttachmentListeners()),this.on("change:link",this.updateLinkUrl,this),this.on("change:size",this.updateSize,this),this.setLinkTypeFromUrl(),this.setAspectRatio(),this.set("originalUrl",a.url)},bindAttachmentListeners:function(){this.listenTo(this.attachment,"sync",this.setLinkTypeFromUrl),this.listenTo(this.attachment,"sync",this.setAspectRatio),this.listenTo(this.attachment,"change",this.updateSize)},changeAttachment:function(a,b){this.stopListening(this.attachment),this.attachment=a,this.bindAttachmentListeners(),this.set("attachment_id",this.attachment.get("id")),this.set("caption",this.attachment.get("caption")),this.set("alt",this.attachment.get("alt")),this.set("size",b.get("size")),this.set("align",b.get("align")),this.set("link",b.get("link")),this.updateLinkUrl(),this.updateSize()},setLinkTypeFromUrl:function(){var a,b=this.get("linkUrl");return b?(a="custom",this.attachment?this.attachment.get("url")===b?a="file":this.attachment.get("link")===b&&(a="post"):this.get("url")===b&&(a="file"),void this.set("link",a)):void this.set("link","none")},updateLinkUrl:function(){var a,b=this.get("link");switch(b){case"file":a=this.attachment?this.attachment.get("url"):this.get("url"),this.set("linkUrl",a);break;case"post":this.set("linkUrl",this.attachment.get("link"));break;case"none":this.set("linkUrl","")}},updateSize:function(){var a;if(this.attachment){if("custom"===this.get("size"))return this.set("width",this.get("customWidth")),this.set("height",this.get("customHeight")),void this.set("url",this.get("originalUrl"));a=this.attachment.get("sizes")[this.get("size")],a&&(this.set("url",a.url),this.set("width",a.width),this.set("height",a.height))}},setAspectRatio:function(){var a;return this.attachment&&this.attachment.get("sizes")&&(a=this.attachment.get("sizes").full)?void this.set("aspectRatio",a.width/a.height):void this.set("aspectRatio",this.get("customWidth")/this.get("customHeight"))}});a.exports=c},25:function(a,b){var c,d=wp.media.model.Attachments;c=d.extend({initialize:function(a,b){d.prototype.initialize.apply(this,arguments),this.multiple=b&&b.multiple,this.on("add remove reset",_.bind(this.single,this,!1))},add:function(a,b){return this.multiple||this.remove(this.models),d.prototype.add.call(this,a,b)},single:function(a){var b=this._single;return a&&(this._single=a),this._single&&!this.get(this._single.cid)&&delete this._single,this._single=this._single||this.last(),this._single!==b&&(b&&(b.trigger("selection:unsingle",b,this),this.get(b.cid)||this.trigger("selection:unsingle",b,this)),this._single&&this._single.trigger("selection:single",this._single,this)),this._single}}),a.exports=c}}); \ No newline at end of file diff --git a/wp-includes/js/media-views.js b/wp-includes/js/media-views.js index 53c58b743..27350ca31 100644 --- a/wp-includes/js/media-views.js +++ b/wp-includes/js/media-views.js @@ -953,9 +953,6 @@ Library = wp.media.controller.State.extend(/** @lends wp.media.controller.Librar }) ); } - this._filterContext(); - this.get('library').on( 'add', this._filterContext, this ); - this.resetDisplays(); }, @@ -1155,20 +1152,8 @@ Library = wp.media.controller.State.extend(/** @lends wp.media.controller.Librar if ( view && view.get( mode ) ) { setUserSetting( 'libraryContent', mode ); } - }, - - /** - * Filter out contextually created attachments (e.g. headers, logos, etc.) - * - * @since 4.9.0 - */ - _filterContext: function() { - var library = this.get('library'); - - library.set( library.filter( function( item ) { - return item.get('context') === ''; - } ) ); } + }); // Make selectionSync available on any Media Library state. @@ -7037,6 +7022,7 @@ Uploaded = wp.media.view.AttachmentFilters.extend(/** @lends wp.media.view.Attac createFilters: function() { var type = this.model.get('type'), types = wp.media.view.settings.mimeTypes, + uid = window.userSettings ? parseInt( window.userSettings.uid, 10 ) : 0, text; if ( types && type ) { @@ -7049,7 +7035,8 @@ Uploaded = wp.media.view.AttachmentFilters.extend(/** @lends wp.media.view.Attac props: { uploadedTo: null, orderby: 'date', - order: 'DESC' + order: 'DESC', + author: null }, priority: 10 }, @@ -7059,7 +7046,8 @@ Uploaded = wp.media.view.AttachmentFilters.extend(/** @lends wp.media.view.Attac props: { uploadedTo: wp.media.view.settings.post.id, orderby: 'menuOrder', - order: 'ASC' + order: 'ASC', + author: null }, priority: 20 }, @@ -7069,11 +7057,24 @@ Uploaded = wp.media.view.AttachmentFilters.extend(/** @lends wp.media.view.Attac props: { uploadedTo: 0, orderby: 'menuOrder', - order: 'ASC' + order: 'ASC', + author: null }, priority: 50 } }; + + if ( uid ) { + this.filters.mine = { + text: l10n.mine, + props: { + orderby: 'date', + order: 'DESC', + author: uid + }, + priority: 50 + }; + } } }); @@ -7100,7 +7101,8 @@ var l10n = wp.media.view.l10n, */ All = wp.media.view.AttachmentFilters.extend(/** @lends wp.media.view.AttachmentFilters.All.prototype */{ createFilters: function() { - var filters = {}; + var filters = {}, + uid = window.userSettings ? parseInt( window.userSettings.uid, 10 ) : 0; _.each( wp.media.view.settings.mimeTypes || {}, function( text, key ) { filters[ key ] = { @@ -7110,7 +7112,8 @@ All = wp.media.view.AttachmentFilters.extend(/** @lends wp.media.view.Attachment type: key, uploadedTo: null, orderby: 'date', - order: 'DESC' + order: 'DESC', + author: null } }; }); @@ -7122,7 +7125,8 @@ All = wp.media.view.AttachmentFilters.extend(/** @lends wp.media.view.Attachment type: null, uploadedTo: null, orderby: 'date', - order: 'DESC' + order: 'DESC', + author: null }, priority: 10 }; @@ -7135,7 +7139,8 @@ All = wp.media.view.AttachmentFilters.extend(/** @lends wp.media.view.Attachment type: null, uploadedTo: wp.media.view.settings.post.id, orderby: 'menuOrder', - order: 'ASC' + order: 'ASC', + author: null }, priority: 20 }; @@ -7148,11 +7153,27 @@ All = wp.media.view.AttachmentFilters.extend(/** @lends wp.media.view.Attachment uploadedTo: 0, type: null, orderby: 'menuOrder', - order: 'ASC' + order: 'ASC', + author: null }, priority: 50 }; + if ( uid ) { + filters.mine = { + text: l10n.mine, + props: { + status: null, + type: null, + uploadedTo: null, + orderby: 'date', + order: 'DESC', + author: uid + }, + priority: 50 + }; + } + if ( wp.media.view.settings.mediaTrash && this.controller.isModeActive( 'grid' ) ) { @@ -7163,7 +7184,8 @@ All = wp.media.view.AttachmentFilters.extend(/** @lends wp.media.view.Attachment status: 'trash', type: null, orderby: 'date', - order: 'DESC' + order: 'DESC', + author: null }, priority: 50 }; diff --git a/wp-includes/js/media-views.min.js b/wp-includes/js/media-views.min.js index 83b50724f..26a1d6689 100644 --- a/wp-includes/js/media-views.min.js +++ b/wp-includes/js/media-views.min.js @@ -1,4 +1,4 @@ -!function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={i:d,l:!1,exports:{}};return a[d].call(e.exports,e,e.exports,b),e.l=!0,e.exports}var c={};return b.m=a,b.c=c,b.d=function(a,c,d){b.o(a,c)||Object.defineProperty(a,c,{configurable:!1,enumerable:!0,get:d})},b.n=function(a){var c=a&&a.__esModule?function(){return a["default"]}:function(){return a};return b.d(c,"a",c),c},b.o=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)},b.p="",b(b.s=26)}(Array(26).concat([function(a,b,c){var d,e=wp.media,f=jQuery;e.isTouchDevice="ontouchend"in document,d=e.view.l10n=window._wpMediaViewsL10n||{},e.view.settings=d.settings||{},delete d.settings,e.model.settings.post=e.view.settings.post,f.support.transition=function(){var a,b=document.documentElement.style,c={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};return a=_.find(_.keys(c),function(a){return!_.isUndefined(b[a])}),a&&{end:c[a]}}(),e.events=_.extend({},Backbone.Events),e.transition=function(a,b){var c=f.Deferred();return b=b||2e3,f.support.transition?(a instanceof f||(a=f(a)),a.first().one(f.support.transition.end,c.resolve),_.delay(c.resolve,b)):c.resolve(),c.promise()},e.controller.Region=c(27),e.controller.StateMachine=c(28),e.controller.State=c(29),e.selectionSync=c(30),e.controller.Library=c(31),e.controller.ImageDetails=c(32),e.controller.GalleryEdit=c(33),e.controller.GalleryAdd=c(34),e.controller.CollectionEdit=c(35),e.controller.CollectionAdd=c(36),e.controller.FeaturedImage=c(37),e.controller.ReplaceImage=c(38),e.controller.EditImage=c(39),e.controller.MediaLibrary=c(40),e.controller.Embed=c(41),e.controller.Cropper=c(42),e.controller.CustomizeImageCropper=c(43),e.controller.SiteIconCropper=c(44),e.View=c(45),e.view.Frame=c(46),e.view.MediaFrame=c(47),e.view.MediaFrame.Select=c(48),e.view.MediaFrame.Post=c(49),e.view.MediaFrame.ImageDetails=c(50),e.view.Modal=c(51),e.view.FocusManager=c(52),e.view.UploaderWindow=c(53),e.view.EditorUploader=c(54),e.view.UploaderInline=c(55),e.view.UploaderStatus=c(56),e.view.UploaderStatusError=c(57),e.view.Toolbar=c(58),e.view.Toolbar.Select=c(59),e.view.Toolbar.Embed=c(60),e.view.Button=c(61),e.view.ButtonGroup=c(62),e.view.PriorityList=c(63),e.view.MenuItem=c(64),e.view.Menu=c(65),e.view.RouterItem=c(66),e.view.Router=c(67),e.view.Sidebar=c(68),e.view.Attachment=c(69),e.view.Attachment.Library=c(70),e.view.Attachment.EditLibrary=c(71),e.view.Attachments=c(72),e.view.Search=c(73),e.view.AttachmentFilters=c(74),e.view.DateFilter=c(75),e.view.AttachmentFilters.Uploaded=c(76),e.view.AttachmentFilters.All=c(77),e.view.AttachmentsBrowser=c(78),e.view.Selection=c(79),e.view.Attachment.Selection=c(80),e.view.Attachments.Selection=c(81),e.view.Attachment.EditSelection=c(82),e.view.Settings=c(83),e.view.Settings.AttachmentDisplay=c(84),e.view.Settings.Gallery=c(85),e.view.Settings.Playlist=c(86),e.view.Attachment.Details=c(87),e.view.AttachmentCompat=c(88),e.view.Iframe=c(89),e.view.Embed=c(90),e.view.Label=c(91),e.view.EmbedUrl=c(92),e.view.EmbedLink=c(93),e.view.EmbedImage=c(94),e.view.ImageDetails=c(95),e.view.Cropper=c(96),e.view.SiteIconCropper=c(97),e.view.SiteIconPreview=c(98),e.view.EditImage=c(99),e.view.Spinner=c(100)},function(a,b){var c=function(a){_.extend(this,_.pick(a||{},"id","view","selector"))};c.extend=Backbone.Model.extend,_.extend(c.prototype,{mode:function(a){return a?a===this._mode?this:(this.trigger("deactivate"),this._mode=a,this.render(a),this.trigger("activate"),this):this._mode},render:function(a){if(a&&a!==this._mode)return this.mode(a);var b,c={view:null};return this.trigger("create",c),b=c.view,this.trigger("render",b),b&&this.set(b),this},get:function(){return this.view.views.first(this.selector)},set:function(a,b){return b&&(b.add=!1),this.view.views.set(this.selector,a,b)},trigger:function(a){var b,c;if(this._mode)return c=_.toArray(arguments),b=this.id+":"+a,c[0]=b+":"+this._mode,this.view.trigger.apply(this.view,c),c[0]=b,this.view.trigger.apply(this.view,c),this}}),a.exports=c},function(a,b){var c=function(a){this.states=new Backbone.Collection(a)};c.extend=Backbone.Model.extend,_.extend(c.prototype,Backbone.Events,{state:function(a){return this.states=this.states||new Backbone.Collection,a=a||this._state,a&&!this.states.get(a)&&this.states.add({id:a}),this.states.get(a)},setState:function(a){var b=this.state();return b&&a===b.id||!this.states||!this.states.get(a)?this:(b&&(b.trigger("deactivate"),this._lastState=b.id),this._state=a,this.state().trigger("activate"),this)},lastState:function(){if(this._lastState)return this.state(this._lastState)}}),_.each(["on","off","trigger"],function(a){c.prototype[a]=function(){return this.states=this.states||new Backbone.Collection,this.states[a].apply(this.states,arguments),this}}),a.exports=c},function(a,b){var c=Backbone.Model.extend({constructor:function(){this.on("activate",this._preActivate,this),this.on("activate",this.activate,this),this.on("activate",this._postActivate,this),this.on("deactivate",this._deactivate,this),this.on("deactivate",this.deactivate,this),this.on("reset",this.reset,this),this.on("ready",this._ready,this),this.on("ready",this.ready,this),Backbone.Model.apply(this,arguments),this.on("change:menu",this._updateMenu,this)},ready:function(){},activate:function(){},deactivate:function(){},reset:function(){},_ready:function(){this._updateMenu()},_preActivate:function(){this.active=!0},_postActivate:function(){this.on("change:menu",this._menu,this),this.on("change:titleMode",this._title,this),this.on("change:content",this._content,this),this.on("change:toolbar",this._toolbar,this),this.frame.on("title:render:default",this._renderTitle,this),this._title(),this._menu(),this._toolbar(),this._content(),this._router()},_deactivate:function(){this.active=!1,this.frame.off("title:render:default",this._renderTitle,this),this.off("change:menu",this._menu,this),this.off("change:titleMode",this._title,this),this.off("change:content",this._content,this),this.off("change:toolbar",this._toolbar,this)},_title:function(){this.frame.title.render(this.get("titleMode")||"default")},_renderTitle:function(a){a.$el.text(this.get("title")||"")},_router:function(){var a,b=this.frame.router,c=this.get("router");this.frame.$el.toggleClass("hide-router",!c),c&&(this.frame.router.render(c),a=b.get(),a&&a.select&&a.select(this.frame.content.mode()))},_menu:function(){var a,b=this.frame.menu,c=this.get("menu");this.frame.$el.toggleClass("hide-menu",!c),c&&(b.mode(c),a=b.get(),a&&a.select&&a.select(this.id))},_updateMenu:function(){var a=this.previous("menu"),b=this.get("menu");a&&this.frame.off("menu:render:"+a,this._renderMenu,this),b&&this.frame.on("menu:render:"+b,this._renderMenu,this)},_renderMenu:function(a){var b=this.get("menuItem"),c=this.get("title"),d=this.get("priority");!b&&c&&(b={text:c},d&&(b.priority=d)),b&&a.set(this.id,b)}});_.each(["toolbar","content"],function(a){c.prototype["_"+a]=function(){var b=this.get(a);b&&this.frame[a].render(b)}}),a.exports=c},function(a,b){var c={syncSelection:function(){var a=this.get("selection"),b=this.frame._selection;this.get("syncSelection")&&b&&a&&(a.multiple&&(a.reset([],{silent:!0}),a.validateAll(b.attachments),b.difference=_.difference(b.attachments.models,a.models)),a.single(b.single))},recordSelection:function(){var a=this.get("selection"),b=this.frame._selection;this.get("syncSelection")&&b&&a&&(a.multiple?(b.attachments.reset(a.toArray().concat(b.difference)),b.difference=[]):b.attachments.add(a.toArray()),b.single=a._single)}};a.exports=c},function(a,b){var c,d=wp.media.view.l10n,e=window.getUserSetting,f=window.setUserSetting;c=wp.media.controller.State.extend({defaults:{id:"library",title:d.mediaLibraryTitle,multiple:!1,content:"upload",menu:"default",router:"browse",toolbar:"select",searchable:!0,filterable:!1,sortable:!0,autoSelect:!0,describe:!1,contentUserSetting:!0,syncSelection:!0},initialize:function(){var a,b=this.get("selection");this.get("library")||this.set("library",wp.media.query()),b instanceof wp.media.model.Selection||(a=b,a||(a=this.get("library").props.toJSON(),a=_.omit(a,"orderby","query")),this.set("selection",new wp.media.model.Selection(null,{multiple:this.get("multiple"),props:a}))),this._filterContext(),this.get("library").on("add",this._filterContext,this),this.resetDisplays()},activate:function(){this.syncSelection(),wp.Uploader.queue.on("add",this.uploading,this),this.get("selection").on("add remove reset",this.refreshContent,this),this.get("router")&&this.get("contentUserSetting")&&(this.frame.on("content:activate",this.saveContentMode,this),this.set("content",e("libraryContent",this.get("content"))))},deactivate:function(){this.recordSelection(),this.frame.off("content:activate",this.saveContentMode,this),this.get("selection").off(null,null,this),wp.Uploader.queue.off(null,null,this)},reset:function(){this.get("selection").reset(),this.resetDisplays(),this.refreshContent()},resetDisplays:function(){var a=wp.media.view.settings.defaultProps;this._displays=[],this._defaultDisplaySettings={align:e("align",a.align)||"none",size:e("imgsize",a.size)||"medium",link:e("urlbutton",a.link)||"none"}},display:function(a){var b=this._displays;return b[a.cid]||(b[a.cid]=new Backbone.Model(this.defaultDisplaySettings(a))),b[a.cid]},defaultDisplaySettings:function(a){var b=_.clone(this._defaultDisplaySettings);return(b.canEmbed=this.canEmbed(a))?b.link="embed":this.isImageAttachment(a)||"none"!==b.link||(b.link="file"),b},isImageAttachment:function(a){return a.get("uploading")?/\.(jpe?g|png|gif)$/i.test(a.get("filename")):"image"===a.get("type")},canEmbed:function(a){if(!a.get("uploading")){var b=a.get("type");if("audio"!==b&&"video"!==b)return!1}return _.contains(wp.media.view.settings.embedExts,a.get("filename").split(".").pop())},refreshContent:function(){var a=this.get("selection"),b=this.frame,c=b.router.get(),d=b.content.mode();this.active&&!a.length&&c&&!c.get(d)&&this.frame.content.render(this.get("content"))},uploading:function(a){var b=this.frame.content;"upload"===b.mode()&&this.frame.content.mode("browse"),this.get("autoSelect")&&(this.get("selection").add(a),this.frame.trigger("library:selection:add"))},saveContentMode:function(){if("browse"===this.get("router")){var a=this.frame.content.mode(),b=this.frame.router.get();b&&b.get(a)&&f("libraryContent",a)}},_filterContext:function(){var a=this.get("library");a.set(a.filter(function(a){return""===a.get("context")}))}}),_.extend(c.prototype,wp.media.selectionSync),a.exports=c},function(a,b){var c,d=wp.media.controller.State,e=wp.media.controller.Library,f=wp.media.view.l10n;c=d.extend({defaults:_.defaults({id:"image-details",title:f.imageDetailsTitle,content:"image-details",menu:!1,router:!1,toolbar:"image-details",editing:!1,priority:60},e.prototype.defaults),initialize:function(a){this.image=a.image,d.prototype.initialize.apply(this,arguments)},activate:function(){this.frame.modal.$el.addClass("image-details")}}),a.exports=c},function(a,b){var c,d=wp.media.controller.Library,e=wp.media.view.l10n;c=d.extend({defaults:{id:"gallery-edit",title:e.editGalleryTitle,multiple:!1,searchable:!1,sortable:!0,date:!1,display:!1,content:"browse",toolbar:"gallery-edit",describe:!0,displaySettings:!0,dragInfo:!0,idealColumnWidth:170,editing:!1,priority:60,syncSelection:!1},initialize:function(){this.get("library")||this.set("library",new wp.media.model.Selection),this.get("AttachmentView")||this.set("AttachmentView",wp.media.view.Attachment.EditLibrary),d.prototype.initialize.apply(this,arguments)},activate:function(){var a=this.get("library");a.props.set("type","image"),this.get("library").observe(wp.Uploader.queue),this.frame.on("content:render:browse",this.gallerySettings,this),d.prototype.activate.apply(this,arguments)},deactivate:function(){this.get("library").unobserve(wp.Uploader.queue),this.frame.off("content:render:browse",this.gallerySettings,this),d.prototype.deactivate.apply(this,arguments)},gallerySettings:function(a){if(this.get("displaySettings")){var b=this.get("library");b&&a&&(b.gallery=b.gallery||new Backbone.Model,a.sidebar.set({gallery:new wp.media.view.Settings.Gallery({controller:this,model:b.gallery,priority:40})}),a.toolbar.set("reverse",{text:e.reverseOrder,priority:80,click:function(){b.reset(b.toArray().reverse())}}))}}}),a.exports=c},function(a,b){var c,d=wp.media.model.Selection,e=wp.media.controller.Library,f=wp.media.view.l10n;c=e.extend({defaults:_.defaults({id:"gallery-library",title:f.addToGalleryTitle,multiple:"add",filterable:"uploaded",menu:"gallery",toolbar:"gallery-add",priority:100,syncSelection:!1},e.prototype.defaults),initialize:function(){this.get("library")||this.set("library",wp.media.query({type:"image"})),e.prototype.initialize.apply(this,arguments)},activate:function(){var a=this.get("library"),b=this.frame.state("gallery-edit").get("library");this.editLibrary&&this.editLibrary!==b&&a.unobserve(this.editLibrary),a.validator=function(a){return!!this.mirroring.get(a.cid)&&!b.get(a.cid)&&d.prototype.validator.apply(this,arguments)},a.reset(a.mirroring.models,{silent:!0}),a.observe(b),this.editLibrary=b,e.prototype.activate.apply(this,arguments)}}),a.exports=c},function(a,b){var c,d=wp.media.controller.Library,e=wp.media.view.l10n,f=jQuery;c=d.extend({defaults:{multiple:!1,sortable:!0,date:!1,searchable:!1,content:"browse",describe:!0,dragInfo:!0,idealColumnWidth:170,editing:!1,priority:60,SettingsView:!1,syncSelection:!1},initialize:function(){var a=this.get("collectionType");"video"===this.get("type")&&(a="video-"+a),this.set("id",a+"-edit"),this.set("toolbar",a+"-edit"),this.get("library")||this.set("library",new wp.media.model.Selection),this.get("AttachmentView")||this.set("AttachmentView",wp.media.view.Attachment.EditLibrary),d.prototype.initialize.apply(this,arguments)},activate:function(){var a=this.get("library");a.props.set("type",this.get("type")),this.get("library").observe(wp.Uploader.queue),this.frame.on("content:render:browse",this.renderSettings,this),d.prototype.activate.apply(this,arguments)},deactivate:function(){this.get("library").unobserve(wp.Uploader.queue),this.frame.off("content:render:browse",this.renderSettings,this),d.prototype.deactivate.apply(this,arguments)},renderSettings:function(a){var b=this.get("library"),c=this.get("collectionType"),d=this.get("dragInfoText"),g=this.get("SettingsView"),h={};b&&a&&(b[c]=b[c]||new Backbone.Model,h[c]=new g({controller:this,model:b[c],priority:40}),a.sidebar.set(h),d&&a.toolbar.set("dragInfo",new wp.media.View({el:f('<div class="instructions">'+d+"</div>")[0],priority:-40})),a.toolbar.set("reverse",{text:e.reverseOrder,priority:80,click:function(){b.reset(b.toArray().reverse())}}))}}),a.exports=c},function(a,b){var c,d=wp.media.model.Selection,e=wp.media.controller.Library;c=e.extend({defaults:_.defaults({multiple:"add",filterable:"uploaded",priority:100,syncSelection:!1},e.prototype.defaults),initialize:function(){var a=this.get("collectionType");"video"===this.get("type")&&(a="video-"+a),this.set("id",a+"-library"),this.set("toolbar",a+"-add"),this.set("menu",a),this.get("library")||this.set("library",wp.media.query({type:this.get("type")})),e.prototype.initialize.apply(this,arguments)},activate:function(){var a=this.get("library"),b=this.get("editLibrary"),c=this.frame.state(this.get("collectionType")+"-edit").get("library");b&&b!==c&&a.unobserve(b),a.validator=function(a){return!!this.mirroring.get(a.cid)&&!c.get(a.cid)&&d.prototype.validator.apply(this,arguments)},a.reset(a.mirroring.models,{silent:!0}),a.observe(c),this.set("editLibrary",c),e.prototype.activate.apply(this,arguments)}}),a.exports=c},function(a,b){var c,d=wp.media.model.Attachment,e=wp.media.controller.Library,f=wp.media.view.l10n;c=e.extend({defaults:_.defaults({id:"featured-image",title:f.setFeaturedImageTitle,multiple:!1,filterable:"uploaded",toolbar:"featured-image",priority:60,syncSelection:!0},e.prototype.defaults),initialize:function(){var a,b;this.get("library")||this.set("library",wp.media.query({type:"image"})),e.prototype.initialize.apply(this,arguments),a=this.get("library"),b=a.comparator,a.comparator=function(a,c){var d=!!this.mirroring.get(a.cid),e=!!this.mirroring.get(c.cid);return!d&&e?-1:d&&!e?1:b.apply(this,arguments)},a.observe(this.get("selection"))},activate:function(){this.updateSelection(),this.frame.on("open",this.updateSelection,this),e.prototype.activate.apply(this,arguments)},deactivate:function(){this.frame.off("open",this.updateSelection,this),e.prototype.deactivate.apply(this,arguments)},updateSelection:function(){var a,b=this.get("selection"),c=wp.media.view.settings.post.featuredImageId;""!==c&&-1!==c&&(a=d.get(c),a.fetch()),b.reset(a?[a]:[])}}),a.exports=c},function(a,b){var c,d=wp.media.controller.Library,e=wp.media.view.l10n;c=d.extend({defaults:_.defaults({id:"replace-image",title:e.replaceImageTitle,multiple:!1,filterable:"uploaded",toolbar:"replace",menu:!1,priority:60,syncSelection:!0},d.prototype.defaults),initialize:function(a){var b,c;this.image=a.image,this.get("library")||this.set("library",wp.media.query({type:"image"})),d.prototype.initialize.apply(this,arguments),b=this.get("library"),c=b.comparator,b.comparator=function(a,b){var d=!!this.mirroring.get(a.cid),e=!!this.mirroring.get(b.cid);return!d&&e?-1:d&&!e?1:c.apply(this,arguments)},b.observe(this.get("selection"))},activate:function(){this.updateSelection(),d.prototype.activate.apply(this,arguments)},updateSelection:function(){var a=this.get("selection"),b=this.image.attachment;a.reset(b?[b]:[])}}),a.exports=c},function(a,b){var c,d=wp.media.view.l10n;c=wp.media.controller.State.extend({defaults:{id:"edit-image",title:d.editImage,menu:!1,toolbar:"edit-image",content:"edit-image",url:""},activate:function(){this.frame.on("toolbar:render:edit-image",_.bind(this.toolbar,this))},deactivate:function(){this.frame.off("toolbar:render:edit-image")},toolbar:function(){var a=this.frame,b=a.lastState(),c=b&&b.id;a.toolbar.set(new wp.media.view.Toolbar({controller:a,items:{back:{style:"primary",text:d.back,priority:20,click:function(){c?a.setState(c):a.close()}}}}))}}),a.exports=c},function(a,b){var c,d=wp.media.controller.Library;c=d.extend({defaults:_.defaults({filterable:"uploaded",displaySettings:!1,priority:80,syncSelection:!1},d.prototype.defaults),initialize:function(a){this.media=a.media,this.type=a.type,this.set("library",wp.media.query({type:this.type})),d.prototype.initialize.apply(this,arguments)},activate:function(){wp.media.frame.lastMime&&(this.set("library",wp.media.query({type:wp.media.frame.lastMime})),delete wp.media.frame.lastMime),d.prototype.activate.apply(this,arguments)}}),a.exports=c},function(a,b){var c,d=wp.media.view.l10n,e=Backbone.$;c=wp.media.controller.State.extend({defaults:{id:"embed",title:d.insertFromUrlTitle,content:"embed",menu:"default",toolbar:"main-embed",priority:120,type:"link",url:"",metadata:{}},sensitivity:400,initialize:function(a){this.metadata=a.metadata,this.debouncedScan=_.debounce(_.bind(this.scan,this),this.sensitivity),this.props=new Backbone.Model(this.metadata||{url:""}),this.props.on("change:url",this.debouncedScan,this),this.props.on("change:url",this.refresh,this),this.on("scan",this.scanImage,this)},scan:function(){var a,b=this,c={type:"link",scanners:[]};this.props.get("url")&&this.trigger("scan",c),c.scanners.length?(a=c.scanners=e.when.apply(e,c.scanners),a.always(function(){b.get("scanners")===a&&b.set("loading",!1)})):c.scanners=null,c.loading=!!c.scanners,this.set(c)},scanImage:function(a){var b=this.frame,c=this,d=this.props.get("url"),f=new Image,g=e.Deferred();a.scanners.push(g.promise()),f.onload=function(){g.resolve(),c===b.state()&&d===c.props.get("url")&&(c.set({type:"image"}),c.props.set({width:f.width,height:f.height}))},f.onerror=g.reject,f.src=d},refresh:function(){this.frame.toolbar.get().refresh()},reset:function(){this.props.clear().set({url:""}),this.active&&this.refresh()}}),a.exports=c},function(a,b){var c,d=wp.media.view.l10n;c=wp.media.controller.State.extend({defaults:{id:"cropper",title:d.cropImage,toolbar:"crop",content:"crop",router:!1,canSkipCrop:!1,doCropArgs:{}},activate:function(){this.frame.on("content:create:crop",this.createCropContent,this),this.frame.on("close",this.removeCropper,this),this.set("selection",new Backbone.Collection(this.frame._selection.single))},deactivate:function(){this.frame.toolbar.mode("browse")},createCropContent:function(){this.cropperView=new wp.media.view.Cropper({controller:this,attachment:this.get("selection").first()}),this.cropperView.on("image-loaded",this.createCropToolbar,this),this.frame.content.set(this.cropperView)},removeCropper:function(){this.imgSelect.cancelSelection(),this.imgSelect.setOptions({remove:!0}),this.imgSelect.update(),this.cropperView.remove()},createCropToolbar:function(){var a,b;a=this.get("canSkipCrop")||!1,b={controller:this.frame,items:{insert:{style:"primary",text:d.cropImage,priority:80,requires:{library:!1,selection:!1},click:function(){var a,b=this.controller;a=b.state().get("selection").first(),a.set({cropDetails:b.state().imgSelect.getSelection()}),this.$el.text(d.cropping),this.$el.attr("disabled",!0),b.state().doCrop(a).done(function(a){b.trigger("cropped",a),b.close()}).fail(function(){b.trigger("content:error:crop")})}}}},a&&_.extend(b.items,{skip:{style:"secondary",text:d.skipCropping,priority:70,requires:{library:!1,selection:!1},click:function(){var a=this.controller.state().get("selection").first();this.controller.state().cropperView.remove(),this.controller.trigger("skippedcrop",a),this.controller.close()}}}),this.frame.toolbar.set(new wp.media.view.Toolbar(b))},doCrop:function(a){return wp.ajax.post("custom-header-crop",_.extend({},this.defaults.doCropArgs,{nonce:a.get("nonces").edit,id:a.get("id"),cropDetails:a.get("cropDetails")}))}}),a.exports=c},function(a,b){var c,d=wp.media.controller;c=d.Cropper.extend({doCrop:function(a){var b=a.get("cropDetails"),c=this.get("control"),d=b.width/b.height;return c.params.flex_width&&c.params.flex_height?(b.dst_width=b.width,b.dst_height=b.height):(b.dst_width=c.params.flex_width?c.params.height*d:c.params.width,b.dst_height=c.params.flex_height?c.params.width/d:c.params.height),wp.ajax.post("crop-image",{wp_customize:"on",nonce:a.get("nonces").edit,id:a.get("id"),context:c.id,cropDetails:b})}}),a.exports=c},function(a,b){var c,d=wp.media.controller;c=d.Cropper.extend({activate:function(){this.frame.on("content:create:crop",this.createCropContent,this),this.frame.on("close",this.removeCropper,this),this.set("selection",new Backbone.Collection(this.frame._selection.single))},createCropContent:function(){this.cropperView=new wp.media.view.SiteIconCropper({controller:this,attachment:this.get("selection").first()}),this.cropperView.on("image-loaded",this.createCropToolbar,this),this.frame.content.set(this.cropperView)},doCrop:function(a){var b=a.get("cropDetails"),c=this.get("control");return b.dst_width=c.params.width,b.dst_height=c.params.height,wp.ajax.post("crop-image",{nonce:a.get("nonces").edit,id:a.get("id"),context:"site-icon",cropDetails:b})}}),a.exports=c},function(a,b){var c=wp.Backbone.View.extend({constructor:function(a){a&&a.controller&&(this.controller=a.controller),wp.Backbone.View.apply(this,arguments)},dispose:function(){return this.undelegateEvents(),this.model&&this.model.off&&this.model.off(null,null,this),this.collection&&this.collection.off&&this.collection.off(null,null,this),this.controller&&this.controller.off&&this.controller.off(null,null,this),this},remove:function(){return this.dispose(),wp.Backbone.View.prototype.remove.apply(this,arguments)}});a.exports=c},function(a,b){var c=wp.media.View.extend({initialize:function(){_.defaults(this.options,{mode:["select"]}),this._createRegions(),this._createStates(),this._createModes()},_createRegions:function(){this.regions=this.regions?this.regions.slice():[],_.each(this.regions,function(a){this[a]=new wp.media.controller.Region({view:this,id:a,selector:".media-frame-"+a})},this)},_createStates:function(){this.states=new Backbone.Collection(null,{model:wp.media.controller.State}),this.states.on("add",function(a){a.frame=this,a.trigger("ready")},this),this.options.states&&this.states.add(this.options.states)},_createModes:function(){this.activeModes=new Backbone.Collection,this.activeModes.on("add remove reset",_.bind(this.triggerModeEvents,this)),_.each(this.options.mode,function(a){this.activateMode(a)},this)},reset:function(){return this.states.invoke("trigger","reset"),this},triggerModeEvents:function(a,b,c){var d,e,f={add:"activate",remove:"deactivate"};_.each(c,function(a,b){a&&(d=b)}),_.has(f,d)&&(e=a.get("id")+":"+f[d],this.trigger(e))},activateMode:function(a){if(!this.isModeActive(a))return this.activeModes.add([{id:a}]),this.$el.addClass("mode-"+a),this},deactivateMode:function(a){return this.isModeActive(a)?(this.activeModes.remove(this.activeModes.where({id:a})),this.$el.removeClass("mode-"+a),this.trigger(a+":deactivate"),this):this},isModeActive:function(a){return Boolean(this.activeModes.where({id:a}).length)}});_.extend(c.prototype,wp.media.controller.StateMachine.prototype),a.exports=c},function(a,b){var c,d=wp.media.view.Frame,e=jQuery;c=d.extend({className:"media-frame",template:wp.template("media-frame"),regions:["menu","title","content","toolbar","router"],events:{"click div.media-frame-title h1":"toggleMenu"},initialize:function(){d.prototype.initialize.apply(this,arguments),_.defaults(this.options,{title:"",modal:!0,uploader:!0}),this.$el.addClass("wp-core-ui"),this.options.modal&&(this.modal=new wp.media.view.Modal({controller:this,title:this.options.title}),this.modal.content(this)),!wp.Uploader.limitExceeded&&wp.Uploader.browser.supported||(this.options.uploader=!1),this.options.uploader&&(this.uploader=new wp.media.view.UploaderWindow({controller:this,uploader:{dropzone:this.modal?this.modal.$el:this.$el,container:this.$el}}),this.views.set(".media-frame-uploader",this.uploader)),this.on("attach",_.bind(this.views.ready,this.views),this),this.on("title:create:default",this.createTitle,this),this.title.mode("default"),this.on("title:render",function(a){a.$el.append('<span class="dashicons dashicons-arrow-down"></span>')}),this.on("menu:create:default",this.createMenu,this)},render:function(){return!this.state()&&this.options.state&&this.setState(this.options.state),d.prototype.render.apply(this,arguments)},createTitle:function(a){a.view=new wp.media.View({controller:this,tagName:"h1"})},createMenu:function(a){a.view=new wp.media.view.Menu({controller:this})},toggleMenu:function(){this.$el.find(".media-menu").toggleClass("visible")},createToolbar:function(a){a.view=new wp.media.view.Toolbar({controller:this})},createRouter:function(a){a.view=new wp.media.view.Router({controller:this})},createIframeStates:function(a){var b,c=wp.media.view.settings,d=c.tabs,f=c.tabUrl;d&&f&&(b=e("#post_ID"),b.length&&(f+="&post_id="+b.val()),_.each(d,function(b,c){this.state("iframe:"+c).set(_.defaults({tab:c,src:f+"&tab="+c,title:b,content:"iframe",menu:"default"},a))},this),this.on("content:create:iframe",this.iframeContent,this),this.on("content:deactivate:iframe",this.iframeContentCleanup,this),this.on("menu:render:default",this.iframeMenu,this),this.on("open",this.hijackThickbox,this),this.on("close",this.restoreThickbox,this))},iframeContent:function(a){this.$el.addClass("hide-toolbar"),a.view=new wp.media.view.Iframe({controller:this})},iframeContentCleanup:function(){this.$el.removeClass("hide-toolbar")},iframeMenu:function(a){var b={};a&&(_.each(wp.media.view.settings.tabs,function(a,c){b["iframe:"+c]={text:this.state("iframe:"+c).get("title"),priority:200}},this),a.set(b))},hijackThickbox:function(){var a=this;window.tb_remove&&!this._tb_remove&&(this._tb_remove=window.tb_remove,window.tb_remove=function(){a.close(),a.reset(),a.setState(a.options.state),a._tb_remove.call(window)})},restoreThickbox:function(){this._tb_remove&&(window.tb_remove=this._tb_remove,delete this._tb_remove)}}),_.each(["open","close","attach","detach","escape"],function(a){c.prototype[a]=function(){return this.modal&&this.modal[a].apply(this.modal,arguments),this}}),a.exports=c},function(a,b){var c,d=wp.media.view.MediaFrame,e=wp.media.view.l10n;c=d.extend({initialize:function(){d.prototype.initialize.apply(this,arguments),_.defaults(this.options,{selection:[],library:{},multiple:!1,state:"library"}),this.createSelection(),this.createStates(),this.bindHandlers()},createSelection:function(){var a=this.options.selection;a instanceof wp.media.model.Selection||(this.options.selection=new wp.media.model.Selection(a,{multiple:this.options.multiple})),this._selection={attachments:new wp.media.model.Attachments,difference:[]}},createStates:function(){var a=this.options;this.options.states||this.states.add([new wp.media.controller.Library({library:wp.media.query(a.library),multiple:a.multiple,title:a.title,priority:20})])},bindHandlers:function(){this.on("router:create:browse",this.createRouter,this),this.on("router:render:browse",this.browseRouter,this),this.on("content:create:browse",this.browseContent,this),this.on("content:render:upload",this.uploadContent,this),this.on("toolbar:create:select",this.createSelectToolbar,this)},browseRouter:function(a){a.set({upload:{text:e.uploadFilesTitle,priority:20},browse:{text:e.mediaLibraryTitle,priority:40}})},browseContent:function(a){var b=this.state();this.$el.removeClass("hide-toolbar"),a.view=new wp.media.view.AttachmentsBrowser({controller:this,collection:b.get("library"),selection:b.get("selection"),model:b,sortable:b.get("sortable"),search:b.get("searchable"),filters:b.get("filterable"),date:b.get("date"),display:b.has("display")?b.get("display"):b.get("displaySettings"),dragInfo:b.get("dragInfo"),idealColumnWidth:b.get("idealColumnWidth"),suggestedWidth:b.get("suggestedWidth"),suggestedHeight:b.get("suggestedHeight"),AttachmentView:b.get("AttachmentView")})},uploadContent:function(){this.$el.removeClass("hide-toolbar"),this.content.set(new wp.media.view.UploaderInline({controller:this}))},createSelectToolbar:function(a,b){b=b||this.options.button||{},b.controller=this,a.view=new wp.media.view.Toolbar.Select(b)}}),a.exports=c},function(a,b){var c,d=wp.media.view.MediaFrame.Select,e=wp.media.controller.Library,f=wp.media.view.l10n;c=d.extend({initialize:function(){this.counts={audio:{count:wp.media.view.settings.attachmentCounts.audio,state:"playlist"},video:{count:wp.media.view.settings.attachmentCounts.video,state:"video-playlist"}},_.defaults(this.options,{multiple:!0,editing:!1,state:"insert",metadata:{}}),d.prototype.initialize.apply(this,arguments),this.createIframeStates()},createStates:function(){var a=this.options;this.states.add([new e({id:"insert",title:f.insertMediaTitle,priority:20,toolbar:"main-insert",filterable:"all",library:wp.media.query(a.library),multiple:!!a.multiple&&"reset",editable:!0,allowLocalEdits:!0,displaySettings:!0,displayUserSettings:!0}),new e({id:"gallery",title:f.createGalleryTitle,priority:40,toolbar:"main-gallery",filterable:"uploaded",multiple:"add",editable:!1,library:wp.media.query(_.defaults({type:"image"},a.library))}),new wp.media.controller.Embed({metadata:a.metadata}),new wp.media.controller.EditImage({model:a.editImage}),new wp.media.controller.GalleryEdit({library:a.selection,editing:a.editing,menu:"gallery"}),new wp.media.controller.GalleryAdd,new e({id:"playlist",title:f.createPlaylistTitle,priority:60,toolbar:"main-playlist",filterable:"uploaded",multiple:"add",editable:!1,library:wp.media.query(_.defaults({type:"audio"},a.library))}),new wp.media.controller.CollectionEdit({type:"audio",collectionType:"playlist",title:f.editPlaylistTitle,SettingsView:wp.media.view.Settings.Playlist,library:a.selection,editing:a.editing,menu:"playlist",dragInfoText:f.playlistDragInfo,dragInfo:!1}),new wp.media.controller.CollectionAdd({type:"audio",collectionType:"playlist",title:f.addToPlaylistTitle -}),new e({id:"video-playlist",title:f.createVideoPlaylistTitle,priority:60,toolbar:"main-video-playlist",filterable:"uploaded",multiple:"add",editable:!1,library:wp.media.query(_.defaults({type:"video"},a.library))}),new wp.media.controller.CollectionEdit({type:"video",collectionType:"playlist",title:f.editVideoPlaylistTitle,SettingsView:wp.media.view.Settings.Playlist,library:a.selection,editing:a.editing,menu:"video-playlist",dragInfoText:f.videoPlaylistDragInfo,dragInfo:!1}),new wp.media.controller.CollectionAdd({type:"video",collectionType:"playlist",title:f.addToVideoPlaylistTitle})]),wp.media.view.settings.post.featuredImageId&&this.states.add(new wp.media.controller.FeaturedImage)},bindHandlers:function(){var a,b;d.prototype.bindHandlers.apply(this,arguments),this.on("activate",this.activate,this),b=_.find(this.counts,function(a){return 0===a.count}),"undefined"!=typeof b&&this.listenTo(wp.media.model.Attachments.all,"change:type",this.mediaTypeCounts),this.on("menu:create:gallery",this.createMenu,this),this.on("menu:create:playlist",this.createMenu,this),this.on("menu:create:video-playlist",this.createMenu,this),this.on("toolbar:create:main-insert",this.createToolbar,this),this.on("toolbar:create:main-gallery",this.createToolbar,this),this.on("toolbar:create:main-playlist",this.createToolbar,this),this.on("toolbar:create:main-video-playlist",this.createToolbar,this),this.on("toolbar:create:featured-image",this.featuredImageToolbar,this),this.on("toolbar:create:main-embed",this.mainEmbedToolbar,this),a={menu:{"default":"mainMenu",gallery:"galleryMenu",playlist:"playlistMenu","video-playlist":"videoPlaylistMenu"},content:{embed:"embedContent","edit-image":"editImageContent","edit-selection":"editSelectionContent"},toolbar:{"main-insert":"mainInsertToolbar","main-gallery":"mainGalleryToolbar","gallery-edit":"galleryEditToolbar","gallery-add":"galleryAddToolbar","main-playlist":"mainPlaylistToolbar","playlist-edit":"playlistEditToolbar","playlist-add":"playlistAddToolbar","main-video-playlist":"mainVideoPlaylistToolbar","video-playlist-edit":"videoPlaylistEditToolbar","video-playlist-add":"videoPlaylistAddToolbar"}},_.each(a,function(a,b){_.each(a,function(a,c){this.on(b+":render:"+c,this[a],this)},this)},this)},activate:function(){_.each(this.counts,function(a){a.count<1&&this.menuItemVisibility(a.state,"hide")},this)},mediaTypeCounts:function(a,b){"undefined"!=typeof this.counts[b]&&this.counts[b].count<1&&(this.counts[b].count++,this.menuItemVisibility(this.counts[b].state,"show"))},mainMenu:function(a){a.set({"library-separator":new wp.media.View({className:"separator",priority:100})})},menuItemVisibility:function(a,b){var c=this.menu.get();"hide"===b?c.hide(a):"show"===b&&c.show(a)},galleryMenu:function(a){var b=this.lastState(),c=b&&b.id,d=this;a.set({cancel:{text:f.cancelGalleryTitle,priority:20,click:function(){c?d.setState(c):d.close(),this.controller.modal.focusManager.focus()}},separateCancel:new wp.media.View({className:"separator",priority:40})})},playlistMenu:function(a){var b=this.lastState(),c=b&&b.id,d=this;a.set({cancel:{text:f.cancelPlaylistTitle,priority:20,click:function(){c?d.setState(c):d.close()}},separateCancel:new wp.media.View({className:"separator",priority:40})})},videoPlaylistMenu:function(a){var b=this.lastState(),c=b&&b.id,d=this;a.set({cancel:{text:f.cancelVideoPlaylistTitle,priority:20,click:function(){c?d.setState(c):d.close()}},separateCancel:new wp.media.View({className:"separator",priority:40})})},embedContent:function(){var a=new wp.media.view.Embed({controller:this,model:this.state()}).render();this.content.set(a),wp.media.isTouchDevice||a.url.focus()},editSelectionContent:function(){var a,b=this.state(),c=b.get("selection");a=new wp.media.view.AttachmentsBrowser({controller:this,collection:c,selection:c,model:b,sortable:!0,search:!1,date:!1,dragInfo:!0,AttachmentView:wp.media.view.Attachments.EditSelection}).render(),a.toolbar.set("backToLibrary",{text:f.returnToLibrary,priority:-100,click:function(){this.controller.content.mode("browse")}}),this.content.set(a),this.trigger("edit:selection",this)},editImageContent:function(){var a=this.state().get("image"),b=new wp.media.view.EditImage({model:a,controller:this}).render();this.content.set(b),b.loadEditor()},selectionStatusToolbar:function(a){var b=this.state().get("editable");a.set("selection",new wp.media.view.Selection({controller:this,collection:this.state().get("selection"),priority:-40,editable:b&&function(){this.controller.content.mode("edit-selection")}}).render())},mainInsertToolbar:function(a){var b=this;this.selectionStatusToolbar(a),a.set("insert",{style:"primary",priority:80,text:f.insertIntoPost,requires:{selection:!0},click:function(){var a=b.state(),c=a.get("selection");b.close(),a.trigger("insert",c).reset()}})},mainGalleryToolbar:function(a){var b=this;this.selectionStatusToolbar(a),a.set("gallery",{style:"primary",text:f.createNewGallery,priority:60,requires:{selection:!0},click:function(){var a=b.state().get("selection"),c=b.state("gallery-edit"),d=a.where({type:"image"});c.set("library",new wp.media.model.Selection(d,{props:a.props.toJSON(),multiple:!0})),this.controller.setState("gallery-edit"),this.controller.modal.focusManager.focus()}})},mainPlaylistToolbar:function(a){var b=this;this.selectionStatusToolbar(a),a.set("playlist",{style:"primary",text:f.createNewPlaylist,priority:100,requires:{selection:!0},click:function(){var a=b.state().get("selection"),c=b.state("playlist-edit"),d=a.where({type:"audio"});c.set("library",new wp.media.model.Selection(d,{props:a.props.toJSON(),multiple:!0})),this.controller.setState("playlist-edit"),this.controller.modal.focusManager.focus()}})},mainVideoPlaylistToolbar:function(a){var b=this;this.selectionStatusToolbar(a),a.set("video-playlist",{style:"primary",text:f.createNewVideoPlaylist,priority:100,requires:{selection:!0},click:function(){var a=b.state().get("selection"),c=b.state("video-playlist-edit"),d=a.where({type:"video"});c.set("library",new wp.media.model.Selection(d,{props:a.props.toJSON(),multiple:!0})),this.controller.setState("video-playlist-edit"),this.controller.modal.focusManager.focus()}})},featuredImageToolbar:function(a){this.createSelectToolbar(a,{text:f.setFeaturedImage,state:this.options.state})},mainEmbedToolbar:function(a){a.view=new wp.media.view.Toolbar.Embed({controller:this})},galleryEditToolbar:function(){var a=this.state().get("editing");this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{insert:{style:"primary",text:a?f.updateGallery:f.insertGallery,priority:80,requires:{library:!0},click:function(){var a=this.controller,b=a.state();a.close(),b.trigger("update",b.get("library")),a.setState(a.options.state),a.reset()}}}}))},galleryAddToolbar:function(){this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{insert:{style:"primary",text:f.addToGallery,priority:80,requires:{selection:!0},click:function(){var a=this.controller,b=a.state(),c=a.state("gallery-edit");c.get("library").add(b.get("selection").models),b.trigger("reset"),a.setState("gallery-edit")}}}}))},playlistEditToolbar:function(){var a=this.state().get("editing");this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{insert:{style:"primary",text:a?f.updatePlaylist:f.insertPlaylist,priority:80,requires:{library:!0},click:function(){var a=this.controller,b=a.state();a.close(),b.trigger("update",b.get("library")),a.setState(a.options.state),a.reset()}}}}))},playlistAddToolbar:function(){this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{insert:{style:"primary",text:f.addToPlaylist,priority:80,requires:{selection:!0},click:function(){var a=this.controller,b=a.state(),c=a.state("playlist-edit");c.get("library").add(b.get("selection").models),b.trigger("reset"),a.setState("playlist-edit")}}}}))},videoPlaylistEditToolbar:function(){var a=this.state().get("editing");this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{insert:{style:"primary",text:a?f.updateVideoPlaylist:f.insertVideoPlaylist,priority:140,requires:{library:!0},click:function(){var a=this.controller,b=a.state(),c=b.get("library");c.type="video",a.close(),b.trigger("update",c),a.setState(a.options.state),a.reset()}}}}))},videoPlaylistAddToolbar:function(){this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{insert:{style:"primary",text:f.addToVideoPlaylist,priority:140,requires:{selection:!0},click:function(){var a=this.controller,b=a.state(),c=a.state("video-playlist-edit");c.get("library").add(b.get("selection").models),b.trigger("reset"),a.setState("video-playlist-edit")}}}}))}}),a.exports=c},function(a,b){var c,d=wp.media.view.MediaFrame.Select,e=wp.media.view.l10n;c=d.extend({defaults:{id:"image",url:"",menu:"image-details",content:"image-details",toolbar:"image-details",type:"link",title:e.imageDetailsTitle,priority:120},initialize:function(a){this.image=new wp.media.model.PostImage(a.metadata),this.options.selection=new wp.media.model.Selection(this.image.attachment,{multiple:!1}),d.prototype.initialize.apply(this,arguments)},bindHandlers:function(){d.prototype.bindHandlers.apply(this,arguments),this.on("menu:create:image-details",this.createMenu,this),this.on("content:create:image-details",this.imageDetailsContent,this),this.on("content:render:edit-image",this.editImageContent,this),this.on("toolbar:render:image-details",this.renderImageDetailsToolbar,this),this.on("toolbar:render:replace",this.renderReplaceImageToolbar,this)},createStates:function(){this.states.add([new wp.media.controller.ImageDetails({image:this.image,editable:!1}),new wp.media.controller.ReplaceImage({id:"replace-image",library:wp.media.query({type:"image"}),image:this.image,multiple:!1,title:e.imageReplaceTitle,toolbar:"replace",priority:80,displaySettings:!0}),new wp.media.controller.EditImage({image:this.image,selection:this.options.selection})])},imageDetailsContent:function(a){a.view=new wp.media.view.ImageDetails({controller:this,model:this.state().image,attachment:this.state().image.attachment})},editImageContent:function(){var a,b=this.state(),c=b.get("image");c&&(a=new wp.media.view.EditImage({model:c,controller:this}).render(),this.content.set(a),a.loadEditor())},renderImageDetailsToolbar:function(){this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{select:{style:"primary",text:e.update,priority:80,click:function(){var a=this.controller,b=a.state();a.close(),b.trigger("update",a.image.toJSON()),a.setState(a.options.state),a.reset()}}}}))},renderReplaceImageToolbar:function(){var a=this,b=a.lastState(),c=b&&b.id;this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{back:{text:e.back,priority:20,click:function(){c?a.setState(c):a.close()}},replace:{style:"primary",text:e.replace,priority:80,requires:{selection:!0},click:function(){var a=this.controller,b=a.state(),c=b.get("selection"),d=c.single();a.close(),a.image.changeAttachment(d,b.display(d)),b.trigger("replace",a.image.toJSON()),a.setState(a.options.state),a.reset()}}}}))}}),a.exports=c},function(a,b){var c,d=jQuery;c=wp.media.View.extend({tagName:"div",template:wp.template("media-modal"),events:{"click .media-modal-backdrop, .media-modal-close":"escapeHandler",keydown:"keydown"},clickedOpenerEl:null,initialize:function(){_.defaults(this.options,{container:document.body,title:"",propagate:!0}),this.focusManager=new wp.media.view.FocusManager({el:this.el})},prepare:function(){return{title:this.options.title}},attach:function(){return this.views.attached?this:(this.views.rendered||this.render(),this.$el.appendTo(this.options.container),this.views.attached=!0,this.views.ready(),this.propagate("attach"))},detach:function(){return this.$el.is(":visible")&&this.close(),this.$el.detach(),this.views.attached=!1,this.propagate("detach")},open:function(){var a,b=this.$el;return b.is(":visible")?this:(this.clickedOpenerEl=document.activeElement,this.views.attached||this.attach(),d("body").addClass("modal-open"),b.show(),"ontouchend"in document&&(a=window.tinymce&&window.tinymce.activeEditor)&&!a.isHidden()&&a.iframeElement&&(a.iframeElement.focus(),a.iframeElement.blur(),setTimeout(function(){a.iframeElement.blur()},100)),this.$(".media-modal").focus(),this.propagate("open"))},close:function(a){return this.views.attached&&this.$el.is(":visible")?(d("body").removeClass("modal-open"),this.$el.hide().undelegate("keydown"),null!==this.clickedOpenerEl?this.clickedOpenerEl.focus():d("#wpbody-content").focus(),this.propagate("close"),a&&a.escape&&this.propagate("escape"),this):this},escape:function(){return this.close({escape:!0})},escapeHandler:function(a){a.preventDefault(),this.escape()},content:function(a){return this.views.set(".media-modal-content",a),this},propagate:function(a){return this.trigger(a),this.options.propagate&&this.controller.trigger(a),this},keydown:function(a){27===a.which&&this.$el.is(":visible")&&(this.escape(),a.stopImmediatePropagation())}}),a.exports=c},function(a,b){var c=wp.media.View.extend({events:{keydown:"constrainTabbing"},focus:function(){this.$(".media-menu-item").first().focus()},constrainTabbing:function(a){var b;if(9===a.keyCode)return b=this.$(":tabbable").not('.moxie-shim input[type="file"]'),b.last()[0]!==a.target||a.shiftKey?b.first()[0]===a.target&&a.shiftKey?(b.last().focus(),!1):void 0:(b.first().focus(),!1)}});a.exports=c},function(a,b){var c,d=jQuery;c=wp.media.View.extend({tagName:"div",className:"uploader-window",template:wp.template("uploader-window"),initialize:function(){var a;this.$browser=d('<button type="button" class="browser" />').hide().appendTo("body"),a=this.options.uploader=_.defaults(this.options.uploader||{},{dropzone:this.$el,browser:this.$browser,params:{}}),!a.dropzone||a.dropzone instanceof d||(a.dropzone=d(a.dropzone)),this.controller.on("activate",this.refresh,this),this.controller.on("detach",function(){this.$browser.remove()},this)},refresh:function(){this.uploader&&this.uploader.refresh()},ready:function(){var a,b=wp.media.view.settings.post.id;this.uploader||(b&&(this.options.uploader.params.post_id=b),this.uploader=new wp.Uploader(this.options.uploader),a=this.uploader.dropzone,a.on("dropzone:enter",_.bind(this.show,this)),a.on("dropzone:leave",_.bind(this.hide,this)),d(this.uploader).on("uploader:ready",_.bind(this._ready,this)))},_ready:function(){this.controller.trigger("uploader:ready")},show:function(){var a=this.$el.show();_.defer(function(){a.css({opacity:1})})},hide:function(){var a=this.$el.css({opacity:0});wp.media.transition(a).done(function(){"0"===a.css("opacity")&&a.hide()}),_.delay(function(){"0"===a.css("opacity")&&a.is(":visible")&&a.hide()},500)}}),a.exports=c},function(a,b){var c,d=wp.media.View,e=wp.media.view.l10n,f=jQuery;c=d.extend({tagName:"div",className:"uploader-editor",template:wp.template("uploader-editor"),localDrag:!1,overContainer:!1,overDropzone:!1,draggingFile:null,initialize:function(){return this.initialized=!1,window.tinyMCEPreInit&&window.tinyMCEPreInit.dragDropUpload&&this.browserSupport()?(this.$document=f(document),this.dropzones=[],this.files=[],this.$document.on("drop",".uploader-editor",_.bind(this.drop,this)),this.$document.on("dragover",".uploader-editor",_.bind(this.dropzoneDragover,this)),this.$document.on("dragleave",".uploader-editor",_.bind(this.dropzoneDragleave,this)),this.$document.on("click",".uploader-editor",_.bind(this.click,this)),this.$document.on("dragover",_.bind(this.containerDragover,this)),this.$document.on("dragleave",_.bind(this.containerDragleave,this)),this.$document.on("dragstart dragend drop",_.bind(function(a){this.localDrag="dragstart"===a.type,"drop"===a.type&&this.containerDragleave()},this)),this.initialized=!0,this):this},browserSupport:function(){var a=!1,b=document.createElement("div");return a="draggable"in b||"ondragstart"in b&&"ondrop"in b,a=a&&!!(window.File&&window.FileList&&window.FileReader)},isDraggingFile:function(a){return null!==this.draggingFile?this.draggingFile:!_.isUndefined(a.originalEvent)&&!_.isUndefined(a.originalEvent.dataTransfer)&&(this.draggingFile=_.indexOf(a.originalEvent.dataTransfer.types,"Files")>-1&&_.indexOf(a.originalEvent.dataTransfer.types,"text/plain")===-1,this.draggingFile)},refresh:function(a){var b;for(b in this.dropzones)this.dropzones[b].toggle(this.overContainer||this.overDropzone);return _.isUndefined(a)||f(a.target).closest(".uploader-editor").toggleClass("droppable",this.overDropzone),this.overContainer||this.overDropzone||(this.draggingFile=null),this},render:function(){return this.initialized?(d.prototype.render.apply(this,arguments),f(".wp-editor-wrap").each(_.bind(this.attach,this)),this):this},attach:function(a,b){var c=this.$el.clone();return this.dropzones.push(c),f(b).append(c),this},drop:function(a){var b,c;if(this.containerDragleave(a),this.dropzoneDragleave(a),this.files=a.originalEvent.dataTransfer.files,!(this.files.length<1))return b=f(a.target).parents(".wp-editor-wrap"),b.length>0&&b[0].id&&(window.wpActiveEditor=b[0].id.slice(3,-5)),this.workflow?(this.workflow.state().reset(),this.addFiles.apply(this),this.workflow.open()):(this.workflow=wp.media.editor.open(window.wpActiveEditor,{frame:"post",state:"insert",title:e.addMedia,multiple:!0}),c=this.workflow.uploader,c.uploader&&c.uploader.ready?this.addFiles.apply(this):this.workflow.on("uploader:ready",this.addFiles,this)),!1},addFiles:function(){return this.files.length&&(this.workflow.uploader.uploader.uploader.addFile(_.toArray(this.files)),this.files=[]),this},containerDragover:function(a){!this.localDrag&&this.isDraggingFile(a)&&(this.overContainer=!0,this.refresh())},containerDragleave:function(){this.overContainer=!1,_.delay(_.bind(this.refresh,this),50)},dropzoneDragover:function(a){if(!this.localDrag&&this.isDraggingFile(a))return this.overDropzone=!0,this.refresh(a),!1},dropzoneDragleave:function(a){this.overDropzone=!1,_.delay(_.bind(this.refresh,this,a),50)},click:function(a){this.containerDragleave(a),this.dropzoneDragleave(a),this.localDrag=!1}}),a.exports=c},function(a,b){var c,d=wp.media.View;c=d.extend({tagName:"div",className:"uploader-inline",template:wp.template("uploader-inline"),events:{"click .close":"hide"},initialize:function(){_.defaults(this.options,{message:"",status:!0,canClose:!1}),!this.options.$browser&&this.controller.uploader&&(this.options.$browser=this.controller.uploader.$browser),_.isUndefined(this.options.postId)&&(this.options.postId=wp.media.view.settings.post.id),this.options.status&&this.views.set(".upload-inline-status",new wp.media.view.UploaderStatus({controller:this.controller}))},prepare:function(){var a=this.controller.state().get("suggestedWidth"),b=this.controller.state().get("suggestedHeight"),c={};return c.message=this.options.message,c.canClose=this.options.canClose,a&&b&&(c.suggestedWidth=a,c.suggestedHeight=b),c},dispose:function(){return this.disposing?d.prototype.dispose.apply(this,arguments):(this.disposing=!0,this.remove())},remove:function(){var a=d.prototype.remove.apply(this,arguments);return _.defer(_.bind(this.refresh,this)),a},refresh:function(){var a=this.controller.uploader;a&&a.refresh()},ready:function(){var a,b=this.options.$browser;if(this.controller.uploader){if(a=this.$(".browser"),a[0]===b[0])return;b.detach().text(a.text()),b[0].className=a[0].className,a.replaceWith(b.show())}return this.refresh(),this},show:function(){this.$el.removeClass("hidden"),this.controller.$uploaderToggler&&this.controller.$uploaderToggler.length&&this.controller.$uploaderToggler.attr("aria-expanded","true")},hide:function(){this.$el.addClass("hidden"),this.controller.$uploaderToggler&&this.controller.$uploaderToggler.length&&this.controller.$uploaderToggler.attr("aria-expanded","false").focus()}}),a.exports=c},function(a,b){var c,d=wp.media.View;c=d.extend({className:"media-uploader-status",template:wp.template("uploader-status"),events:{"click .upload-dismiss-errors":"dismiss"},initialize:function(){this.queue=wp.Uploader.queue,this.queue.on("add remove reset",this.visibility,this),this.queue.on("add remove reset change:percent",this.progress,this),this.queue.on("add remove reset change:uploading",this.info,this),this.errors=wp.Uploader.errors,this.errors.reset(),this.errors.on("add remove reset",this.visibility,this),this.errors.on("add",this.error,this)},dispose:function(){return wp.Uploader.queue.off(null,null,this),d.prototype.dispose.apply(this,arguments),this},visibility:function(){this.$el.toggleClass("uploading",!!this.queue.length),this.$el.toggleClass("errors",!!this.errors.length),this.$el.toggle(!!this.queue.length||!!this.errors.length)},ready:function(){_.each({$bar:".media-progress-bar div",$index:".upload-index",$total:".upload-total",$filename:".upload-filename"},function(a,b){this[b]=this.$(a)},this),this.visibility(),this.progress(),this.info()},progress:function(){var a=this.queue,b=this.$bar;b&&a.length&&b.width(a.reduce(function(a,b){if(!b.get("uploading"))return a+100;var c=b.get("percent");return a+(_.isNumber(c)?c:100)},0)/a.length+"%")},info:function(){var a,b=this.queue,c=0;b.length&&(a=this.queue.find(function(a,b){return c=b,a.get("uploading")}),this.$index.text(c+1),this.$total.text(b.length),this.$filename.html(a?this.filename(a.get("filename")):""))},filename:function(a){return _.escape(a)},error:function(a){this.views.add(".upload-errors",new wp.media.view.UploaderStatusError({filename:this.filename(a.get("file").name),message:a.get("message")}),{at:0})},dismiss:function(a){var b=this.views.get(".upload-errors");a.preventDefault(),b&&_.invoke(b,"remove"),wp.Uploader.errors.reset()}}),a.exports=c},function(a,b){var c=wp.media.View.extend({className:"upload-error",template:wp.template("uploader-status-error")});a.exports=c},function(a,b){var c,d=wp.media.View;c=d.extend({tagName:"div",className:"media-toolbar",initialize:function(){var a=this.controller.state(),b=this.selection=a.get("selection"),c=this.library=a.get("library");this._views={},this.primary=new wp.media.view.PriorityList,this.secondary=new wp.media.view.PriorityList,this.primary.$el.addClass("media-toolbar-primary search-form"),this.secondary.$el.addClass("media-toolbar-secondary"),this.views.set([this.secondary,this.primary]),this.options.items&&this.set(this.options.items,{silent:!0}),this.options.silent||this.render(),b&&b.on("add remove reset",this.refresh,this),c&&c.on("add remove reset",this.refresh,this)},dispose:function(){return this.selection&&this.selection.off(null,null,this),this.library&&this.library.off(null,null,this),d.prototype.dispose.apply(this,arguments)},ready:function(){this.refresh()},set:function(a,b,c){var d;return c=c||{},_.isObject(a)?_.each(a,function(a,b){this.set(b,a,{silent:!0})},this):(b instanceof Backbone.View||(b.classes=["media-button-"+a].concat(b.classes||[]),b=new wp.media.view.Button(b).render()),b.controller=b.controller||this.controller,this._views[a]=b,d=b.options.priority<0?"secondary":"primary",this[d].set(a,b,c)),c.silent||this.refresh(),this},get:function(a){return this._views[a]},unset:function(a,b){return delete this._views[a],this.primary.unset(a,b),this.secondary.unset(a,b),b&&b.silent||this.refresh(),this},refresh:function(){var a=this.controller.state(),b=a.get("library"),c=a.get("selection");_.each(this._views,function(a){if(a.model&&a.options&&a.options.requires){var d=a.options.requires,e=!1;c&&c.models&&(e=_.some(c.models,function(a){return a.get("uploading")===!0})),d.selection&&c&&!c.length?e=!0:d.library&&b&&!b.length&&(e=!0),a.model.set("disabled",e)}})}}),a.exports=c},function(a,b){var c,d=wp.media.view.Toolbar,e=wp.media.view.l10n;c=d.extend({initialize:function(){var a=this.options;_.bindAll(this,"clickSelect"),_.defaults(a,{event:"select",state:!1,reset:!0,close:!0,text:e.select,requires:{selection:!0}}),a.items=_.defaults(a.items||{},{select:{style:"primary",text:a.text,priority:80,click:this.clickSelect,requires:a.requires}}),d.prototype.initialize.apply(this,arguments)},clickSelect:function(){var a=this.options,b=this.controller;a.close&&b.close(),a.event&&b.state().trigger(a.event),a.state&&b.setState(a.state),a.reset&&b.reset()}}),a.exports=c},function(a,b){var c,d=wp.media.view.Toolbar.Select,e=wp.media.view.l10n;c=d.extend({initialize:function(){_.defaults(this.options,{text:e.insertIntoPost,requires:!1}),d.prototype.initialize.apply(this,arguments)},refresh:function(){var a=this.controller.state().props.get("url");this.get("select").model.set("disabled",!a||"http://"===a),d.prototype.refresh.apply(this,arguments)}}),a.exports=c},function(a,b){var c=wp.media.View.extend({tagName:"button",className:"media-button",attributes:{type:"button"},events:{click:"click"},defaults:{text:"",style:"",size:"large",disabled:!1},initialize:function(){this.model=new Backbone.Model(this.defaults),_.each(this.defaults,function(a,b){var c=this.options[b];_.isUndefined(c)||(this.model.set(b,c),delete this.options[b])},this),this.listenTo(this.model,"change",this.render)},render:function(){var a=["button",this.className],b=this.model.toJSON();return b.style&&a.push("button-"+b.style),b.size&&a.push("button-"+b.size),a=_.uniq(a.concat(this.options.classes)),this.el.className=a.join(" "),this.$el.attr("disabled",b.disabled),this.$el.text(this.model.get("text")),this},click:function(a){"#"===this.attributes.href&&a.preventDefault(),this.options.click&&!this.model.get("disabled")&&this.options.click.apply(this,arguments)}});a.exports=c},function(a,b){var c,d=Backbone.$;c=wp.media.View.extend({tagName:"div",className:"button-group button-large media-button-group",initialize:function(){this.buttons=_.map(this.options.buttons||[],function(a){return a instanceof Backbone.View?a:new wp.media.view.Button(a).render()}),delete this.options.buttons,this.options.classes&&this.$el.addClass(this.options.classes)},render:function(){return this.$el.html(d(_.pluck(this.buttons,"el")).detach()),this}}),a.exports=c},function(a,b){var c=wp.media.View.extend({tagName:"div",initialize:function(){this._views={},this.set(_.extend({},this._views,this.options.views),{silent:!0}),delete this.options.views,this.options.silent||this.render()},set:function(a,b,c){var d,e,f;return c=c||{},_.isObject(a)?(_.each(a,function(a,b){this.set(b,a)},this),this):(b instanceof Backbone.View||(b=this.toView(b,a,c)),b.controller=b.controller||this.controller,this.unset(a),d=b.options.priority||10,e=this.views.get()||[],_.find(e,function(a,b){if(a.options.priority>d)return f=b,!0}),this._views[a]=b,this.views.add(b,{at:_.isNumber(f)?f:e.length||0}),this)},get:function(a){return this._views[a]},unset:function(a){var b=this.get(a);return b&&b.remove(),delete this._views[a],this},toView:function(a){return new wp.media.View(a)}});a.exports=c},function(a,b){var c,d=jQuery;c=wp.media.View.extend({tagName:"a",className:"media-menu-item",attributes:{href:"#"},events:{click:"_click"},_click:function(a){var b=this.options.click;a&&a.preventDefault(),b?b.call(this):this.click(),wp.media.isTouchDevice||d(".media-frame-content input").first().focus()},click:function(){var a=this.options.state;a&&(this.controller.setState(a),this.views.parent.$el.removeClass("visible"))},render:function(){var a=this.options;return a.text?this.$el.text(a.text):a.html&&this.$el.html(a.html),this}}),a.exports=c},function(a,b){var c,d=wp.media.view.MenuItem,e=wp.media.view.PriorityList;c=e.extend({tagName:"div",className:"media-menu",property:"state",ItemView:d,region:"menu",toView:function(a,b){return a=a||{},a[this.property]=a[this.property]||b,new this.ItemView(a).render()},ready:function(){e.prototype.ready.apply(this,arguments),this.visibility()},set:function(){e.prototype.set.apply(this,arguments),this.visibility()},unset:function(){e.prototype.unset.apply(this,arguments),this.visibility()},visibility:function(){var a=this.region,b=this.controller[a].get(),c=this.views.get(),d=!c||c.length<2;this===b&&this.controller.$el.toggleClass("hide-"+a,d)},select:function(a){var b=this.get(a);b&&(this.deselect(),b.$el.addClass("active"))},deselect:function(){this.$el.children().removeClass("active")},hide:function(a){var b=this.get(a);b&&b.$el.addClass("hidden")},show:function(a){var b=this.get(a);b&&b.$el.removeClass("hidden")}}),a.exports=c},function(a,b){var c=wp.media.view.MenuItem.extend({click:function(){var a=this.options.contentMode;a&&this.controller.content.mode(a)}});a.exports=c},function(a,b){var c,d=wp.media.view.Menu;c=d.extend({tagName:"div",className:"media-router",property:"contentMode",ItemView:wp.media.view.RouterItem,region:"router",initialize:function(){this.controller.on("content:render",this.update,this),d.prototype.initialize.apply(this,arguments)},update:function(){var a=this.controller.content.mode();a&&this.select(a)}}),a.exports=c},function(a,b){var c=wp.media.view.PriorityList.extend({className:"media-sidebar"});a.exports=c},function(a,b){var c,d=wp.media.View,e=jQuery;c=d.extend({tagName:"li",className:"attachment",template:wp.template("attachment"),attributes:function(){return{tabIndex:0,role:"checkbox","aria-label":this.model.get("title"),"aria-checked":!1,"data-id":this.model.get("id")}},events:{click:"toggleSelectionHandler","change [data-setting]":"updateSetting","change [data-setting] input":"updateSetting","change [data-setting] select":"updateSetting","change [data-setting] textarea":"updateSetting","click .attachment-close":"removeFromLibrary","click .check":"checkClickHandler",keydown:"toggleSelectionHandler"},buttons:{},initialize:function(){var a=this.options.selection,b=_.defaults(this.options,{rerenderOnModelChange:!0});b.rerenderOnModelChange?this.listenTo(this.model,"change",this.render):this.listenTo(this.model,"change:percent",this.progress),this.listenTo(this.model,"change:title",this._syncTitle),this.listenTo(this.model,"change:caption",this._syncCaption),this.listenTo(this.model,"change:artist",this._syncArtist),this.listenTo(this.model,"change:album",this._syncAlbum),this.listenTo(this.model,"add",this.select),this.listenTo(this.model,"remove",this.deselect),a&&(a.on("reset",this.updateSelect,this),this.listenTo(this.model,"selection:single selection:unsingle",this.details),this.details(this.model,this.controller.state().get("selection"))),this.listenTo(this.controller,"attachment:compat:waiting attachment:compat:ready",this.updateSave)},dispose:function(){var a=this.options.selection;return this.updateAll(),a&&a.off(null,null,this),d.prototype.dispose.apply(this,arguments),this},render:function(){var a=_.defaults(this.model.toJSON(),{orientation:"landscape",uploading:!1,type:"",subtype:"",icon:"",filename:"",caption:"",title:"",dateFormatted:"",width:"",height:"",compat:!1,alt:"",description:""},this.options);return a.buttons=this.buttons,a.describe=this.controller.state().get("describe"),"image"===a.type&&(a.size=this.imageSize()),a.can={},a.nonces&&(a.can.remove=!!a.nonces["delete"],a.can.save=!!a.nonces.update),this.controller.state().get("allowLocalEdits")&&(a.allowLocalEdits=!0),a.uploading&&!a.percent&&(a.percent=0),this.views.detach(),this.$el.html(this.template(a)),this.$el.toggleClass("uploading",a.uploading),a.uploading?this.$bar=this.$(".media-progress-bar div"):delete this.$bar,this.updateSelect(),this.updateSave(),this.views.render(),this},progress:function(){this.$bar&&this.$bar.length&&this.$bar.width(this.model.get("percent")+"%")},toggleSelectionHandler:function(a){var b;if("INPUT"!==a.target.nodeName&&"BUTTON"!==a.target.nodeName){if(37===a.keyCode||38===a.keyCode||39===a.keyCode||40===a.keyCode)return void this.controller.trigger("attachment:keydown:arrow",a);if("keydown"!==a.type||13===a.keyCode||32===a.keyCode){if(a.preventDefault(),this.controller.isModeActive("grid")){if(this.controller.isModeActive("edit"))return void this.controller.trigger("edit:attachment",this.model,a.currentTarget);this.controller.isModeActive("select")&&(b="toggle")}a.shiftKey?b="between":(a.ctrlKey||a.metaKey)&&(b="toggle"),this.toggleSelection({method:b}),this.controller.trigger("selection:toggle")}}},toggleSelection:function(a){ -var b,c,d,e,f=this.collection,g=this.options.selection,h=this.model,i=a&&a.method;if(g){if(b=g.single(),i=_.isUndefined(i)?g.multiple:i,"between"===i&&b&&g.multiple){if(b===h)return;return d=f.indexOf(b),e=f.indexOf(this.model),c=d<e?f.models.slice(d,e+1):f.models.slice(e,d+1),g.add(c),void g.single(h)}if("toggle"===i)return g[this.selected()?"remove":"add"](h),void g.single(h);if("add"===i)return g.add(h),void g.single(h);i||(i="add"),"add"!==i&&(i="reset"),this.selected()?g[b===h?"remove":"single"](h):(g[i](h),g.single(h))}},updateSelect:function(){this[this.selected()?"select":"deselect"]()},selected:function(){var a=this.options.selection;if(a)return!!a.get(this.model.cid)},select:function(a,b){var c=this.options.selection,d=this.controller;!c||b&&b!==c||this.$el.hasClass("selected")||(this.$el.addClass("selected").attr("aria-checked",!0),d.isModeActive("grid")&&d.isModeActive("select")||this.$(".check").attr("tabindex","0"))},deselect:function(a,b){var c=this.options.selection;!c||b&&b!==c||this.$el.removeClass("selected").attr("aria-checked",!1).find(".check").attr("tabindex","-1")},details:function(a,b){var c,d=this.options.selection;d===b&&(c=d.single(),this.$el.toggleClass("details",c===this.model))},imageSize:function(a){var b=this.model.get("sizes"),c=!1;return a=a||"medium",b&&(b[a]?c=b[a]:b.large?c=b.large:b.thumbnail?c=b.thumbnail:b.full&&(c=b.full),c)?_.clone(c):{url:this.model.get("url"),width:this.model.get("width"),height:this.model.get("height"),orientation:this.model.get("orientation")}},updateSetting:function(a){var b,c,d=e(a.target).closest("[data-setting]");d.length&&(b=d.data("setting"),c=a.target.value,this.model.get(b)!==c&&this.save(b,c))},save:function(){var a=this,b=this._save=this._save||{status:"ready"},c=this.model.save.apply(this.model,arguments),d=b.requests?e.when(c,b.requests):c;b.savedTimer&&clearTimeout(b.savedTimer),this.updateSave("waiting"),b.requests=d,d.always(function(){b.requests===d&&(a.updateSave("resolved"===d.state()?"complete":"error"),b.savedTimer=setTimeout(function(){a.updateSave("ready"),delete b.savedTimer},2e3))})},updateSave:function(a){var b=this._save=this._save||{status:"ready"};return a&&a!==b.status&&(this.$el.removeClass("save-"+b.status),b.status=a),this.$el.addClass("save-"+b.status),this},updateAll:function(){var a,b=this.$("[data-setting]"),c=this.model;a=_.chain(b).map(function(a){var b,d,f=e("input, textarea, select, [value]",a);if(f.length)return b=e(a).data("setting"),d=f.val(),c.get(b)!==d?[b,d]:void 0}).compact().object().value(),_.isEmpty(a)||c.save(a)},removeFromLibrary:function(a){"keydown"===a.type&&13!==a.keyCode&&32!==a.keyCode||(a.stopPropagation(),this.collection.remove(this.model))},checkClickHandler:function(a){var b=this.options.selection;b&&(a.stopPropagation(),b.where({id:this.model.get("id")}).length?(b.remove(this.model),this.$el.focus()):b.add(this.model))}}),_.each({caption:"_syncCaption",title:"_syncTitle",artist:"_syncArtist",album:"_syncAlbum"},function(a,b){c.prototype[a]=function(a,c){var d=this.$('[data-setting="'+b+'"]');return d.length?c===d.find("input, textarea, select, [value]").val()?this:this.render():this}}),a.exports=c},function(a,b){var c=wp.media.view.Attachment.extend({buttons:{check:!0}});a.exports=c},function(a,b){var c=wp.media.view.Attachment.extend({buttons:{close:!0}});a.exports=c},function(a,b){var c,d=wp.media.View,e=jQuery;c=d.extend({tagName:"ul",className:"attachments",attributes:{tabIndex:-1},initialize:function(){this.el.id=_.uniqueId("__attachments-view-"),_.defaults(this.options,{refreshSensitivity:wp.media.isTouchDevice?300:200,refreshThreshold:3,AttachmentView:wp.media.view.Attachment,sortable:!1,resize:!0,idealColumnWidth:e(window).width()<640?135:150}),this._viewsByCid={},this.$window=e(window),this.resizeEvent="resize.media-modal-columns",this.collection.on("add",function(a){this.views.add(this.createAttachmentView(a),{at:this.collection.indexOf(a)})},this),this.collection.on("remove",function(a){var b=this._viewsByCid[a.cid];delete this._viewsByCid[a.cid],b&&b.remove()},this),this.collection.on("reset",this.render,this),this.listenTo(this.controller,"library:selection:add",this.attachmentFocus),this.scroll=_.chain(this.scroll).bind(this).throttle(this.options.refreshSensitivity).value(),this.options.scrollElement=this.options.scrollElement||this.el,e(this.options.scrollElement).on("scroll",this.scroll),this.initSortable(),_.bindAll(this,"setColumns"),this.options.resize&&(this.on("ready",this.bindEvents),this.controller.on("open",this.setColumns),_.defer(this.setColumns,this))},bindEvents:function(){this.$window.off(this.resizeEvent).on(this.resizeEvent,_.debounce(this.setColumns,50))},attachmentFocus:function(){this.$("li:first").focus()},restoreFocus:function(){this.$("li.selected:first").focus()},arrowEvent:function(a){var b=this.$el.children("li"),c=this.columns,d=b.filter(":focus").index(),e=d+1<=c?1:Math.ceil((d+1)/c);if(d!==-1){if(37===a.keyCode){if(0===d)return;b.eq(d-1).focus()}if(38===a.keyCode){if(1===e)return;b.eq(d-c).focus()}if(39===a.keyCode){if(b.length===d)return;b.eq(d+1).focus()}if(40===a.keyCode){if(Math.ceil(b.length/c)===e)return;b.eq(d+c).focus()}}},dispose:function(){this.collection.props.off(null,null,this),this.options.resize&&this.$window.off(this.resizeEvent),d.prototype.dispose.apply(this,arguments)},setColumns:function(){var a=this.columns,b=this.$el.width();b&&(this.columns=Math.min(Math.round(b/this.options.idealColumnWidth),12)||1,a&&a===this.columns||this.$el.closest(".media-frame-content").attr("data-columns",this.columns))},initSortable:function(){var a=this.collection;this.options.sortable&&e.fn.sortable&&(this.$el.sortable(_.extend({disabled:!!a.comparator,tolerance:"pointer",start:function(a,b){b.item.data("sortableIndexStart",b.item.index())},update:function(b,c){var d=a.at(c.item.data("sortableIndexStart")),e=a.comparator;delete a.comparator,a.remove(d,{silent:!0}),a.add(d,{silent:!0,at:c.item.index()}),a.comparator=e,a.trigger("reset",a),a.saveMenuOrder()}},this.options.sortable)),a.props.on("change:orderby",function(){this.$el.sortable("option","disabled",!!a.comparator)},this),this.collection.props.on("change:orderby",this.refreshSortable,this),this.refreshSortable())},refreshSortable:function(){if(this.options.sortable&&e.fn.sortable){var a=this.collection,b=a.props.get("orderby"),c="menuOrder"===b||!a.comparator;this.$el.sortable("option","disabled",!c)}},createAttachmentView:function(a){var b=new this.options.AttachmentView({controller:this.controller,model:a,collection:this.collection,selection:this.options.selection});return this._viewsByCid[a.cid]=b},prepare:function(){this.collection.length?this.views.set(this.collection.map(this.createAttachmentView,this)):(this.views.unset(),this.collection.more().done(this.scroll))},ready:function(){this.scroll()},scroll:function(){var a,b=this,c=this.options.scrollElement,d=c.scrollTop;c===document&&(c=document.body,d=e(document).scrollTop()),e(c).is(":visible")&&this.collection.hasMore()&&(a=this.views.parent.toolbar,c.scrollHeight-(d+c.clientHeight)<c.clientHeight/3&&a.get("spinner").show(),c.scrollHeight<d+c.clientHeight*this.options.refreshThreshold&&this.collection.more().done(function(){b.scroll(),a.get("spinner").hide()}))}}),a.exports=c},function(a,b){var c,d=wp.media.view.l10n;c=wp.media.View.extend({tagName:"input",className:"search",id:"media-search-input",attributes:{type:"search",placeholder:d.searchMediaPlaceholder},events:{input:"search",keyup:"search"},render:function(){return this.el.value=this.model.escape("search"),this},search:_.debounce(function(a){a.target.value?this.model.set("search",a.target.value):this.model.unset("search")},300)}),a.exports=c},function(a,b){var c,d=jQuery;c=wp.media.View.extend({tagName:"select",className:"attachment-filters",id:"media-attachment-filters",events:{change:"change"},keys:[],initialize:function(){this.createFilters(),_.extend(this.filters,this.options.filters),this.$el.html(_.chain(this.filters).map(function(a,b){return{el:d("<option></option>").val(b).html(a.text)[0],priority:a.priority||50}},this).sortBy("priority").pluck("el").value()),this.listenTo(this.model,"change",this.select),this.select()},createFilters:function(){this.filters={}},change:function(){var a=this.filters[this.el.value];a&&this.model.set(a.props)},select:function(){var a=this.model,b="all",c=a.toJSON();_.find(this.filters,function(a,d){var e=_.all(a.props,function(a,b){return a===(_.isUndefined(c[b])?null:c[b])});if(e)return b=d}),this.$el.val(b)}}),a.exports=c},function(a,b){var c,d=wp.media.view.l10n;c=wp.media.view.AttachmentFilters.extend({id:"media-attachment-date-filters",createFilters:function(){var a={};_.each(wp.media.view.settings.months||{},function(b,c){a[c]={text:b.text,props:{year:b.year,monthnum:b.month}}}),a.all={text:d.allDates,props:{monthnum:!1,year:!1},priority:10},this.filters=a}}),a.exports=c},function(a,b){var c,d=wp.media.view.l10n;c=wp.media.view.AttachmentFilters.extend({createFilters:function(){var a,b=this.model.get("type"),c=wp.media.view.settings.mimeTypes;c&&b&&(a=c[b]),this.filters={all:{text:a||d.allMediaItems,props:{uploadedTo:null,orderby:"date",order:"DESC"},priority:10},uploaded:{text:d.uploadedToThisPost,props:{uploadedTo:wp.media.view.settings.post.id,orderby:"menuOrder",order:"ASC"},priority:20},unattached:{text:d.unattached,props:{uploadedTo:0,orderby:"menuOrder",order:"ASC"},priority:50}}}}),a.exports=c},function(a,b){var c,d=wp.media.view.l10n;c=wp.media.view.AttachmentFilters.extend({createFilters:function(){var a={};_.each(wp.media.view.settings.mimeTypes||{},function(b,c){a[c]={text:b,props:{status:null,type:c,uploadedTo:null,orderby:"date",order:"DESC"}}}),a.all={text:d.allMediaItems,props:{status:null,type:null,uploadedTo:null,orderby:"date",order:"DESC"},priority:10},wp.media.view.settings.post.id&&(a.uploaded={text:d.uploadedToThisPost,props:{status:null,type:null,uploadedTo:wp.media.view.settings.post.id,orderby:"menuOrder",order:"ASC"},priority:20}),a.unattached={text:d.unattached,props:{status:null,uploadedTo:0,type:null,orderby:"menuOrder",order:"ASC"},priority:50},wp.media.view.settings.mediaTrash&&this.controller.isModeActive("grid")&&(a.trash={text:d.trash,props:{uploadedTo:null,status:"trash",type:null,orderby:"date",order:"DESC"},priority:50}),this.filters=a}}),a.exports=c},function(a,b){var c,d=wp.media.View,e=wp.media.view.settings.mediaTrash,f=wp.media.view.l10n,g=jQuery;c=d.extend({tagName:"div",className:"attachments-browser",initialize:function(){_.defaults(this.options,{filters:!1,search:!0,date:!0,display:!1,sidebar:!0,AttachmentView:wp.media.view.Attachment.Library}),this.controller.on("toggle:upload:attachment",this.toggleUploader,this),this.controller.on("edit:selection",this.editSelection),this.options.sidebar&&"errors"===this.options.sidebar&&this.createSidebar(),this.createUploader(),this.createToolbar(),this.createAttachments(),this.options.sidebar&&"errors"!==this.options.sidebar&&this.createSidebar(),this.updateContent(),this.options.sidebar&&"errors"!==this.options.sidebar||(this.$el.addClass("hide-sidebar"),"errors"===this.options.sidebar&&this.$el.addClass("sidebar-for-errors")),this.collection.on("add remove reset",this.updateContent,this)},editSelection:function(a){a.$(".media-button-backToLibrary").focus()},dispose:function(){return this.options.selection.off(null,null,this),d.prototype.dispose.apply(this,arguments),this},createToolbar:function(){var a,b,c;c={controller:this.controller},this.controller.isModeActive("grid")&&(c.className="media-toolbar wp-filter"),this.toolbar=new wp.media.view.Toolbar(c),this.views.add(this.toolbar),this.toolbar.set("spinner",new wp.media.view.Spinner({priority:-60})),-1!==g.inArray(this.options.filters,["uploaded","all"])&&(this.toolbar.set("filtersLabel",new wp.media.view.Label({value:f.filterByType,attributes:{"for":"media-attachment-filters"},priority:-80}).render()),"uploaded"===this.options.filters?this.toolbar.set("filters",new wp.media.view.AttachmentFilters.Uploaded({controller:this.controller,model:this.collection.props,priority:-80}).render()):(b=new wp.media.view.AttachmentFilters.All({controller:this.controller,model:this.collection.props,priority:-80}),this.toolbar.set("filters",b.render()))),this.controller.isModeActive("grid")?(a=d.extend({className:"view-switch media-grid-view-switch",template:wp.template("media-library-view-switcher")}),this.toolbar.set("libraryViewSwitcher",new a({controller:this.controller,priority:-90}).render()),this.toolbar.set("dateFilterLabel",new wp.media.view.Label({value:f.filterByDate,attributes:{"for":"media-attachment-date-filters"},priority:-75}).render()),this.toolbar.set("dateFilter",new wp.media.view.DateFilter({controller:this.controller,model:this.collection.props,priority:-75}).render()),this.toolbar.set("selectModeToggleButton",new wp.media.view.SelectModeToggleButton({text:f.bulkSelect,controller:this.controller,priority:-70}).render()),this.toolbar.set("deleteSelectedButton",new wp.media.view.DeleteSelectedButton({filters:b,style:"primary",disabled:!0,text:e?f.trashSelected:f.deleteSelected,controller:this.controller,priority:-60,click:function(){var a=[],b=[],c=this.controller.state().get("selection"),d=this.controller.state().get("library");c.length&&(e||window.confirm(f.warnBulkDelete))&&(e&&"trash"!==c.at(0).get("status")&&!window.confirm(f.warnBulkTrash)||(c.each(function(c){return c.get("nonces")["delete"]?void(e&&"trash"===c.get("status")?(c.set("status","inherit"),a.push(c.save()),b.push(c)):e?(c.set("status","trash"),a.push(c.save()),b.push(c)):c.destroy({wait:!0})):void b.push(c)}),a.length?(c.remove(b),g.when.apply(null,a).then(_.bind(function(){d._requery(!0),this.controller.trigger("selection:action:done")},this))):this.controller.trigger("selection:action:done")))}}).render()),e&&this.toolbar.set("deleteSelectedPermanentlyButton",new wp.media.view.DeleteSelectedPermanentlyButton({filters:b,style:"primary",disabled:!0,text:f.deleteSelected,controller:this.controller,priority:-55,click:function(){var a=[],b=[],c=this.controller.state().get("selection");c.length&&window.confirm(f.warnBulkDelete)&&(c.each(function(c){return c.get("nonces")["delete"]?void b.push(c):void a.push(c)}),a.length&&c.remove(a),b.length&&g.when.apply(null,b.map(function(a){return a.destroy()})).then(_.bind(function(){this.controller.trigger("selection:action:done")},this)))}}).render())):this.options.date&&(this.toolbar.set("dateFilterLabel",new wp.media.view.Label({value:f.filterByDate,attributes:{"for":"media-attachment-date-filters"},priority:-75}).render()),this.toolbar.set("dateFilter",new wp.media.view.DateFilter({controller:this.controller,model:this.collection.props,priority:-75}).render())),this.options.search&&(this.toolbar.set("searchLabel",new wp.media.view.Label({value:f.searchMediaLabel,attributes:{"for":"media-search-input"},priority:60}).render()),this.toolbar.set("search",new wp.media.view.Search({controller:this.controller,model:this.collection.props,priority:60}).render())),this.options.dragInfo&&this.toolbar.set("dragInfo",new d({el:g('<div class="instructions">'+f.dragInfo+"</div>")[0],priority:-40})),this.options.suggestedWidth&&this.options.suggestedHeight&&this.toolbar.set("suggestedDimensions",new d({el:g('<div class="instructions">'+f.suggestedDimensions.replace("%1$s",this.options.suggestedWidth).replace("%2$s",this.options.suggestedHeight)+"</div>")[0],priority:-40}))},updateContent:function(){var a,b=this;a=this.controller.isModeActive("grid")?b.attachmentsNoResults:b.uploader,this.collection.length?(a.$el.addClass("hidden"),b.toolbar.get("spinner").hide()):(this.toolbar.get("spinner").show(),this.dfd=this.collection.more().done(function(){b.collection.length?a.$el.addClass("hidden"):a.$el.removeClass("hidden"),b.toolbar.get("spinner").hide()}))},createUploader:function(){this.uploader=new wp.media.view.UploaderInline({controller:this.controller,status:!1,message:this.controller.isModeActive("grid")?"":f.noItemsFound,canClose:this.controller.isModeActive("grid")}),this.uploader.$el.addClass("hidden"),this.views.add(this.uploader)},toggleUploader:function(){this.uploader.$el.hasClass("hidden")?this.uploader.show():this.uploader.hide()},createAttachments:function(){this.attachments=new wp.media.view.Attachments({controller:this.controller,collection:this.collection,selection:this.options.selection,model:this.model,sortable:this.options.sortable,scrollElement:this.options.scrollElement,idealColumnWidth:this.options.idealColumnWidth,AttachmentView:this.options.AttachmentView}),this.controller.on("attachment:keydown:arrow",_.bind(this.attachments.arrowEvent,this.attachments)),this.controller.on("attachment:details:shift-tab",_.bind(this.attachments.restoreFocus,this.attachments)),this.views.add(this.attachments),this.controller.isModeActive("grid")&&(this.attachmentsNoResults=new d({controller:this.controller,tagName:"p"}),this.attachmentsNoResults.$el.addClass("hidden no-media"),this.attachmentsNoResults.$el.html(f.noMedia),this.views.add(this.attachmentsNoResults))},createSidebar:function(){var a=this.options,b=a.selection,c=this.sidebar=new wp.media.view.Sidebar({controller:this.controller});this.views.add(c),this.controller.uploader&&c.set("uploads",new wp.media.view.UploaderStatus({controller:this.controller,priority:40})),b.on("selection:single",this.createSingle,this),b.on("selection:unsingle",this.disposeSingle,this),b.single()&&this.createSingle()},createSingle:function(){var a=this.sidebar,b=this.options.selection.single();a.set("details",new wp.media.view.Attachment.Details({controller:this.controller,model:b,priority:80})),a.set("compat",new wp.media.view.AttachmentCompat({controller:this.controller,model:b,priority:120})),this.options.display&&a.set("display",new wp.media.view.Settings.AttachmentDisplay({controller:this.controller,model:this.model.display(b),attachment:b,priority:160,userSettings:this.model.get("displayUserSettings")})),"insert"===this.model.id&&a.$el.addClass("visible")},disposeSingle:function(){var a=this.sidebar;a.unset("details"),a.unset("compat"),a.unset("display"),a.$el.removeClass("visible")}}),a.exports=c},function(a,b){var c,d=wp.media.view.l10n;c=wp.media.View.extend({tagName:"div",className:"media-selection",template:wp.template("media-selection"),events:{"click .edit-selection":"edit","click .clear-selection":"clear"},initialize:function(){_.defaults(this.options,{editable:!1,clearable:!0}),this.attachments=new wp.media.view.Attachments.Selection({controller:this.controller,collection:this.collection,selection:this.collection,model:new Backbone.Model}),this.views.set(".selection-view",this.attachments),this.collection.on("add remove reset",this.refresh,this),this.controller.on("content:activate",this.refresh,this)},ready:function(){this.refresh()},refresh:function(){if(this.$el.children().length){var a=this.collection,b="edit-selection"===this.controller.content.mode();this.$el.toggleClass("empty",!a.length),this.$el.toggleClass("one",1===a.length),this.$el.toggleClass("editing",b),this.$(".count").text(d.selected.replace("%d",a.length))}},edit:function(a){a.preventDefault(),this.options.editable&&this.options.editable.call(this,this.collection)},clear:function(a){a.preventDefault(),this.collection.reset(),this.controller.modal.focusManager.focus()}}),a.exports=c},function(a,b){var c=wp.media.view.Attachment.extend({className:"attachment selection",toggleSelection:function(){this.options.selection.single(this.model)}});a.exports=c},function(a,b){var c,d=wp.media.view.Attachments;c=d.extend({events:{},initialize:function(){return _.defaults(this.options,{sortable:!1,resize:!1,AttachmentView:wp.media.view.Attachment.Selection}),d.prototype.initialize.apply(this,arguments)}}),a.exports=c},function(a,b){var c=wp.media.view.Attachment.Selection.extend({buttons:{close:!0}});a.exports=c},function(a,b){var c,d=wp.media.View,e=Backbone.$;c=d.extend({events:{"click button":"updateHandler","change input":"updateHandler","change select":"updateHandler","change textarea":"updateHandler"},initialize:function(){this.model=this.model||new Backbone.Model,this.listenTo(this.model,"change",this.updateChanges)},prepare:function(){return _.defaults({model:this.model.toJSON()},this.options)},render:function(){return d.prototype.render.apply(this,arguments),_(this.model.attributes).chain().keys().each(this.update,this),this},update:function(a){var b,c,d=this.model.get(a),e=this.$('[data-setting="'+a+'"]');e.length&&(e.is("select")?(c=e.find('[value="'+d+'"]'),c.length?(e.find("option").prop("selected",!1),c.prop("selected",!0)):this.model.set(a,e.find(":selected").val())):e.hasClass("button-group")?(b=e.find("button").removeClass("active"),b.filter('[value="'+d+'"]').addClass("active")):e.is('input[type="text"], textarea')?e.is(":focus")||e.val(d):e.is('input[type="checkbox"]')&&e.prop("checked",!!d&&"false"!==d))},updateHandler:function(a){var b,c=e(a.target).closest("[data-setting]"),d=a.target.value;a.preventDefault(),c.length&&(c.is('input[type="checkbox"]')&&(d=c[0].checked),this.model.set(c.data("setting"),d),(b=c.data("userSetting"))&&window.setUserSetting(b,d))},updateChanges:function(a){a.hasChanged()&&_(a.changed).chain().keys().each(this.update,this)}}),a.exports=c},function(a,b){var c,d=wp.media.view.Settings;c=d.extend({className:"attachment-display-settings",template:wp.template("attachment-display-settings"),initialize:function(){var a=this.options.attachment;_.defaults(this.options,{userSettings:!1}),d.prototype.initialize.apply(this,arguments),this.listenTo(this.model,"change:link",this.updateLinkTo),a&&a.on("change:uploading",this.render,this)},dispose:function(){var a=this.options.attachment;a&&a.off(null,null,this),d.prototype.dispose.apply(this,arguments)},render:function(){var a=this.options.attachment;return a&&_.extend(this.options,{sizes:a.get("sizes"),type:a.get("type")}),d.prototype.render.call(this),this.updateLinkTo(),this},updateLinkTo:function(){var a=this.model.get("link"),b=this.$(".link-to-custom"),c=this.options.attachment;return"none"===a||"embed"===a||!c&&"custom"!==a?void b.addClass("hidden"):(c&&("post"===a?b.val(c.get("link")):"file"===a?b.val(c.get("url")):this.model.get("linkUrl")||b.val("http://"),b.prop("readonly","custom"!==a)),b.removeClass("hidden"),void(!wp.media.isTouchDevice&&b.is(":visible")&&b.focus()[0].select()))}}),a.exports=c},function(a,b){var c=wp.media.view.Settings.extend({className:"collection-settings gallery-settings",template:wp.template("gallery-settings")});a.exports=c},function(a,b){var c=wp.media.view.Settings.extend({className:"collection-settings playlist-settings",template:wp.template("playlist-settings")});a.exports=c},function(a,b){var c,d=wp.media.view.Attachment,e=wp.media.view.l10n;c=d.extend({tagName:"div",className:"attachment-details",template:wp.template("attachment-details"),attributes:function(){return{tabIndex:0,"data-id":this.model.get("id")}},events:{"change [data-setting]":"updateSetting","change [data-setting] input":"updateSetting","change [data-setting] select":"updateSetting","change [data-setting] textarea":"updateSetting","click .delete-attachment":"deleteAttachment","click .trash-attachment":"trashAttachment","click .untrash-attachment":"untrashAttachment","click .edit-attachment":"editAttachment",keydown:"toggleSelectionHandler"},initialize:function(){this.options=_.defaults(this.options,{rerenderOnModelChange:!1}),this.on("ready",this.initialFocus),d.prototype.initialize.apply(this,arguments)},initialFocus:function(){wp.media.isTouchDevice||this.$('input[type="text"]').eq(0).focus()},deleteAttachment:function(a){a.preventDefault(),window.confirm(e.warnDelete)&&(this.model.destroy(),this.controller.modal.focusManager.focus())},trashAttachment:function(a){var b=this.controller.library;a.preventDefault(),wp.media.view.settings.mediaTrash&&"edit-metadata"===this.controller.content.mode()?(this.model.set("status","trash"),this.model.save().done(function(){b._requery(!0)})):this.model.destroy()},untrashAttachment:function(a){var b=this.controller.library;a.preventDefault(),this.model.set("status","inherit"),this.model.save().done(function(){b._requery(!0)})},editAttachment:function(a){var b=this.controller.states.get("edit-image");window.imageEdit&&b?(a.preventDefault(),b.set("image",this.model),this.controller.setState("edit-image")):this.$el.addClass("needs-refresh")},toggleSelectionHandler:function(a){return"keydown"===a.type&&9===a.keyCode&&a.shiftKey&&a.target===this.$(":tabbable").get(0)?(this.controller.trigger("attachment:details:shift-tab",a),!1):37===a.keyCode||38===a.keyCode||39===a.keyCode||40===a.keyCode?void this.controller.trigger("attachment:keydown:arrow",a):void 0}}),a.exports=c},function(a,b){var c,d=wp.media.View;c=d.extend({tagName:"form",className:"compat-item",events:{submit:"preventDefault","change input":"save","change select":"save","change textarea":"save"},initialize:function(){this.listenTo(this.model,"change:compat",this.render)},dispose:function(){return this.$(":focus").length&&this.save(),d.prototype.dispose.apply(this,arguments)},render:function(){var a=this.model.get("compat");if(a&&a.item)return this.views.detach(),this.$el.html(a.item),this.views.render(),this},preventDefault:function(a){a.preventDefault()},save:function(a){var b={};a&&a.preventDefault(),_.each(this.$el.serializeArray(),function(a){b[a.name]=a.value}),this.controller.trigger("attachment:compat:waiting",["waiting"]),this.model.saveCompat(b).always(_.bind(this.postSave,this))},postSave:function(){this.controller.trigger("attachment:compat:ready",["ready"])}}),a.exports=c},function(a,b){var c=wp.media.View.extend({className:"media-iframe",render:function(){return this.views.detach(),this.$el.html('<iframe src="'+this.controller.state().get("src")+'" />'),this.views.render(),this}});a.exports=c},function(a,b){var c=wp.media.View.extend({className:"media-embed",initialize:function(){this.url=new wp.media.view.EmbedUrl({controller:this.controller,model:this.model.props}).render(),this.views.set([this.url]),this.refresh(),this.listenTo(this.model,"change:type",this.refresh),this.listenTo(this.model,"change:loading",this.loading)},settings:function(a){this._settings&&this._settings.remove(),this._settings=a,this.views.add(a)},refresh:function(){var a,b=this.model.get("type");if("image"===b)a=wp.media.view.EmbedImage;else{if("link"!==b)return;a=wp.media.view.EmbedLink}this.settings(new a({controller:this.controller,model:this.model.props,priority:40}))},loading:function(){this.$el.toggleClass("embed-loading",this.model.get("loading"))}});a.exports=c},function(a,b){var c=wp.media.View.extend({tagName:"label",className:"screen-reader-text",initialize:function(){this.value=this.options.value},render:function(){return this.$el.html(this.value),this}});a.exports=c},function(a,b){var c,d=wp.media.View,e=jQuery;c=d.extend({tagName:"label",className:"embed-url",events:{input:"url",keyup:"url",change:"url"},initialize:function(){this.$input=e('<input id="embed-url-field" type="url" />').val(this.model.get("url")),this.input=this.$input[0],this.spinner=e('<span class="spinner" />')[0],this.$el.append([this.input,this.spinner]),this.listenTo(this.model,"change:url",this.render),this.model.get("url")&&_.delay(_.bind(function(){this.model.trigger("change:url")},this),500)},render:function(){var a=this.$input;if(!a.is(":focus"))return this.input.value=this.model.get("url")||"http://",d.prototype.render.apply(this,arguments),this},ready:function(){wp.media.isTouchDevice||this.focus()},url:function(a){this.model.set("url",e.trim(a.target.value))},focus:function(){var a=this.$input;a.is(":visible")&&a.focus()[0].select()}}),a.exports=c},function(a,b){var c,d=jQuery;c=wp.media.view.Settings.extend({className:"embed-link-settings",template:wp.template("embed-link-settings"),initialize:function(){this.listenTo(this.model,"change:url",this.updateoEmbed)},updateoEmbed:_.debounce(function(){var a=this.model.get("url");this.$(".embed-container").hide().find(".embed-preview").empty(),this.$(".setting").hide(),a&&(a.length<11||!a.match(/^http(s)?:\/\//))||this.fetch()},wp.media.controller.Embed.sensitivity),fetch:function(){var a,b,c=this.model.get("url");d("#embed-url-field").val()===c&&(this.dfd&&"pending"===this.dfd.state()&&this.dfd.abort(),a=/https?:\/\/www\.youtube\.com\/embed\/([^\/]+)/,b=a.exec(c),b&&(c="https://www.youtube.com/watch?v="+b[1]),this.dfd=wp.apiRequest({url:wp.media.view.settings.oEmbedProxyUrl,data:{url:c,maxwidth:this.model.get("width"),maxheight:this.model.get("height")},type:"GET",dataType:"json",context:this}).done(function(a){this.renderoEmbed({data:{body:a.html||""}})}).fail(this.renderFail))},renderFail:function(a,b){"abort"!==b&&this.$(".link-text").show()},renderoEmbed:function(a){var b=a&&a.data&&a.data.body||"";b?this.$(".embed-container").show().find(".embed-preview").html(b):this.renderFail()}}),a.exports=c},function(a,b){var c,d=wp.media.view.Settings.AttachmentDisplay;c=d.extend({className:"embed-media-settings",template:wp.template("embed-image-settings"),initialize:function(){d.prototype.initialize.apply(this,arguments),this.listenTo(this.model,"change:url",this.updateImage)},updateImage:function(){this.$("img").attr("src",this.model.get("url"))}}),a.exports=c},function(a,b){var c,d=wp.media.view.Settings.AttachmentDisplay,e=jQuery;c=d.extend({className:"image-details",template:wp.template("image-details"),events:_.defaults(d.prototype.events,{"click .edit-attachment":"editAttachment","click .replace-attachment":"replaceAttachment","click .advanced-toggle":"onToggleAdvanced",'change [data-setting="customWidth"]':"onCustomSize",'change [data-setting="customHeight"]':"onCustomSize",'keyup [data-setting="customWidth"]':"onCustomSize",'keyup [data-setting="customHeight"]':"onCustomSize"}),initialize:function(){this.options.attachment=this.model.attachment,this.listenTo(this.model,"change:url",this.updateUrl),this.listenTo(this.model,"change:link",this.toggleLinkSettings),this.listenTo(this.model,"change:size",this.toggleCustomSize),d.prototype.initialize.apply(this,arguments)},prepare:function(){var a=!1;return this.model.attachment&&(a=this.model.attachment.toJSON()),_.defaults({model:this.model.toJSON(),attachment:a},this.options)},render:function(){var a=arguments;return this.model.attachment&&"pending"===this.model.dfd.state()?this.model.dfd.done(_.bind(function(){d.prototype.render.apply(this,a),this.postRender()},this)).fail(_.bind(function(){this.model.attachment=!1,d.prototype.render.apply(this,a),this.postRender()},this)):(d.prototype.render.apply(this,arguments),this.postRender()),this},postRender:function(){setTimeout(_.bind(this.resetFocus,this),10),this.toggleLinkSettings(),"show"===window.getUserSetting("advImgDetails")&&this.toggleAdvanced(!0),this.trigger("post-render")},resetFocus:function(){this.$(".link-to-custom").blur(),this.$(".embed-media-settings").scrollTop(0)},updateUrl:function(){this.$(".image img").attr("src",this.model.get("url")),this.$(".url").val(this.model.get("url"))},toggleLinkSettings:function(){"none"===this.model.get("link")?this.$(".link-settings").addClass("hidden"):this.$(".link-settings").removeClass("hidden")},toggleCustomSize:function(){"custom"!==this.model.get("size")?this.$(".custom-size").addClass("hidden"):this.$(".custom-size").removeClass("hidden")},onCustomSize:function(a){var b,c=e(a.target).data("setting"),d=e(a.target).val();return!/^\d+/.test(d)||parseInt(d,10)<1?void a.preventDefault():void("customWidth"===c?(b=Math.round(1/this.model.get("aspectRatio")*d),this.model.set("customHeight",b,{silent:!0}),this.$('[data-setting="customHeight"]').val(b)):(b=Math.round(this.model.get("aspectRatio")*d),this.model.set("customWidth",b,{silent:!0}),this.$('[data-setting="customWidth"]').val(b)))},onToggleAdvanced:function(a){a.preventDefault(),this.toggleAdvanced()},toggleAdvanced:function(a){var b,c=this.$el.find(".advanced-section"); -c.hasClass("advanced-visible")||a===!1?(c.removeClass("advanced-visible"),c.find(".advanced-settings").addClass("hidden"),b="hide"):(c.addClass("advanced-visible"),c.find(".advanced-settings").removeClass("hidden"),b="show"),window.setUserSetting("advImgDetails",b)},editAttachment:function(a){var b=this.controller.states.get("edit-image");window.imageEdit&&b&&(a.preventDefault(),b.set("image",this.model.attachment),this.controller.setState("edit-image"))},replaceAttachment:function(a){a.preventDefault(),this.controller.setState("replace-image")}}),a.exports=c},function(a,b){var c,d=wp.media.View,e=wp.media.view.UploaderStatus,f=wp.media.view.l10n,g=jQuery;c=d.extend({className:"crop-content",template:wp.template("crop-content"),initialize:function(){_.bindAll(this,"onImageLoad")},ready:function(){this.controller.frame.on("content:error:crop",this.onError,this),this.$image=this.$el.find(".crop-image"),this.$image.on("load",this.onImageLoad),g(window).on("resize.cropper",_.debounce(this.onImageLoad,250))},remove:function(){g(window).off("resize.cropper"),this.$el.remove(),this.$el.off(),d.prototype.remove.apply(this,arguments)},prepare:function(){return{title:f.cropYourImage,url:this.options.attachment.get("url")}},onImageLoad:function(){var a,b=this.controller.get("imgSelectOptions");"function"==typeof b&&(b=b(this.options.attachment,this.controller)),b=_.extend(b,{parent:this.$el,onInit:function(){var b=a.getOptions().aspectRatio;this.parent.children().on("mousedown touchstart",function(c){!b&&c.shiftKey&&a.setOptions({aspectRatio:"1:1"})}),this.parent.children().on("mouseup touchend",function(){a.setOptions({aspectRatio:!!b&&b})})}}),this.trigger("image-loaded"),a=this.controller.imgSelect=this.$image.imgAreaSelect(b)},onError:function(){var a=this.options.attachment.get("filename");this.views.add(".upload-errors",new wp.media.view.UploaderStatusError({filename:e.prototype.filename(a),message:window._wpMediaViewsL10n.cropError}),{at:0})}}),a.exports=c},function(a,b){var c,d=wp.media.view;c=d.Cropper.extend({className:"crop-content site-icon",ready:function(){d.Cropper.prototype.ready.apply(this,arguments),this.$(".crop-image").on("load",_.bind(this.addSidebar,this))},addSidebar:function(){this.sidebar=new wp.media.view.Sidebar({controller:this.controller}),this.sidebar.set("preview",new wp.media.view.SiteIconPreview({controller:this.controller,attachment:this.options.attachment})),this.controller.cropperView.views.add(this.sidebar)}}),a.exports=c},function(a,b){var c,d=wp.media.View,e=jQuery;c=d.extend({className:"site-icon-preview",template:wp.template("site-icon-preview"),ready:function(){this.controller.imgSelect.setOptions({onInit:this.updatePreview,onSelectChange:this.updatePreview})},prepare:function(){return{url:this.options.attachment.get("url")}},updatePreview:function(a,b){var c=64/b.width,d=64/b.height,f=16/b.width,g=16/b.height;e("#preview-app-icon").css({width:Math.round(c*this.imageWidth)+"px",height:Math.round(d*this.imageHeight)+"px",marginLeft:"-"+Math.round(c*b.x1)+"px",marginTop:"-"+Math.round(d*b.y1)+"px"}),e("#preview-favicon").css({width:Math.round(f*this.imageWidth)+"px",height:Math.round(g*this.imageHeight)+"px",marginLeft:"-"+Math.round(f*b.x1)+"px",marginTop:"-"+Math.floor(g*b.y1)+"px"})}}),a.exports=c},function(a,b){var c,d=wp.media.View;c=d.extend({className:"image-editor",template:wp.template("image-editor"),initialize:function(a){this.editor=window.imageEdit,this.controller=a.controller,d.prototype.initialize.apply(this,arguments)},prepare:function(){return this.model.toJSON()},loadEditor:function(){var a=this.editor.open(this.model.get("id"),this.model.get("nonces").edit,this);a.done(_.bind(this.focus,this))},focus:function(){this.$(".imgedit-submit .button").eq(0).focus()},back:function(){var a=this.controller.lastState();this.controller.setState(a)},refresh:function(){this.model.fetch()},save:function(){var a=this.controller.lastState();this.model.fetch().done(_.bind(function(){this.controller.setState(a)},this))}}),a.exports=c},function(a,b){var c=wp.media.View.extend({tagName:"span",className:"spinner",spinnerTimeout:!1,delay:400,show:function(){return this.spinnerTimeout||(this.spinnerTimeout=_.delay(function(a){a.addClass("is-active")},this.delay,this.$el)),this},hide:function(){return this.$el.removeClass("is-active"),this.spinnerTimeout=clearTimeout(this.spinnerTimeout),this}});a.exports=c}])); \ No newline at end of file +!function(a){function b(d){if(c[d])return c[d].exports;var e=c[d]={i:d,l:!1,exports:{}};return a[d].call(e.exports,e,e.exports,b),e.l=!0,e.exports}var c={};return b.m=a,b.c=c,b.d=function(a,c,d){b.o(a,c)||Object.defineProperty(a,c,{configurable:!1,enumerable:!0,get:d})},b.n=function(a){var c=a&&a.__esModule?function(){return a["default"]}:function(){return a};return b.d(c,"a",c),c},b.o=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)},b.p="",b(b.s=26)}(Array(26).concat([function(a,b,c){var d,e=wp.media,f=jQuery;e.isTouchDevice="ontouchend"in document,d=e.view.l10n=window._wpMediaViewsL10n||{},e.view.settings=d.settings||{},delete d.settings,e.model.settings.post=e.view.settings.post,f.support.transition=function(){var a,b=document.documentElement.style,c={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};return a=_.find(_.keys(c),function(a){return!_.isUndefined(b[a])}),a&&{end:c[a]}}(),e.events=_.extend({},Backbone.Events),e.transition=function(a,b){var c=f.Deferred();return b=b||2e3,f.support.transition?(a instanceof f||(a=f(a)),a.first().one(f.support.transition.end,c.resolve),_.delay(c.resolve,b)):c.resolve(),c.promise()},e.controller.Region=c(27),e.controller.StateMachine=c(28),e.controller.State=c(29),e.selectionSync=c(30),e.controller.Library=c(31),e.controller.ImageDetails=c(32),e.controller.GalleryEdit=c(33),e.controller.GalleryAdd=c(34),e.controller.CollectionEdit=c(35),e.controller.CollectionAdd=c(36),e.controller.FeaturedImage=c(37),e.controller.ReplaceImage=c(38),e.controller.EditImage=c(39),e.controller.MediaLibrary=c(40),e.controller.Embed=c(41),e.controller.Cropper=c(42),e.controller.CustomizeImageCropper=c(43),e.controller.SiteIconCropper=c(44),e.View=c(45),e.view.Frame=c(46),e.view.MediaFrame=c(47),e.view.MediaFrame.Select=c(48),e.view.MediaFrame.Post=c(49),e.view.MediaFrame.ImageDetails=c(50),e.view.Modal=c(51),e.view.FocusManager=c(52),e.view.UploaderWindow=c(53),e.view.EditorUploader=c(54),e.view.UploaderInline=c(55),e.view.UploaderStatus=c(56),e.view.UploaderStatusError=c(57),e.view.Toolbar=c(58),e.view.Toolbar.Select=c(59),e.view.Toolbar.Embed=c(60),e.view.Button=c(61),e.view.ButtonGroup=c(62),e.view.PriorityList=c(63),e.view.MenuItem=c(64),e.view.Menu=c(65),e.view.RouterItem=c(66),e.view.Router=c(67),e.view.Sidebar=c(68),e.view.Attachment=c(69),e.view.Attachment.Library=c(70),e.view.Attachment.EditLibrary=c(71),e.view.Attachments=c(72),e.view.Search=c(73),e.view.AttachmentFilters=c(74),e.view.DateFilter=c(75),e.view.AttachmentFilters.Uploaded=c(76),e.view.AttachmentFilters.All=c(77),e.view.AttachmentsBrowser=c(78),e.view.Selection=c(79),e.view.Attachment.Selection=c(80),e.view.Attachments.Selection=c(81),e.view.Attachment.EditSelection=c(82),e.view.Settings=c(83),e.view.Settings.AttachmentDisplay=c(84),e.view.Settings.Gallery=c(85),e.view.Settings.Playlist=c(86),e.view.Attachment.Details=c(87),e.view.AttachmentCompat=c(88),e.view.Iframe=c(89),e.view.Embed=c(90),e.view.Label=c(91),e.view.EmbedUrl=c(92),e.view.EmbedLink=c(93),e.view.EmbedImage=c(94),e.view.ImageDetails=c(95),e.view.Cropper=c(96),e.view.SiteIconCropper=c(97),e.view.SiteIconPreview=c(98),e.view.EditImage=c(99),e.view.Spinner=c(100)},function(a,b){var c=function(a){_.extend(this,_.pick(a||{},"id","view","selector"))};c.extend=Backbone.Model.extend,_.extend(c.prototype,{mode:function(a){return a?a===this._mode?this:(this.trigger("deactivate"),this._mode=a,this.render(a),this.trigger("activate"),this):this._mode},render:function(a){if(a&&a!==this._mode)return this.mode(a);var b,c={view:null};return this.trigger("create",c),b=c.view,this.trigger("render",b),b&&this.set(b),this},get:function(){return this.view.views.first(this.selector)},set:function(a,b){return b&&(b.add=!1),this.view.views.set(this.selector,a,b)},trigger:function(a){var b,c;if(this._mode)return c=_.toArray(arguments),b=this.id+":"+a,c[0]=b+":"+this._mode,this.view.trigger.apply(this.view,c),c[0]=b,this.view.trigger.apply(this.view,c),this}}),a.exports=c},function(a,b){var c=function(a){this.states=new Backbone.Collection(a)};c.extend=Backbone.Model.extend,_.extend(c.prototype,Backbone.Events,{state:function(a){return this.states=this.states||new Backbone.Collection,a=a||this._state,a&&!this.states.get(a)&&this.states.add({id:a}),this.states.get(a)},setState:function(a){var b=this.state();return b&&a===b.id||!this.states||!this.states.get(a)?this:(b&&(b.trigger("deactivate"),this._lastState=b.id),this._state=a,this.state().trigger("activate"),this)},lastState:function(){if(this._lastState)return this.state(this._lastState)}}),_.each(["on","off","trigger"],function(a){c.prototype[a]=function(){return this.states=this.states||new Backbone.Collection,this.states[a].apply(this.states,arguments),this}}),a.exports=c},function(a,b){var c=Backbone.Model.extend({constructor:function(){this.on("activate",this._preActivate,this),this.on("activate",this.activate,this),this.on("activate",this._postActivate,this),this.on("deactivate",this._deactivate,this),this.on("deactivate",this.deactivate,this),this.on("reset",this.reset,this),this.on("ready",this._ready,this),this.on("ready",this.ready,this),Backbone.Model.apply(this,arguments),this.on("change:menu",this._updateMenu,this)},ready:function(){},activate:function(){},deactivate:function(){},reset:function(){},_ready:function(){this._updateMenu()},_preActivate:function(){this.active=!0},_postActivate:function(){this.on("change:menu",this._menu,this),this.on("change:titleMode",this._title,this),this.on("change:content",this._content,this),this.on("change:toolbar",this._toolbar,this),this.frame.on("title:render:default",this._renderTitle,this),this._title(),this._menu(),this._toolbar(),this._content(),this._router()},_deactivate:function(){this.active=!1,this.frame.off("title:render:default",this._renderTitle,this),this.off("change:menu",this._menu,this),this.off("change:titleMode",this._title,this),this.off("change:content",this._content,this),this.off("change:toolbar",this._toolbar,this)},_title:function(){this.frame.title.render(this.get("titleMode")||"default")},_renderTitle:function(a){a.$el.text(this.get("title")||"")},_router:function(){var a,b=this.frame.router,c=this.get("router");this.frame.$el.toggleClass("hide-router",!c),c&&(this.frame.router.render(c),a=b.get(),a&&a.select&&a.select(this.frame.content.mode()))},_menu:function(){var a,b=this.frame.menu,c=this.get("menu");this.frame.$el.toggleClass("hide-menu",!c),c&&(b.mode(c),a=b.get(),a&&a.select&&a.select(this.id))},_updateMenu:function(){var a=this.previous("menu"),b=this.get("menu");a&&this.frame.off("menu:render:"+a,this._renderMenu,this),b&&this.frame.on("menu:render:"+b,this._renderMenu,this)},_renderMenu:function(a){var b=this.get("menuItem"),c=this.get("title"),d=this.get("priority");!b&&c&&(b={text:c},d&&(b.priority=d)),b&&a.set(this.id,b)}});_.each(["toolbar","content"],function(a){c.prototype["_"+a]=function(){var b=this.get(a);b&&this.frame[a].render(b)}}),a.exports=c},function(a,b){var c={syncSelection:function(){var a=this.get("selection"),b=this.frame._selection;this.get("syncSelection")&&b&&a&&(a.multiple&&(a.reset([],{silent:!0}),a.validateAll(b.attachments),b.difference=_.difference(b.attachments.models,a.models)),a.single(b.single))},recordSelection:function(){var a=this.get("selection"),b=this.frame._selection;this.get("syncSelection")&&b&&a&&(a.multiple?(b.attachments.reset(a.toArray().concat(b.difference)),b.difference=[]):b.attachments.add(a.toArray()),b.single=a._single)}};a.exports=c},function(a,b){var c,d=wp.media.view.l10n,e=window.getUserSetting,f=window.setUserSetting;c=wp.media.controller.State.extend({defaults:{id:"library",title:d.mediaLibraryTitle,multiple:!1,content:"upload",menu:"default",router:"browse",toolbar:"select",searchable:!0,filterable:!1,sortable:!0,autoSelect:!0,describe:!1,contentUserSetting:!0,syncSelection:!0},initialize:function(){var a,b=this.get("selection");this.get("library")||this.set("library",wp.media.query()),b instanceof wp.media.model.Selection||(a=b,a||(a=this.get("library").props.toJSON(),a=_.omit(a,"orderby","query")),this.set("selection",new wp.media.model.Selection(null,{multiple:this.get("multiple"),props:a}))),this.resetDisplays()},activate:function(){this.syncSelection(),wp.Uploader.queue.on("add",this.uploading,this),this.get("selection").on("add remove reset",this.refreshContent,this),this.get("router")&&this.get("contentUserSetting")&&(this.frame.on("content:activate",this.saveContentMode,this),this.set("content",e("libraryContent",this.get("content"))))},deactivate:function(){this.recordSelection(),this.frame.off("content:activate",this.saveContentMode,this),this.get("selection").off(null,null,this),wp.Uploader.queue.off(null,null,this)},reset:function(){this.get("selection").reset(),this.resetDisplays(),this.refreshContent()},resetDisplays:function(){var a=wp.media.view.settings.defaultProps;this._displays=[],this._defaultDisplaySettings={align:e("align",a.align)||"none",size:e("imgsize",a.size)||"medium",link:e("urlbutton",a.link)||"none"}},display:function(a){var b=this._displays;return b[a.cid]||(b[a.cid]=new Backbone.Model(this.defaultDisplaySettings(a))),b[a.cid]},defaultDisplaySettings:function(a){var b=_.clone(this._defaultDisplaySettings);return(b.canEmbed=this.canEmbed(a))?b.link="embed":this.isImageAttachment(a)||"none"!==b.link||(b.link="file"),b},isImageAttachment:function(a){return a.get("uploading")?/\.(jpe?g|png|gif)$/i.test(a.get("filename")):"image"===a.get("type")},canEmbed:function(a){if(!a.get("uploading")){var b=a.get("type");if("audio"!==b&&"video"!==b)return!1}return _.contains(wp.media.view.settings.embedExts,a.get("filename").split(".").pop())},refreshContent:function(){var a=this.get("selection"),b=this.frame,c=b.router.get(),d=b.content.mode();this.active&&!a.length&&c&&!c.get(d)&&this.frame.content.render(this.get("content"))},uploading:function(a){var b=this.frame.content;"upload"===b.mode()&&this.frame.content.mode("browse"),this.get("autoSelect")&&(this.get("selection").add(a),this.frame.trigger("library:selection:add"))},saveContentMode:function(){if("browse"===this.get("router")){var a=this.frame.content.mode(),b=this.frame.router.get();b&&b.get(a)&&f("libraryContent",a)}}}),_.extend(c.prototype,wp.media.selectionSync),a.exports=c},function(a,b){var c,d=wp.media.controller.State,e=wp.media.controller.Library,f=wp.media.view.l10n;c=d.extend({defaults:_.defaults({id:"image-details",title:f.imageDetailsTitle,content:"image-details",menu:!1,router:!1,toolbar:"image-details",editing:!1,priority:60},e.prototype.defaults),initialize:function(a){this.image=a.image,d.prototype.initialize.apply(this,arguments)},activate:function(){this.frame.modal.$el.addClass("image-details")}}),a.exports=c},function(a,b){var c,d=wp.media.controller.Library,e=wp.media.view.l10n;c=d.extend({defaults:{id:"gallery-edit",title:e.editGalleryTitle,multiple:!1,searchable:!1,sortable:!0,date:!1,display:!1,content:"browse",toolbar:"gallery-edit",describe:!0,displaySettings:!0,dragInfo:!0,idealColumnWidth:170,editing:!1,priority:60,syncSelection:!1},initialize:function(){this.get("library")||this.set("library",new wp.media.model.Selection),this.get("AttachmentView")||this.set("AttachmentView",wp.media.view.Attachment.EditLibrary),d.prototype.initialize.apply(this,arguments)},activate:function(){var a=this.get("library");a.props.set("type","image"),this.get("library").observe(wp.Uploader.queue),this.frame.on("content:render:browse",this.gallerySettings,this),d.prototype.activate.apply(this,arguments)},deactivate:function(){this.get("library").unobserve(wp.Uploader.queue),this.frame.off("content:render:browse",this.gallerySettings,this),d.prototype.deactivate.apply(this,arguments)},gallerySettings:function(a){if(this.get("displaySettings")){var b=this.get("library");b&&a&&(b.gallery=b.gallery||new Backbone.Model,a.sidebar.set({gallery:new wp.media.view.Settings.Gallery({controller:this,model:b.gallery,priority:40})}),a.toolbar.set("reverse",{text:e.reverseOrder,priority:80,click:function(){b.reset(b.toArray().reverse())}}))}}}),a.exports=c},function(a,b){var c,d=wp.media.model.Selection,e=wp.media.controller.Library,f=wp.media.view.l10n;c=e.extend({defaults:_.defaults({id:"gallery-library",title:f.addToGalleryTitle,multiple:"add",filterable:"uploaded",menu:"gallery",toolbar:"gallery-add",priority:100,syncSelection:!1},e.prototype.defaults),initialize:function(){this.get("library")||this.set("library",wp.media.query({type:"image"})),e.prototype.initialize.apply(this,arguments)},activate:function(){var a=this.get("library"),b=this.frame.state("gallery-edit").get("library");this.editLibrary&&this.editLibrary!==b&&a.unobserve(this.editLibrary),a.validator=function(a){return!!this.mirroring.get(a.cid)&&!b.get(a.cid)&&d.prototype.validator.apply(this,arguments)},a.reset(a.mirroring.models,{silent:!0}),a.observe(b),this.editLibrary=b,e.prototype.activate.apply(this,arguments)}}),a.exports=c},function(a,b){var c,d=wp.media.controller.Library,e=wp.media.view.l10n,f=jQuery;c=d.extend({defaults:{multiple:!1,sortable:!0,date:!1,searchable:!1,content:"browse",describe:!0,dragInfo:!0,idealColumnWidth:170,editing:!1,priority:60,SettingsView:!1,syncSelection:!1},initialize:function(){var a=this.get("collectionType");"video"===this.get("type")&&(a="video-"+a),this.set("id",a+"-edit"),this.set("toolbar",a+"-edit"),this.get("library")||this.set("library",new wp.media.model.Selection),this.get("AttachmentView")||this.set("AttachmentView",wp.media.view.Attachment.EditLibrary),d.prototype.initialize.apply(this,arguments)},activate:function(){var a=this.get("library");a.props.set("type",this.get("type")),this.get("library").observe(wp.Uploader.queue),this.frame.on("content:render:browse",this.renderSettings,this),d.prototype.activate.apply(this,arguments)},deactivate:function(){this.get("library").unobserve(wp.Uploader.queue),this.frame.off("content:render:browse",this.renderSettings,this),d.prototype.deactivate.apply(this,arguments)},renderSettings:function(a){var b=this.get("library"),c=this.get("collectionType"),d=this.get("dragInfoText"),g=this.get("SettingsView"),h={};b&&a&&(b[c]=b[c]||new Backbone.Model,h[c]=new g({controller:this,model:b[c],priority:40}),a.sidebar.set(h),d&&a.toolbar.set("dragInfo",new wp.media.View({el:f('<div class="instructions">'+d+"</div>")[0],priority:-40})),a.toolbar.set("reverse",{text:e.reverseOrder,priority:80,click:function(){b.reset(b.toArray().reverse())}}))}}),a.exports=c},function(a,b){var c,d=wp.media.model.Selection,e=wp.media.controller.Library;c=e.extend({defaults:_.defaults({multiple:"add",filterable:"uploaded",priority:100,syncSelection:!1},e.prototype.defaults),initialize:function(){var a=this.get("collectionType");"video"===this.get("type")&&(a="video-"+a),this.set("id",a+"-library"),this.set("toolbar",a+"-add"),this.set("menu",a),this.get("library")||this.set("library",wp.media.query({type:this.get("type")})),e.prototype.initialize.apply(this,arguments)},activate:function(){var a=this.get("library"),b=this.get("editLibrary"),c=this.frame.state(this.get("collectionType")+"-edit").get("library");b&&b!==c&&a.unobserve(b),a.validator=function(a){return!!this.mirroring.get(a.cid)&&!c.get(a.cid)&&d.prototype.validator.apply(this,arguments)},a.reset(a.mirroring.models,{silent:!0}),a.observe(c),this.set("editLibrary",c),e.prototype.activate.apply(this,arguments)}}),a.exports=c},function(a,b){var c,d=wp.media.model.Attachment,e=wp.media.controller.Library,f=wp.media.view.l10n;c=e.extend({defaults:_.defaults({id:"featured-image",title:f.setFeaturedImageTitle,multiple:!1,filterable:"uploaded",toolbar:"featured-image",priority:60,syncSelection:!0},e.prototype.defaults),initialize:function(){var a,b;this.get("library")||this.set("library",wp.media.query({type:"image"})),e.prototype.initialize.apply(this,arguments),a=this.get("library"),b=a.comparator,a.comparator=function(a,c){var d=!!this.mirroring.get(a.cid),e=!!this.mirroring.get(c.cid);return!d&&e?-1:d&&!e?1:b.apply(this,arguments)},a.observe(this.get("selection"))},activate:function(){this.updateSelection(),this.frame.on("open",this.updateSelection,this),e.prototype.activate.apply(this,arguments)},deactivate:function(){this.frame.off("open",this.updateSelection,this),e.prototype.deactivate.apply(this,arguments)},updateSelection:function(){var a,b=this.get("selection"),c=wp.media.view.settings.post.featuredImageId;""!==c&&-1!==c&&(a=d.get(c),a.fetch()),b.reset(a?[a]:[])}}),a.exports=c},function(a,b){var c,d=wp.media.controller.Library,e=wp.media.view.l10n;c=d.extend({defaults:_.defaults({id:"replace-image",title:e.replaceImageTitle,multiple:!1,filterable:"uploaded",toolbar:"replace",menu:!1,priority:60,syncSelection:!0},d.prototype.defaults),initialize:function(a){var b,c;this.image=a.image,this.get("library")||this.set("library",wp.media.query({type:"image"})),d.prototype.initialize.apply(this,arguments),b=this.get("library"),c=b.comparator,b.comparator=function(a,b){var d=!!this.mirroring.get(a.cid),e=!!this.mirroring.get(b.cid);return!d&&e?-1:d&&!e?1:c.apply(this,arguments)},b.observe(this.get("selection"))},activate:function(){this.updateSelection(),d.prototype.activate.apply(this,arguments)},updateSelection:function(){var a=this.get("selection"),b=this.image.attachment;a.reset(b?[b]:[])}}),a.exports=c},function(a,b){var c,d=wp.media.view.l10n;c=wp.media.controller.State.extend({defaults:{id:"edit-image",title:d.editImage,menu:!1,toolbar:"edit-image",content:"edit-image",url:""},activate:function(){this.frame.on("toolbar:render:edit-image",_.bind(this.toolbar,this))},deactivate:function(){this.frame.off("toolbar:render:edit-image")},toolbar:function(){var a=this.frame,b=a.lastState(),c=b&&b.id;a.toolbar.set(new wp.media.view.Toolbar({controller:a,items:{back:{style:"primary",text:d.back,priority:20,click:function(){c?a.setState(c):a.close()}}}}))}}),a.exports=c},function(a,b){var c,d=wp.media.controller.Library;c=d.extend({defaults:_.defaults({filterable:"uploaded",displaySettings:!1,priority:80,syncSelection:!1},d.prototype.defaults),initialize:function(a){this.media=a.media,this.type=a.type,this.set("library",wp.media.query({type:this.type})),d.prototype.initialize.apply(this,arguments)},activate:function(){wp.media.frame.lastMime&&(this.set("library",wp.media.query({type:wp.media.frame.lastMime})),delete wp.media.frame.lastMime),d.prototype.activate.apply(this,arguments)}}),a.exports=c},function(a,b){var c,d=wp.media.view.l10n,e=Backbone.$;c=wp.media.controller.State.extend({defaults:{id:"embed",title:d.insertFromUrlTitle,content:"embed",menu:"default",toolbar:"main-embed",priority:120,type:"link",url:"",metadata:{}},sensitivity:400,initialize:function(a){this.metadata=a.metadata,this.debouncedScan=_.debounce(_.bind(this.scan,this),this.sensitivity),this.props=new Backbone.Model(this.metadata||{url:""}),this.props.on("change:url",this.debouncedScan,this),this.props.on("change:url",this.refresh,this),this.on("scan",this.scanImage,this)},scan:function(){var a,b=this,c={type:"link",scanners:[]};this.props.get("url")&&this.trigger("scan",c),c.scanners.length?(a=c.scanners=e.when.apply(e,c.scanners),a.always(function(){b.get("scanners")===a&&b.set("loading",!1)})):c.scanners=null,c.loading=!!c.scanners,this.set(c)},scanImage:function(a){var b=this.frame,c=this,d=this.props.get("url"),f=new Image,g=e.Deferred();a.scanners.push(g.promise()),f.onload=function(){g.resolve(),c===b.state()&&d===c.props.get("url")&&(c.set({type:"image"}),c.props.set({width:f.width,height:f.height}))},f.onerror=g.reject,f.src=d},refresh:function(){this.frame.toolbar.get().refresh()},reset:function(){this.props.clear().set({url:""}),this.active&&this.refresh()}}),a.exports=c},function(a,b){var c,d=wp.media.view.l10n;c=wp.media.controller.State.extend({defaults:{id:"cropper",title:d.cropImage,toolbar:"crop",content:"crop",router:!1,canSkipCrop:!1,doCropArgs:{}},activate:function(){this.frame.on("content:create:crop",this.createCropContent,this),this.frame.on("close",this.removeCropper,this),this.set("selection",new Backbone.Collection(this.frame._selection.single))},deactivate:function(){this.frame.toolbar.mode("browse")},createCropContent:function(){this.cropperView=new wp.media.view.Cropper({controller:this,attachment:this.get("selection").first()}),this.cropperView.on("image-loaded",this.createCropToolbar,this),this.frame.content.set(this.cropperView)},removeCropper:function(){this.imgSelect.cancelSelection(),this.imgSelect.setOptions({remove:!0}),this.imgSelect.update(),this.cropperView.remove()},createCropToolbar:function(){var a,b;a=this.get("canSkipCrop")||!1,b={controller:this.frame,items:{insert:{style:"primary",text:d.cropImage,priority:80,requires:{library:!1,selection:!1},click:function(){var a,b=this.controller;a=b.state().get("selection").first(),a.set({cropDetails:b.state().imgSelect.getSelection()}),this.$el.text(d.cropping),this.$el.attr("disabled",!0),b.state().doCrop(a).done(function(a){b.trigger("cropped",a),b.close()}).fail(function(){b.trigger("content:error:crop")})}}}},a&&_.extend(b.items,{skip:{style:"secondary",text:d.skipCropping,priority:70,requires:{library:!1,selection:!1},click:function(){var a=this.controller.state().get("selection").first();this.controller.state().cropperView.remove(),this.controller.trigger("skippedcrop",a),this.controller.close()}}}),this.frame.toolbar.set(new wp.media.view.Toolbar(b))},doCrop:function(a){return wp.ajax.post("custom-header-crop",_.extend({},this.defaults.doCropArgs,{nonce:a.get("nonces").edit,id:a.get("id"),cropDetails:a.get("cropDetails")}))}}),a.exports=c},function(a,b){var c,d=wp.media.controller;c=d.Cropper.extend({doCrop:function(a){var b=a.get("cropDetails"),c=this.get("control"),d=b.width/b.height;return c.params.flex_width&&c.params.flex_height?(b.dst_width=b.width,b.dst_height=b.height):(b.dst_width=c.params.flex_width?c.params.height*d:c.params.width,b.dst_height=c.params.flex_height?c.params.width/d:c.params.height),wp.ajax.post("crop-image",{wp_customize:"on",nonce:a.get("nonces").edit,id:a.get("id"),context:c.id,cropDetails:b})}}),a.exports=c},function(a,b){var c,d=wp.media.controller;c=d.Cropper.extend({activate:function(){this.frame.on("content:create:crop",this.createCropContent,this),this.frame.on("close",this.removeCropper,this),this.set("selection",new Backbone.Collection(this.frame._selection.single))},createCropContent:function(){this.cropperView=new wp.media.view.SiteIconCropper({controller:this,attachment:this.get("selection").first()}),this.cropperView.on("image-loaded",this.createCropToolbar,this),this.frame.content.set(this.cropperView)},doCrop:function(a){var b=a.get("cropDetails"),c=this.get("control");return b.dst_width=c.params.width,b.dst_height=c.params.height,wp.ajax.post("crop-image",{nonce:a.get("nonces").edit,id:a.get("id"),context:"site-icon",cropDetails:b})}}),a.exports=c},function(a,b){var c=wp.Backbone.View.extend({constructor:function(a){a&&a.controller&&(this.controller=a.controller),wp.Backbone.View.apply(this,arguments)},dispose:function(){return this.undelegateEvents(),this.model&&this.model.off&&this.model.off(null,null,this),this.collection&&this.collection.off&&this.collection.off(null,null,this),this.controller&&this.controller.off&&this.controller.off(null,null,this),this},remove:function(){return this.dispose(),wp.Backbone.View.prototype.remove.apply(this,arguments)}});a.exports=c},function(a,b){var c=wp.media.View.extend({initialize:function(){_.defaults(this.options,{mode:["select"]}),this._createRegions(),this._createStates(),this._createModes()},_createRegions:function(){this.regions=this.regions?this.regions.slice():[],_.each(this.regions,function(a){this[a]=new wp.media.controller.Region({view:this,id:a,selector:".media-frame-"+a})},this)},_createStates:function(){this.states=new Backbone.Collection(null,{model:wp.media.controller.State}),this.states.on("add",function(a){a.frame=this,a.trigger("ready")},this),this.options.states&&this.states.add(this.options.states)},_createModes:function(){this.activeModes=new Backbone.Collection,this.activeModes.on("add remove reset",_.bind(this.triggerModeEvents,this)),_.each(this.options.mode,function(a){this.activateMode(a)},this)},reset:function(){return this.states.invoke("trigger","reset"),this},triggerModeEvents:function(a,b,c){var d,e,f={add:"activate",remove:"deactivate"};_.each(c,function(a,b){a&&(d=b)}),_.has(f,d)&&(e=a.get("id")+":"+f[d],this.trigger(e))},activateMode:function(a){if(!this.isModeActive(a))return this.activeModes.add([{id:a}]),this.$el.addClass("mode-"+a),this},deactivateMode:function(a){return this.isModeActive(a)?(this.activeModes.remove(this.activeModes.where({id:a})),this.$el.removeClass("mode-"+a),this.trigger(a+":deactivate"),this):this},isModeActive:function(a){return Boolean(this.activeModes.where({id:a}).length)}});_.extend(c.prototype,wp.media.controller.StateMachine.prototype),a.exports=c},function(a,b){var c,d=wp.media.view.Frame,e=jQuery;c=d.extend({className:"media-frame",template:wp.template("media-frame"),regions:["menu","title","content","toolbar","router"],events:{"click div.media-frame-title h1":"toggleMenu"},initialize:function(){d.prototype.initialize.apply(this,arguments),_.defaults(this.options,{title:"",modal:!0,uploader:!0}),this.$el.addClass("wp-core-ui"),this.options.modal&&(this.modal=new wp.media.view.Modal({controller:this,title:this.options.title}),this.modal.content(this)),!wp.Uploader.limitExceeded&&wp.Uploader.browser.supported||(this.options.uploader=!1),this.options.uploader&&(this.uploader=new wp.media.view.UploaderWindow({controller:this,uploader:{dropzone:this.modal?this.modal.$el:this.$el,container:this.$el}}),this.views.set(".media-frame-uploader",this.uploader)),this.on("attach",_.bind(this.views.ready,this.views),this),this.on("title:create:default",this.createTitle,this),this.title.mode("default"),this.on("title:render",function(a){a.$el.append('<span class="dashicons dashicons-arrow-down"></span>')}),this.on("menu:create:default",this.createMenu,this)},render:function(){return!this.state()&&this.options.state&&this.setState(this.options.state),d.prototype.render.apply(this,arguments)},createTitle:function(a){a.view=new wp.media.View({controller:this,tagName:"h1"})},createMenu:function(a){a.view=new wp.media.view.Menu({controller:this})},toggleMenu:function(){this.$el.find(".media-menu").toggleClass("visible")},createToolbar:function(a){a.view=new wp.media.view.Toolbar({controller:this})},createRouter:function(a){a.view=new wp.media.view.Router({controller:this})},createIframeStates:function(a){var b,c=wp.media.view.settings,d=c.tabs,f=c.tabUrl;d&&f&&(b=e("#post_ID"),b.length&&(f+="&post_id="+b.val()),_.each(d,function(b,c){this.state("iframe:"+c).set(_.defaults({tab:c,src:f+"&tab="+c,title:b,content:"iframe",menu:"default"},a))},this),this.on("content:create:iframe",this.iframeContent,this),this.on("content:deactivate:iframe",this.iframeContentCleanup,this),this.on("menu:render:default",this.iframeMenu,this),this.on("open",this.hijackThickbox,this),this.on("close",this.restoreThickbox,this))},iframeContent:function(a){this.$el.addClass("hide-toolbar"),a.view=new wp.media.view.Iframe({controller:this})},iframeContentCleanup:function(){this.$el.removeClass("hide-toolbar")},iframeMenu:function(a){var b={};a&&(_.each(wp.media.view.settings.tabs,function(a,c){b["iframe:"+c]={text:this.state("iframe:"+c).get("title"),priority:200}},this),a.set(b))},hijackThickbox:function(){var a=this;window.tb_remove&&!this._tb_remove&&(this._tb_remove=window.tb_remove,window.tb_remove=function(){a.close(),a.reset(),a.setState(a.options.state),a._tb_remove.call(window)})},restoreThickbox:function(){this._tb_remove&&(window.tb_remove=this._tb_remove,delete this._tb_remove)}}),_.each(["open","close","attach","detach","escape"],function(a){c.prototype[a]=function(){return this.modal&&this.modal[a].apply(this.modal,arguments),this}}),a.exports=c},function(a,b){var c,d=wp.media.view.MediaFrame,e=wp.media.view.l10n;c=d.extend({initialize:function(){d.prototype.initialize.apply(this,arguments),_.defaults(this.options,{selection:[],library:{},multiple:!1,state:"library"}),this.createSelection(),this.createStates(),this.bindHandlers()},createSelection:function(){var a=this.options.selection;a instanceof wp.media.model.Selection||(this.options.selection=new wp.media.model.Selection(a,{multiple:this.options.multiple})),this._selection={attachments:new wp.media.model.Attachments,difference:[]}},createStates:function(){var a=this.options;this.options.states||this.states.add([new wp.media.controller.Library({library:wp.media.query(a.library),multiple:a.multiple,title:a.title,priority:20})])},bindHandlers:function(){this.on("router:create:browse",this.createRouter,this),this.on("router:render:browse",this.browseRouter,this),this.on("content:create:browse",this.browseContent,this),this.on("content:render:upload",this.uploadContent,this),this.on("toolbar:create:select",this.createSelectToolbar,this)},browseRouter:function(a){a.set({upload:{text:e.uploadFilesTitle,priority:20},browse:{text:e.mediaLibraryTitle,priority:40}})},browseContent:function(a){var b=this.state();this.$el.removeClass("hide-toolbar"),a.view=new wp.media.view.AttachmentsBrowser({controller:this,collection:b.get("library"),selection:b.get("selection"),model:b,sortable:b.get("sortable"),search:b.get("searchable"),filters:b.get("filterable"),date:b.get("date"),display:b.has("display")?b.get("display"):b.get("displaySettings"),dragInfo:b.get("dragInfo"),idealColumnWidth:b.get("idealColumnWidth"),suggestedWidth:b.get("suggestedWidth"),suggestedHeight:b.get("suggestedHeight"),AttachmentView:b.get("AttachmentView")})},uploadContent:function(){this.$el.removeClass("hide-toolbar"),this.content.set(new wp.media.view.UploaderInline({controller:this}))},createSelectToolbar:function(a,b){b=b||this.options.button||{},b.controller=this,a.view=new wp.media.view.Toolbar.Select(b)}}),a.exports=c},function(a,b){var c,d=wp.media.view.MediaFrame.Select,e=wp.media.controller.Library,f=wp.media.view.l10n;c=d.extend({initialize:function(){this.counts={audio:{count:wp.media.view.settings.attachmentCounts.audio,state:"playlist"},video:{count:wp.media.view.settings.attachmentCounts.video,state:"video-playlist"}},_.defaults(this.options,{multiple:!0,editing:!1,state:"insert",metadata:{}}),d.prototype.initialize.apply(this,arguments),this.createIframeStates()},createStates:function(){var a=this.options;this.states.add([new e({id:"insert",title:f.insertMediaTitle,priority:20,toolbar:"main-insert",filterable:"all",library:wp.media.query(a.library),multiple:!!a.multiple&&"reset",editable:!0,allowLocalEdits:!0,displaySettings:!0,displayUserSettings:!0}),new e({id:"gallery",title:f.createGalleryTitle,priority:40,toolbar:"main-gallery",filterable:"uploaded",multiple:"add",editable:!1,library:wp.media.query(_.defaults({type:"image"},a.library))}),new wp.media.controller.Embed({metadata:a.metadata}),new wp.media.controller.EditImage({model:a.editImage}),new wp.media.controller.GalleryEdit({library:a.selection,editing:a.editing,menu:"gallery"}),new wp.media.controller.GalleryAdd,new e({id:"playlist",title:f.createPlaylistTitle,priority:60,toolbar:"main-playlist",filterable:"uploaded",multiple:"add",editable:!1,library:wp.media.query(_.defaults({type:"audio"},a.library))}),new wp.media.controller.CollectionEdit({type:"audio",collectionType:"playlist",title:f.editPlaylistTitle,SettingsView:wp.media.view.Settings.Playlist,library:a.selection,editing:a.editing,menu:"playlist",dragInfoText:f.playlistDragInfo,dragInfo:!1}),new wp.media.controller.CollectionAdd({type:"audio",collectionType:"playlist",title:f.addToPlaylistTitle}),new e({id:"video-playlist",title:f.createVideoPlaylistTitle,priority:60,toolbar:"main-video-playlist",filterable:"uploaded",multiple:"add",editable:!1,library:wp.media.query(_.defaults({ +type:"video"},a.library))}),new wp.media.controller.CollectionEdit({type:"video",collectionType:"playlist",title:f.editVideoPlaylistTitle,SettingsView:wp.media.view.Settings.Playlist,library:a.selection,editing:a.editing,menu:"video-playlist",dragInfoText:f.videoPlaylistDragInfo,dragInfo:!1}),new wp.media.controller.CollectionAdd({type:"video",collectionType:"playlist",title:f.addToVideoPlaylistTitle})]),wp.media.view.settings.post.featuredImageId&&this.states.add(new wp.media.controller.FeaturedImage)},bindHandlers:function(){var a,b;d.prototype.bindHandlers.apply(this,arguments),this.on("activate",this.activate,this),b=_.find(this.counts,function(a){return 0===a.count}),"undefined"!=typeof b&&this.listenTo(wp.media.model.Attachments.all,"change:type",this.mediaTypeCounts),this.on("menu:create:gallery",this.createMenu,this),this.on("menu:create:playlist",this.createMenu,this),this.on("menu:create:video-playlist",this.createMenu,this),this.on("toolbar:create:main-insert",this.createToolbar,this),this.on("toolbar:create:main-gallery",this.createToolbar,this),this.on("toolbar:create:main-playlist",this.createToolbar,this),this.on("toolbar:create:main-video-playlist",this.createToolbar,this),this.on("toolbar:create:featured-image",this.featuredImageToolbar,this),this.on("toolbar:create:main-embed",this.mainEmbedToolbar,this),a={menu:{"default":"mainMenu",gallery:"galleryMenu",playlist:"playlistMenu","video-playlist":"videoPlaylistMenu"},content:{embed:"embedContent","edit-image":"editImageContent","edit-selection":"editSelectionContent"},toolbar:{"main-insert":"mainInsertToolbar","main-gallery":"mainGalleryToolbar","gallery-edit":"galleryEditToolbar","gallery-add":"galleryAddToolbar","main-playlist":"mainPlaylistToolbar","playlist-edit":"playlistEditToolbar","playlist-add":"playlistAddToolbar","main-video-playlist":"mainVideoPlaylistToolbar","video-playlist-edit":"videoPlaylistEditToolbar","video-playlist-add":"videoPlaylistAddToolbar"}},_.each(a,function(a,b){_.each(a,function(a,c){this.on(b+":render:"+c,this[a],this)},this)},this)},activate:function(){_.each(this.counts,function(a){a.count<1&&this.menuItemVisibility(a.state,"hide")},this)},mediaTypeCounts:function(a,b){"undefined"!=typeof this.counts[b]&&this.counts[b].count<1&&(this.counts[b].count++,this.menuItemVisibility(this.counts[b].state,"show"))},mainMenu:function(a){a.set({"library-separator":new wp.media.View({className:"separator",priority:100})})},menuItemVisibility:function(a,b){var c=this.menu.get();"hide"===b?c.hide(a):"show"===b&&c.show(a)},galleryMenu:function(a){var b=this.lastState(),c=b&&b.id,d=this;a.set({cancel:{text:f.cancelGalleryTitle,priority:20,click:function(){c?d.setState(c):d.close(),this.controller.modal.focusManager.focus()}},separateCancel:new wp.media.View({className:"separator",priority:40})})},playlistMenu:function(a){var b=this.lastState(),c=b&&b.id,d=this;a.set({cancel:{text:f.cancelPlaylistTitle,priority:20,click:function(){c?d.setState(c):d.close()}},separateCancel:new wp.media.View({className:"separator",priority:40})})},videoPlaylistMenu:function(a){var b=this.lastState(),c=b&&b.id,d=this;a.set({cancel:{text:f.cancelVideoPlaylistTitle,priority:20,click:function(){c?d.setState(c):d.close()}},separateCancel:new wp.media.View({className:"separator",priority:40})})},embedContent:function(){var a=new wp.media.view.Embed({controller:this,model:this.state()}).render();this.content.set(a),wp.media.isTouchDevice||a.url.focus()},editSelectionContent:function(){var a,b=this.state(),c=b.get("selection");a=new wp.media.view.AttachmentsBrowser({controller:this,collection:c,selection:c,model:b,sortable:!0,search:!1,date:!1,dragInfo:!0,AttachmentView:wp.media.view.Attachments.EditSelection}).render(),a.toolbar.set("backToLibrary",{text:f.returnToLibrary,priority:-100,click:function(){this.controller.content.mode("browse")}}),this.content.set(a),this.trigger("edit:selection",this)},editImageContent:function(){var a=this.state().get("image"),b=new wp.media.view.EditImage({model:a,controller:this}).render();this.content.set(b),b.loadEditor()},selectionStatusToolbar:function(a){var b=this.state().get("editable");a.set("selection",new wp.media.view.Selection({controller:this,collection:this.state().get("selection"),priority:-40,editable:b&&function(){this.controller.content.mode("edit-selection")}}).render())},mainInsertToolbar:function(a){var b=this;this.selectionStatusToolbar(a),a.set("insert",{style:"primary",priority:80,text:f.insertIntoPost,requires:{selection:!0},click:function(){var a=b.state(),c=a.get("selection");b.close(),a.trigger("insert",c).reset()}})},mainGalleryToolbar:function(a){var b=this;this.selectionStatusToolbar(a),a.set("gallery",{style:"primary",text:f.createNewGallery,priority:60,requires:{selection:!0},click:function(){var a=b.state().get("selection"),c=b.state("gallery-edit"),d=a.where({type:"image"});c.set("library",new wp.media.model.Selection(d,{props:a.props.toJSON(),multiple:!0})),this.controller.setState("gallery-edit"),this.controller.modal.focusManager.focus()}})},mainPlaylistToolbar:function(a){var b=this;this.selectionStatusToolbar(a),a.set("playlist",{style:"primary",text:f.createNewPlaylist,priority:100,requires:{selection:!0},click:function(){var a=b.state().get("selection"),c=b.state("playlist-edit"),d=a.where({type:"audio"});c.set("library",new wp.media.model.Selection(d,{props:a.props.toJSON(),multiple:!0})),this.controller.setState("playlist-edit"),this.controller.modal.focusManager.focus()}})},mainVideoPlaylistToolbar:function(a){var b=this;this.selectionStatusToolbar(a),a.set("video-playlist",{style:"primary",text:f.createNewVideoPlaylist,priority:100,requires:{selection:!0},click:function(){var a=b.state().get("selection"),c=b.state("video-playlist-edit"),d=a.where({type:"video"});c.set("library",new wp.media.model.Selection(d,{props:a.props.toJSON(),multiple:!0})),this.controller.setState("video-playlist-edit"),this.controller.modal.focusManager.focus()}})},featuredImageToolbar:function(a){this.createSelectToolbar(a,{text:f.setFeaturedImage,state:this.options.state})},mainEmbedToolbar:function(a){a.view=new wp.media.view.Toolbar.Embed({controller:this})},galleryEditToolbar:function(){var a=this.state().get("editing");this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{insert:{style:"primary",text:a?f.updateGallery:f.insertGallery,priority:80,requires:{library:!0},click:function(){var a=this.controller,b=a.state();a.close(),b.trigger("update",b.get("library")),a.setState(a.options.state),a.reset()}}}}))},galleryAddToolbar:function(){this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{insert:{style:"primary",text:f.addToGallery,priority:80,requires:{selection:!0},click:function(){var a=this.controller,b=a.state(),c=a.state("gallery-edit");c.get("library").add(b.get("selection").models),b.trigger("reset"),a.setState("gallery-edit")}}}}))},playlistEditToolbar:function(){var a=this.state().get("editing");this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{insert:{style:"primary",text:a?f.updatePlaylist:f.insertPlaylist,priority:80,requires:{library:!0},click:function(){var a=this.controller,b=a.state();a.close(),b.trigger("update",b.get("library")),a.setState(a.options.state),a.reset()}}}}))},playlistAddToolbar:function(){this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{insert:{style:"primary",text:f.addToPlaylist,priority:80,requires:{selection:!0},click:function(){var a=this.controller,b=a.state(),c=a.state("playlist-edit");c.get("library").add(b.get("selection").models),b.trigger("reset"),a.setState("playlist-edit")}}}}))},videoPlaylistEditToolbar:function(){var a=this.state().get("editing");this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{insert:{style:"primary",text:a?f.updateVideoPlaylist:f.insertVideoPlaylist,priority:140,requires:{library:!0},click:function(){var a=this.controller,b=a.state(),c=b.get("library");c.type="video",a.close(),b.trigger("update",c),a.setState(a.options.state),a.reset()}}}}))},videoPlaylistAddToolbar:function(){this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{insert:{style:"primary",text:f.addToVideoPlaylist,priority:140,requires:{selection:!0},click:function(){var a=this.controller,b=a.state(),c=a.state("video-playlist-edit");c.get("library").add(b.get("selection").models),b.trigger("reset"),a.setState("video-playlist-edit")}}}}))}}),a.exports=c},function(a,b){var c,d=wp.media.view.MediaFrame.Select,e=wp.media.view.l10n;c=d.extend({defaults:{id:"image",url:"",menu:"image-details",content:"image-details",toolbar:"image-details",type:"link",title:e.imageDetailsTitle,priority:120},initialize:function(a){this.image=new wp.media.model.PostImage(a.metadata),this.options.selection=new wp.media.model.Selection(this.image.attachment,{multiple:!1}),d.prototype.initialize.apply(this,arguments)},bindHandlers:function(){d.prototype.bindHandlers.apply(this,arguments),this.on("menu:create:image-details",this.createMenu,this),this.on("content:create:image-details",this.imageDetailsContent,this),this.on("content:render:edit-image",this.editImageContent,this),this.on("toolbar:render:image-details",this.renderImageDetailsToolbar,this),this.on("toolbar:render:replace",this.renderReplaceImageToolbar,this)},createStates:function(){this.states.add([new wp.media.controller.ImageDetails({image:this.image,editable:!1}),new wp.media.controller.ReplaceImage({id:"replace-image",library:wp.media.query({type:"image"}),image:this.image,multiple:!1,title:e.imageReplaceTitle,toolbar:"replace",priority:80,displaySettings:!0}),new wp.media.controller.EditImage({image:this.image,selection:this.options.selection})])},imageDetailsContent:function(a){a.view=new wp.media.view.ImageDetails({controller:this,model:this.state().image,attachment:this.state().image.attachment})},editImageContent:function(){var a,b=this.state(),c=b.get("image");c&&(a=new wp.media.view.EditImage({model:c,controller:this}).render(),this.content.set(a),a.loadEditor())},renderImageDetailsToolbar:function(){this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{select:{style:"primary",text:e.update,priority:80,click:function(){var a=this.controller,b=a.state();a.close(),b.trigger("update",a.image.toJSON()),a.setState(a.options.state),a.reset()}}}}))},renderReplaceImageToolbar:function(){var a=this,b=a.lastState(),c=b&&b.id;this.toolbar.set(new wp.media.view.Toolbar({controller:this,items:{back:{text:e.back,priority:20,click:function(){c?a.setState(c):a.close()}},replace:{style:"primary",text:e.replace,priority:80,requires:{selection:!0},click:function(){var a=this.controller,b=a.state(),c=b.get("selection"),d=c.single();a.close(),a.image.changeAttachment(d,b.display(d)),b.trigger("replace",a.image.toJSON()),a.setState(a.options.state),a.reset()}}}}))}}),a.exports=c},function(a,b){var c,d=jQuery;c=wp.media.View.extend({tagName:"div",template:wp.template("media-modal"),events:{"click .media-modal-backdrop, .media-modal-close":"escapeHandler",keydown:"keydown"},clickedOpenerEl:null,initialize:function(){_.defaults(this.options,{container:document.body,title:"",propagate:!0}),this.focusManager=new wp.media.view.FocusManager({el:this.el})},prepare:function(){return{title:this.options.title}},attach:function(){return this.views.attached?this:(this.views.rendered||this.render(),this.$el.appendTo(this.options.container),this.views.attached=!0,this.views.ready(),this.propagate("attach"))},detach:function(){return this.$el.is(":visible")&&this.close(),this.$el.detach(),this.views.attached=!1,this.propagate("detach")},open:function(){var a,b=this.$el;return b.is(":visible")?this:(this.clickedOpenerEl=document.activeElement,this.views.attached||this.attach(),d("body").addClass("modal-open"),b.show(),"ontouchend"in document&&(a=window.tinymce&&window.tinymce.activeEditor)&&!a.isHidden()&&a.iframeElement&&(a.iframeElement.focus(),a.iframeElement.blur(),setTimeout(function(){a.iframeElement.blur()},100)),this.$(".media-modal").focus(),this.propagate("open"))},close:function(a){return this.views.attached&&this.$el.is(":visible")?(d("body").removeClass("modal-open"),this.$el.hide().undelegate("keydown"),null!==this.clickedOpenerEl?this.clickedOpenerEl.focus():d("#wpbody-content").focus(),this.propagate("close"),a&&a.escape&&this.propagate("escape"),this):this},escape:function(){return this.close({escape:!0})},escapeHandler:function(a){a.preventDefault(),this.escape()},content:function(a){return this.views.set(".media-modal-content",a),this},propagate:function(a){return this.trigger(a),this.options.propagate&&this.controller.trigger(a),this},keydown:function(a){27===a.which&&this.$el.is(":visible")&&(this.escape(),a.stopImmediatePropagation())}}),a.exports=c},function(a,b){var c=wp.media.View.extend({events:{keydown:"constrainTabbing"},focus:function(){this.$(".media-menu-item").first().focus()},constrainTabbing:function(a){var b;if(9===a.keyCode)return b=this.$(":tabbable").not('.moxie-shim input[type="file"]'),b.last()[0]!==a.target||a.shiftKey?b.first()[0]===a.target&&a.shiftKey?(b.last().focus(),!1):void 0:(b.first().focus(),!1)}});a.exports=c},function(a,b){var c,d=jQuery;c=wp.media.View.extend({tagName:"div",className:"uploader-window",template:wp.template("uploader-window"),initialize:function(){var a;this.$browser=d('<button type="button" class="browser" />').hide().appendTo("body"),a=this.options.uploader=_.defaults(this.options.uploader||{},{dropzone:this.$el,browser:this.$browser,params:{}}),!a.dropzone||a.dropzone instanceof d||(a.dropzone=d(a.dropzone)),this.controller.on("activate",this.refresh,this),this.controller.on("detach",function(){this.$browser.remove()},this)},refresh:function(){this.uploader&&this.uploader.refresh()},ready:function(){var a,b=wp.media.view.settings.post.id;this.uploader||(b&&(this.options.uploader.params.post_id=b),this.uploader=new wp.Uploader(this.options.uploader),a=this.uploader.dropzone,a.on("dropzone:enter",_.bind(this.show,this)),a.on("dropzone:leave",_.bind(this.hide,this)),d(this.uploader).on("uploader:ready",_.bind(this._ready,this)))},_ready:function(){this.controller.trigger("uploader:ready")},show:function(){var a=this.$el.show();_.defer(function(){a.css({opacity:1})})},hide:function(){var a=this.$el.css({opacity:0});wp.media.transition(a).done(function(){"0"===a.css("opacity")&&a.hide()}),_.delay(function(){"0"===a.css("opacity")&&a.is(":visible")&&a.hide()},500)}}),a.exports=c},function(a,b){var c,d=wp.media.View,e=wp.media.view.l10n,f=jQuery;c=d.extend({tagName:"div",className:"uploader-editor",template:wp.template("uploader-editor"),localDrag:!1,overContainer:!1,overDropzone:!1,draggingFile:null,initialize:function(){return this.initialized=!1,window.tinyMCEPreInit&&window.tinyMCEPreInit.dragDropUpload&&this.browserSupport()?(this.$document=f(document),this.dropzones=[],this.files=[],this.$document.on("drop",".uploader-editor",_.bind(this.drop,this)),this.$document.on("dragover",".uploader-editor",_.bind(this.dropzoneDragover,this)),this.$document.on("dragleave",".uploader-editor",_.bind(this.dropzoneDragleave,this)),this.$document.on("click",".uploader-editor",_.bind(this.click,this)),this.$document.on("dragover",_.bind(this.containerDragover,this)),this.$document.on("dragleave",_.bind(this.containerDragleave,this)),this.$document.on("dragstart dragend drop",_.bind(function(a){this.localDrag="dragstart"===a.type,"drop"===a.type&&this.containerDragleave()},this)),this.initialized=!0,this):this},browserSupport:function(){var a=!1,b=document.createElement("div");return a="draggable"in b||"ondragstart"in b&&"ondrop"in b,a=a&&!!(window.File&&window.FileList&&window.FileReader)},isDraggingFile:function(a){return null!==this.draggingFile?this.draggingFile:!_.isUndefined(a.originalEvent)&&!_.isUndefined(a.originalEvent.dataTransfer)&&(this.draggingFile=_.indexOf(a.originalEvent.dataTransfer.types,"Files")>-1&&_.indexOf(a.originalEvent.dataTransfer.types,"text/plain")===-1,this.draggingFile)},refresh:function(a){var b;for(b in this.dropzones)this.dropzones[b].toggle(this.overContainer||this.overDropzone);return _.isUndefined(a)||f(a.target).closest(".uploader-editor").toggleClass("droppable",this.overDropzone),this.overContainer||this.overDropzone||(this.draggingFile=null),this},render:function(){return this.initialized?(d.prototype.render.apply(this,arguments),f(".wp-editor-wrap").each(_.bind(this.attach,this)),this):this},attach:function(a,b){var c=this.$el.clone();return this.dropzones.push(c),f(b).append(c),this},drop:function(a){var b,c;if(this.containerDragleave(a),this.dropzoneDragleave(a),this.files=a.originalEvent.dataTransfer.files,!(this.files.length<1))return b=f(a.target).parents(".wp-editor-wrap"),b.length>0&&b[0].id&&(window.wpActiveEditor=b[0].id.slice(3,-5)),this.workflow?(this.workflow.state().reset(),this.addFiles.apply(this),this.workflow.open()):(this.workflow=wp.media.editor.open(window.wpActiveEditor,{frame:"post",state:"insert",title:e.addMedia,multiple:!0}),c=this.workflow.uploader,c.uploader&&c.uploader.ready?this.addFiles.apply(this):this.workflow.on("uploader:ready",this.addFiles,this)),!1},addFiles:function(){return this.files.length&&(this.workflow.uploader.uploader.uploader.addFile(_.toArray(this.files)),this.files=[]),this},containerDragover:function(a){!this.localDrag&&this.isDraggingFile(a)&&(this.overContainer=!0,this.refresh())},containerDragleave:function(){this.overContainer=!1,_.delay(_.bind(this.refresh,this),50)},dropzoneDragover:function(a){if(!this.localDrag&&this.isDraggingFile(a))return this.overDropzone=!0,this.refresh(a),!1},dropzoneDragleave:function(a){this.overDropzone=!1,_.delay(_.bind(this.refresh,this,a),50)},click:function(a){this.containerDragleave(a),this.dropzoneDragleave(a),this.localDrag=!1}}),a.exports=c},function(a,b){var c,d=wp.media.View;c=d.extend({tagName:"div",className:"uploader-inline",template:wp.template("uploader-inline"),events:{"click .close":"hide"},initialize:function(){_.defaults(this.options,{message:"",status:!0,canClose:!1}),!this.options.$browser&&this.controller.uploader&&(this.options.$browser=this.controller.uploader.$browser),_.isUndefined(this.options.postId)&&(this.options.postId=wp.media.view.settings.post.id),this.options.status&&this.views.set(".upload-inline-status",new wp.media.view.UploaderStatus({controller:this.controller}))},prepare:function(){var a=this.controller.state().get("suggestedWidth"),b=this.controller.state().get("suggestedHeight"),c={};return c.message=this.options.message,c.canClose=this.options.canClose,a&&b&&(c.suggestedWidth=a,c.suggestedHeight=b),c},dispose:function(){return this.disposing?d.prototype.dispose.apply(this,arguments):(this.disposing=!0,this.remove())},remove:function(){var a=d.prototype.remove.apply(this,arguments);return _.defer(_.bind(this.refresh,this)),a},refresh:function(){var a=this.controller.uploader;a&&a.refresh()},ready:function(){var a,b=this.options.$browser;if(this.controller.uploader){if(a=this.$(".browser"),a[0]===b[0])return;b.detach().text(a.text()),b[0].className=a[0].className,a.replaceWith(b.show())}return this.refresh(),this},show:function(){this.$el.removeClass("hidden"),this.controller.$uploaderToggler&&this.controller.$uploaderToggler.length&&this.controller.$uploaderToggler.attr("aria-expanded","true")},hide:function(){this.$el.addClass("hidden"),this.controller.$uploaderToggler&&this.controller.$uploaderToggler.length&&this.controller.$uploaderToggler.attr("aria-expanded","false").focus()}}),a.exports=c},function(a,b){var c,d=wp.media.View;c=d.extend({className:"media-uploader-status",template:wp.template("uploader-status"),events:{"click .upload-dismiss-errors":"dismiss"},initialize:function(){this.queue=wp.Uploader.queue,this.queue.on("add remove reset",this.visibility,this),this.queue.on("add remove reset change:percent",this.progress,this),this.queue.on("add remove reset change:uploading",this.info,this),this.errors=wp.Uploader.errors,this.errors.reset(),this.errors.on("add remove reset",this.visibility,this),this.errors.on("add",this.error,this)},dispose:function(){return wp.Uploader.queue.off(null,null,this),d.prototype.dispose.apply(this,arguments),this},visibility:function(){this.$el.toggleClass("uploading",!!this.queue.length),this.$el.toggleClass("errors",!!this.errors.length),this.$el.toggle(!!this.queue.length||!!this.errors.length)},ready:function(){_.each({$bar:".media-progress-bar div",$index:".upload-index",$total:".upload-total",$filename:".upload-filename"},function(a,b){this[b]=this.$(a)},this),this.visibility(),this.progress(),this.info()},progress:function(){var a=this.queue,b=this.$bar;b&&a.length&&b.width(a.reduce(function(a,b){if(!b.get("uploading"))return a+100;var c=b.get("percent");return a+(_.isNumber(c)?c:100)},0)/a.length+"%")},info:function(){var a,b=this.queue,c=0;b.length&&(a=this.queue.find(function(a,b){return c=b,a.get("uploading")}),this.$index.text(c+1),this.$total.text(b.length),this.$filename.html(a?this.filename(a.get("filename")):""))},filename:function(a){return _.escape(a)},error:function(a){this.views.add(".upload-errors",new wp.media.view.UploaderStatusError({filename:this.filename(a.get("file").name),message:a.get("message")}),{at:0})},dismiss:function(a){var b=this.views.get(".upload-errors");a.preventDefault(),b&&_.invoke(b,"remove"),wp.Uploader.errors.reset()}}),a.exports=c},function(a,b){var c=wp.media.View.extend({className:"upload-error",template:wp.template("uploader-status-error")});a.exports=c},function(a,b){var c,d=wp.media.View;c=d.extend({tagName:"div",className:"media-toolbar",initialize:function(){var a=this.controller.state(),b=this.selection=a.get("selection"),c=this.library=a.get("library");this._views={},this.primary=new wp.media.view.PriorityList,this.secondary=new wp.media.view.PriorityList,this.primary.$el.addClass("media-toolbar-primary search-form"),this.secondary.$el.addClass("media-toolbar-secondary"),this.views.set([this.secondary,this.primary]),this.options.items&&this.set(this.options.items,{silent:!0}),this.options.silent||this.render(),b&&b.on("add remove reset",this.refresh,this),c&&c.on("add remove reset",this.refresh,this)},dispose:function(){return this.selection&&this.selection.off(null,null,this),this.library&&this.library.off(null,null,this),d.prototype.dispose.apply(this,arguments)},ready:function(){this.refresh()},set:function(a,b,c){var d;return c=c||{},_.isObject(a)?_.each(a,function(a,b){this.set(b,a,{silent:!0})},this):(b instanceof Backbone.View||(b.classes=["media-button-"+a].concat(b.classes||[]),b=new wp.media.view.Button(b).render()),b.controller=b.controller||this.controller,this._views[a]=b,d=b.options.priority<0?"secondary":"primary",this[d].set(a,b,c)),c.silent||this.refresh(),this},get:function(a){return this._views[a]},unset:function(a,b){return delete this._views[a],this.primary.unset(a,b),this.secondary.unset(a,b),b&&b.silent||this.refresh(),this},refresh:function(){var a=this.controller.state(),b=a.get("library"),c=a.get("selection");_.each(this._views,function(a){if(a.model&&a.options&&a.options.requires){var d=a.options.requires,e=!1;c&&c.models&&(e=_.some(c.models,function(a){return a.get("uploading")===!0})),d.selection&&c&&!c.length?e=!0:d.library&&b&&!b.length&&(e=!0),a.model.set("disabled",e)}})}}),a.exports=c},function(a,b){var c,d=wp.media.view.Toolbar,e=wp.media.view.l10n;c=d.extend({initialize:function(){var a=this.options;_.bindAll(this,"clickSelect"),_.defaults(a,{event:"select",state:!1,reset:!0,close:!0,text:e.select,requires:{selection:!0}}),a.items=_.defaults(a.items||{},{select:{style:"primary",text:a.text,priority:80,click:this.clickSelect,requires:a.requires}}),d.prototype.initialize.apply(this,arguments)},clickSelect:function(){var a=this.options,b=this.controller;a.close&&b.close(),a.event&&b.state().trigger(a.event),a.state&&b.setState(a.state),a.reset&&b.reset()}}),a.exports=c},function(a,b){var c,d=wp.media.view.Toolbar.Select,e=wp.media.view.l10n;c=d.extend({initialize:function(){_.defaults(this.options,{text:e.insertIntoPost,requires:!1}),d.prototype.initialize.apply(this,arguments)},refresh:function(){var a=this.controller.state().props.get("url");this.get("select").model.set("disabled",!a||"http://"===a),d.prototype.refresh.apply(this,arguments)}}),a.exports=c},function(a,b){var c=wp.media.View.extend({tagName:"button",className:"media-button",attributes:{type:"button"},events:{click:"click"},defaults:{text:"",style:"",size:"large",disabled:!1},initialize:function(){this.model=new Backbone.Model(this.defaults),_.each(this.defaults,function(a,b){var c=this.options[b];_.isUndefined(c)||(this.model.set(b,c),delete this.options[b])},this),this.listenTo(this.model,"change",this.render)},render:function(){var a=["button",this.className],b=this.model.toJSON();return b.style&&a.push("button-"+b.style),b.size&&a.push("button-"+b.size),a=_.uniq(a.concat(this.options.classes)),this.el.className=a.join(" "),this.$el.attr("disabled",b.disabled),this.$el.text(this.model.get("text")),this},click:function(a){"#"===this.attributes.href&&a.preventDefault(),this.options.click&&!this.model.get("disabled")&&this.options.click.apply(this,arguments)}});a.exports=c},function(a,b){var c,d=Backbone.$;c=wp.media.View.extend({tagName:"div",className:"button-group button-large media-button-group",initialize:function(){this.buttons=_.map(this.options.buttons||[],function(a){return a instanceof Backbone.View?a:new wp.media.view.Button(a).render()}),delete this.options.buttons,this.options.classes&&this.$el.addClass(this.options.classes)},render:function(){return this.$el.html(d(_.pluck(this.buttons,"el")).detach()),this}}),a.exports=c},function(a,b){var c=wp.media.View.extend({tagName:"div",initialize:function(){this._views={},this.set(_.extend({},this._views,this.options.views),{silent:!0}),delete this.options.views,this.options.silent||this.render()},set:function(a,b,c){var d,e,f;return c=c||{},_.isObject(a)?(_.each(a,function(a,b){this.set(b,a)},this),this):(b instanceof Backbone.View||(b=this.toView(b,a,c)),b.controller=b.controller||this.controller,this.unset(a),d=b.options.priority||10,e=this.views.get()||[],_.find(e,function(a,b){if(a.options.priority>d)return f=b,!0}),this._views[a]=b,this.views.add(b,{at:_.isNumber(f)?f:e.length||0}),this)},get:function(a){return this._views[a]},unset:function(a){var b=this.get(a);return b&&b.remove(),delete this._views[a],this},toView:function(a){return new wp.media.View(a)}});a.exports=c},function(a,b){var c,d=jQuery;c=wp.media.View.extend({tagName:"a",className:"media-menu-item",attributes:{href:"#"},events:{click:"_click"},_click:function(a){var b=this.options.click;a&&a.preventDefault(),b?b.call(this):this.click(),wp.media.isTouchDevice||d(".media-frame-content input").first().focus()},click:function(){var a=this.options.state;a&&(this.controller.setState(a),this.views.parent.$el.removeClass("visible"))},render:function(){var a=this.options;return a.text?this.$el.text(a.text):a.html&&this.$el.html(a.html),this}}),a.exports=c},function(a,b){var c,d=wp.media.view.MenuItem,e=wp.media.view.PriorityList;c=e.extend({tagName:"div",className:"media-menu",property:"state",ItemView:d,region:"menu",toView:function(a,b){return a=a||{},a[this.property]=a[this.property]||b,new this.ItemView(a).render()},ready:function(){e.prototype.ready.apply(this,arguments),this.visibility()},set:function(){e.prototype.set.apply(this,arguments),this.visibility()},unset:function(){e.prototype.unset.apply(this,arguments),this.visibility()},visibility:function(){var a=this.region,b=this.controller[a].get(),c=this.views.get(),d=!c||c.length<2;this===b&&this.controller.$el.toggleClass("hide-"+a,d)},select:function(a){var b=this.get(a);b&&(this.deselect(),b.$el.addClass("active"))},deselect:function(){this.$el.children().removeClass("active")},hide:function(a){var b=this.get(a);b&&b.$el.addClass("hidden")},show:function(a){var b=this.get(a);b&&b.$el.removeClass("hidden")}}),a.exports=c},function(a,b){var c=wp.media.view.MenuItem.extend({click:function(){var a=this.options.contentMode;a&&this.controller.content.mode(a)}});a.exports=c},function(a,b){var c,d=wp.media.view.Menu;c=d.extend({tagName:"div",className:"media-router",property:"contentMode",ItemView:wp.media.view.RouterItem,region:"router",initialize:function(){this.controller.on("content:render",this.update,this),d.prototype.initialize.apply(this,arguments)},update:function(){var a=this.controller.content.mode();a&&this.select(a)}}),a.exports=c},function(a,b){var c=wp.media.view.PriorityList.extend({className:"media-sidebar"});a.exports=c},function(a,b){var c,d=wp.media.View,e=jQuery;c=d.extend({tagName:"li",className:"attachment",template:wp.template("attachment"),attributes:function(){return{tabIndex:0,role:"checkbox","aria-label":this.model.get("title"),"aria-checked":!1,"data-id":this.model.get("id")}},events:{click:"toggleSelectionHandler","change [data-setting]":"updateSetting","change [data-setting] input":"updateSetting","change [data-setting] select":"updateSetting","change [data-setting] textarea":"updateSetting","click .attachment-close":"removeFromLibrary","click .check":"checkClickHandler",keydown:"toggleSelectionHandler"},buttons:{},initialize:function(){var a=this.options.selection,b=_.defaults(this.options,{rerenderOnModelChange:!0});b.rerenderOnModelChange?this.listenTo(this.model,"change",this.render):this.listenTo(this.model,"change:percent",this.progress),this.listenTo(this.model,"change:title",this._syncTitle),this.listenTo(this.model,"change:caption",this._syncCaption),this.listenTo(this.model,"change:artist",this._syncArtist),this.listenTo(this.model,"change:album",this._syncAlbum),this.listenTo(this.model,"add",this.select),this.listenTo(this.model,"remove",this.deselect),a&&(a.on("reset",this.updateSelect,this),this.listenTo(this.model,"selection:single selection:unsingle",this.details),this.details(this.model,this.controller.state().get("selection"))),this.listenTo(this.controller,"attachment:compat:waiting attachment:compat:ready",this.updateSave)},dispose:function(){var a=this.options.selection;return this.updateAll(),a&&a.off(null,null,this),d.prototype.dispose.apply(this,arguments),this},render:function(){var a=_.defaults(this.model.toJSON(),{orientation:"landscape",uploading:!1,type:"",subtype:"",icon:"",filename:"",caption:"",title:"",dateFormatted:"",width:"",height:"",compat:!1,alt:"",description:""},this.options);return a.buttons=this.buttons,a.describe=this.controller.state().get("describe"),"image"===a.type&&(a.size=this.imageSize()),a.can={},a.nonces&&(a.can.remove=!!a.nonces["delete"],a.can.save=!!a.nonces.update),this.controller.state().get("allowLocalEdits")&&(a.allowLocalEdits=!0),a.uploading&&!a.percent&&(a.percent=0),this.views.detach(),this.$el.html(this.template(a)),this.$el.toggleClass("uploading",a.uploading),a.uploading?this.$bar=this.$(".media-progress-bar div"):delete this.$bar,this.updateSelect(),this.updateSave(),this.views.render(),this},progress:function(){this.$bar&&this.$bar.length&&this.$bar.width(this.model.get("percent")+"%")},toggleSelectionHandler:function(a){var b;if("INPUT"!==a.target.nodeName&&"BUTTON"!==a.target.nodeName){if(37===a.keyCode||38===a.keyCode||39===a.keyCode||40===a.keyCode)return void this.controller.trigger("attachment:keydown:arrow",a);if("keydown"!==a.type||13===a.keyCode||32===a.keyCode){if(a.preventDefault(),this.controller.isModeActive("grid")){if(this.controller.isModeActive("edit"))return void this.controller.trigger("edit:attachment",this.model,a.currentTarget);this.controller.isModeActive("select")&&(b="toggle")}a.shiftKey?b="between":(a.ctrlKey||a.metaKey)&&(b="toggle"),this.toggleSelection({method:b}),this.controller.trigger("selection:toggle")}}},toggleSelection:function(a){var b,c,d,e,f=this.collection,g=this.options.selection,h=this.model,i=a&&a.method;if(g){if(b=g.single(),i=_.isUndefined(i)?g.multiple:i,"between"===i&&b&&g.multiple){if(b===h)return; +return d=f.indexOf(b),e=f.indexOf(this.model),c=d<e?f.models.slice(d,e+1):f.models.slice(e,d+1),g.add(c),void g.single(h)}if("toggle"===i)return g[this.selected()?"remove":"add"](h),void g.single(h);if("add"===i)return g.add(h),void g.single(h);i||(i="add"),"add"!==i&&(i="reset"),this.selected()?g[b===h?"remove":"single"](h):(g[i](h),g.single(h))}},updateSelect:function(){this[this.selected()?"select":"deselect"]()},selected:function(){var a=this.options.selection;if(a)return!!a.get(this.model.cid)},select:function(a,b){var c=this.options.selection,d=this.controller;!c||b&&b!==c||this.$el.hasClass("selected")||(this.$el.addClass("selected").attr("aria-checked",!0),d.isModeActive("grid")&&d.isModeActive("select")||this.$(".check").attr("tabindex","0"))},deselect:function(a,b){var c=this.options.selection;!c||b&&b!==c||this.$el.removeClass("selected").attr("aria-checked",!1).find(".check").attr("tabindex","-1")},details:function(a,b){var c,d=this.options.selection;d===b&&(c=d.single(),this.$el.toggleClass("details",c===this.model))},imageSize:function(a){var b=this.model.get("sizes"),c=!1;return a=a||"medium",b&&(b[a]?c=b[a]:b.large?c=b.large:b.thumbnail?c=b.thumbnail:b.full&&(c=b.full),c)?_.clone(c):{url:this.model.get("url"),width:this.model.get("width"),height:this.model.get("height"),orientation:this.model.get("orientation")}},updateSetting:function(a){var b,c,d=e(a.target).closest("[data-setting]");d.length&&(b=d.data("setting"),c=a.target.value,this.model.get(b)!==c&&this.save(b,c))},save:function(){var a=this,b=this._save=this._save||{status:"ready"},c=this.model.save.apply(this.model,arguments),d=b.requests?e.when(c,b.requests):c;b.savedTimer&&clearTimeout(b.savedTimer),this.updateSave("waiting"),b.requests=d,d.always(function(){b.requests===d&&(a.updateSave("resolved"===d.state()?"complete":"error"),b.savedTimer=setTimeout(function(){a.updateSave("ready"),delete b.savedTimer},2e3))})},updateSave:function(a){var b=this._save=this._save||{status:"ready"};return a&&a!==b.status&&(this.$el.removeClass("save-"+b.status),b.status=a),this.$el.addClass("save-"+b.status),this},updateAll:function(){var a,b=this.$("[data-setting]"),c=this.model;a=_.chain(b).map(function(a){var b,d,f=e("input, textarea, select, [value]",a);if(f.length)return b=e(a).data("setting"),d=f.val(),c.get(b)!==d?[b,d]:void 0}).compact().object().value(),_.isEmpty(a)||c.save(a)},removeFromLibrary:function(a){"keydown"===a.type&&13!==a.keyCode&&32!==a.keyCode||(a.stopPropagation(),this.collection.remove(this.model))},checkClickHandler:function(a){var b=this.options.selection;b&&(a.stopPropagation(),b.where({id:this.model.get("id")}).length?(b.remove(this.model),this.$el.focus()):b.add(this.model))}}),_.each({caption:"_syncCaption",title:"_syncTitle",artist:"_syncArtist",album:"_syncAlbum"},function(a,b){c.prototype[a]=function(a,c){var d=this.$('[data-setting="'+b+'"]');return d.length?c===d.find("input, textarea, select, [value]").val()?this:this.render():this}}),a.exports=c},function(a,b){var c=wp.media.view.Attachment.extend({buttons:{check:!0}});a.exports=c},function(a,b){var c=wp.media.view.Attachment.extend({buttons:{close:!0}});a.exports=c},function(a,b){var c,d=wp.media.View,e=jQuery;c=d.extend({tagName:"ul",className:"attachments",attributes:{tabIndex:-1},initialize:function(){this.el.id=_.uniqueId("__attachments-view-"),_.defaults(this.options,{refreshSensitivity:wp.media.isTouchDevice?300:200,refreshThreshold:3,AttachmentView:wp.media.view.Attachment,sortable:!1,resize:!0,idealColumnWidth:e(window).width()<640?135:150}),this._viewsByCid={},this.$window=e(window),this.resizeEvent="resize.media-modal-columns",this.collection.on("add",function(a){this.views.add(this.createAttachmentView(a),{at:this.collection.indexOf(a)})},this),this.collection.on("remove",function(a){var b=this._viewsByCid[a.cid];delete this._viewsByCid[a.cid],b&&b.remove()},this),this.collection.on("reset",this.render,this),this.listenTo(this.controller,"library:selection:add",this.attachmentFocus),this.scroll=_.chain(this.scroll).bind(this).throttle(this.options.refreshSensitivity).value(),this.options.scrollElement=this.options.scrollElement||this.el,e(this.options.scrollElement).on("scroll",this.scroll),this.initSortable(),_.bindAll(this,"setColumns"),this.options.resize&&(this.on("ready",this.bindEvents),this.controller.on("open",this.setColumns),_.defer(this.setColumns,this))},bindEvents:function(){this.$window.off(this.resizeEvent).on(this.resizeEvent,_.debounce(this.setColumns,50))},attachmentFocus:function(){this.$("li:first").focus()},restoreFocus:function(){this.$("li.selected:first").focus()},arrowEvent:function(a){var b=this.$el.children("li"),c=this.columns,d=b.filter(":focus").index(),e=d+1<=c?1:Math.ceil((d+1)/c);if(d!==-1){if(37===a.keyCode){if(0===d)return;b.eq(d-1).focus()}if(38===a.keyCode){if(1===e)return;b.eq(d-c).focus()}if(39===a.keyCode){if(b.length===d)return;b.eq(d+1).focus()}if(40===a.keyCode){if(Math.ceil(b.length/c)===e)return;b.eq(d+c).focus()}}},dispose:function(){this.collection.props.off(null,null,this),this.options.resize&&this.$window.off(this.resizeEvent),d.prototype.dispose.apply(this,arguments)},setColumns:function(){var a=this.columns,b=this.$el.width();b&&(this.columns=Math.min(Math.round(b/this.options.idealColumnWidth),12)||1,a&&a===this.columns||this.$el.closest(".media-frame-content").attr("data-columns",this.columns))},initSortable:function(){var a=this.collection;this.options.sortable&&e.fn.sortable&&(this.$el.sortable(_.extend({disabled:!!a.comparator,tolerance:"pointer",start:function(a,b){b.item.data("sortableIndexStart",b.item.index())},update:function(b,c){var d=a.at(c.item.data("sortableIndexStart")),e=a.comparator;delete a.comparator,a.remove(d,{silent:!0}),a.add(d,{silent:!0,at:c.item.index()}),a.comparator=e,a.trigger("reset",a),a.saveMenuOrder()}},this.options.sortable)),a.props.on("change:orderby",function(){this.$el.sortable("option","disabled",!!a.comparator)},this),this.collection.props.on("change:orderby",this.refreshSortable,this),this.refreshSortable())},refreshSortable:function(){if(this.options.sortable&&e.fn.sortable){var a=this.collection,b=a.props.get("orderby"),c="menuOrder"===b||!a.comparator;this.$el.sortable("option","disabled",!c)}},createAttachmentView:function(a){var b=new this.options.AttachmentView({controller:this.controller,model:a,collection:this.collection,selection:this.options.selection});return this._viewsByCid[a.cid]=b},prepare:function(){this.collection.length?this.views.set(this.collection.map(this.createAttachmentView,this)):(this.views.unset(),this.collection.more().done(this.scroll))},ready:function(){this.scroll()},scroll:function(){var a,b=this,c=this.options.scrollElement,d=c.scrollTop;c===document&&(c=document.body,d=e(document).scrollTop()),e(c).is(":visible")&&this.collection.hasMore()&&(a=this.views.parent.toolbar,c.scrollHeight-(d+c.clientHeight)<c.clientHeight/3&&a.get("spinner").show(),c.scrollHeight<d+c.clientHeight*this.options.refreshThreshold&&this.collection.more().done(function(){b.scroll(),a.get("spinner").hide()}))}}),a.exports=c},function(a,b){var c,d=wp.media.view.l10n;c=wp.media.View.extend({tagName:"input",className:"search",id:"media-search-input",attributes:{type:"search",placeholder:d.searchMediaPlaceholder},events:{input:"search",keyup:"search"},render:function(){return this.el.value=this.model.escape("search"),this},search:_.debounce(function(a){a.target.value?this.model.set("search",a.target.value):this.model.unset("search")},300)}),a.exports=c},function(a,b){var c,d=jQuery;c=wp.media.View.extend({tagName:"select",className:"attachment-filters",id:"media-attachment-filters",events:{change:"change"},keys:[],initialize:function(){this.createFilters(),_.extend(this.filters,this.options.filters),this.$el.html(_.chain(this.filters).map(function(a,b){return{el:d("<option></option>").val(b).html(a.text)[0],priority:a.priority||50}},this).sortBy("priority").pluck("el").value()),this.listenTo(this.model,"change",this.select),this.select()},createFilters:function(){this.filters={}},change:function(){var a=this.filters[this.el.value];a&&this.model.set(a.props)},select:function(){var a=this.model,b="all",c=a.toJSON();_.find(this.filters,function(a,d){var e=_.all(a.props,function(a,b){return a===(_.isUndefined(c[b])?null:c[b])});if(e)return b=d}),this.$el.val(b)}}),a.exports=c},function(a,b){var c,d=wp.media.view.l10n;c=wp.media.view.AttachmentFilters.extend({id:"media-attachment-date-filters",createFilters:function(){var a={};_.each(wp.media.view.settings.months||{},function(b,c){a[c]={text:b.text,props:{year:b.year,monthnum:b.month}}}),a.all={text:d.allDates,props:{monthnum:!1,year:!1},priority:10},this.filters=a}}),a.exports=c},function(a,b){var c,d=wp.media.view.l10n;c=wp.media.view.AttachmentFilters.extend({createFilters:function(){var a,b=this.model.get("type"),c=wp.media.view.settings.mimeTypes,e=window.userSettings?parseInt(window.userSettings.uid,10):0;c&&b&&(a=c[b]),this.filters={all:{text:a||d.allMediaItems,props:{uploadedTo:null,orderby:"date",order:"DESC",author:null},priority:10},uploaded:{text:d.uploadedToThisPost,props:{uploadedTo:wp.media.view.settings.post.id,orderby:"menuOrder",order:"ASC",author:null},priority:20},unattached:{text:d.unattached,props:{uploadedTo:0,orderby:"menuOrder",order:"ASC",author:null},priority:50}},e&&(this.filters.mine={text:d.mine,props:{orderby:"date",order:"DESC",author:e},priority:50})}}),a.exports=c},function(a,b){var c,d=wp.media.view.l10n;c=wp.media.view.AttachmentFilters.extend({createFilters:function(){var a={},b=window.userSettings?parseInt(window.userSettings.uid,10):0;_.each(wp.media.view.settings.mimeTypes||{},function(b,c){a[c]={text:b,props:{status:null,type:c,uploadedTo:null,orderby:"date",order:"DESC",author:null}}}),a.all={text:d.allMediaItems,props:{status:null,type:null,uploadedTo:null,orderby:"date",order:"DESC",author:null},priority:10},wp.media.view.settings.post.id&&(a.uploaded={text:d.uploadedToThisPost,props:{status:null,type:null,uploadedTo:wp.media.view.settings.post.id,orderby:"menuOrder",order:"ASC",author:null},priority:20}),a.unattached={text:d.unattached,props:{status:null,uploadedTo:0,type:null,orderby:"menuOrder",order:"ASC",author:null},priority:50},b&&(a.mine={text:d.mine,props:{status:null,type:null,uploadedTo:null,orderby:"date",order:"DESC",author:b},priority:50}),wp.media.view.settings.mediaTrash&&this.controller.isModeActive("grid")&&(a.trash={text:d.trash,props:{uploadedTo:null,status:"trash",type:null,orderby:"date",order:"DESC",author:null},priority:50}),this.filters=a}}),a.exports=c},function(a,b){var c,d=wp.media.View,e=wp.media.view.settings.mediaTrash,f=wp.media.view.l10n,g=jQuery;c=d.extend({tagName:"div",className:"attachments-browser",initialize:function(){_.defaults(this.options,{filters:!1,search:!0,date:!0,display:!1,sidebar:!0,AttachmentView:wp.media.view.Attachment.Library}),this.controller.on("toggle:upload:attachment",this.toggleUploader,this),this.controller.on("edit:selection",this.editSelection),this.options.sidebar&&"errors"===this.options.sidebar&&this.createSidebar(),this.createUploader(),this.createToolbar(),this.createAttachments(),this.options.sidebar&&"errors"!==this.options.sidebar&&this.createSidebar(),this.updateContent(),this.options.sidebar&&"errors"!==this.options.sidebar||(this.$el.addClass("hide-sidebar"),"errors"===this.options.sidebar&&this.$el.addClass("sidebar-for-errors")),this.collection.on("add remove reset",this.updateContent,this)},editSelection:function(a){a.$(".media-button-backToLibrary").focus()},dispose:function(){return this.options.selection.off(null,null,this),d.prototype.dispose.apply(this,arguments),this},createToolbar:function(){var a,b,c;c={controller:this.controller},this.controller.isModeActive("grid")&&(c.className="media-toolbar wp-filter"),this.toolbar=new wp.media.view.Toolbar(c),this.views.add(this.toolbar),this.toolbar.set("spinner",new wp.media.view.Spinner({priority:-60})),-1!==g.inArray(this.options.filters,["uploaded","all"])&&(this.toolbar.set("filtersLabel",new wp.media.view.Label({value:f.filterByType,attributes:{"for":"media-attachment-filters"},priority:-80}).render()),"uploaded"===this.options.filters?this.toolbar.set("filters",new wp.media.view.AttachmentFilters.Uploaded({controller:this.controller,model:this.collection.props,priority:-80}).render()):(b=new wp.media.view.AttachmentFilters.All({controller:this.controller,model:this.collection.props,priority:-80}),this.toolbar.set("filters",b.render()))),this.controller.isModeActive("grid")?(a=d.extend({className:"view-switch media-grid-view-switch",template:wp.template("media-library-view-switcher")}),this.toolbar.set("libraryViewSwitcher",new a({controller:this.controller,priority:-90}).render()),this.toolbar.set("dateFilterLabel",new wp.media.view.Label({value:f.filterByDate,attributes:{"for":"media-attachment-date-filters"},priority:-75}).render()),this.toolbar.set("dateFilter",new wp.media.view.DateFilter({controller:this.controller,model:this.collection.props,priority:-75}).render()),this.toolbar.set("selectModeToggleButton",new wp.media.view.SelectModeToggleButton({text:f.bulkSelect,controller:this.controller,priority:-70}).render()),this.toolbar.set("deleteSelectedButton",new wp.media.view.DeleteSelectedButton({filters:b,style:"primary",disabled:!0,text:e?f.trashSelected:f.deleteSelected,controller:this.controller,priority:-60,click:function(){var a=[],b=[],c=this.controller.state().get("selection"),d=this.controller.state().get("library");c.length&&(e||window.confirm(f.warnBulkDelete))&&(e&&"trash"!==c.at(0).get("status")&&!window.confirm(f.warnBulkTrash)||(c.each(function(c){return c.get("nonces")["delete"]?void(e&&"trash"===c.get("status")?(c.set("status","inherit"),a.push(c.save()),b.push(c)):e?(c.set("status","trash"),a.push(c.save()),b.push(c)):c.destroy({wait:!0})):void b.push(c)}),a.length?(c.remove(b),g.when.apply(null,a).then(_.bind(function(){d._requery(!0),this.controller.trigger("selection:action:done")},this))):this.controller.trigger("selection:action:done")))}}).render()),e&&this.toolbar.set("deleteSelectedPermanentlyButton",new wp.media.view.DeleteSelectedPermanentlyButton({filters:b,style:"primary",disabled:!0,text:f.deleteSelected,controller:this.controller,priority:-55,click:function(){var a=[],b=[],c=this.controller.state().get("selection");c.length&&window.confirm(f.warnBulkDelete)&&(c.each(function(c){return c.get("nonces")["delete"]?void b.push(c):void a.push(c)}),a.length&&c.remove(a),b.length&&g.when.apply(null,b.map(function(a){return a.destroy()})).then(_.bind(function(){this.controller.trigger("selection:action:done")},this)))}}).render())):this.options.date&&(this.toolbar.set("dateFilterLabel",new wp.media.view.Label({value:f.filterByDate,attributes:{"for":"media-attachment-date-filters"},priority:-75}).render()),this.toolbar.set("dateFilter",new wp.media.view.DateFilter({controller:this.controller,model:this.collection.props,priority:-75}).render())),this.options.search&&(this.toolbar.set("searchLabel",new wp.media.view.Label({value:f.searchMediaLabel,attributes:{"for":"media-search-input"},priority:60}).render()),this.toolbar.set("search",new wp.media.view.Search({controller:this.controller,model:this.collection.props,priority:60}).render())),this.options.dragInfo&&this.toolbar.set("dragInfo",new d({el:g('<div class="instructions">'+f.dragInfo+"</div>")[0],priority:-40})),this.options.suggestedWidth&&this.options.suggestedHeight&&this.toolbar.set("suggestedDimensions",new d({el:g('<div class="instructions">'+f.suggestedDimensions.replace("%1$s",this.options.suggestedWidth).replace("%2$s",this.options.suggestedHeight)+"</div>")[0],priority:-40}))},updateContent:function(){var a,b=this;a=this.controller.isModeActive("grid")?b.attachmentsNoResults:b.uploader,this.collection.length?(a.$el.addClass("hidden"),b.toolbar.get("spinner").hide()):(this.toolbar.get("spinner").show(),this.dfd=this.collection.more().done(function(){b.collection.length?a.$el.addClass("hidden"):a.$el.removeClass("hidden"),b.toolbar.get("spinner").hide()}))},createUploader:function(){this.uploader=new wp.media.view.UploaderInline({controller:this.controller,status:!1,message:this.controller.isModeActive("grid")?"":f.noItemsFound,canClose:this.controller.isModeActive("grid")}),this.uploader.$el.addClass("hidden"),this.views.add(this.uploader)},toggleUploader:function(){this.uploader.$el.hasClass("hidden")?this.uploader.show():this.uploader.hide()},createAttachments:function(){this.attachments=new wp.media.view.Attachments({controller:this.controller,collection:this.collection,selection:this.options.selection,model:this.model,sortable:this.options.sortable,scrollElement:this.options.scrollElement,idealColumnWidth:this.options.idealColumnWidth,AttachmentView:this.options.AttachmentView}),this.controller.on("attachment:keydown:arrow",_.bind(this.attachments.arrowEvent,this.attachments)),this.controller.on("attachment:details:shift-tab",_.bind(this.attachments.restoreFocus,this.attachments)),this.views.add(this.attachments),this.controller.isModeActive("grid")&&(this.attachmentsNoResults=new d({controller:this.controller,tagName:"p"}),this.attachmentsNoResults.$el.addClass("hidden no-media"),this.attachmentsNoResults.$el.html(f.noMedia),this.views.add(this.attachmentsNoResults))},createSidebar:function(){var a=this.options,b=a.selection,c=this.sidebar=new wp.media.view.Sidebar({controller:this.controller});this.views.add(c),this.controller.uploader&&c.set("uploads",new wp.media.view.UploaderStatus({controller:this.controller,priority:40})),b.on("selection:single",this.createSingle,this),b.on("selection:unsingle",this.disposeSingle,this),b.single()&&this.createSingle()},createSingle:function(){var a=this.sidebar,b=this.options.selection.single();a.set("details",new wp.media.view.Attachment.Details({controller:this.controller,model:b,priority:80})),a.set("compat",new wp.media.view.AttachmentCompat({controller:this.controller,model:b,priority:120})),this.options.display&&a.set("display",new wp.media.view.Settings.AttachmentDisplay({controller:this.controller,model:this.model.display(b),attachment:b,priority:160,userSettings:this.model.get("displayUserSettings")})),"insert"===this.model.id&&a.$el.addClass("visible")},disposeSingle:function(){var a=this.sidebar;a.unset("details"),a.unset("compat"),a.unset("display"),a.$el.removeClass("visible")}}),a.exports=c},function(a,b){var c,d=wp.media.view.l10n;c=wp.media.View.extend({tagName:"div",className:"media-selection",template:wp.template("media-selection"),events:{"click .edit-selection":"edit","click .clear-selection":"clear"},initialize:function(){_.defaults(this.options,{editable:!1,clearable:!0}),this.attachments=new wp.media.view.Attachments.Selection({controller:this.controller,collection:this.collection,selection:this.collection,model:new Backbone.Model}),this.views.set(".selection-view",this.attachments),this.collection.on("add remove reset",this.refresh,this),this.controller.on("content:activate",this.refresh,this)},ready:function(){this.refresh()},refresh:function(){if(this.$el.children().length){var a=this.collection,b="edit-selection"===this.controller.content.mode();this.$el.toggleClass("empty",!a.length),this.$el.toggleClass("one",1===a.length),this.$el.toggleClass("editing",b),this.$(".count").text(d.selected.replace("%d",a.length))}},edit:function(a){a.preventDefault(),this.options.editable&&this.options.editable.call(this,this.collection)},clear:function(a){a.preventDefault(),this.collection.reset(),this.controller.modal.focusManager.focus()}}),a.exports=c},function(a,b){var c=wp.media.view.Attachment.extend({className:"attachment selection",toggleSelection:function(){this.options.selection.single(this.model)}});a.exports=c},function(a,b){var c,d=wp.media.view.Attachments;c=d.extend({events:{},initialize:function(){return _.defaults(this.options,{sortable:!1,resize:!1,AttachmentView:wp.media.view.Attachment.Selection}),d.prototype.initialize.apply(this,arguments)}}),a.exports=c},function(a,b){var c=wp.media.view.Attachment.Selection.extend({buttons:{close:!0}});a.exports=c},function(a,b){var c,d=wp.media.View,e=Backbone.$;c=d.extend({events:{"click button":"updateHandler","change input":"updateHandler","change select":"updateHandler","change textarea":"updateHandler"},initialize:function(){this.model=this.model||new Backbone.Model,this.listenTo(this.model,"change",this.updateChanges)},prepare:function(){return _.defaults({model:this.model.toJSON()},this.options)},render:function(){return d.prototype.render.apply(this,arguments),_(this.model.attributes).chain().keys().each(this.update,this),this},update:function(a){var b,c,d=this.model.get(a),e=this.$('[data-setting="'+a+'"]');e.length&&(e.is("select")?(c=e.find('[value="'+d+'"]'),c.length?(e.find("option").prop("selected",!1),c.prop("selected",!0)):this.model.set(a,e.find(":selected").val())):e.hasClass("button-group")?(b=e.find("button").removeClass("active"),b.filter('[value="'+d+'"]').addClass("active")):e.is('input[type="text"], textarea')?e.is(":focus")||e.val(d):e.is('input[type="checkbox"]')&&e.prop("checked",!!d&&"false"!==d))},updateHandler:function(a){var b,c=e(a.target).closest("[data-setting]"),d=a.target.value;a.preventDefault(),c.length&&(c.is('input[type="checkbox"]')&&(d=c[0].checked),this.model.set(c.data("setting"),d),(b=c.data("userSetting"))&&window.setUserSetting(b,d))},updateChanges:function(a){a.hasChanged()&&_(a.changed).chain().keys().each(this.update,this)}}),a.exports=c},function(a,b){var c,d=wp.media.view.Settings;c=d.extend({className:"attachment-display-settings",template:wp.template("attachment-display-settings"),initialize:function(){var a=this.options.attachment;_.defaults(this.options,{userSettings:!1}),d.prototype.initialize.apply(this,arguments),this.listenTo(this.model,"change:link",this.updateLinkTo),a&&a.on("change:uploading",this.render,this)},dispose:function(){var a=this.options.attachment;a&&a.off(null,null,this),d.prototype.dispose.apply(this,arguments)},render:function(){var a=this.options.attachment;return a&&_.extend(this.options,{sizes:a.get("sizes"),type:a.get("type")}),d.prototype.render.call(this),this.updateLinkTo(),this},updateLinkTo:function(){var a=this.model.get("link"),b=this.$(".link-to-custom"),c=this.options.attachment;return"none"===a||"embed"===a||!c&&"custom"!==a?void b.addClass("hidden"):(c&&("post"===a?b.val(c.get("link")):"file"===a?b.val(c.get("url")):this.model.get("linkUrl")||b.val("http://"),b.prop("readonly","custom"!==a)),b.removeClass("hidden"),void(!wp.media.isTouchDevice&&b.is(":visible")&&b.focus()[0].select()))}}),a.exports=c},function(a,b){var c=wp.media.view.Settings.extend({className:"collection-settings gallery-settings",template:wp.template("gallery-settings")});a.exports=c},function(a,b){var c=wp.media.view.Settings.extend({className:"collection-settings playlist-settings",template:wp.template("playlist-settings")});a.exports=c},function(a,b){var c,d=wp.media.view.Attachment,e=wp.media.view.l10n;c=d.extend({tagName:"div",className:"attachment-details",template:wp.template("attachment-details"),attributes:function(){return{tabIndex:0,"data-id":this.model.get("id")}},events:{"change [data-setting]":"updateSetting","change [data-setting] input":"updateSetting","change [data-setting] select":"updateSetting","change [data-setting] textarea":"updateSetting","click .delete-attachment":"deleteAttachment","click .trash-attachment":"trashAttachment","click .untrash-attachment":"untrashAttachment","click .edit-attachment":"editAttachment",keydown:"toggleSelectionHandler"},initialize:function(){this.options=_.defaults(this.options,{rerenderOnModelChange:!1}),this.on("ready",this.initialFocus),d.prototype.initialize.apply(this,arguments)},initialFocus:function(){wp.media.isTouchDevice||this.$('input[type="text"]').eq(0).focus()},deleteAttachment:function(a){a.preventDefault(),window.confirm(e.warnDelete)&&(this.model.destroy(),this.controller.modal.focusManager.focus())},trashAttachment:function(a){var b=this.controller.library;a.preventDefault(),wp.media.view.settings.mediaTrash&&"edit-metadata"===this.controller.content.mode()?(this.model.set("status","trash"),this.model.save().done(function(){b._requery(!0)})):this.model.destroy()},untrashAttachment:function(a){var b=this.controller.library;a.preventDefault(),this.model.set("status","inherit"),this.model.save().done(function(){b._requery(!0)})},editAttachment:function(a){var b=this.controller.states.get("edit-image");window.imageEdit&&b?(a.preventDefault(),b.set("image",this.model),this.controller.setState("edit-image")):this.$el.addClass("needs-refresh")},toggleSelectionHandler:function(a){return"keydown"===a.type&&9===a.keyCode&&a.shiftKey&&a.target===this.$(":tabbable").get(0)?(this.controller.trigger("attachment:details:shift-tab",a),!1):37===a.keyCode||38===a.keyCode||39===a.keyCode||40===a.keyCode?void this.controller.trigger("attachment:keydown:arrow",a):void 0}}),a.exports=c},function(a,b){var c,d=wp.media.View;c=d.extend({tagName:"form",className:"compat-item",events:{submit:"preventDefault","change input":"save","change select":"save","change textarea":"save"},initialize:function(){this.listenTo(this.model,"change:compat",this.render)},dispose:function(){return this.$(":focus").length&&this.save(),d.prototype.dispose.apply(this,arguments)},render:function(){var a=this.model.get("compat");if(a&&a.item)return this.views.detach(),this.$el.html(a.item),this.views.render(),this},preventDefault:function(a){a.preventDefault()},save:function(a){var b={};a&&a.preventDefault(),_.each(this.$el.serializeArray(),function(a){b[a.name]=a.value}),this.controller.trigger("attachment:compat:waiting",["waiting"]),this.model.saveCompat(b).always(_.bind(this.postSave,this))},postSave:function(){this.controller.trigger("attachment:compat:ready",["ready"])}}),a.exports=c},function(a,b){var c=wp.media.View.extend({className:"media-iframe",render:function(){return this.views.detach(),this.$el.html('<iframe src="'+this.controller.state().get("src")+'" />'),this.views.render(),this}});a.exports=c},function(a,b){var c=wp.media.View.extend({className:"media-embed",initialize:function(){this.url=new wp.media.view.EmbedUrl({controller:this.controller,model:this.model.props}).render(),this.views.set([this.url]),this.refresh(),this.listenTo(this.model,"change:type",this.refresh),this.listenTo(this.model,"change:loading",this.loading)},settings:function(a){this._settings&&this._settings.remove(),this._settings=a,this.views.add(a)},refresh:function(){var a,b=this.model.get("type");if("image"===b)a=wp.media.view.EmbedImage;else{if("link"!==b)return;a=wp.media.view.EmbedLink}this.settings(new a({controller:this.controller,model:this.model.props,priority:40}))},loading:function(){this.$el.toggleClass("embed-loading",this.model.get("loading"))}});a.exports=c},function(a,b){var c=wp.media.View.extend({tagName:"label",className:"screen-reader-text",initialize:function(){this.value=this.options.value},render:function(){return this.$el.html(this.value),this}});a.exports=c},function(a,b){var c,d=wp.media.View,e=jQuery;c=d.extend({tagName:"label",className:"embed-url",events:{input:"url",keyup:"url",change:"url"},initialize:function(){this.$input=e('<input id="embed-url-field" type="url" />').val(this.model.get("url")),this.input=this.$input[0],this.spinner=e('<span class="spinner" />')[0],this.$el.append([this.input,this.spinner]),this.listenTo(this.model,"change:url",this.render),this.model.get("url")&&_.delay(_.bind(function(){this.model.trigger("change:url")},this),500)},render:function(){var a=this.$input;if(!a.is(":focus"))return this.input.value=this.model.get("url")||"http://",d.prototype.render.apply(this,arguments),this},ready:function(){wp.media.isTouchDevice||this.focus()},url:function(a){this.model.set("url",e.trim(a.target.value))},focus:function(){var a=this.$input;a.is(":visible")&&a.focus()[0].select()}}),a.exports=c},function(a,b){var c,d=jQuery;c=wp.media.view.Settings.extend({className:"embed-link-settings",template:wp.template("embed-link-settings"),initialize:function(){this.listenTo(this.model,"change:url",this.updateoEmbed)},updateoEmbed:_.debounce(function(){var a=this.model.get("url");this.$(".embed-container").hide().find(".embed-preview").empty(),this.$(".setting").hide(),a&&(a.length<11||!a.match(/^http(s)?:\/\//))||this.fetch()},wp.media.controller.Embed.sensitivity),fetch:function(){var a,b,c=this.model.get("url");d("#embed-url-field").val()===c&&(this.dfd&&"pending"===this.dfd.state()&&this.dfd.abort(),a=/https?:\/\/www\.youtube\.com\/embed\/([^\/]+)/,b=a.exec(c),b&&(c="https://www.youtube.com/watch?v="+b[1]),this.dfd=wp.apiRequest({url:wp.media.view.settings.oEmbedProxyUrl,data:{url:c,maxwidth:this.model.get("width"),maxheight:this.model.get("height")},type:"GET",dataType:"json",context:this}).done(function(a){this.renderoEmbed({data:{body:a.html||""}})}).fail(this.renderFail))},renderFail:function(a,b){"abort"!==b&&this.$(".link-text").show()},renderoEmbed:function(a){var b=a&&a.data&&a.data.body||"";b?this.$(".embed-container").show().find(".embed-preview").html(b):this.renderFail()}}),a.exports=c},function(a,b){var c,d=wp.media.view.Settings.AttachmentDisplay;c=d.extend({className:"embed-media-settings",template:wp.template("embed-image-settings"),initialize:function(){d.prototype.initialize.apply(this,arguments),this.listenTo(this.model,"change:url",this.updateImage)},updateImage:function(){this.$("img").attr("src",this.model.get("url"))}}),a.exports=c},function(a,b){var c,d=wp.media.view.Settings.AttachmentDisplay,e=jQuery;c=d.extend({className:"image-details",template:wp.template("image-details"),events:_.defaults(d.prototype.events,{"click .edit-attachment":"editAttachment","click .replace-attachment":"replaceAttachment","click .advanced-toggle":"onToggleAdvanced",'change [data-setting="customWidth"]':"onCustomSize",'change [data-setting="customHeight"]':"onCustomSize",'keyup [data-setting="customWidth"]':"onCustomSize",'keyup [data-setting="customHeight"]':"onCustomSize"}),initialize:function(){this.options.attachment=this.model.attachment,this.listenTo(this.model,"change:url",this.updateUrl),this.listenTo(this.model,"change:link",this.toggleLinkSettings),this.listenTo(this.model,"change:size",this.toggleCustomSize),d.prototype.initialize.apply(this,arguments)},prepare:function(){var a=!1;return this.model.attachment&&(a=this.model.attachment.toJSON()),_.defaults({model:this.model.toJSON(),attachment:a},this.options)},render:function(){var a=arguments;return this.model.attachment&&"pending"===this.model.dfd.state()?this.model.dfd.done(_.bind(function(){d.prototype.render.apply(this,a),this.postRender()},this)).fail(_.bind(function(){this.model.attachment=!1,d.prototype.render.apply(this,a),this.postRender()},this)):(d.prototype.render.apply(this,arguments),this.postRender()),this},postRender:function(){setTimeout(_.bind(this.resetFocus,this),10),this.toggleLinkSettings(),"show"===window.getUserSetting("advImgDetails")&&this.toggleAdvanced(!0),this.trigger("post-render")},resetFocus:function(){this.$(".link-to-custom").blur(),this.$(".embed-media-settings").scrollTop(0)},updateUrl:function(){this.$(".image img").attr("src",this.model.get("url")),this.$(".url").val(this.model.get("url"))},toggleLinkSettings:function(){"none"===this.model.get("link")?this.$(".link-settings").addClass("hidden"):this.$(".link-settings").removeClass("hidden")},toggleCustomSize:function(){"custom"!==this.model.get("size")?this.$(".custom-size").addClass("hidden"):this.$(".custom-size").removeClass("hidden")},onCustomSize:function(a){var b,c=e(a.target).data("setting"),d=e(a.target).val();return!/^\d+/.test(d)||parseInt(d,10)<1?void a.preventDefault():void("customWidth"===c?(b=Math.round(1/this.model.get("aspectRatio")*d),this.model.set("customHeight",b,{silent:!0}),this.$('[data-setting="customHeight"]').val(b)):(b=Math.round(this.model.get("aspectRatio")*d), +this.model.set("customWidth",b,{silent:!0}),this.$('[data-setting="customWidth"]').val(b)))},onToggleAdvanced:function(a){a.preventDefault(),this.toggleAdvanced()},toggleAdvanced:function(a){var b,c=this.$el.find(".advanced-section");c.hasClass("advanced-visible")||a===!1?(c.removeClass("advanced-visible"),c.find(".advanced-settings").addClass("hidden"),b="hide"):(c.addClass("advanced-visible"),c.find(".advanced-settings").removeClass("hidden"),b="show"),window.setUserSetting("advImgDetails",b)},editAttachment:function(a){var b=this.controller.states.get("edit-image");window.imageEdit&&b&&(a.preventDefault(),b.set("image",this.model.attachment),this.controller.setState("edit-image"))},replaceAttachment:function(a){a.preventDefault(),this.controller.setState("replace-image")}}),a.exports=c},function(a,b){var c,d=wp.media.View,e=wp.media.view.UploaderStatus,f=wp.media.view.l10n,g=jQuery;c=d.extend({className:"crop-content",template:wp.template("crop-content"),initialize:function(){_.bindAll(this,"onImageLoad")},ready:function(){this.controller.frame.on("content:error:crop",this.onError,this),this.$image=this.$el.find(".crop-image"),this.$image.on("load",this.onImageLoad),g(window).on("resize.cropper",_.debounce(this.onImageLoad,250))},remove:function(){g(window).off("resize.cropper"),this.$el.remove(),this.$el.off(),d.prototype.remove.apply(this,arguments)},prepare:function(){return{title:f.cropYourImage,url:this.options.attachment.get("url")}},onImageLoad:function(){var a,b=this.controller.get("imgSelectOptions");"function"==typeof b&&(b=b(this.options.attachment,this.controller)),b=_.extend(b,{parent:this.$el,onInit:function(){var b=a.getOptions().aspectRatio;this.parent.children().on("mousedown touchstart",function(c){!b&&c.shiftKey&&a.setOptions({aspectRatio:"1:1"})}),this.parent.children().on("mouseup touchend",function(){a.setOptions({aspectRatio:!!b&&b})})}}),this.trigger("image-loaded"),a=this.controller.imgSelect=this.$image.imgAreaSelect(b)},onError:function(){var a=this.options.attachment.get("filename");this.views.add(".upload-errors",new wp.media.view.UploaderStatusError({filename:e.prototype.filename(a),message:window._wpMediaViewsL10n.cropError}),{at:0})}}),a.exports=c},function(a,b){var c,d=wp.media.view;c=d.Cropper.extend({className:"crop-content site-icon",ready:function(){d.Cropper.prototype.ready.apply(this,arguments),this.$(".crop-image").on("load",_.bind(this.addSidebar,this))},addSidebar:function(){this.sidebar=new wp.media.view.Sidebar({controller:this.controller}),this.sidebar.set("preview",new wp.media.view.SiteIconPreview({controller:this.controller,attachment:this.options.attachment})),this.controller.cropperView.views.add(this.sidebar)}}),a.exports=c},function(a,b){var c,d=wp.media.View,e=jQuery;c=d.extend({className:"site-icon-preview",template:wp.template("site-icon-preview"),ready:function(){this.controller.imgSelect.setOptions({onInit:this.updatePreview,onSelectChange:this.updatePreview})},prepare:function(){return{url:this.options.attachment.get("url")}},updatePreview:function(a,b){var c=64/b.width,d=64/b.height,f=16/b.width,g=16/b.height;e("#preview-app-icon").css({width:Math.round(c*this.imageWidth)+"px",height:Math.round(d*this.imageHeight)+"px",marginLeft:"-"+Math.round(c*b.x1)+"px",marginTop:"-"+Math.round(d*b.y1)+"px"}),e("#preview-favicon").css({width:Math.round(f*this.imageWidth)+"px",height:Math.round(g*this.imageHeight)+"px",marginLeft:"-"+Math.round(f*b.x1)+"px",marginTop:"-"+Math.floor(g*b.y1)+"px"})}}),a.exports=c},function(a,b){var c,d=wp.media.View;c=d.extend({className:"image-editor",template:wp.template("image-editor"),initialize:function(a){this.editor=window.imageEdit,this.controller=a.controller,d.prototype.initialize.apply(this,arguments)},prepare:function(){return this.model.toJSON()},loadEditor:function(){var a=this.editor.open(this.model.get("id"),this.model.get("nonces").edit,this);a.done(_.bind(this.focus,this))},focus:function(){this.$(".imgedit-submit .button").eq(0).focus()},back:function(){var a=this.controller.lastState();this.controller.setState(a)},refresh:function(){this.model.fetch()},save:function(){var a=this.controller.lastState();this.model.fetch().done(_.bind(function(){this.controller.setState(a)},this))}}),a.exports=c},function(a,b){var c=wp.media.View.extend({tagName:"span",className:"spinner",spinnerTimeout:!1,delay:400,show:function(){return this.spinnerTimeout||(this.spinnerTimeout=_.delay(function(a){a.addClass("is-active")},this.delay,this.$el)),this},hide:function(){return this.$el.removeClass("is-active"),this.spinnerTimeout=clearTimeout(this.spinnerTimeout),this}});a.exports=c}])); \ No newline at end of file diff --git a/wp-includes/js/tinymce/plugins/charmap/plugin.js b/wp-includes/js/tinymce/plugins/charmap/plugin.js index 3e947c7b5..8098d5e13 100644 --- a/wp-includes/js/tinymce/plugins/charmap/plugin.js +++ b/wp-includes/js/tinymce/plugins/charmap/plugin.js @@ -1,617 +1,1275 @@ (function () { +var charmap = (function () { + 'use strict'; -var defs = {}; // id -> {dependencies, definition, instance (possibly undefined)} + var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); -// Used when there is no 'main' module. -// The name is probably (hopefully) unique so minification removes for releases. -var register_3795 = function (id) { - var module = dem(id); - var fragments = id.split('.'); - var target = Function('return this;')(); - for (var i = 0; i < fragments.length - 1; ++i) { - if (target[fragments[i]] === undefined) - target[fragments[i]] = {}; - target = target[fragments[i]]; - } - target[fragments[fragments.length - 1]] = module; -}; - -var instantiate = function (id) { - var actual = defs[id]; - var dependencies = actual.deps; - var definition = actual.defn; - var len = dependencies.length; - var instances = new Array(len); - for (var i = 0; i < len; ++i) - instances[i] = dem(dependencies[i]); - var defResult = definition.apply(null, instances); - if (defResult === undefined) - throw 'module [' + id + '] returned undefined'; - actual.instance = defResult; -}; - -var def = function (id, dependencies, definition) { - if (typeof id !== 'string') - throw 'module id must be a string'; - else if (dependencies === undefined) - throw 'no dependencies for ' + id; - else if (definition === undefined) - throw 'no definition function for ' + id; - defs[id] = { - deps: dependencies, - defn: definition, - instance: undefined + var fireInsertCustomChar = function (editor, chr) { + return editor.fire('insertCustomChar', { chr: chr }); }; -}; + var $_j6jbo95jfuw8onk = { fireInsertCustomChar: fireInsertCustomChar }; -var dem = function (id) { - var actual = defs[id]; - if (actual === undefined) - throw 'module [' + id + '] was undefined'; - else if (actual.instance === undefined) - instantiate(id); - return actual.instance; -}; + var insertChar = function (editor, chr) { + var evtChr = $_j6jbo95jfuw8onk.fireInsertCustomChar(editor, chr).chr; + editor.execCommand('mceInsertContent', false, evtChr); + }; + var $_apbezv94jfuw8onj = { insertChar: insertChar }; -var req = function (ids, callback) { - var len = ids.length; - var instances = new Array(len); - for (var i = 0; i < len; ++i) - instances.push(dem(ids[i])); - callback.apply(null, callback); -}; + var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools'); -var ephox = {}; + var getCharMap = function (editor) { + return editor.settings.charmap; + }; + var getCharMapAppend = function (editor) { + return editor.settings.charmap_append; + }; + var $_ae555o98jfuw8onx = { + getCharMap: getCharMap, + getCharMapAppend: getCharMapAppend + }; -ephox.bolt = { - module: { - api: { - define: def, - require: req, - demand: dem + var isArray = global$1.isArray; + var getDefaultCharMap = function () { + return [ + [ + '160', + 'no-break space' + ], + [ + '173', + 'soft hyphen' + ], + [ + '34', + 'quotation mark' + ], + [ + '162', + 'cent sign' + ], + [ + '8364', + 'euro sign' + ], + [ + '163', + 'pound sign' + ], + [ + '165', + 'yen sign' + ], + [ + '169', + 'copyright sign' + ], + [ + '174', + 'registered sign' + ], + [ + '8482', + 'trade mark sign' + ], + [ + '8240', + 'per mille sign' + ], + [ + '181', + 'micro sign' + ], + [ + '183', + 'middle dot' + ], + [ + '8226', + 'bullet' + ], + [ + '8230', + 'three dot leader' + ], + [ + '8242', + 'minutes / feet' + ], + [ + '8243', + 'seconds / inches' + ], + [ + '167', + 'section sign' + ], + [ + '182', + 'paragraph sign' + ], + [ + '223', + 'sharp s / ess-zed' + ], + [ + '8249', + 'single left-pointing angle quotation mark' + ], + [ + '8250', + 'single right-pointing angle quotation mark' + ], + [ + '171', + 'left pointing guillemet' + ], + [ + '187', + 'right pointing guillemet' + ], + [ + '8216', + 'left single quotation mark' + ], + [ + '8217', + 'right single quotation mark' + ], + [ + '8220', + 'left double quotation mark' + ], + [ + '8221', + 'right double quotation mark' + ], + [ + '8218', + 'single low-9 quotation mark' + ], + [ + '8222', + 'double low-9 quotation mark' + ], + [ + '60', + 'less-than sign' + ], + [ + '62', + 'greater-than sign' + ], + [ + '8804', + 'less-than or equal to' + ], + [ + '8805', + 'greater-than or equal to' + ], + [ + '8211', + 'en dash' + ], + [ + '8212', + 'em dash' + ], + [ + '175', + 'macron' + ], + [ + '8254', + 'overline' + ], + [ + '164', + 'currency sign' + ], + [ + '166', + 'broken bar' + ], + [ + '168', + 'diaeresis' + ], + [ + '161', + 'inverted exclamation mark' + ], + [ + '191', + 'turned question mark' + ], + [ + '710', + 'circumflex accent' + ], + [ + '732', + 'small tilde' + ], + [ + '176', + 'degree sign' + ], + [ + '8722', + 'minus sign' + ], + [ + '177', + 'plus-minus sign' + ], + [ + '247', + 'division sign' + ], + [ + '8260', + 'fraction slash' + ], + [ + '215', + 'multiplication sign' + ], + [ + '185', + 'superscript one' + ], + [ + '178', + 'superscript two' + ], + [ + '179', + 'superscript three' + ], + [ + '188', + 'fraction one quarter' + ], + [ + '189', + 'fraction one half' + ], + [ + '190', + 'fraction three quarters' + ], + [ + '402', + 'function / florin' + ], + [ + '8747', + 'integral' + ], + [ + '8721', + 'n-ary sumation' + ], + [ + '8734', + 'infinity' + ], + [ + '8730', + 'square root' + ], + [ + '8764', + 'similar to' + ], + [ + '8773', + 'approximately equal to' + ], + [ + '8776', + 'almost equal to' + ], + [ + '8800', + 'not equal to' + ], + [ + '8801', + 'identical to' + ], + [ + '8712', + 'element of' + ], + [ + '8713', + 'not an element of' + ], + [ + '8715', + 'contains as member' + ], + [ + '8719', + 'n-ary product' + ], + [ + '8743', + 'logical and' + ], + [ + '8744', + 'logical or' + ], + [ + '172', + 'not sign' + ], + [ + '8745', + 'intersection' + ], + [ + '8746', + 'union' + ], + [ + '8706', + 'partial differential' + ], + [ + '8704', + 'for all' + ], + [ + '8707', + 'there exists' + ], + [ + '8709', + 'diameter' + ], + [ + '8711', + 'backward difference' + ], + [ + '8727', + 'asterisk operator' + ], + [ + '8733', + 'proportional to' + ], + [ + '8736', + 'angle' + ], + [ + '180', + 'acute accent' + ], + [ + '184', + 'cedilla' + ], + [ + '170', + 'feminine ordinal indicator' + ], + [ + '186', + 'masculine ordinal indicator' + ], + [ + '8224', + 'dagger' + ], + [ + '8225', + 'double dagger' + ], + [ + '192', + 'A - grave' + ], + [ + '193', + 'A - acute' + ], + [ + '194', + 'A - circumflex' + ], + [ + '195', + 'A - tilde' + ], + [ + '196', + 'A - diaeresis' + ], + [ + '197', + 'A - ring above' + ], + [ + '256', + 'A - macron' + ], + [ + '198', + 'ligature AE' + ], + [ + '199', + 'C - cedilla' + ], + [ + '200', + 'E - grave' + ], + [ + '201', + 'E - acute' + ], + [ + '202', + 'E - circumflex' + ], + [ + '203', + 'E - diaeresis' + ], + [ + '274', + 'E - macron' + ], + [ + '204', + 'I - grave' + ], + [ + '205', + 'I - acute' + ], + [ + '206', + 'I - circumflex' + ], + [ + '207', + 'I - diaeresis' + ], + [ + '298', + 'I - macron' + ], + [ + '208', + 'ETH' + ], + [ + '209', + 'N - tilde' + ], + [ + '210', + 'O - grave' + ], + [ + '211', + 'O - acute' + ], + [ + '212', + 'O - circumflex' + ], + [ + '213', + 'O - tilde' + ], + [ + '214', + 'O - diaeresis' + ], + [ + '216', + 'O - slash' + ], + [ + '332', + 'O - macron' + ], + [ + '338', + 'ligature OE' + ], + [ + '352', + 'S - caron' + ], + [ + '217', + 'U - grave' + ], + [ + '218', + 'U - acute' + ], + [ + '219', + 'U - circumflex' + ], + [ + '220', + 'U - diaeresis' + ], + [ + '362', + 'U - macron' + ], + [ + '221', + 'Y - acute' + ], + [ + '376', + 'Y - diaeresis' + ], + [ + '562', + 'Y - macron' + ], + [ + '222', + 'THORN' + ], + [ + '224', + 'a - grave' + ], + [ + '225', + 'a - acute' + ], + [ + '226', + 'a - circumflex' + ], + [ + '227', + 'a - tilde' + ], + [ + '228', + 'a - diaeresis' + ], + [ + '229', + 'a - ring above' + ], + [ + '257', + 'a - macron' + ], + [ + '230', + 'ligature ae' + ], + [ + '231', + 'c - cedilla' + ], + [ + '232', + 'e - grave' + ], + [ + '233', + 'e - acute' + ], + [ + '234', + 'e - circumflex' + ], + [ + '235', + 'e - diaeresis' + ], + [ + '275', + 'e - macron' + ], + [ + '236', + 'i - grave' + ], + [ + '237', + 'i - acute' + ], + [ + '238', + 'i - circumflex' + ], + [ + '239', + 'i - diaeresis' + ], + [ + '299', + 'i - macron' + ], + [ + '240', + 'eth' + ], + [ + '241', + 'n - tilde' + ], + [ + '242', + 'o - grave' + ], + [ + '243', + 'o - acute' + ], + [ + '244', + 'o - circumflex' + ], + [ + '245', + 'o - tilde' + ], + [ + '246', + 'o - diaeresis' + ], + [ + '248', + 'o slash' + ], + [ + '333', + 'o macron' + ], + [ + '339', + 'ligature oe' + ], + [ + '353', + 's - caron' + ], + [ + '249', + 'u - grave' + ], + [ + '250', + 'u - acute' + ], + [ + '251', + 'u - circumflex' + ], + [ + '252', + 'u - diaeresis' + ], + [ + '363', + 'u - macron' + ], + [ + '253', + 'y - acute' + ], + [ + '254', + 'thorn' + ], + [ + '255', + 'y - diaeresis' + ], + [ + '563', + 'y - macron' + ], + [ + '913', + 'Alpha' + ], + [ + '914', + 'Beta' + ], + [ + '915', + 'Gamma' + ], + [ + '916', + 'Delta' + ], + [ + '917', + 'Epsilon' + ], + [ + '918', + 'Zeta' + ], + [ + '919', + 'Eta' + ], + [ + '920', + 'Theta' + ], + [ + '921', + 'Iota' + ], + [ + '922', + 'Kappa' + ], + [ + '923', + 'Lambda' + ], + [ + '924', + 'Mu' + ], + [ + '925', + 'Nu' + ], + [ + '926', + 'Xi' + ], + [ + '927', + 'Omicron' + ], + [ + '928', + 'Pi' + ], + [ + '929', + 'Rho' + ], + [ + '931', + 'Sigma' + ], + [ + '932', + 'Tau' + ], + [ + '933', + 'Upsilon' + ], + [ + '934', + 'Phi' + ], + [ + '935', + 'Chi' + ], + [ + '936', + 'Psi' + ], + [ + '937', + 'Omega' + ], + [ + '945', + 'alpha' + ], + [ + '946', + 'beta' + ], + [ + '947', + 'gamma' + ], + [ + '948', + 'delta' + ], + [ + '949', + 'epsilon' + ], + [ + '950', + 'zeta' + ], + [ + '951', + 'eta' + ], + [ + '952', + 'theta' + ], + [ + '953', + 'iota' + ], + [ + '954', + 'kappa' + ], + [ + '955', + 'lambda' + ], + [ + '956', + 'mu' + ], + [ + '957', + 'nu' + ], + [ + '958', + 'xi' + ], + [ + '959', + 'omicron' + ], + [ + '960', + 'pi' + ], + [ + '961', + 'rho' + ], + [ + '962', + 'final sigma' + ], + [ + '963', + 'sigma' + ], + [ + '964', + 'tau' + ], + [ + '965', + 'upsilon' + ], + [ + '966', + 'phi' + ], + [ + '967', + 'chi' + ], + [ + '968', + 'psi' + ], + [ + '969', + 'omega' + ], + [ + '8501', + 'alef symbol' + ], + [ + '982', + 'pi symbol' + ], + [ + '8476', + 'real part symbol' + ], + [ + '978', + 'upsilon - hook symbol' + ], + [ + '8472', + 'Weierstrass p' + ], + [ + '8465', + 'imaginary part' + ], + [ + '8592', + 'leftwards arrow' + ], + [ + '8593', + 'upwards arrow' + ], + [ + '8594', + 'rightwards arrow' + ], + [ + '8595', + 'downwards arrow' + ], + [ + '8596', + 'left right arrow' + ], + [ + '8629', + 'carriage return' + ], + [ + '8656', + 'leftwards double arrow' + ], + [ + '8657', + 'upwards double arrow' + ], + [ + '8658', + 'rightwards double arrow' + ], + [ + '8659', + 'downwards double arrow' + ], + [ + '8660', + 'left right double arrow' + ], + [ + '8756', + 'therefore' + ], + [ + '8834', + 'subset of' + ], + [ + '8835', + 'superset of' + ], + [ + '8836', + 'not a subset of' + ], + [ + '8838', + 'subset of or equal to' + ], + [ + '8839', + 'superset of or equal to' + ], + [ + '8853', + 'circled plus' + ], + [ + '8855', + 'circled times' + ], + [ + '8869', + 'perpendicular' + ], + [ + '8901', + 'dot operator' + ], + [ + '8968', + 'left ceiling' + ], + [ + '8969', + 'right ceiling' + ], + [ + '8970', + 'left floor' + ], + [ + '8971', + 'right floor' + ], + [ + '9001', + 'left-pointing angle bracket' + ], + [ + '9002', + 'right-pointing angle bracket' + ], + [ + '9674', + 'lozenge' + ], + [ + '9824', + 'black spade suit' + ], + [ + '9827', + 'black club suit' + ], + [ + '9829', + 'black heart suit' + ], + [ + '9830', + 'black diamond suit' + ], + [ + '8194', + 'en space' + ], + [ + '8195', + 'em space' + ], + [ + '8201', + 'thin space' + ], + [ + '8204', + 'zero width non-joiner' + ], + [ + '8205', + 'zero width joiner' + ], + [ + '8206', + 'left-to-right mark' + ], + [ + '8207', + 'right-to-left mark' + ] + ]; + }; + var charmapFilter = function (charmap) { + return global$1.grep(charmap, function (item) { + return isArray(item) && item.length === 2; + }); + }; + var getCharsFromSetting = function (settingValue) { + if (isArray(settingValue)) { + return [].concat(charmapFilter(settingValue)); } - } -}; - -var define = def; -var require = req; -var demand = dem; -// this helps with minificiation when using a lot of global references -var defineGlobal = function (id, ref) { - define(id, [], function () { return ref; }); -}; -/*jsc -["tinymce.plugins.charmap.Plugin","tinymce.core.PluginManager","tinymce.core.util.Tools","global!tinymce.util.Tools.resolve"] -jsc*/ -defineGlobal("global!tinymce.util.Tools.resolve", tinymce.util.Tools.resolve); -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.PluginManager', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.PluginManager'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.util.Tools', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.util.Tools'); - } -); - -/** - * Plugin.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -/** - * This class contains all core logic for the charmap plugin. - * - * @class tinymce.charmap.Plugin - * @private - */ -define( - 'tinymce.plugins.charmap.Plugin', - [ - 'tinymce.core.PluginManager', - 'tinymce.core.util.Tools' - ], - function (PluginManager, Tools) { - PluginManager.add('charmap', function (editor) { - var isArray = Tools.isArray; - - function getDefaultCharMap() { - return [ - ['160', 'no-break space'], - ['173', 'soft hyphen'], - ['34', 'quotation mark'], - // finance - ['162', 'cent sign'], - ['8364', 'euro sign'], - ['163', 'pound sign'], - ['165', 'yen sign'], - // signs - ['169', 'copyright sign'], - ['174', 'registered sign'], - ['8482', 'trade mark sign'], - ['8240', 'per mille sign'], - ['181', 'micro sign'], - ['183', 'middle dot'], - ['8226', 'bullet'], - ['8230', 'three dot leader'], - ['8242', 'minutes / feet'], - ['8243', 'seconds / inches'], - ['167', 'section sign'], - ['182', 'paragraph sign'], - ['223', 'sharp s / ess-zed'], - // quotations - ['8249', 'single left-pointing angle quotation mark'], - ['8250', 'single right-pointing angle quotation mark'], - ['171', 'left pointing guillemet'], - ['187', 'right pointing guillemet'], - ['8216', 'left single quotation mark'], - ['8217', 'right single quotation mark'], - ['8220', 'left double quotation mark'], - ['8221', 'right double quotation mark'], - ['8218', 'single low-9 quotation mark'], - ['8222', 'double low-9 quotation mark'], - ['60', 'less-than sign'], - ['62', 'greater-than sign'], - ['8804', 'less-than or equal to'], - ['8805', 'greater-than or equal to'], - ['8211', 'en dash'], - ['8212', 'em dash'], - ['175', 'macron'], - ['8254', 'overline'], - ['164', 'currency sign'], - ['166', 'broken bar'], - ['168', 'diaeresis'], - ['161', 'inverted exclamation mark'], - ['191', 'turned question mark'], - ['710', 'circumflex accent'], - ['732', 'small tilde'], - ['176', 'degree sign'], - ['8722', 'minus sign'], - ['177', 'plus-minus sign'], - ['247', 'division sign'], - ['8260', 'fraction slash'], - ['215', 'multiplication sign'], - ['185', 'superscript one'], - ['178', 'superscript two'], - ['179', 'superscript three'], - ['188', 'fraction one quarter'], - ['189', 'fraction one half'], - ['190', 'fraction three quarters'], - // math / logical - ['402', 'function / florin'], - ['8747', 'integral'], - ['8721', 'n-ary sumation'], - ['8734', 'infinity'], - ['8730', 'square root'], - ['8764', 'similar to'], - ['8773', 'approximately equal to'], - ['8776', 'almost equal to'], - ['8800', 'not equal to'], - ['8801', 'identical to'], - ['8712', 'element of'], - ['8713', 'not an element of'], - ['8715', 'contains as member'], - ['8719', 'n-ary product'], - ['8743', 'logical and'], - ['8744', 'logical or'], - ['172', 'not sign'], - ['8745', 'intersection'], - ['8746', 'union'], - ['8706', 'partial differential'], - ['8704', 'for all'], - ['8707', 'there exists'], - ['8709', 'diameter'], - ['8711', 'backward difference'], - ['8727', 'asterisk operator'], - ['8733', 'proportional to'], - ['8736', 'angle'], - // undefined - ['180', 'acute accent'], - ['184', 'cedilla'], - ['170', 'feminine ordinal indicator'], - ['186', 'masculine ordinal indicator'], - ['8224', 'dagger'], - ['8225', 'double dagger'], - // alphabetical special chars - ['192', 'A - grave'], - ['193', 'A - acute'], - ['194', 'A - circumflex'], - ['195', 'A - tilde'], - ['196', 'A - diaeresis'], - ['197', 'A - ring above'], - ['256', 'A - macron'], - ['198', 'ligature AE'], - ['199', 'C - cedilla'], - ['200', 'E - grave'], - ['201', 'E - acute'], - ['202', 'E - circumflex'], - ['203', 'E - diaeresis'], - ['274', 'E - macron'], - ['204', 'I - grave'], - ['205', 'I - acute'], - ['206', 'I - circumflex'], - ['207', 'I - diaeresis'], - ['298', 'I - macron'], - ['208', 'ETH'], - ['209', 'N - tilde'], - ['210', 'O - grave'], - ['211', 'O - acute'], - ['212', 'O - circumflex'], - ['213', 'O - tilde'], - ['214', 'O - diaeresis'], - ['216', 'O - slash'], - ['332', 'O - macron'], - ['338', 'ligature OE'], - ['352', 'S - caron'], - ['217', 'U - grave'], - ['218', 'U - acute'], - ['219', 'U - circumflex'], - ['220', 'U - diaeresis'], - ['362', 'U - macron'], - ['221', 'Y - acute'], - ['376', 'Y - diaeresis'], - ['562', 'Y - macron'], - ['222', 'THORN'], - ['224', 'a - grave'], - ['225', 'a - acute'], - ['226', 'a - circumflex'], - ['227', 'a - tilde'], - ['228', 'a - diaeresis'], - ['229', 'a - ring above'], - ['257', 'a - macron'], - ['230', 'ligature ae'], - ['231', 'c - cedilla'], - ['232', 'e - grave'], - ['233', 'e - acute'], - ['234', 'e - circumflex'], - ['235', 'e - diaeresis'], - ['275', 'e - macron'], - ['236', 'i - grave'], - ['237', 'i - acute'], - ['238', 'i - circumflex'], - ['239', 'i - diaeresis'], - ['299', 'i - macron'], - ['240', 'eth'], - ['241', 'n - tilde'], - ['242', 'o - grave'], - ['243', 'o - acute'], - ['244', 'o - circumflex'], - ['245', 'o - tilde'], - ['246', 'o - diaeresis'], - ['248', 'o slash'], - ['333', 'o macron'], - ['339', 'ligature oe'], - ['353', 's - caron'], - ['249', 'u - grave'], - ['250', 'u - acute'], - ['251', 'u - circumflex'], - ['252', 'u - diaeresis'], - ['363', 'u - macron'], - ['253', 'y - acute'], - ['254', 'thorn'], - ['255', 'y - diaeresis'], - ['563', 'y - macron'], - ['913', 'Alpha'], - ['914', 'Beta'], - ['915', 'Gamma'], - ['916', 'Delta'], - ['917', 'Epsilon'], - ['918', 'Zeta'], - ['919', 'Eta'], - ['920', 'Theta'], - ['921', 'Iota'], - ['922', 'Kappa'], - ['923', 'Lambda'], - ['924', 'Mu'], - ['925', 'Nu'], - ['926', 'Xi'], - ['927', 'Omicron'], - ['928', 'Pi'], - ['929', 'Rho'], - ['931', 'Sigma'], - ['932', 'Tau'], - ['933', 'Upsilon'], - ['934', 'Phi'], - ['935', 'Chi'], - ['936', 'Psi'], - ['937', 'Omega'], - ['945', 'alpha'], - ['946', 'beta'], - ['947', 'gamma'], - ['948', 'delta'], - ['949', 'epsilon'], - ['950', 'zeta'], - ['951', 'eta'], - ['952', 'theta'], - ['953', 'iota'], - ['954', 'kappa'], - ['955', 'lambda'], - ['956', 'mu'], - ['957', 'nu'], - ['958', 'xi'], - ['959', 'omicron'], - ['960', 'pi'], - ['961', 'rho'], - ['962', 'final sigma'], - ['963', 'sigma'], - ['964', 'tau'], - ['965', 'upsilon'], - ['966', 'phi'], - ['967', 'chi'], - ['968', 'psi'], - ['969', 'omega'], - // symbols - ['8501', 'alef symbol'], - ['982', 'pi symbol'], - ['8476', 'real part symbol'], - ['978', 'upsilon - hook symbol'], - ['8472', 'Weierstrass p'], - ['8465', 'imaginary part'], - // arrows - ['8592', 'leftwards arrow'], - ['8593', 'upwards arrow'], - ['8594', 'rightwards arrow'], - ['8595', 'downwards arrow'], - ['8596', 'left right arrow'], - ['8629', 'carriage return'], - ['8656', 'leftwards double arrow'], - ['8657', 'upwards double arrow'], - ['8658', 'rightwards double arrow'], - ['8659', 'downwards double arrow'], - ['8660', 'left right double arrow'], - ['8756', 'therefore'], - ['8834', 'subset of'], - ['8835', 'superset of'], - ['8836', 'not a subset of'], - ['8838', 'subset of or equal to'], - ['8839', 'superset of or equal to'], - ['8853', 'circled plus'], - ['8855', 'circled times'], - ['8869', 'perpendicular'], - ['8901', 'dot operator'], - ['8968', 'left ceiling'], - ['8969', 'right ceiling'], - ['8970', 'left floor'], - ['8971', 'right floor'], - ['9001', 'left-pointing angle bracket'], - ['9002', 'right-pointing angle bracket'], - ['9674', 'lozenge'], - ['9824', 'black spade suit'], - ['9827', 'black club suit'], - ['9829', 'black heart suit'], - ['9830', 'black diamond suit'], - ['8194', 'en space'], - ['8195', 'em space'], - ['8201', 'thin space'], - ['8204', 'zero width non-joiner'], - ['8205', 'zero width joiner'], - ['8206', 'left-to-right mark'], - ['8207', 'right-to-left mark'] - ]; - } - - function charmapFilter(charmap) { - return Tools.grep(charmap, function (item) { - return isArray(item) && item.length == 2; - }); - } - - function getCharsFromSetting(settingValue) { - if (isArray(settingValue)) { - return [].concat(charmapFilter(settingValue)); - } - - if (typeof settingValue == "function") { - return settingValue(); - } - - return []; - } - - function extendCharMap(charmap) { - var settings = editor.settings; + if (typeof settingValue === 'function') { + return settingValue(); + } + return []; + }; + var extendCharMap = function (editor, charmap) { + var userCharMap = $_ae555o98jfuw8onx.getCharMap(editor); + if (userCharMap) { + charmap = getCharsFromSetting(userCharMap); + } + var userCharMapAppend = $_ae555o98jfuw8onx.getCharMapAppend(editor); + if (userCharMapAppend) { + return [].concat(charmap).concat(getCharsFromSetting(userCharMapAppend)); + } + return charmap; + }; + var getCharMap$1 = function (editor) { + return extendCharMap(editor, getDefaultCharMap()); + }; + var $_a0v8qq96jfuw8onl = { getCharMap: getCharMap$1 }; - if (settings.charmap) { - charmap = getCharsFromSetting(settings.charmap); - } + var get = function (editor) { + var getCharMap = function () { + return $_a0v8qq96jfuw8onl.getCharMap(editor); + }; + var insertChar = function (chr) { + $_apbezv94jfuw8onj.insertChar(editor, chr); + }; + return { + getCharMap: getCharMap, + insertChar: insertChar + }; + }; + var $_bi5zpv93jfuw8oni = { get: get }; - if (settings.charmap_append) { - return [].concat(charmap).concat(getCharsFromSetting(settings.charmap_append)); + var getHtml = function (charmap) { + var gridHtml, x, y; + var width = Math.min(charmap.length, 25); + var height = Math.ceil(charmap.length / width); + gridHtml = '<table role="presentation" cellspacing="0" class="mce-charmap"><tbody>'; + for (y = 0; y < height; y++) { + gridHtml += '<tr>'; + for (x = 0; x < width; x++) { + var index = y * width + x; + if (index < charmap.length) { + var chr = charmap[index]; + var charCode = parseInt(chr[0], 10); + var chrText = chr ? String.fromCharCode(charCode) : ' '; + gridHtml += '<td title="' + chr[1] + '">' + '<div tabindex="-1" title="' + chr[1] + '" role="button" data-chr="' + charCode + '">' + chrText + '</div>' + '</td>'; + } else { + gridHtml += '<td />'; } - - return charmap; - } - - function getCharMap() { - return extendCharMap(getDefaultCharMap()); } + gridHtml += '</tr>'; + } + gridHtml += '</tbody></table>'; + return gridHtml; + }; + var $_gbsfov9bjfuw8oo2 = { getHtml: getHtml }; - function insertChar(chr) { - editor.fire('insertCustomChar', { chr: chr }).chr; - editor.execCommand('mceInsertContent', false, chr); + var getParentTd = function (elm) { + while (elm) { + if (elm.nodeName === 'TD') { + return elm; } - - function showDialog() { - var gridHtml, x, y, win; - - function getParentTd(elm) { - while (elm) { - if (elm.nodeName == 'TD') { - return elm; + elm = elm.parentNode; + } + }; + var open = function (editor) { + var win; + var charMapPanel = { + type: 'container', + html: $_gbsfov9bjfuw8oo2.getHtml($_a0v8qq96jfuw8onl.getCharMap(editor)), + onclick: function (e) { + var target = e.target; + if (/^(TD|DIV)$/.test(target.nodeName)) { + var charDiv = getParentTd(target).firstChild; + if (charDiv && charDiv.hasAttribute('data-chr')) { + var charCodeString = charDiv.getAttribute('data-chr'); + var charCode = parseInt(charCodeString, 10); + if (!isNaN(charCode)) { + $_apbezv94jfuw8onj.insertChar(editor, String.fromCharCode(charCode)); } - - elm = elm.parentNode; - } - } - - gridHtml = '<table role="presentation" cellspacing="0" class="mce-charmap"><tbody>'; - - var charmap = getCharMap(); - var width = Math.min(charmap.length, 25); - var height = Math.ceil(charmap.length / width); - for (y = 0; y < height; y++) { - gridHtml += '<tr>'; - - for (x = 0; x < width; x++) { - var index = y * width + x; - if (index < charmap.length) { - var chr = charmap[index]; - var chrText = chr ? String.fromCharCode(parseInt(chr[0], 10)) : ' '; - - gridHtml += ( - '<td title="' + chr[1] + '">' + - '<div tabindex="-1" title="' + chr[1] + '" role="button" data-chr="' + chrText + '">' + - chrText + - '</div>' + - '</td>' - ); - } else { - gridHtml += '<td />'; + if (!e.ctrlKey) { + win.close(); } } - - gridHtml += '</tr>'; } - - gridHtml += '</tbody></table>'; - - var charMapPanel = { + }, + onmouseover: function (e) { + var td = getParentTd(e.target); + if (td && td.firstChild) { + win.find('#preview').text(td.firstChild.firstChild.data); + win.find('#previewTitle').text(td.title); + } else { + win.find('#preview').text(' '); + win.find('#previewTitle').text(' '); + } + } + }; + win = editor.windowManager.open({ + title: 'Special character', + spacing: 10, + padding: 10, + items: [ + charMapPanel, + { type: 'container', - html: gridHtml, - onclick: function (e) { - var target = e.target; - - if (/^(TD|DIV)$/.test(target.nodeName)) { - var charDiv = getParentTd(target).firstChild; - if (charDiv && charDiv.hasAttribute('data-chr')) { - insertChar(charDiv.getAttribute('data-chr')); - - if (!e.ctrlKey) { - win.close(); - } - } - } - }, - onmouseover: function (e) { - var td = getParentTd(e.target); - - if (td && td.firstChild) { - win.find('#preview').text(td.firstChild.firstChild.data); - win.find('#previewTitle').text(td.title); - } else { - win.find('#preview').text(' '); - win.find('#previewTitle').text(' '); - } - } - }; - - win = editor.windowManager.open({ - title: "Special character", - spacing: 10, - padding: 10, + layout: 'flex', + direction: 'column', + align: 'center', + spacing: 5, + minWidth: 160, + minHeight: 160, items: [ - charMapPanel, { - type: 'container', - layout: 'flex', - direction: 'column', - align: 'center', - spacing: 5, - minWidth: 160, - minHeight: 160, - items: [ - { - type: 'label', - name: 'preview', - text: ' ', - style: 'font-size: 40px; text-align: center', - border: 1, - minWidth: 140, - minHeight: 80 - }, - { - type: 'spacer', - minHeight: 20 - }, - { - type: 'label', - name: 'previewTitle', - text: ' ', - style: 'white-space: pre-wrap;', - border: 1, - minWidth: 140 - } - ] - } - ], - buttons: [ + type: 'label', + name: 'preview', + text: ' ', + style: 'font-size: 40px; text-align: center', + border: 1, + minWidth: 140, + minHeight: 80 + }, + { + type: 'spacer', + minHeight: 20 + }, { - text: "Close", onclick: function () { - win.close(); - } + type: 'label', + name: 'previewTitle', + text: ' ', + style: 'white-space: pre-wrap;', + border: 1, + minWidth: 140 } ] - }); - } - - editor.addCommand('mceShowCharmap', showDialog); - - editor.addButton('charmap', { - icon: 'charmap', - tooltip: 'Special character', - cmd: 'mceShowCharmap' - }); + } + ], + buttons: [{ + text: 'Close', + onclick: function () { + win.close(); + } + }] + }); + }; + var $_apxwbz9ajfuw8oo0 = { open: open }; - editor.addMenuItem('charmap', { - icon: 'charmap', - text: 'Special character', - cmd: 'mceShowCharmap', - context: 'insert' - }); + var register = function (editor) { + editor.addCommand('mceShowCharmap', function () { + $_apxwbz9ajfuw8oo0.open(editor); + }); + }; + var $_21ao9599jfuw8ony = { register: register }; - return { - getCharMap: getCharMap, - insertChar: insertChar - }; + var register$1 = function (editor) { + editor.addButton('charmap', { + icon: 'charmap', + tooltip: 'Special character', + cmd: 'mceShowCharmap' + }); + editor.addMenuItem('charmap', { + icon: 'charmap', + text: 'Special character', + cmd: 'mceShowCharmap', + context: 'insert' }); + }; + var $_9qh4i09cjfuw8oo4 = { register: register$1 }; - return function () { }; + global.add('charmap', function (editor) { + $_21ao9599jfuw8ony.register(editor); + $_9qh4i09cjfuw8oo4.register(editor); + return $_bi5zpv93jfuw8oni.get(editor); + }); + function Plugin () { } -); -dem('tinymce.plugins.charmap.Plugin')(); + + return Plugin; + +}()); })(); diff --git a/wp-includes/js/tinymce/plugins/charmap/plugin.min.js b/wp-includes/js/tinymce/plugins/charmap/plugin.min.js index 3fd9e23d5..9ea3f7575 100644 --- a/wp-includes/js/tinymce/plugins/charmap/plugin.min.js +++ b/wp-includes/js/tinymce/plugins/charmap/plugin.min.js @@ -1 +1 @@ -!function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("3",tinymce.util.Tools.resolve),g("1",["3"],function(a){return a("tinymce.PluginManager")}),g("2",["3"],function(a){return a("tinymce.util.Tools")}),g("0",["1","2"],function(a,b){return a.add("charmap",function(a){function c(){return[["160","no-break space"],["173","soft hyphen"],["34","quotation mark"],["162","cent sign"],["8364","euro sign"],["163","pound sign"],["165","yen sign"],["169","copyright sign"],["174","registered sign"],["8482","trade mark sign"],["8240","per mille sign"],["181","micro sign"],["183","middle dot"],["8226","bullet"],["8230","three dot leader"],["8242","minutes / feet"],["8243","seconds / inches"],["167","section sign"],["182","paragraph sign"],["223","sharp s / ess-zed"],["8249","single left-pointing angle quotation mark"],["8250","single right-pointing angle quotation mark"],["171","left pointing guillemet"],["187","right pointing guillemet"],["8216","left single quotation mark"],["8217","right single quotation mark"],["8220","left double quotation mark"],["8221","right double quotation mark"],["8218","single low-9 quotation mark"],["8222","double low-9 quotation mark"],["60","less-than sign"],["62","greater-than sign"],["8804","less-than or equal to"],["8805","greater-than or equal to"],["8211","en dash"],["8212","em dash"],["175","macron"],["8254","overline"],["164","currency sign"],["166","broken bar"],["168","diaeresis"],["161","inverted exclamation mark"],["191","turned question mark"],["710","circumflex accent"],["732","small tilde"],["176","degree sign"],["8722","minus sign"],["177","plus-minus sign"],["247","division sign"],["8260","fraction slash"],["215","multiplication sign"],["185","superscript one"],["178","superscript two"],["179","superscript three"],["188","fraction one quarter"],["189","fraction one half"],["190","fraction three quarters"],["402","function / florin"],["8747","integral"],["8721","n-ary sumation"],["8734","infinity"],["8730","square root"],["8764","similar to"],["8773","approximately equal to"],["8776","almost equal to"],["8800","not equal to"],["8801","identical to"],["8712","element of"],["8713","not an element of"],["8715","contains as member"],["8719","n-ary product"],["8743","logical and"],["8744","logical or"],["172","not sign"],["8745","intersection"],["8746","union"],["8706","partial differential"],["8704","for all"],["8707","there exists"],["8709","diameter"],["8711","backward difference"],["8727","asterisk operator"],["8733","proportional to"],["8736","angle"],["180","acute accent"],["184","cedilla"],["170","feminine ordinal indicator"],["186","masculine ordinal indicator"],["8224","dagger"],["8225","double dagger"],["192","A - grave"],["193","A - acute"],["194","A - circumflex"],["195","A - tilde"],["196","A - diaeresis"],["197","A - ring above"],["256","A - macron"],["198","ligature AE"],["199","C - cedilla"],["200","E - grave"],["201","E - acute"],["202","E - circumflex"],["203","E - diaeresis"],["274","E - macron"],["204","I - grave"],["205","I - acute"],["206","I - circumflex"],["207","I - diaeresis"],["298","I - macron"],["208","ETH"],["209","N - tilde"],["210","O - grave"],["211","O - acute"],["212","O - circumflex"],["213","O - tilde"],["214","O - diaeresis"],["216","O - slash"],["332","O - macron"],["338","ligature OE"],["352","S - caron"],["217","U - grave"],["218","U - acute"],["219","U - circumflex"],["220","U - diaeresis"],["362","U - macron"],["221","Y - acute"],["376","Y - diaeresis"],["562","Y - macron"],["222","THORN"],["224","a - grave"],["225","a - acute"],["226","a - circumflex"],["227","a - tilde"],["228","a - diaeresis"],["229","a - ring above"],["257","a - macron"],["230","ligature ae"],["231","c - cedilla"],["232","e - grave"],["233","e - acute"],["234","e - circumflex"],["235","e - diaeresis"],["275","e - macron"],["236","i - grave"],["237","i - acute"],["238","i - circumflex"],["239","i - diaeresis"],["299","i - macron"],["240","eth"],["241","n - tilde"],["242","o - grave"],["243","o - acute"],["244","o - circumflex"],["245","o - tilde"],["246","o - diaeresis"],["248","o slash"],["333","o macron"],["339","ligature oe"],["353","s - caron"],["249","u - grave"],["250","u - acute"],["251","u - circumflex"],["252","u - diaeresis"],["363","u - macron"],["253","y - acute"],["254","thorn"],["255","y - diaeresis"],["563","y - macron"],["913","Alpha"],["914","Beta"],["915","Gamma"],["916","Delta"],["917","Epsilon"],["918","Zeta"],["919","Eta"],["920","Theta"],["921","Iota"],["922","Kappa"],["923","Lambda"],["924","Mu"],["925","Nu"],["926","Xi"],["927","Omicron"],["928","Pi"],["929","Rho"],["931","Sigma"],["932","Tau"],["933","Upsilon"],["934","Phi"],["935","Chi"],["936","Psi"],["937","Omega"],["945","alpha"],["946","beta"],["947","gamma"],["948","delta"],["949","epsilon"],["950","zeta"],["951","eta"],["952","theta"],["953","iota"],["954","kappa"],["955","lambda"],["956","mu"],["957","nu"],["958","xi"],["959","omicron"],["960","pi"],["961","rho"],["962","final sigma"],["963","sigma"],["964","tau"],["965","upsilon"],["966","phi"],["967","chi"],["968","psi"],["969","omega"],["8501","alef symbol"],["982","pi symbol"],["8476","real part symbol"],["978","upsilon - hook symbol"],["8472","Weierstrass p"],["8465","imaginary part"],["8592","leftwards arrow"],["8593","upwards arrow"],["8594","rightwards arrow"],["8595","downwards arrow"],["8596","left right arrow"],["8629","carriage return"],["8656","leftwards double arrow"],["8657","upwards double arrow"],["8658","rightwards double arrow"],["8659","downwards double arrow"],["8660","left right double arrow"],["8756","therefore"],["8834","subset of"],["8835","superset of"],["8836","not a subset of"],["8838","subset of or equal to"],["8839","superset of or equal to"],["8853","circled plus"],["8855","circled times"],["8869","perpendicular"],["8901","dot operator"],["8968","left ceiling"],["8969","right ceiling"],["8970","left floor"],["8971","right floor"],["9001","left-pointing angle bracket"],["9002","right-pointing angle bracket"],["9674","lozenge"],["9824","black spade suit"],["9827","black club suit"],["9829","black heart suit"],["9830","black diamond suit"],["8194","en space"],["8195","em space"],["8201","thin space"],["8204","zero width non-joiner"],["8205","zero width joiner"],["8206","left-to-right mark"],["8207","right-to-left mark"]]}function d(a){return b.grep(a,function(a){return j(a)&&2==a.length})}function e(a){return j(a)?[].concat(d(a)):"function"==typeof a?a():[]}function f(b){var c=a.settings;return c.charmap&&(b=e(c.charmap)),c.charmap_append?[].concat(b).concat(e(c.charmap_append)):b}function g(){return f(c())}function h(b){a.fire("insertCustomChar",{chr:b}).chr,a.execCommand("mceInsertContent",!1,b)}function i(){function b(a){for(;a;){if("TD"==a.nodeName)return a;a=a.parentNode}}var c,d,e,f;c='<table role="presentation" cellspacing="0" class="mce-charmap"><tbody>';var i=g(),j=Math.min(i.length,25),k=Math.ceil(i.length/j);for(e=0;e<k;e++){for(c+="<tr>",d=0;d<j;d++){var l=e*j+d;if(l<i.length){var m=i[l],n=m?String.fromCharCode(parseInt(m[0],10)):" ";c+='<td title="'+m[1]+'"><div tabindex="-1" title="'+m[1]+'" role="button" data-chr="'+n+'">'+n+"</div></td>"}else c+="<td />"}c+="</tr>"}c+="</tbody></table>";var o={type:"container",html:c,onclick:function(a){var c=a.target;if(/^(TD|DIV)$/.test(c.nodeName)){var d=b(c).firstChild;d&&d.hasAttribute("data-chr")&&(h(d.getAttribute("data-chr")),a.ctrlKey||f.close())}},onmouseover:function(a){var c=b(a.target);c&&c.firstChild?(f.find("#preview").text(c.firstChild.firstChild.data),f.find("#previewTitle").text(c.title)):(f.find("#preview").text(" "),f.find("#previewTitle").text(" "))}};f=a.windowManager.open({title:"Special character",spacing:10,padding:10,items:[o,{type:"container",layout:"flex",direction:"column",align:"center",spacing:5,minWidth:160,minHeight:160,items:[{type:"label",name:"preview",text:" ",style:"font-size: 40px; text-align: center",border:1,minWidth:140,minHeight:80},{type:"spacer",minHeight:20},{type:"label",name:"previewTitle",text:" ",style:"white-space: pre-wrap;",border:1,minWidth:140}]}],buttons:[{text:"Close",onclick:function(){f.close()}}]})}var j=b.isArray;return a.addCommand("mceShowCharmap",i),a.addButton("charmap",{icon:"charmap",tooltip:"Special character",cmd:"mceShowCharmap"}),a.addMenuItem("charmap",{icon:"charmap",text:"Special character",cmd:"mceShowCharmap",context:"insert"}),{getCharMap:g,insertChar:h}}),function(){}}),d("0")()}(); \ No newline at end of file +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),i=function(e,t){return e.fire("insertCustomChar",{chr:t})},l=function(e,t){var a=i(e,t).chr;e.execCommand("mceInsertContent",!1,a)},a=tinymce.util.Tools.resolve("tinymce.util.Tools"),r=function(e){return e.settings.charmap},n=function(e){return e.settings.charmap_append},o=a.isArray,c=function(e){return o(e)?[].concat((t=e,a.grep(t,function(e){return o(e)&&2===e.length}))):"function"==typeof e?e():[];var t},s=function(e){return function(e,t){var a=r(e);a&&(t=c(a));var i=n(e);return i?[].concat(t).concat(c(i)):t}(e,[["160","no-break space"],["173","soft hyphen"],["34","quotation mark"],["162","cent sign"],["8364","euro sign"],["163","pound sign"],["165","yen sign"],["169","copyright sign"],["174","registered sign"],["8482","trade mark sign"],["8240","per mille sign"],["181","micro sign"],["183","middle dot"],["8226","bullet"],["8230","three dot leader"],["8242","minutes / feet"],["8243","seconds / inches"],["167","section sign"],["182","paragraph sign"],["223","sharp s / ess-zed"],["8249","single left-pointing angle quotation mark"],["8250","single right-pointing angle quotation mark"],["171","left pointing guillemet"],["187","right pointing guillemet"],["8216","left single quotation mark"],["8217","right single quotation mark"],["8220","left double quotation mark"],["8221","right double quotation mark"],["8218","single low-9 quotation mark"],["8222","double low-9 quotation mark"],["60","less-than sign"],["62","greater-than sign"],["8804","less-than or equal to"],["8805","greater-than or equal to"],["8211","en dash"],["8212","em dash"],["175","macron"],["8254","overline"],["164","currency sign"],["166","broken bar"],["168","diaeresis"],["161","inverted exclamation mark"],["191","turned question mark"],["710","circumflex accent"],["732","small tilde"],["176","degree sign"],["8722","minus sign"],["177","plus-minus sign"],["247","division sign"],["8260","fraction slash"],["215","multiplication sign"],["185","superscript one"],["178","superscript two"],["179","superscript three"],["188","fraction one quarter"],["189","fraction one half"],["190","fraction three quarters"],["402","function / florin"],["8747","integral"],["8721","n-ary sumation"],["8734","infinity"],["8730","square root"],["8764","similar to"],["8773","approximately equal to"],["8776","almost equal to"],["8800","not equal to"],["8801","identical to"],["8712","element of"],["8713","not an element of"],["8715","contains as member"],["8719","n-ary product"],["8743","logical and"],["8744","logical or"],["172","not sign"],["8745","intersection"],["8746","union"],["8706","partial differential"],["8704","for all"],["8707","there exists"],["8709","diameter"],["8711","backward difference"],["8727","asterisk operator"],["8733","proportional to"],["8736","angle"],["180","acute accent"],["184","cedilla"],["170","feminine ordinal indicator"],["186","masculine ordinal indicator"],["8224","dagger"],["8225","double dagger"],["192","A - grave"],["193","A - acute"],["194","A - circumflex"],["195","A - tilde"],["196","A - diaeresis"],["197","A - ring above"],["256","A - macron"],["198","ligature AE"],["199","C - cedilla"],["200","E - grave"],["201","E - acute"],["202","E - circumflex"],["203","E - diaeresis"],["274","E - macron"],["204","I - grave"],["205","I - acute"],["206","I - circumflex"],["207","I - diaeresis"],["298","I - macron"],["208","ETH"],["209","N - tilde"],["210","O - grave"],["211","O - acute"],["212","O - circumflex"],["213","O - tilde"],["214","O - diaeresis"],["216","O - slash"],["332","O - macron"],["338","ligature OE"],["352","S - caron"],["217","U - grave"],["218","U - acute"],["219","U - circumflex"],["220","U - diaeresis"],["362","U - macron"],["221","Y - acute"],["376","Y - diaeresis"],["562","Y - macron"],["222","THORN"],["224","a - grave"],["225","a - acute"],["226","a - circumflex"],["227","a - tilde"],["228","a - diaeresis"],["229","a - ring above"],["257","a - macron"],["230","ligature ae"],["231","c - cedilla"],["232","e - grave"],["233","e - acute"],["234","e - circumflex"],["235","e - diaeresis"],["275","e - macron"],["236","i - grave"],["237","i - acute"],["238","i - circumflex"],["239","i - diaeresis"],["299","i - macron"],["240","eth"],["241","n - tilde"],["242","o - grave"],["243","o - acute"],["244","o - circumflex"],["245","o - tilde"],["246","o - diaeresis"],["248","o slash"],["333","o macron"],["339","ligature oe"],["353","s - caron"],["249","u - grave"],["250","u - acute"],["251","u - circumflex"],["252","u - diaeresis"],["363","u - macron"],["253","y - acute"],["254","thorn"],["255","y - diaeresis"],["563","y - macron"],["913","Alpha"],["914","Beta"],["915","Gamma"],["916","Delta"],["917","Epsilon"],["918","Zeta"],["919","Eta"],["920","Theta"],["921","Iota"],["922","Kappa"],["923","Lambda"],["924","Mu"],["925","Nu"],["926","Xi"],["927","Omicron"],["928","Pi"],["929","Rho"],["931","Sigma"],["932","Tau"],["933","Upsilon"],["934","Phi"],["935","Chi"],["936","Psi"],["937","Omega"],["945","alpha"],["946","beta"],["947","gamma"],["948","delta"],["949","epsilon"],["950","zeta"],["951","eta"],["952","theta"],["953","iota"],["954","kappa"],["955","lambda"],["956","mu"],["957","nu"],["958","xi"],["959","omicron"],["960","pi"],["961","rho"],["962","final sigma"],["963","sigma"],["964","tau"],["965","upsilon"],["966","phi"],["967","chi"],["968","psi"],["969","omega"],["8501","alef symbol"],["982","pi symbol"],["8476","real part symbol"],["978","upsilon - hook symbol"],["8472","Weierstrass p"],["8465","imaginary part"],["8592","leftwards arrow"],["8593","upwards arrow"],["8594","rightwards arrow"],["8595","downwards arrow"],["8596","left right arrow"],["8629","carriage return"],["8656","leftwards double arrow"],["8657","upwards double arrow"],["8658","rightwards double arrow"],["8659","downwards double arrow"],["8660","left right double arrow"],["8756","therefore"],["8834","subset of"],["8835","superset of"],["8836","not a subset of"],["8838","subset of or equal to"],["8839","superset of or equal to"],["8853","circled plus"],["8855","circled times"],["8869","perpendicular"],["8901","dot operator"],["8968","left ceiling"],["8969","right ceiling"],["8970","left floor"],["8971","right floor"],["9001","left-pointing angle bracket"],["9002","right-pointing angle bracket"],["9674","lozenge"],["9824","black spade suit"],["9827","black club suit"],["9829","black heart suit"],["9830","black diamond suit"],["8194","en space"],["8195","em space"],["8201","thin space"],["8204","zero width non-joiner"],["8205","zero width joiner"],["8206","left-to-right mark"],["8207","right-to-left mark"]])},t=function(t){return{getCharMap:function(){return s(t)},insertChar:function(e){l(t,e)}}},u=function(e){var t,a,i,r=Math.min(e.length,25),n=Math.ceil(e.length/r);for(t='<table role="presentation" cellspacing="0" class="mce-charmap"><tbody>',i=0;i<n;i++){for(t+="<tr>",a=0;a<r;a++){var o=i*r+a;if(o<e.length){var l=e[o],c=parseInt(l[0],10),s=l?String.fromCharCode(c):" ";t+='<td title="'+l[1]+'"><div tabindex="-1" title="'+l[1]+'" role="button" data-chr="'+c+'">'+s+"</div></td>"}else t+="<td />"}t+="</tr>"}return t+="</tbody></table>"},d=function(e){for(;e;){if("TD"===e.nodeName)return e;e=e.parentNode}},m=function(n){var o,e={type:"container",html:u(s(n)),onclick:function(e){var t=e.target;if(/^(TD|DIV)$/.test(t.nodeName)){var a=d(t).firstChild;if(a&&a.hasAttribute("data-chr")){var i=a.getAttribute("data-chr"),r=parseInt(i,10);isNaN(r)||l(n,String.fromCharCode(r)),e.ctrlKey||o.close()}}},onmouseover:function(e){var t=d(e.target);t&&t.firstChild?(o.find("#preview").text(t.firstChild.firstChild.data),o.find("#previewTitle").text(t.title)):(o.find("#preview").text(" "),o.find("#previewTitle").text(" "))}};o=n.windowManager.open({title:"Special character",spacing:10,padding:10,items:[e,{type:"container",layout:"flex",direction:"column",align:"center",spacing:5,minWidth:160,minHeight:160,items:[{type:"label",name:"preview",text:" ",style:"font-size: 40px; text-align: center",border:1,minWidth:140,minHeight:80},{type:"spacer",minHeight:20},{type:"label",name:"previewTitle",text:" ",style:"white-space: pre-wrap;",border:1,minWidth:140}]}],buttons:[{text:"Close",onclick:function(){o.close()}}]})},g=function(e){e.addCommand("mceShowCharmap",function(){m(e)})},p=function(e){e.addButton("charmap",{icon:"charmap",tooltip:"Special character",cmd:"mceShowCharmap"}),e.addMenuItem("charmap",{icon:"charmap",text:"Special character",cmd:"mceShowCharmap",context:"insert"})};e.add("charmap",function(e){return g(e),p(e),t(e)})}(); \ No newline at end of file diff --git a/wp-includes/js/tinymce/plugins/colorpicker/plugin.js b/wp-includes/js/tinymce/plugins/colorpicker/plugin.js index 2f4954f21..63d2dd87b 100644 --- a/wp-includes/js/tinymce/plugins/colorpicker/plugin.js +++ b/wp-includes/js/tinymce/plugins/colorpicker/plugin.js @@ -1,255 +1,126 @@ (function () { +var colorpicker = (function () { + 'use strict'; -var defs = {}; // id -> {dependencies, definition, instance (possibly undefined)} + var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); -// Used when there is no 'main' module. -// The name is probably (hopefully) unique so minification removes for releases. -var register_3795 = function (id) { - var module = dem(id); - var fragments = id.split('.'); - var target = Function('return this;')(); - for (var i = 0; i < fragments.length - 1; ++i) { - if (target[fragments[i]] === undefined) - target[fragments[i]] = {}; - target = target[fragments[i]]; - } - target[fragments[fragments.length - 1]] = module; -}; - -var instantiate = function (id) { - var actual = defs[id]; - var dependencies = actual.deps; - var definition = actual.defn; - var len = dependencies.length; - var instances = new Array(len); - for (var i = 0; i < len; ++i) - instances[i] = dem(dependencies[i]); - var defResult = definition.apply(null, instances); - if (defResult === undefined) - throw 'module [' + id + '] returned undefined'; - actual.instance = defResult; -}; + var global$1 = tinymce.util.Tools.resolve('tinymce.util.Color'); -var def = function (id, dependencies, definition) { - if (typeof id !== 'string') - throw 'module id must be a string'; - else if (dependencies === undefined) - throw 'no dependencies for ' + id; - else if (definition === undefined) - throw 'no definition function for ' + id; - defs[id] = { - deps: dependencies, - defn: definition, - instance: undefined + var showPreview = function (win, hexColor) { + win.find('#preview')[0].getEl().style.background = hexColor; }; -}; - -var dem = function (id) { - var actual = defs[id]; - if (actual === undefined) - throw 'module [' + id + '] was undefined'; - else if (actual.instance === undefined) - instantiate(id); - return actual.instance; -}; - -var req = function (ids, callback) { - var len = ids.length; - var instances = new Array(len); - for (var i = 0; i < len; ++i) - instances.push(dem(ids[i])); - callback.apply(null, callback); -}; - -var ephox = {}; - -ephox.bolt = { - module: { - api: { - define: def, - require: req, - demand: dem - } - } -}; - -var define = def; -var require = req; -var demand = dem; -// this helps with minificiation when using a lot of global references -var defineGlobal = function (id, ref) { - define(id, [], function () { return ref; }); -}; -/*jsc -["tinymce.plugins.colorpicker.Plugin","tinymce.core.PluginManager","tinymce.core.util.Color","global!tinymce.util.Tools.resolve"] -jsc*/ -defineGlobal("global!tinymce.util.Tools.resolve", tinymce.util.Tools.resolve); -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.PluginManager', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.PluginManager'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.util.Color', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.util.Color'); - } -); - -/** - * Plugin.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -/** - * This class contains all core logic for the colorpicker plugin. - * - * @class tinymce.colorpicker.Plugin - * @private - */ -define( - 'tinymce.plugins.colorpicker.Plugin', - [ - 'tinymce.core.PluginManager', - 'tinymce.core.util.Color' - ], - function (PluginManager, Color) { - PluginManager.add('colorpicker', function (editor) { - function colorPickerCallback(callback, value) { - function setColor(value) { - var color = new Color(value), rgb = color.toRgb(); - - win.fromJSON({ - r: rgb.r, - g: rgb.g, - b: rgb.b, - hex: color.toHex().substr(1) - }); - - showPreview(color.toHex()); - } - - function showPreview(hexColor) { - win.find('#preview')[0].getEl().style.background = hexColor; - } - - var win = editor.windowManager.open({ - title: 'Color', - items: { - type: 'container', - layout: 'flex', - direction: 'row', - align: 'stretch', - padding: 5, - spacing: 10, + var setColor = function (win, value) { + var color = global$1(value), rgb = color.toRgb(); + win.fromJSON({ + r: rgb.r, + g: rgb.g, + b: rgb.b, + hex: color.toHex().substr(1) + }); + showPreview(win, color.toHex()); + }; + var open = function (editor, callback, value) { + var win = editor.windowManager.open({ + title: 'Color', + items: { + type: 'container', + layout: 'flex', + direction: 'row', + align: 'stretch', + padding: 5, + spacing: 10, + items: [ + { + type: 'colorpicker', + value: value, + onchange: function () { + var rgb = this.rgb(); + if (win) { + win.find('#r').value(rgb.r); + win.find('#g').value(rgb.g); + win.find('#b').value(rgb.b); + win.find('#hex').value(this.value().substr(1)); + showPreview(win, this.value()); + } + } + }, + { + type: 'form', + padding: 0, + labelGap: 5, + defaults: { + type: 'textbox', + size: 7, + value: '0', + flex: 1, + spellcheck: false, + onchange: function () { + var colorPickerCtrl = win.find('colorpicker')[0]; + var name, value; + name = this.name(); + value = this.value(); + if (name === 'hex') { + value = '#' + value; + setColor(win, value); + colorPickerCtrl.value(value); + return; + } + value = { + r: win.find('#r').value(), + g: win.find('#g').value(), + b: win.find('#b').value() + }; + colorPickerCtrl.value(value); + setColor(win, value); + } + }, items: [ { - type: 'colorpicker', - value: value, - onchange: function () { - var rgb = this.rgb(); - - if (win) { - win.find('#r').value(rgb.r); - win.find('#g').value(rgb.g); - win.find('#b').value(rgb.b); - win.find('#hex').value(this.value().substr(1)); - showPreview(this.value()); - } - } + name: 'r', + label: 'R', + autofocus: 1 }, { - type: 'form', - padding: 0, - labelGap: 5, - defaults: { - type: 'textbox', - size: 7, - value: '0', - flex: 1, - spellcheck: false, - onchange: function () { - var colorPickerCtrl = win.find('colorpicker')[0]; - var name, value; - - name = this.name(); - value = this.value(); - - if (name == "hex") { - value = '#' + value; - setColor(value); - colorPickerCtrl.value(value); - return; - } - - value = { - r: win.find('#r').value(), - g: win.find('#g').value(), - b: win.find('#b').value() - }; - - colorPickerCtrl.value(value); - setColor(value); - } - }, - items: [ - { name: 'r', label: 'R', autofocus: 1 }, - { name: 'g', label: 'G' }, - { name: 'b', label: 'B' }, - { name: 'hex', label: '#', value: '000000' }, - { name: 'preview', type: 'container', border: 1 } - ] + name: 'g', + label: 'G' + }, + { + name: 'b', + label: 'B' + }, + { + name: 'hex', + label: '#', + value: '000000' + }, + { + name: 'preview', + type: 'container', + border: 1 } ] - }, - onSubmit: function () { - callback('#' + this.toJSON().hex); } - }); - - setColor(value); - } - - if (!editor.settings.color_picker_callback) { - editor.settings.color_picker_callback = colorPickerCallback; + ] + }, + onSubmit: function () { + callback('#' + win.toJSON().hex); } }); + setColor(win, value); + }; + var $_3y7nz6a1jfuw8osh = { open: open }; - return function () { }; + global.add('colorpicker', function (editor) { + if (!editor.settings.color_picker_callback) { + editor.settings.color_picker_callback = function (callback, value) { + $_3y7nz6a1jfuw8osh.open(editor, callback, value); + }; + } + }); + function Plugin () { } -); -dem('tinymce.plugins.colorpicker.Plugin')(); + + return Plugin; + +}()); })(); diff --git a/wp-includes/js/tinymce/plugins/colorpicker/plugin.min.js b/wp-includes/js/tinymce/plugins/colorpicker/plugin.min.js index 35bfea214..10317a5f6 100644 --- a/wp-includes/js/tinymce/plugins/colorpicker/plugin.min.js +++ b/wp-includes/js/tinymce/plugins/colorpicker/plugin.min.js @@ -1 +1 @@ -!function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("3",tinymce.util.Tools.resolve),g("1",["3"],function(a){return a("tinymce.PluginManager")}),g("2",["3"],function(a){return a("tinymce.util.Color")}),g("0",["1","2"],function(a,b){return a.add("colorpicker",function(a){function c(c,d){function e(a){var c=new b(a),d=c.toRgb();g.fromJSON({r:d.r,g:d.g,b:d.b,hex:c.toHex().substr(1)}),f(c.toHex())}function f(a){g.find("#preview")[0].getEl().style.background=a}var g=a.windowManager.open({title:"Color",items:{type:"container",layout:"flex",direction:"row",align:"stretch",padding:5,spacing:10,items:[{type:"colorpicker",value:d,onchange:function(){var a=this.rgb();g&&(g.find("#r").value(a.r),g.find("#g").value(a.g),g.find("#b").value(a.b),g.find("#hex").value(this.value().substr(1)),f(this.value()))}},{type:"form",padding:0,labelGap:5,defaults:{type:"textbox",size:7,value:"0",flex:1,spellcheck:!1,onchange:function(){var a,b,c=g.find("colorpicker")[0];return a=this.name(),b=this.value(),"hex"==a?(b="#"+b,e(b),void c.value(b)):(b={r:g.find("#r").value(),g:g.find("#g").value(),b:g.find("#b").value()},c.value(b),void e(b))}},items:[{name:"r",label:"R",autofocus:1},{name:"g",label:"G"},{name:"b",label:"B"},{name:"hex",label:"#",value:"000000"},{name:"preview",type:"container",border:1}]}]},onSubmit:function(){c("#"+this.toJSON().hex)}});e(d)}a.settings.color_picker_callback||(a.settings.color_picker_callback=c)}),function(){}}),d("0")()}(); \ No newline at end of file +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),l=tinymce.util.Tools.resolve("tinymce.util.Color"),a=function(e,n){e.find("#preview")[0].getEl().style.background=n},o=function(e,n){var i=l(n),t=i.toRgb();e.fromJSON({r:t.r,g:t.g,b:t.b,hex:i.toHex().substr(1)}),a(e,i.toHex())},t=function(e,n,i){var t=e.windowManager.open({title:"Color",items:{type:"container",layout:"flex",direction:"row",align:"stretch",padding:5,spacing:10,items:[{type:"colorpicker",value:i,onchange:function(){var e=this.rgb();t&&(t.find("#r").value(e.r),t.find("#g").value(e.g),t.find("#b").value(e.b),t.find("#hex").value(this.value().substr(1)),a(t,this.value()))}},{type:"form",padding:0,labelGap:5,defaults:{type:"textbox",size:7,value:"0",flex:1,spellcheck:!1,onchange:function(){var e,n,i=t.find("colorpicker")[0];if(e=this.name(),n=this.value(),"hex"===e)return o(t,n="#"+n),void i.value(n);n={r:t.find("#r").value(),g:t.find("#g").value(),b:t.find("#b").value()},i.value(n),o(t,n)}},items:[{name:"r",label:"R",autofocus:1},{name:"g",label:"G"},{name:"b",label:"B"},{name:"hex",label:"#",value:"000000"},{name:"preview",type:"container",border:1}]}]},onSubmit:function(){n("#"+t.toJSON().hex)}});o(t,i)};e.add("colorpicker",function(i){i.settings.color_picker_callback||(i.settings.color_picker_callback=function(e,n){t(i,e,n)})})}(); \ No newline at end of file diff --git a/wp-includes/js/tinymce/plugins/compat3x/plugin.js b/wp-includes/js/tinymce/plugins/compat3x/plugin.js index 4bab6cb83..92d433edc 100644 --- a/wp-includes/js/tinymce/plugins/compat3x/plugin.js +++ b/wp-includes/js/tinymce/plugins/compat3x/plugin.js @@ -52,7 +52,7 @@ argsMap = argsMap.split(" "); } - if (argsMap && typeof argsMap != "function") { + if (argsMap && typeof argsMap !== "function") { for (var i = 0; i < argsMap.length; i++) { callbackArgs.push(e[argsMap[i]]); } @@ -287,7 +287,10 @@ }); } - tinymce.on('SetupEditor', patchEditor); + tinymce.on('SetupEditor', function (e) { + patchEditor(e.editor); + }); + tinymce.PluginManager.add("compat3x", patchEditor); tinymce.addI18n = function (prefix, o) { diff --git a/wp-includes/js/tinymce/plugins/compat3x/plugin.min.js b/wp-includes/js/tinymce/plugins/compat3x/plugin.min.js index 9a8fcc619..8562cb7c7 100644 --- a/wp-includes/js/tinymce/plugins/compat3x/plugin.min.js +++ b/wp-includes/js/tinymce/plugins/compat3x/plugin.min.js @@ -1 +1 @@ -!function(a){function b(){}function c(a){!f&&window&&window.console&&(f=!0,console.log("Deprecated TinyMCE API call: "+a))}function d(a,d,e,f){a=a||this;var g=[];return d?(this.add=function(b,h,i){function j(c){var g=[];if("string"==typeof e&&(e=e.split(" ")),e&&"function"!=typeof e)for(var i=0;i<e.length;i++)g.push(c[e[i]]);("function"!=typeof e||(g=e(d,c,a)))&&(e||(g=[c]),g.unshift(f||a),b.apply(h||f||a,g)===!1&&c.stopImmediatePropagation())}c("<target>.on"+d+".add(..)"),a.on(d,j,i);var k={original:b,patched:j};return g.push(k),j},this.addToTop=function(a,b){this.add(a,b,!0)},this.remove=function(b){return g.forEach(function(c,e){if(c.original===b)return g.splice(e,1),a.off(d,c.patched)}),a.off(d,b)},void(this.dispatch=function(){return a.fire(d),!0})):void(this.add=this.addToTop=this.remove=this.dispatch=b)}function e(e){function f(b){var c=e.settings.language||"en",d=[c,b].join("."),f=a.i18n.translate(d);return d!==f?f:a.i18n.translate(b)}function g(b,c){a.each(b.split(" "),function(a){e["on"+a]=new d(e,a,c)})}function h(a,b,c){return[b.level,c]}function i(a){return function(b,c){if(!c.selection&&!a||c.selection==a)return[c]}}function j(){function b(){return j()}var d={},e="add addMenu addSeparator collapse createMenu destroy displayColor expand focus getLength hasMenus hideMenu isActive isCollapsed isDisabled isRendered isSelected mark postRender remove removeAll renderHTML renderMenu renderNode renderTo select selectByIndex setActive setAriaProperty setColor setDisabled setSelected setState showMenu update";return c("editor.controlManager.*"),a.each(e.split(" "),function(a){d[a]=b}),d}if(!e.controlManager){e.controlManager={buttons:{},setDisabled:function(a,b){c("controlManager.setDisabled(..)"),this.buttons[a]&&this.buttons[a].disabled(b)},setActive:function(a,b){c("controlManager.setActive(..)"),this.buttons[a]&&this.buttons[a].active(b)},onAdd:new d,onPostRender:new d,add:function(a){return a},createButton:j,createColorSplitButton:j,createControl:j,createDropMenu:j,createListBox:j,createMenuButton:j,createSeparator:j,createSplitButton:j,createToolbar:j,createToolbarGroup:j,destroy:b,get:b,setControlType:j},g("PreInit BeforeRenderUI PostRender Load Init Remove Activate Deactivate","editor"),g("Click MouseUp MouseDown DblClick KeyDown KeyUp KeyPress ContextMenu Paste Submit Reset"),g("BeforeExecCommand ExecCommand","command ui value args"),g("PreProcess PostProcess LoadContent SaveContent Change"),g("BeforeSetContent BeforeGetContent SetContent GetContent",i(!1)),g("SetProgressState","state time"),g("VisualAid","element hasVisual"),g("Undo Redo",h),g("NodeChange",function(a,b){return[e.controlManager,b.element,e.selection.isCollapsed(),b]});var k=e.addButton;e.addButton=function(a,b){function c(){if(e.controlManager.buttons[a]=this,d)return d.apply(this,arguments)}var d;for(var g in b)"onpostrender"===g.toLowerCase()&&(d=b[g],b.onPostRender=c);return d||(b.onPostRender=c),b.title&&(b.title=f(b.title)),k.call(this,a,b)},e.on("init",function(){var a=e.undoManager,b=e.selection;a.onUndo=new d(e,"Undo",h,null,a),a.onRedo=new d(e,"Redo",h,null,a),a.onBeforeAdd=new d(e,"BeforeAddUndo",null,a),a.onAdd=new d(e,"AddUndo",null,a),b.onBeforeGetContent=new d(e,"BeforeGetContent",i(!0),b),b.onGetContent=new d(e,"GetContent",i(!0),b),b.onBeforeSetContent=new d(e,"BeforeSetContent",i(!0),b),b.onSetContent=new d(e,"SetContent",i(!0),b)}),e.on("BeforeRenderUI",function(){var b=e.windowManager;b.onOpen=new d,b.onClose=new d,b.createInstance=function(b,d,e,f,g,h){c("windowManager.createInstance(..)");var i=a.resolve(b);return new i(d,e,f,g,h)}})}}var f;a.util.Dispatcher=d,a.onBeforeUnload=new d(a,"BeforeUnload"),a.onAddEditor=new d(a,"AddEditor","editor"),a.onRemoveEditor=new d(a,"RemoveEditor","editor"),a.util.Cookie={get:b,getHash:b,remove:b,set:b,setHash:b},a.on("SetupEditor",e),a.PluginManager.add("compat3x",e),a.addI18n=function(b,c){var d=a.util.I18n,e=a.each;return"string"==typeof b&&b.indexOf(".")===-1?void d.add(b,c):void(a.is(b,"string")?e(c,function(a,c){d.data[b+"."+c]=a}):e(b,function(a,b){e(a,function(a,c){e(a,function(a,e){"common"===c?d.data[b+"."+e]=a:d.data[b+"."+c+"."+e]=a})})}))}}(tinymce); \ No newline at end of file +!function(u){var t;function l(){}function f(e){!t&&window&&window.console&&(t=!0,console.log("Deprecated TinyMCE API call: "+e))}function i(i,a,d,s){i=i||this;var c=[];a?(this.add=function(o,r,e){function t(e){var t=[];if("string"==typeof d&&(d=d.split(" ")),d&&"function"!=typeof d)for(var n=0;n<d.length;n++)t.push(e[d[n]]);("function"!=typeof d||(t=d(a,e,i)))&&(d||(t=[e]),t.unshift(s||i),!1===o.apply(r||s||i,t)&&e.stopImmediatePropagation())}f("<target>.on"+a+".add(..)"),i.on(a,t,e);var n={original:o,patched:t};return c.push(n),t},this.addToTop=function(e,t){this.add(e,t,!0)},this.remove=function(n){return c.forEach(function(e,t){if(e.original===n)return c.splice(t,1),i.off(a,e.patched)}),i.off(a,n)},this.dispatch=function(){return i.fire(a),!0}):this.add=this.addToTop=this.remove=this.dispatch=l}function n(s){function e(e,t){u.each(e.split(" "),function(e){s["on"+e]=new i(s,e,t)})}function n(e,t,n){return[t.level,n]}function o(n){return function(e,t){if(!t.selection&&!n||t.selection==n)return[t]}}if(!s.controlManager){s.controlManager={buttons:{},setDisabled:function(e,t){f("controlManager.setDisabled(..)"),this.buttons[e]&&this.buttons[e].disabled(t)},setActive:function(e,t){f("controlManager.setActive(..)"),this.buttons[e]&&this.buttons[e].active(t)},onAdd:new i,onPostRender:new i,add:function(e){return e},createButton:r,createColorSplitButton:r,createControl:r,createDropMenu:r,createListBox:r,createMenuButton:r,createSeparator:r,createSplitButton:r,createToolbar:r,createToolbarGroup:r,destroy:l,get:l,setControlType:r},e("PreInit BeforeRenderUI PostRender Load Init Remove Activate Deactivate","editor"),e("Click MouseUp MouseDown DblClick KeyDown KeyUp KeyPress ContextMenu Paste Submit Reset"),e("BeforeExecCommand ExecCommand","command ui value args"),e("PreProcess PostProcess LoadContent SaveContent Change"),e("BeforeSetContent BeforeGetContent SetContent GetContent",o(!1)),e("SetProgressState","state time"),e("VisualAid","element hasVisual"),e("Undo Redo",n),e("NodeChange",function(e,t){return[s.controlManager,t.element,s.selection.isCollapsed(),t]});var c=s.addButton;s.addButton=function(e,t){var n,o,r,i;function a(){if(s.controlManager.buttons[e]=this,n)return n.apply(this,arguments)}for(var d in t)"onpostrender"===d.toLowerCase()&&(n=t[d],t.onPostRender=a);return n||(t.onPostRender=a),t.title&&(t.title=(o=t.title,r=[s.settings.language||"en",o].join("."),i=u.i18n.translate(r),r!==i?i:u.i18n.translate(o))),c.call(this,e,t)},s.on("init",function(){var e=s.undoManager,t=s.selection;e.onUndo=new i(s,"Undo",n,null,e),e.onRedo=new i(s,"Redo",n,null,e),e.onBeforeAdd=new i(s,"BeforeAddUndo",null,e),e.onAdd=new i(s,"AddUndo",null,e),t.onBeforeGetContent=new i(s,"BeforeGetContent",o(!0),t),t.onGetContent=new i(s,"GetContent",o(!0),t),t.onBeforeSetContent=new i(s,"BeforeSetContent",o(!0),t),t.onSetContent=new i(s,"SetContent",o(!0),t)}),s.on("BeforeRenderUI",function(){var e=s.windowManager;e.onOpen=new i,e.onClose=new i,e.createInstance=function(e,t,n,o,r,i){return f("windowManager.createInstance(..)"),new(u.resolve(e))(t,n,o,r,i)}})}function r(){var t={};function n(){return r()}return f("editor.controlManager.*"),u.each("add addMenu addSeparator collapse createMenu destroy displayColor expand focus getLength hasMenus hideMenu isActive isCollapsed isDisabled isRendered isSelected mark postRender remove removeAll renderHTML renderMenu renderNode renderTo select selectByIndex setActive setAriaProperty setColor setDisabled setSelected setState showMenu update".split(" "),function(e){t[e]=n}),t}}u.util.Dispatcher=i,u.onBeforeUnload=new i(u,"BeforeUnload"),u.onAddEditor=new i(u,"AddEditor","editor"),u.onRemoveEditor=new i(u,"RemoveEditor","editor"),u.util.Cookie={get:l,getHash:l,remove:l,set:l,setHash:l},u.on("SetupEditor",function(e){n(e.editor)}),u.PluginManager.add("compat3x",n),u.addI18n=function(n,e){var r=u.util.I18n,t=u.each;"string"!=typeof n||-1!==n.indexOf(".")?u.is(n,"string")?t(e,function(e,t){r.data[n+"."+t]=e}):t(n,function(e,o){t(e,function(e,n){t(e,function(e,t){"common"===n?r.data[o+"."+t]=e:r.data[o+"."+n+"."+t]=e})})}):r.add(n,e)}}(tinymce); \ No newline at end of file diff --git a/wp-includes/js/tinymce/plugins/directionality/plugin.js b/wp-includes/js/tinymce/plugins/directionality/plugin.js index 74b85b519..73edbfbdb 100644 --- a/wp-includes/js/tinymce/plugins/directionality/plugin.js +++ b/wp-includes/js/tinymce/plugins/directionality/plugin.js @@ -1,207 +1,66 @@ (function () { - -var defs = {}; // id -> {dependencies, definition, instance (possibly undefined)} - -// Used when there is no 'main' module. -// The name is probably (hopefully) unique so minification removes for releases. -var register_3795 = function (id) { - var module = dem(id); - var fragments = id.split('.'); - var target = Function('return this;')(); - for (var i = 0; i < fragments.length - 1; ++i) { - if (target[fragments[i]] === undefined) - target[fragments[i]] = {}; - target = target[fragments[i]]; - } - target[fragments[fragments.length - 1]] = module; -}; - -var instantiate = function (id) { - var actual = defs[id]; - var dependencies = actual.deps; - var definition = actual.defn; - var len = dependencies.length; - var instances = new Array(len); - for (var i = 0; i < len; ++i) - instances[i] = dem(dependencies[i]); - var defResult = definition.apply(null, instances); - if (defResult === undefined) - throw 'module [' + id + '] returned undefined'; - actual.instance = defResult; -}; - -var def = function (id, dependencies, definition) { - if (typeof id !== 'string') - throw 'module id must be a string'; - else if (dependencies === undefined) - throw 'no dependencies for ' + id; - else if (definition === undefined) - throw 'no definition function for ' + id; - defs[id] = { - deps: dependencies, - defn: definition, - instance: undefined - }; -}; - -var dem = function (id) { - var actual = defs[id]; - if (actual === undefined) - throw 'module [' + id + '] was undefined'; - else if (actual.instance === undefined) - instantiate(id); - return actual.instance; -}; - -var req = function (ids, callback) { - var len = ids.length; - var instances = new Array(len); - for (var i = 0; i < len; ++i) - instances.push(dem(ids[i])); - callback.apply(null, callback); -}; - -var ephox = {}; - -ephox.bolt = { - module: { - api: { - define: def, - require: req, - demand: dem - } - } -}; - -var define = def; -var require = req; -var demand = dem; -// this helps with minificiation when using a lot of global references -var defineGlobal = function (id, ref) { - define(id, [], function () { return ref; }); -}; -/*jsc -["tinymce.plugins.directionality.Plugin","tinymce.core.PluginManager","tinymce.core.util.Tools","global!tinymce.util.Tools.resolve"] -jsc*/ -defineGlobal("global!tinymce.util.Tools.resolve", tinymce.util.Tools.resolve); -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.PluginManager', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.PluginManager'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.util.Tools', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.util.Tools'); - } -); - -/** - * Plugin.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -/** - * This class contains all core logic for the directionality plugin. - * - * @class tinymce.directionality.Plugin - * @private - */ -define( - 'tinymce.plugins.directionality.Plugin', - [ - 'tinymce.core.PluginManager', - 'tinymce.core.util.Tools' - ], - function (PluginManager, Tools) { - PluginManager.add('directionality', function (editor) { - function setDir(dir) { - var dom = editor.dom, curDir, blocks = editor.selection.getSelectedBlocks(); - - if (blocks.length) { - curDir = dom.getAttrib(blocks[0], "dir"); - - Tools.each(blocks, function (block) { - // Add dir to block if the parent block doesn't already have that dir - if (!dom.getParent(block.parentNode, "*[dir='" + dir + "']", dom.getRoot())) { - if (curDir != dir) { - dom.setAttrib(block, "dir", dir); - } else { - dom.setAttrib(block, "dir", null); - } - } - }); - - editor.nodeChanged(); +var directionality = (function () { + 'use strict'; + + var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); + + var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools'); + + var setDir = function (editor, dir) { + var dom = editor.dom; + var curDir; + var blocks = editor.selection.getSelectedBlocks(); + if (blocks.length) { + curDir = dom.getAttrib(blocks[0], 'dir'); + global$1.each(blocks, function (block) { + if (!dom.getParent(block.parentNode, '*[dir="' + dir + '"]', dom.getRoot())) { + dom.setAttrib(block, 'dir', curDir !== dir ? dir : null); } - } - - function generateSelector(dir) { - var selector = []; - - Tools.each('h1 h2 h3 h4 h5 h6 div p'.split(' '), function (name) { - selector.push(name + '[dir=' + dir + ']'); - }); - - return selector.join(','); - } - - editor.addCommand('mceDirectionLTR', function () { - setDir("ltr"); - }); - - editor.addCommand('mceDirectionRTL', function () { - setDir("rtl"); }); + editor.nodeChanged(); + } + }; + var $_3zbk8naijfuw8otk = { setDir: setDir }; - editor.addButton('ltr', { - title: 'Left to right', - cmd: 'mceDirectionLTR', - stateSelector: generateSelector('ltr') - }); + var register = function (editor) { + editor.addCommand('mceDirectionLTR', function () { + $_3zbk8naijfuw8otk.setDir(editor, 'ltr'); + }); + editor.addCommand('mceDirectionRTL', function () { + $_3zbk8naijfuw8otk.setDir(editor, 'rtl'); + }); + }; + var $_eltqhvahjfuw8otj = { register: register }; - editor.addButton('rtl', { - title: 'Right to left', - cmd: 'mceDirectionRTL', - stateSelector: generateSelector('rtl') - }); + var generateSelector = function (dir) { + var selector = []; + global$1.each('h1 h2 h3 h4 h5 h6 div p'.split(' '), function (name) { + selector.push(name + '[dir=' + dir + ']'); + }); + return selector.join(','); + }; + var register$1 = function (editor) { + editor.addButton('ltr', { + title: 'Left to right', + cmd: 'mceDirectionLTR', + stateSelector: generateSelector('ltr') + }); + editor.addButton('rtl', { + title: 'Right to left', + cmd: 'mceDirectionRTL', + stateSelector: generateSelector('rtl') }); + }; + var $_g7lfqakjfuw8otn = { register: register$1 }; - return function () { }; + global.add('directionality', function (editor) { + $_eltqhvahjfuw8otj.register(editor); + $_g7lfqakjfuw8otn.register(editor); + }); + function Plugin () { } -); -dem('tinymce.plugins.directionality.Plugin')(); + + return Plugin; + +}()); })(); diff --git a/wp-includes/js/tinymce/plugins/directionality/plugin.min.js b/wp-includes/js/tinymce/plugins/directionality/plugin.min.js index 226c641aa..bb48bcf94 100644 --- a/wp-includes/js/tinymce/plugins/directionality/plugin.min.js +++ b/wp-includes/js/tinymce/plugins/directionality/plugin.min.js @@ -1 +1 @@ -!function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("3",tinymce.util.Tools.resolve),g("1",["3"],function(a){return a("tinymce.PluginManager")}),g("2",["3"],function(a){return a("tinymce.util.Tools")}),g("0",["1","2"],function(a,b){return a.add("directionality",function(a){function c(c){var d,e=a.dom,f=a.selection.getSelectedBlocks();f.length&&(d=e.getAttrib(f[0],"dir"),b.each(f,function(a){e.getParent(a.parentNode,"*[dir='"+c+"']",e.getRoot())||(d!=c?e.setAttrib(a,"dir",c):e.setAttrib(a,"dir",null))}),a.nodeChanged())}function d(a){var c=[];return b.each("h1 h2 h3 h4 h5 h6 div p".split(" "),function(b){c.push(b+"[dir="+a+"]")}),c.join(",")}a.addCommand("mceDirectionLTR",function(){c("ltr")}),a.addCommand("mceDirectionRTL",function(){c("rtl")}),a.addButton("ltr",{title:"Left to right",cmd:"mceDirectionLTR",stateSelector:d("ltr")}),a.addButton("rtl",{title:"Right to left",cmd:"mceDirectionRTL",stateSelector:d("rtl")})}),function(){}}),d("0")()}(); \ No newline at end of file +!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),c=tinymce.util.Tools.resolve("tinymce.util.Tools"),e=function(t,e){var i,n=t.dom,o=t.selection.getSelectedBlocks();o.length&&(i=n.getAttrib(o[0],"dir"),c.each(o,function(t){n.getParent(t.parentNode,'*[dir="'+e+'"]',n.getRoot())||n.setAttrib(t,"dir",i!==e?e:null)}),t.nodeChanged())},i=function(t){t.addCommand("mceDirectionLTR",function(){e(t,"ltr")}),t.addCommand("mceDirectionRTL",function(){e(t,"rtl")})},n=function(e){var i=[];return c.each("h1 h2 h3 h4 h5 h6 div p".split(" "),function(t){i.push(t+"[dir="+e+"]")}),i.join(",")},o=function(t){t.addButton("ltr",{title:"Left to right",cmd:"mceDirectionLTR",stateSelector:n("ltr")}),t.addButton("rtl",{title:"Right to left",cmd:"mceDirectionRTL",stateSelector:n("rtl")})};t.add("directionality",function(t){i(t),o(t)})}(); \ No newline at end of file diff --git a/wp-includes/js/tinymce/plugins/fullscreen/plugin.js b/wp-includes/js/tinymce/plugins/fullscreen/plugin.js index 76bfcfcb9..0772d896a 100644 --- a/wp-includes/js/tinymce/plugins/fullscreen/plugin.js +++ b/wp-includes/js/tinymce/plugins/fullscreen/plugin.js @@ -1,299 +1,177 @@ (function () { - -var defs = {}; // id -> {dependencies, definition, instance (possibly undefined)} - -// Used when there is no 'main' module. -// The name is probably (hopefully) unique so minification removes for releases. -var register_3795 = function (id) { - var module = dem(id); - var fragments = id.split('.'); - var target = Function('return this;')(); - for (var i = 0; i < fragments.length - 1; ++i) { - if (target[fragments[i]] === undefined) - target[fragments[i]] = {}; - target = target[fragments[i]]; - } - target[fragments[fragments.length - 1]] = module; -}; - -var instantiate = function (id) { - var actual = defs[id]; - var dependencies = actual.deps; - var definition = actual.defn; - var len = dependencies.length; - var instances = new Array(len); - for (var i = 0; i < len; ++i) - instances[i] = dem(dependencies[i]); - var defResult = definition.apply(null, instances); - if (defResult === undefined) - throw 'module [' + id + '] returned undefined'; - actual.instance = defResult; -}; - -var def = function (id, dependencies, definition) { - if (typeof id !== 'string') - throw 'module id must be a string'; - else if (dependencies === undefined) - throw 'no dependencies for ' + id; - else if (definition === undefined) - throw 'no definition function for ' + id; - defs[id] = { - deps: dependencies, - defn: definition, - instance: undefined +var fullscreen = (function () { + 'use strict'; + + var Cell = function (initial) { + var value = initial; + var get = function () { + return value; + }; + var set = function (v) { + value = v; + }; + var clone = function () { + return Cell(get()); + }; + return { + get: get, + set: set, + clone: clone + }; }; -}; - -var dem = function (id) { - var actual = defs[id]; - if (actual === undefined) - throw 'module [' + id + '] was undefined'; - else if (actual.instance === undefined) - instantiate(id); - return actual.instance; -}; - -var req = function (ids, callback) { - var len = ids.length; - var instances = new Array(len); - for (var i = 0; i < len; ++i) - instances.push(dem(ids[i])); - callback.apply(null, callback); -}; - -var ephox = {}; - -ephox.bolt = { - module: { - api: { - define: def, - require: req, - demand: dem - } - } -}; - -var define = def; -var require = req; -var demand = dem; -// this helps with minificiation when using a lot of global references -var defineGlobal = function (id, ref) { - define(id, [], function () { return ref; }); -}; -/*jsc -["tinymce.plugins.fullscreen.Plugin","tinymce.core.dom.DOMUtils","tinymce.core.PluginManager","global!tinymce.util.Tools.resolve"] -jsc*/ -defineGlobal("global!tinymce.util.Tools.resolve", tinymce.util.Tools.resolve); -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.dom.DOMUtils', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.dom.DOMUtils'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.PluginManager', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.PluginManager'); - } -); -/** - * Plugin.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ + var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); -/** - * This class contains all core logic for the fullscreen plugin. - * - * @class tinymce.fullscreen.Plugin - * @private - */ -define( - 'tinymce.plugins.fullscreen.Plugin', - [ - 'tinymce.core.dom.DOMUtils', - 'tinymce.core.PluginManager' - ], - function (DOMUtils, PluginManager) { - var DOM = DOMUtils.DOM; - - PluginManager.add('fullscreen', function (editor) { - var fullscreenState = false, iframeWidth, iframeHeight, resizeHandler; - var containerWidth, containerHeight, scrollPos; - - if (editor.settings.inline) { - return; - } - - function getWindowSize() { - var w, h, win = window, doc = document; - var body = doc.body; - - // Old IE - if (body.offsetWidth) { - w = body.offsetWidth; - h = body.offsetHeight; - } - - // Modern browsers - if (win.innerWidth && win.innerHeight) { - w = win.innerWidth; - h = win.innerHeight; - } - - return { w: w, h: h }; + var get = function (fullscreenState) { + return { + isFullscreen: function () { + return fullscreenState.get() !== null; } + }; + }; + var $_2d5qbdbsjfuw8ozh = { get: get }; - function getScrollPos() { - var vp = DOM.getViewPort(); - - return { - x: vp.x, - y: vp.y - }; - } + var global$1 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils'); - function setScrollPos(pos) { - window.scrollTo(pos.x, pos.y); + var fireFullscreenStateChanged = function (editor, state) { + editor.fire('FullscreenStateChanged', { state: state }); + }; + var $_6m5hhtbwjfuw8ozm = { fireFullscreenStateChanged: fireFullscreenStateChanged }; + + var DOM = global$1.DOM; + var getWindowSize = function () { + var w; + var h; + var win = window; + var doc = document; + var body = doc.body; + if (body.offsetWidth) { + w = body.offsetWidth; + h = body.offsetHeight; + } + if (win.innerWidth && win.innerHeight) { + w = win.innerWidth; + h = win.innerHeight; + } + return { + w: w, + h: h + }; + }; + var getScrollPos = function () { + var vp = DOM.getViewPort(); + return { + x: vp.x, + y: vp.y + }; + }; + var setScrollPos = function (pos) { + window.scrollTo(pos.x, pos.y); + }; + var toggleFullscreen = function (editor, fullscreenState) { + var body = document.body; + var documentElement = document.documentElement; + var editorContainerStyle; + var editorContainer, iframe, iframeStyle; + var fullscreenInfo = fullscreenState.get(); + var resize = function () { + DOM.setStyle(iframe, 'height', getWindowSize().h - (editorContainer.clientHeight - iframe.clientHeight)); + }; + var removeResize = function () { + DOM.unbind(window, 'resize', resize); + }; + editorContainer = editor.getContainer(); + editorContainerStyle = editorContainer.style; + iframe = editor.getContentAreaContainer().firstChild; + iframeStyle = iframe.style; + if (!fullscreenInfo) { + var newFullScreenInfo = { + scrollPos: getScrollPos(), + containerWidth: editorContainerStyle.width, + containerHeight: editorContainerStyle.height, + iframeWidth: iframeStyle.width, + iframeHeight: iframeStyle.height, + resizeHandler: resize, + removeHandler: removeResize + }; + iframeStyle.width = iframeStyle.height = '100%'; + editorContainerStyle.width = editorContainerStyle.height = ''; + DOM.addClass(body, 'mce-fullscreen'); + DOM.addClass(documentElement, 'mce-fullscreen'); + DOM.addClass(editorContainer, 'mce-fullscreen'); + DOM.bind(window, 'resize', resize); + editor.on('remove', removeResize); + resize(); + fullscreenState.set(newFullScreenInfo); + $_6m5hhtbwjfuw8ozm.fireFullscreenStateChanged(editor, true); + } else { + iframeStyle.width = fullscreenInfo.iframeWidth; + iframeStyle.height = fullscreenInfo.iframeHeight; + if (fullscreenInfo.containerWidth) { + editorContainerStyle.width = fullscreenInfo.containerWidth; } - - function toggleFullscreen() { - var body = document.body, documentElement = document.documentElement, editorContainerStyle; - var editorContainer, iframe, iframeStyle; - - function resize() { - DOM.setStyle(iframe, 'height', getWindowSize().h - (editorContainer.clientHeight - iframe.clientHeight)); - } - - fullscreenState = !fullscreenState; - - editorContainer = editor.getContainer(); - editorContainerStyle = editorContainer.style; - iframe = editor.getContentAreaContainer().firstChild; - iframeStyle = iframe.style; - - if (fullscreenState) { - scrollPos = getScrollPos(); - iframeWidth = iframeStyle.width; - iframeHeight = iframeStyle.height; - iframeStyle.width = iframeStyle.height = '100%'; - containerWidth = editorContainerStyle.width; - containerHeight = editorContainerStyle.height; - editorContainerStyle.width = editorContainerStyle.height = ''; - - DOM.addClass(body, 'mce-fullscreen'); - DOM.addClass(documentElement, 'mce-fullscreen'); - DOM.addClass(editorContainer, 'mce-fullscreen'); - - DOM.bind(window, 'resize', resize); - resize(); - resizeHandler = resize; - } else { - iframeStyle.width = iframeWidth; - iframeStyle.height = iframeHeight; - - if (containerWidth) { - editorContainerStyle.width = containerWidth; - } - - if (containerHeight) { - editorContainerStyle.height = containerHeight; - } - - DOM.removeClass(body, 'mce-fullscreen'); - DOM.removeClass(documentElement, 'mce-fullscreen'); - DOM.removeClass(editorContainer, 'mce-fullscreen'); - DOM.unbind(window, 'resize', resizeHandler); - setScrollPos(scrollPos); - } - - editor.fire('FullscreenStateChanged', { state: fullscreenState }); + if (fullscreenInfo.containerHeight) { + editorContainerStyle.height = fullscreenInfo.containerHeight; } + DOM.removeClass(body, 'mce-fullscreen'); + DOM.removeClass(documentElement, 'mce-fullscreen'); + DOM.removeClass(editorContainer, 'mce-fullscreen'); + setScrollPos(fullscreenInfo.scrollPos); + DOM.unbind(window, 'resize', fullscreenInfo.resizeHandler); + editor.off('remove', fullscreenInfo.removeHandler); + fullscreenState.set(null); + $_6m5hhtbwjfuw8ozm.fireFullscreenStateChanged(editor, false); + } + }; + var $_e74zxhbujfuw8ozj = { toggleFullscreen: toggleFullscreen }; - editor.on('init', function () { - editor.addShortcut('Ctrl+Shift+F', '', toggleFullscreen); - }); - - editor.on('remove', function () { - if (resizeHandler) { - DOM.unbind(window, 'resize', resizeHandler); - } - }); - - editor.addCommand('mceFullScreen', toggleFullscreen); - - editor.addMenuItem('fullscreen', { - text: 'Fullscreen', - shortcut: 'Ctrl+Shift+F', - selectable: true, - onClick: function () { - toggleFullscreen(); - editor.focus(); - }, - onPostRender: function () { - var self = this; - - editor.on('FullscreenStateChanged', function (e) { - self.active(e.state); - }); - }, - context: 'view' - }); - - editor.addButton('fullscreen', { - tooltip: 'Fullscreen', - shortcut: 'Ctrl+Shift+F', - onClick: toggleFullscreen, - onPostRender: function () { - var self = this; + var register = function (editor, fullscreenState) { + editor.addCommand('mceFullScreen', function () { + $_e74zxhbujfuw8ozj.toggleFullscreen(editor, fullscreenState); + }); + }; + var $_j53v2btjfuw8ozi = { register: register }; - editor.on('FullscreenStateChanged', function (e) { - self.active(e.state); - }); - } + var postRender = function (editor) { + return function (e) { + var ctrl = e.control; + editor.on('FullscreenStateChanged', function (e) { + ctrl.active(e.state); }); - - return { - isFullscreen: function () { - return fullscreenState; - } - }; + }; + }; + var register$1 = function (editor) { + editor.addMenuItem('fullscreen', { + text: 'Fullscreen', + shortcut: 'Ctrl+Shift+F', + selectable: true, + cmd: 'mceFullScreen', + onPostRender: postRender(editor), + context: 'view' + }); + editor.addButton('fullscreen', { + active: false, + tooltip: 'Fullscreen', + cmd: 'mceFullScreen', + onPostRender: postRender(editor) }); + }; + var $_3ge8trbxjfuw8ozn = { register: register$1 }; - return function () { }; + global.add('fullscreen', function (editor) { + var fullscreenState = Cell(null); + if (editor.settings.inline) { + return $_2d5qbdbsjfuw8ozh.get(fullscreenState); + } + $_j53v2btjfuw8ozi.register(editor, fullscreenState); + $_3ge8trbxjfuw8ozn.register(editor); + editor.addShortcut('Ctrl+Shift+F', '', 'mceFullScreen'); + return $_2d5qbdbsjfuw8ozh.get(fullscreenState); + }); + function Plugin () { } -); -dem('tinymce.plugins.fullscreen.Plugin')(); + + return Plugin; + +}()); })(); diff --git a/wp-includes/js/tinymce/plugins/fullscreen/plugin.min.js b/wp-includes/js/tinymce/plugins/fullscreen/plugin.min.js index 3db217657..cd4eb5ed4 100644 --- a/wp-includes/js/tinymce/plugins/fullscreen/plugin.min.js +++ b/wp-includes/js/tinymce/plugins/fullscreen/plugin.min.js @@ -1 +1 @@ -!function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("3",tinymce.util.Tools.resolve),g("1",["3"],function(a){return a("tinymce.dom.DOMUtils")}),g("2",["3"],function(a){return a("tinymce.PluginManager")}),g("0",["1","2"],function(a,b){var c=a.DOM;return b.add("fullscreen",function(a){function b(){var a,b,c=window,d=document,e=d.body;return e.offsetWidth&&(a=e.offsetWidth,b=e.offsetHeight),c.innerWidth&&c.innerHeight&&(a=c.innerWidth,b=c.innerHeight),{w:a,h:b}}function d(){var a=c.getViewPort();return{x:a.x,y:a.y}}function e(a){window.scrollTo(a.x,a.y)}function f(){function f(){c.setStyle(p,"height",b().h-(o.clientHeight-p.clientHeight))}var n,o,p,q,r=document.body,s=document.documentElement;m=!m,o=a.getContainer(),n=o.style,p=a.getContentAreaContainer().firstChild,q=p.style,m?(l=d(),g=q.width,h=q.height,q.width=q.height="100%",j=n.width,k=n.height,n.width=n.height="",c.addClass(r,"mce-fullscreen"),c.addClass(s,"mce-fullscreen"),c.addClass(o,"mce-fullscreen"),c.bind(window,"resize",f),f(),i=f):(q.width=g,q.height=h,j&&(n.width=j),k&&(n.height=k),c.removeClass(r,"mce-fullscreen"),c.removeClass(s,"mce-fullscreen"),c.removeClass(o,"mce-fullscreen"),c.unbind(window,"resize",i),e(l)),a.fire("FullscreenStateChanged",{state:m})}var g,h,i,j,k,l,m=!1;if(!a.settings.inline)return a.on("init",function(){a.addShortcut("Ctrl+Shift+F","",f)}),a.on("remove",function(){i&&c.unbind(window,"resize",i)}),a.addCommand("mceFullScreen",f),a.addMenuItem("fullscreen",{text:"Fullscreen",shortcut:"Ctrl+Shift+F",selectable:!0,onClick:function(){f(),a.focus()},onPostRender:function(){var b=this;a.on("FullscreenStateChanged",function(a){b.active(a.state)})},context:"view"}),a.addButton("fullscreen",{tooltip:"Fullscreen",shortcut:"Ctrl+Shift+F",onClick:f,onPostRender:function(){var b=this;a.on("FullscreenStateChanged",function(a){b.active(a.state)})}}),{isFullscreen:function(){return m}}}),function(){}}),d("0")()}(); \ No newline at end of file +!function(){"use strict";var i=function(e){var n=e,t=function(){return n};return{get:t,set:function(e){n=e},clone:function(){return i(t())}}},e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=function(e){return{isFullscreen:function(){return null!==e.get()}}},n=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),m=function(e,n){e.fire("FullscreenStateChanged",{state:n})},g=n.DOM,r=function(e,n){var t,r,l,i,o,c,s=document.body,u=document.documentElement,d=n.get(),a=function(){var e,n,t,i;g.setStyle(l,"height",(t=window,i=document.body,i.offsetWidth&&(e=i.offsetWidth,n=i.offsetHeight),t.innerWidth&&t.innerHeight&&(e=t.innerWidth,n=t.innerHeight),{w:e,h:n}).h-(r.clientHeight-l.clientHeight))},h=function(){g.unbind(window,"resize",a)};if(t=(r=e.getContainer()).style,i=(l=e.getContentAreaContainer().firstChild).style,d)i.width=d.iframeWidth,i.height=d.iframeHeight,d.containerWidth&&(t.width=d.containerWidth),d.containerHeight&&(t.height=d.containerHeight),g.removeClass(s,"mce-fullscreen"),g.removeClass(u,"mce-fullscreen"),g.removeClass(r,"mce-fullscreen"),o=d.scrollPos,window.scrollTo(o.x,o.y),g.unbind(window,"resize",d.resizeHandler),e.off("remove",d.removeHandler),n.set(null),m(e,!1);else{var f={scrollPos:(c=g.getViewPort(),{x:c.x,y:c.y}),containerWidth:t.width,containerHeight:t.height,iframeWidth:i.width,iframeHeight:i.height,resizeHandler:a,removeHandler:h};i.width=i.height="100%",t.width=t.height="",g.addClass(s,"mce-fullscreen"),g.addClass(u,"mce-fullscreen"),g.addClass(r,"mce-fullscreen"),g.bind(window,"resize",a),e.on("remove",h),a(),n.set(f),m(e,!0)}},l=function(e,n){e.addCommand("mceFullScreen",function(){r(e,n)})},o=function(t){return function(e){var n=e.control;t.on("FullscreenStateChanged",function(e){n.active(e.state)})}},c=function(e){e.addMenuItem("fullscreen",{text:"Fullscreen",shortcut:"Ctrl+Shift+F",selectable:!0,cmd:"mceFullScreen",onPostRender:o(e),context:"view"}),e.addButton("fullscreen",{active:!1,tooltip:"Fullscreen",cmd:"mceFullScreen",onPostRender:o(e)})};e.add("fullscreen",function(e){var n=i(null);return e.settings.inline||(l(e,n),c(e),e.addShortcut("Ctrl+Shift+F","","mceFullScreen")),t(n)})}(); \ No newline at end of file diff --git a/wp-includes/js/tinymce/plugins/hr/plugin.js b/wp-includes/js/tinymce/plugins/hr/plugin.js index c9862bc8e..2151d9211 100644 --- a/wp-includes/js/tinymce/plugins/hr/plugin.js +++ b/wp-includes/js/tinymce/plugins/hr/plugin.js @@ -1,152 +1,39 @@ (function () { +var hr = (function () { + 'use strict'; -var defs = {}; // id -> {dependencies, definition, instance (possibly undefined)} + var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); -// Used when there is no 'main' module. -// The name is probably (hopefully) unique so minification removes for releases. -var register_3795 = function (id) { - var module = dem(id); - var fragments = id.split('.'); - var target = Function('return this;')(); - for (var i = 0; i < fragments.length - 1; ++i) { - if (target[fragments[i]] === undefined) - target[fragments[i]] = {}; - target = target[fragments[i]]; - } - target[fragments[fragments.length - 1]] = module; -}; - -var instantiate = function (id) { - var actual = defs[id]; - var dependencies = actual.deps; - var definition = actual.defn; - var len = dependencies.length; - var instances = new Array(len); - for (var i = 0; i < len; ++i) - instances[i] = dem(dependencies[i]); - var defResult = definition.apply(null, instances); - if (defResult === undefined) - throw 'module [' + id + '] returned undefined'; - actual.instance = defResult; -}; - -var def = function (id, dependencies, definition) { - if (typeof id !== 'string') - throw 'module id must be a string'; - else if (dependencies === undefined) - throw 'no dependencies for ' + id; - else if (definition === undefined) - throw 'no definition function for ' + id; - defs[id] = { - deps: dependencies, - defn: definition, - instance: undefined + var register = function (editor) { + editor.addCommand('InsertHorizontalRule', function () { + editor.execCommand('mceInsertContent', false, '<hr />'); + }); }; -}; - -var dem = function (id) { - var actual = defs[id]; - if (actual === undefined) - throw 'module [' + id + '] was undefined'; - else if (actual.instance === undefined) - instantiate(id); - return actual.instance; -}; - -var req = function (ids, callback) { - var len = ids.length; - var instances = new Array(len); - for (var i = 0; i < len; ++i) - instances.push(dem(ids[i])); - callback.apply(null, callback); -}; - -var ephox = {}; - -ephox.bolt = { - module: { - api: { - define: def, - require: req, - demand: dem - } - } -}; + var $_598wgdc0jfuw8p00 = { register: register }; -var define = def; -var require = req; -var demand = dem; -// this helps with minificiation when using a lot of global references -var defineGlobal = function (id, ref) { - define(id, [], function () { return ref; }); -}; -/*jsc -["tinymce.plugins.hr.Plugin","tinymce.core.PluginManager","global!tinymce.util.Tools.resolve"] -jsc*/ -defineGlobal("global!tinymce.util.Tools.resolve", tinymce.util.Tools.resolve); -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ + var register$1 = function (editor) { + editor.addButton('hr', { + icon: 'hr', + tooltip: 'Horizontal line', + cmd: 'InsertHorizontalRule' + }); + editor.addMenuItem('hr', { + icon: 'hr', + text: 'Horizontal line', + cmd: 'InsertHorizontalRule', + context: 'insert' + }); + }; + var $_7oq7jyc1jfuw8p02 = { register: register$1 }; -define( - 'tinymce.core.PluginManager', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.PluginManager'); + global.add('hr', function (editor) { + $_598wgdc0jfuw8p00.register(editor); + $_7oq7jyc1jfuw8p02.register(editor); + }); + function Plugin () { } -); - -/** - * Plugin.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ -/** - * This class contains all core logic for the hr plugin. - * - * @class tinymce.hr.Plugin - * @private - */ -define( - 'tinymce.plugins.hr.Plugin', - [ - 'tinymce.core.PluginManager' - ], - function (PluginManager) { - PluginManager.add('hr', function (editor) { - editor.addCommand('InsertHorizontalRule', function () { - editor.execCommand('mceInsertContent', false, '<hr />'); - }); + return Plugin; - editor.addButton('hr', { - icon: 'hr', - tooltip: 'Horizontal line', - cmd: 'InsertHorizontalRule' - }); - - editor.addMenuItem('hr', { - icon: 'hr', - text: 'Horizontal line', - cmd: 'InsertHorizontalRule', - context: 'insert' - }); - }); - - return function () { }; - } -); -dem('tinymce.plugins.hr.Plugin')(); +}()); })(); diff --git a/wp-includes/js/tinymce/plugins/hr/plugin.min.js b/wp-includes/js/tinymce/plugins/hr/plugin.min.js index 6c0dfa447..72bc2cabd 100644 --- a/wp-includes/js/tinymce/plugins/hr/plugin.min.js +++ b/wp-includes/js/tinymce/plugins/hr/plugin.min.js @@ -1 +1 @@ -!function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("2",tinymce.util.Tools.resolve),g("1",["2"],function(a){return a("tinymce.PluginManager")}),g("0",["1"],function(a){return a.add("hr",function(a){a.addCommand("InsertHorizontalRule",function(){a.execCommand("mceInsertContent",!1,"<hr />")}),a.addButton("hr",{icon:"hr",tooltip:"Horizontal line",cmd:"InsertHorizontalRule"}),a.addMenuItem("hr",{icon:"hr",text:"Horizontal line",cmd:"InsertHorizontalRule",context:"insert"})}),function(){}}),d("0")()}(); \ No newline at end of file +!function(){"use strict";var n=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=function(n){n.addCommand("InsertHorizontalRule",function(){n.execCommand("mceInsertContent",!1,"<hr />")})},o=function(n){n.addButton("hr",{icon:"hr",tooltip:"Horizontal line",cmd:"InsertHorizontalRule"}),n.addMenuItem("hr",{icon:"hr",text:"Horizontal line",cmd:"InsertHorizontalRule",context:"insert"})};n.add("hr",function(n){t(n),o(n)})}(); \ No newline at end of file diff --git a/wp-includes/js/tinymce/plugins/image/plugin.js b/wp-includes/js/tinymce/plugins/image/plugin.js index 3395ec69b..9fe18bb99 100644 --- a/wp-includes/js/tinymce/plugins/image/plugin.js +++ b/wp-includes/js/tinymce/plugins/image/plugin.js @@ -1,1159 +1,1337 @@ (function () { +var image = (function () { + 'use strict'; -var defs = {}; // id -> {dependencies, definition, instance (possibly undefined)} + var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); -// Used when there is no 'main' module. -// The name is probably (hopefully) unique so minification removes for releases. -var register_3795 = function (id) { - var module = dem(id); - var fragments = id.split('.'); - var target = Function('return this;')(); - for (var i = 0; i < fragments.length - 1; ++i) { - if (target[fragments[i]] === undefined) - target[fragments[i]] = {}; - target = target[fragments[i]]; - } - target[fragments[fragments.length - 1]] = module; -}; - -var instantiate = function (id) { - var actual = defs[id]; - var dependencies = actual.deps; - var definition = actual.defn; - var len = dependencies.length; - var instances = new Array(len); - for (var i = 0; i < len; ++i) - instances[i] = dem(dependencies[i]); - var defResult = definition.apply(null, instances); - if (defResult === undefined) - throw 'module [' + id + '] returned undefined'; - actual.instance = defResult; -}; - -var def = function (id, dependencies, definition) { - if (typeof id !== 'string') - throw 'module id must be a string'; - else if (dependencies === undefined) - throw 'no dependencies for ' + id; - else if (definition === undefined) - throw 'no definition function for ' + id; - defs[id] = { - deps: dependencies, - defn: definition, - instance: undefined - }; -}; - -var dem = function (id) { - var actual = defs[id]; - if (actual === undefined) - throw 'module [' + id + '] was undefined'; - else if (actual.instance === undefined) - instantiate(id); - return actual.instance; -}; - -var req = function (ids, callback) { - var len = ids.length; - var instances = new Array(len); - for (var i = 0; i < len; ++i) - instances.push(dem(ids[i])); - callback.apply(null, callback); -}; - -var ephox = {}; - -ephox.bolt = { - module: { - api: { - define: def, - require: req, - demand: dem - } - } -}; - -var define = def; -var require = req; -var demand = dem; -// this helps with minificiation when using a lot of global references -var defineGlobal = function (id, ref) { - define(id, [], function () { return ref; }); -}; -/*jsc -["tinymce.plugins.image.Plugin","tinymce.core.PluginManager","tinymce.core.util.Tools","tinymce.plugins.image.ui.Dialog","global!tinymce.util.Tools.resolve","global!document","global!Math","global!RegExp","tinymce.core.Env","tinymce.core.ui.Factory","tinymce.core.util.JSON","tinymce.core.util.XHR","tinymce.plugins.image.core.Uploader","tinymce.plugins.image.core.Utils","tinymce.core.util.Promise"] -jsc*/ -defineGlobal("global!tinymce.util.Tools.resolve", tinymce.util.Tools.resolve); -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.PluginManager', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.PluginManager'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.util.Tools', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.util.Tools'); - } -); - -defineGlobal("global!document", document); -defineGlobal("global!Math", Math); -defineGlobal("global!RegExp", RegExp); -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.Env', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.Env'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.ui.Factory', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.ui.Factory'); - } -); + var hasDimensions = function (editor) { + return editor.settings.image_dimensions === false ? false : true; + }; + var hasAdvTab = function (editor) { + return editor.settings.image_advtab === true ? true : false; + }; + var getPrependUrl = function (editor) { + return editor.getParam('image_prepend_url', ''); + }; + var getClassList = function (editor) { + return editor.getParam('image_class_list'); + }; + var hasDescription = function (editor) { + return editor.settings.image_description === false ? false : true; + }; + var hasImageTitle = function (editor) { + return editor.settings.image_title === true ? true : false; + }; + var hasImageCaption = function (editor) { + return editor.settings.image_caption === true ? true : false; + }; + var getImageList = function (editor) { + return editor.getParam('image_list', false); + }; + var hasUploadUrl = function (editor) { + return editor.getParam('images_upload_url', false); + }; + var hasUploadHandler = function (editor) { + return editor.getParam('images_upload_handler', false); + }; + var getUploadUrl = function (editor) { + return editor.getParam('images_upload_url'); + }; + var getUploadHandler = function (editor) { + return editor.getParam('images_upload_handler'); + }; + var getUploadBasePath = function (editor) { + return editor.getParam('images_upload_base_path'); + }; + var getUploadCredentials = function (editor) { + return editor.getParam('images_upload_credentials'); + }; + var $_9cq6y3c6jfuw8p0n = { + hasDimensions: hasDimensions, + hasAdvTab: hasAdvTab, + getPrependUrl: getPrependUrl, + getClassList: getClassList, + hasDescription: hasDescription, + hasImageTitle: hasImageTitle, + hasImageCaption: hasImageCaption, + getImageList: getImageList, + hasUploadUrl: hasUploadUrl, + hasUploadHandler: hasUploadHandler, + getUploadUrl: getUploadUrl, + getUploadHandler: getUploadHandler, + getUploadBasePath: getUploadBasePath, + getUploadCredentials: getUploadCredentials + }; -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ + var global$1 = typeof window !== 'undefined' ? window : Function('return this;')(); -define( - 'tinymce.core.util.JSON', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.util.JSON'); - } -); + var path = function (parts, scope) { + var o = scope !== undefined && scope !== null ? scope : global$1; + for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i) + o = o[parts[i]]; + return o; + }; + var resolve = function (p, scope) { + var parts = p.split('.'); + return path(parts, scope); + }; + var step = function (o, part) { + if (o[part] === undefined || o[part] === null) + o[part] = {}; + return o[part]; + }; + var forge = function (parts, target) { + var o = target !== undefined ? target : global$1; + for (var i = 0; i < parts.length; ++i) + o = step(o, parts[i]); + return o; + }; + var namespace = function (name, target) { + var parts = name.split('.'); + return forge(parts, target); + }; + var $_5mb36jcajfuw8p19 = { + path: path, + resolve: resolve, + forge: forge, + namespace: namespace + }; -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ + var unsafe = function (name, scope) { + return $_5mb36jcajfuw8p19.resolve(name, scope); + }; + var getOrDie = function (name, scope) { + var actual = unsafe(name, scope); + if (actual === undefined || actual === null) + throw name + ' not available on this browser'; + return actual; + }; + var $_ba69mec9jfuw8p15 = { getOrDie: getOrDie }; -define( - 'tinymce.core.util.XHR', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.util.XHR'); + function FileReader () { + var f = $_ba69mec9jfuw8p15.getOrDie('FileReader'); + return new f(); } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ -define( - 'tinymce.core.util.Promise', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.util.Promise'); - } -); + var global$2 = tinymce.util.Tools.resolve('tinymce.util.Promise'); -/** - * Uploader.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ + var global$3 = tinymce.util.Tools.resolve('tinymce.util.Tools'); -/** - * This is basically cut down version of tinymce.core.file.Uploader, which we could use directly - * if it wasn't marked as private. - * - * @class tinymce.image.core.Uploader - * @private - */ -define( - 'tinymce.plugins.image.core.Uploader', - [ - 'tinymce.core.util.Promise', - 'tinymce.core.util.Tools', - 'global!document' - ], - function (Promise, Tools, document) { - return function (settings) { - var noop = function () {}; + var global$4 = tinymce.util.Tools.resolve('tinymce.util.XHR'); - function pathJoin(path1, path2) { - if (path1) { - return path1.replace(/\/$/, '') + '/' + path2.replace(/^\//, ''); + var parseIntAndGetMax = function (val1, val2) { + return Math.max(parseInt(val1, 10), parseInt(val2, 10)); + }; + var getImageSize = function (url, callback) { + var img = document.createElement('img'); + function done(width, height) { + if (img.parentNode) { + img.parentNode.removeChild(img); + } + callback({ + width: width, + height: height + }); + } + img.onload = function () { + var width = parseIntAndGetMax(img.width, img.clientWidth); + var height = parseIntAndGetMax(img.height, img.clientHeight); + done(width, height); + }; + img.onerror = function () { + done(0, 0); + }; + var style = img.style; + style.visibility = 'hidden'; + style.position = 'fixed'; + style.bottom = style.left = '0px'; + style.width = style.height = 'auto'; + document.body.appendChild(img); + img.src = url; + }; + var buildListItems = function (inputList, itemCallback, startItems) { + function appendItems(values, output) { + output = output || []; + global$3.each(values, function (item) { + var menuItem = { text: item.text || item.title }; + if (item.menu) { + menuItem.menu = appendItems(item.menu); + } else { + menuItem.value = item.value; + itemCallback(menuItem); } - - return path2; + output.push(menuItem); + }); + return output; + } + return appendItems(inputList, startItems || []); + }; + var removePixelSuffix = function (value) { + if (value) { + value = value.replace(/px$/, ''); + } + return value; + }; + var addPixelSuffix = function (value) { + if (value.length > 0 && /^[0-9]+$/.test(value)) { + value += 'px'; + } + return value; + }; + var mergeMargins = function (css) { + if (css.margin) { + var splitMargin = css.margin.split(' '); + switch (splitMargin.length) { + case 1: + css['margin-top'] = css['margin-top'] || splitMargin[0]; + css['margin-right'] = css['margin-right'] || splitMargin[0]; + css['margin-bottom'] = css['margin-bottom'] || splitMargin[0]; + css['margin-left'] = css['margin-left'] || splitMargin[0]; + break; + case 2: + css['margin-top'] = css['margin-top'] || splitMargin[0]; + css['margin-right'] = css['margin-right'] || splitMargin[1]; + css['margin-bottom'] = css['margin-bottom'] || splitMargin[0]; + css['margin-left'] = css['margin-left'] || splitMargin[1]; + break; + case 3: + css['margin-top'] = css['margin-top'] || splitMargin[0]; + css['margin-right'] = css['margin-right'] || splitMargin[1]; + css['margin-bottom'] = css['margin-bottom'] || splitMargin[2]; + css['margin-left'] = css['margin-left'] || splitMargin[1]; + break; + case 4: + css['margin-top'] = css['margin-top'] || splitMargin[0]; + css['margin-right'] = css['margin-right'] || splitMargin[1]; + css['margin-bottom'] = css['margin-bottom'] || splitMargin[2]; + css['margin-left'] = css['margin-left'] || splitMargin[3]; } - - function defaultHandler(blobInfo, success, failure, progress) { - var xhr, formData; - - xhr = new XMLHttpRequest(); - xhr.open('POST', settings.url); - xhr.withCredentials = settings.credentials; - - xhr.upload.onprogress = function (e) { - progress(e.loaded / e.total * 100); - }; - - xhr.onerror = function () { - failure("Image upload failed due to a XHR Transport error. Code: " + xhr.status); - }; - - xhr.onload = function () { - var json; - - if (xhr.status < 200 || xhr.status >= 300) { - failure("HTTP Error: " + xhr.status); - return; - } - - json = JSON.parse(xhr.responseText); - - if (!json || typeof json.location != "string") { - failure("Invalid JSON: " + xhr.responseText); - return; - } - - success(pathJoin(settings.basePath, json.location)); - }; - - formData = new FormData(); - formData.append('file', blobInfo.blob(), blobInfo.filename()); - - xhr.send(formData); + delete css.margin; + } + return css; + }; + var createImageList = function (editor, callback) { + var imageList = $_9cq6y3c6jfuw8p0n.getImageList(editor); + if (typeof imageList === 'string') { + global$4.send({ + url: imageList, + success: function (text) { + callback(JSON.parse(text)); + } + }); + } else if (typeof imageList === 'function') { + imageList(callback); + } else { + callback(imageList); + } + }; + var waitLoadImage = function (editor, data, imgElm) { + function selectImage() { + imgElm.onload = imgElm.onerror = null; + if (editor.selection) { + editor.selection.select(imgElm); + editor.nodeChanged(); } - - function uploadBlob(blobInfo, handler) { - return new Promise(function (resolve, reject) { - try { - handler(blobInfo, resolve, reject, noop); - } catch (ex) { - reject(ex.message); - } + } + imgElm.onload = function () { + if (!data.width && !data.height && $_9cq6y3c6jfuw8p0n.hasDimensions(editor)) { + editor.dom.setAttribs(imgElm, { + width: imgElm.clientWidth, + height: imgElm.clientHeight }); } - - function isDefaultHandler(handler) { - return handler === defaultHandler; - } - - function upload(blobInfo) { - return (!settings.url && isDefaultHandler(settings.handler)) ? Promise.reject("Upload url missng from the settings.") : uploadBlob(blobInfo, settings.handler); - } - - settings = Tools.extend({ - credentials: false, - handler: defaultHandler - }, settings); - - return { - upload: upload - }; + selectImage(); }; - } -); -/** - * Utils.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -/** - * @class tinymce.image.core.Utils - * @private - */ -define( - 'tinymce.plugins.image.core.Utils', - [ - 'tinymce.core.util.Tools', - 'global!Math', - 'global!document' - ], - function (Tools, Math, document) { - - var getImageSize = function (url, callback) { - var img = document.createElement('img'); - - function done(width, height) { - if (img.parentNode) { - img.parentNode.removeChild(img); - } - - callback({ width: width, height: height }); - } - - img.onload = function () { - done(Math.max(img.width, img.clientWidth), Math.max(img.height, img.clientHeight)); + imgElm.onerror = selectImage; + }; + var blobToDataUri = function (blob) { + return new global$2(function (resolve, reject) { + var reader = new FileReader(); + reader.onload = function () { + resolve(reader.result); }; - - img.onerror = function () { - done(); + reader.onerror = function () { + reject(FileReader.error.message); }; + reader.readAsDataURL(blob); + }); + }; + var $_7v7yldc7jfuw8p0q = { + getImageSize: getImageSize, + buildListItems: buildListItems, + removePixelSuffix: removePixelSuffix, + addPixelSuffix: addPixelSuffix, + mergeMargins: mergeMargins, + createImageList: createImageList, + waitLoadImage: waitLoadImage, + blobToDataUri: blobToDataUri + }; - var style = img.style; - style.visibility = 'hidden'; - style.position = 'fixed'; - style.bottom = style.left = 0; - style.width = style.height = 'auto'; - - document.body.appendChild(img); - img.src = url; + var global$5 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils'); + + var typeOf = function (x) { + if (x === null) + return 'null'; + var t = typeof x; + if (t === 'object' && Array.prototype.isPrototypeOf(x)) + return 'array'; + if (t === 'object' && String.prototype.isPrototypeOf(x)) + return 'string'; + return t; + }; + var isType = function (type) { + return function (value) { + return typeOf(value) === type; }; + }; + var $_rbqovckjfuw8p27 = { + isString: isType('string'), + isObject: isType('object'), + isArray: isType('array'), + isNull: isType('null'), + isBoolean: isType('boolean'), + isUndefined: isType('undefined'), + isFunction: isType('function'), + isNumber: isType('number') + }; - - var buildListItems = function (inputList, itemCallback, startItems) { - function appendItems(values, output) { - output = output || []; - - Tools.each(values, function (item) { - var menuItem = { text: item.text || item.title }; - - if (item.menu) { - menuItem.menu = appendItems(item.menu); - } else { - menuItem.value = item.value; - itemCallback(menuItem); + var shallow = function (old, nu) { + return nu; + }; + var deep = function (old, nu) { + var bothObjects = $_rbqovckjfuw8p27.isObject(old) && $_rbqovckjfuw8p27.isObject(nu); + return bothObjects ? deepMerge(old, nu) : nu; + }; + var baseMerge = function (merger) { + return function () { + var objects = new Array(arguments.length); + for (var i = 0; i < objects.length; i++) + objects[i] = arguments[i]; + if (objects.length === 0) + throw new Error('Can\'t merge zero objects'); + var ret = {}; + for (var j = 0; j < objects.length; j++) { + var curObject = objects[j]; + for (var key in curObject) + if (curObject.hasOwnProperty(key)) { + ret[key] = merger(ret[key], curObject[key]); } - - output.push(menuItem); - }); - - return output; } - - return appendItems(inputList, startItems || []); - }; - - var removePixelSuffix = function (value) { - if (value) { - value = value.replace(/px$/, ''); - } - return value; + return ret; }; + }; + var deepMerge = baseMerge(deep); + var merge = baseMerge(shallow); + var $_ajpvnqcjjfuw8p25 = { + deepMerge: deepMerge, + merge: merge + }; - var addPixelSuffix = function (value) { - if (value.length > 0 && /^[0-9]+$/.test(value)) { - value += 'px'; + var DOM = global$5.DOM; + var getHspace = function (image) { + if (image.style.marginLeft && image.style.marginRight && image.style.marginLeft === image.style.marginRight) { + return $_7v7yldc7jfuw8p0q.removePixelSuffix(image.style.marginLeft); + } else { + return ''; + } + }; + var getVspace = function (image) { + if (image.style.marginTop && image.style.marginBottom && image.style.marginTop === image.style.marginBottom) { + return $_7v7yldc7jfuw8p0q.removePixelSuffix(image.style.marginTop); + } else { + return ''; + } + }; + var getBorder = function (image) { + if (image.style.borderWidth) { + return $_7v7yldc7jfuw8p0q.removePixelSuffix(image.style.borderWidth); + } else { + return ''; + } + }; + var getAttrib = function (image, name) { + if (image.hasAttribute(name)) { + return image.getAttribute(name); + } else { + return ''; + } + }; + var getStyle = function (image, name) { + return image.style[name] ? image.style[name] : ''; + }; + var hasCaption = function (image) { + return image.parentNode !== null && image.parentNode.nodeName === 'FIGURE'; + }; + var setAttrib = function (image, name, value) { + image.setAttribute(name, value); + }; + var wrapInFigure = function (image) { + var figureElm = DOM.create('figure', { class: 'image' }); + DOM.insertAfter(figureElm, image); + figureElm.appendChild(image); + figureElm.appendChild(DOM.create('figcaption', { contentEditable: true }, 'Caption')); + figureElm.contentEditable = 'false'; + }; + var removeFigure = function (image) { + var figureElm = image.parentNode; + DOM.insertAfter(image, figureElm); + DOM.remove(figureElm); + }; + var toggleCaption = function (image) { + if (hasCaption(image)) { + removeFigure(image); + } else { + wrapInFigure(image); + } + }; + var normalizeStyle = function (image, normalizeCss) { + var attrValue = image.getAttribute('style'); + var value = normalizeCss(attrValue !== null ? attrValue : ''); + if (value.length > 0) { + image.setAttribute('style', value); + image.setAttribute('data-mce-style', value); + } else { + image.removeAttribute('style'); + } + }; + var setSize = function (name, normalizeCss) { + return function (image, name, value) { + if (image.style[name]) { + image.style[name] = $_7v7yldc7jfuw8p0q.addPixelSuffix(value); + normalizeStyle(image, normalizeCss); + } else { + setAttrib(image, name, value); } - return value; }; - - var mergeMargins = function (css) { - if (css.margin) { - - var splitMargin = css.margin.split(" "); - - switch (splitMargin.length) { - case 1: //margin: toprightbottomleft; - css['margin-top'] = css['margin-top'] || splitMargin[0]; - css['margin-right'] = css['margin-right'] || splitMargin[0]; - css['margin-bottom'] = css['margin-bottom'] || splitMargin[0]; - css['margin-left'] = css['margin-left'] || splitMargin[0]; - break; - case 2: //margin: topbottom rightleft; - css['margin-top'] = css['margin-top'] || splitMargin[0]; - css['margin-right'] = css['margin-right'] || splitMargin[1]; - css['margin-bottom'] = css['margin-bottom'] || splitMargin[0]; - css['margin-left'] = css['margin-left'] || splitMargin[1]; - break; - case 3: //margin: top rightleft bottom; - css['margin-top'] = css['margin-top'] || splitMargin[0]; - css['margin-right'] = css['margin-right'] || splitMargin[1]; - css['margin-bottom'] = css['margin-bottom'] || splitMargin[2]; - css['margin-left'] = css['margin-left'] || splitMargin[1]; - break; - case 4: //margin: top right bottom left; - css['margin-top'] = css['margin-top'] || splitMargin[0]; - css['margin-right'] = css['margin-right'] || splitMargin[1]; - css['margin-bottom'] = css['margin-bottom'] || splitMargin[2]; - css['margin-left'] = css['margin-left'] || splitMargin[3]; - } - delete css.margin; - } - return css; + }; + var getSize = function (image, name) { + if (image.style[name]) { + return $_7v7yldc7jfuw8p0q.removePixelSuffix(image.style[name]); + } else { + return getAttrib(image, name); + } + }; + var setHspace = function (image, value) { + var pxValue = $_7v7yldc7jfuw8p0q.addPixelSuffix(value); + image.style.marginLeft = pxValue; + image.style.marginRight = pxValue; + }; + var setVspace = function (image, value) { + var pxValue = $_7v7yldc7jfuw8p0q.addPixelSuffix(value); + image.style.marginTop = pxValue; + image.style.marginBottom = pxValue; + }; + var setBorder = function (image, value) { + var pxValue = $_7v7yldc7jfuw8p0q.addPixelSuffix(value); + image.style.borderWidth = pxValue; + }; + var setBorderStyle = function (image, value) { + image.style.borderStyle = value; + }; + var getBorderStyle = function (image) { + return getStyle(image, 'borderStyle'); + }; + var isFigure = function (elm) { + return elm.nodeName === 'FIGURE'; + }; + var defaultData = function () { + return { + src: '', + alt: '', + title: '', + width: '', + height: '', + class: '', + style: '', + caption: false, + hspace: '', + vspace: '', + border: '', + borderStyle: '' }; - + }; + var getStyleValue = function (normalizeCss, data) { + var image = document.createElement('img'); + setAttrib(image, 'style', data.style); + if (getHspace(image) || data.hspace !== '') { + setHspace(image, data.hspace); + } + if (getVspace(image) || data.vspace !== '') { + setVspace(image, data.vspace); + } + if (getBorder(image) || data.border !== '') { + setBorder(image, data.border); + } + if (getBorderStyle(image) || data.borderStyle !== '') { + setBorderStyle(image, data.borderStyle); + } + return normalizeCss(image.getAttribute('style')); + }; + var create = function (normalizeCss, data) { + var image = document.createElement('img'); + write(normalizeCss, $_ajpvnqcjjfuw8p25.merge(data, { caption: false }), image); + setAttrib(image, 'alt', data.alt); + if (data.caption) { + var figure = DOM.create('figure', { class: 'image' }); + figure.appendChild(image); + figure.appendChild(DOM.create('figcaption', { contentEditable: true }, 'Caption')); + figure.contentEditable = 'false'; + return figure; + } else { + return image; + } + }; + var read = function (normalizeCss, image) { return { - getImageSize: getImageSize, - buildListItems: buildListItems, - removePixelSuffix: removePixelSuffix, - addPixelSuffix: addPixelSuffix, - mergeMargins: mergeMargins + src: getAttrib(image, 'src'), + alt: getAttrib(image, 'alt'), + title: getAttrib(image, 'title'), + width: getSize(image, 'width'), + height: getSize(image, 'height'), + class: getAttrib(image, 'class'), + style: normalizeCss(getAttrib(image, 'style')), + caption: hasCaption(image), + hspace: getHspace(image), + vspace: getVspace(image), + border: getBorder(image), + borderStyle: getStyle(image, 'borderStyle') }; - } -); - -/** - * Dialog.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -/** - * @class tinymce.image.ui.Dialog - * @private - */ -define( - 'tinymce.plugins.image.ui.Dialog', - [ - 'global!document', - 'global!Math', - 'global!RegExp', - 'tinymce.core.Env', - 'tinymce.core.ui.Factory', - 'tinymce.core.util.JSON', - 'tinymce.core.util.Tools', - 'tinymce.core.util.XHR', - 'tinymce.plugins.image.core.Uploader', - 'tinymce.plugins.image.core.Utils' - ], - function (document, Math, RegExp, Env, Factory, JSON, Tools, XHR, Uploader, Utils) { - - return function (editor) { - function createImageList(callback) { - var imageList = editor.settings.image_list; + }; + var updateProp = function (image, oldData, newData, name, set) { + if (newData[name] !== oldData[name]) { + set(image, name, newData[name]); + } + }; + var normalized = function (set, normalizeCss) { + return function (image, name, value) { + set(image, value); + normalizeStyle(image, normalizeCss); + }; + }; + var write = function (normalizeCss, newData, image) { + var oldData = read(normalizeCss, image); + updateProp(image, oldData, newData, 'caption', function (image, _name, _value) { + return toggleCaption(image); + }); + updateProp(image, oldData, newData, 'src', setAttrib); + updateProp(image, oldData, newData, 'alt', setAttrib); + updateProp(image, oldData, newData, 'title', setAttrib); + updateProp(image, oldData, newData, 'width', setSize('width', normalizeCss)); + updateProp(image, oldData, newData, 'height', setSize('height', normalizeCss)); + updateProp(image, oldData, newData, 'class', setAttrib); + updateProp(image, oldData, newData, 'style', normalized(function (image, value) { + return setAttrib(image, 'style', value); + }, normalizeCss)); + updateProp(image, oldData, newData, 'hspace', normalized(setHspace, normalizeCss)); + updateProp(image, oldData, newData, 'vspace', normalized(setVspace, normalizeCss)); + updateProp(image, oldData, newData, 'border', normalized(setBorder, normalizeCss)); + updateProp(image, oldData, newData, 'borderStyle', normalized(setBorderStyle, normalizeCss)); + }; - if (typeof imageList == "string") { - XHR.send({ - url: imageList, - success: function (text) { - callback(JSON.parse(text)); - } - }); - } else if (typeof imageList == "function") { - imageList(callback); - } else { - callback(imageList); - } + var normalizeCss = function (editor, cssText) { + var css = editor.dom.styles.parse(cssText); + var mergedCss = $_7v7yldc7jfuw8p0q.mergeMargins(css); + var compressed = editor.dom.styles.parse(editor.dom.styles.serialize(mergedCss)); + return editor.dom.styles.serialize(compressed); + }; + var getSelectedImage = function (editor) { + var imgElm = editor.selection.getNode(); + var figureElm = editor.dom.getParent(imgElm, 'figure.image'); + if (figureElm) { + return editor.dom.select('img', figureElm)[0]; + } + if (imgElm && (imgElm.nodeName !== 'IMG' || imgElm.getAttribute('data-mce-object') || imgElm.getAttribute('data-mce-placeholder'))) { + return null; + } + return imgElm; + }; + var splitTextBlock = function (editor, figure) { + var dom = editor.dom; + var textBlock = dom.getParent(figure.parentNode, function (node) { + return editor.schema.getTextBlockElements()[node.nodeName]; + }); + if (textBlock) { + return dom.split(textBlock, figure); + } else { + return figure; + } + }; + var readImageDataFromSelection = function (editor) { + var image = getSelectedImage(editor); + return image ? read(function (css) { + return normalizeCss(editor, css); + }, image) : defaultData(); + }; + var insertImageAtCaret = function (editor, data) { + var elm = create(function (css) { + return normalizeCss(editor, css); + }, data); + editor.dom.setAttrib(elm, 'data-mce-id', '__mcenew'); + editor.focus(); + editor.selection.setContent(elm.outerHTML); + var insertedElm = editor.dom.select('*[data-mce-id="__mcenew"]')[0]; + editor.dom.setAttrib(insertedElm, 'data-mce-id', null); + if (isFigure(insertedElm)) { + var figure = splitTextBlock(editor, insertedElm); + editor.selection.select(figure); + } else { + editor.selection.select(insertedElm); + } + }; + var syncSrcAttr = function (editor, image) { + editor.dom.setAttrib(image, 'src', image.getAttribute('src')); + }; + var deleteImage = function (editor, image) { + if (image) { + var elm = editor.dom.is(image.parentNode, 'figure.image') ? image.parentNode : image; + editor.dom.remove(elm); + editor.focus(); + editor.nodeChanged(); + if (editor.dom.isEmpty(editor.getBody())) { + editor.setContent(''); + editor.selection.setCursorLocation(); } + } + }; + var writeImageDataToSelection = function (editor, data) { + var image = getSelectedImage(editor); + write(function (css) { + return normalizeCss(editor, css); + }, data, image); + syncSrcAttr(editor, image); + if (isFigure(image.parentNode)) { + var figure = image.parentNode; + splitTextBlock(editor, figure); + editor.selection.select(image.parentNode); + } else { + editor.selection.select(image); + $_7v7yldc7jfuw8p0q.waitLoadImage(editor, data, image); + } + }; + var insertOrUpdateImage = function (editor, data) { + var image = getSelectedImage(editor); + if (image) { + if (data.src) { + writeImageDataToSelection(editor, data); + } else { + deleteImage(editor, image); + } + } else if (data.src) { + insertImageAtCaret(editor, data); + } + }; - function showDialog(imageList) { - var win, data = {}, imgElm, figureElm, dom = editor.dom, settings = editor.settings; - var width, height, imageListCtrl, classListCtrl, imageDimensions = settings.image_dimensions !== false; - - - function onFileInput() { - var Throbber = Factory.get('Throbber'); - var throbber = new Throbber(win.getEl()); - var file = this.value(); - - var uploader = new Uploader({ - url: settings.images_upload_url, - basePath: settings.images_upload_base_path, - credentials: settings.images_upload_credentials, - handler: settings.images_upload_handler - }); - - // we do not need to add this to editors blobCache, so we fake bare minimum - var blobInfo = editor.editorUpload.blobCache.create({ - blob: file, - name: file.name ? file.name.replace(/\.[^\.]+$/, '') : null, // strip extension - base64: 'data:image/fake;base64,=' // without this create() will throw exception - }); - - var finalize = function () { - throbber.hide(); - URL.revokeObjectURL(blobInfo.blobUri()); // in theory we could fake blobUri too, but until it's legitimate, we have too revoke it manually - }; - - throbber.show(); - - return uploader.upload(blobInfo).then(function (url) { - var src = win.find('#src'); - src.value(url); - win.find('tabpanel')[0].activateTab(0); // switch to General tab - src.fire('change'); // this will invoke onSrcChange (and any other handlers, if any). - finalize(); - return url; - }, function (err) { - editor.windowManager.alert(err); - finalize(); - }); - } - - function isTextBlock(node) { - return editor.schema.getTextBlockElements()[node.nodeName]; - } - - function recalcSize() { - var widthCtrl, heightCtrl, newWidth, newHeight; - - widthCtrl = win.find('#width')[0]; - heightCtrl = win.find('#height')[0]; - - if (!widthCtrl || !heightCtrl) { - return; - } - - newWidth = widthCtrl.value(); - newHeight = heightCtrl.value(); - - if (win.find('#constrain')[0].checked() && width && height && newWidth && newHeight) { - if (width != newWidth) { - newHeight = Math.round((newWidth / width) * newHeight); - - if (!isNaN(newHeight)) { - heightCtrl.value(newHeight); - } - } else { - newWidth = Math.round((newHeight / height) * newWidth); - - if (!isNaN(newWidth)) { - widthCtrl.value(newWidth); - } - } - } - - width = newWidth; - height = newHeight; - } - - function updateStyle() { - if (!editor.settings.image_advtab) { - return; - } - - var data = win.toJSON(), - css = dom.parseStyle(data.style); - - css = Utils.mergeMargins(css); - - if (data.vspace) { - css['margin-top'] = css['margin-bottom'] = Utils.addPixelSuffix(data.vspace); - } - if (data.hspace) { - css['margin-left'] = css['margin-right'] = Utils.addPixelSuffix(data.hspace); - } - if (data.border) { - css['border-width'] = Utils.addPixelSuffix(data.border); - } - - win.find('#style').value(dom.serializeStyle(dom.parseStyle(dom.serializeStyle(css)))); - } - - function updateVSpaceHSpaceBorder() { - if (!editor.settings.image_advtab) { - return; - } - - var data = win.toJSON(), - css = dom.parseStyle(data.style); - - win.find('#vspace').value(""); - win.find('#hspace').value(""); - - css = Utils.mergeMargins(css); - - //Move opposite equal margins to vspace/hspace field - if ((css['margin-top'] && css['margin-bottom']) || (css['margin-right'] && css['margin-left'])) { - if (css['margin-top'] === css['margin-bottom']) { - win.find('#vspace').value(Utils.removePixelSuffix(css['margin-top'])); - } else { - win.find('#vspace').value(''); - } - if (css['margin-right'] === css['margin-left']) { - win.find('#hspace').value(Utils.removePixelSuffix(css['margin-right'])); - } else { - win.find('#hspace').value(''); - } - } - - //Move border-width - if (css['border-width']) { - win.find('#border').value(Utils.removePixelSuffix(css['border-width'])); - } - - win.find('#style').value(dom.serializeStyle(dom.parseStyle(dom.serializeStyle(css)))); + var updateVSpaceHSpaceBorder = function (editor) { + return function (evt) { + var dom = editor.dom; + var rootControl = evt.control.rootControl; + if (!$_9cq6y3c6jfuw8p0n.hasAdvTab(editor)) { + return; + } + var data = rootControl.toJSON(); + var css = dom.parseStyle(data.style); + rootControl.find('#vspace').value(''); + rootControl.find('#hspace').value(''); + css = $_7v7yldc7jfuw8p0q.mergeMargins(css); + if (css['margin-top'] && css['margin-bottom'] || css['margin-right'] && css['margin-left']) { + if (css['margin-top'] === css['margin-bottom']) { + rootControl.find('#vspace').value($_7v7yldc7jfuw8p0q.removePixelSuffix(css['margin-top'])); + } else { + rootControl.find('#vspace').value(''); } - - function waitLoad(imgElm) { - function selectImage() { - imgElm.onload = imgElm.onerror = null; - - if (editor.selection) { - editor.selection.select(imgElm); - editor.nodeChanged(); - } - } - - imgElm.onload = function () { - if (!data.width && !data.height && imageDimensions) { - dom.setAttribs(imgElm, { - width: imgElm.clientWidth, - height: imgElm.clientHeight - }); - } - - selectImage(); - }; - - imgElm.onerror = selectImage; + if (css['margin-right'] === css['margin-left']) { + rootControl.find('#hspace').value($_7v7yldc7jfuw8p0q.removePixelSuffix(css['margin-right'])); + } else { + rootControl.find('#hspace').value(''); } - - function onSubmitForm() { - var figureElm, oldImg; - - updateStyle(); - recalcSize(); - - data = Tools.extend(data, win.toJSON()); - - if (!data.alt) { - data.alt = ''; - } - - if (!data.title) { - data.title = ''; - } - - if (data.width === '') { - data.width = null; - } - - if (data.height === '') { - data.height = null; - } - - if (!data.style) { - data.style = null; - } - - // Setup new data excluding style properties - /*eslint dot-notation: 0*/ - data = { - src: data.src, - alt: data.alt, - title: data.title, - width: data.width, - height: data.height, - style: data.style, - caption: data.caption, - "class": data["class"] - }; - - editor.undoManager.transact(function () { - if (!data.src) { - if (imgElm) { - var elm = dom.is(imgElm.parentNode, 'figure.image') ? imgElm.parentNode : imgElm; - dom.remove(elm); - editor.focus(); - editor.nodeChanged(); - - if (dom.isEmpty(editor.getBody())) { - editor.setContent(''); - editor.selection.setCursorLocation(); - } - } - - return; - } - - if (data.title === "") { - data.title = null; - } - - if (!imgElm) { - data.id = '__mcenew'; - editor.focus(); - editor.selection.setContent(dom.createHTML('img', data)); - imgElm = dom.get('__mcenew'); - dom.setAttrib(imgElm, 'id', null); - } else { - dom.setAttribs(imgElm, data); - } - - editor.editorUpload.uploadImagesAuto(); - - if (data.caption === false) { - if (dom.is(imgElm.parentNode, 'figure.image')) { - figureElm = imgElm.parentNode; - dom.setAttrib(imgElm, 'contenteditable', null); - dom.insertAfter(imgElm, figureElm); - dom.remove(figureElm); - editor.selection.select(imgElm); - editor.nodeChanged(); - } + } + if (css['border-width']) { + rootControl.find('#border').value($_7v7yldc7jfuw8p0q.removePixelSuffix(css['border-width'])); + } else { + rootControl.find('#border').value(''); + } + if (css['border-style']) { + rootControl.find('#borderStyle').value(css['border-style']); + } else { + rootControl.find('#borderStyle').value(''); + } + rootControl.find('#style').value(dom.serializeStyle(dom.parseStyle(dom.serializeStyle(css)))); + }; + }; + var updateStyle = function (editor, win) { + win.find('#style').each(function (ctrl) { + var value = getStyleValue(function (css) { + return normalizeCss(editor, css); + }, $_ajpvnqcjjfuw8p25.merge(defaultData(), win.toJSON())); + ctrl.value(value); + }); + }; + var makeTab = function (editor) { + return { + title: 'Advanced', + type: 'form', + pack: 'start', + items: [ + { + label: 'Style', + name: 'style', + type: 'textbox', + onchange: updateVSpaceHSpaceBorder(editor) + }, + { + type: 'form', + layout: 'grid', + packV: 'start', + columns: 2, + padding: 0, + defaults: { + type: 'textbox', + maxWidth: 50, + onchange: function (evt) { + updateStyle(editor, evt.control.rootControl); } - - if (data.caption === true) { - if (!dom.is(imgElm.parentNode, 'figure.image')) { - oldImg = imgElm; - imgElm = imgElm.cloneNode(true); - imgElm.contentEditable = true; - figureElm = dom.create('figure', { 'class': 'image' }); - figureElm.appendChild(imgElm); - figureElm.appendChild(dom.create('figcaption', { contentEditable: true }, 'Caption')); - figureElm.contentEditable = false; - - var textBlock = dom.getParent(oldImg, isTextBlock); - if (textBlock) { - dom.split(textBlock, oldImg, figureElm); - } else { - dom.replace(figureElm, oldImg); + }, + items: [ + { + label: 'Vertical space', + name: 'vspace' + }, + { + label: 'Border width', + name: 'border' + }, + { + label: 'Horizontal space', + name: 'hspace' + }, + { + label: 'Border style', + type: 'listbox', + name: 'borderStyle', + width: 90, + maxWidth: 90, + onselect: function (evt) { + updateStyle(editor, evt.control.rootControl); + }, + values: [ + { + text: 'Select...', + value: '' + }, + { + text: 'Solid', + value: 'solid' + }, + { + text: 'Dotted', + value: 'dotted' + }, + { + text: 'Dashed', + value: 'dashed' + }, + { + text: 'Double', + value: 'double' + }, + { + text: 'Groove', + value: 'groove' + }, + { + text: 'Ridge', + value: 'ridge' + }, + { + text: 'Inset', + value: 'inset' + }, + { + text: 'Outset', + value: 'outset' + }, + { + text: 'None', + value: 'none' + }, + { + text: 'Hidden', + value: 'hidden' } - - editor.selection.select(figureElm); - } - - return; - } - - waitLoad(imgElm); - }); - } - - function onSrcChange(e) { - var srcURL, prependURL, absoluteURLPattern, meta = e.meta || {}; - - if (imageListCtrl) { - imageListCtrl.value(editor.convertURL(this.value(), 'src')); - } - - Tools.each(meta, function (value, key) { - win.find('#' + key).value(value); - }); - - if (!meta.width && !meta.height) { - srcURL = editor.convertURL(this.value(), 'src'); - - // Pattern test the src url and make sure we haven't already prepended the url - prependURL = editor.settings.image_prepend_url; - absoluteURLPattern = new RegExp('^(?:[a-z]+:)?//', 'i'); - if (prependURL && !absoluteURLPattern.test(srcURL) && srcURL.substring(0, prependURL.length) !== prependURL) { - srcURL = prependURL + srcURL; + ] } - - this.value(srcURL); - - Utils.getImageSize(editor.documentBaseURI.toAbsolute(this.value()), function (data) { - if (data.width && data.height && imageDimensions) { - width = data.width; - height = data.height; - - win.find('#width').value(width); - win.find('#height').value(height); - } - }); - } - } - - function onBeforeCall(e) { - e.meta = win.toJSON(); + ] } + ] + }; + }; + var $_dlliegcfjfuw8p1m = { makeTab: makeTab }; - imgElm = editor.selection.getNode(); - figureElm = dom.getParent(imgElm, 'figure.image'); - if (figureElm) { - imgElm = dom.select('img', figureElm)[0]; + var doSyncSize = function (widthCtrl, heightCtrl) { + widthCtrl.state.set('oldVal', widthCtrl.value()); + heightCtrl.state.set('oldVal', heightCtrl.value()); + }; + var doSizeControls = function (win, f) { + var widthCtrl = win.find('#width')[0]; + var heightCtrl = win.find('#height')[0]; + var constrained = win.find('#constrain')[0]; + if (widthCtrl && heightCtrl && constrained) { + f(widthCtrl, heightCtrl, constrained.checked()); + } + }; + var doUpdateSize = function (widthCtrl, heightCtrl, isContrained) { + var oldWidth = widthCtrl.state.get('oldVal'); + var oldHeight = heightCtrl.state.get('oldVal'); + var newWidth = widthCtrl.value(); + var newHeight = heightCtrl.value(); + if (isContrained && oldWidth && oldHeight && newWidth && newHeight) { + if (newWidth !== oldWidth) { + newHeight = Math.round(newWidth / oldWidth * newHeight); + if (!isNaN(newHeight)) { + heightCtrl.value(newHeight); } - - if (imgElm && - (imgElm.nodeName != 'IMG' || - imgElm.getAttribute('data-mce-object') || - imgElm.getAttribute('data-mce-placeholder'))) { - imgElm = null; + } else { + newWidth = Math.round(newHeight / oldHeight * newWidth); + if (!isNaN(newWidth)) { + widthCtrl.value(newWidth); } - - if (imgElm) { - width = dom.getAttrib(imgElm, 'width'); - height = dom.getAttrib(imgElm, 'height'); - - data = { - src: dom.getAttrib(imgElm, 'src'), - alt: dom.getAttrib(imgElm, 'alt'), - title: dom.getAttrib(imgElm, 'title'), - "class": dom.getAttrib(imgElm, 'class'), - width: width, - height: height, - caption: !!figureElm - }; + } + } + doSyncSize(widthCtrl, heightCtrl); + }; + var syncSize = function (win) { + doSizeControls(win, doSyncSize); + }; + var updateSize = function (win) { + doSizeControls(win, doUpdateSize); + }; + var createUi = function () { + var recalcSize = function (evt) { + updateSize(evt.control.rootControl); + }; + return { + type: 'container', + label: 'Dimensions', + layout: 'flex', + align: 'center', + spacing: 5, + items: [ + { + name: 'width', + type: 'textbox', + maxLength: 5, + size: 5, + onchange: recalcSize, + ariaLabel: 'Width' + }, + { + type: 'label', + text: 'x' + }, + { + name: 'height', + type: 'textbox', + maxLength: 5, + size: 5, + onchange: recalcSize, + ariaLabel: 'Height' + }, + { + name: 'constrain', + type: 'checkbox', + checked: true, + text: 'Constrain proportions' } + ] + }; + }; + var $_1ahiincmjfuw8p2c = { + createUi: createUi, + syncSize: syncSize, + updateSize: updateSize + }; - if (imageList) { - imageListCtrl = { - type: 'listbox', - label: 'Image list', - values: Utils.buildListItems( - imageList, - function (item) { - item.value = editor.convertURL(item.value || item.url, 'src'); - }, - [{ text: 'None', value: '' }] - ), - value: data.src && editor.convertURL(data.src, 'src'), - onselect: function (e) { - var altCtrl = win.find('#alt'); - - if (!altCtrl.value() || (e.lastControl && altCtrl.value() == e.lastControl.text())) { - altCtrl.value(e.control.text()); - } - - win.find('#src').value(e.control.value()).fire('change'); - }, - onPostRender: function () { - /*eslint consistent-this: 0*/ - imageListCtrl = this; - } - }; + var onSrcChange = function (evt, editor) { + var srcURL, prependURL, absoluteURLPattern; + var meta = evt.meta || {}; + var control = evt.control; + var rootControl = control.rootControl; + var imageListCtrl = rootControl.find('#image-list')[0]; + if (imageListCtrl) { + imageListCtrl.value(editor.convertURL(control.value(), 'src')); + } + global$3.each(meta, function (value, key) { + rootControl.find('#' + key).value(value); + }); + if (!meta.width && !meta.height) { + srcURL = editor.convertURL(control.value(), 'src'); + prependURL = $_9cq6y3c6jfuw8p0n.getPrependUrl(editor); + absoluteURLPattern = new RegExp('^(?:[a-z]+:)?//', 'i'); + if (prependURL && !absoluteURLPattern.test(srcURL) && srcURL.substring(0, prependURL.length) !== prependURL) { + srcURL = prependURL + srcURL; + } + control.value(srcURL); + $_7v7yldc7jfuw8p0q.getImageSize(editor.documentBaseURI.toAbsolute(control.value()), function (data) { + if (data.width && data.height && $_9cq6y3c6jfuw8p0n.hasDimensions(editor)) { + rootControl.find('#width').value(data.width); + rootControl.find('#height').value(data.height); + $_1ahiincmjfuw8p2c.syncSize(rootControl); } + }); + } + }; + var onBeforeCall = function (evt) { + evt.meta = evt.control.rootControl.toJSON(); + }; + var getGeneralItems = function (editor, imageListCtrl) { + var generalFormItems = [ + { + name: 'src', + type: 'filepicker', + filetype: 'image', + label: 'Source', + autofocus: true, + onchange: function (evt) { + onSrcChange(evt, editor); + }, + onbeforecall: onBeforeCall + }, + imageListCtrl + ]; + if ($_9cq6y3c6jfuw8p0n.hasDescription(editor)) { + generalFormItems.push({ + name: 'alt', + type: 'textbox', + label: 'Image description' + }); + } + if ($_9cq6y3c6jfuw8p0n.hasImageTitle(editor)) { + generalFormItems.push({ + name: 'title', + type: 'textbox', + label: 'Image Title' + }); + } + if ($_9cq6y3c6jfuw8p0n.hasDimensions(editor)) { + generalFormItems.push($_1ahiincmjfuw8p2c.createUi()); + } + if ($_9cq6y3c6jfuw8p0n.getClassList(editor)) { + generalFormItems.push({ + name: 'class', + type: 'listbox', + label: 'Class', + values: $_7v7yldc7jfuw8p0q.buildListItems($_9cq6y3c6jfuw8p0n.getClassList(editor), function (item) { + if (item.value) { + item.textStyle = function () { + return editor.formatter.getCssText({ + inline: 'img', + classes: [item.value] + }); + }; + } + }) + }); + } + if ($_9cq6y3c6jfuw8p0n.hasImageCaption(editor)) { + generalFormItems.push({ + name: 'caption', + type: 'checkbox', + label: 'Caption' + }); + } + return generalFormItems; + }; + var makeTab$1 = function (editor, imageListCtrl) { + return { + title: 'General', + type: 'form', + items: getGeneralItems(editor, imageListCtrl) + }; + }; + var $_e4gxykcljfuw8p29 = { + makeTab: makeTab$1, + getGeneralItems: getGeneralItems + }; - if (editor.settings.image_class_list) { - classListCtrl = { - name: 'class', - type: 'listbox', - label: 'Class', - values: Utils.buildListItems( - editor.settings.image_class_list, - function (item) { - if (item.value) { - item.textStyle = function () { - return editor.formatter.getCssText({ inline: 'img', classes: [item.value] }); - }; - } - } - ) - }; - } + var url = function () { + return $_ba69mec9jfuw8p15.getOrDie('URL'); + }; + var createObjectURL = function (blob) { + return url().createObjectURL(blob); + }; + var revokeObjectURL = function (u) { + url().revokeObjectURL(u); + }; + var $_52xhfhcojfuw8p2i = { + createObjectURL: createObjectURL, + revokeObjectURL: revokeObjectURL + }; - // General settings shared between simple and advanced dialogs - var generalFormItems = [ - { - name: 'src', - type: 'filepicker', - filetype: 'image', - label: 'Source', - autofocus: true, - onchange: onSrcChange, - onbeforecall: onBeforeCall - }, - imageListCtrl - ]; + var global$6 = tinymce.util.Tools.resolve('tinymce.ui.Factory'); - if (editor.settings.image_description !== false) { - generalFormItems.push({ name: 'alt', type: 'textbox', label: 'Image description' }); - } + function XMLHttpRequest () { + var f = $_ba69mec9jfuw8p15.getOrDie('XMLHttpRequest'); + return new f(); + } - if (editor.settings.image_title) { - generalFormItems.push({ name: 'title', type: 'textbox', label: 'Image Title' }); + var noop = function () { + }; + var pathJoin = function (path1, path2) { + if (path1) { + return path1.replace(/\/$/, '') + '/' + path2.replace(/^\//, ''); + } + return path2; + }; + function Uploader (settings) { + var defaultHandler = function (blobInfo, success, failure, progress) { + var xhr, formData; + xhr = new XMLHttpRequest(); + xhr.open('POST', settings.url); + xhr.withCredentials = settings.credentials; + xhr.upload.onprogress = function (e) { + progress(e.loaded / e.total * 100); + }; + xhr.onerror = function () { + failure('Image upload failed due to a XHR Transport error. Code: ' + xhr.status); + }; + xhr.onload = function () { + var json; + if (xhr.status < 200 || xhr.status >= 300) { + failure('HTTP Error: ' + xhr.status); + return; } - - if (imageDimensions) { - generalFormItems.push({ - type: 'container', - label: 'Dimensions', - layout: 'flex', - direction: 'row', - align: 'center', - spacing: 5, - items: [ - { name: 'width', type: 'textbox', maxLength: 5, size: 3, onchange: recalcSize, ariaLabel: 'Width' }, - { type: 'label', text: 'x' }, - { name: 'height', type: 'textbox', maxLength: 5, size: 3, onchange: recalcSize, ariaLabel: 'Height' }, - { name: 'constrain', type: 'checkbox', checked: true, text: 'Constrain proportions' } - ] - }); + json = JSON.parse(xhr.responseText); + if (!json || typeof json.location !== 'string') { + failure('Invalid JSON: ' + xhr.responseText); + return; } - - generalFormItems.push(classListCtrl); - - if (editor.settings.image_caption && Env.ceFalse) { - generalFormItems.push({ name: 'caption', type: 'checkbox', label: 'Caption' }); + success(pathJoin(settings.basePath, json.location)); + }; + formData = new FormData(); + formData.append('file', blobInfo.blob(), blobInfo.filename()); + xhr.send(formData); + }; + var uploadBlob = function (blobInfo, handler) { + return new global$2(function (resolve, reject) { + try { + handler(blobInfo, resolve, reject, noop); + } catch (ex) { + reject(ex.message); } + }); + }; + var isDefaultHandler = function (handler) { + return handler === defaultHandler; + }; + var upload = function (blobInfo) { + return !settings.url && isDefaultHandler(settings.handler) ? global$2.reject('Upload url missing from the settings.') : uploadBlob(blobInfo, settings.handler); + }; + settings = global$3.extend({ + credentials: false, + handler: defaultHandler + }, settings); + return { upload: upload }; + } - if (editor.settings.image_advtab || editor.settings.images_upload_url) { - var body = [ + var onFileInput = function (editor) { + return function (evt) { + var Throbber = global$6.get('Throbber'); + var rootControl = evt.control.rootControl; + var throbber = new Throbber(rootControl.getEl()); + var file = evt.control.value(); + var blobUri = $_52xhfhcojfuw8p2i.createObjectURL(file); + var uploader = Uploader({ + url: $_9cq6y3c6jfuw8p0n.getUploadUrl(editor), + basePath: $_9cq6y3c6jfuw8p0n.getUploadBasePath(editor), + credentials: $_9cq6y3c6jfuw8p0n.getUploadCredentials(editor), + handler: $_9cq6y3c6jfuw8p0n.getUploadHandler(editor) + }); + var finalize = function () { + throbber.hide(); + $_52xhfhcojfuw8p2i.revokeObjectURL(blobUri); + }; + throbber.show(); + return $_7v7yldc7jfuw8p0q.blobToDataUri(file).then(function (dataUrl) { + var blobInfo = editor.editorUpload.blobCache.create({ + blob: file, + blobUri: blobUri, + name: file.name ? file.name.replace(/\.[^\.]+$/, '') : null, + base64: dataUrl.split(',')[1] + }); + return uploader.upload(blobInfo).then(function (url) { + var src = rootControl.find('#src'); + src.value(url); + rootControl.find('tabpanel')[0].activateTab(0); + src.fire('change'); + finalize(); + return url; + }); + }).catch(function (err) { + editor.windowManager.alert(err); + finalize(); + }); + }; + }; + var acceptExts = '.jpg,.jpeg,.png,.gif'; + var makeTab$2 = function (editor) { + return { + title: 'Upload', + type: 'form', + layout: 'flex', + direction: 'column', + align: 'stretch', + padding: '20 20 20 20', + items: [ + { + type: 'container', + layout: 'flex', + direction: 'column', + align: 'center', + spacing: 10, + items: [ + { + text: 'Browse for an image', + type: 'browsebutton', + accept: acceptExts, + onchange: onFileInput(editor) + }, { - title: 'General', - type: 'form', - items: generalFormItems + text: 'OR', + type: 'label' } - ]; + ] + }, + { + text: 'Drop an image here', + type: 'dropzone', + accept: acceptExts, + height: 100, + onchange: onFileInput(editor) + } + ] + }; + }; + var $_9k5u99cnjfuw8p2f = { makeTab: makeTab$2 }; - if (editor.settings.image_advtab) { - // Parse styles from img - if (imgElm) { - if (imgElm.style.marginLeft && imgElm.style.marginRight && imgElm.style.marginLeft === imgElm.style.marginRight) { - data.hspace = Utils.removePixelSuffix(imgElm.style.marginLeft); - } - if (imgElm.style.marginTop && imgElm.style.marginBottom && imgElm.style.marginTop === imgElm.style.marginBottom) { - data.vspace = Utils.removePixelSuffix(imgElm.style.marginTop); - } - if (imgElm.style.borderWidth) { - data.border = Utils.removePixelSuffix(imgElm.style.borderWidth); - } + var noop$1 = function () { + var x = []; + for (var _i = 0; _i < arguments.length; _i++) { + x[_i] = arguments[_i]; + } + }; + var noarg = function (f) { + return function () { + var x = []; + for (var _i = 0; _i < arguments.length; _i++) { + x[_i] = arguments[_i]; + } + return f(); + }; + }; + var compose = function (fa, fb) { + return function () { + var x = []; + for (var _i = 0; _i < arguments.length; _i++) { + x[_i] = arguments[_i]; + } + return fa(fb.apply(null, arguments)); + }; + }; + var constant = function (value) { + return function () { + return value; + }; + }; + var identity = function (x) { + return x; + }; + var tripleEquals = function (a, b) { + return a === b; + }; + var curry = function (f) { + var x = []; + for (var _i = 1; _i < arguments.length; _i++) { + x[_i - 1] = arguments[_i]; + } + var args = new Array(arguments.length - 1); + for (var i = 1; i < arguments.length; i++) + args[i - 1] = arguments[i]; + return function () { + var x = []; + for (var _i = 0; _i < arguments.length; _i++) { + x[_i] = arguments[_i]; + } + var newArgs = new Array(arguments.length); + for (var j = 0; j < newArgs.length; j++) + newArgs[j] = arguments[j]; + var all = args.concat(newArgs); + return f.apply(null, all); + }; + }; + var not = function (f) { + return function () { + var x = []; + for (var _i = 0; _i < arguments.length; _i++) { + x[_i] = arguments[_i]; + } + return !f.apply(null, arguments); + }; + }; + var die = function (msg) { + return function () { + throw new Error(msg); + }; + }; + var apply = function (f) { + return f(); + }; + var call = function (f) { + f(); + }; + var never = constant(false); + var always = constant(true); + var $_ajqvh7csjfuw8p2q = { + noop: noop$1, + noarg: noarg, + compose: compose, + constant: constant, + identity: identity, + tripleEquals: tripleEquals, + curry: curry, + not: not, + die: die, + apply: apply, + call: call, + never: never, + always: always + }; - data.style = editor.dom.serializeStyle(editor.dom.parseStyle(editor.dom.getAttrib(imgElm, 'style'))); + var submitForm = function (editor, evt) { + var win = evt.control.getRoot(); + $_1ahiincmjfuw8p2c.updateSize(win); + editor.undoManager.transact(function () { + var data = $_ajpvnqcjjfuw8p25.merge(readImageDataFromSelection(editor), win.toJSON()); + insertOrUpdateImage(editor, data); + }); + editor.editorUpload.uploadImagesAuto(); + }; + function Dialog (editor) { + function showDialog(imageList) { + var data = readImageDataFromSelection(editor); + var win, imageListCtrl; + if (imageList) { + imageListCtrl = { + type: 'listbox', + label: 'Image list', + name: 'image-list', + values: $_7v7yldc7jfuw8p0q.buildListItems(imageList, function (item) { + item.value = editor.convertURL(item.value || item.url, 'src'); + }, [{ + text: 'None', + value: '' + }]), + value: data.src && editor.convertURL(data.src, 'src'), + onselect: function (e) { + var altCtrl = win.find('#alt'); + if (!altCtrl.value() || e.lastControl && altCtrl.value() === e.lastControl.text()) { + altCtrl.value(e.control.text()); } - - body.push({ - title: 'Advanced', - type: 'form', - pack: 'start', - items: [ - { - label: 'Style', - name: 'style', - type: 'textbox', - onchange: updateVSpaceHSpaceBorder - }, - { - type: 'form', - layout: 'grid', - packV: 'start', - columns: 2, - padding: 0, - alignH: ['left', 'right'], - defaults: { - type: 'textbox', - maxWidth: 50, - onchange: updateStyle - }, - items: [ - { label: 'Vertical space', name: 'vspace' }, - { label: 'Horizontal space', name: 'hspace' }, - { label: 'Border', name: 'border' } - ] - } - ] - }); - } - - if (editor.settings.images_upload_url) { - var acceptExts = '.jpg,.jpeg,.png,.gif'; - - var uploadTab = { - title: 'Upload', - type: 'form', - layout: 'flex', - direction: 'column', - align: 'stretch', - padding: '20 20 20 20', - items: [ - { - type: 'container', - layout: 'flex', - direction: 'column', - align: 'center', - spacing: 10, - items: [ - { - text: "Browse for an image", - type: 'browsebutton', - accept: acceptExts, - onchange: onFileInput - }, - { - text: 'OR', - type: 'label' - } - ] - }, - { - text: "Drop an image here", - type: 'dropzone', - accept: acceptExts, - height: 100, - onchange: onFileInput - } - ] - }; - - body.push(uploadTab); + win.find('#src').value(e.control.value()).fire('change'); + }, + onPostRender: function () { + imageListCtrl = this; } - - // Advanced dialog shows general+advanced tabs - win = editor.windowManager.open({ - title: 'Insert/edit image', - data: data, - bodyType: 'tabpanel', - body: body, - onSubmit: onSubmitForm - }); - } else { - // Simple default dialog - win = editor.windowManager.open({ - title: 'Insert/edit image', - data: data, - body: generalFormItems, - onSubmit: onSubmitForm - }); + }; + } + if ($_9cq6y3c6jfuw8p0n.hasAdvTab(editor) || $_9cq6y3c6jfuw8p0n.hasUploadUrl(editor) || $_9cq6y3c6jfuw8p0n.hasUploadHandler(editor)) { + var body = [$_e4gxykcljfuw8p29.makeTab(editor, imageListCtrl)]; + if ($_9cq6y3c6jfuw8p0n.hasAdvTab(editor)) { + body.push($_dlliegcfjfuw8p1m.makeTab(editor)); + } + if ($_9cq6y3c6jfuw8p0n.hasUploadUrl(editor) || $_9cq6y3c6jfuw8p0n.hasUploadHandler(editor)) { + body.push($_9k5u99cnjfuw8p2f.makeTab(editor)); } + win = editor.windowManager.open({ + title: 'Insert/edit image', + data: data, + bodyType: 'tabpanel', + body: body, + onSubmit: $_ajqvh7csjfuw8p2q.curry(submitForm, editor) + }); + } else { + win = editor.windowManager.open({ + title: 'Insert/edit image', + data: data, + body: $_e4gxykcljfuw8p29.getGeneralItems(editor, imageListCtrl), + onSubmit: $_ajqvh7csjfuw8p2q.curry(submitForm, editor) + }); } + $_1ahiincmjfuw8p2c.syncSize(win); + } + function open() { + $_7v7yldc7jfuw8p0q.createImageList(editor, showDialog); + } + return { open: open }; + } - function open() { - createImageList(showDialog); - } + var register = function (editor) { + editor.addCommand('mceImage', Dialog(editor).open); + }; + var $_cbuvmdc4jfuw8p0d = { register: register }; - return { - open: open + var hasImageClass = function (node) { + var className = node.attr('class'); + return className && /\bimage\b/.test(className); + }; + var toggleContentEditableState = function (state) { + return function (nodes) { + var i = nodes.length, node; + var toggleContentEditable = function (node) { + node.attr('contenteditable', state ? 'true' : null); }; + while (i--) { + node = nodes[i]; + if (hasImageClass(node)) { + node.attr('contenteditable', state ? 'false' : null); + global$3.each(node.getAll('figcaption'), toggleContentEditable); + } + } }; + }; + var setup = function (editor) { + editor.on('preInit', function () { + editor.parser.addNodeFilter('figure', toggleContentEditableState(true)); + editor.serializer.addNodeFilter('figure', toggleContentEditableState(false)); + }); + }; + var $_191db6ctjfuw8p2t = { setup: setup }; + + var register$1 = function (editor) { + editor.addButton('image', { + icon: 'image', + tooltip: 'Insert/edit image', + onclick: Dialog(editor).open, + stateSelector: 'img:not([data-mce-object],[data-mce-placeholder]),figure.image' + }); + editor.addMenuItem('image', { + icon: 'image', + text: 'Image', + onclick: Dialog(editor).open, + context: 'insert', + prependToContext: true + }); + }; + var $_9nl4e0cujfuw8p2v = { register: register$1 }; + + global.add('image', function (editor) { + $_191db6ctjfuw8p2t.setup(editor); + $_9nl4e0cujfuw8p2v.register(editor); + $_cbuvmdc4jfuw8p0d.register(editor); + }); + function Plugin () { } -); - -/** - * Plugin.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -/** - * This class contains all core logic for the image plugin. - * - * @class tinymce.image.Plugin - * @private - */ -define( - 'tinymce.plugins.image.Plugin', - [ - 'tinymce.core.PluginManager', - 'tinymce.core.util.Tools', - 'tinymce.plugins.image.ui.Dialog' - ], - function (PluginManager, Tools, Dialog) { - PluginManager.add('image', function (editor) { - - editor.on('preInit', function () { - function hasImageClass(node) { - var className = node.attr('class'); - return className && /\bimage\b/.test(className); - } - function toggleContentEditableState(state) { - return function (nodes) { - var i = nodes.length, node; + return Plugin; - function toggleContentEditable(node) { - node.attr('contenteditable', state ? 'true' : null); - } - - while (i--) { - node = nodes[i]; - - if (hasImageClass(node)) { - node.attr('contenteditable', state ? 'false' : null); - Tools.each(node.getAll('figcaption'), toggleContentEditable); - Tools.each(node.getAll('img'), toggleContentEditable); - } - } - }; - } - - editor.parser.addNodeFilter('figure', toggleContentEditableState(true)); - editor.serializer.addNodeFilter('figure', toggleContentEditableState(false)); - }); - - editor.addButton('image', { - icon: 'image', - tooltip: 'Insert/edit image', - onclick: Dialog(editor).open, - stateSelector: 'img:not([data-mce-object],[data-mce-placeholder]),figure.image' - }); - - editor.addMenuItem('image', { - icon: 'image', - text: 'Image', - onclick: Dialog(editor).open, - context: 'insert', - prependToContext: true - }); - - editor.addCommand('mceImage', Dialog(editor).open); - }); - - return function () { }; - } -); -dem('tinymce.plugins.image.Plugin')(); +}()); })(); diff --git a/wp-includes/js/tinymce/plugins/image/plugin.min.js b/wp-includes/js/tinymce/plugins/image/plugin.min.js index dc5369e5e..40b292955 100644 --- a/wp-includes/js/tinymce/plugins/image/plugin.min.js +++ b/wp-includes/js/tinymce/plugins/image/plugin.min.js @@ -1 +1 @@ -!function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("4",tinymce.util.Tools.resolve),g("1",["4"],function(a){return a("tinymce.PluginManager")}),g("2",["4"],function(a){return a("tinymce.util.Tools")}),h("5",document),h("6",Math),h("7",RegExp),g("8",["4"],function(a){return a("tinymce.Env")}),g("9",["4"],function(a){return a("tinymce.ui.Factory")}),g("a",["4"],function(a){return a("tinymce.util.JSON")}),g("b",["4"],function(a){return a("tinymce.util.XHR")}),g("e",["4"],function(a){return a("tinymce.util.Promise")}),g("c",["e","2","5"],function(a,b,c){return function(c){function d(a,b){return a?a.replace(/\/$/,"")+"/"+b.replace(/^\//,""):b}function e(a,b,e,f){var g,h;g=new XMLHttpRequest,g.open("POST",c.url),g.withCredentials=c.credentials,g.upload.onprogress=function(a){f(a.loaded/a.total*100)},g.onerror=function(){e("Image upload failed due to a XHR Transport error. Code: "+g.status)},g.onload=function(){var a;return g.status<200||g.status>=300?void e("HTTP Error: "+g.status):(a=JSON.parse(g.responseText),a&&"string"==typeof a.location?void b(d(c.basePath,a.location)):void e("Invalid JSON: "+g.responseText))},h=new FormData,h.append("file",a.blob(),a.filename()),g.send(h)}function f(b,c){return new a(function(a,d){try{c(b,a,d,i)}catch(a){d(a.message)}})}function g(a){return a===e}function h(b){return!c.url&&g(c.handler)?a.reject("Upload url missng from the settings."):f(b,c.handler)}var i=function(){};return c=b.extend({credentials:!1,handler:e},c),{upload:h}}}),g("d",["2","6","5"],function(a,b,c){var d=function(a,d){function e(a,b){f.parentNode&&f.parentNode.removeChild(f),d({width:a,height:b})}var f=c.createElement("img");f.onload=function(){e(b.max(f.width,f.clientWidth),b.max(f.height,f.clientHeight))},f.onerror=function(){e()};var g=f.style;g.visibility="hidden",g.position="fixed",g.bottom=g.left=0,g.width=g.height="auto",c.body.appendChild(f),f.src=a},e=function(b,c,d){function e(b,d){return d=d||[],a.each(b,function(a){var b={text:a.text||a.title};a.menu?b.menu=e(a.menu):(b.value=a.value,c(b)),d.push(b)}),d}return e(b,d||[])},f=function(a){return a&&(a=a.replace(/px$/,"")),a},g=function(a){return a.length>0&&/^[0-9]+$/.test(a)&&(a+="px"),a},h=function(a){if(a.margin){var b=a.margin.split(" ");switch(b.length){case 1:a["margin-top"]=a["margin-top"]||b[0],a["margin-right"]=a["margin-right"]||b[0],a["margin-bottom"]=a["margin-bottom"]||b[0],a["margin-left"]=a["margin-left"]||b[0];break;case 2:a["margin-top"]=a["margin-top"]||b[0],a["margin-right"]=a["margin-right"]||b[1],a["margin-bottom"]=a["margin-bottom"]||b[0],a["margin-left"]=a["margin-left"]||b[1];break;case 3:a["margin-top"]=a["margin-top"]||b[0],a["margin-right"]=a["margin-right"]||b[1],a["margin-bottom"]=a["margin-bottom"]||b[2],a["margin-left"]=a["margin-left"]||b[1];break;case 4:a["margin-top"]=a["margin-top"]||b[0],a["margin-right"]=a["margin-right"]||b[1],a["margin-bottom"]=a["margin-bottom"]||b[2],a["margin-left"]=a["margin-left"]||b[3]}delete a.margin}return a};return{getImageSize:d,buildListItems:e,removePixelSuffix:f,addPixelSuffix:g,mergeMargins:h}}),g("3",["5","6","7","8","9","a","2","b","c","d"],function(a,b,c,d,e,f,g,h,i,j){return function(a){function k(b){var c=a.settings.image_list;"string"==typeof c?h.send({url:c,success:function(a){b(f.parse(a))}}):"function"==typeof c?c(b):b(c)}function l(f){function h(){var b=e.get("Throbber"),c=new b(s.getEl()),d=this.value(),f=new i({url:B.images_upload_url,basePath:B.images_upload_base_path,credentials:B.images_upload_credentials,handler:B.images_upload_handler}),g=a.editorUpload.blobCache.create({blob:d,name:d.name?d.name.replace(/\.[^\.]+$/,""):null,base64:"data:image/fake;base64,="}),h=function(){c.hide(),URL.revokeObjectURL(g.blobUri())};return c.show(),f.upload(g).then(function(a){var b=s.find("#src");return b.value(a),s.find("tabpanel")[0].activateTab(0),b.fire("change"),h(),a},function(b){a.windowManager.alert(b),h()})}function k(b){return a.schema.getTextBlockElements()[b.nodeName]}function l(){var a,c,d,e;a=s.find("#width")[0],c=s.find("#height")[0],a&&c&&(d=a.value(),e=c.value(),s.find("#constrain")[0].checked()&&v&&w&&d&&e&&(v!=d?(e=b.round(d/v*e),isNaN(e)||c.value(e)):(d=b.round(e/w*d),isNaN(d)||a.value(d))),v=d,w=e)}function m(){if(a.settings.image_advtab){var b=s.toJSON(),c=A.parseStyle(b.style);c=j.mergeMargins(c),b.vspace&&(c["margin-top"]=c["margin-bottom"]=j.addPixelSuffix(b.vspace)),b.hspace&&(c["margin-left"]=c["margin-right"]=j.addPixelSuffix(b.hspace)),b.border&&(c["border-width"]=j.addPixelSuffix(b.border)),s.find("#style").value(A.serializeStyle(A.parseStyle(A.serializeStyle(c))))}}function n(){if(a.settings.image_advtab){var b=s.toJSON(),c=A.parseStyle(b.style);s.find("#vspace").value(""),s.find("#hspace").value(""),c=j.mergeMargins(c),(c["margin-top"]&&c["margin-bottom"]||c["margin-right"]&&c["margin-left"])&&(c["margin-top"]===c["margin-bottom"]?s.find("#vspace").value(j.removePixelSuffix(c["margin-top"])):s.find("#vspace").value(""),c["margin-right"]===c["margin-left"]?s.find("#hspace").value(j.removePixelSuffix(c["margin-right"])):s.find("#hspace").value("")),c["border-width"]&&s.find("#border").value(j.removePixelSuffix(c["border-width"])),s.find("#style").value(A.serializeStyle(A.parseStyle(A.serializeStyle(c))))}}function o(b){function c(){b.onload=b.onerror=null,a.selection&&(a.selection.select(b),a.nodeChanged())}b.onload=function(){z.width||z.height||!C||A.setAttribs(b,{width:b.clientWidth,height:b.clientHeight}),c()},b.onerror=c}function p(){var b,c;m(),l(),z=g.extend(z,s.toJSON()),z.alt||(z.alt=""),z.title||(z.title=""),""===z.width&&(z.width=null),""===z.height&&(z.height=null),z.style||(z.style=null),z={src:z.src,alt:z.alt,title:z.title,width:z.width,height:z.height,style:z.style,caption:z.caption,"class":z["class"]},a.undoManager.transact(function(){if(z.src){if(""===z.title&&(z.title=null),t?A.setAttribs(t,z):(z.id="__mcenew",a.focus(),a.selection.setContent(A.createHTML("img",z)),t=A.get("__mcenew"),A.setAttrib(t,"id",null)),a.editorUpload.uploadImagesAuto(),z.caption===!1&&A.is(t.parentNode,"figure.image")&&(b=t.parentNode,A.setAttrib(t,"contenteditable",null),A.insertAfter(t,b),A.remove(b),a.selection.select(t),a.nodeChanged()),z.caption!==!0)o(t);else if(!A.is(t.parentNode,"figure.image")){c=t,t=t.cloneNode(!0),t.contentEditable=!0,b=A.create("figure",{"class":"image"}),b.appendChild(t),b.appendChild(A.create("figcaption",{contentEditable:!0},"Caption")),b.contentEditable=!1;var d=A.getParent(c,k);d?A.split(d,c,b):A.replace(b,c),a.selection.select(b)}}else if(t){var e=A.is(t.parentNode,"figure.image")?t.parentNode:t;A.remove(e),a.focus(),a.nodeChanged(),A.isEmpty(a.getBody())&&(a.setContent(""),a.selection.setCursorLocation())}})}function q(b){var d,e,f,h=b.meta||{};x&&x.value(a.convertURL(this.value(),"src")),g.each(h,function(a,b){s.find("#"+b).value(a)}),h.width||h.height||(d=a.convertURL(this.value(),"src"),e=a.settings.image_prepend_url,f=new c("^(?:[a-z]+:)?//","i"),e&&!f.test(d)&&d.substring(0,e.length)!==e&&(d=e+d),this.value(d),j.getImageSize(a.documentBaseURI.toAbsolute(this.value()),function(a){a.width&&a.height&&C&&(v=a.width,w=a.height,s.find("#width").value(v),s.find("#height").value(w))}))}function r(a){a.meta=s.toJSON()}var s,t,u,v,w,x,y,z={},A=a.dom,B=a.settings,C=B.image_dimensions!==!1;t=a.selection.getNode(),u=A.getParent(t,"figure.image"),u&&(t=A.select("img",u)[0]),t&&("IMG"!=t.nodeName||t.getAttribute("data-mce-object")||t.getAttribute("data-mce-placeholder"))&&(t=null),t&&(v=A.getAttrib(t,"width"),w=A.getAttrib(t,"height"),z={src:A.getAttrib(t,"src"),alt:A.getAttrib(t,"alt"),title:A.getAttrib(t,"title"),"class":A.getAttrib(t,"class"),width:v,height:w,caption:!!u}),f&&(x={type:"listbox",label:"Image list",values:j.buildListItems(f,function(b){b.value=a.convertURL(b.value||b.url,"src")},[{text:"None",value:""}]),value:z.src&&a.convertURL(z.src,"src"),onselect:function(a){var b=s.find("#alt");(!b.value()||a.lastControl&&b.value()==a.lastControl.text())&&b.value(a.control.text()),s.find("#src").value(a.control.value()).fire("change")},onPostRender:function(){x=this}}),a.settings.image_class_list&&(y={name:"class",type:"listbox",label:"Class",values:j.buildListItems(a.settings.image_class_list,function(b){b.value&&(b.textStyle=function(){return a.formatter.getCssText({inline:"img",classes:[b.value]})})})});var D=[{name:"src",type:"filepicker",filetype:"image",label:"Source",autofocus:!0,onchange:q,onbeforecall:r},x];if(a.settings.image_description!==!1&&D.push({name:"alt",type:"textbox",label:"Image description"}),a.settings.image_title&&D.push({name:"title",type:"textbox",label:"Image Title"}),C&&D.push({type:"container",label:"Dimensions",layout:"flex",direction:"row",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:5,size:3,onchange:l,ariaLabel:"Width"},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:5,size:3,onchange:l,ariaLabel:"Height"},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}),D.push(y),a.settings.image_caption&&d.ceFalse&&D.push({name:"caption",type:"checkbox",label:"Caption"}),a.settings.image_advtab||a.settings.images_upload_url){var E=[{title:"General",type:"form",items:D}];if(a.settings.image_advtab&&(t&&(t.style.marginLeft&&t.style.marginRight&&t.style.marginLeft===t.style.marginRight&&(z.hspace=j.removePixelSuffix(t.style.marginLeft)),t.style.marginTop&&t.style.marginBottom&&t.style.marginTop===t.style.marginBottom&&(z.vspace=j.removePixelSuffix(t.style.marginTop)),t.style.borderWidth&&(z.border=j.removePixelSuffix(t.style.borderWidth)),z.style=a.dom.serializeStyle(a.dom.parseStyle(a.dom.getAttrib(t,"style")))),E.push({title:"Advanced",type:"form",pack:"start",items:[{label:"Style",name:"style",type:"textbox",onchange:n},{type:"form",layout:"grid",packV:"start",columns:2,padding:0,alignH:["left","right"],defaults:{type:"textbox",maxWidth:50,onchange:m},items:[{label:"Vertical space",name:"vspace"},{label:"Horizontal space",name:"hspace"},{label:"Border",name:"border"}]}]})),a.settings.images_upload_url){var F=".jpg,.jpeg,.png,.gif",G={title:"Upload",type:"form",layout:"flex",direction:"column",align:"stretch",padding:"20 20 20 20",items:[{type:"container",layout:"flex",direction:"column",align:"center",spacing:10,items:[{text:"Browse for an image",type:"browsebutton",accept:F,onchange:h},{text:"OR",type:"label"}]},{text:"Drop an image here",type:"dropzone",accept:F,height:100,onchange:h}]};E.push(G)}s=a.windowManager.open({title:"Insert/edit image",data:z,bodyType:"tabpanel",body:E,onSubmit:p})}else s=a.windowManager.open({title:"Insert/edit image",data:z,body:D,onSubmit:p})}function m(){k(l)}return{open:m}}}),g("0",["1","2","3"],function(a,b,c){return a.add("image",function(a){a.on("preInit",function(){function c(a){var b=a.attr("class");return b&&/\bimage\b/.test(b)}function d(a){return function(d){function e(b){b.attr("contenteditable",a?"true":null)}for(var f,g=d.length;g--;)f=d[g],c(f)&&(f.attr("contenteditable",a?"false":null),b.each(f.getAll("figcaption"),e),b.each(f.getAll("img"),e))}}a.parser.addNodeFilter("figure",d(!0)),a.serializer.addNodeFilter("figure",d(!1))}),a.addButton("image",{icon:"image",tooltip:"Insert/edit image",onclick:c(a).open,stateSelector:"img:not([data-mce-object],[data-mce-placeholder]),figure.image"}),a.addMenuItem("image",{icon:"image",text:"Image",onclick:c(a).open,context:"insert",prependToContext:!0}),a.addCommand("mceImage",c(a).open)}),function(){}}),d("0")()}(); \ No newline at end of file +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),d={hasDimensions:function(e){return!1!==e.settings.image_dimensions},hasAdvTab:function(e){return!0===e.settings.image_advtab},getPrependUrl:function(e){return e.getParam("image_prepend_url","")},getClassList:function(e){return e.getParam("image_class_list")},hasDescription:function(e){return!1!==e.settings.image_description},hasImageTitle:function(e){return!0===e.settings.image_title},hasImageCaption:function(e){return!0===e.settings.image_caption},getImageList:function(e){return e.getParam("image_list",!1)},hasUploadUrl:function(e){return e.getParam("images_upload_url",!1)},hasUploadHandler:function(e){return e.getParam("images_upload_handler",!1)},getUploadUrl:function(e){return e.getParam("images_upload_url")},getUploadHandler:function(e){return e.getParam("images_upload_handler")},getUploadBasePath:function(e){return e.getParam("images_upload_base_path")},getUploadCredentials:function(e){return e.getParam("images_upload_credentials")}},a="undefined"!=typeof window?window:Function("return this;")(),r=function(e,t){for(var n=t!==undefined&&null!==t?t:a,r=0;r<e.length&&n!==undefined&&null!==n;++r)n=n[e[r]];return n},i=function(e,t){var n=e.split(".");return r(n,t)},t={getOrDie:function(e,t){var n=i(e,t);if(n===undefined||null===n)throw e+" not available on this browser";return n}};function o(){return new(t.getOrDie("FileReader"))}var n=tinymce.util.Tools.resolve("tinymce.util.Promise"),f=tinymce.util.Tools.resolve("tinymce.util.Tools"),l=tinymce.util.Tools.resolve("tinymce.util.XHR"),u=function(e,t){return Math.max(parseInt(e,10),parseInt(t,10))},g={getImageSize:function(e,n){var r=document.createElement("img");function t(e,t){r.parentNode&&r.parentNode.removeChild(r),n({width:e,height:t})}r.onload=function(){t(u(r.width,r.clientWidth),u(r.height,r.clientHeight))},r.onerror=function(){t(0,0)};var a=r.style;a.visibility="hidden",a.position="fixed",a.bottom=a.left="0px",a.width=a.height="auto",document.body.appendChild(r),r.src=e},buildListItems:function(e,a,t){return function n(e,r){return r=r||[],f.each(e,function(e){var t={text:e.text||e.title};e.menu?t.menu=n(e.menu):(t.value=e.value,a(t)),r.push(t)}),r}(e,t||[])},removePixelSuffix:function(e){return e&&(e=e.replace(/px$/,"")),e},addPixelSuffix:function(e){return 0<e.length&&/^[0-9]+$/.test(e)&&(e+="px"),e},mergeMargins:function(e){if(e.margin){var t=e.margin.split(" ");switch(t.length){case 1:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[0],e["margin-bottom"]=e["margin-bottom"]||t[0],e["margin-left"]=e["margin-left"]||t[0];break;case 2:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[0],e["margin-left"]=e["margin-left"]||t[1];break;case 3:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[2],e["margin-left"]=e["margin-left"]||t[1];break;case 4:e["margin-top"]=e["margin-top"]||t[0],e["margin-right"]=e["margin-right"]||t[1],e["margin-bottom"]=e["margin-bottom"]||t[2],e["margin-left"]=e["margin-left"]||t[3]}delete e.margin}return e},createImageList:function(e,t){var n=d.getImageList(e);"string"==typeof n?l.send({url:n,success:function(e){t(JSON.parse(e))}}):"function"==typeof n?n(t):t(n)},waitLoadImage:function(e,t,n){function r(){n.onload=n.onerror=null,e.selection&&(e.selection.select(n),e.nodeChanged())}n.onload=function(){t.width||t.height||!d.hasDimensions(e)||e.dom.setAttribs(n,{width:n.clientWidth,height:n.clientHeight}),r()},n.onerror=r},blobToDataUri:function(r){return new n(function(e,t){var n=new o;n.onload=function(){e(n.result)},n.onerror=function(){t(o.error.message)},n.readAsDataURL(r)})}},s=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),c=function(t){return function(e){return function(e){if(null===e)return"null";var t=typeof e;return"object"===t&&Array.prototype.isPrototypeOf(e)?"array":"object"===t&&String.prototype.isPrototypeOf(e)?"string":t}(e)===t}},m={isString:c("string"),isObject:c("object"),isArray:c("array"),isNull:c("null"),isBoolean:c("boolean"),isUndefined:c("undefined"),isFunction:c("function"),isNumber:c("number")},p=function(o){return function(){for(var e=new Array(arguments.length),t=0;t<e.length;t++)e[t]=arguments[t];if(0===e.length)throw new Error("Can't merge zero objects");for(var n={},r=0;r<e.length;r++){var a=e[r];for(var i in a)a.hasOwnProperty(i)&&(n[i]=o(n[i],a[i]))}return n}},h=p(function(e,t){return m.isObject(e)&&m.isObject(t)?h(e,t):t}),v=p(function(e,t){return t}),b={deepMerge:h,merge:v},y=s.DOM,x=function(e){return e.style.marginLeft&&e.style.marginRight&&e.style.marginLeft===e.style.marginRight?g.removePixelSuffix(e.style.marginLeft):""},w=function(e){return e.style.marginTop&&e.style.marginBottom&&e.style.marginTop===e.style.marginBottom?g.removePixelSuffix(e.style.marginTop):""},S=function(e){return e.style.borderWidth?g.removePixelSuffix(e.style.borderWidth):""},U=function(e,t){return e.hasAttribute(t)?e.getAttribute(t):""},C=function(e,t){return e.style[t]?e.style[t]:""},T=function(e){return null!==e.parentNode&&"FIGURE"===e.parentNode.nodeName},P=function(e,t,n){e.setAttribute(t,n)},I=function(e){var t,n,r,a;T(e)?(a=(r=e).parentNode,y.insertAfter(r,a),y.remove(a)):(t=e,n=y.create("figure",{"class":"image"}),y.insertAfter(n,t),n.appendChild(t),n.appendChild(y.create("figcaption",{contentEditable:!0},"Caption")),n.contentEditable="false")},N=function(e,t){var n=e.getAttribute("style"),r=t(null!==n?n:"");0<r.length?(e.setAttribute("style",r),e.setAttribute("data-mce-style",r)):e.removeAttribute("style")},A=function(e,r){return function(e,t,n){e.style[t]?(e.style[t]=g.addPixelSuffix(n),N(e,r)):P(e,t,n)}},L=function(e,t){return e.style[t]?g.removePixelSuffix(e.style[t]):U(e,t)},_=function(e,t){var n=g.addPixelSuffix(t);e.style.marginLeft=n,e.style.marginRight=n},O=function(e,t){var n=g.addPixelSuffix(t);e.style.marginTop=n,e.style.marginBottom=n},R=function(e,t){var n=g.addPixelSuffix(t);e.style.borderWidth=n},D=function(e,t){e.style.borderStyle=t},k=function(e){return"FIGURE"===e.nodeName},z=function(e,t){var n=document.createElement("img");return P(n,"style",t.style),(x(n)||""!==t.hspace)&&_(n,t.hspace),(w(n)||""!==t.vspace)&&O(n,t.vspace),(S(n)||""!==t.border)&&R(n,t.border),(C(n,"borderStyle")||""!==t.borderStyle)&&D(n,t.borderStyle),e(n.getAttribute("style"))},M=function(e,t){return{src:U(t,"src"),alt:U(t,"alt"),title:U(t,"title"),width:L(t,"width"),height:L(t,"height"),"class":U(t,"class"),style:e(U(t,"style")),caption:T(t),hspace:x(t),vspace:w(t),border:S(t),borderStyle:C(t,"borderStyle")}},E=function(e,t,n,r,a){n[r]!==t[r]&&a(e,r,n[r])},H=function(r,a){return function(e,t,n){r(e,n),N(e,a)}},j=function(e,t,n){var r=M(e,n);E(n,r,t,"caption",function(e,t,n){return I(e)}),E(n,r,t,"src",P),E(n,r,t,"alt",P),E(n,r,t,"title",P),E(n,r,t,"width",A(0,e)),E(n,r,t,"height",A(0,e)),E(n,r,t,"class",P),E(n,r,t,"style",H(function(e,t){return P(e,"style",t)},e)),E(n,r,t,"hspace",H(_,e)),E(n,r,t,"vspace",H(O,e)),E(n,r,t,"border",H(R,e)),E(n,r,t,"borderStyle",H(D,e))},B=function(e,t){var n=e.dom.styles.parse(t),r=g.mergeMargins(n),a=e.dom.styles.parse(e.dom.styles.serialize(r));return e.dom.styles.serialize(a)},F=function(e){var t=e.selection.getNode(),n=e.dom.getParent(t,"figure.image");return n?e.dom.select("img",n)[0]:t&&("IMG"!==t.nodeName||t.getAttribute("data-mce-object")||t.getAttribute("data-mce-placeholder"))?null:t},W=function(t,e){var n=t.dom,r=n.getParent(e.parentNode,function(e){return t.schema.getTextBlockElements()[e.nodeName]});return r?n.split(r,e):e},G=function(t){var e=F(t);return e?M(function(e){return B(t,e)},e):{src:"",alt:"",title:"",width:"",height:"","class":"",style:"",caption:!1,hspace:"",vspace:"",border:"",borderStyle:""}},J=function(t,e){var n=function(e,t){var n=document.createElement("img");if(j(e,b.merge(t,{caption:!1}),n),P(n,"alt",t.alt),t.caption){var r=y.create("figure",{"class":"image"});return r.appendChild(n),r.appendChild(y.create("figcaption",{contentEditable:!0},"Caption")),r.contentEditable="false",r}return n}(function(e){return B(t,e)},e);t.dom.setAttrib(n,"data-mce-id","__mcenew"),t.focus(),t.selection.setContent(n.outerHTML);var r=t.dom.select('*[data-mce-id="__mcenew"]')[0];if(t.dom.setAttrib(r,"data-mce-id",null),k(r)){var a=W(t,r);t.selection.select(a)}else t.selection.select(r)},V=function(e,t){var n=F(e);n?t.src?function(t,e){var n,r=F(t);if(j(function(e){return B(t,e)},e,r),n=r,t.dom.setAttrib(n,"src",n.getAttribute("src")),k(r.parentNode)){var a=r.parentNode;W(t,a),t.selection.select(r.parentNode)}else t.selection.select(r),g.waitLoadImage(t,e,r)}(e,t):function(e,t){if(t){var n=e.dom.is(t.parentNode,"figure.image")?t.parentNode:t;e.dom.remove(n),e.focus(),e.nodeChanged(),e.dom.isEmpty(e.getBody())&&(e.setContent(""),e.selection.setCursorLocation())}}(e,n):t.src&&J(e,t)},$=function(n,r){r.find("#style").each(function(e){var t=z(function(e){return B(n,e)},b.merge({src:"",alt:"",title:"",width:"",height:"","class":"",style:"",caption:!1,hspace:"",vspace:"",border:"",borderStyle:""},r.toJSON()));e.value(t)})},X={makeTab:function(t){return{title:"Advanced",type:"form",pack:"start",items:[{label:"Style",name:"style",type:"textbox",onchange:(i=t,function(e){var t=i.dom,n=e.control.rootControl;if(d.hasAdvTab(i)){var r=n.toJSON(),a=t.parseStyle(r.style);n.find("#vspace").value(""),n.find("#hspace").value(""),((a=g.mergeMargins(a))["margin-top"]&&a["margin-bottom"]||a["margin-right"]&&a["margin-left"])&&(a["margin-top"]===a["margin-bottom"]?n.find("#vspace").value(g.removePixelSuffix(a["margin-top"])):n.find("#vspace").value(""),a["margin-right"]===a["margin-left"]?n.find("#hspace").value(g.removePixelSuffix(a["margin-right"])):n.find("#hspace").value("")),a["border-width"]?n.find("#border").value(g.removePixelSuffix(a["border-width"])):n.find("#border").value(""),a["border-style"]?n.find("#borderStyle").value(a["border-style"]):n.find("#borderStyle").value(""),n.find("#style").value(t.serializeStyle(t.parseStyle(t.serializeStyle(a))))}})},{type:"form",layout:"grid",packV:"start",columns:2,padding:0,defaults:{type:"textbox",maxWidth:50,onchange:function(e){$(t,e.control.rootControl)}},items:[{label:"Vertical space",name:"vspace"},{label:"Border width",name:"border"},{label:"Horizontal space",name:"hspace"},{label:"Border style",type:"listbox",name:"borderStyle",width:90,maxWidth:90,onselect:function(e){$(t,e.control.rootControl)},values:[{text:"Select...",value:""},{text:"Solid",value:"solid"},{text:"Dotted",value:"dotted"},{text:"Dashed",value:"dashed"},{text:"Double",value:"double"},{text:"Groove",value:"groove"},{text:"Ridge",value:"ridge"},{text:"Inset",value:"inset"},{text:"Outset",value:"outset"},{text:"None",value:"none"},{text:"Hidden",value:"hidden"}]}]}]};var i}},q=function(e,t){e.state.set("oldVal",e.value()),t.state.set("oldVal",t.value())},K=function(e,t){var n=e.find("#width")[0],r=e.find("#height")[0],a=e.find("#constrain")[0];n&&r&&a&&t(n,r,a.checked())},Q=function(e,t,n){var r=e.state.get("oldVal"),a=t.state.get("oldVal"),i=e.value(),o=t.value();n&&r&&a&&i&&o&&(i!==r?(o=Math.round(i/r*o),isNaN(o)||t.value(o)):(i=Math.round(o/a*i),isNaN(i)||e.value(i))),q(e,t)},Y=function(e){K(e,Q)},Z={createUi:function(){var e=function(e){Y(e.control.rootControl)};return{type:"container",label:"Dimensions",layout:"flex",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:5,size:5,onchange:e,ariaLabel:"Width"},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:5,size:5,onchange:e,ariaLabel:"Height"},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}},syncSize:function(e){K(e,q)},updateSize:Y},ee=function(e){e.meta=e.control.rootControl.toJSON()},te=function(c,e){var t=[{name:"src",type:"filepicker",filetype:"image",label:"Source",autofocus:!0,onchange:function(e){var t,n,r,a,i,o,l,u,s;n=c,o=(t=e).meta||{},l=t.control,u=l.rootControl,(s=u.find("#image-list")[0])&&s.value(n.convertURL(l.value(),"src")),f.each(o,function(e,t){u.find("#"+t).value(e)}),o.width||o.height||(r=n.convertURL(l.value(),"src"),a=d.getPrependUrl(n),i=new RegExp("^(?:[a-z]+:)?//","i"),a&&!i.test(r)&&r.substring(0,a.length)!==a&&(r=a+r),l.value(r),g.getImageSize(n.documentBaseURI.toAbsolute(l.value()),function(e){e.width&&e.height&&d.hasDimensions(n)&&(u.find("#width").value(e.width),u.find("#height").value(e.height),Z.syncSize(u))}))},onbeforecall:ee},e];return d.hasDescription(c)&&t.push({name:"alt",type:"textbox",label:"Image description"}),d.hasImageTitle(c)&&t.push({name:"title",type:"textbox",label:"Image Title"}),d.hasDimensions(c)&&t.push(Z.createUi()),d.getClassList(c)&&t.push({name:"class",type:"listbox",label:"Class",values:g.buildListItems(d.getClassList(c),function(e){e.value&&(e.textStyle=function(){return c.formatter.getCssText({inline:"img",classes:[e.value]})})})}),d.hasImageCaption(c)&&t.push({name:"caption",type:"checkbox",label:"Caption"}),t},ne={makeTab:function(e,t){return{title:"General",type:"form",items:te(e,t)}},getGeneralItems:te},re=function(){return t.getOrDie("URL")},ae=function(e){return re().createObjectURL(e)},ie=function(e){re().revokeObjectURL(e)},oe=tinymce.util.Tools.resolve("tinymce.ui.Factory");function le(){return new(t.getOrDie("XMLHttpRequest"))}var ue=function(){},se=function(e,t){return e?e.replace(/\/$/,"")+"/"+t.replace(/^\//,""):t};function ce(o){var t=function(e,t,n,r){var a,i;(a=new le).open("POST",o.url),a.withCredentials=o.credentials,a.upload.onprogress=function(e){r(e.loaded/e.total*100)},a.onerror=function(){n("Image upload failed due to a XHR Transport error. Code: "+a.status)},a.onload=function(){var e;a.status<200||300<=a.status?n("HTTP Error: "+a.status):(e=JSON.parse(a.responseText))&&"string"==typeof e.location?t(se(o.basePath,e.location)):n("Invalid JSON: "+a.responseText)},(i=new FormData).append("file",e.blob(),e.filename()),a.send(i)};return o=f.extend({credentials:!1,handler:t},o),{upload:function(e){return o.url||o.handler!==t?(r=e,a=o.handler,new n(function(e,t){try{a(r,e,t,ue)}catch(n){t(n.message)}})):n.reject("Upload url missing from the settings.");var r,a}}}var de=function(u){return function(e){var t=oe.get("Throbber"),n=e.control.rootControl,r=new t(n.getEl()),a=e.control.value(),i=ae(a),o=ce({url:d.getUploadUrl(u),basePath:d.getUploadBasePath(u),credentials:d.getUploadCredentials(u),handler:d.getUploadHandler(u)}),l=function(){r.hide(),ie(i)};return r.show(),g.blobToDataUri(a).then(function(e){var t=u.editorUpload.blobCache.create({blob:a,blobUri:i,name:a.name?a.name.replace(/\.[^\.]+$/,""):null,base64:e.split(",")[1]});return o.upload(t).then(function(e){var t=n.find("#src");return t.value(e),n.find("tabpanel")[0].activateTab(0),t.fire("change"),l(),e})})["catch"](function(e){u.windowManager.alert(e),l()})}},fe=".jpg,.jpeg,.png,.gif",ge={makeTab:function(e){return{title:"Upload",type:"form",layout:"flex",direction:"column",align:"stretch",padding:"20 20 20 20",items:[{type:"container",layout:"flex",direction:"column",align:"center",spacing:10,items:[{text:"Browse for an image",type:"browsebutton",accept:fe,onchange:de(e)},{text:"OR",type:"label"}]},{text:"Drop an image here",type:"dropzone",accept:fe,height:100,onchange:de(e)}]}}},me=function(e){return function(){return e}},pe={noop:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t]},noarg:function(n){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n()}},compose:function(n,r){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n(r.apply(null,arguments))}},constant:me,identity:function(e){return e},tripleEquals:function(e,t){return e===t},curry:function(i){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];for(var o=new Array(arguments.length-1),n=1;n<arguments.length;n++)o[n-1]=arguments[n];return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];var a=o.concat(n);return i.apply(null,a)}},not:function(n){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return!n.apply(null,arguments)}},die:function(e){return function(){throw new Error(e)}},apply:function(e){return e()},call:function(e){e()},never:me(!1),always:me(!0)},he=function(t,e){var n=e.control.getRoot();Z.updateSize(n),t.undoManager.transact(function(){var e=b.merge(G(t),n.toJSON());V(t,e)}),t.editorUpload.uploadImagesAuto()};function ve(i){function e(e){var n,t,r=G(i);if(e&&(t={type:"listbox",label:"Image list",name:"image-list",values:g.buildListItems(e,function(e){e.value=i.convertURL(e.value||e.url,"src")},[{text:"None",value:""}]),value:r.src&&i.convertURL(r.src,"src"),onselect:function(e){var t=n.find("#alt");(!t.value()||e.lastControl&&t.value()===e.lastControl.text())&&t.value(e.control.text()),n.find("#src").value(e.control.value()).fire("change")},onPostRender:function(){t=this}}),d.hasAdvTab(i)||d.hasUploadUrl(i)||d.hasUploadHandler(i)){var a=[ne.makeTab(i,t)];d.hasAdvTab(i)&&a.push(X.makeTab(i)),(d.hasUploadUrl(i)||d.hasUploadHandler(i))&&a.push(ge.makeTab(i)),n=i.windowManager.open({title:"Insert/edit image",data:r,bodyType:"tabpanel",body:a,onSubmit:pe.curry(he,i)})}else n=i.windowManager.open({title:"Insert/edit image",data:r,body:ne.getGeneralItems(i,t),onSubmit:pe.curry(he,i)});Z.syncSize(n)}return{open:function(){g.createImageList(i,e)}}}var be=function(e){e.addCommand("mceImage",ve(e).open)},ye=function(i){return function(e){for(var t,n,r=e.length,a=function(e){e.attr("contenteditable",i?"true":null)};r--;)t=e[r],(n=t.attr("class"))&&/\bimage\b/.test(n)&&(t.attr("contenteditable",i?"false":null),f.each(t.getAll("figcaption"),a))}},xe=function(e){e.on("preInit",function(){e.parser.addNodeFilter("figure",ye(!0)),e.serializer.addNodeFilter("figure",ye(!1))})},we=function(e){e.addButton("image",{icon:"image",tooltip:"Insert/edit image",onclick:ve(e).open,stateSelector:"img:not([data-mce-object],[data-mce-placeholder]),figure.image"}),e.addMenuItem("image",{icon:"image",text:"Image",onclick:ve(e).open,context:"insert",prependToContext:!0})};e.add("image",function(e){xe(e),we(e),be(e)})}(); \ No newline at end of file diff --git a/wp-includes/js/tinymce/plugins/link/plugin.js b/wp-includes/js/tinymce/plugins/link/plugin.js index a2f1aa1cd..c0d964c7f 100644 --- a/wp-includes/js/tinymce/plugins/link/plugin.js +++ b/wp-includes/js/tinymce/plugins/link/plugin.js @@ -1,1174 +1,713 @@ (function () { +var link = (function () { + 'use strict'; -var defs = {}; // id -> {dependencies, definition, instance (possibly undefined)} + var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); -// Used when there is no 'main' module. -// The name is probably (hopefully) unique so minification removes for releases. -var register_3795 = function (id) { - var module = dem(id); - var fragments = id.split('.'); - var target = Function('return this;')(); - for (var i = 0; i < fragments.length - 1; ++i) { - if (target[fragments[i]] === undefined) - target[fragments[i]] = {}; - target = target[fragments[i]]; - } - target[fragments[fragments.length - 1]] = module; -}; - -var instantiate = function (id) { - var actual = defs[id]; - var dependencies = actual.deps; - var definition = actual.defn; - var len = dependencies.length; - var instances = new Array(len); - for (var i = 0; i < len; ++i) - instances[i] = dem(dependencies[i]); - var defResult = definition.apply(null, instances); - if (defResult === undefined) - throw 'module [' + id + '] returned undefined'; - actual.instance = defResult; -}; + var global$1 = tinymce.util.Tools.resolve('tinymce.util.VK'); -var def = function (id, dependencies, definition) { - if (typeof id !== 'string') - throw 'module id must be a string'; - else if (dependencies === undefined) - throw 'no dependencies for ' + id; - else if (definition === undefined) - throw 'no definition function for ' + id; - defs[id] = { - deps: dependencies, - defn: definition, - instance: undefined + var assumeExternalTargets = function (editorSettings) { + return typeof editorSettings.link_assume_external_targets === 'boolean' ? editorSettings.link_assume_external_targets : false; + }; + var hasContextToolbar = function (editorSettings) { + return typeof editorSettings.link_context_toolbar === 'boolean' ? editorSettings.link_context_toolbar : false; + }; + var getLinkList = function (editorSettings) { + return editorSettings.link_list; + }; + var hasDefaultLinkTarget = function (editorSettings) { + return typeof editorSettings.default_link_target === 'string'; + }; + var getDefaultLinkTarget = function (editorSettings) { + return editorSettings.default_link_target; + }; + var getTargetList = function (editorSettings) { + return editorSettings.target_list; + }; + var setTargetList = function (editor, list) { + editor.settings.target_list = list; + }; + var shouldShowTargetList = function (editorSettings) { + return getTargetList(editorSettings) !== false; + }; + var getRelList = function (editorSettings) { + return editorSettings.rel_list; + }; + var hasRelList = function (editorSettings) { + return getRelList(editorSettings) !== undefined; + }; + var getLinkClassList = function (editorSettings) { + return editorSettings.link_class_list; + }; + var hasLinkClassList = function (editorSettings) { + return getLinkClassList(editorSettings) !== undefined; + }; + var shouldShowLinkTitle = function (editorSettings) { + return editorSettings.link_title !== false; + }; + var allowUnsafeLinkTarget = function (editorSettings) { + return typeof editorSettings.allow_unsafe_link_target === 'boolean' ? editorSettings.allow_unsafe_link_target : false; + }; + var $_ae1yh4f3jfuw8pj4 = { + assumeExternalTargets: assumeExternalTargets, + hasContextToolbar: hasContextToolbar, + getLinkList: getLinkList, + hasDefaultLinkTarget: hasDefaultLinkTarget, + getDefaultLinkTarget: getDefaultLinkTarget, + getTargetList: getTargetList, + setTargetList: setTargetList, + shouldShowTargetList: shouldShowTargetList, + getRelList: getRelList, + hasRelList: hasRelList, + getLinkClassList: getLinkClassList, + hasLinkClassList: hasLinkClassList, + shouldShowLinkTitle: shouldShowLinkTitle, + allowUnsafeLinkTarget: allowUnsafeLinkTarget }; -}; - -var dem = function (id) { - var actual = defs[id]; - if (actual === undefined) - throw 'module [' + id + '] was undefined'; - else if (actual.instance === undefined) - instantiate(id); - return actual.instance; -}; - -var req = function (ids, callback) { - var len = ids.length; - var instances = new Array(len); - for (var i = 0; i < len; ++i) - instances.push(dem(ids[i])); - callback.apply(null, callback); -}; - -var ephox = {}; - -ephox.bolt = { - module: { - api: { - define: def, - require: req, - demand: dem - } - } -}; - -var define = def; -var require = req; -var demand = dem; -// this helps with minificiation when using a lot of global references -var defineGlobal = function (id, ref) { - define(id, [], function () { return ref; }); -}; -/*jsc -["tinymce.plugins.link.Plugin","tinymce.core.PluginManager","tinymce.plugins.link.core.Actions","tinymce.plugins.link.ui.Controls","global!tinymce.util.Tools.resolve","tinymce.core.util.VK","tinymce.plugins.link.ui.Dialog","tinymce.plugins.link.core.OpenUrl","tinymce.plugins.link.core.Utils","tinymce.plugins.link.core.Settings","tinymce.core.util.Delay","tinymce.core.util.Tools","tinymce.core.util.XHR","global!RegExp","tinymce.core.dom.DOMUtils","tinymce.core.Env"] -jsc*/ -defineGlobal("global!tinymce.util.Tools.resolve", tinymce.util.Tools.resolve); -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.PluginManager', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.PluginManager'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.util.VK', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.util.VK'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.util.Delay', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.util.Delay'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.util.Tools', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.util.Tools'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.util.XHR', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.util.XHR'); - } -); - -define( - 'tinymce.plugins.link.core.Settings', - [ - - ], - function () { - var assumeExternalTargets = function (editorSettings) { - return typeof editorSettings.link_assume_external_targets === 'boolean' ? editorSettings.link_assume_external_targets : false; - }; - - var hasContextToolbar = function (editorSettings) { - return typeof editorSettings.link_context_toolbar === 'boolean' ? editorSettings.link_context_toolbar : false; - }; - - var getLinkList = function (editorSettings) { - return editorSettings.link_list; - }; - - var hasDefaultLinkTarget = function (editorSettings) { - return typeof editorSettings.default_link_target === 'string'; - }; - - var getDefaultLinkTarget = function (editorSettings) { - return editorSettings.default_link_target; - }; - - var getTargetList = function (editorSettings) { - return editorSettings.target_list; - }; - - var setTargetList = function (editor, list) { - editor.settings.target_list = list; - }; - - var shouldShowTargetList = function (editorSettings) { - return getTargetList(editorSettings) !== false; - }; - - var getRelList = function (editorSettings) { - return editorSettings.rel_list; - }; - - var hasRelList = function (editorSettings) { - return getRelList(editorSettings) !== undefined; - }; - - var getLinkClassList = function (editorSettings) { - return editorSettings.link_class_list; - }; - - var hasLinkClassList = function (editorSettings) { - return getLinkClassList(editorSettings) !== undefined; - }; - - var shouldShowLinkTitle = function (editorSettings) { - return editorSettings.link_title !== false; - }; - - var allowUnsafeLinkTarget = function (editorSettings) { - return typeof editorSettings.allow_unsafe_link_target === 'boolean' ? editorSettings.allow_unsafe_link_target : false; - }; - - return { - assumeExternalTargets: assumeExternalTargets, - hasContextToolbar: hasContextToolbar, - getLinkList: getLinkList, - hasDefaultLinkTarget: hasDefaultLinkTarget, - getDefaultLinkTarget: getDefaultLinkTarget, - getTargetList: getTargetList, - setTargetList: setTargetList, - shouldShowTargetList: shouldShowTargetList, - getRelList: getRelList, - hasRelList: hasRelList, - getLinkClassList: getLinkClassList, - hasLinkClassList: hasLinkClassList, - shouldShowLinkTitle: shouldShowLinkTitle, - allowUnsafeLinkTarget: allowUnsafeLinkTarget - }; - } -); - -defineGlobal("global!RegExp", RegExp); -/** - * Utils.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.link.core.Utils', - [ - 'tinymce.core.util.Tools', - 'tinymce.plugins.link.core.Settings', - 'global!RegExp' - ], - function (Tools, Settings, RegExp) { - - var toggleTargetRules = function (rel, isUnsafe) { - var rules = ['noopener']; - var newRel = rel ? rel.split(/\s+/) : []; - - var toString = function (rel) { - return Tools.trim(rel.sort().join(' ')); - }; - - var addTargetRules = function (rel) { - rel = removeTargetRules(rel); - return rel.length ? rel.concat(rules) : rules; - }; - - var removeTargetRules = function (rel) { - return rel.filter(function (val) { - return Tools.inArray(rules, val) === -1; - }); - }; - - newRel = isUnsafe ? addTargetRules(newRel) : removeTargetRules(newRel); - return newRel.length ? toString(newRel) : null; - }; - - var trimCaretContainers = function (text) { - return text.replace(/\uFEFF/g, ''); - }; + var global$2 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils'); + var global$3 = tinymce.util.Tools.resolve('tinymce.Env'); - var getAnchorElement = function (editor, selectedElm) { - selectedElm = selectedElm || editor.selection.getStart(); - if (isImageFigure(selectedElm)) { - // for an image conained in a figure we look for a link inside the selected element - return editor.dom.select('a[href]', selectedElm)[0]; - } else { - return editor.dom.getParent(selectedElm, 'a[href]'); + var appendClickRemove = function (link, evt) { + document.body.appendChild(link); + link.dispatchEvent(evt); + document.body.removeChild(link); + }; + var open = function (url) { + if (!global$3.ie || global$3.ie > 10) { + var link = document.createElement('a'); + link.target = '_blank'; + link.href = url; + link.rel = 'noreferrer noopener'; + var evt = document.createEvent('MouseEvents'); + evt.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); + appendClickRemove(link, evt); + } else { + var win = window.open('', '_blank'); + if (win) { + win.opener = null; + var doc = win.document; + doc.open(); + doc.write('<meta http-equiv="refresh" content="0; url=' + global$2.DOM.encode(url) + '">'); + doc.close(); } - }; - - - var getAnchorText = function (selection, anchorElm) { - var text = anchorElm ? (anchorElm.innerText || anchorElm.textContent) : selection.getContent({ format: 'text' }); - return trimCaretContainers(text); - }; - + } + }; + var $_2ksejbf4jfuw8pj6 = { open: open }; - var isLink = function (elm) { - return elm && elm.nodeName === 'A' && elm.href; - }; + var global$4 = tinymce.util.Tools.resolve('tinymce.util.Tools'); - var hasLinks = function (elements) { - return Tools.grep(elements, isLink).length > 0; + var toggleTargetRules = function (rel, isUnsafe) { + var rules = ['noopener']; + var newRel = rel ? rel.split(/\s+/) : []; + var toString = function (rel) { + return global$4.trim(rel.sort().join(' ')); }; - - - var isOnlyTextSelected = function (html) { - // Partial html and not a fully selected anchor element - if (/</.test(html) && (!/^<a [^>]+>[^<]+<\/a>$/.test(html) || html.indexOf('href=') == -1)) { - return false; - } - - return true; + var addTargetRules = function (rel) { + rel = removeTargetRules(rel); + return rel.length ? rel.concat(rules) : rules; }; - - - var isImageFigure = function (node) { - return node && node.nodeName === 'FIGURE' && /\bimage\b/i.test(node.className); + var removeTargetRules = function (rel) { + return rel.filter(function (val) { + return global$4.inArray(rules, val) === -1; + }); }; - - - var link = function (editor, attachState) { - return function (data) { - editor.undoManager.transact(function () { - var selectedElm = editor.selection.getNode(); - var anchorElm = getAnchorElement(editor, selectedElm); - - var linkAttrs = { - href: data.href, - target: data.target ? data.target : null, - rel: data.rel ? data.rel : null, - "class": data["class"] ? data["class"] : null, - title: data.title ? data.title : null - }; - - if (!Settings.hasRelList(editor.settings) && Settings.allowUnsafeLinkTarget(editor.settings) === false) { - linkAttrs.rel = toggleTargetRules(linkAttrs.rel, linkAttrs.target == '_blank'); - } - - if (data.href === attachState.href) { - attachState.attach(); - attachState = {}; - } - - if (anchorElm) { - editor.focus(); - - if (data.hasOwnProperty('text')) { - if ("innerText" in anchorElm) { - anchorElm.innerText = data.text; - } else { - anchorElm.textContent = data.text; - } - } - - editor.dom.setAttribs(anchorElm, linkAttrs); - - editor.selection.select(anchorElm); - editor.undoManager.add(); - } else { - if (isImageFigure(selectedElm)) { - linkImageFigure(editor, selectedElm, linkAttrs); - } else if (data.hasOwnProperty('text')) { - editor.insertContent(editor.dom.createHTML('a', linkAttrs, editor.dom.encode(data.text))); + newRel = isUnsafe ? addTargetRules(newRel) : removeTargetRules(newRel); + return newRel.length ? toString(newRel) : null; + }; + var trimCaretContainers = function (text) { + return text.replace(/\uFEFF/g, ''); + }; + var getAnchorElement = function (editor, selectedElm) { + selectedElm = selectedElm || editor.selection.getNode(); + if (isImageFigure(selectedElm)) { + return editor.dom.select('a[href]', selectedElm)[0]; + } else { + return editor.dom.getParent(selectedElm, 'a[href]'); + } + }; + var getAnchorText = function (selection, anchorElm) { + var text = anchorElm ? anchorElm.innerText || anchorElm.textContent : selection.getContent({ format: 'text' }); + return trimCaretContainers(text); + }; + var isLink = function (elm) { + return elm && elm.nodeName === 'A' && elm.href; + }; + var hasLinks = function (elements) { + return global$4.grep(elements, isLink).length > 0; + }; + var isOnlyTextSelected = function (html) { + if (/</.test(html) && (!/^<a [^>]+>[^<]+<\/a>$/.test(html) || html.indexOf('href=') === -1)) { + return false; + } + return true; + }; + var isImageFigure = function (node) { + return node && node.nodeName === 'FIGURE' && /\bimage\b/i.test(node.className); + }; + var link = function (editor, attachState) { + return function (data) { + editor.undoManager.transact(function () { + var selectedElm = editor.selection.getNode(); + var anchorElm = getAnchorElement(editor, selectedElm); + var linkAttrs = { + href: data.href, + target: data.target ? data.target : null, + rel: data.rel ? data.rel : null, + class: data.class ? data.class : null, + title: data.title ? data.title : null + }; + if (!$_ae1yh4f3jfuw8pj4.hasRelList(editor.settings) && $_ae1yh4f3jfuw8pj4.allowUnsafeLinkTarget(editor.settings) === false) { + linkAttrs.rel = toggleTargetRules(linkAttrs.rel, linkAttrs.target === '_blank'); + } + if (data.href === attachState.href) { + attachState.attach(); + attachState = {}; + } + if (anchorElm) { + editor.focus(); + if (data.hasOwnProperty('text')) { + if ('innerText' in anchorElm) { + anchorElm.innerText = data.text; } else { - editor.execCommand('mceInsertLink', false, linkAttrs); + anchorElm.textContent = data.text; } } - }); - }; - }; - - - var unlink = function (editor) { - return function () { - editor.undoManager.transact(function () { - var node = editor.selection.getNode(); - if (isImageFigure(node)) { - unlinkImageFigure(editor, node); + editor.dom.setAttribs(anchorElm, linkAttrs); + editor.selection.select(anchorElm); + editor.undoManager.add(); + } else { + if (isImageFigure(selectedElm)) { + linkImageFigure(editor, selectedElm, linkAttrs); + } else if (data.hasOwnProperty('text')) { + editor.insertContent(editor.dom.createHTML('a', linkAttrs, editor.dom.encode(data.text))); } else { - editor.execCommand('unlink'); + editor.execCommand('mceInsertLink', false, linkAttrs); } - }); - }; + } + }); }; - - - var unlinkImageFigure = function (editor, fig) { - var a, img; - img = editor.dom.select('img', fig)[0]; - if (img) { - a = editor.dom.getParents(img, 'a[href]', fig)[0]; - if (a) { - a.parentNode.insertBefore(img, a); - editor.dom.remove(a); + }; + var unlink = function (editor) { + return function () { + editor.undoManager.transact(function () { + var node = editor.selection.getNode(); + if (isImageFigure(node)) { + unlinkImageFigure(editor, node); + } else { + editor.execCommand('unlink'); } - } + }); }; - - - var linkImageFigure = function (editor, fig, attrs) { - var a, img; - img = editor.dom.select('img', fig)[0]; - if (img) { - a = editor.dom.create('a', attrs); - img.parentNode.insertBefore(a, img); - a.appendChild(img); + }; + var unlinkImageFigure = function (editor, fig) { + var a, img; + img = editor.dom.select('img', fig)[0]; + if (img) { + a = editor.dom.getParents(img, 'a[href]', fig)[0]; + if (a) { + a.parentNode.insertBefore(img, a); + editor.dom.remove(a); } - }; - - return { - link: link, - unlink: unlink, - isLink: isLink, - hasLinks: hasLinks, - isOnlyTextSelected: isOnlyTextSelected, - getAnchorElement: getAnchorElement, - getAnchorText: getAnchorText, - toggleTargetRules: toggleTargetRules - }; - } -); -/** - * Dialog.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ + } + }; + var linkImageFigure = function (editor, fig, attrs) { + var a, img; + img = editor.dom.select('img', fig)[0]; + if (img) { + a = editor.dom.create('a', attrs); + img.parentNode.insertBefore(a, img); + a.appendChild(img); + } + }; + var $_fs5xf5f7jfuw8pjf = { + link: link, + unlink: unlink, + isLink: isLink, + hasLinks: hasLinks, + isOnlyTextSelected: isOnlyTextSelected, + getAnchorElement: getAnchorElement, + getAnchorText: getAnchorText, + toggleTargetRules: toggleTargetRules + }; -define( - 'tinymce.plugins.link.ui.Dialog', - [ - 'tinymce.core.util.Delay', - 'tinymce.core.util.Tools', - 'tinymce.core.util.XHR', - 'tinymce.plugins.link.core.Utils', - 'tinymce.plugins.link.core.Settings' - ], - function (Delay, Tools, XHR, Utils, Settings) { - var attachState = {}; + var global$5 = tinymce.util.Tools.resolve('tinymce.util.Delay'); - var createLinkList = function (editor, callback) { - var linkList = Settings.getLinkList(editor.settings); + var global$6 = tinymce.util.Tools.resolve('tinymce.util.XHR'); - if (typeof linkList == "string") { - XHR.send({ - url: linkList, - success: function (text) { - callback(editor, JSON.parse(text)); + var attachState = {}; + var createLinkList = function (editor, callback) { + var linkList = $_ae1yh4f3jfuw8pj4.getLinkList(editor.settings); + if (typeof linkList === 'string') { + global$6.send({ + url: linkList, + success: function (text) { + callback(editor, JSON.parse(text)); + } + }); + } else if (typeof linkList === 'function') { + linkList(function (list) { + callback(editor, list); + }); + } else { + callback(editor, linkList); + } + }; + var buildListItems = function (inputList, itemCallback, startItems) { + var appendItems = function (values, output) { + output = output || []; + global$4.each(values, function (item) { + var menuItem = { text: item.text || item.title }; + if (item.menu) { + menuItem.menu = appendItems(item.menu); + } else { + menuItem.value = item.value; + if (itemCallback) { + itemCallback(menuItem); } + } + output.push(menuItem); + }); + return output; + }; + return appendItems(inputList, startItems || []); + }; + var delayedConfirm = function (editor, message, callback) { + var rng = editor.selection.getRng(); + global$5.setEditorTimeout(editor, function () { + editor.windowManager.confirm(message, function (state) { + editor.selection.setRng(rng); + callback(state); + }); + }); + }; + var showDialog = function (editor, linkList) { + var data = {}; + var selection = editor.selection; + var dom = editor.dom; + var anchorElm, initialText; + var win, onlyText, textListCtrl, linkListCtrl, relListCtrl, targetListCtrl, classListCtrl, linkTitleCtrl, value; + var linkListChangeHandler = function (e) { + var textCtrl = win.find('#text'); + if (!textCtrl.value() || e.lastControl && textCtrl.value() === e.lastControl.text()) { + textCtrl.value(e.control.text()); + } + win.find('#href').value(e.control.value()); + }; + var buildAnchorListControl = function (url) { + var anchorList = []; + global$4.each(editor.dom.select('a:not([href])'), function (anchor) { + var id = anchor.name || anchor.id; + if (id) { + anchorList.push({ + text: id, + value: '#' + id, + selected: url.indexOf('#' + id) !== -1 + }); + } + }); + if (anchorList.length) { + anchorList.unshift({ + text: 'None', + value: '' }); - } else if (typeof linkList == "function") { - linkList(function (list) { - callback(editor, list); - }); - } else { - callback(editor, linkList); + return { + name: 'anchor', + type: 'listbox', + label: 'Anchors', + values: anchorList, + onselect: linkListChangeHandler + }; } }; - - var buildListItems = function (inputList, itemCallback, startItems) { - var appendItems = function (values, output) { - output = output || []; - - Tools.each(values, function (item) { - var menuItem = { text: item.text || item.title }; - - if (item.menu) { - menuItem.menu = appendItems(item.menu); - } else { - menuItem.value = item.value; - - if (itemCallback) { - itemCallback(menuItem); - } - } - - output.push(menuItem); - }); - - return output; - }; - - return appendItems(inputList, startItems || []); + var updateText = function () { + if (!initialText && onlyText && !data.text) { + this.parent().parent().find('#text')[0].value(this.value()); + } }; - - // Delay confirm since onSubmit will move focus - var delayedConfirm = function (editor, message, callback) { - var rng = editor.selection.getRng(); - - Delay.setEditorTimeout(editor, function () { - editor.windowManager.confirm(message, function (state) { - editor.selection.setRng(rng); - callback(state); - }); + var urlChange = function (e) { + var meta = e.meta || {}; + if (linkListCtrl) { + linkListCtrl.value(editor.convertURL(this.value(), 'href')); + } + global$4.each(e.meta, function (value, key) { + var inp = win.find('#' + key); + if (key === 'text') { + if (initialText.length === 0) { + inp.value(value); + data.text = value; + } + } else { + inp.value(value); + } }); + if (meta.attach) { + attachState = { + href: this.value(), + attach: meta.attach + }; + } + if (!meta.text) { + updateText.call(this); + } }; - - var showDialog = function (editor, linkList) { - var data = {}, selection = editor.selection, dom = editor.dom, anchorElm, initialText; - var win, onlyText, textListCtrl, linkListCtrl, relListCtrl, targetListCtrl, classListCtrl, linkTitleCtrl, value; - - var linkListChangeHandler = function (e) { - var textCtrl = win.find('#text'); - - if (!textCtrl.value() || (e.lastControl && textCtrl.value() == e.lastControl.text())) { - textCtrl.value(e.control.text()); + var onBeforeCall = function (e) { + e.meta = win.toJSON(); + }; + onlyText = $_fs5xf5f7jfuw8pjf.isOnlyTextSelected(selection.getContent()); + anchorElm = $_fs5xf5f7jfuw8pjf.getAnchorElement(editor); + data.text = initialText = $_fs5xf5f7jfuw8pjf.getAnchorText(editor.selection, anchorElm); + data.href = anchorElm ? dom.getAttrib(anchorElm, 'href') : ''; + if (anchorElm) { + data.target = dom.getAttrib(anchorElm, 'target'); + } else if ($_ae1yh4f3jfuw8pj4.hasDefaultLinkTarget(editor.settings)) { + data.target = $_ae1yh4f3jfuw8pj4.getDefaultLinkTarget(editor.settings); + } + if (value = dom.getAttrib(anchorElm, 'rel')) { + data.rel = value; + } + if (value = dom.getAttrib(anchorElm, 'class')) { + data.class = value; + } + if (value = dom.getAttrib(anchorElm, 'title')) { + data.title = value; + } + if (onlyText) { + textListCtrl = { + name: 'text', + type: 'textbox', + size: 40, + label: 'Text to display', + onchange: function () { + data.text = this.value(); } - - win.find('#href').value(e.control.value()); }; - - var buildAnchorListControl = function (url) { - var anchorList = []; - - Tools.each(editor.dom.select('a:not([href])'), function (anchor) { - var id = anchor.name || anchor.id; - - if (id) { - anchorList.push({ - text: id, - value: '#' + id, - selected: url.indexOf('#' + id) != -1 - }); - } - }); - - if (anchorList.length) { - anchorList.unshift({ text: 'None', value: '' }); - - return { - name: 'anchor', - type: 'listbox', - label: 'Anchors', - values: anchorList, - onselect: linkListChangeHandler - }; + } + if (linkList) { + linkListCtrl = { + type: 'listbox', + label: 'Link list', + values: buildListItems(linkList, function (item) { + item.value = editor.convertURL(item.value || item.url, 'href'); + }, [{ + text: 'None', + value: '' + }]), + onselect: linkListChangeHandler, + value: editor.convertURL(data.href, 'href'), + onPostRender: function () { + linkListCtrl = this; } }; - - var updateText = function () { - if (!initialText && onlyText && !data.text) { - this.parent().parent().find('#text')[0].value(this.value()); - } + } + if ($_ae1yh4f3jfuw8pj4.shouldShowTargetList(editor.settings)) { + if ($_ae1yh4f3jfuw8pj4.getTargetList(editor.settings) === undefined) { + $_ae1yh4f3jfuw8pj4.setTargetList(editor, [ + { + text: 'None', + value: '' + }, + { + text: 'New window', + value: '_blank' + } + ]); + } + targetListCtrl = { + name: 'target', + type: 'listbox', + label: 'Target', + values: buildListItems($_ae1yh4f3jfuw8pj4.getTargetList(editor.settings)) }; - - var urlChange = function (e) { - var meta = e.meta || {}; - - if (linkListCtrl) { - linkListCtrl.value(editor.convertURL(this.value(), 'href')); - } - - Tools.each(e.meta, function (value, key) { - var inp = win.find('#' + key); - - if (key === 'text') { - if (initialText.length === 0) { - inp.value(value); - data.text = value; - } - } else { - inp.value(value); + } + if ($_ae1yh4f3jfuw8pj4.hasRelList(editor.settings)) { + relListCtrl = { + name: 'rel', + type: 'listbox', + label: 'Rel', + values: buildListItems($_ae1yh4f3jfuw8pj4.getRelList(editor.settings), function (item) { + if ($_ae1yh4f3jfuw8pj4.allowUnsafeLinkTarget(editor.settings) === false) { + item.value = $_fs5xf5f7jfuw8pjf.toggleTargetRules(item.value, data.target === '_blank'); } - }); - - if (meta.attach) { - attachState = { - href: this.value(), - attach: meta.attach - }; - } - - if (!meta.text) { - updateText.call(this); - } + }) }; - - var onBeforeCall = function (e) { - e.meta = win.toJSON(); + } + if ($_ae1yh4f3jfuw8pj4.hasLinkClassList(editor.settings)) { + classListCtrl = { + name: 'class', + type: 'listbox', + label: 'Class', + values: buildListItems($_ae1yh4f3jfuw8pj4.getLinkClassList(editor.settings), function (item) { + if (item.value) { + item.textStyle = function () { + return editor.formatter.getCssText({ + inline: 'a', + classes: [item.value] + }); + }; + } + }) }; - - onlyText = Utils.isOnlyTextSelected(selection.getContent()); - anchorElm = Utils.getAnchorElement(editor); - - data.text = initialText = Utils.getAnchorText(editor.selection, anchorElm); - data.href = anchorElm ? dom.getAttrib(anchorElm, 'href') : ''; - - if (anchorElm) { - data.target = dom.getAttrib(anchorElm, 'target'); - } else if (Settings.hasDefaultLinkTarget(editor.settings)) { - data.target = Settings.getDefaultLinkTarget(editor.settings); - } - - if ((value = dom.getAttrib(anchorElm, 'rel'))) { - data.rel = value; - } - - if ((value = dom.getAttrib(anchorElm, 'class'))) { - data['class'] = value; - } - - if ((value = dom.getAttrib(anchorElm, 'title'))) { - data.title = value; - } - - if (onlyText) { - textListCtrl = { - name: 'text', - type: 'textbox', + } + if ($_ae1yh4f3jfuw8pj4.shouldShowLinkTitle(editor.settings)) { + linkTitleCtrl = { + name: 'title', + type: 'textbox', + label: 'Title', + value: data.title + }; + } + win = editor.windowManager.open({ + title: 'Insert link', + data: data, + body: [ + { + name: 'href', + type: 'filepicker', + filetype: 'file', size: 40, - label: 'Text to display', - onchange: function () { - data.text = this.value(); - } - }; - } - - if (linkList) { - linkListCtrl = { - type: 'listbox', - label: 'Link list', - values: buildListItems( - linkList, - function (item) { - item.value = editor.convertURL(item.value || item.url, 'href'); - }, - [{ text: 'None', value: '' }] - ), - onselect: linkListChangeHandler, - value: editor.convertURL(data.href, 'href'), - onPostRender: function () { - /*eslint consistent-this:0*/ - linkListCtrl = this; - } - }; - } - - if (Settings.shouldShowTargetList(editor.settings)) { - if (Settings.getTargetList(editor.settings) === undefined) { - Settings.setTargetList(editor, [ - { text: 'None', value: '' }, - { text: 'New window', value: '_blank' } - ]); + autofocus: true, + label: 'Url', + onchange: urlChange, + onkeyup: updateText, + onpaste: updateText, + onbeforecall: onBeforeCall + }, + textListCtrl, + linkTitleCtrl, + buildAnchorListControl(data.href), + linkListCtrl, + relListCtrl, + targetListCtrl, + classListCtrl + ], + onSubmit: function (e) { + var assumeExternalTargets = $_ae1yh4f3jfuw8pj4.assumeExternalTargets(editor.settings); + var insertLink = $_fs5xf5f7jfuw8pjf.link(editor, attachState); + var removeLink = $_fs5xf5f7jfuw8pjf.unlink(editor); + var resultData = global$4.extend({}, data, e.data); + var href = resultData.href; + if (!href) { + removeLink(); + return; } - - targetListCtrl = { - name: 'target', - type: 'listbox', - label: 'Target', - values: buildListItems(Settings.getTargetList(editor.settings)) - }; - } - - if (Settings.hasRelList(editor.settings)) { - relListCtrl = { - name: 'rel', - type: 'listbox', - label: 'Rel', - values: buildListItems( - Settings.getRelList(editor.settings), - function (item) { - if (Settings.allowUnsafeLinkTarget(editor.settings) === false) { - item.value = Utils.toggleTargetRules(item.value, data.target === '_blank'); - } + if (!onlyText || resultData.text === initialText) { + delete resultData.text; + } + if (href.indexOf('@') > 0 && href.indexOf('//') === -1 && href.indexOf('mailto:') === -1) { + delayedConfirm(editor, 'The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?', function (state) { + if (state) { + resultData.href = 'mailto:' + href; } - ) - }; - } - - if (Settings.hasLinkClassList(editor.settings)) { - classListCtrl = { - name: 'class', - type: 'listbox', - label: 'Class', - values: buildListItems( - Settings.getLinkClassList(editor.settings), - function (item) { - if (item.value) { - item.textStyle = function () { - return editor.formatter.getCssText({ inline: 'a', classes: [item.value] }); - }; - } + insertLink(resultData); + }); + return; + } + if (assumeExternalTargets === true && !/^\w+:/i.test(href) || assumeExternalTargets === false && /^\s*www[\.|\d\.]/i.test(href)) { + delayedConfirm(editor, 'The URL you entered seems to be an external link. Do you want to add the required http:// prefix?', function (state) { + if (state) { + resultData.href = 'http://' + href; } - ) - }; - } - - if (Settings.shouldShowLinkTitle(editor.settings)) { - linkTitleCtrl = { - name: 'title', - type: 'textbox', - label: 'Title', - value: data.title - }; + insertLink(resultData); + }); + return; + } + insertLink(resultData); } + }); + }; + var open$1 = function (editor) { + createLinkList(editor, showDialog); + }; + var $_3kgdixf9jfuw8pjm = { open: open$1 }; - win = editor.windowManager.open({ - title: 'Insert link', - data: data, - body: [ - { - name: 'href', - type: 'filepicker', - filetype: 'file', - size: 40, - autofocus: true, - label: 'Url', - onchange: urlChange, - onkeyup: updateText, - onbeforecall: onBeforeCall - }, - textListCtrl, - linkTitleCtrl, - buildAnchorListControl(data.href), - linkListCtrl, - relListCtrl, - targetListCtrl, - classListCtrl - ], - onSubmit: function (e) { - var assumeExternalTargets = Settings.assumeExternalTargets(editor.settings); - var insertLink = Utils.link(editor, attachState); - var removeLink = Utils.unlink(editor); - - var resultData = Tools.extend({}, data, e.data); - /*eslint dot-notation: 0*/ - var href = resultData.href; - - if (!href) { - removeLink(); - return; - } - - if (!onlyText || resultData.text === initialText) { - delete resultData.text; - } - - // Is email and not //user@domain.com - if (href.indexOf('@') > 0 && href.indexOf('//') == -1 && href.indexOf('mailto:') == -1) { - delayedConfirm( - editor, - 'The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?', - function (state) { - if (state) { - resultData.href = 'mailto:' + href; - } - insertLink(resultData); - } - ); - return; - } - - // Is not protocol prefixed - if ((assumeExternalTargets === true && !/^\w+:/i.test(href)) || - (assumeExternalTargets === false && /^\s*www[\.|\d\.]/i.test(href))) { - delayedConfirm( - editor, - 'The URL you entered seems to be an external link. Do you want to add the required http:// prefix?', - function (state) { - if (state) { - resultData.href = 'http://' + href; - } - insertLink(resultData); - } - ); - return; - } - - insertLink(resultData); + var getLink = function (editor, elm) { + return editor.dom.getParent(elm, 'a[href]'); + }; + var getSelectedLink = function (editor) { + return getLink(editor, editor.selection.getStart()); + }; + var getHref = function (elm) { + var href = elm.getAttribute('data-mce-href'); + return href ? href : elm.getAttribute('href'); + }; + var isContextMenuVisible = function (editor) { + var contextmenu = editor.plugins.contextmenu; + return contextmenu ? contextmenu.isContextMenuVisible() : false; + }; + var hasOnlyAltModifier = function (e) { + return e.altKey === true && e.shiftKey === false && e.ctrlKey === false && e.metaKey === false; + }; + var gotoLink = function (editor, a) { + if (a) { + var href = getHref(a); + if (/^#/.test(href)) { + var targetEl = editor.$(href); + if (targetEl.length) { + editor.selection.scrollIntoView(targetEl[0], true); } - }); - }; - - var open = function (editor) { - createLinkList(editor, showDialog); - }; - - return { - open: open - }; - } -); -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.dom.DOMUtils', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.dom.DOMUtils'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.Env', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.Env'); - } -); - -/** - * OpenUrl.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.link.core.OpenUrl', - [ - 'tinymce.core.dom.DOMUtils', - 'tinymce.core.Env' - ], - function (DOMUtils, Env) { - var appendClickRemove = function (link, evt) { - document.body.appendChild(link); - link.dispatchEvent(evt); - document.body.removeChild(link); - }; - - var open = function (url) { - // Chrome and Webkit has implemented noopener and works correctly with/without popup blocker - // Firefox has it implemented noopener but when the popup blocker is activated it doesn't work - // Edge has only implemented noreferrer and it seems to remove opener as well - // Older IE versions pre IE 11 falls back to a window.open approach - if (!Env.ie || Env.ie > 10) { - var link = document.createElement('a'); - link.target = '_blank'; - link.href = url; - link.rel = 'noreferrer noopener'; - - var evt = document.createEvent('MouseEvents'); - evt.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); - - appendClickRemove(link, evt); } else { - var win = window.open('', '_blank'); - if (win) { - win.opener = null; - var doc = win.document; - doc.open(); - doc.write('<meta http-equiv="refresh" content="0; url=' + DOMUtils.DOM.encode(url) + '">'); - doc.close(); - } + $_2ksejbf4jfuw8pj6.open(a.href); } + } + }; + var openDialog = function (editor) { + return function () { + $_3kgdixf9jfuw8pjm.open(editor); }; - - return { - open: open - }; - } -); -/** - * Actions.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.link.core.Actions', - [ - 'tinymce.core.util.VK', - 'tinymce.plugins.link.ui.Dialog', - 'tinymce.plugins.link.core.OpenUrl', - 'tinymce.plugins.link.core.Utils', - 'tinymce.plugins.link.core.Settings' - ], - function (VK, Dialog, OpenUrl, Utils, Settings) { - var getLink = function (editor, elm) { - return editor.dom.getParent(elm, 'a[href]'); - }; - - var getSelectedLink = function (editor) { - return getLink(editor, editor.selection.getStart()); - }; - - var getHref = function (elm) { - // Returns the real href value not the resolved a.href value - var href = elm.getAttribute('data-mce-href'); - return href ? href : elm.getAttribute('href'); - }; - - var isContextMenuVisible = function (editor) { - var contextmenu = editor.plugins.contextmenu; - return contextmenu ? contextmenu.isContextMenuVisible() : false; - }; - - var hasOnlyAltModifier = function (e) { - return e.altKey === true && e.shiftKey === false && e.ctrlKey === false && e.metaKey === false; + }; + var gotoSelectedLink = function (editor) { + return function () { + gotoLink(editor, getSelectedLink(editor)); }; - - var gotoLink = function (editor, a) { - if (a) { - var href = getHref(a); - if (/^#/.test(href)) { - var targetEl = editor.$(href); - if (targetEl.length) { - editor.selection.scrollIntoView(targetEl[0], true); - } - } else { - OpenUrl.open(a.href); + }; + var leftClickedOnAHref = function (editor) { + return function (elm) { + var sel, rng, node; + if ($_ae1yh4f3jfuw8pj4.hasContextToolbar(editor.settings) && !isContextMenuVisible(editor) && $_fs5xf5f7jfuw8pjf.isLink(elm)) { + sel = editor.selection; + rng = sel.getRng(); + node = rng.startContainer; + if (node.nodeType === 3 && sel.isCollapsed() && rng.startOffset > 0 && rng.startOffset < node.data.length) { + return true; } } + return false; }; - - var openDialog = function (editor) { - return function () { - Dialog.open(editor); - }; - }; - - var gotoSelectedLink = function (editor) { - return function () { - gotoLink(editor, getSelectedLink(editor)); - }; - }; - - var leftClickedOnAHref = function (editor) { - return function (elm) { - var sel, rng, node; - if (Settings.hasContextToolbar(editor.settings) && !isContextMenuVisible(editor) && Utils.isLink(elm)) { - sel = editor.selection; - rng = sel.getRng(); - node = rng.startContainer; - // ignore cursor positions at the beginning/end (to make context toolbar less noisy) - if (node.nodeType == 3 && sel.isCollapsed() && rng.startOffset > 0 && rng.startOffset < node.data.length) { - return true; - } - } - return false; - }; - }; - - var setupGotoLinks = function (editor) { - editor.on('click', function (e) { - var link = getLink(editor, e.target); - if (link && VK.metaKeyPressed(e)) { - e.preventDefault(); - gotoLink(editor, link); - } - }); - - editor.on('keydown', function (e) { - var link = getSelectedLink(editor); - if (link && e.keyCode === 13 && hasOnlyAltModifier(e)) { - e.preventDefault(); - gotoLink(editor, link); - } + }; + var setupGotoLinks = function (editor) { + editor.on('click', function (e) { + var link = getLink(editor, e.target); + if (link && global$1.metaKeyPressed(e)) { + e.preventDefault(); + gotoLink(editor, link); + } + }); + editor.on('keydown', function (e) { + var link = getSelectedLink(editor); + if (link && e.keyCode === 13 && hasOnlyAltModifier(e)) { + e.preventDefault(); + gotoLink(editor, link); + } + }); + }; + var toggleActiveState = function (editor) { + return function () { + var self = this; + editor.on('nodechange', function (e) { + self.active(!editor.readonly && !!$_fs5xf5f7jfuw8pjf.getAnchorElement(editor, e.element)); }); }; - - var toggleActiveState = function (editor) { - return function () { - var self = this; - editor.on('nodechange', function (e) { - self.active(!editor.readonly && !!Utils.getAnchorElement(editor, e.element)); - }); - }; - }; - - var toggleViewLinkState = function (editor) { - return function () { - var self = this; - - var toggleVisibility = function (e) { - if (Utils.hasLinks(e.parents)) { - self.show(); - } else { - self.hide(); - } - }; - - if (!Utils.hasLinks(editor.dom.getParents(editor.selection.getStart()))) { + }; + var toggleViewLinkState = function (editor) { + return function () { + var self = this; + var toggleVisibility = function (e) { + if ($_fs5xf5f7jfuw8pjf.hasLinks(e.parents)) { + self.show(); + } else { self.hide(); } - - editor.on('nodechange', toggleVisibility); - - self.on('remove', function () { - editor.off('nodechange', toggleVisibility); - }); }; - }; - - return { - openDialog: openDialog, - gotoSelectedLink: gotoSelectedLink, - leftClickedOnAHref: leftClickedOnAHref, - setupGotoLinks: setupGotoLinks, - toggleActiveState: toggleActiveState, - toggleViewLinkState: toggleViewLinkState - }; - } -); -/** - * Controls.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.link.ui.Controls', - [ - 'tinymce.plugins.link.core.Actions', - 'tinymce.plugins.link.core.Utils' - ], - function (Actions, Utils) { - - var setupButtons = function (editor) { - editor.addButton('link', { - icon: 'link', - tooltip: 'Insert/edit link', - shortcut: 'Meta+K', - onclick: Actions.openDialog(editor), - onpostrender: Actions.toggleActiveState(editor) - }); - - editor.addButton('unlink', { - icon: 'unlink', - tooltip: 'Remove link', - onclick: Utils.unlink(editor), - onpostrender: Actions.toggleActiveState(editor) - }); - - if (editor.addContextToolbar) { - editor.addButton('openlink', { - icon: 'newtab', - tooltip: 'Open link', - onclick: Actions.gotoSelectedLink(editor) - }); + if (!$_fs5xf5f7jfuw8pjf.hasLinks(editor.dom.getParents(editor.selection.getStart()))) { + self.hide(); } + editor.on('nodechange', toggleVisibility); + self.on('remove', function () { + editor.off('nodechange', toggleVisibility); + }); }; + }; + var $_auu7ckf1jfuw8pj0 = { + openDialog: openDialog, + gotoSelectedLink: gotoSelectedLink, + leftClickedOnAHref: leftClickedOnAHref, + setupGotoLinks: setupGotoLinks, + toggleActiveState: toggleActiveState, + toggleViewLinkState: toggleViewLinkState + }; - var setupMenuItems = function (editor) { - editor.addMenuItem('openlink', { - text: 'Open link', - icon: 'newtab', - onclick: Actions.gotoSelectedLink(editor), - onPostRender: Actions.toggleViewLinkState(editor), - prependToContext: true - }); + var register = function (editor) { + editor.addCommand('mceLink', $_auu7ckf1jfuw8pj0.openDialog(editor)); + }; + var $_4bbs70f0jfuw8piz = { register: register }; - editor.addMenuItem('link', { - icon: 'link', - text: 'Link', - shortcut: 'Meta+K', - onclick: Actions.openDialog(editor), - stateSelector: 'a[href]', - context: 'insert', - prependToContext: true + var setup = function (editor) { + editor.addShortcut('Meta+K', '', $_auu7ckf1jfuw8pj0.openDialog(editor)); + }; + var $_7rlm6qfcjfuw8pjt = { setup: setup }; + + var setupButtons = function (editor) { + editor.addButton('link', { + active: false, + icon: 'link', + tooltip: 'Insert/edit link', + onclick: $_auu7ckf1jfuw8pj0.openDialog(editor), + onpostrender: $_auu7ckf1jfuw8pj0.toggleActiveState(editor) + }); + editor.addButton('unlink', { + active: false, + icon: 'unlink', + tooltip: 'Remove link', + onclick: $_fs5xf5f7jfuw8pjf.unlink(editor), + onpostrender: $_auu7ckf1jfuw8pj0.toggleActiveState(editor) + }); + if (editor.addContextToolbar) { + editor.addButton('openlink', { + icon: 'newtab', + tooltip: 'Open link', + onclick: $_auu7ckf1jfuw8pj0.gotoSelectedLink(editor) }); - }; - - var setupContextToolbars = function (editor) { - if (editor.addContextToolbar) { - editor.addContextToolbar( - Actions.leftClickedOnAHref(editor), - 'openlink | link unlink' - ); - } - }; + } + }; + var setupMenuItems = function (editor) { + editor.addMenuItem('openlink', { + text: 'Open link', + icon: 'newtab', + onclick: $_auu7ckf1jfuw8pj0.gotoSelectedLink(editor), + onPostRender: $_auu7ckf1jfuw8pj0.toggleViewLinkState(editor), + prependToContext: true + }); + editor.addMenuItem('link', { + icon: 'link', + text: 'Link', + shortcut: 'Meta+K', + onclick: $_auu7ckf1jfuw8pj0.openDialog(editor), + stateSelector: 'a[href]', + context: 'insert', + prependToContext: true + }); + editor.addMenuItem('unlink', { + icon: 'unlink', + text: 'Remove link', + onclick: $_fs5xf5f7jfuw8pjf.unlink(editor), + stateSelector: 'a[href]' + }); + }; + var setupContextToolbars = function (editor) { + if (editor.addContextToolbar) { + editor.addContextToolbar($_auu7ckf1jfuw8pj0.leftClickedOnAHref(editor), 'openlink | link unlink'); + } + }; + var $_dz7svyfdjfuw8pju = { + setupButtons: setupButtons, + setupMenuItems: setupMenuItems, + setupContextToolbars: setupContextToolbars + }; - return { - setupButtons: setupButtons, - setupMenuItems: setupMenuItems, - setupContextToolbars: setupContextToolbars - }; + global.add('link', function (editor) { + $_dz7svyfdjfuw8pju.setupButtons(editor); + $_dz7svyfdjfuw8pju.setupMenuItems(editor); + $_dz7svyfdjfuw8pju.setupContextToolbars(editor); + $_auu7ckf1jfuw8pj0.setupGotoLinks(editor); + $_4bbs70f0jfuw8piz.register(editor); + $_7rlm6qfcjfuw8pjt.setup(editor); + }); + function Plugin () { } -); -/** - * Plugin.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ -define( - 'tinymce.plugins.link.Plugin', - [ - 'tinymce.core.PluginManager', - 'tinymce.plugins.link.core.Actions', - 'tinymce.plugins.link.ui.Controls' - ], - function (PluginManager, Actions, Controls) { - PluginManager.add('link', function (editor) { - Controls.setupButtons(editor); - Controls.setupMenuItems(editor); - Controls.setupContextToolbars(editor); - Actions.setupGotoLinks(editor); - editor.addShortcut('Meta+K', '', Actions.openDialog(editor)); - editor.addCommand('mceLink', Actions.openDialog(editor)); - }); + return Plugin; - return function () { }; - } -); -dem('tinymce.plugins.link.Plugin')(); +}()); })(); diff --git a/wp-includes/js/tinymce/plugins/link/plugin.min.js b/wp-includes/js/tinymce/plugins/link/plugin.min.js index dcd9d4369..ebd4165e8 100644 --- a/wp-includes/js/tinymce/plugins/link/plugin.min.js +++ b/wp-includes/js/tinymce/plugins/link/plugin.min.js @@ -1 +1 @@ -!function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("4",tinymce.util.Tools.resolve),g("1",["4"],function(a){return a("tinymce.PluginManager")}),g("5",["4"],function(a){return a("tinymce.util.VK")}),g("a",["4"],function(a){return a("tinymce.util.Delay")}),g("b",["4"],function(a){return a("tinymce.util.Tools")}),g("c",["4"],function(a){return a("tinymce.util.XHR")}),g("9",[],function(){var a=function(a){return"boolean"==typeof a.link_assume_external_targets&&a.link_assume_external_targets},b=function(a){return"boolean"==typeof a.link_context_toolbar&&a.link_context_toolbar},c=function(a){return a.link_list},d=function(a){return"string"==typeof a.default_link_target},e=function(a){return a.default_link_target},f=function(a){return a.target_list},g=function(a,b){a.settings.target_list=b},h=function(a){return f(a)!==!1},i=function(a){return a.rel_list},j=function(a){return void 0!==i(a)},k=function(a){return a.link_class_list},l=function(a){return void 0!==k(a)},m=function(a){return a.link_title!==!1},n=function(a){return"boolean"==typeof a.allow_unsafe_link_target&&a.allow_unsafe_link_target};return{assumeExternalTargets:a,hasContextToolbar:b,getLinkList:c,hasDefaultLinkTarget:d,getDefaultLinkTarget:e,getTargetList:f,setTargetList:g,shouldShowTargetList:h,getRelList:i,hasRelList:j,getLinkClassList:k,hasLinkClassList:l,shouldShowLinkTitle:m,allowUnsafeLinkTarget:n}}),h("d",RegExp),g("8",["b","9","d"],function(a,b,c){var d=function(b,c){var d=["noopener"],e=b?b.split(/\s+/):[],f=function(b){return a.trim(b.sort().join(" "))},g=function(a){return a=h(a),a.length?a.concat(d):d},h=function(b){return b.filter(function(b){return a.inArray(d,b)===-1})};return e=c?g(e):h(e),e.length?f(e):null},e=function(a){return a.replace(/\uFEFF/g,"")},f=function(a,b){return b=b||a.selection.getStart(),k(b)?a.dom.select("a[href]",b)[0]:a.dom.getParent(b,"a[href]")},g=function(a,b){var c=b?b.innerText||b.textContent:a.getContent({format:"text"});return e(c)},h=function(a){return a&&"A"===a.nodeName&&a.href},i=function(b){return a.grep(b,h).length>0},j=function(a){return!(/</.test(a)&&(!/^<a [^>]+>[^<]+<\/a>$/.test(a)||a.indexOf("href=")==-1))},k=function(a){return a&&"FIGURE"===a.nodeName&&/\bimage\b/i.test(a.className)},l=function(a,c){return function(e){a.undoManager.transact(function(){var g=a.selection.getNode(),h=f(a,g),i={href:e.href,target:e.target?e.target:null,rel:e.rel?e.rel:null,"class":e["class"]?e["class"]:null,title:e.title?e.title:null};b.hasRelList(a.settings)||b.allowUnsafeLinkTarget(a.settings)!==!1||(i.rel=d(i.rel,"_blank"==i.target)),e.href===c.href&&(c.attach(),c={}),h?(a.focus(),e.hasOwnProperty("text")&&("innerText"in h?h.innerText=e.text:h.textContent=e.text),a.dom.setAttribs(h,i),a.selection.select(h),a.undoManager.add()):k(g)?o(a,g,i):e.hasOwnProperty("text")?a.insertContent(a.dom.createHTML("a",i,a.dom.encode(e.text))):a.execCommand("mceInsertLink",!1,i)})}},m=function(a){return function(){a.undoManager.transact(function(){var b=a.selection.getNode();k(b)?n(a,b):a.execCommand("unlink")})}},n=function(a,b){var c,d;d=a.dom.select("img",b)[0],d&&(c=a.dom.getParents(d,"a[href]",b)[0],c&&(c.parentNode.insertBefore(d,c),a.dom.remove(c)))},o=function(a,b,c){var d,e;e=a.dom.select("img",b)[0],e&&(d=a.dom.create("a",c),e.parentNode.insertBefore(d,e),d.appendChild(e))};return{link:l,unlink:m,isLink:h,hasLinks:i,isOnlyTextSelected:j,getAnchorElement:f,getAnchorText:g,toggleTargetRules:d}}),g("6",["a","b","c","8","9"],function(a,b,c,d,e){var f={},g=function(a,b){var d=e.getLinkList(a.settings);"string"==typeof d?c.send({url:d,success:function(c){b(a,JSON.parse(c))}}):"function"==typeof d?d(function(c){b(a,c)}):b(a,d)},h=function(a,c,d){var e=function(a,d){return d=d||[],b.each(a,function(a){var b={text:a.text||a.title};a.menu?b.menu=e(a.menu):(b.value=a.value,c&&c(b)),d.push(b)}),d};return e(a,d||[])},i=function(b,c,d){var e=b.selection.getRng();a.setEditorTimeout(b,function(){b.windowManager.confirm(c,function(a){b.selection.setRng(e),d(a)})})},j=function(a,c){var g,j,k,l,m,n,o,p,q,r,s,t={},u=a.selection,v=a.dom,w=function(a){var b=k.find("#text");(!b.value()||a.lastControl&&b.value()==a.lastControl.text())&&b.value(a.control.text()),k.find("#href").value(a.control.value())},x=function(c){var d=[];if(b.each(a.dom.select("a:not([href])"),function(a){var b=a.name||a.id;b&&d.push({text:b,value:"#"+b,selected:c.indexOf("#"+b)!=-1})}),d.length)return d.unshift({text:"None",value:""}),{name:"anchor",type:"listbox",label:"Anchors",values:d,onselect:w}},y=function(){j||!l||t.text||this.parent().parent().find("#text")[0].value(this.value())},z=function(c){var d=c.meta||{};n&&n.value(a.convertURL(this.value(),"href")),b.each(c.meta,function(a,b){var c=k.find("#"+b);"text"===b?0===j.length&&(c.value(a),t.text=a):c.value(a)}),d.attach&&(f={href:this.value(),attach:d.attach}),d.text||y.call(this)},A=function(a){a.meta=k.toJSON()};l=d.isOnlyTextSelected(u.getContent()),g=d.getAnchorElement(a),t.text=j=d.getAnchorText(a.selection,g),t.href=g?v.getAttrib(g,"href"):"",g?t.target=v.getAttrib(g,"target"):e.hasDefaultLinkTarget(a.settings)&&(t.target=e.getDefaultLinkTarget(a.settings)),(s=v.getAttrib(g,"rel"))&&(t.rel=s),(s=v.getAttrib(g,"class"))&&(t["class"]=s),(s=v.getAttrib(g,"title"))&&(t.title=s),l&&(m={name:"text",type:"textbox",size:40,label:"Text to display",onchange:function(){t.text=this.value()}}),c&&(n={type:"listbox",label:"Link list",values:h(c,function(b){b.value=a.convertURL(b.value||b.url,"href")},[{text:"None",value:""}]),onselect:w,value:a.convertURL(t.href,"href"),onPostRender:function(){n=this}}),e.shouldShowTargetList(a.settings)&&(void 0===e.getTargetList(a.settings)&&e.setTargetList(a,[{text:"None",value:""},{text:"New window",value:"_blank"}]),p={name:"target",type:"listbox",label:"Target",values:h(e.getTargetList(a.settings))}),e.hasRelList(a.settings)&&(o={name:"rel",type:"listbox",label:"Rel",values:h(e.getRelList(a.settings),function(b){e.allowUnsafeLinkTarget(a.settings)===!1&&(b.value=d.toggleTargetRules(b.value,"_blank"===t.target))})}),e.hasLinkClassList(a.settings)&&(q={name:"class",type:"listbox",label:"Class",values:h(e.getLinkClassList(a.settings),function(b){b.value&&(b.textStyle=function(){return a.formatter.getCssText({inline:"a",classes:[b.value]})})})}),e.shouldShowLinkTitle(a.settings)&&(r={name:"title",type:"textbox",label:"Title",value:t.title}),k=a.windowManager.open({title:"Insert link",data:t,body:[{name:"href",type:"filepicker",filetype:"file",size:40,autofocus:!0,label:"Url",onchange:z,onkeyup:y,onbeforecall:A},m,r,x(t.href),n,o,p,q],onSubmit:function(c){var g=e.assumeExternalTargets(a.settings),h=d.link(a,f),k=d.unlink(a),m=b.extend({},t,c.data),n=m.href;return n?(l&&m.text!==j||delete m.text,n.indexOf("@")>0&&n.indexOf("//")==-1&&n.indexOf("mailto:")==-1?void i(a,"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",function(a){a&&(m.href="mailto:"+n),h(m)}):g===!0&&!/^\w+:/i.test(n)||g===!1&&/^\s*www[\.|\d\.]/i.test(n)?void i(a,"The URL you entered seems to be an external link. Do you want to add the required http:// prefix?",function(a){a&&(m.href="http://"+n),h(m)}):void h(m)):void k()}})},k=function(a){g(a,j)};return{open:k}}),g("e",["4"],function(a){return a("tinymce.dom.DOMUtils")}),g("f",["4"],function(a){return a("tinymce.Env")}),g("7",["e","f"],function(a,b){var c=function(a,b){document.body.appendChild(a),a.dispatchEvent(b),document.body.removeChild(a)},d=function(d){if(!b.ie||b.ie>10){var e=document.createElement("a");e.target="_blank",e.href=d,e.rel="noreferrer noopener";var f=document.createEvent("MouseEvents");f.initMouseEvent("click",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),c(e,f)}else{var g=window.open("","_blank");if(g){g.opener=null;var h=g.document;h.open(),h.write('<meta http-equiv="refresh" content="0; url='+a.DOM.encode(d)+'">'),h.close()}}};return{open:d}}),g("2",["5","6","7","8","9"],function(a,b,c,d,e){var f=function(a,b){return a.dom.getParent(b,"a[href]")},g=function(a){return f(a,a.selection.getStart())},h=function(a){var b=a.getAttribute("data-mce-href");return b?b:a.getAttribute("href")},i=function(a){var b=a.plugins.contextmenu;return!!b&&b.isContextMenuVisible()},j=function(a){return a.altKey===!0&&a.shiftKey===!1&&a.ctrlKey===!1&&a.metaKey===!1},k=function(a,b){if(b){var d=h(b);if(/^#/.test(d)){var e=a.$(d);e.length&&a.selection.scrollIntoView(e[0],!0)}else c.open(b.href)}},l=function(a){return function(){b.open(a)}},m=function(a){return function(){k(a,g(a))}},n=function(a){return function(b){var c,f,g;return!!(e.hasContextToolbar(a.settings)&&!i(a)&&d.isLink(b)&&(c=a.selection,f=c.getRng(),g=f.startContainer,3==g.nodeType&&c.isCollapsed()&&f.startOffset>0&&f.startOffset<g.data.length))}},o=function(b){b.on("click",function(c){var d=f(b,c.target);d&&a.metaKeyPressed(c)&&(c.preventDefault(),k(b,d))}),b.on("keydown",function(a){var c=g(b);c&&13===a.keyCode&&j(a)&&(a.preventDefault(),k(b,c))})},p=function(a){return function(){var b=this;a.on("nodechange",function(c){b.active(!a.readonly&&!!d.getAnchorElement(a,c.element))})}},q=function(a){return function(){var b=this,c=function(a){d.hasLinks(a.parents)?b.show():b.hide()};d.hasLinks(a.dom.getParents(a.selection.getStart()))||b.hide(),a.on("nodechange",c),b.on("remove",function(){a.off("nodechange",c)})}};return{openDialog:l,gotoSelectedLink:m,leftClickedOnAHref:n,setupGotoLinks:o,toggleActiveState:p,toggleViewLinkState:q}}),g("3",["2","8"],function(a,b){var c=function(c){c.addButton("link",{icon:"link",tooltip:"Insert/edit link",shortcut:"Meta+K",onclick:a.openDialog(c),onpostrender:a.toggleActiveState(c)}),c.addButton("unlink",{icon:"unlink",tooltip:"Remove link",onclick:b.unlink(c),onpostrender:a.toggleActiveState(c)}),c.addContextToolbar&&c.addButton("openlink",{icon:"newtab",tooltip:"Open link",onclick:a.gotoSelectedLink(c)})},d=function(b){b.addMenuItem("openlink",{text:"Open link",icon:"newtab",onclick:a.gotoSelectedLink(b),onPostRender:a.toggleViewLinkState(b),prependToContext:!0}),b.addMenuItem("link",{icon:"link",text:"Link",shortcut:"Meta+K",onclick:a.openDialog(b),stateSelector:"a[href]",context:"insert",prependToContext:!0})},e=function(b){b.addContextToolbar&&b.addContextToolbar(a.leftClickedOnAHref(b),"openlink | link unlink")};return{setupButtons:c,setupMenuItems:d,setupContextToolbars:e}}),g("0",["1","2","3"],function(a,b,c){return a.add("link",function(a){c.setupButtons(a),c.setupMenuItems(a),c.setupContextToolbars(a),b.setupGotoLinks(a),a.addShortcut("Meta+K","",b.openDialog(a)),a.addCommand("mceLink",b.openDialog(a))}),function(){}}),d("0")()}(); \ No newline at end of file +!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=tinymce.util.Tools.resolve("tinymce.util.VK"),e=function(t){return t.target_list},o=function(t){return t.rel_list},i=function(t){return t.link_class_list},p=function(t){return"boolean"==typeof t.link_assume_external_targets&&t.link_assume_external_targets},a=function(t){return"boolean"==typeof t.link_context_toolbar&&t.link_context_toolbar},r=function(t){return t.link_list},k=function(t){return"string"==typeof t.default_link_target},y=function(t){return t.default_link_target},b=e,_=function(t,e){t.settings.target_list=e},w=function(t){return!1!==e(t)},T=o,C=function(t){return o(t)!==undefined},M=i,O=function(t){return i(t)!==undefined},R=function(t){return!1!==t.link_title},N=function(t){return"boolean"==typeof t.allow_unsafe_link_target&&t.allow_unsafe_link_target},l=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),u=tinymce.util.Tools.resolve("tinymce.Env"),c=function(t){if(!u.ie||10<u.ie){var e=document.createElement("a");e.target="_blank",e.href=t,e.rel="noreferrer noopener";var n=document.createEvent("MouseEvents");n.initMouseEvent("click",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),r=e,a=n,document.body.appendChild(r),r.dispatchEvent(a),document.body.removeChild(r)}else{var o=window.open("","_blank");if(o){o.opener=null;var i=o.document;i.open(),i.write('<meta http-equiv="refresh" content="0; url='+l.DOM.encode(t)+'">'),i.close()}}var r,a},A=tinymce.util.Tools.resolve("tinymce.util.Tools"),s=function(t,e){var n,o,i=["noopener"],r=t?t.split(/\s+/):[],a=function(t){return t.filter(function(t){return-1===A.inArray(i,t)})};return(r=e?(n=a(n=r)).length?n.concat(i):i:a(r)).length?(o=r,A.trim(o.sort().join(" "))):null},f=function(t,e){return e=e||t.selection.getNode(),m(e)?t.dom.select("a[href]",e)[0]:t.dom.getParent(e,"a[href]")},d=function(t){return t&&"A"===t.nodeName&&t.href},m=function(t){return t&&"FIGURE"===t.nodeName&&/\bimage\b/i.test(t.className)},v=function(t,e){var n,o;(o=t.dom.select("img",e)[0])&&(n=t.dom.getParents(o,"a[href]",e)[0])&&(n.parentNode.insertBefore(o,n),t.dom.remove(n))},g=function(t,e,n){var o,i;(i=t.dom.select("img",e)[0])&&(o=t.dom.create("a",n),i.parentNode.insertBefore(o,i),o.appendChild(i))},L=function(i,r){return function(o){i.undoManager.transact(function(){var t=i.selection.getNode(),e=f(i,t),n={href:o.href,target:o.target?o.target:null,rel:o.rel?o.rel:null,"class":o["class"]?o["class"]:null,title:o.title?o.title:null};C(i.settings)||!1!==N(i.settings)||(n.rel=s(n.rel,"_blank"===n.target)),o.href===r.href&&(r.attach(),r={}),e?(i.focus(),o.hasOwnProperty("text")&&("innerText"in e?e.innerText=o.text:e.textContent=o.text),i.dom.setAttribs(e,n),i.selection.select(e),i.undoManager.add()):m(t)?g(i,t,n):o.hasOwnProperty("text")?i.insertContent(i.dom.createHTML("a",n,i.dom.encode(o.text))):i.execCommand("mceInsertLink",!1,n)})}},P=function(e){return function(){e.undoManager.transact(function(){var t=e.selection.getNode();m(t)?v(e,t):e.execCommand("unlink")})}},h=d,x=function(t){return 0<A.grep(t,d).length},E=function(t){return!(/</.test(t)&&(!/^<a [^>]+>[^<]+<\/a>$/.test(t)||-1===t.indexOf("href=")))},S=f,I=function(t,e){var n=e?e.innerText||e.textContent:t.getContent({format:"text"});return n.replace(/\uFEFF/g,"")},K=s,U=tinymce.util.Tools.resolve("tinymce.util.Delay"),D=tinymce.util.Tools.resolve("tinymce.util.XHR"),B={},F=function(t,o,e){var i=function(t,n){return n=n||[],A.each(t,function(t){var e={text:t.text||t.title};t.menu?e.menu=i(t.menu):(e.value=t.value,o&&o(e)),n.push(e)}),n};return i(t,e||[])},q=function(e,t,n){var o=e.selection.getRng();U.setEditorTimeout(e,function(){e.windowManager.confirm(t,function(t){e.selection.setRng(o),n(t)})})},V=function(a,t){var e,l,o,u,n,i,r,c,s,f,d,m={},v=a.selection,g=a.dom,h=function(t){var e=o.find("#text");(!e.value()||t.lastControl&&e.value()===t.lastControl.text())&&e.value(t.control.text()),o.find("#href").value(t.control.value())},x=function(){l||!u||m.text||this.parent().parent().find("#text")[0].value(this.value())};u=E(v.getContent()),e=S(a),m.text=l=I(a.selection,e),m.href=e?g.getAttrib(e,"href"):"",e?m.target=g.getAttrib(e,"target"):k(a.settings)&&(m.target=y(a.settings)),(d=g.getAttrib(e,"rel"))&&(m.rel=d),(d=g.getAttrib(e,"class"))&&(m["class"]=d),(d=g.getAttrib(e,"title"))&&(m.title=d),u&&(n={name:"text",type:"textbox",size:40,label:"Text to display",onchange:function(){m.text=this.value()}}),t&&(i={type:"listbox",label:"Link list",values:F(t,function(t){t.value=a.convertURL(t.value||t.url,"href")},[{text:"None",value:""}]),onselect:h,value:a.convertURL(m.href,"href"),onPostRender:function(){i=this}}),w(a.settings)&&(b(a.settings)===undefined&&_(a,[{text:"None",value:""},{text:"New window",value:"_blank"}]),c={name:"target",type:"listbox",label:"Target",values:F(b(a.settings))}),C(a.settings)&&(r={name:"rel",type:"listbox",label:"Rel",values:F(T(a.settings),function(t){!1===N(a.settings)&&(t.value=K(t.value,"_blank"===m.target))})}),O(a.settings)&&(s={name:"class",type:"listbox",label:"Class",values:F(M(a.settings),function(t){t.value&&(t.textStyle=function(){return a.formatter.getCssText({inline:"a",classes:[t.value]})})})}),R(a.settings)&&(f={name:"title",type:"textbox",label:"Title",value:m.title}),o=a.windowManager.open({title:"Insert link",data:m,body:[{name:"href",type:"filepicker",filetype:"file",size:40,autofocus:!0,label:"Url",onchange:function(t){var e=t.meta||{};i&&i.value(a.convertURL(this.value(),"href")),A.each(t.meta,function(t,e){var n=o.find("#"+e);"text"===e?0===l.length&&(n.value(t),m.text=t):n.value(t)}),e.attach&&(B={href:this.value(),attach:e.attach}),e.text||x.call(this)},onkeyup:x,onpaste:x,onbeforecall:function(t){t.meta=o.toJSON()}},n,f,function(n){var o=[];if(A.each(a.dom.select("a:not([href])"),function(t){var e=t.name||t.id;e&&o.push({text:e,value:"#"+e,selected:-1!==n.indexOf("#"+e)})}),o.length)return o.unshift({text:"None",value:""}),{name:"anchor",type:"listbox",label:"Anchors",values:o,onselect:h}}(m.href),i,r,c,s],onSubmit:function(t){var e=p(a.settings),n=L(a,B),o=P(a),i=A.extend({},m,t.data),r=i.href;r?(u&&i.text!==l||delete i.text,0<r.indexOf("@")&&-1===r.indexOf("//")&&-1===r.indexOf("mailto:")?q(a,"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",function(t){t&&(i.href="mailto:"+r),n(i)}):!0===e&&!/^\w+:/i.test(r)||!1===e&&/^\s*www[\.|\d\.]/i.test(r)?q(a,"The URL you entered seems to be an external link. Do you want to add the required http:// prefix?",function(t){t&&(i.href="http://"+r),n(i)}):n(i)):o()}})},z=function(t){var e,n,o;n=V,"string"==typeof(o=r((e=t).settings))?D.send({url:o,success:function(t){n(e,JSON.parse(t))}}):"function"==typeof o?o(function(t){n(e,t)}):n(e,o)},H=function(t,e){return t.dom.getParent(e,"a[href]")},J=function(t){return H(t,t.selection.getStart())},$=function(t,e){if(e){var n=(i=e).getAttribute("data-mce-href")||i.getAttribute("href");if(/^#/.test(n)){var o=t.$(n);o.length&&t.selection.scrollIntoView(o[0],!0)}else c(e.href)}var i},j=function(t){return function(){z(t)}},G=function(t){return function(){$(t,J(t))}},X=function(r){return function(t){var e,n,o,i;return!!(a(r.settings)&&(!(i=r.plugins.contextmenu)||!i.isContextMenuVisible())&&h(t)&&3===(o=(n=(e=r.selection).getRng()).startContainer).nodeType&&e.isCollapsed()&&0<n.startOffset&&n.startOffset<o.data.length)}},Q=function(o){o.on("click",function(t){var e=H(o,t.target);e&&n.metaKeyPressed(t)&&(t.preventDefault(),$(o,e))}),o.on("keydown",function(t){var e,n=J(o);n&&13===t.keyCode&&!0===(e=t).altKey&&!1===e.shiftKey&&!1===e.ctrlKey&&!1===e.metaKey&&(t.preventDefault(),$(o,n))})},W=function(n){return function(){var e=this;n.on("nodechange",function(t){e.active(!n.readonly&&!!S(n,t.element))})}},Y=function(n){return function(){var e=this,t=function(t){x(t.parents)?e.show():e.hide()};x(n.dom.getParents(n.selection.getStart()))||e.hide(),n.on("nodechange",t),e.on("remove",function(){n.off("nodechange",t)})}},Z=function(t){t.addCommand("mceLink",j(t))},tt=function(t){t.addShortcut("Meta+K","",j(t))},et=function(t){t.addButton("link",{active:!1,icon:"link",tooltip:"Insert/edit link",onclick:j(t),onpostrender:W(t)}),t.addButton("unlink",{active:!1,icon:"unlink",tooltip:"Remove link",onclick:P(t),onpostrender:W(t)}),t.addContextToolbar&&t.addButton("openlink",{icon:"newtab",tooltip:"Open link",onclick:G(t)})},nt=function(t){t.addMenuItem("openlink",{text:"Open link",icon:"newtab",onclick:G(t),onPostRender:Y(t),prependToContext:!0}),t.addMenuItem("link",{icon:"link",text:"Link",shortcut:"Meta+K",onclick:j(t),stateSelector:"a[href]",context:"insert",prependToContext:!0}),t.addMenuItem("unlink",{icon:"unlink",text:"Remove link",onclick:P(t),stateSelector:"a[href]"})},ot=function(t){t.addContextToolbar&&t.addContextToolbar(X(t),"openlink | link unlink")};t.add("link",function(t){et(t),nt(t),ot(t),Q(t),Z(t),tt(t)})}(); \ No newline at end of file diff --git a/wp-includes/js/tinymce/plugins/lists/plugin.js b/wp-includes/js/tinymce/plugins/lists/plugin.js index c28281451..fd0c96575 100644 --- a/wp-includes/js/tinymce/plugins/lists/plugin.js +++ b/wp-includes/js/tinymce/plugins/lists/plugin.js @@ -1,1792 +1,1114 @@ (function () { +var lists = (function () { + 'use strict'; -var defs = {}; // id -> {dependencies, definition, instance (possibly undefined)} + var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); -// Used when there is no 'main' module. -// The name is probably (hopefully) unique so minification removes for releases. -var register_3795 = function (id) { - var module = dem(id); - var fragments = id.split('.'); - var target = Function('return this;')(); - for (var i = 0; i < fragments.length - 1; ++i) { - if (target[fragments[i]] === undefined) - target[fragments[i]] = {}; - target = target[fragments[i]]; - } - target[fragments[fragments.length - 1]] = module; -}; - -var instantiate = function (id) { - var actual = defs[id]; - var dependencies = actual.deps; - var definition = actual.defn; - var len = dependencies.length; - var instances = new Array(len); - for (var i = 0; i < len; ++i) - instances[i] = dem(dependencies[i]); - var defResult = definition.apply(null, instances); - if (defResult === undefined) - throw 'module [' + id + '] returned undefined'; - actual.instance = defResult; -}; - -var def = function (id, dependencies, definition) { - if (typeof id !== 'string') - throw 'module id must be a string'; - else if (dependencies === undefined) - throw 'no dependencies for ' + id; - else if (definition === undefined) - throw 'no definition function for ' + id; - defs[id] = { - deps: dependencies, - defn: definition, - instance: undefined - }; -}; - -var dem = function (id) { - var actual = defs[id]; - if (actual === undefined) - throw 'module [' + id + '] was undefined'; - else if (actual.instance === undefined) - instantiate(id); - return actual.instance; -}; - -var req = function (ids, callback) { - var len = ids.length; - var instances = new Array(len); - for (var i = 0; i < len; ++i) - instances.push(dem(ids[i])); - callback.apply(null, callback); -}; - -var ephox = {}; - -ephox.bolt = { - module: { - api: { - define: def, - require: req, - demand: dem - } - } -}; - -var define = def; -var require = req; -var demand = dem; -// this helps with minificiation when using a lot of global references -var defineGlobal = function (id, ref) { - define(id, [], function () { return ref; }); -}; -/*jsc -["tinymce.plugins.lists.Plugin","tinymce.core.PluginManager","tinymce.core.util.Tools","tinymce.core.util.VK","tinymce.plugins.lists.actions.Indent","tinymce.plugins.lists.actions.Outdent","tinymce.plugins.lists.actions.ToggleList","tinymce.plugins.lists.core.Delete","tinymce.plugins.lists.core.NodeType","tinymce.plugins.lists.core.Selection","global!tinymce.util.Tools.resolve","tinymce.core.dom.DOMUtils","tinymce.plugins.lists.core.Bookmark","tinymce.core.dom.DomQuery","tinymce.plugins.lists.core.NormalizeLists","tinymce.plugins.lists.core.SplitList","tinymce.plugins.lists.core.TextBlock","tinymce.core.dom.BookmarkManager","tinymce.core.dom.RangeUtils","tinymce.core.dom.TreeWalker","tinymce.plugins.lists.core.Range","tinymce.core.Env"] -jsc*/ -defineGlobal("global!tinymce.util.Tools.resolve", tinymce.util.Tools.resolve); -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.PluginManager', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.PluginManager'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.util.Tools', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.util.Tools'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.util.VK', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.util.VK'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.dom.DOMUtils', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.dom.DOMUtils'); - } -); - -/** - * NodeType.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.lists.core.NodeType', - [ - ], - function () { - var isTextNode = function (node) { - return node && node.nodeType === 3; - }; - - var isListNode = function (node) { - return node && (/^(OL|UL|DL)$/).test(node.nodeName); - }; - - var isListItemNode = function (node) { - return node && /^(LI|DT|DD)$/.test(node.nodeName); - }; - - var isBr = function (node) { - return node && node.nodeName === 'BR'; - }; - - var isFirstChild = function (node) { - return node.parentNode.firstChild === node; - }; - - var isLastChild = function (node) { - return node.parentNode.lastChild === node; - }; - - var isTextBlock = function (editor, node) { - return node && !!editor.schema.getTextBlockElements()[node.nodeName]; - }; - - var isBlock = function (node, blockElements) { - return node && node.nodeName in blockElements; - }; - - var isBogusBr = function (dom, node) { - if (!isBr(node)) { - return false; - } - - if (dom.isBlock(node.nextSibling) && !isBr(node.previousSibling)) { - return true; - } - - return false; - }; - - var isEmpty = function (dom, elm, keepBookmarks) { - var empty = dom.isEmpty(elm); - - if (keepBookmarks && dom.select('span[data-mce-type=bookmark]', elm).length > 0) { - return false; - } - - return empty; - }; - - var isChildOfBody = function (dom, elm) { - return dom.isChildOf(elm, dom.getRoot()); - }; - - return { - isTextNode: isTextNode, - isListNode: isListNode, - isListItemNode: isListItemNode, - isBr: isBr, - isFirstChild: isFirstChild, - isLastChild: isLastChild, - isTextBlock: isTextBlock, - isBlock: isBlock, - isBogusBr: isBogusBr, - isEmpty: isEmpty, - isChildOfBody: isChildOfBody - }; - } -); - - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.dom.RangeUtils', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.dom.RangeUtils'); - } -); - -/** - * Range.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.lists.core.Range', - [ - 'tinymce.core.dom.RangeUtils', - 'tinymce.plugins.lists.core.NodeType' - ], - function (RangeUtils, NodeType) { - var getNormalizedEndPoint = function (container, offset) { - var node = RangeUtils.getNode(container, offset); - - if (NodeType.isListItemNode(container) && NodeType.isTextNode(node)) { - var textNodeOffset = offset >= container.childNodes.length ? node.data.length : 0; - return { container: node, offset: textNodeOffset }; - } - - return { container: container, offset: offset }; - }; - - var normalizeRange = function (rng) { - var outRng = rng.cloneRange(); - - var rangeStart = getNormalizedEndPoint(rng.startContainer, rng.startOffset); - outRng.setStart(rangeStart.container, rangeStart.offset); - - var rangeEnd = getNormalizedEndPoint(rng.endContainer, rng.endOffset); - outRng.setEnd(rangeEnd.container, rangeEnd.offset); - - return outRng; - }; - - return { - getNormalizedEndPoint: getNormalizedEndPoint, - normalizeRange: normalizeRange - }; - } -); - - -/** - * Bookmark.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.lists.core.Bookmark', - [ - 'tinymce.core.dom.DOMUtils', - 'tinymce.plugins.lists.core.NodeType', - 'tinymce.plugins.lists.core.Range' - ], - function (DOMUtils, NodeType, Range) { - var DOM = DOMUtils.DOM; - - /** - * Returns a range bookmark. This will convert indexed bookmarks into temporary span elements with - * index 0 so that they can be restored properly after the DOM has been modified. Text bookmarks will not have spans - * added to them since they can be restored after a dom operation. - * - * So this: <p><b>|</b><b>|</b></p> - * becomes: <p><b><span data-mce-type="bookmark">|</span></b><b data-mce-type="bookmark">|</span></b></p> - * - * @param {DOMRange} rng DOM Range to get bookmark on. - * @return {Object} Bookmark object. - */ - var createBookmark = function (rng) { - var bookmark = {}; - - var setupEndPoint = function (start) { - var offsetNode, container, offset; - - container = rng[start ? 'startContainer' : 'endContainer']; - offset = rng[start ? 'startOffset' : 'endOffset']; - - if (container.nodeType === 1) { - offsetNode = DOM.create('span', { 'data-mce-type': 'bookmark' }); - - if (container.hasChildNodes()) { - offset = Math.min(offset, container.childNodes.length - 1); - - if (start) { - container.insertBefore(offsetNode, container.childNodes[offset]); - } else { - DOM.insertAfter(offsetNode, container.childNodes[offset]); - } - } else { - container.appendChild(offsetNode); - } - - container = offsetNode; - offset = 0; - } - - bookmark[start ? 'startContainer' : 'endContainer'] = container; - bookmark[start ? 'startOffset' : 'endOffset'] = offset; - }; - - setupEndPoint(true); - - if (!rng.collapsed) { - setupEndPoint(); - } - - return bookmark; - }; - - var resolveBookmark = function (bookmark) { - function restoreEndPoint(start) { - var container, offset, node; - - var nodeIndex = function (container) { - var node = container.parentNode.firstChild, idx = 0; - - while (node) { - if (node === container) { - return idx; - } - - // Skip data-mce-type=bookmark nodes - if (node.nodeType !== 1 || node.getAttribute('data-mce-type') !== 'bookmark') { - idx++; - } - - node = node.nextSibling; - } - - return -1; - }; - - container = node = bookmark[start ? 'startContainer' : 'endContainer']; - offset = bookmark[start ? 'startOffset' : 'endOffset']; - - if (!container) { - return; - } - - if (container.nodeType === 1) { - offset = nodeIndex(container); - container = container.parentNode; - DOM.remove(node); - } - - bookmark[start ? 'startContainer' : 'endContainer'] = container; - bookmark[start ? 'startOffset' : 'endOffset'] = offset; - } - - restoreEndPoint(true); - restoreEndPoint(); - - var rng = DOM.createRng(); - - rng.setStart(bookmark.startContainer, bookmark.startOffset); - - if (bookmark.endContainer) { - rng.setEnd(bookmark.endContainer, bookmark.endOffset); - } - - return Range.normalizeRange(rng); - }; - - return { - createBookmark: createBookmark, - resolveBookmark: resolveBookmark - }; - } -); - - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.dom.DomQuery', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.dom.DomQuery'); - } -); - -/** - * Selection.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.lists.core.Selection', - [ - 'tinymce.core.dom.DomQuery', - 'tinymce.core.util.Tools', - 'tinymce.plugins.lists.core.NodeType' - ], - function (DomQuery, Tools, NodeType) { - var getParentList = function (editor) { - return editor.dom.getParent(editor.selection.getStart(true), 'OL,UL,DL'); - }; - - var getSelectedSubLists = function (editor) { - var parentList = getParentList(editor); - return Tools.grep(editor.selection.getSelectedBlocks(), function (elm) { - return NodeType.isListNode(elm) && parentList !== elm; - }); - }; - - var findParentListItemsNodes = function (editor, elms) { - var listItemsElms = Tools.map(elms, function (elm) { - var parentLi = editor.dom.getParent(elm, 'li,dd,dt', editor.getBody()); - - return parentLi ? parentLi : elm; - }); - - return DomQuery.unique(listItemsElms); - }; - - var getSelectedListItems = function (editor) { - var selectedBlocks = editor.selection.getSelectedBlocks(); - return Tools.grep(findParentListItemsNodes(editor, selectedBlocks), function (block) { - return NodeType.isListItemNode(block); - }); - }; - - return { - getParentList: getParentList, - getSelectedSubLists: getSelectedSubLists, - getSelectedListItems: getSelectedListItems - }; - } -); - - -/** - * Indent.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.lists.actions.Indent', - [ - 'tinymce.core.dom.DOMUtils', - 'tinymce.plugins.lists.core.Bookmark', - 'tinymce.plugins.lists.core.NodeType', - 'tinymce.plugins.lists.core.Selection' - ], - function (DOMUtils, Bookmark, NodeType, Selection) { - var DOM = DOMUtils.DOM; - - var mergeLists = function (from, to) { - var node; - - if (NodeType.isListNode(from)) { - while ((node = from.firstChild)) { - to.appendChild(node); - } - - DOM.remove(from); - } - }; - - var indent = function (li) { - var sibling, newList, listStyle; - - if (li.nodeName === 'DT') { - DOM.rename(li, 'DD'); - return true; - } - - sibling = li.previousSibling; - - if (sibling && NodeType.isListNode(sibling)) { - sibling.appendChild(li); - return true; - } - - if (sibling && sibling.nodeName === 'LI' && NodeType.isListNode(sibling.lastChild)) { - sibling.lastChild.appendChild(li); - mergeLists(li.lastChild, sibling.lastChild); - return true; - } - - sibling = li.nextSibling; - - if (sibling && NodeType.isListNode(sibling)) { - sibling.insertBefore(li, sibling.firstChild); - return true; - } - - /*if (sibling && sibling.nodeName === 'LI' && isListNode(li.lastChild)) { - return false; - }*/ - - sibling = li.previousSibling; - if (sibling && sibling.nodeName === 'LI') { - newList = DOM.create(li.parentNode.nodeName); - listStyle = DOM.getStyle(li.parentNode, 'listStyleType'); - if (listStyle) { - DOM.setStyle(newList, 'listStyleType', listStyle); - } - sibling.appendChild(newList); - newList.appendChild(li); - mergeLists(li.lastChild, newList); - return true; - } - - return false; - }; - - var indentSelection = function (editor) { - var listElements = Selection.getSelectedListItems(editor); - - if (listElements.length) { - var bookmark = Bookmark.createBookmark(editor.selection.getRng(true)); - - for (var i = 0; i < listElements.length; i++) { - if (!indent(listElements[i]) && i === 0) { - break; - } - } - - editor.selection.setRng(Bookmark.resolveBookmark(bookmark)); - editor.nodeChanged(); - - return true; - } - }; - - return { - indentSelection: indentSelection - }; - } -); - - -/** - * NormalizeLists.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.lists.core.NormalizeLists', - [ - 'tinymce.core.dom.DOMUtils', - 'tinymce.core.util.Tools', - 'tinymce.plugins.lists.core.NodeType' - ], - function (DOMUtils, Tools, NodeType) { - var DOM = DOMUtils.DOM; - - var normalizeList = function (dom, ul) { - var sibling, parentNode = ul.parentNode; - - // Move UL/OL to previous LI if it's the only child of a LI - if (parentNode.nodeName === 'LI' && parentNode.firstChild === ul) { - sibling = parentNode.previousSibling; - if (sibling && sibling.nodeName === 'LI') { - sibling.appendChild(ul); - - if (NodeType.isEmpty(dom, parentNode)) { - DOM.remove(parentNode); - } - } else { - DOM.setStyle(parentNode, 'listStyleType', 'none'); - } - } - - // Append OL/UL to previous LI if it's in a parent OL/UL i.e. old HTML4 - if (NodeType.isListNode(parentNode)) { - sibling = parentNode.previousSibling; - if (sibling && sibling.nodeName === 'LI') { - sibling.appendChild(ul); - } - } - }; - - var normalizeLists = function (dom, element) { - Tools.each(Tools.grep(dom.select('ol,ul', element)), function (ul) { - normalizeList(dom, ul); - }); - }; - - return { - normalizeList: normalizeList, - normalizeLists: normalizeLists - }; - } -); - - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.Env', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.Env'); - } -); - -/** - * TextBlock.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.lists.core.TextBlock', - [ - 'tinymce.core.dom.DOMUtils', - 'tinymce.core.Env', - 'tinymce.plugins.lists.core.NodeType' - ], - function (DOMUtils, Env, NodeType) { - var DOM = DOMUtils.DOM; - - var createNewTextBlock = function (editor, contentNode, blockName) { - var node, textBlock, fragment = DOM.createFragment(), hasContentNode; - var blockElements = editor.schema.getBlockElements(); - - if (editor.settings.forced_root_block) { - blockName = blockName || editor.settings.forced_root_block; - } - - if (blockName) { - textBlock = DOM.create(blockName); - - if (textBlock.tagName === editor.settings.forced_root_block) { - DOM.setAttribs(textBlock, editor.settings.forced_root_block_attrs); - } - - if (!NodeType.isBlock(contentNode.firstChild, blockElements)) { - fragment.appendChild(textBlock); - } - } - - if (contentNode) { - while ((node = contentNode.firstChild)) { - var nodeName = node.nodeName; - - if (!hasContentNode && (nodeName !== 'SPAN' || node.getAttribute('data-mce-type') !== 'bookmark')) { - hasContentNode = true; - } - - if (NodeType.isBlock(node, blockElements)) { - fragment.appendChild(node); - textBlock = null; - } else { - if (blockName) { - if (!textBlock) { - textBlock = DOM.create(blockName); - fragment.appendChild(textBlock); - } - - textBlock.appendChild(node); - } else { - fragment.appendChild(node); - } - } - } - } - - if (!editor.settings.forced_root_block) { - fragment.appendChild(DOM.create('br')); - } else { - // BR is needed in empty blocks on non IE browsers - if (!hasContentNode && (!Env.ie || Env.ie > 10)) { - textBlock.appendChild(DOM.create('br', { 'data-mce-bogus': '1' })); - } - } - - return fragment; - }; - - return { - createNewTextBlock: createNewTextBlock - }; - } -); - -/** - * SplitList.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.lists.core.SplitList', - [ - 'tinymce.core.dom.DOMUtils', - 'tinymce.plugins.lists.core.NodeType', - 'tinymce.plugins.lists.core.TextBlock', - 'tinymce.core.util.Tools' - ], - function (DOMUtils, NodeType, TextBlock, Tools) { - var DOM = DOMUtils.DOM; - - var splitList = function (editor, ul, li, newBlock) { - var tmpRng, fragment, bookmarks, node; - - var removeAndKeepBookmarks = function (targetNode) { - Tools.each(bookmarks, function (node) { - targetNode.parentNode.insertBefore(node, li.parentNode); - }); - - DOM.remove(targetNode); - }; - - bookmarks = DOM.select('span[data-mce-type="bookmark"]', ul); - newBlock = newBlock || TextBlock.createNewTextBlock(editor, li); - tmpRng = DOM.createRng(); - tmpRng.setStartAfter(li); - tmpRng.setEndAfter(ul); - fragment = tmpRng.extractContents(); - - for (node = fragment.firstChild; node; node = node.firstChild) { - if (node.nodeName === 'LI' && editor.dom.isEmpty(node)) { - DOM.remove(node); - break; - } - } - - if (!editor.dom.isEmpty(fragment)) { - DOM.insertAfter(fragment, ul); - } - - DOM.insertAfter(newBlock, ul); - - if (NodeType.isEmpty(editor.dom, li.parentNode)) { - removeAndKeepBookmarks(li.parentNode); - } - - DOM.remove(li); - - if (NodeType.isEmpty(editor.dom, ul)) { - DOM.remove(ul); - } - }; - - return { - splitList: splitList - }; - } -); - - -/** - * Outdent.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.lists.actions.Outdent', - [ - 'tinymce.core.dom.DOMUtils', - 'tinymce.plugins.lists.core.Bookmark', - 'tinymce.plugins.lists.core.NodeType', - 'tinymce.plugins.lists.core.NormalizeLists', - 'tinymce.plugins.lists.core.Selection', - 'tinymce.plugins.lists.core.SplitList', - 'tinymce.plugins.lists.core.TextBlock' - ], - function (DOMUtils, Bookmark, NodeType, NormalizeLists, Selection, SplitList, TextBlock) { - var DOM = DOMUtils.DOM; - - var removeEmptyLi = function (dom, li) { - if (NodeType.isEmpty(dom, li)) { - DOM.remove(li); - } - }; - - var outdent = function (editor, li) { - var ul = li.parentNode, ulParent = ul.parentNode, newBlock; - - if (ul === editor.getBody()) { - return true; - } - - if (li.nodeName === 'DD') { - DOM.rename(li, 'DT'); - return true; - } - - if (NodeType.isFirstChild(li) && NodeType.isLastChild(li)) { - if (ulParent.nodeName === "LI") { - DOM.insertAfter(li, ulParent); - removeEmptyLi(editor.dom, ulParent); - DOM.remove(ul); - } else if (NodeType.isListNode(ulParent)) { - DOM.remove(ul, true); - } else { - ulParent.insertBefore(TextBlock.createNewTextBlock(editor, li), ul); - DOM.remove(ul); - } - - return true; - } else if (NodeType.isFirstChild(li)) { - if (ulParent.nodeName === "LI") { - DOM.insertAfter(li, ulParent); - li.appendChild(ul); - removeEmptyLi(editor.dom, ulParent); - } else if (NodeType.isListNode(ulParent)) { - ulParent.insertBefore(li, ul); - } else { - ulParent.insertBefore(TextBlock.createNewTextBlock(editor, li), ul); - DOM.remove(li); - } - - return true; - } else if (NodeType.isLastChild(li)) { - if (ulParent.nodeName === "LI") { - DOM.insertAfter(li, ulParent); - } else if (NodeType.isListNode(ulParent)) { - DOM.insertAfter(li, ul); - } else { - DOM.insertAfter(TextBlock.createNewTextBlock(editor, li), ul); - DOM.remove(li); - } - - return true; - } - - if (ulParent.nodeName === 'LI') { - ul = ulParent; - newBlock = TextBlock.createNewTextBlock(editor, li, 'LI'); - } else if (NodeType.isListNode(ulParent)) { - newBlock = TextBlock.createNewTextBlock(editor, li, 'LI'); - } else { - newBlock = TextBlock.createNewTextBlock(editor, li); - } - - SplitList.splitList(editor, ul, li, newBlock); - NormalizeLists.normalizeLists(editor.dom, ul.parentNode); - - return true; - }; + var global$1 = tinymce.util.Tools.resolve('tinymce.dom.RangeUtils'); - var outdentSelection = function (editor) { - var listElements = Selection.getSelectedListItems(editor); + var global$2 = tinymce.util.Tools.resolve('tinymce.dom.TreeWalker'); - if (listElements.length) { - var bookmark = Bookmark.createBookmark(editor.selection.getRng(true)); - var i, y, root = editor.getBody(); + var global$3 = tinymce.util.Tools.resolve('tinymce.util.VK'); - i = listElements.length; - while (i--) { - var node = listElements[i].parentNode; + var global$4 = tinymce.util.Tools.resolve('tinymce.dom.BookmarkManager'); - while (node && node !== root) { - y = listElements.length; - while (y--) { - if (listElements[y] === node) { - listElements.splice(i, 1); - break; - } - } - - node = node.parentNode; - } - } + var global$5 = tinymce.util.Tools.resolve('tinymce.util.Tools'); - for (i = 0; i < listElements.length; i++) { - if (!outdent(editor, listElements[i]) && i === 0) { - break; - } - } + var global$6 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils'); - editor.selection.setRng(Bookmark.resolveBookmark(bookmark)); - editor.nodeChanged(); - - return true; - } - }; + var isTextNode = function (node) { + return node && node.nodeType === 3; + }; + var isListNode = function (node) { + return node && /^(OL|UL|DL)$/.test(node.nodeName); + }; + var isListItemNode = function (node) { + return node && /^(LI|DT|DD)$/.test(node.nodeName); + }; + var isTableCellNode = function (node) { + return node && /^(TH|TD)$/.test(node.nodeName); + }; + var isBr = function (node) { + return node && node.nodeName === 'BR'; + }; + var isFirstChild = function (node) { + return node.parentNode.firstChild === node; + }; + var isLastChild = function (node) { + return node.parentNode.lastChild === node; + }; + var isTextBlock = function (editor, node) { + return node && !!editor.schema.getTextBlockElements()[node.nodeName]; + }; + var isBlock = function (node, blockElements) { + return node && node.nodeName in blockElements; + }; + var isBogusBr = function (dom, node) { + if (!isBr(node)) { + return false; + } + if (dom.isBlock(node.nextSibling) && !isBr(node.previousSibling)) { + return true; + } + return false; + }; + var isEmpty = function (dom, elm, keepBookmarks) { + var empty = dom.isEmpty(elm); + if (keepBookmarks && dom.select('span[data-mce-type=bookmark]', elm).length > 0) { + return false; + } + return empty; + }; + var isChildOfBody = function (dom, elm) { + return dom.isChildOf(elm, dom.getRoot()); + }; + var $_fmlqy7fsjfuw8plr = { + isTextNode: isTextNode, + isListNode: isListNode, + isListItemNode: isListItemNode, + isTableCellNode: isTableCellNode, + isBr: isBr, + isFirstChild: isFirstChild, + isLastChild: isLastChild, + isTextBlock: isTextBlock, + isBlock: isBlock, + isBogusBr: isBogusBr, + isEmpty: isEmpty, + isChildOfBody: isChildOfBody + }; + var getNormalizedEndPoint = function (container, offset) { + var node = global$1.getNode(container, offset); + if ($_fmlqy7fsjfuw8plr.isListItemNode(container) && $_fmlqy7fsjfuw8plr.isTextNode(node)) { + var textNodeOffset = offset >= container.childNodes.length ? node.data.length : 0; + return { + container: node, + offset: textNodeOffset + }; + } return { - outdent: outdent, - outdentSelection: outdentSelection + container: container, + offset: offset }; - } -); - - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.dom.BookmarkManager', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.dom.BookmarkManager'); - } -); - -/** - * ToggleList.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.lists.actions.ToggleList', - [ - 'tinymce.core.dom.BookmarkManager', - 'tinymce.core.util.Tools', - 'tinymce.plugins.lists.actions.Outdent', - 'tinymce.plugins.lists.core.Bookmark', - 'tinymce.plugins.lists.core.NodeType', - 'tinymce.plugins.lists.core.NormalizeLists', - 'tinymce.plugins.lists.core.Selection', - 'tinymce.plugins.lists.core.SplitList' - ], - function (BookmarkManager, Tools, Outdent, Bookmark, NodeType, NormalizeLists, Selection, SplitList) { - var updateListStyle = function (dom, el, detail) { - var type = detail['list-style-type'] ? detail['list-style-type'] : null; - dom.setStyle(el, 'list-style-type', type); - }; - - var setAttribs = function (elm, attrs) { - Tools.each(attrs, function (value, key) { - elm.setAttribute(key, value); - }); - }; - - var updateListAttrs = function (dom, el, detail) { - setAttribs(el, detail['list-attributes']); - Tools.each(dom.select('li', el), function (li) { - setAttribs(li, detail['list-item-attributes']); - }); - }; - - var updateListWithDetails = function (dom, el, detail) { - updateListStyle(dom, el, detail); - updateListAttrs(dom, el, detail); - }; - - var getEndPointNode = function (editor, rng, start) { - var container, offset, root = editor.getBody(); + }; + var normalizeRange = function (rng) { + var outRng = rng.cloneRange(); + var rangeStart = getNormalizedEndPoint(rng.startContainer, rng.startOffset); + outRng.setStart(rangeStart.container, rangeStart.offset); + var rangeEnd = getNormalizedEndPoint(rng.endContainer, rng.endOffset); + outRng.setEnd(rangeEnd.container, rangeEnd.offset); + return outRng; + }; + var $_14fh94frjfuw8plp = { + getNormalizedEndPoint: getNormalizedEndPoint, + normalizeRange: normalizeRange + }; + var DOM = global$6.DOM; + var createBookmark = function (rng) { + var bookmark = {}; + var setupEndPoint = function (start) { + var offsetNode, container, offset; container = rng[start ? 'startContainer' : 'endContainer']; offset = rng[start ? 'startOffset' : 'endOffset']; - - // Resolve node index if (container.nodeType === 1) { - container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container; - } - - while (container.parentNode !== root) { - if (NodeType.isTextBlock(editor, container)) { - return container; - } - - if (/^(TD|TH)$/.test(container.parentNode.nodeName)) { - return container; + offsetNode = DOM.create('span', { 'data-mce-type': 'bookmark' }); + if (container.hasChildNodes()) { + offset = Math.min(offset, container.childNodes.length - 1); + if (start) { + container.insertBefore(offsetNode, container.childNodes[offset]); + } else { + DOM.insertAfter(offsetNode, container.childNodes[offset]); + } + } else { + container.appendChild(offsetNode); } - - container = container.parentNode; + container = offsetNode; + offset = 0; } - - return container; + bookmark[start ? 'startContainer' : 'endContainer'] = container; + bookmark[start ? 'startOffset' : 'endOffset'] = offset; }; - - var getSelectedTextBlocks = function (editor, rng) { - var textBlocks = [], root = editor.getBody(), dom = editor.dom; - - var startNode = getEndPointNode(editor, rng, true); - var endNode = getEndPointNode(editor, rng, false); - var block, siblings = []; - - for (var node = startNode; node; node = node.nextSibling) { - siblings.push(node); - - if (node === endNode) { - break; - } - } - - Tools.each(siblings, function (node) { - if (NodeType.isTextBlock(editor, node)) { - textBlocks.push(node); - block = null; - return; - } - - if (dom.isBlock(node) || NodeType.isBr(node)) { - if (NodeType.isBr(node)) { - dom.remove(node); + setupEndPoint(true); + if (!rng.collapsed) { + setupEndPoint(); + } + return bookmark; + }; + var resolveBookmark = function (bookmark) { + function restoreEndPoint(start) { + var container, offset, node; + var nodeIndex = function (container) { + var node = container.parentNode.firstChild, idx = 0; + while (node) { + if (node === container) { + return idx; } - - block = null; - return; - } - - var nextSibling = node.nextSibling; - if (BookmarkManager.isBookmarkNode(node)) { - if (NodeType.isTextBlock(editor, nextSibling) || (!nextSibling && node.parentNode === root)) { - block = null; - return; + if (node.nodeType !== 1 || node.getAttribute('data-mce-type') !== 'bookmark') { + idx++; } + node = node.nextSibling; } - - if (!block) { - block = dom.create('p'); - node.parentNode.insertBefore(block, node); - textBlocks.push(block); - } - - block.appendChild(node); - }); - - return textBlocks; - }; - - var applyList = function (editor, listName, detail) { - var rng = editor.selection.getRng(true), bookmark, listItemName = 'LI'; - var dom = editor.dom; - - detail = detail ? detail : {}; - - if (dom.getContentEditable(editor.selection.getNode()) === "false") { + return -1; + }; + container = node = bookmark[start ? 'startContainer' : 'endContainer']; + offset = bookmark[start ? 'startOffset' : 'endOffset']; + if (!container) { return; } - - listName = listName.toUpperCase(); - - if (listName === 'DL') { - listItemName = 'DT'; + if (container.nodeType === 1) { + offset = nodeIndex(container); + container = container.parentNode; + DOM.remove(node); + if (!container.hasChildNodes() && DOM.isBlock(container)) { + container.appendChild(DOM.create('br')); + } } + bookmark[start ? 'startContainer' : 'endContainer'] = container; + bookmark[start ? 'startOffset' : 'endOffset'] = offset; + } + restoreEndPoint(true); + restoreEndPoint(); + var rng = DOM.createRng(); + rng.setStart(bookmark.startContainer, bookmark.startOffset); + if (bookmark.endContainer) { + rng.setEnd(bookmark.endContainer, bookmark.endOffset); + } + return $_14fh94frjfuw8plp.normalizeRange(rng); + }; + var $_3byghwfqjfuw8pln = { + createBookmark: createBookmark, + resolveBookmark: resolveBookmark + }; - bookmark = Bookmark.createBookmark(rng); - - Tools.each(getSelectedTextBlocks(editor, rng), function (block) { - var listBlock, sibling; - - var hasCompatibleStyle = function (sib) { - var sibStyle = dom.getStyle(sib, 'list-style-type'); - var detailStyle = detail ? detail['list-style-type'] : ''; - - detailStyle = detailStyle === null ? '' : detailStyle; - - return sibStyle === detailStyle; - }; - - sibling = block.previousSibling; - if (sibling && NodeType.isListNode(sibling) && sibling.nodeName === listName && hasCompatibleStyle(sibling)) { - listBlock = sibling; - block = dom.rename(block, listItemName); - sibling.appendChild(block); - } else { - listBlock = dom.create(listName); - block.parentNode.insertBefore(listBlock, block); - listBlock.appendChild(block); - block = dom.rename(block, listItemName); + var DOM$1 = global$6.DOM; + var normalizeList = function (dom, ul) { + var sibling; + var parentNode = ul.parentNode; + if (parentNode.nodeName === 'LI' && parentNode.firstChild === ul) { + sibling = parentNode.previousSibling; + if (sibling && sibling.nodeName === 'LI') { + sibling.appendChild(ul); + if ($_fmlqy7fsjfuw8plr.isEmpty(dom, parentNode)) { + DOM$1.remove(parentNode); } + } else { + DOM$1.setStyle(parentNode, 'listStyleType', 'none'); + } + } + if ($_fmlqy7fsjfuw8plr.isListNode(parentNode)) { + sibling = parentNode.previousSibling; + if (sibling && sibling.nodeName === 'LI') { + sibling.appendChild(ul); + } + } + }; + var normalizeLists = function (dom, element) { + global$5.each(global$5.grep(dom.select('ol,ul', element)), function (ul) { + normalizeList(dom, ul); + }); + }; + var $_7p90zmftjfuw8plu = { + normalizeList: normalizeList, + normalizeLists: normalizeLists + }; - updateListWithDetails(dom, listBlock, detail); - mergeWithAdjacentLists(editor.dom, listBlock); - }); - - editor.selection.setRng(Bookmark.resolveBookmark(bookmark)); - }; - - var removeList = function (editor) { - var bookmark = Bookmark.createBookmark(editor.selection.getRng(true)), root = editor.getBody(); - var listItems = Selection.getSelectedListItems(editor); - var emptyListItems = Tools.grep(listItems, function (li) { - return editor.dom.isEmpty(li); - }); - - listItems = Tools.grep(listItems, function (li) { - return !editor.dom.isEmpty(li); - }); + var global$7 = tinymce.util.Tools.resolve('tinymce.dom.DomQuery'); - Tools.each(emptyListItems, function (li) { - if (NodeType.isEmpty(editor.dom, li)) { - Outdent.outdent(editor, li); - return; - } + var getParentList = function (editor) { + var selectionStart = editor.selection.getStart(true); + return editor.dom.getParent(selectionStart, 'OL,UL,DL', getClosestListRootElm(editor, selectionStart)); + }; + var isParentListSelected = function (parentList, selectedBlocks) { + return parentList && selectedBlocks.length === 1 && selectedBlocks[0] === parentList; + }; + var findSubLists = function (parentList) { + return global$5.grep(parentList.querySelectorAll('ol,ul,dl'), function (elm) { + return $_fmlqy7fsjfuw8plr.isListNode(elm); + }); + }; + var getSelectedSubLists = function (editor) { + var parentList = getParentList(editor); + var selectedBlocks = editor.selection.getSelectedBlocks(); + if (isParentListSelected(parentList, selectedBlocks)) { + return findSubLists(parentList); + } else { + return global$5.grep(selectedBlocks, function (elm) { + return $_fmlqy7fsjfuw8plr.isListNode(elm) && parentList !== elm; }); + } + }; + var findParentListItemsNodes = function (editor, elms) { + var listItemsElms = global$5.map(elms, function (elm) { + var parentLi = editor.dom.getParent(elm, 'li,dd,dt', getClosestListRootElm(editor, elm)); + return parentLi ? parentLi : elm; + }); + return global$7.unique(listItemsElms); + }; + var getSelectedListItems = function (editor) { + var selectedBlocks = editor.selection.getSelectedBlocks(); + return global$5.grep(findParentListItemsNodes(editor, selectedBlocks), function (block) { + return $_fmlqy7fsjfuw8plr.isListItemNode(block); + }); + }; + var getClosestListRootElm = function (editor, elm) { + var parentTableCell = editor.dom.getParents(elm, 'TD,TH'); + var root = parentTableCell.length > 0 ? parentTableCell[0] : editor.getBody(); + return root; + }; + var $_2bncsnfujfuw8plw = { + getParentList: getParentList, + getSelectedSubLists: getSelectedSubLists, + getSelectedListItems: getSelectedListItems, + getClosestListRootElm: getClosestListRootElm + }; - Tools.each(listItems, function (li) { - var node, rootList; + var global$8 = tinymce.util.Tools.resolve('tinymce.Env'); - if (li.parentNode === editor.getBody()) { - return; + var DOM$2 = global$6.DOM; + var createNewTextBlock = function (editor, contentNode, blockName) { + var node, textBlock; + var fragment = DOM$2.createFragment(); + var hasContentNode; + var blockElements = editor.schema.getBlockElements(); + if (editor.settings.forced_root_block) { + blockName = blockName || editor.settings.forced_root_block; + } + if (blockName) { + textBlock = DOM$2.create(blockName); + if (textBlock.tagName === editor.settings.forced_root_block) { + DOM$2.setAttribs(textBlock, editor.settings.forced_root_block_attrs); + } + if (!$_fmlqy7fsjfuw8plr.isBlock(contentNode.firstChild, blockElements)) { + fragment.appendChild(textBlock); + } + } + if (contentNode) { + while (node = contentNode.firstChild) { + var nodeName = node.nodeName; + if (!hasContentNode && (nodeName !== 'SPAN' || node.getAttribute('data-mce-type') !== 'bookmark')) { + hasContentNode = true; } - - for (node = li; node && node !== root; node = node.parentNode) { - if (NodeType.isListNode(node)) { - rootList = node; + if ($_fmlqy7fsjfuw8plr.isBlock(node, blockElements)) { + fragment.appendChild(node); + textBlock = null; + } else { + if (blockName) { + if (!textBlock) { + textBlock = DOM$2.create(blockName); + fragment.appendChild(textBlock); + } + textBlock.appendChild(node); + } else { + fragment.appendChild(node); } } - - SplitList.splitList(editor, rootList, li); - NormalizeLists.normalizeLists(editor.dom, rootList.parentNode); + } + } + if (!editor.settings.forced_root_block) { + fragment.appendChild(DOM$2.create('br')); + } else { + if (!hasContentNode && (!global$8.ie || global$8.ie > 10)) { + textBlock.appendChild(DOM$2.create('br', { 'data-mce-bogus': '1' })); + } + } + return fragment; + }; + var $_3c0i4zfxjfuw8pm1 = { createNewTextBlock: createNewTextBlock }; + + var DOM$3 = global$6.DOM; + var splitList = function (editor, ul, li, newBlock) { + var tmpRng, fragment, bookmarks, node; + var removeAndKeepBookmarks = function (targetNode) { + global$5.each(bookmarks, function (node) { + targetNode.parentNode.insertBefore(node, li.parentNode); }); - - editor.selection.setRng(Bookmark.resolveBookmark(bookmark)); - }; - - var isValidLists = function (list1, list2) { - return list1 && list2 && NodeType.isListNode(list1) && list1.nodeName === list2.nodeName; - }; - - var hasSameListStyle = function (dom, list1, list2) { - var targetStyle = dom.getStyle(list1, 'list-style-type', true); - var style = dom.getStyle(list2, 'list-style-type', true); - return targetStyle === style; - }; - - var hasSameClasses = function (elm1, elm2) { - return elm1.className === elm2.className; - }; - - var shouldMerge = function (dom, list1, list2) { - return isValidLists(list1, list2) && hasSameListStyle(dom, list1, list2) && hasSameClasses(list1, list2); - }; - - var mergeWithAdjacentLists = function (dom, listBlock) { - var sibling, node; - - sibling = listBlock.nextSibling; - if (shouldMerge(dom, listBlock, sibling)) { - while ((node = sibling.firstChild)) { - listBlock.appendChild(node); - } - - dom.remove(sibling); + DOM$3.remove(targetNode); + }; + bookmarks = DOM$3.select('span[data-mce-type="bookmark"]', ul); + newBlock = newBlock || $_3c0i4zfxjfuw8pm1.createNewTextBlock(editor, li); + tmpRng = DOM$3.createRng(); + tmpRng.setStartAfter(li); + tmpRng.setEndAfter(ul); + fragment = tmpRng.extractContents(); + for (node = fragment.firstChild; node; node = node.firstChild) { + if (node.nodeName === 'LI' && editor.dom.isEmpty(node)) { + DOM$3.remove(node); + break; } + } + if (!editor.dom.isEmpty(fragment)) { + DOM$3.insertAfter(fragment, ul); + } + DOM$3.insertAfter(newBlock, ul); + if ($_fmlqy7fsjfuw8plr.isEmpty(editor.dom, li.parentNode)) { + removeAndKeepBookmarks(li.parentNode); + } + DOM$3.remove(li); + if ($_fmlqy7fsjfuw8plr.isEmpty(editor.dom, ul)) { + DOM$3.remove(ul); + } + }; + var $_dbkw03fwjfuw8plz = { splitList: splitList }; - sibling = listBlock.previousSibling; - if (shouldMerge(dom, listBlock, sibling)) { - while ((node = sibling.lastChild)) { - listBlock.insertBefore(node, listBlock.firstChild); - } - - dom.remove(sibling); + var DOM$4 = global$6.DOM; + var removeEmptyLi = function (dom, li) { + if ($_fmlqy7fsjfuw8plr.isEmpty(dom, li)) { + DOM$4.remove(li); + } + }; + var outdent = function (editor, li) { + var ul = li.parentNode; + var ulParent, newBlock; + if (ul) { + ulParent = ul.parentNode; + } else { + removeEmptyLi(editor.dom, li); + return true; + } + if (ul === editor.getBody()) { + return true; + } + if (li.nodeName === 'DD') { + DOM$4.rename(li, 'DT'); + return true; + } + if ($_fmlqy7fsjfuw8plr.isFirstChild(li) && $_fmlqy7fsjfuw8plr.isLastChild(li)) { + if (ulParent.nodeName === 'LI') { + DOM$4.insertAfter(li, ulParent); + removeEmptyLi(editor.dom, ulParent); + DOM$4.remove(ul); + } else if ($_fmlqy7fsjfuw8plr.isListNode(ulParent)) { + DOM$4.remove(ul, true); + } else { + ulParent.insertBefore($_3c0i4zfxjfuw8pm1.createNewTextBlock(editor, li), ul); + DOM$4.remove(ul); } - }; - - var updateList = function (dom, list, listName, detail) { - if (list.nodeName !== listName) { - var newList = dom.rename(list, listName); - updateListWithDetails(dom, newList, detail); + return true; + } else if ($_fmlqy7fsjfuw8plr.isFirstChild(li)) { + if (ulParent.nodeName === 'LI') { + DOM$4.insertAfter(li, ulParent); + li.appendChild(ul); + removeEmptyLi(editor.dom, ulParent); + } else if ($_fmlqy7fsjfuw8plr.isListNode(ulParent)) { + ulParent.insertBefore(li, ul); } else { - updateListWithDetails(dom, list, detail); + ulParent.insertBefore($_3c0i4zfxjfuw8pm1.createNewTextBlock(editor, li), ul); + DOM$4.remove(li); } - }; - - var toggleMultipleLists = function (editor, parentList, lists, listName, detail) { - if (parentList.nodeName === listName && !hasListStyleDetail(detail)) { - removeList(editor, listName); + return true; + } else if ($_fmlqy7fsjfuw8plr.isLastChild(li)) { + if (ulParent.nodeName === 'LI') { + DOM$4.insertAfter(li, ulParent); + } else if ($_fmlqy7fsjfuw8plr.isListNode(ulParent)) { + DOM$4.insertAfter(li, ul); } else { - var bookmark = Bookmark.createBookmark(editor.selection.getRng(true)); - - Tools.each([parentList].concat(lists), function (elm) { - updateList(editor.dom, elm, listName, detail); - }); - - editor.selection.setRng(Bookmark.resolveBookmark(bookmark)); + DOM$4.insertAfter($_3c0i4zfxjfuw8pm1.createNewTextBlock(editor, li), ul); + DOM$4.remove(li); } - }; - - var hasListStyleDetail = function (detail) { - return 'list-style-type' in detail; - }; - - var toggleSingleList = function (editor, parentList, listName, detail) { - if (parentList === editor.getBody()) { - return; + return true; + } + if (ulParent.nodeName === 'LI') { + ul = ulParent; + newBlock = $_3c0i4zfxjfuw8pm1.createNewTextBlock(editor, li, 'LI'); + } else if ($_fmlqy7fsjfuw8plr.isListNode(ulParent)) { + newBlock = $_3c0i4zfxjfuw8pm1.createNewTextBlock(editor, li, 'LI'); + } else { + newBlock = $_3c0i4zfxjfuw8pm1.createNewTextBlock(editor, li); + } + $_dbkw03fwjfuw8plz.splitList(editor, ul, li, newBlock); + $_7p90zmftjfuw8plu.normalizeLists(editor.dom, ul.parentNode); + return true; + }; + var outdentSelection = function (editor) { + var listElements = $_2bncsnfujfuw8plw.getSelectedListItems(editor); + if (listElements.length) { + var bookmark = $_3byghwfqjfuw8pln.createBookmark(editor.selection.getRng()); + var i = void 0, y = void 0; + var root = $_2bncsnfujfuw8plw.getClosestListRootElm(editor, editor.selection.getStart(true)); + i = listElements.length; + while (i--) { + var node = listElements[i].parentNode; + while (node && node !== root) { + y = listElements.length; + while (y--) { + if (listElements[y] === node) { + listElements.splice(i, 1); + break; + } + } + node = node.parentNode; + } } - - if (parentList) { - if (parentList.nodeName === listName && !hasListStyleDetail(detail)) { - removeList(editor, listName); - } else { - var bookmark = Bookmark.createBookmark(editor.selection.getRng(true)); - updateListWithDetails(editor.dom, parentList, detail); - mergeWithAdjacentLists(editor.dom, editor.dom.rename(parentList, listName)); - editor.selection.setRng(Bookmark.resolveBookmark(bookmark)); + for (i = 0; i < listElements.length; i++) { + if (!outdent(editor, listElements[i]) && i === 0) { + break; } - } else { - applyList(editor, listName, detail); } - }; - - var toggleList = function (editor, listName, detail) { - var parentList = Selection.getParentList(editor); - var selectedSubLists = Selection.getSelectedSubLists(editor); - - detail = detail ? detail : {}; + editor.selection.setRng($_3byghwfqjfuw8pln.resolveBookmark(bookmark)); + editor.nodeChanged(); + return true; + } + }; + var $_b067pwfojfuw8plj = { + outdent: outdent, + outdentSelection: outdentSelection + }; - if (parentList && selectedSubLists.length > 0) { - toggleMultipleLists(editor, parentList, selectedSubLists, listName, detail); - } else { - toggleSingleList(editor, parentList, listName, detail); + var updateListStyle = function (dom, el, detail) { + var type = detail['list-style-type'] ? detail['list-style-type'] : null; + dom.setStyle(el, 'list-style-type', type); + }; + var setAttribs = function (elm, attrs) { + global$5.each(attrs, function (value, key) { + elm.setAttribute(key, value); + }); + }; + var updateListAttrs = function (dom, el, detail) { + setAttribs(el, detail['list-attributes']); + global$5.each(dom.select('li', el), function (li) { + setAttribs(li, detail['list-item-attributes']); + }); + }; + var updateListWithDetails = function (dom, el, detail) { + updateListStyle(dom, el, detail); + updateListAttrs(dom, el, detail); + }; + var removeStyles = function (dom, element, styles) { + global$5.each(styles, function (style) { + return dom.setStyle(element, (_a = {}, _a[style] = '', _a)); + var _a; + }); + }; + var getEndPointNode = function (editor, rng, start, root) { + var container, offset; + container = rng[start ? 'startContainer' : 'endContainer']; + offset = rng[start ? 'startOffset' : 'endOffset']; + if (container.nodeType === 1) { + container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container; + } + if (!start && $_fmlqy7fsjfuw8plr.isBr(container.nextSibling)) { + container = container.nextSibling; + } + while (container.parentNode !== root) { + if ($_fmlqy7fsjfuw8plr.isTextBlock(editor, container)) { + return container; } - }; - - return { - toggleList: toggleList, - removeList: removeList, - mergeWithAdjacentLists: mergeWithAdjacentLists - }; - } -); - - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.dom.TreeWalker', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.dom.TreeWalker'); - } -); - -/** - * Delete.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.lists.core.Delete', - [ - 'tinymce.core.dom.RangeUtils', - 'tinymce.core.dom.TreeWalker', - 'tinymce.core.util.VK', - 'tinymce.plugins.lists.actions.ToggleList', - 'tinymce.plugins.lists.core.Bookmark', - 'tinymce.plugins.lists.core.NodeType', - 'tinymce.plugins.lists.core.NormalizeLists', - 'tinymce.plugins.lists.core.Range', - 'tinymce.plugins.lists.core.Selection' - ], - function (RangeUtils, TreeWalker, VK, ToggleList, Bookmark, NodeType, NormalizeLists, Range, Selection) { - var findNextCaretContainer = function (editor, rng, isForward) { - var node = rng.startContainer, offset = rng.startOffset; - var nonEmptyBlocks, walker; - - if (node.nodeType === 3 && (isForward ? offset < node.data.length : offset > 0)) { - return node; + if (/^(TD|TH)$/.test(container.parentNode.nodeName)) { + return container; } - - nonEmptyBlocks = editor.schema.getNonEmptyElements(); - if (node.nodeType === 1) { - node = RangeUtils.getNode(node, offset); + container = container.parentNode; + } + return container; + }; + var getSelectedTextBlocks = function (editor, rng, root) { + var textBlocks = [], dom = editor.dom; + var startNode = getEndPointNode(editor, rng, true, root); + var endNode = getEndPointNode(editor, rng, false, root); + var block; + var siblings = []; + for (var node = startNode; node; node = node.nextSibling) { + siblings.push(node); + if (node === endNode) { + break; } - - walker = new TreeWalker(node, editor.getBody()); - - // Delete at <li>|<br></li> then jump over the bogus br - if (isForward) { - if (NodeType.isBogusBr(editor.dom, node)) { - walker.next(); - } + } + global$5.each(siblings, function (node) { + if ($_fmlqy7fsjfuw8plr.isTextBlock(editor, node)) { + textBlocks.push(node); + block = null; + return; } - - while ((node = walker[isForward ? 'next' : 'prev2']())) { - if (node.nodeName === 'LI' && !node.hasChildNodes()) { - return node; - } - - if (nonEmptyBlocks[node.nodeName]) { - return node; + if (dom.isBlock(node) || $_fmlqy7fsjfuw8plr.isBr(node)) { + if ($_fmlqy7fsjfuw8plr.isBr(node)) { + dom.remove(node); } - - if (node.nodeType === 3 && node.data.length > 0) { - return node; + block = null; + return; + } + var nextSibling = node.nextSibling; + if (global$4.isBookmarkNode(node)) { + if ($_fmlqy7fsjfuw8plr.isTextBlock(editor, nextSibling) || !nextSibling && node.parentNode === root) { + block = null; + return; } } - }; - - var hasOnlyOneBlockChild = function (dom, elm) { - var childNodes = elm.childNodes; - return childNodes.length === 1 && !NodeType.isListNode(childNodes[0]) && dom.isBlock(childNodes[0]); - }; - - var unwrapSingleBlockChild = function (dom, elm) { - if (hasOnlyOneBlockChild(dom, elm)) { - dom.remove(elm.firstChild, true); + if (!block) { + block = dom.create('p'); + node.parentNode.insertBefore(block, node); + textBlocks.push(block); } - }; - - var moveChildren = function (dom, fromElm, toElm) { - var node, targetElm; - - targetElm = hasOnlyOneBlockChild(dom, toElm) ? toElm.firstChild : toElm; - unwrapSingleBlockChild(dom, fromElm); - - if (!NodeType.isEmpty(dom, fromElm, true)) { - while ((node = fromElm.firstChild)) { - targetElm.appendChild(node); - } + block.appendChild(node); + }); + return textBlocks; + }; + var hasCompatibleStyle = function (dom, sib, detail) { + var sibStyle = dom.getStyle(sib, 'list-style-type'); + var detailStyle = detail ? detail['list-style-type'] : ''; + detailStyle = detailStyle === null ? '' : detailStyle; + return sibStyle === detailStyle; + }; + var applyList = function (editor, listName, detail) { + if (detail === void 0) { + detail = {}; + } + var rng = editor.selection.getRng(true); + var bookmark; + var listItemName = 'LI'; + var root = $_2bncsnfujfuw8plw.getClosestListRootElm(editor, editor.selection.getStart(true)); + var dom = editor.dom; + if (dom.getContentEditable(editor.selection.getNode()) === 'false') { + return; + } + listName = listName.toUpperCase(); + if (listName === 'DL') { + listItemName = 'DT'; + } + bookmark = $_3byghwfqjfuw8pln.createBookmark(rng); + global$5.each(getSelectedTextBlocks(editor, rng, root), function (block) { + var listBlock, sibling; + sibling = block.previousSibling; + if (sibling && $_fmlqy7fsjfuw8plr.isListNode(sibling) && sibling.nodeName === listName && hasCompatibleStyle(dom, sibling, detail)) { + listBlock = sibling; + block = dom.rename(block, listItemName); + sibling.appendChild(block); + } else { + listBlock = dom.create(listName); + block.parentNode.insertBefore(listBlock, block); + listBlock.appendChild(block); + block = dom.rename(block, listItemName); } - }; - - var mergeLiElements = function (dom, fromElm, toElm) { - var node, listNode, ul = fromElm.parentNode; - - if (!NodeType.isChildOfBody(dom, fromElm) || !NodeType.isChildOfBody(dom, toElm)) { + removeStyles(dom, block, [ + 'margin', + 'margin-right', + 'margin-bottom', + 'margin-left', + 'margin-top', + 'padding', + 'padding-right', + 'padding-bottom', + 'padding-left', + 'padding-top' + ]); + updateListWithDetails(dom, listBlock, detail); + mergeWithAdjacentLists(editor.dom, listBlock); + }); + editor.selection.setRng($_3byghwfqjfuw8pln.resolveBookmark(bookmark)); + }; + var removeList = function (editor) { + var bookmark = $_3byghwfqjfuw8pln.createBookmark(editor.selection.getRng(true)); + var root = $_2bncsnfujfuw8plw.getClosestListRootElm(editor, editor.selection.getStart(true)); + var listItems = $_2bncsnfujfuw8plw.getSelectedListItems(editor); + var emptyListItems = global$5.grep(listItems, function (li) { + return editor.dom.isEmpty(li); + }); + listItems = global$5.grep(listItems, function (li) { + return !editor.dom.isEmpty(li); + }); + global$5.each(emptyListItems, function (li) { + if ($_fmlqy7fsjfuw8plr.isEmpty(editor.dom, li)) { + $_b067pwfojfuw8plj.outdent(editor, li); return; } - - if (NodeType.isListNode(toElm.lastChild)) { - listNode = toElm.lastChild; + }); + global$5.each(listItems, function (li) { + var node, rootList; + if (li.parentNode === editor.getBody()) { + return; } - - if (ul === toElm.lastChild) { - if (NodeType.isBr(ul.previousSibling)) { - dom.remove(ul.previousSibling); + for (node = li; node && node !== root; node = node.parentNode) { + if ($_fmlqy7fsjfuw8plr.isListNode(node)) { + rootList = node; } } - - node = toElm.lastChild; - if (node && NodeType.isBr(node) && fromElm.hasChildNodes()) { - dom.remove(node); + $_dbkw03fwjfuw8plz.splitList(editor, rootList, li); + $_7p90zmftjfuw8plu.normalizeLists(editor.dom, rootList.parentNode); + }); + editor.selection.setRng($_3byghwfqjfuw8pln.resolveBookmark(bookmark)); + }; + var isValidLists = function (list1, list2) { + return list1 && list2 && $_fmlqy7fsjfuw8plr.isListNode(list1) && list1.nodeName === list2.nodeName; + }; + var hasSameListStyle = function (dom, list1, list2) { + var targetStyle = dom.getStyle(list1, 'list-style-type', true); + var style = dom.getStyle(list2, 'list-style-type', true); + return targetStyle === style; + }; + var hasSameClasses = function (elm1, elm2) { + return elm1.className === elm2.className; + }; + var shouldMerge = function (dom, list1, list2) { + return isValidLists(list1, list2) && hasSameListStyle(dom, list1, list2) && hasSameClasses(list1, list2); + }; + var mergeWithAdjacentLists = function (dom, listBlock) { + var sibling, node; + sibling = listBlock.nextSibling; + if (shouldMerge(dom, listBlock, sibling)) { + while (node = sibling.firstChild) { + listBlock.appendChild(node); } - - if (NodeType.isEmpty(dom, toElm, true)) { - dom.$(toElm).empty(); + dom.remove(sibling); + } + sibling = listBlock.previousSibling; + if (shouldMerge(dom, listBlock, sibling)) { + while (node = sibling.lastChild) { + listBlock.insertBefore(node, listBlock.firstChild); } - - moveChildren(dom, fromElm, toElm); - - if (listNode) { - toElm.appendChild(listNode); + dom.remove(sibling); + } + }; + var updateList = function (dom, list, listName, detail) { + if (list.nodeName !== listName) { + var newList = dom.rename(list, listName); + updateListWithDetails(dom, newList, detail); + } else { + updateListWithDetails(dom, list, detail); + } + }; + var toggleMultipleLists = function (editor, parentList, lists, listName, detail) { + if (parentList.nodeName === listName && !hasListStyleDetail(detail)) { + removeList(editor); + } else { + var bookmark = $_3byghwfqjfuw8pln.createBookmark(editor.selection.getRng(true)); + global$5.each([parentList].concat(lists), function (elm) { + updateList(editor.dom, elm, listName, detail); + }); + editor.selection.setRng($_3byghwfqjfuw8pln.resolveBookmark(bookmark)); + } + }; + var hasListStyleDetail = function (detail) { + return 'list-style-type' in detail; + }; + var toggleSingleList = function (editor, parentList, listName, detail) { + if (parentList === editor.getBody()) { + return; + } + if (parentList) { + if (parentList.nodeName === listName && !hasListStyleDetail(detail)) { + removeList(editor); + } else { + var bookmark = $_3byghwfqjfuw8pln.createBookmark(editor.selection.getRng(true)); + updateListWithDetails(editor.dom, parentList, detail); + mergeWithAdjacentLists(editor.dom, editor.dom.rename(parentList, listName)); + editor.selection.setRng($_3byghwfqjfuw8pln.resolveBookmark(bookmark)); } + } else { + applyList(editor, listName, detail); + } + }; + var toggleList = function (editor, listName, detail) { + var parentList = $_2bncsnfujfuw8plw.getParentList(editor); + var selectedSubLists = $_2bncsnfujfuw8plw.getSelectedSubLists(editor); + detail = detail ? detail : {}; + if (parentList && selectedSubLists.length > 0) { + toggleMultipleLists(editor, parentList, selectedSubLists, listName, detail); + } else { + toggleSingleList(editor, parentList, listName, detail); + } + }; + var $_8qbnsrfljfuw8plb = { + toggleList: toggleList, + removeList: removeList, + mergeWithAdjacentLists: mergeWithAdjacentLists + }; - dom.remove(fromElm); - - if (NodeType.isEmpty(dom, ul) && ul !== dom.getRoot()) { - dom.remove(ul); + var findNextCaretContainer = function (editor, rng, isForward, root) { + var node = rng.startContainer; + var offset = rng.startOffset; + var nonEmptyBlocks, walker; + if (node.nodeType === 3 && (isForward ? offset < node.data.length : offset > 0)) { + return node; + } + nonEmptyBlocks = editor.schema.getNonEmptyElements(); + if (node.nodeType === 1) { + node = global$1.getNode(node, offset); + } + walker = new global$2(node, root); + if (isForward) { + if ($_fmlqy7fsjfuw8plr.isBogusBr(editor.dom, node)) { + walker.next(); } - }; - - var mergeIntoEmptyLi = function (editor, fromLi, toLi) { - editor.dom.$(toLi).empty(); - mergeLiElements(editor.dom, fromLi, toLi); - editor.selection.setCursorLocation(toLi); - }; - - var mergeForward = function (editor, rng, fromLi, toLi) { - var dom = editor.dom; - - if (dom.isEmpty(toLi)) { - mergeIntoEmptyLi(editor, fromLi, toLi); - } else { - var bookmark = Bookmark.createBookmark(rng); - mergeLiElements(dom, fromLi, toLi); - editor.selection.setRng(Bookmark.resolveBookmark(bookmark)); + } + while (node = walker[isForward ? 'next' : 'prev2']()) { + if (node.nodeName === 'LI' && !node.hasChildNodes()) { + return node; } - }; - - var mergeBackward = function (editor, rng, fromLi, toLi) { - var bookmark = Bookmark.createBookmark(rng); - mergeLiElements(editor.dom, fromLi, toLi); - editor.selection.setRng(Bookmark.resolveBookmark(bookmark)); - }; - - var backspaceDeleteFromListToListCaret = function (editor, isForward) { - var dom = editor.dom, selection = editor.selection; - var li = dom.getParent(selection.getStart(), 'LI'), ul, rng, otherLi; - - if (li) { - ul = li.parentNode; - if (ul === editor.getBody() && NodeType.isEmpty(dom, ul)) { - return true; - } - - rng = Range.normalizeRange(selection.getRng(true)); - otherLi = dom.getParent(findNextCaretContainer(editor, rng, isForward), 'LI'); - - if (otherLi && otherLi !== li) { - if (isForward) { - mergeForward(editor, rng, otherLi, li); - } else { - mergeBackward(editor, rng, li, otherLi); - } - - return true; - } else if (!otherLi) { - if (!isForward && ToggleList.removeList(editor, ul.nodeName)) { - return true; - } - } + if (nonEmptyBlocks[node.nodeName]) { + return node; } - - return false; - }; - - var removeBlock = function (dom, block) { - var parentBlock = dom.getParent(block.parentNode, dom.isBlock); - - dom.remove(block); - if (parentBlock && dom.isEmpty(parentBlock)) { - dom.remove(parentBlock); + if (node.nodeType === 3 && node.data.length > 0) { + return node; } - }; - - var backspaceDeleteIntoListCaret = function (editor, isForward) { - var dom = editor.dom; - var block = dom.getParent(editor.selection.getStart(), dom.isBlock); - - if (block && dom.isEmpty(block)) { - var rng = Range.normalizeRange(editor.selection.getRng(true)); - var otherLi = dom.getParent(findNextCaretContainer(editor, rng, isForward), 'LI'); - - if (otherLi) { - editor.undoManager.transact(function () { - removeBlock(dom, block); - ToggleList.mergeWithAdjacentLists(dom, otherLi.parentNode); - editor.selection.select(otherLi, true); - editor.selection.collapse(isForward); - }); - + } + }; + var hasOnlyOneBlockChild = function (dom, elm) { + var childNodes = elm.childNodes; + return childNodes.length === 1 && !$_fmlqy7fsjfuw8plr.isListNode(childNodes[0]) && dom.isBlock(childNodes[0]); + }; + var unwrapSingleBlockChild = function (dom, elm) { + if (hasOnlyOneBlockChild(dom, elm)) { + dom.remove(elm.firstChild, true); + } + }; + var moveChildren = function (dom, fromElm, toElm) { + var node, targetElm; + targetElm = hasOnlyOneBlockChild(dom, toElm) ? toElm.firstChild : toElm; + unwrapSingleBlockChild(dom, fromElm); + if (!$_fmlqy7fsjfuw8plr.isEmpty(dom, fromElm, true)) { + while (node = fromElm.firstChild) { + targetElm.appendChild(node); + } + } + }; + var mergeLiElements = function (dom, fromElm, toElm) { + var node, listNode; + var ul = fromElm.parentNode; + if (!$_fmlqy7fsjfuw8plr.isChildOfBody(dom, fromElm) || !$_fmlqy7fsjfuw8plr.isChildOfBody(dom, toElm)) { + return; + } + if ($_fmlqy7fsjfuw8plr.isListNode(toElm.lastChild)) { + listNode = toElm.lastChild; + } + if (ul === toElm.lastChild) { + if ($_fmlqy7fsjfuw8plr.isBr(ul.previousSibling)) { + dom.remove(ul.previousSibling); + } + } + node = toElm.lastChild; + if (node && $_fmlqy7fsjfuw8plr.isBr(node) && fromElm.hasChildNodes()) { + dom.remove(node); + } + if ($_fmlqy7fsjfuw8plr.isEmpty(dom, toElm, true)) { + dom.$(toElm).empty(); + } + moveChildren(dom, fromElm, toElm); + if (listNode) { + toElm.appendChild(listNode); + } + dom.remove(fromElm); + if ($_fmlqy7fsjfuw8plr.isEmpty(dom, ul) && ul !== dom.getRoot()) { + dom.remove(ul); + } + }; + var mergeIntoEmptyLi = function (editor, fromLi, toLi) { + editor.dom.$(toLi).empty(); + mergeLiElements(editor.dom, fromLi, toLi); + editor.selection.setCursorLocation(toLi); + }; + var mergeForward = function (editor, rng, fromLi, toLi) { + var dom = editor.dom; + if (dom.isEmpty(toLi)) { + mergeIntoEmptyLi(editor, fromLi, toLi); + } else { + var bookmark = $_3byghwfqjfuw8pln.createBookmark(rng); + mergeLiElements(dom, fromLi, toLi); + editor.selection.setRng($_3byghwfqjfuw8pln.resolveBookmark(bookmark)); + } + }; + var mergeBackward = function (editor, rng, fromLi, toLi) { + var bookmark = $_3byghwfqjfuw8pln.createBookmark(rng); + mergeLiElements(editor.dom, fromLi, toLi); + var resolvedBookmark = $_3byghwfqjfuw8pln.resolveBookmark(bookmark); + editor.selection.setRng(resolvedBookmark); + }; + var backspaceDeleteFromListToListCaret = function (editor, isForward) { + var dom = editor.dom, selection = editor.selection; + var selectionStartElm = selection.getStart(); + var root = $_2bncsnfujfuw8plw.getClosestListRootElm(editor, selectionStartElm); + var li = dom.getParent(selection.getStart(), 'LI', root); + var ul, rng, otherLi; + if (li) { + ul = li.parentNode; + if (ul === editor.getBody() && $_fmlqy7fsjfuw8plr.isEmpty(dom, ul)) { + return true; + } + rng = $_14fh94frjfuw8plp.normalizeRange(selection.getRng(true)); + otherLi = dom.getParent(findNextCaretContainer(editor, rng, isForward, root), 'LI', root); + if (otherLi && otherLi !== li) { + if (isForward) { + mergeForward(editor, rng, otherLi, li); + } else { + mergeBackward(editor, rng, li, otherLi); + } + return true; + } else if (!otherLi) { + if (!isForward && $_8qbnsrfljfuw8plb.removeList(editor)) { return true; } } - - return false; - }; - - var backspaceDeleteCaret = function (editor, isForward) { - return backspaceDeleteFromListToListCaret(editor, isForward) || backspaceDeleteIntoListCaret(editor, isForward); - }; - - var backspaceDeleteRange = function (editor) { - var startListParent = editor.dom.getParent(editor.selection.getStart(), 'LI,DT,DD'); - - if (startListParent || Selection.getSelectedListItems(editor).length > 0) { + } + return false; + }; + var removeBlock = function (dom, block, root) { + var parentBlock = dom.getParent(block.parentNode, dom.isBlock, root); + dom.remove(block); + if (parentBlock && dom.isEmpty(parentBlock)) { + dom.remove(parentBlock); + } + }; + var backspaceDeleteIntoListCaret = function (editor, isForward) { + var dom = editor.dom; + var selectionStartElm = editor.selection.getStart(); + var root = $_2bncsnfujfuw8plw.getClosestListRootElm(editor, selectionStartElm); + var block = dom.getParent(selectionStartElm, dom.isBlock, root); + if (block && dom.isEmpty(block)) { + var rng = $_14fh94frjfuw8plp.normalizeRange(editor.selection.getRng(true)); + var otherLi_1 = dom.getParent(findNextCaretContainer(editor, rng, isForward, root), 'LI', root); + if (otherLi_1) { editor.undoManager.transact(function () { - editor.execCommand('Delete'); - NormalizeLists.normalizeLists(editor.dom, editor.getBody()); + removeBlock(dom, block, root); + $_8qbnsrfljfuw8plb.mergeWithAdjacentLists(dom, otherLi_1.parentNode); + editor.selection.select(otherLi_1, true); + editor.selection.collapse(isForward); }); - return true; } - - return false; - }; - - var backspaceDelete = function (editor, isForward) { - return editor.selection.isCollapsed() ? backspaceDeleteCaret(editor, isForward) : backspaceDeleteRange(editor); - }; - - var setup = function (editor) { - editor.on('keydown', function (e) { - if (e.keyCode === VK.BACKSPACE) { - if (backspaceDelete(editor, false)) { - e.preventDefault(); - } - } else if (e.keyCode === VK.DELETE) { - if (backspaceDelete(editor, true)) { - e.preventDefault(); - } - } + } + return false; + }; + var backspaceDeleteCaret = function (editor, isForward) { + return backspaceDeleteFromListToListCaret(editor, isForward) || backspaceDeleteIntoListCaret(editor, isForward); + }; + var backspaceDeleteRange = function (editor) { + var selectionStartElm = editor.selection.getStart(); + var root = $_2bncsnfujfuw8plw.getClosestListRootElm(editor, selectionStartElm); + var startListParent = editor.dom.getParent(selectionStartElm, 'LI,DT,DD', root); + if (startListParent || $_2bncsnfujfuw8plw.getSelectedListItems(editor).length > 0) { + editor.undoManager.transact(function () { + editor.execCommand('Delete'); + $_7p90zmftjfuw8plu.normalizeLists(editor.dom, editor.getBody()); }); - }; - - return { - setup: setup, - backspaceDelete: backspaceDelete - }; - } -); - - -/** - * plugin.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.lists.Plugin', - [ - 'tinymce.core.PluginManager', - 'tinymce.core.util.Tools', - 'tinymce.core.util.VK', - 'tinymce.plugins.lists.actions.Indent', - 'tinymce.plugins.lists.actions.Outdent', - 'tinymce.plugins.lists.actions.ToggleList', - 'tinymce.plugins.lists.core.Delete', - 'tinymce.plugins.lists.core.NodeType', - 'tinymce.plugins.lists.core.Selection' - ], - function (PluginManager, Tools, VK, Indent, Outdent, ToggleList, Delete, NodeType, Selection) { - var queryListCommandState = function (editor, listName) { - return function () { - var parentList = editor.dom.getParent(editor.selection.getStart(), 'UL,OL,DL'); - return parentList && parentList.nodeName === listName; - }; - }; - - var setupCommands = function (editor) { - editor.on('BeforeExecCommand', function (e) { - var cmd = e.command.toLowerCase(), isHandled; - - if (cmd === "indent") { - if (Indent.indentSelection(editor)) { - isHandled = true; - } - } else if (cmd === "outdent") { - if (Outdent.outdentSelection(editor)) { - isHandled = true; - } + return true; + } + return false; + }; + var backspaceDelete = function (editor, isForward) { + return editor.selection.isCollapsed() ? backspaceDeleteCaret(editor, isForward) : backspaceDeleteRange(editor); + }; + var setup = function (editor) { + editor.on('keydown', function (e) { + if (e.keyCode === global$3.BACKSPACE) { + if (backspaceDelete(editor, false)) { + e.preventDefault(); } - - if (isHandled) { - editor.fire('ExecCommand', { command: e.command }); + } else if (e.keyCode === global$3.DELETE) { + if (backspaceDelete(editor, true)) { e.preventDefault(); - return true; } - }); - - editor.addCommand('InsertUnorderedList', function (ui, detail) { - ToggleList.toggleList(editor, 'UL', detail); - }); - - editor.addCommand('InsertOrderedList', function (ui, detail) { - ToggleList.toggleList(editor, 'OL', detail); - }); + } + }); + }; + var $_6qu3vpfhjfuw8pl2 = { + setup: setup, + backspaceDelete: backspaceDelete + }; - editor.addCommand('InsertDefinitionList', function (ui, detail) { - ToggleList.toggleList(editor, 'DL', detail); - }); + var get = function (editor) { + return { + backspaceDelete: function (isForward) { + $_6qu3vpfhjfuw8pl2.backspaceDelete(editor, isForward); + } }; + }; + var $_bgmttlfgjfuw8pl0 = { get: get }; + + var DOM$5 = global$6.DOM; + var mergeLists = function (from, to) { + var node; + if ($_fmlqy7fsjfuw8plr.isListNode(from)) { + while (node = from.firstChild) { + to.appendChild(node); + } + DOM$5.remove(from); + } + }; + var indent = function (li) { + var sibling, newList, listStyle; + if (li.nodeName === 'DT') { + DOM$5.rename(li, 'DD'); + return true; + } + sibling = li.previousSibling; + if (sibling && $_fmlqy7fsjfuw8plr.isListNode(sibling)) { + sibling.appendChild(li); + return true; + } + if (sibling && sibling.nodeName === 'LI' && $_fmlqy7fsjfuw8plr.isListNode(sibling.lastChild)) { + sibling.lastChild.appendChild(li); + mergeLists(li.lastChild, sibling.lastChild); + return true; + } + sibling = li.nextSibling; + if (sibling && $_fmlqy7fsjfuw8plr.isListNode(sibling)) { + sibling.insertBefore(li, sibling.firstChild); + return true; + } + sibling = li.previousSibling; + if (sibling && sibling.nodeName === 'LI') { + newList = DOM$5.create(li.parentNode.nodeName); + listStyle = DOM$5.getStyle(li.parentNode, 'listStyleType'); + if (listStyle) { + DOM$5.setStyle(newList, 'listStyleType', listStyle); + } + sibling.appendChild(newList); + newList.appendChild(li); + mergeLists(li.lastChild, newList); + return true; + } + return false; + }; + var indentSelection = function (editor) { + var listElements = $_2bncsnfujfuw8plw.getSelectedListItems(editor); + if (listElements.length) { + var bookmark = $_3byghwfqjfuw8pln.createBookmark(editor.selection.getRng(true)); + for (var i = 0; i < listElements.length; i++) { + if (!indent(listElements[i]) && i === 0) { + break; + } + } + editor.selection.setRng($_3byghwfqjfuw8pln.resolveBookmark(bookmark)); + editor.nodeChanged(); + return true; + } + }; + var $_4zf6mug0jfuw8pm7 = { indentSelection: indentSelection }; - var setupStateHandlers = function (editor) { - editor.addQueryStateHandler('InsertUnorderedList', queryListCommandState(editor, 'UL')); - editor.addQueryStateHandler('InsertOrderedList', queryListCommandState(editor, 'OL')); - editor.addQueryStateHandler('InsertDefinitionList', queryListCommandState(editor, 'DL')); + var queryListCommandState = function (editor, listName) { + return function () { + var parentList = editor.dom.getParent(editor.selection.getStart(), 'UL,OL,DL'); + return parentList && parentList.nodeName === listName; }; - - var setupTabKey = function (editor) { - editor.on('keydown', function (e) { - // Check for tab but not ctrl/cmd+tab since it switches browser tabs - if (e.keyCode !== 9 || VK.metaKeyPressed(e)) { - return; + }; + var register = function (editor) { + editor.on('BeforeExecCommand', function (e) { + var cmd = e.command.toLowerCase(); + var isHandled; + if (cmd === 'indent') { + if ($_4zf6mug0jfuw8pm7.indentSelection(editor)) { + isHandled = true; } - - if (editor.dom.getParent(editor.selection.getStart(), 'LI,DT,DD')) { - e.preventDefault(); - - if (e.shiftKey) { - Outdent.outdentSelection(editor); - } else { - Indent.indentSelection(editor); - } + } else if (cmd === 'outdent') { + if ($_b067pwfojfuw8plj.outdentSelection(editor)) { + isHandled = true; } - }); - }; - - var setupUi = function (editor) { - var listState = function (listName) { - return function () { - var self = this; - - editor.on('NodeChange', function (e) { - var lists = Tools.grep(e.parents, NodeType.isListNode); - self.active(lists.length > 0 && lists[0].nodeName === listName); - }); - }; - }; - - var hasPlugin = function (editor, plugin) { - var plugins = editor.settings.plugins ? editor.settings.plugins : ''; - return Tools.inArray(plugins.split(/[ ,]/), plugin) !== -1; - }; - - if (!hasPlugin(editor, 'advlist')) { - editor.addButton('numlist', { - title: 'Numbered list', - cmd: 'InsertOrderedList', - onPostRender: listState('OL') - }); - - editor.addButton('bullist', { - title: 'Bullet list', - cmd: 'InsertUnorderedList', - onPostRender: listState('UL') - }); } + if (isHandled) { + editor.fire('ExecCommand', { command: e.command }); + e.preventDefault(); + return true; + } + }); + editor.addCommand('InsertUnorderedList', function (ui, detail) { + $_8qbnsrfljfuw8plb.toggleList(editor, 'UL', detail); + }); + editor.addCommand('InsertOrderedList', function (ui, detail) { + $_8qbnsrfljfuw8plb.toggleList(editor, 'OL', detail); + }); + editor.addCommand('InsertDefinitionList', function (ui, detail) { + $_8qbnsrfljfuw8plb.toggleList(editor, 'DL', detail); + }); + editor.addQueryStateHandler('InsertUnorderedList', queryListCommandState(editor, 'UL')); + editor.addQueryStateHandler('InsertOrderedList', queryListCommandState(editor, 'OL')); + editor.addQueryStateHandler('InsertDefinitionList', queryListCommandState(editor, 'DL')); + }; + var $_ci56e3fzjfuw8pm5 = { register: register }; - editor.addButton('indent', { - icon: 'indent', - title: 'Increase indent', - cmd: 'Indent', - onPostRender: function (e) { - var ctrl = e.control; + var shouldIndentOnTab = function (editor) { + return editor.getParam('lists_indent_on_tab', true); + }; + var $_e85xmvg2jfuw8pmc = { shouldIndentOnTab: shouldIndentOnTab }; - editor.on('nodechange', function () { - var listItemBlocks = Selection.getSelectedListItems(editor); - var disable = listItemBlocks.length > 0 && NodeType.isFirstChild(listItemBlocks[0]); - ctrl.disabled(disable); - }); + var setupTabKey = function (editor) { + editor.on('keydown', function (e) { + if (e.keyCode !== global$3.TAB || global$3.metaKeyPressed(e)) { + return; + } + if (editor.dom.getParent(editor.selection.getStart(), 'LI,DT,DD')) { + e.preventDefault(); + if (e.shiftKey) { + $_b067pwfojfuw8plj.outdentSelection(editor); + } else { + $_4zf6mug0jfuw8pm7.indentSelection(editor); } + } + }); + }; + var setup$1 = function (editor) { + if ($_e85xmvg2jfuw8pmc.shouldIndentOnTab(editor)) { + setupTabKey(editor); + } + $_6qu3vpfhjfuw8pl2.setup(editor); + }; + var $_1iz32kg1jfuw8pma = { setup: setup$1 }; + + var findIndex = function (list, predicate) { + for (var index = 0; index < list.length; index++) { + var element = list[index]; + if (predicate(element)) { + return index; + } + } + return -1; + }; + var listState = function (editor, listName) { + return function (e) { + var ctrl = e.control; + editor.on('NodeChange', function (e) { + var tableCellIndex = findIndex(e.parents, $_fmlqy7fsjfuw8plr.isTableCellNode); + var parents = tableCellIndex !== -1 ? e.parents.slice(0, tableCellIndex) : e.parents; + var lists = global$5.grep(parents, $_fmlqy7fsjfuw8plr.isListNode); + ctrl.active(lists.length > 0 && lists[0].nodeName === listName); }); }; - - PluginManager.add('lists', function (editor) { - setupUi(editor); - Delete.setup(editor); - - editor.on('init', function () { - setupCommands(editor); - setupStateHandlers(editor); - if (editor.getParam('lists_indent_on_tab', true)) { - setupTabKey(editor); - } + }; + var indentPostRender = function (editor) { + return function (e) { + var ctrl = e.control; + editor.on('nodechange', function () { + var listItemBlocks = $_2bncsnfujfuw8plw.getSelectedListItems(editor); + var disable = listItemBlocks.length > 0 && $_fmlqy7fsjfuw8plr.isFirstChild(listItemBlocks[0]); + ctrl.disabled(disable); }); - - return { - backspaceDelete: function (isForward) { - Delete.backspaceDelete(editor, isForward); - } - }; + }; + }; + var register$1 = function (editor) { + var hasPlugin = function (editor, plugin) { + var plugins = editor.settings.plugins ? editor.settings.plugins : ''; + return global$5.inArray(plugins.split(/[ ,]/), plugin) !== -1; + }; + if (!hasPlugin(editor, 'advlist')) { + editor.addButton('numlist', { + active: false, + title: 'Numbered list', + cmd: 'InsertOrderedList', + onPostRender: listState(editor, 'OL') + }); + editor.addButton('bullist', { + active: false, + title: 'Bullet list', + cmd: 'InsertUnorderedList', + onPostRender: listState(editor, 'UL') + }); + } + editor.addButton('indent', { + icon: 'indent', + title: 'Increase indent', + cmd: 'Indent', + onPostRender: indentPostRender(editor) }); - - return function () { }; + }; + var $_fizi9xg3jfuw8pmd = { register: register$1 }; + + global.add('lists', function (editor) { + $_1iz32kg1jfuw8pma.setup(editor); + $_fizi9xg3jfuw8pmd.register(editor); + $_ci56e3fzjfuw8pm5.register(editor); + return $_bgmttlfgjfuw8pl0.get(editor); + }); + function Plugin () { } -); + return Plugin; -dem('tinymce.plugins.lists.Plugin')(); +}()); })(); diff --git a/wp-includes/js/tinymce/plugins/lists/plugin.min.js b/wp-includes/js/tinymce/plugins/lists/plugin.min.js index b25d33bf1..68a1bae4a 100644 --- a/wp-includes/js/tinymce/plugins/lists/plugin.min.js +++ b/wp-includes/js/tinymce/plugins/lists/plugin.min.js @@ -1 +1 @@ -!function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("a",tinymce.util.Tools.resolve),g("1",["a"],function(a){return a("tinymce.PluginManager")}),g("2",["a"],function(a){return a("tinymce.util.Tools")}),g("3",["a"],function(a){return a("tinymce.util.VK")}),g("b",["a"],function(a){return a("tinymce.dom.DOMUtils")}),g("8",[],function(){var a=function(a){return a&&3===a.nodeType},b=function(a){return a&&/^(OL|UL|DL)$/.test(a.nodeName)},c=function(a){return a&&/^(LI|DT|DD)$/.test(a.nodeName)},d=function(a){return a&&"BR"===a.nodeName},e=function(a){return a.parentNode.firstChild===a},f=function(a){return a.parentNode.lastChild===a},g=function(a,b){return b&&!!a.schema.getTextBlockElements()[b.nodeName]},h=function(a,b){return a&&a.nodeName in b},i=function(a,b){return!!d(b)&&!(!a.isBlock(b.nextSibling)||d(b.previousSibling))},j=function(a,b,c){var d=a.isEmpty(b);return!(c&&a.select("span[data-mce-type=bookmark]",b).length>0)&&d},k=function(a,b){return a.isChildOf(b,a.getRoot())};return{isTextNode:a,isListNode:b,isListItemNode:c,isBr:d,isFirstChild:e,isLastChild:f,isTextBlock:g,isBlock:h,isBogusBr:i,isEmpty:j,isChildOfBody:k}}),g("i",["a"],function(a){return a("tinymce.dom.RangeUtils")}),g("k",["i","8"],function(a,b){var c=function(c,d){var e=a.getNode(c,d);if(b.isListItemNode(c)&&b.isTextNode(e)){var f=d>=c.childNodes.length?e.data.length:0;return{container:e,offset:f}}return{container:c,offset:d}},d=function(a){var b=a.cloneRange(),d=c(a.startContainer,a.startOffset);b.setStart(d.container,d.offset);var e=c(a.endContainer,a.endOffset);return b.setEnd(e.container,e.offset),b};return{getNormalizedEndPoint:c,normalizeRange:d}}),g("c",["b","8","k"],function(a,b,c){var d=a.DOM,e=function(a){var b={},c=function(c){var e,f,g;f=a[c?"startContainer":"endContainer"],g=a[c?"startOffset":"endOffset"],1===f.nodeType&&(e=d.create("span",{"data-mce-type":"bookmark"}),f.hasChildNodes()?(g=Math.min(g,f.childNodes.length-1),c?f.insertBefore(e,f.childNodes[g]):d.insertAfter(e,f.childNodes[g])):f.appendChild(e),f=e,g=0),b[c?"startContainer":"endContainer"]=f,b[c?"startOffset":"endOffset"]=g};return c(!0),a.collapsed||c(),b},f=function(a){function b(b){var c,e,f,g=function(a){for(var b=a.parentNode.firstChild,c=0;b;){if(b===a)return c;1===b.nodeType&&"bookmark"===b.getAttribute("data-mce-type")||c++,b=b.nextSibling}return-1};c=f=a[b?"startContainer":"endContainer"],e=a[b?"startOffset":"endOffset"],c&&(1===c.nodeType&&(e=g(c),c=c.parentNode,d.remove(f)),a[b?"startContainer":"endContainer"]=c,a[b?"startOffset":"endOffset"]=e)}b(!0),b();var e=d.createRng();return e.setStart(a.startContainer,a.startOffset),a.endContainer&&e.setEnd(a.endContainer,a.endOffset),c.normalizeRange(e)};return{createBookmark:e,resolveBookmark:f}}),g("d",["a"],function(a){return a("tinymce.dom.DomQuery")}),g("9",["d","2","8"],function(a,b,c){var d=function(a){return a.dom.getParent(a.selection.getStart(!0),"OL,UL,DL")},e=function(a){var e=d(a);return b.grep(a.selection.getSelectedBlocks(),function(a){return c.isListNode(a)&&e!==a})},f=function(c,d){var e=b.map(d,function(a){var b=c.dom.getParent(a,"li,dd,dt",c.getBody());return b?b:a});return a.unique(e)},g=function(a){var d=a.selection.getSelectedBlocks();return b.grep(f(a,d),function(a){return c.isListItemNode(a)})};return{getParentList:d,getSelectedSubLists:e,getSelectedListItems:g}}),g("4",["b","c","8","9"],function(a,b,c,d){var e=a.DOM,f=function(a,b){var d;if(c.isListNode(a)){for(;d=a.firstChild;)b.appendChild(d);e.remove(a)}},g=function(a){var b,d,g;return"DT"===a.nodeName?(e.rename(a,"DD"),!0):(b=a.previousSibling,b&&c.isListNode(b)?(b.appendChild(a),!0):b&&"LI"===b.nodeName&&c.isListNode(b.lastChild)?(b.lastChild.appendChild(a),f(a.lastChild,b.lastChild),!0):(b=a.nextSibling,b&&c.isListNode(b)?(b.insertBefore(a,b.firstChild),!0):(b=a.previousSibling,!(!b||"LI"!==b.nodeName)&&(d=e.create(a.parentNode.nodeName),g=e.getStyle(a.parentNode,"listStyleType"),g&&e.setStyle(d,"listStyleType",g),b.appendChild(d),d.appendChild(a),f(a.lastChild,d),!0))))},h=function(a){var c=d.getSelectedListItems(a);if(c.length){for(var e=b.createBookmark(a.selection.getRng(!0)),f=0;f<c.length&&(g(c[f])||0!==f);f++);return a.selection.setRng(b.resolveBookmark(e)),a.nodeChanged(),!0}};return{indentSelection:h}}),g("e",["b","2","8"],function(a,b,c){var d=a.DOM,e=function(a,b){var e,f=b.parentNode;"LI"===f.nodeName&&f.firstChild===b&&(e=f.previousSibling,e&&"LI"===e.nodeName?(e.appendChild(b),c.isEmpty(a,f)&&d.remove(f)):d.setStyle(f,"listStyleType","none")),c.isListNode(f)&&(e=f.previousSibling,e&&"LI"===e.nodeName&&e.appendChild(b))},f=function(a,c){b.each(b.grep(a.select("ol,ul",c)),function(b){e(a,b)})};return{normalizeList:e,normalizeLists:f}}),g("l",["a"],function(a){return a("tinymce.Env")}),g("g",["b","l","8"],function(a,b,c){var d=a.DOM,e=function(a,e,f){var g,h,i,j=d.createFragment(),k=a.schema.getBlockElements();if(a.settings.forced_root_block&&(f=f||a.settings.forced_root_block),f&&(h=d.create(f),h.tagName===a.settings.forced_root_block&&d.setAttribs(h,a.settings.forced_root_block_attrs),c.isBlock(e.firstChild,k)||j.appendChild(h)),e)for(;g=e.firstChild;){var l=g.nodeName;i||"SPAN"===l&&"bookmark"===g.getAttribute("data-mce-type")||(i=!0),c.isBlock(g,k)?(j.appendChild(g),h=null):f?(h||(h=d.create(f),j.appendChild(h)),h.appendChild(g)):j.appendChild(g)}return a.settings.forced_root_block?i||b.ie&&!(b.ie>10)||h.appendChild(d.create("br",{"data-mce-bogus":"1"})):j.appendChild(d.create("br")),j};return{createNewTextBlock:e}}),g("f",["b","8","g","2"],function(a,b,c,d){var e=a.DOM,f=function(a,f,g,h){var i,j,k,l,m=function(a){d.each(k,function(b){a.parentNode.insertBefore(b,g.parentNode)}),e.remove(a)};for(k=e.select('span[data-mce-type="bookmark"]',f),h=h||c.createNewTextBlock(a,g),i=e.createRng(),i.setStartAfter(g),i.setEndAfter(f),j=i.extractContents(),l=j.firstChild;l;l=l.firstChild)if("LI"===l.nodeName&&a.dom.isEmpty(l)){e.remove(l);break}a.dom.isEmpty(j)||e.insertAfter(j,f),e.insertAfter(h,f),b.isEmpty(a.dom,g.parentNode)&&m(g.parentNode),e.remove(g),b.isEmpty(a.dom,f)&&e.remove(f)};return{splitList:f}}),g("5",["b","c","8","e","9","f","g"],function(a,b,c,d,e,f,g){var h=a.DOM,i=function(a,b){c.isEmpty(a,b)&&h.remove(b)},j=function(a,b){var e,j=b.parentNode,k=j.parentNode;return j===a.getBody()||("DD"===b.nodeName?(h.rename(b,"DT"),!0):c.isFirstChild(b)&&c.isLastChild(b)?("LI"===k.nodeName?(h.insertAfter(b,k),i(a.dom,k),h.remove(j)):c.isListNode(k)?h.remove(j,!0):(k.insertBefore(g.createNewTextBlock(a,b),j),h.remove(j)),!0):c.isFirstChild(b)?("LI"===k.nodeName?(h.insertAfter(b,k),b.appendChild(j),i(a.dom,k)):c.isListNode(k)?k.insertBefore(b,j):(k.insertBefore(g.createNewTextBlock(a,b),j),h.remove(b)),!0):c.isLastChild(b)?("LI"===k.nodeName?h.insertAfter(b,k):c.isListNode(k)?h.insertAfter(b,j):(h.insertAfter(g.createNewTextBlock(a,b),j),h.remove(b)),!0):("LI"===k.nodeName?(j=k,e=g.createNewTextBlock(a,b,"LI")):e=c.isListNode(k)?g.createNewTextBlock(a,b,"LI"):g.createNewTextBlock(a,b),f.splitList(a,j,b,e),d.normalizeLists(a.dom,j.parentNode),!0))},k=function(a){var c=e.getSelectedListItems(a);if(c.length){var d,f,g=b.createBookmark(a.selection.getRng(!0)),h=a.getBody();for(d=c.length;d--;)for(var i=c[d].parentNode;i&&i!==h;){for(f=c.length;f--;)if(c[f]===i){c.splice(d,1);break}i=i.parentNode}for(d=0;d<c.length&&(j(a,c[d])||0!==d);d++);return a.selection.setRng(b.resolveBookmark(g)),a.nodeChanged(),!0}};return{outdent:j,outdentSelection:k}}),g("h",["a"],function(a){return a("tinymce.dom.BookmarkManager")}),g("6",["h","2","5","c","8","e","9","f"],function(a,b,c,d,e,f,g,h){var i=function(a,b,c){var d=c["list-style-type"]?c["list-style-type"]:null;a.setStyle(b,"list-style-type",d)},j=function(a,c){b.each(c,function(b,c){a.setAttribute(c,b)})},k=function(a,c,d){j(c,d["list-attributes"]),b.each(a.select("li",c),function(a){j(a,d["list-item-attributes"])})},l=function(a,b,c){i(a,b,c),k(a,b,c)},m=function(a,b,c){var d,f,g=a.getBody();for(d=b[c?"startContainer":"endContainer"],f=b[c?"startOffset":"endOffset"],1===d.nodeType&&(d=d.childNodes[Math.min(f,d.childNodes.length-1)]||d);d.parentNode!==g;){if(e.isTextBlock(a,d))return d;if(/^(TD|TH)$/.test(d.parentNode.nodeName))return d;d=d.parentNode}return d},n=function(c,d){for(var f,g=[],h=c.getBody(),i=c.dom,j=m(c,d,!0),k=m(c,d,!1),l=[],n=j;n&&(l.push(n),n!==k);n=n.nextSibling);return b.each(l,function(b){if(e.isTextBlock(c,b))return g.push(b),void(f=null);if(i.isBlock(b)||e.isBr(b))return e.isBr(b)&&i.remove(b),void(f=null);var d=b.nextSibling;return a.isBookmarkNode(b)&&(e.isTextBlock(c,d)||!d&&b.parentNode===h)?void(f=null):(f||(f=i.create("p"),b.parentNode.insertBefore(f,b),g.push(f)),void f.appendChild(b))}),g},o=function(a,c,f){var g,h=a.selection.getRng(!0),i="LI",j=a.dom;f=f?f:{},"false"!==j.getContentEditable(a.selection.getNode())&&(c=c.toUpperCase(),"DL"===c&&(i="DT"),g=d.createBookmark(h),b.each(n(a,h),function(b){var d,g,h=function(a){var b=j.getStyle(a,"list-style-type"),c=f?f["list-style-type"]:"";return c=null===c?"":c,b===c};g=b.previousSibling,g&&e.isListNode(g)&&g.nodeName===c&&h(g)?(d=g,b=j.rename(b,i),g.appendChild(b)):(d=j.create(c),b.parentNode.insertBefore(d,b),d.appendChild(b),b=j.rename(b,i)),l(j,d,f),u(a.dom,d)}),a.selection.setRng(d.resolveBookmark(g)))},p=function(a){var i=d.createBookmark(a.selection.getRng(!0)),j=a.getBody(),k=g.getSelectedListItems(a),l=b.grep(k,function(b){return a.dom.isEmpty(b)});k=b.grep(k,function(b){return!a.dom.isEmpty(b)}),b.each(l,function(b){if(e.isEmpty(a.dom,b))return void c.outdent(a,b)}),b.each(k,function(b){var c,d;if(b.parentNode!==a.getBody()){for(c=b;c&&c!==j;c=c.parentNode)e.isListNode(c)&&(d=c);h.splitList(a,d,b),f.normalizeLists(a.dom,d.parentNode)}}),a.selection.setRng(d.resolveBookmark(i))},q=function(a,b){return a&&b&&e.isListNode(a)&&a.nodeName===b.nodeName},r=function(a,b,c){var d=a.getStyle(b,"list-style-type",!0),e=a.getStyle(c,"list-style-type",!0);return d===e},s=function(a,b){return a.className===b.className},t=function(a,b,c){return q(b,c)&&r(a,b,c)&&s(b,c)},u=function(a,b){var c,d;if(c=b.nextSibling,t(a,b,c)){for(;d=c.firstChild;)b.appendChild(d);a.remove(c)}if(c=b.previousSibling,t(a,b,c)){for(;d=c.lastChild;)b.insertBefore(d,b.firstChild);a.remove(c)}},v=function(a,b,c,d){if(b.nodeName!==c){var e=a.rename(b,c);l(a,e,d)}else l(a,b,d)},w=function(a,c,e,f,g){if(c.nodeName!==f||x(g)){var h=d.createBookmark(a.selection.getRng(!0));b.each([c].concat(e),function(b){v(a.dom,b,f,g)}),a.selection.setRng(d.resolveBookmark(h))}else p(a,f)},x=function(a){return"list-style-type"in a},y=function(a,b,c,e){if(b!==a.getBody())if(b)if(b.nodeName!==c||x(e)){var f=d.createBookmark(a.selection.getRng(!0));l(a.dom,b,e),u(a.dom,a.dom.rename(b,c)),a.selection.setRng(d.resolveBookmark(f))}else p(a,c);else o(a,c,e)},z=function(a,b,c){var d=g.getParentList(a),e=g.getSelectedSubLists(a);c=c?c:{},d&&e.length>0?w(a,d,e,b,c):y(a,d,b,c)};return{toggleList:z,removeList:p,mergeWithAdjacentLists:u}}),g("j",["a"],function(a){return a("tinymce.dom.TreeWalker")}),g("7",["i","j","3","6","c","8","e","k","9"],function(a,b,c,d,e,f,g,h,i){var j=function(c,d,e){var g,h,i=d.startContainer,j=d.startOffset;if(3===i.nodeType&&(e?j<i.data.length:j>0))return i;for(g=c.schema.getNonEmptyElements(),1===i.nodeType&&(i=a.getNode(i,j)),h=new b(i,c.getBody()),e&&f.isBogusBr(c.dom,i)&&h.next();i=h[e?"next":"prev2"]();){if("LI"===i.nodeName&&!i.hasChildNodes())return i;if(g[i.nodeName])return i;if(3===i.nodeType&&i.data.length>0)return i}},k=function(a,b){var c=b.childNodes;return 1===c.length&&!f.isListNode(c[0])&&a.isBlock(c[0])},l=function(a,b){k(a,b)&&a.remove(b.firstChild,!0)},m=function(a,b,c){var d,e;if(e=k(a,c)?c.firstChild:c,l(a,b),!f.isEmpty(a,b,!0))for(;d=b.firstChild;)e.appendChild(d)},n=function(a,b,c){var d,e,g=b.parentNode;f.isChildOfBody(a,b)&&f.isChildOfBody(a,c)&&(f.isListNode(c.lastChild)&&(e=c.lastChild),g===c.lastChild&&f.isBr(g.previousSibling)&&a.remove(g.previousSibling),d=c.lastChild,d&&f.isBr(d)&&b.hasChildNodes()&&a.remove(d),f.isEmpty(a,c,!0)&&a.$(c).empty(),m(a,b,c),e&&c.appendChild(e),a.remove(b),f.isEmpty(a,g)&&g!==a.getRoot()&&a.remove(g))},o=function(a,b,c){a.dom.$(c).empty(),n(a.dom,b,c),a.selection.setCursorLocation(c)},p=function(a,b,c,d){var f=a.dom;if(f.isEmpty(d))o(a,c,d);else{var g=e.createBookmark(b);n(f,c,d),a.selection.setRng(e.resolveBookmark(g))}},q=function(a,b,c,d){var f=e.createBookmark(b);n(a.dom,c,d),a.selection.setRng(e.resolveBookmark(f))},r=function(a,b){var c,e,g,i=a.dom,k=a.selection,l=i.getParent(k.getStart(),"LI");if(l){if(c=l.parentNode,c===a.getBody()&&f.isEmpty(i,c))return!0;if(e=h.normalizeRange(k.getRng(!0)),g=i.getParent(j(a,e,b),"LI"),g&&g!==l)return b?p(a,e,g,l):q(a,e,l,g),!0;if(!g&&!b&&d.removeList(a,c.nodeName))return!0}return!1},s=function(a,b){var c=a.getParent(b.parentNode,a.isBlock);a.remove(b),c&&a.isEmpty(c)&&a.remove(c)},t=function(a,b){var c=a.dom,e=c.getParent(a.selection.getStart(),c.isBlock);if(e&&c.isEmpty(e)){var f=h.normalizeRange(a.selection.getRng(!0)),g=c.getParent(j(a,f,b),"LI");if(g)return a.undoManager.transact(function(){s(c,e),d.mergeWithAdjacentLists(c,g.parentNode),a.selection.select(g,!0),a.selection.collapse(b)}),!0}return!1},u=function(a,b){return r(a,b)||t(a,b)},v=function(a){var b=a.dom.getParent(a.selection.getStart(),"LI,DT,DD");return!!(b||i.getSelectedListItems(a).length>0)&&(a.undoManager.transact(function(){a.execCommand("Delete"),g.normalizeLists(a.dom,a.getBody())}),!0)},w=function(a,b){return a.selection.isCollapsed()?u(a,b):v(a)},x=function(a){a.on("keydown",function(b){b.keyCode===c.BACKSPACE?w(a,!1)&&b.preventDefault():b.keyCode===c.DELETE&&w(a,!0)&&b.preventDefault()})};return{setup:x,backspaceDelete:w}}),g("0",["1","2","3","4","5","6","7","8","9"],function(a,b,c,d,e,f,g,h,i){var j=function(a,b){return function(){var c=a.dom.getParent(a.selection.getStart(),"UL,OL,DL");return c&&c.nodeName===b}},k=function(a){a.on("BeforeExecCommand",function(b){var c,f=b.command.toLowerCase();if("indent"===f?d.indentSelection(a)&&(c=!0):"outdent"===f&&e.outdentSelection(a)&&(c=!0),c)return a.fire("ExecCommand",{command:b.command}),b.preventDefault(),!0}),a.addCommand("InsertUnorderedList",function(b,c){f.toggleList(a,"UL",c)}),a.addCommand("InsertOrderedList",function(b,c){f.toggleList(a,"OL",c)}),a.addCommand("InsertDefinitionList",function(b,c){f.toggleList(a,"DL",c)})},l=function(a){a.addQueryStateHandler("InsertUnorderedList",j(a,"UL")),a.addQueryStateHandler("InsertOrderedList",j(a,"OL")),a.addQueryStateHandler("InsertDefinitionList",j(a,"DL"))},m=function(a){a.on("keydown",function(b){9!==b.keyCode||c.metaKeyPressed(b)||a.dom.getParent(a.selection.getStart(),"LI,DT,DD")&&(b.preventDefault(),b.shiftKey?e.outdentSelection(a):d.indentSelection(a))})},n=function(a){var c=function(c){return function(){var d=this;a.on("NodeChange",function(a){var e=b.grep(a.parents,h.isListNode);d.active(e.length>0&&e[0].nodeName===c)})}},d=function(a,c){var d=a.settings.plugins?a.settings.plugins:"";return b.inArray(d.split(/[ ,]/),c)!==-1};d(a,"advlist")||(a.addButton("numlist",{title:"Numbered list",cmd:"InsertOrderedList",onPostRender:c("OL")}),a.addButton("bullist",{title:"Bullet list",cmd:"InsertUnorderedList",onPostRender:c("UL")})),a.addButton("indent",{icon:"indent",title:"Increase indent",cmd:"Indent",onPostRender:function(b){var c=b.control;a.on("nodechange",function(){var b=i.getSelectedListItems(a),d=b.length>0&&h.isFirstChild(b[0]);c.disabled(d)})}})};return a.add("lists",function(a){return n(a),g.setup(a),a.on("init",function(){k(a),l(a),a.getParam("lists_indent_on_tab",!0)&&m(a)}),{backspaceDelete:function(b){g.backspaceDelete(a,b)}}}),function(){}}),d("0")()}(); \ No newline at end of file +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),d=tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"),l=tinymce.util.Tools.resolve("tinymce.dom.TreeWalker"),n=tinymce.util.Tools.resolve("tinymce.util.VK"),p=tinymce.util.Tools.resolve("tinymce.dom.BookmarkManager"),v=tinymce.util.Tools.resolve("tinymce.util.Tools"),t=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),o=function(e){return e&&"BR"===e.nodeName},r=function(e){return e&&3===e.nodeType},h=function(e){return e&&/^(OL|UL|DL)$/.test(e.nodeName)},i=function(e){return e&&/^(LI|DT|DD)$/.test(e.nodeName)},a=function(e){return e&&/^(TH|TD)$/.test(e.nodeName)},C=o,s=function(e){return e.parentNode.firstChild===e},c=function(e){return e.parentNode.lastChild===e},y=function(e,t){return t&&!!e.schema.getTextBlockElements()[t.nodeName]},f=function(e,t){return e&&e.nodeName in t},u=function(e,t){return!!o(t)&&!(!e.isBlock(t.nextSibling)||o(t.previousSibling))},m=function(e,t,n){var o=e.isEmpty(t);return!(n&&0<e.select("span[data-mce-type=bookmark]",t).length)&&o},g=function(e,t){return e.isChildOf(t,e.getRoot())},N=function(e,t){var n=d.getNode(e,t);return i(e)&&r(n)?{container:n,offset:t>=e.childNodes.length?n.data.length:0}:{container:e,offset:t}},L=function(e){var t=e.cloneRange(),n=N(e.startContainer,e.startOffset);t.setStart(n.container,n.offset);var o=N(e.endContainer,e.endOffset);return t.setEnd(o.container,o.offset),t},S=t.DOM,b=function(r){var i={},e=function(e){var t,n,o;n=r[e?"startContainer":"endContainer"],o=r[e?"startOffset":"endOffset"],1===n.nodeType&&(t=S.create("span",{"data-mce-type":"bookmark"}),n.hasChildNodes()?(o=Math.min(o,n.childNodes.length-1),e?n.insertBefore(t,n.childNodes[o]):S.insertAfter(t,n.childNodes[o])):n.appendChild(t),n=t,o=0),i[e?"startContainer":"endContainer"]=n,i[e?"startOffset":"endOffset"]=o};return e(!0),r.collapsed||e(),i},D=function(r){function e(e){var t,n,o;t=o=r[e?"startContainer":"endContainer"],n=r[e?"startOffset":"endOffset"],t&&(1===t.nodeType&&(n=function(e){for(var t=e.parentNode.firstChild,n=0;t;){if(t===e)return n;1===t.nodeType&&"bookmark"===t.getAttribute("data-mce-type")||n++,t=t.nextSibling}return-1}(t),t=t.parentNode,S.remove(o),!t.hasChildNodes()&&S.isBlock(t)&&t.appendChild(S.create("br"))),r[e?"startContainer":"endContainer"]=t,r[e?"startOffset":"endOffset"]=n)}e(!0),e();var t=S.createRng();return t.setStart(r.startContainer,r.startOffset),r.endContainer&&t.setEnd(r.endContainer,r.endOffset),L(t)},k=t.DOM,T=function(e,t){var n,o=t.parentNode;"LI"===o.nodeName&&o.firstChild===t&&((n=o.previousSibling)&&"LI"===n.nodeName?(n.appendChild(t),m(e,o)&&k.remove(o)):k.setStyle(o,"listStyleType","none")),h(o)&&(n=o.previousSibling)&&"LI"===n.nodeName&&n.appendChild(t)},I=function(t,e){v.each(v.grep(t.select("ol,ul",e)),function(e){T(t,e)})},B=tinymce.util.Tools.resolve("tinymce.dom.DomQuery"),R=function(e){var t=e.selection.getStart(!0);return e.dom.getParent(t,"OL,UL,DL",O(e,t))},O=function(e,t){var n=e.dom.getParents(t,"TD,TH");return 0<n.length?n[0]:e.getBody()},E={getParentList:R,getSelectedSubLists:function(e){var t,n,o,r=R(e),i=e.selection.getSelectedBlocks();return o=i,(n=r)&&1===o.length&&o[0]===n?(t=r,v.grep(t.querySelectorAll("ol,ul,dl"),function(e){return h(e)})):v.grep(i,function(e){return h(e)&&r!==e})},getSelectedListItems:function(e){var n,t,o,r=e.selection.getSelectedBlocks();return v.grep((n=e,t=r,o=v.map(t,function(e){var t=n.dom.getParent(e,"li,dd,dt",O(n,e));return t||e}),B.unique(o)),function(e){return i(e)})},getClosestListRootElm:O},A=tinymce.util.Tools.resolve("tinymce.Env"),P=t.DOM,x=function(e,t,n){var o,r,i,a=P.createFragment(),s=e.schema.getBlockElements();if(e.settings.forced_root_block&&(n=n||e.settings.forced_root_block),n&&((r=P.create(n)).tagName===e.settings.forced_root_block&&P.setAttribs(r,e.settings.forced_root_block_attrs),f(t.firstChild,s)||a.appendChild(r)),t)for(;o=t.firstChild;){var d=o.nodeName;i||"SPAN"===d&&"bookmark"===o.getAttribute("data-mce-type")||(i=!0),f(o,s)?(a.appendChild(o),r=null):n?(r||(r=P.create(n),a.appendChild(r)),r.appendChild(o)):a.appendChild(o)}return e.settings.forced_root_block?i||A.ie&&!(10<A.ie)||r.appendChild(P.create("br",{"data-mce-bogus":"1"})):a.appendChild(P.create("br")),a},_=t.DOM,M=function(e,t,n,o){var r,i,a,s,d;for(a=_.select('span[data-mce-type="bookmark"]',t),o=o||x(e,n),(r=_.createRng()).setStartAfter(n),r.setEndAfter(t),s=(i=r.extractContents()).firstChild;s;s=s.firstChild)if("LI"===s.nodeName&&e.dom.isEmpty(s)){_.remove(s);break}e.dom.isEmpty(i)||_.insertAfter(i,t),_.insertAfter(o,t),m(e.dom,n.parentNode)&&(d=n.parentNode,v.each(a,function(e){d.parentNode.insertBefore(e,n.parentNode)}),_.remove(d)),_.remove(n),m(e.dom,t)&&_.remove(t)},U=t.DOM,H=function(e,t){m(e,t)&&U.remove(t)},$=function(e,t){var n,o,r=t.parentNode;return r?(n=r.parentNode,r===e.getBody()||("DD"===t.nodeName?U.rename(t,"DT"):s(t)&&c(t)?"LI"===n.nodeName?(U.insertAfter(t,n),H(e.dom,n),U.remove(r)):h(n)?U.remove(r,!0):(n.insertBefore(x(e,t),r),U.remove(r)):s(t)?"LI"===n.nodeName?(U.insertAfter(t,n),t.appendChild(r),H(e.dom,n)):h(n)?n.insertBefore(t,r):(n.insertBefore(x(e,t),r),U.remove(t)):c(t)?"LI"===n.nodeName?U.insertAfter(t,n):h(n)?U.insertAfter(t,r):(U.insertAfter(x(e,t),r),U.remove(t)):("LI"===n.nodeName?(r=n,o=x(e,t,"LI")):o=h(n)?x(e,t,"LI"):x(e,t),M(e,r,t,o),I(e.dom,r.parentNode)))):H(e.dom,t),!0},w=$,K=function(e){var t=E.getSelectedListItems(e);if(t.length){var n=b(e.selection.getRng()),o=void 0,r=void 0,i=E.getClosestListRootElm(e,e.selection.getStart(!0));for(o=t.length;o--;)for(var a=t[o].parentNode;a&&a!==i;){for(r=t.length;r--;)if(t[r]===a){t.splice(o,1);break}a=a.parentNode}for(o=0;o<t.length&&($(e,t[o])||0!==o);o++);return e.selection.setRng(D(n)),e.nodeChanged(),!0}},Q=function(n,e){v.each(e,function(e,t){n.setAttribute(t,e)})},W=function(e,t,n){var o,r,i,a,s,d,l;o=e,r=t,a=(i=n)["list-style-type"]?i["list-style-type"]:null,o.setStyle(r,"list-style-type",a),s=e,Q(d=t,(l=n)["list-attributes"]),v.each(s.select("li",d),function(e){Q(e,l["list-item-attributes"])})},j=function(e,t,n,o){var r,i;for(r=t[n?"startContainer":"endContainer"],i=t[n?"startOffset":"endOffset"],1===r.nodeType&&(r=r.childNodes[Math.min(i,r.childNodes.length-1)]||r),!n&&C(r.nextSibling)&&(r=r.nextSibling);r.parentNode!==o;){if(y(e,r))return r;if(/^(TD|TH)$/.test(r.parentNode.nodeName))return r;r=r.parentNode}return r},q=function(c,f,u){void 0===u&&(u={});var e,t=c.selection.getRng(!0),m="LI",n=E.getClosestListRootElm(c,c.selection.getStart(!0)),g=c.dom;"false"!==g.getContentEditable(c.selection.getNode())&&("DL"===(f=f.toUpperCase())&&(m="DT"),e=b(t),v.each(function(n,e,o){for(var r,i=[],a=n.dom,t=j(n,e,!0,o),s=j(n,e,!1,o),d=[],l=t;l&&(d.push(l),l!==s);l=l.nextSibling);return v.each(d,function(e){if(y(n,e))return i.push(e),void(r=null);if(a.isBlock(e)||C(e))return C(e)&&a.remove(e),void(r=null);var t=e.nextSibling;p.isBookmarkNode(e)&&(y(n,t)||!t&&e.parentNode===o)?r=null:(r||(r=a.create("p"),e.parentNode.insertBefore(r,e),i.push(r)),r.appendChild(e))}),i}(c,t,n),function(e){var t,n,o,r,i,a,s,d,l;(n=e.previousSibling)&&h(n)&&n.nodeName===f&&(o=n,r=u,i=g.getStyle(o,"list-style-type"),a=r?r["list-style-type"]:"",i===(a=null===a?"":a))?(t=n,e=g.rename(e,m),n.appendChild(e)):(t=g.create(f),e.parentNode.insertBefore(t,e),t.appendChild(e),e=g.rename(e,m)),s=g,d=e,l=["margin","margin-right","margin-bottom","margin-left","margin-top","padding","padding-right","padding-bottom","padding-left","padding-top"],v.each(l,function(e){return s.setStyle(d,((t={})[e]="",t));var t}),W(g,t,u),z(c.dom,t)}),c.selection.setRng(D(e)))},F=function(o){var e=b(o.selection.getRng(!0)),r=E.getClosestListRootElm(o,o.selection.getStart(!0)),t=E.getSelectedListItems(o),n=v.grep(t,function(e){return o.dom.isEmpty(e)});t=v.grep(t,function(e){return!o.dom.isEmpty(e)}),v.each(n,function(e){m(o.dom,e)&&w(o,e)}),v.each(t,function(e){var t,n;if(e.parentNode!==o.getBody()){for(t=e;t&&t!==r;t=t.parentNode)h(t)&&(n=t);M(o,n,e),I(o.dom,n.parentNode)}}),o.selection.setRng(D(e))},V=function(e,t,n){return d=n,(s=t)&&d&&h(s)&&s.nodeName===d.nodeName&&(i=t,a=n,(r=e).getStyle(i,"list-style-type",!0)===r.getStyle(a,"list-style-type",!0))&&(o=n,t.className===o.className);var o,r,i,a,s,d},z=function(e,t){var n,o;if(n=t.nextSibling,V(e,t,n)){for(;o=n.firstChild;)t.appendChild(o);e.remove(n)}if(n=t.previousSibling,V(e,t,n)){for(;o=n.lastChild;)t.insertBefore(o,t.firstChild);e.remove(n)}},G=function(t,e,n,o,r){if(e.nodeName!==o||J(r)){var i=b(t.selection.getRng(!0));v.each([e].concat(n),function(e){!function(e,t,n,o){if(t.nodeName!==n){var r=e.rename(t,n);W(e,r,o)}else W(e,t,o)}(t.dom,e,o,r)}),t.selection.setRng(D(i))}else F(t)},J=function(e){return"list-style-type"in e},X={toggleList:function(e,t,n){var o=E.getParentList(e),r=E.getSelectedSubLists(e);n=n||{},o&&0<r.length?G(e,o,r,t,n):function(e,t,n,o){if(t!==e.getBody())if(t)if(t.nodeName!==n||J(o)){var r=b(e.selection.getRng(!0));W(e.dom,t,o),z(e.dom,e.dom.rename(t,n)),e.selection.setRng(D(r))}else F(e);else q(e,n,o)}(e,o,t,n)},removeList:F,mergeWithAdjacentLists:z},Y=function(e,t,n,o){var r,i,a=t.startContainer,s=t.startOffset;if(3===a.nodeType&&(n?s<a.data.length:0<s))return a;for(r=e.schema.getNonEmptyElements(),1===a.nodeType&&(a=d.getNode(a,s)),i=new l(a,o),n&&u(e.dom,a)&&i.next();a=i[n?"next":"prev2"]();){if("LI"===a.nodeName&&!a.hasChildNodes())return a;if(r[a.nodeName])return a;if(3===a.nodeType&&0<a.data.length)return a}},Z=function(e,t){var n=t.childNodes;return 1===n.length&&!h(n[0])&&e.isBlock(n[0])},ee=function(e,t,n){var o,r,i,a;if(r=Z(e,n)?n.firstChild:n,Z(i=e,a=t)&&i.remove(a.firstChild,!0),!m(e,t,!0))for(;o=t.firstChild;)r.appendChild(o)},te=function(e,t,n){var o,r,i=t.parentNode;g(e,t)&&g(e,n)&&(h(n.lastChild)&&(r=n.lastChild),i===n.lastChild&&C(i.previousSibling)&&e.remove(i.previousSibling),(o=n.lastChild)&&C(o)&&t.hasChildNodes()&&e.remove(o),m(e,n,!0)&&e.$(n).empty(),ee(e,t,n),r&&n.appendChild(r),e.remove(t),m(e,i)&&i!==e.getRoot()&&e.remove(i))},ne=function(e,t,n,o){var r,i,a,s=e.dom;if(s.isEmpty(o))i=n,a=o,(r=e).dom.$(a).empty(),te(r.dom,i,a),r.selection.setCursorLocation(a);else{var d=b(t);te(s,n,o),e.selection.setRng(D(d))}},oe=function(e,t){var n,o,r,i=e.dom,a=e.selection,s=a.getStart(),d=E.getClosestListRootElm(e,s),l=i.getParent(a.getStart(),"LI",d);if(l){if((n=l.parentNode)===e.getBody()&&m(i,n))return!0;if(o=L(a.getRng(!0)),(r=i.getParent(Y(e,o,t,d),"LI",d))&&r!==l)return t?ne(e,o,r,l):function(e,t,n,o){var r=b(t);te(e.dom,n,o);var i=D(r);e.selection.setRng(i)}(e,o,l,r),!0;if(!r&&!t&&X.removeList(e))return!0}return!1},re=function(e,t){return oe(e,t)||function(r,i){var a=r.dom,e=r.selection.getStart(),s=E.getClosestListRootElm(r,e),d=a.getParent(e,a.isBlock,s);if(d&&a.isEmpty(d)){var t=L(r.selection.getRng(!0)),l=a.getParent(Y(r,t,i,s),"LI",s);if(l)return r.undoManager.transact(function(){var e,t,n,o;t=d,n=s,o=(e=a).getParent(t.parentNode,e.isBlock,n),e.remove(t),o&&e.isEmpty(o)&&e.remove(o),X.mergeWithAdjacentLists(a,l.parentNode),r.selection.select(l,!0),r.selection.collapse(i)}),!0}return!1}(e,t)},ie=function(e,t){return e.selection.isCollapsed()?re(e,t):(o=(n=e).selection.getStart(),r=E.getClosestListRootElm(n,o),!!(n.dom.getParent(o,"LI,DT,DD",r)||0<E.getSelectedListItems(n).length)&&(n.undoManager.transact(function(){n.execCommand("Delete"),I(n.dom,n.getBody())}),!0));var n,o,r},ae=function(t){t.on("keydown",function(e){e.keyCode===n.BACKSPACE?ie(t,!1)&&e.preventDefault():e.keyCode===n.DELETE&&ie(t,!0)&&e.preventDefault()})},se=ie,de=function(t){return{backspaceDelete:function(e){se(t,e)}}},le=t.DOM,ce=function(e,t){var n;if(h(e)){for(;n=e.firstChild;)t.appendChild(n);le.remove(e)}},fe=function(e){var t,n,o,r,i=E.getSelectedListItems(e);if(i.length){for(var a=b(e.selection.getRng(!0)),s=0;s<i.length&&(t=i[s],r=o=n=void 0,("DT"===t.nodeName?(le.rename(t,"DD"),1):(n=t.previousSibling)&&h(n)?(n.appendChild(t),1):n&&"LI"===n.nodeName&&h(n.lastChild)?(n.lastChild.appendChild(t),ce(t.lastChild,n.lastChild),1):(n=t.nextSibling)&&h(n)?(n.insertBefore(t,n.firstChild),1):(n=t.previousSibling)&&"LI"===n.nodeName&&(o=le.create(t.parentNode.nodeName),(r=le.getStyle(t.parentNode,"listStyleType"))&&le.setStyle(o,"listStyleType",r),n.appendChild(o),o.appendChild(t),ce(t.lastChild,o),1))||0!==s);s++);return e.selection.setRng(D(a)),e.nodeChanged(),!0}},ue=function(t,n){return function(){var e=t.dom.getParent(t.selection.getStart(),"UL,OL,DL");return e&&e.nodeName===n}},me=function(o){o.on("BeforeExecCommand",function(e){var t,n=e.command.toLowerCase();if("indent"===n?fe(o)&&(t=!0):"outdent"===n&&K(o)&&(t=!0),t)return o.fire("ExecCommand",{command:e.command}),e.preventDefault(),!0}),o.addCommand("InsertUnorderedList",function(e,t){X.toggleList(o,"UL",t)}),o.addCommand("InsertOrderedList",function(e,t){X.toggleList(o,"OL",t)}),o.addCommand("InsertDefinitionList",function(e,t){X.toggleList(o,"DL",t)}),o.addQueryStateHandler("InsertUnorderedList",ue(o,"UL")),o.addQueryStateHandler("InsertOrderedList",ue(o,"OL")),o.addQueryStateHandler("InsertDefinitionList",ue(o,"DL"))},ge=function(e){return e.getParam("lists_indent_on_tab",!0)},pe=function(e){var t;ge(e)&&(t=e).on("keydown",function(e){e.keyCode!==n.TAB||n.metaKeyPressed(e)||t.dom.getParent(t.selection.getStart(),"LI,DT,DD")&&(e.preventDefault(),e.shiftKey?K(t):fe(t))}),ae(e)},ve=function(t,i){return function(e){var r=e.control;t.on("NodeChange",function(e){var t=function(e,t){for(var n=0;n<e.length;n++)if(t(e[n]))return n;return-1}(e.parents,a),n=-1!==t?e.parents.slice(0,t):e.parents,o=v.grep(n,h);r.active(0<o.length&&o[0].nodeName===i)})}},he=function(e){var t,n,o,r;n="advlist",o=(t=e).settings.plugins?t.settings.plugins:"",-1===v.inArray(o.split(/[ ,]/),n)&&(e.addButton("numlist",{active:!1,title:"Numbered list",cmd:"InsertOrderedList",onPostRender:ve(e,"OL")}),e.addButton("bullist",{active:!1,title:"Bullet list",cmd:"InsertUnorderedList",onPostRender:ve(e,"UL")})),e.addButton("indent",{icon:"indent",title:"Increase indent",cmd:"Indent",onPostRender:(r=e,function(e){var n=e.control;r.on("nodechange",function(){var e=E.getSelectedListItems(r),t=0<e.length&&s(e[0]);n.disabled(t)})})})};e.add("lists",function(e){return pe(e),he(e),me(e),de(e)})}(); \ No newline at end of file diff --git a/wp-includes/js/tinymce/plugins/media/plugin.js b/wp-includes/js/tinymce/plugins/media/plugin.js index 5790bd49d..1ee15d627 100644 --- a/wp-includes/js/tinymce/plugins/media/plugin.js +++ b/wp-includes/js/tinymce/plugins/media/plugin.js @@ -1,1788 +1,1166 @@ (function () { +var media = (function () { + 'use strict'; -var defs = {}; // id -> {dependencies, definition, instance (possibly undefined)} + var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); -// Used when there is no 'main' module. -// The name is probably (hopefully) unique so minification removes for releases. -var register_3795 = function (id) { - var module = dem(id); - var fragments = id.split('.'); - var target = Function('return this;')(); - for (var i = 0; i < fragments.length - 1; ++i) { - if (target[fragments[i]] === undefined) - target[fragments[i]] = {}; - target = target[fragments[i]]; - } - target[fragments[fragments.length - 1]] = module; -}; - -var instantiate = function (id) { - var actual = defs[id]; - var dependencies = actual.deps; - var definition = actual.defn; - var len = dependencies.length; - var instances = new Array(len); - for (var i = 0; i < len; ++i) - instances[i] = dem(dependencies[i]); - var defResult = definition.apply(null, instances); - if (defResult === undefined) - throw 'module [' + id + '] returned undefined'; - actual.instance = defResult; -}; - -var def = function (id, dependencies, definition) { - if (typeof id !== 'string') - throw 'module id must be a string'; - else if (dependencies === undefined) - throw 'no dependencies for ' + id; - else if (definition === undefined) - throw 'no definition function for ' + id; - defs[id] = { - deps: dependencies, - defn: definition, - instance: undefined - }; -}; - -var dem = function (id) { - var actual = defs[id]; - if (actual === undefined) - throw 'module [' + id + '] was undefined'; - else if (actual.instance === undefined) - instantiate(id); - return actual.instance; -}; - -var req = function (ids, callback) { - var len = ids.length; - var instances = new Array(len); - for (var i = 0; i < len; ++i) - instances.push(dem(ids[i])); - callback.apply(null, callback); -}; - -var ephox = {}; - -ephox.bolt = { - module: { - api: { - define: def, - require: req, - demand: dem - } - } -}; - -var define = def; -var require = req; -var demand = dem; -// this helps with minificiation when using a lot of global references -var defineGlobal = function (id, ref) { - define(id, [], function () { return ref; }); -}; -/*jsc -["tinymce.plugins.media.Plugin","tinymce.core.html.Node","tinymce.core.PluginManager","tinymce.core.util.Tools","tinymce.plugins.media.core.Nodes","tinymce.plugins.media.core.Sanitize","tinymce.plugins.media.core.UpdateHtml","tinymce.plugins.media.ui.Dialog","global!tinymce.util.Tools.resolve","tinymce.core.html.Writer","tinymce.core.html.SaxParser","tinymce.core.html.Schema","tinymce.plugins.media.core.VideoScript","tinymce.core.Env","tinymce.core.dom.DOMUtils","tinymce.plugins.media.core.Size","tinymce.core.util.Delay","tinymce.plugins.media.core.HtmlToData","tinymce.plugins.media.core.Service","tinymce.plugins.media.ui.SizeManager","tinymce.plugins.media.core.DataToHtml","tinymce.core.util.Promise","tinymce.plugins.media.core.Mime","tinymce.plugins.media.core.UrlPatterns"] -jsc*/ -defineGlobal("global!tinymce.util.Tools.resolve", tinymce.util.Tools.resolve); -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.html.Node', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.html.Node'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.PluginManager', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.PluginManager'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.util.Tools', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.util.Tools'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.html.Writer', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.html.Writer'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.html.SaxParser', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.html.SaxParser'); - } -); + var global$1 = tinymce.util.Tools.resolve('tinymce.Env'); -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.html.Schema', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.html.Schema'); - } -); - -/** - * Sanitize.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.media.core.Sanitize', - [ - 'tinymce.core.util.Tools', - 'tinymce.core.html.Writer', - 'tinymce.core.html.SaxParser', - 'tinymce.core.html.Schema' - ], - function (Tools, Writer, SaxParser, Schema) { - var sanitize = function (editor, html) { - if (editor.settings.media_filter_html === false) { - return html; - } - - var writer = new Writer(); - var blocked; - - new SaxParser({ - validate: false, - allow_conditional_comments: false, - special: 'script,noscript', - - comment: function (text) { - writer.comment(text); - }, - - cdata: function (text) { - writer.cdata(text); - }, - - text: function (text, raw) { - writer.text(text, raw); - }, - - start: function (name, attrs, empty) { - blocked = true; - - if (name === 'script' || name === 'noscript') { - return; - } - - for (var i = 0; i < attrs.length; i++) { - if (attrs[i].name.indexOf('on') === 0) { - return; - } - - if (attrs[i].name === 'style') { - attrs[i].value = editor.dom.serializeStyle(editor.dom.parseStyle(attrs[i].value), name); - } - } + var global$2 = tinymce.util.Tools.resolve('tinymce.util.Tools'); - writer.start(name, attrs, empty); - blocked = false; - }, - - end: function (name) { - if (blocked) { - return; - } - - writer.end(name); - } - }, new Schema({})).parse(html); + var getScripts = function (editor) { + return editor.getParam('media_scripts'); + }; + var getAudioTemplateCallback = function (editor) { + return editor.getParam('audio_template_callback'); + }; + var getVideoTemplateCallback = function (editor) { + return editor.getParam('video_template_callback'); + }; + var hasLiveEmbeds = function (editor) { + return editor.getParam('media_live_embeds', true); + }; + var shouldFilterHtml = function (editor) { + return editor.getParam('media_filter_html', true); + }; + var getUrlResolver = function (editor) { + return editor.getParam('media_url_resolver'); + }; + var hasAltSource = function (editor) { + return editor.getParam('media_alt_source', true); + }; + var hasPoster = function (editor) { + return editor.getParam('media_poster', true); + }; + var hasDimensions = function (editor) { + return editor.getParam('media_dimensions', true); + }; + var $_bmkzfegajfuw8pol = { + getScripts: getScripts, + getAudioTemplateCallback: getAudioTemplateCallback, + getVideoTemplateCallback: getVideoTemplateCallback, + hasLiveEmbeds: hasLiveEmbeds, + shouldFilterHtml: shouldFilterHtml, + getUrlResolver: getUrlResolver, + hasAltSource: hasAltSource, + hasPoster: hasPoster, + hasDimensions: hasDimensions + }; - return writer.getContent(); - }; + var global$3 = tinymce.util.Tools.resolve('tinymce.html.SaxParser'); - return { - sanitize: sanitize - }; - } -); -/** - * VideoScript.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ + var global$4 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils'); -define( - 'tinymce.plugins.media.core.VideoScript', - [ - ], - function () { - var getVideoScriptMatch = function (prefixes, src) { - // var prefixes = editor.settings.media_scripts; - if (prefixes) { - for (var i = 0; i < prefixes.length; i++) { - if (src.indexOf(prefixes[i].filter) !== -1) { - return prefixes[i]; - } + var getVideoScriptMatch = function (prefixes, src) { + if (prefixes) { + for (var i = 0; i < prefixes.length; i++) { + if (src.indexOf(prefixes[i].filter) !== -1) { + return prefixes[i]; } } - }; - - return { - getVideoScriptMatch: getVideoScriptMatch - }; - } -); -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.Env', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.Env'); - } -); - -/** - * Nodes.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.media.core.Nodes', - [ - 'tinymce.plugins.media.core.Sanitize', - 'tinymce.plugins.media.core.VideoScript', - 'tinymce.core.html.Node', - 'tinymce.core.Env' - ], - function (Sanitize, VideoScript, Node, Env) { - var createPlaceholderNode = function (editor, node) { - var placeHolder; - var name = node.name; - - placeHolder = new Node('img', 1); - placeHolder.shortEnded = true; - - retainAttributesAndInnerHtml(editor, node, placeHolder); - - placeHolder.attr({ - width: node.attr('width') || "300", - height: node.attr('height') || (name === "audio" ? "30" : "150"), - style: node.attr('style'), - src: Env.transparentSrc, - "data-mce-object": name, - "class": "mce-object mce-object-" + name - }); - - return placeHolder; - }; - - var createPreviewIframeNode = function (editor, node) { - var previewWrapper; - var previewNode; - var shimNode; - var name = node.name; - - previewWrapper = new Node('span', 1); - previewWrapper.attr({ - contentEditable: 'false', - style: node.attr('style'), - "data-mce-object": name, - "class": "mce-preview-object mce-object-" + name - }); - - retainAttributesAndInnerHtml(editor, node, previewWrapper); - - previewNode = new Node(name, 1); - previewNode.attr({ - src: node.attr('src'), - allowfullscreen: node.attr('allowfullscreen'), - width: node.attr('width') || "300", - height: node.attr('height') || (name === "audio" ? "30" : "150"), - frameborder: '0' - }); - - shimNode = new Node('span', 1); - shimNode.attr('class', 'mce-shim'); - - previewWrapper.append(previewNode); - previewWrapper.append(shimNode); + } + }; + var $_9fg1sigejfuw8poq = { getVideoScriptMatch: getVideoScriptMatch }; - return previewWrapper; + var trimPx = function (value) { + return value.replace(/px$/, ''); + }; + var addPx = function (value) { + return /^[0-9.]+$/.test(value) ? value + 'px' : value; + }; + var getSize = function (name) { + return function (elm) { + return elm ? trimPx(elm.style[name]) : ''; }; - - var retainAttributesAndInnerHtml = function (editor, sourceNode, targetNode) { - var attrName; - var attrValue; - var attribs; - var ai; - var innerHtml; - - // Prefix all attributes except width, height and style since we - // will add these to the placeholder - attribs = sourceNode.attributes; - ai = attribs.length; - while (ai--) { - attrName = attribs[ai].name; - attrValue = attribs[ai].value; - - if (attrName !== "width" && attrName !== "height" && attrName !== "style") { - if (attrName === "data" || attrName === "src") { - attrValue = editor.convertURL(attrValue, attrName); - } - - targetNode.attr('data-mce-p-' + attrName, attrValue); - } - } - - // Place the inner HTML contents inside an escaped attribute - // This enables us to copy/paste the fake object - innerHtml = sourceNode.firstChild && sourceNode.firstChild.value; - if (innerHtml) { - targetNode.attr("data-mce-html", escape(Sanitize.sanitize(editor, innerHtml))); - targetNode.firstChild = null; + }; + var setSize = function (name) { + return function (elm, value) { + if (elm) { + elm.style[name] = addPx(value); } }; + }; + var $_7rx1rygfjfuw8por = { + getMaxWidth: getSize('maxWidth'), + getMaxHeight: getSize('maxHeight'), + setMaxWidth: setSize('maxWidth'), + setMaxHeight: setSize('maxHeight') + }; - var isWithinEphoxEmbed = function (node) { - while ((node = node.parent)) { - if (node.attr('data-ephox-embed-iri')) { - return true; + var DOM = global$4.DOM; + var getEphoxEmbedIri = function (elm) { + return DOM.getAttrib(elm, 'data-ephox-embed-iri'); + }; + var isEphoxEmbed = function (html) { + var fragment = DOM.createFragment(html); + return getEphoxEmbedIri(fragment.firstChild) !== ''; + }; + var htmlToDataSax = function (prefixes, html) { + var data = {}; + global$3({ + validate: false, + allow_conditional_comments: true, + special: 'script,noscript', + start: function (name, attrs) { + if (!data.source1 && name === 'param') { + data.source1 = attrs.map.movie; } - } - - return false; - }; - - var placeHolderConverter = function (editor) { - return function (nodes) { - var i = nodes.length; - var node; - var videoScript; - - while (i--) { - node = nodes[i]; - if (!node.parent) { - continue; - } - - if (node.parent.attr('data-mce-object')) { - continue; - } - - if (node.name === 'script') { - videoScript = VideoScript.getVideoScriptMatch(editor.settings.media_scripts, node.attr('src')); - if (!videoScript) { - continue; - } + if (name === 'iframe' || name === 'object' || name === 'embed' || name === 'video' || name === 'audio') { + if (!data.type) { + data.type = name; } - - if (videoScript) { - if (videoScript.width) { - node.attr('width', videoScript.width.toString()); - } - - if (videoScript.height) { - node.attr('height', videoScript.height.toString()); - } + data = global$2.extend(attrs.map, data); + } + if (name === 'script') { + var videoScript = $_9fg1sigejfuw8poq.getVideoScriptMatch(prefixes, attrs.map.src); + if (!videoScript) { + return; } - - if (node.name === 'iframe' && editor.settings.media_live_embeds !== false && Env.ceFalse) { - if (!isWithinEphoxEmbed(node)) { - node.replace(createPreviewIframeNode(editor, node)); - } - } else { - if (!isWithinEphoxEmbed(node)) { - node.replace(createPlaceholderNode(editor, node)); - } + data = { + type: 'script', + source1: attrs.map.src, + width: videoScript.width, + height: videoScript.height + }; + } + if (name === 'source') { + if (!data.source1) { + data.source1 = attrs.map.src; + } else if (!data.source2) { + data.source2 = attrs.map.src; } } - }; - }; - - return { - createPreviewIframeNode: createPreviewIframeNode, - createPlaceholderNode: createPlaceholderNode, - placeHolderConverter: placeHolderConverter - }; - } -); -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.dom.DOMUtils', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.dom.DOMUtils'); - } -); - -/** - * Size.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.media.core.Size', - [ - ], - function () { - var trimPx = function (value) { - return value.replace(/px$/, ''); - }; - - var addPx = function (value) { - return /^[0-9.]+$/.test(value) ? (value + 'px') : value; - }; - - var getSize = function (name) { - return function (elm) { - return elm ? trimPx(elm.style[name]) : ''; - }; - }; - - var setSize = function (name) { - return function (elm, value) { - if (elm) { - elm.style[name] = addPx(value); + if (name === 'img' && !data.poster) { + data.poster = attrs.map.src; } - }; - }; - + } + }).parse(html); + data.source1 = data.source1 || data.src || data.data; + data.source2 = data.source2 || ''; + data.poster = data.poster || ''; + return data; + }; + var ephoxEmbedHtmlToData = function (html) { + var fragment = DOM.createFragment(html); + var div = fragment.firstChild; return { - getMaxWidth: getSize('maxWidth'), - getMaxHeight: getSize('maxHeight'), - setMaxWidth: setSize('maxWidth'), - setMaxHeight: setSize('maxHeight') + type: 'ephox-embed-iri', + source1: getEphoxEmbedIri(div), + source2: '', + poster: '', + width: $_7rx1rygfjfuw8por.getMaxWidth(div), + height: $_7rx1rygfjfuw8por.getMaxHeight(div) }; - } -); -/** - * UpdateHtml.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.media.core.UpdateHtml', - [ - 'tinymce.core.html.Writer', - 'tinymce.core.html.SaxParser', - 'tinymce.core.html.Schema', - 'tinymce.core.dom.DOMUtils', - 'tinymce.plugins.media.core.Size' - ], - function (Writer, SaxParser, Schema, DOMUtils, Size) { - var DOM = DOMUtils.DOM; - - var setAttributes = function (attrs, updatedAttrs) { - var name; - var i; - var value; - var attr; - - for (name in updatedAttrs) { - value = "" + updatedAttrs[name]; - - if (attrs.map[name]) { - i = attrs.length; - while (i--) { - attr = attrs[i]; - - if (attr.name === name) { - if (value) { - attrs.map[name] = value; - attr.value = value; - } else { - delete attrs.map[name]; - attrs.splice(i, 1); - } + }; + var htmlToData = function (prefixes, html) { + return isEphoxEmbed(html) ? ephoxEmbedHtmlToData(html) : htmlToDataSax(prefixes, html); + }; + var $_g969ozgbjfuw8pom = { htmlToData: htmlToData }; + + var global$5 = tinymce.util.Tools.resolve('tinymce.util.Promise'); + + var guess = function (url) { + var mimes = { + mp3: 'audio/mpeg', + wav: 'audio/wav', + mp4: 'video/mp4', + webm: 'video/webm', + ogg: 'video/ogg', + swf: 'application/x-shockwave-flash' + }; + var fileEnd = url.toLowerCase().split('.').pop(); + var mime = mimes[fileEnd]; + return mime ? mime : ''; + }; + var $_dq3p76gjjfuw8poy = { guess: guess }; + + var global$6 = tinymce.util.Tools.resolve('tinymce.html.Writer'); + + var global$7 = tinymce.util.Tools.resolve('tinymce.html.Schema'); + + var DOM$1 = global$4.DOM; + var setAttributes = function (attrs, updatedAttrs) { + var name; + var i; + var value; + var attr; + for (name in updatedAttrs) { + value = '' + updatedAttrs[name]; + if (attrs.map[name]) { + i = attrs.length; + while (i--) { + attr = attrs[i]; + if (attr.name === name) { + if (value) { + attrs.map[name] = value; + attr.value = value; + } else { + delete attrs.map[name]; + attrs.splice(i, 1); } } - } else if (value) { - attrs.push({ - name: name, - value: value - }); - - attrs.map[name] = value; } + } else if (value) { + attrs.push({ + name: name, + value: value + }); + attrs.map[name] = value; } - }; - - var normalizeHtml = function (html) { - var writer = new Writer(); - var parser = new SaxParser(writer); - parser.parse(html); - return writer.getContent(); - }; - - var updateHtmlSax = function (html, data, updateAll) { - var writer = new Writer(); - var sourceCount = 0; - var hasImage; - - new SaxParser({ - validate: false, - allow_conditional_comments: true, - special: 'script,noscript', - - comment: function (text) { - writer.comment(text); - }, - - cdata: function (text) { - writer.cdata(text); - }, - - text: function (text, raw) { - writer.text(text, raw); - }, - - start: function (name, attrs, empty) { - switch (name) { - case "video": - case "object": - case "embed": - case "img": - case "iframe": - if (data.height !== undefined && data.width !== undefined) { - setAttributes(attrs, { - width: data.width, - height: data.height - }); - } - break; - } - - if (updateAll) { - switch (name) { - case "video": - setAttributes(attrs, { - poster: data.poster, - src: "" - }); - - if (data.source2) { - setAttributes(attrs, { - src: "" - }); - } - break; - - case "iframe": - setAttributes(attrs, { - src: data.source1 - }); - break; - - case "source": - sourceCount++; - - if (sourceCount <= 2) { - setAttributes(attrs, { - src: data["source" + sourceCount], - type: data["source" + sourceCount + "mime"] - }); - - if (!data["source" + sourceCount]) { - return; - } - } - break; - - case "img": - if (!data.poster) { - return; - } - - hasImage = true; - break; - } - } - - writer.start(name, attrs, empty); - }, - - end: function (name) { - if (name === "video" && updateAll) { - for (var index = 1; index <= 2; index++) { - if (data["source" + index]) { - var attrs = []; - attrs.map = {}; - - if (sourceCount < index) { - setAttributes(attrs, { - src: data["source" + index], - type: data["source" + index + "mime"] - }); - - writer.start("source", attrs, true); - } - } - } - } - - if (data.poster && name === "object" && updateAll && !hasImage) { - var imgAttrs = []; - imgAttrs.map = {}; - - setAttributes(imgAttrs, { - src: data.poster, + } + }; + var normalizeHtml = function (html) { + var writer = global$6(); + var parser = global$3(writer); + parser.parse(html); + return writer.getContent(); + }; + var updateHtmlSax = function (html, data, updateAll) { + var writer = global$6(); + var sourceCount = 0; + var hasImage; + global$3({ + validate: false, + allow_conditional_comments: true, + special: 'script,noscript', + comment: function (text) { + writer.comment(text); + }, + cdata: function (text) { + writer.cdata(text); + }, + text: function (text, raw) { + writer.text(text, raw); + }, + start: function (name, attrs, empty) { + switch (name) { + case 'video': + case 'object': + case 'embed': + case 'img': + case 'iframe': + if (data.height !== undefined && data.width !== undefined) { + setAttributes(attrs, { width: data.width, height: data.height }); - - writer.start("img", imgAttrs, true); } - - writer.end(name); + break; } - }, new Schema({})).parse(html); - - return writer.getContent(); - }; - - var isEphoxEmbed = function (html) { - var fragment = DOM.createFragment(html); - return DOM.getAttrib(fragment.firstChild, 'data-ephox-embed-iri') !== ''; - }; - - var updateEphoxEmbed = function (html, data) { - var fragment = DOM.createFragment(html); - var div = fragment.firstChild; - - Size.setMaxWidth(div, data.width); - Size.setMaxHeight(div, data.height); - - return normalizeHtml(div.outerHTML); - }; - - var updateHtml = function (html, data, updateAll) { - return isEphoxEmbed(html) ? updateEphoxEmbed(html, data) : updateHtmlSax(html, data, updateAll); - }; - - return { - updateHtml: updateHtml - }; - } -); -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.util.Delay', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.util.Delay'); - } -); - -/** - * HtmlToData.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.media.core.HtmlToData', - [ - 'tinymce.core.util.Tools', - 'tinymce.core.html.SaxParser', - 'tinymce.core.html.Schema', - 'tinymce.core.dom.DOMUtils', - 'tinymce.plugins.media.core.VideoScript', - 'tinymce.plugins.media.core.Size' - ], - function (Tools, SaxParser, Schema, DOMUtils, VideoScript, Size) { - var DOM = DOMUtils.DOM; - - var getEphoxEmbedIri = function (elm) { - return DOM.getAttrib(elm, 'data-ephox-embed-iri'); - }; - - var isEphoxEmbed = function (html) { - var fragment = DOM.createFragment(html); - return getEphoxEmbedIri(fragment.firstChild) !== ''; - }; - - var htmlToDataSax = function (prefixes, html) { - var data = {}; - - new SaxParser({ - validate: false, - allow_conditional_comments: true, - special: 'script,noscript', - start: function (name, attrs) { - if (!data.source1 && name === "param") { - data.source1 = attrs.map.movie; - } - - if (name === "iframe" || name === "object" || name === "embed" || name === "video" || name === "audio") { - if (!data.type) { - data.type = name; + if (updateAll) { + switch (name) { + case 'video': + setAttributes(attrs, { + poster: data.poster, + src: '' + }); + if (data.source2) { + setAttributes(attrs, { src: '' }); } - - data = Tools.extend(attrs.map, data); - } - - if (name === "script") { - var videoScript = VideoScript.getVideoScriptMatch(prefixes, attrs.map.src); - if (!videoScript) { + break; + case 'iframe': + setAttributes(attrs, { src: data.source1 }); + break; + case 'source': + sourceCount++; + if (sourceCount <= 2) { + setAttributes(attrs, { + src: data['source' + sourceCount], + type: data['source' + sourceCount + 'mime'] + }); + if (!data['source' + sourceCount]) { + return; + } + } + break; + case 'img': + if (!data.poster) { return; } - - data = { - type: "script", - source1: attrs.map.src, - width: videoScript.width, - height: videoScript.height - }; + hasImage = true; + break; } - - if (name === "source") { - if (!data.source1) { - data.source1 = attrs.map.src; - } else if (!data.source2) { - data.source2 = attrs.map.src; + } + writer.start(name, attrs, empty); + }, + end: function (name) { + if (name === 'video' && updateAll) { + for (var index = 1; index <= 2; index++) { + if (data['source' + index]) { + var attrs = []; + attrs.map = {}; + if (sourceCount < index) { + setAttributes(attrs, { + src: data['source' + index], + type: data['source' + index + 'mime'] + }); + writer.start('source', attrs, true); + } } } - - if (name === "img" && !data.poster) { - data.poster = attrs.map.src; - } } - }).parse(html); - - data.source1 = data.source1 || data.src || data.data; - data.source2 = data.source2 || ''; - data.poster = data.poster || ''; - - return data; - }; - - var ephoxEmbedHtmlToData = function (html) { - var fragment = DOM.createFragment(html); - var div = fragment.firstChild; - - return { - type: 'ephox-embed-iri', - source1: getEphoxEmbedIri(div), - source2: '', - poster: '', - width: Size.getMaxWidth(div), - height: Size.getMaxHeight(div) - }; - }; - - var htmlToData = function (prefixes, html) { - return isEphoxEmbed(html) ? ephoxEmbedHtmlToData(html) : htmlToDataSax(prefixes, html); - }; - - return { - htmlToData: htmlToData - }; - } -); -/** - * Mime.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.media.core.Mime', - [ - ], - function () { - var guess = function (url) { - var mimes = { - 'mp3': 'audio/mpeg', - 'wav': 'audio/wav', - 'mp4': 'video/mp4', - 'webm': 'video/webm', - 'ogg': 'video/ogg', - 'swf': 'application/x-shockwave-flash' - }; - var fileEnd = url.toLowerCase().split('.').pop(); - var mime = mimes[fileEnd]; - - return mime ? mime : ''; - }; - - return { - guess: guess - }; - } -); -/** - * UrlPatterns.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.media.core.UrlPatterns', - [ - ], - function () { - var urlPatterns = [ - { - regex: /youtu\.be\/([\w\-.]+)/, - type: 'iframe', w: 560, h: 314, - url: '//www.youtube.com/embed/$1', - allowFullscreen: true - }, - { - regex: /youtube\.com(.+)v=([^&]+)/, - type: 'iframe', w: 560, h: 314, - url: '//www.youtube.com/embed/$2', - allowFullscreen: true - }, - { - regex: /youtube.com\/embed\/([a-z0-9\-_]+(?:\?.+)?)/i, - type: 'iframe', w: 560, h: 314, - url: '//www.youtube.com/embed/$1', - allowFullscreen: true - }, - { - regex: /vimeo\.com\/([0-9]+)/, - type: 'iframe', w: 425, h: 350, - url: '//player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc', - allowfullscreen: true - }, - { - regex: /vimeo\.com\/(.*)\/([0-9]+)/, - type: "iframe", w: 425, h: 350, - url: "//player.vimeo.com/video/$2?title=0&byline=0", - allowfullscreen: true - }, - { - regex: /maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/, - type: 'iframe', w: 425, h: 350, - url: '//maps.google.com/maps/ms?msid=$2&output=embed"', - allowFullscreen: false - }, - { - regex: /dailymotion\.com\/video\/([^_]+)/, - type: 'iframe', w: 480, h: 270, - url: '//www.dailymotion.com/embed/video/$1', - allowFullscreen: true + if (data.poster && name === 'object' && updateAll && !hasImage) { + var imgAttrs = []; + imgAttrs.map = {}; + setAttributes(imgAttrs, { + src: data.poster, + width: data.width, + height: data.height + }); + writer.start('img', imgAttrs, true); + } + writer.end(name); } - ]; - - return { - urlPatterns: urlPatterns + }, global$7({})).parse(html); + return writer.getContent(); + }; + var isEphoxEmbed$1 = function (html) { + var fragment = DOM$1.createFragment(html); + return DOM$1.getAttrib(fragment.firstChild, 'data-ephox-embed-iri') !== ''; + }; + var updateEphoxEmbed = function (html, data) { + var fragment = DOM$1.createFragment(html); + var div = fragment.firstChild; + $_7rx1rygfjfuw8por.setMaxWidth(div, data.width); + $_7rx1rygfjfuw8por.setMaxHeight(div, data.height); + return normalizeHtml(div.outerHTML); + }; + var updateHtml = function (html, data, updateAll) { + return isEphoxEmbed$1(html) ? updateEphoxEmbed(html, data) : updateHtmlSax(html, data, updateAll); + }; + var $_9oq1mlgkjfuw8pp0 = { updateHtml: updateHtml }; + + var urlPatterns = [ + { + regex: /youtu\.be\/([\w\-_\?&=.]+)/i, + type: 'iframe', + w: 560, + h: 314, + url: '//www.youtube.com/embed/$1', + allowFullscreen: true + }, + { + regex: /youtube\.com(.+)v=([^&]+)(&([a-z0-9&=\-_]+))?/i, + type: 'iframe', + w: 560, + h: 314, + url: '//www.youtube.com/embed/$2?$4', + allowFullscreen: true + }, + { + regex: /youtube.com\/embed\/([a-z0-9\?&=\-_]+)/i, + type: 'iframe', + w: 560, + h: 314, + url: '//www.youtube.com/embed/$1', + allowFullscreen: true + }, + { + regex: /vimeo\.com\/([0-9]+)/, + type: 'iframe', + w: 425, + h: 350, + url: '//player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc', + allowFullscreen: true + }, + { + regex: /vimeo\.com\/(.*)\/([0-9]+)/, + type: 'iframe', + w: 425, + h: 350, + url: '//player.vimeo.com/video/$2?title=0&byline=0', + allowFullscreen: true + }, + { + regex: /maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/, + type: 'iframe', + w: 425, + h: 350, + url: '//maps.google.com/maps/ms?msid=$2&output=embed"', + allowFullscreen: false + }, + { + regex: /dailymotion\.com\/video\/([^_]+)/, + type: 'iframe', + w: 480, + h: 270, + url: '//www.dailymotion.com/embed/video/$1', + allowFullscreen: true + }, + { + regex: /dai\.ly\/([^_]+)/, + type: 'iframe', + w: 480, + h: 270, + url: '//www.dailymotion.com/embed/video/$1', + allowFullscreen: true + } + ]; + var getUrl = function (pattern, url) { + var match = pattern.regex.exec(url); + var newUrl = pattern.url; + var _loop_1 = function (i) { + newUrl = newUrl.replace('$' + i, function () { + return match[i] ? match[i] : ''; + }); }; - } -); -/** - * DataToHtml.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.media.core.DataToHtml', - [ - 'tinymce.plugins.media.core.Mime', - 'tinymce.plugins.media.core.HtmlToData', - 'tinymce.plugins.media.core.UrlPatterns', - 'tinymce.plugins.media.core.VideoScript', - 'tinymce.plugins.media.core.UpdateHtml', - 'tinymce.core.util.Tools' - ], - function (Mime, HtmlToData, UrlPatterns, VideoScript, UpdateHtml, Tools) { - var dataToHtml = function (editor, dataIn) { - var html = ''; - var data = Tools.extend({}, dataIn); + for (var i = 0; i < match.length; i++) { + _loop_1(i); + } + return newUrl.replace(/\?$/, ''); + }; + var matchPattern = function (url) { + var pattern = urlPatterns.filter(function (pattern) { + return pattern.regex.test(url); + }); + if (pattern.length > 0) { + return global$2.extend({}, pattern[0], { url: getUrl(pattern[0], url) }); + } else { + return null; + } + }; + var getIframeHtml = function (data) { + var allowFullscreen = data.allowFullscreen ? ' allowFullscreen="1"' : ''; + return '<iframe src="' + data.source1 + '" width="' + data.width + '" height="' + data.height + '"' + allowFullscreen + '></iframe>'; + }; + var getFlashHtml = function (data) { + var html = '<object data="' + data.source1 + '" width="' + data.width + '" height="' + data.height + '" type="application/x-shockwave-flash">'; + if (data.poster) { + html += '<img src="' + data.poster + '" width="' + data.width + '" height="' + data.height + '" />'; + } + html += '</object>'; + return html; + }; + var getAudioHtml = function (data, audioTemplateCallback) { + if (audioTemplateCallback) { + return audioTemplateCallback(data); + } else { + return '<audio controls="controls" src="' + data.source1 + '">' + (data.source2 ? '\n<source src="' + data.source2 + '"' + (data.source2mime ? ' type="' + data.source2mime + '"' : '') + ' />\n' : '') + '</audio>'; + } + }; + var getVideoHtml = function (data, videoTemplateCallback) { + if (videoTemplateCallback) { + return videoTemplateCallback(data); + } else { + return '<video width="' + data.width + '" height="' + data.height + '"' + (data.poster ? ' poster="' + data.poster + '"' : '') + ' controls="controls">\n' + '<source src="' + data.source1 + '"' + (data.source1mime ? ' type="' + data.source1mime + '"' : '') + ' />\n' + (data.source2 ? '<source src="' + data.source2 + '"' + (data.source2mime ? ' type="' + data.source2mime + '"' : '') + ' />\n' : '') + '</video>'; + } + }; + var getScriptHtml = function (data) { + return '<script src="' + data.source1 + '"></script>'; + }; + var dataToHtml = function (editor, dataIn) { + var data = global$2.extend({}, dataIn); + if (!data.source1) { + global$2.extend(data, $_g969ozgbjfuw8pom.htmlToData($_bmkzfegajfuw8pol.getScripts(editor), data.embed)); if (!data.source1) { - Tools.extend(data, HtmlToData.htmlToData(editor.settings.media_scripts, data.embed)); - if (!data.source1) { - return ''; - } + return ''; } - - if (!data.source2) { - data.source2 = ''; - } - - if (!data.poster) { - data.poster = ''; + } + if (!data.source2) { + data.source2 = ''; + } + if (!data.poster) { + data.poster = ''; + } + data.source1 = editor.convertURL(data.source1, 'source'); + data.source2 = editor.convertURL(data.source2, 'source'); + data.source1mime = $_dq3p76gjjfuw8poy.guess(data.source1); + data.source2mime = $_dq3p76gjjfuw8poy.guess(data.source2); + data.poster = editor.convertURL(data.poster, 'poster'); + var pattern = matchPattern(data.source1); + if (pattern) { + data.source1 = pattern.url; + data.type = pattern.type; + data.allowFullscreen = pattern.allowFullscreen; + data.width = data.width || pattern.w; + data.height = data.height || pattern.h; + } + if (data.embed) { + return $_9oq1mlgkjfuw8pp0.updateHtml(data.embed, data, true); + } else { + var videoScript = $_9fg1sigejfuw8poq.getVideoScriptMatch($_bmkzfegajfuw8pol.getScripts(editor), data.source1); + if (videoScript) { + data.type = 'script'; + data.width = videoScript.width; + data.height = videoScript.height; } - - data.source1 = editor.convertURL(data.source1, "source"); - data.source2 = editor.convertURL(data.source2, "source"); - data.source1mime = Mime.guess(data.source1); - data.source2mime = Mime.guess(data.source2); - data.poster = editor.convertURL(data.poster, "poster"); - - Tools.each(UrlPatterns.urlPatterns, function (pattern) { - var i; - var url; - - var match = pattern.regex.exec(data.source1); - - if (match) { - url = pattern.url; - - for (i = 0; match[i]; i++) { - /*jshint loopfunc:true*/ - /*eslint no-loop-func:0 */ - url = url.replace('$' + i, function () { - return match[i]; - }); - } - - data.source1 = url; - data.type = pattern.type; - data.allowFullscreen = pattern.allowFullscreen; - data.width = data.width || pattern.w; - data.height = data.height || pattern.h; - } + var audioTemplateCallback = $_bmkzfegajfuw8pol.getAudioTemplateCallback(editor); + var videoTemplateCallback = $_bmkzfegajfuw8pol.getVideoTemplateCallback(editor); + data.width = data.width || 300; + data.height = data.height || 150; + global$2.each(data, function (value, key) { + data[key] = editor.dom.encode(value); }); - - if (data.embed) { - html = UpdateHtml.updateHtml(data.embed, data, true); + if (data.type === 'iframe') { + return getIframeHtml(data); + } else if (data.source1mime === 'application/x-shockwave-flash') { + return getFlashHtml(data); + } else if (data.source1mime.indexOf('audio') !== -1) { + return getAudioHtml(data, audioTemplateCallback); + } else if (data.type === 'script') { + return getScriptHtml(data); } else { - var videoScript = VideoScript.getVideoScriptMatch(editor.settings.media_scripts, data.source1); - if (videoScript) { - data.type = 'script'; - data.width = videoScript.width; - data.height = videoScript.height; - } - - data.width = data.width || 300; - data.height = data.height || 150; - - Tools.each(data, function (value, key) { - data[key] = editor.dom.encode(value); - }); - - if (data.type === "iframe") { - var allowFullscreen = data.allowFullscreen ? ' allowFullscreen="1"' : ''; - html += - '<iframe src="' + data.source1 + - '" width="' + data.width + - '" height="' + data.height + - '"' + allowFullscreen + '></iframe>'; - } else if (data.source1mime === "application/x-shockwave-flash") { - html += - '<object data="' + data.source1 + - '" width="' + data.width + - '" height="' + data.height + - '" type="application/x-shockwave-flash">'; - - if (data.poster) { - html += '<img src="' + data.poster + '" width="' + data.width + '" height="' + data.height + '" />'; - } - - html += '</object>'; - } else if (data.source1mime.indexOf('audio') !== -1) { - if (editor.settings.audio_template_callback) { - html = editor.settings.audio_template_callback(data); - } else { - html += ( - '<audio controls="controls" src="' + data.source1 + '">' + - ( - data.source2 ? - '\n<source src="' + data.source2 + '"' + - (data.source2mime ? ' type="' + data.source2mime + '"' : '') + - ' />\n' : '') + - '</audio>' - ); - } - } else if (data.type === "script") { - html += '<script src="' + data.source1 + '"></script>'; - } else { - if (editor.settings.video_template_callback) { - html = editor.settings.video_template_callback(data); - } else { - html = ( - '<video width="' + data.width + - '" height="' + data.height + '"' + - (data.poster ? ' poster="' + data.poster + '"' : '') + ' controls="controls">\n' + - '<source src="' + data.source1 + '"' + - (data.source1mime ? ' type="' + data.source1mime + '"' : '') + ' />\n' + - (data.source2 ? '<source src="' + data.source2 + '"' + - (data.source2mime ? ' type="' + data.source2mime + '"' : '') + ' />\n' : '') + - '</video>' - ); - } - } + return getVideoHtml(data, videoTemplateCallback); } - - return html; - }; - - return { - dataToHtml: dataToHtml - }; - } -); -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.util.Promise', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.util.Promise'); - } -); - -/** - * Service.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.media.core.Service', - [ - 'tinymce.plugins.media.core.DataToHtml', - 'tinymce.core.util.Promise' - ], - function (DataToHtml, Promise) { - var embedPromise = function (data, dataToHtml, handler) { - var cache = {}; - return new Promise(function (res, rej) { - var wrappedResolve = function (response) { - if (response.html) { - cache[data.source1] = response; - } - return res({ - url: data.source1, - html: response.html ? response.html : dataToHtml(data) - }); - }; - if (cache[data.source1]) { - wrappedResolve(cache[data.source1]); - } else { - handler({ url: data.source1 }, wrappedResolve, rej); + } + }; + var $_ekbiypgijfuw8pov = { dataToHtml: dataToHtml }; + + var cache = {}; + var embedPromise = function (data, dataToHtml, handler) { + return new global$5(function (res, rej) { + var wrappedResolve = function (response) { + if (response.html) { + cache[data.source1] = response; } + return res({ + url: data.source1, + html: response.html ? response.html : dataToHtml(data) + }); + }; + if (cache[data.source1]) { + wrappedResolve(cache[data.source1]); + } else { + handler({ url: data.source1 }, wrappedResolve, rej); + } + }); + }; + var defaultPromise = function (data, dataToHtml) { + return new global$5(function (res) { + res({ + html: dataToHtml(data), + url: data.source1 }); + }); + }; + var loadedData = function (editor) { + return function (data) { + return $_ekbiypgijfuw8pov.dataToHtml(editor, data); }; + }; + var getEmbedHtml = function (editor, data) { + var embedHandler = $_bmkzfegajfuw8pol.getUrlResolver(editor); + return embedHandler ? embedPromise(data, loadedData(editor), embedHandler) : defaultPromise(data, loadedData(editor)); + }; + var isCached = function (url) { + return cache.hasOwnProperty(url); + }; + var $_6v4rhbggjfuw8pos = { + getEmbedHtml: getEmbedHtml, + isCached: isCached + }; - var defaultPromise = function (data, dataToHtml) { - return new Promise(function (res) { - res({ html: dataToHtml(data), url: data.source1 }); + var doSyncSize = function (widthCtrl, heightCtrl) { + widthCtrl.state.set('oldVal', widthCtrl.value()); + heightCtrl.state.set('oldVal', heightCtrl.value()); + }; + var doSizeControls = function (win, f) { + var widthCtrl = win.find('#width')[0]; + var heightCtrl = win.find('#height')[0]; + var constrained = win.find('#constrain')[0]; + if (widthCtrl && heightCtrl && constrained) { + f(widthCtrl, heightCtrl, constrained.checked()); + } + }; + var doUpdateSize = function (widthCtrl, heightCtrl, isContrained) { + var oldWidth = widthCtrl.state.get('oldVal'); + var oldHeight = heightCtrl.state.get('oldVal'); + var newWidth = widthCtrl.value(); + var newHeight = heightCtrl.value(); + if (isContrained && oldWidth && oldHeight && newWidth && newHeight) { + if (newWidth !== oldWidth) { + newHeight = Math.round(newWidth / oldWidth * newHeight); + if (!isNaN(newHeight)) { + heightCtrl.value(newHeight); + } + } else { + newWidth = Math.round(newHeight / oldHeight * newWidth); + if (!isNaN(newWidth)) { + widthCtrl.value(newWidth); + } + } + } + doSyncSize(widthCtrl, heightCtrl); + }; + var syncSize = function (win) { + doSizeControls(win, doSyncSize); + }; + var updateSize = function (win) { + doSizeControls(win, doUpdateSize); + }; + var createUi = function (onChange) { + var recalcSize = function () { + onChange(function (win) { + updateSize(win); }); }; - - var loadedData = function (editor) { - return function (data) { - return DataToHtml.dataToHtml(editor, data); - }; - }; - - var getEmbedHtml = function (editor, data) { - var embedHandler = editor.settings.media_url_resolver; - - return embedHandler ? embedPromise(data, loadedData(editor), embedHandler) : defaultPromise(data, loadedData(editor)); - }; - return { - getEmbedHtml: getEmbedHtml + type: 'container', + label: 'Dimensions', + layout: 'flex', + align: 'center', + spacing: 5, + items: [ + { + name: 'width', + type: 'textbox', + maxLength: 5, + size: 5, + onchange: recalcSize, + ariaLabel: 'Width' + }, + { + type: 'label', + text: 'x' + }, + { + name: 'height', + type: 'textbox', + maxLength: 5, + size: 5, + onchange: recalcSize, + ariaLabel: 'Height' + }, + { + name: 'constrain', + type: 'checkbox', + checked: true, + text: 'Constrain proportions' + } + ] }; - } -); -/** - * SizeManager.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ + }; + var $_32c8argojfuw8ppe = { + createUi: createUi, + syncSize: syncSize, + updateSize: updateSize + }; -define( - 'tinymce.plugins.media.ui.SizeManager', - [ - ], - function () { - var doSyncSize = function (widthCtrl, heightCtrl) { - widthCtrl.state.set('oldVal', widthCtrl.value()); - heightCtrl.state.set('oldVal', heightCtrl.value()); + var embedChange = global$1.ie && global$1.ie <= 8 ? 'onChange' : 'onInput'; + var handleError = function (editor) { + return function (error) { + var errorMessage = error && error.msg ? 'Media embed handler error: ' + error.msg : 'Media embed handler threw unknown error.'; + editor.notificationManager.open({ + type: 'error', + text: errorMessage + }); }; - var doSizeControls = function (win, f) { - var widthCtrl = win.find('#width')[0]; - var heightCtrl = win.find('#height')[0]; - var constrained = win.find('#constrain')[0]; - if (widthCtrl && heightCtrl && constrained) { - f(widthCtrl, heightCtrl, constrained.checked()); + }; + var getData = function (editor) { + var element = editor.selection.getNode(); + var dataEmbed = element.getAttribute('data-ephox-embed-iri'); + if (dataEmbed) { + return { + 'source1': dataEmbed, + 'data-ephox-embed-iri': dataEmbed, + 'width': $_7rx1rygfjfuw8por.getMaxWidth(element), + 'height': $_7rx1rygfjfuw8por.getMaxHeight(element) + }; + } + return element.getAttribute('data-mce-object') ? $_g969ozgbjfuw8pom.htmlToData($_bmkzfegajfuw8pol.getScripts(editor), editor.serializer.serialize(element, { selection: true })) : {}; + }; + var getSource = function (editor) { + var elm = editor.selection.getNode(); + if (elm.getAttribute('data-mce-object') || elm.getAttribute('data-ephox-embed-iri')) { + return editor.selection.getContent(); + } + }; + var addEmbedHtml = function (win, editor) { + return function (response) { + var html = response.html; + var embed = win.find('#embed')[0]; + var data = global$2.extend($_g969ozgbjfuw8pom.htmlToData($_bmkzfegajfuw8pol.getScripts(editor), html), { source1: response.url }); + win.fromJSON(data); + if (embed) { + embed.value(html); + $_32c8argojfuw8ppe.updateSize(win); } }; - - var doUpdateSize = function (widthCtrl, heightCtrl, isContrained) { - var oldWidth = widthCtrl.state.get('oldVal'); - var oldHeight = heightCtrl.state.get('oldVal'); - var newWidth = widthCtrl.value(); - var newHeight = heightCtrl.value(); - - if (isContrained && oldWidth && oldHeight && newWidth && newHeight) { - if (newWidth !== oldWidth) { - newHeight = Math.round((newWidth / oldWidth) * newHeight); - - if (!isNaN(newHeight)) { - heightCtrl.value(newHeight); - } - } else { - newWidth = Math.round((newHeight / oldHeight) * newWidth); - - if (!isNaN(newWidth)) { - widthCtrl.value(newWidth); - } + }; + var selectPlaceholder = function (editor, beforeObjects) { + var i; + var y; + var afterObjects = editor.dom.select('img[data-mce-object]'); + for (i = 0; i < beforeObjects.length; i++) { + for (y = afterObjects.length - 1; y >= 0; y--) { + if (beforeObjects[i] === afterObjects[y]) { + afterObjects.splice(y, 1); } } - - doSyncSize(widthCtrl, heightCtrl); + } + editor.selection.select(afterObjects[0]); + }; + var handleInsert = function (editor, html) { + var beforeObjects = editor.dom.select('img[data-mce-object]'); + editor.insertContent(html); + selectPlaceholder(editor, beforeObjects); + editor.nodeChanged(); + }; + var submitForm = function (win, editor) { + var data = win.toJSON(); + data.embed = $_9oq1mlgkjfuw8pp0.updateHtml(data.embed, data); + if (data.embed && $_6v4rhbggjfuw8pos.isCached(data.source1)) { + handleInsert(editor, data.embed); + } else { + $_6v4rhbggjfuw8pos.getEmbedHtml(editor, data).then(function (response) { + handleInsert(editor, response.html); + }).catch(handleError(editor)); + } + }; + var populateMeta = function (win, meta) { + global$2.each(meta, function (value, key) { + win.find('#' + key).value(value); + }); + }; + var showDialog = function (editor) { + var win; + var data; + var generalFormItems = [{ + name: 'source1', + type: 'filepicker', + filetype: 'media', + size: 40, + autofocus: true, + label: 'Source', + onpaste: function () { + setTimeout(function () { + $_6v4rhbggjfuw8pos.getEmbedHtml(editor, win.toJSON()).then(addEmbedHtml(win, editor)).catch(handleError(editor)); + }, 1); + }, + onchange: function (e) { + $_6v4rhbggjfuw8pos.getEmbedHtml(editor, win.toJSON()).then(addEmbedHtml(win, editor)).catch(handleError(editor)); + populateMeta(win, e.meta); + }, + onbeforecall: function (e) { + e.meta = win.toJSON(); + } + }]; + var advancedFormItems = []; + var reserialise = function (update) { + update(win); + data = win.toJSON(); + win.find('#embed').value($_9oq1mlgkjfuw8pp0.updateHtml(data.embed, data)); }; - - var syncSize = function (win) { - doSizeControls(win, doSyncSize); + if ($_bmkzfegajfuw8pol.hasAltSource(editor)) { + advancedFormItems.push({ + name: 'source2', + type: 'filepicker', + filetype: 'media', + size: 40, + label: 'Alternative source' + }); + } + if ($_bmkzfegajfuw8pol.hasPoster(editor)) { + advancedFormItems.push({ + name: 'poster', + type: 'filepicker', + filetype: 'image', + size: 40, + label: 'Poster' + }); + } + if ($_bmkzfegajfuw8pol.hasDimensions(editor)) { + var control = $_32c8argojfuw8ppe.createUi(reserialise); + generalFormItems.push(control); + } + data = getData(editor); + var embedTextBox = { + id: 'mcemediasource', + type: 'textbox', + flex: 1, + name: 'embed', + value: getSource(editor), + multiline: true, + rows: 5, + label: 'Source' }; - - var updateSize = function (win) { - doSizeControls(win, doUpdateSize); + var updateValueOnChange = function () { + data = global$2.extend({}, $_g969ozgbjfuw8pom.htmlToData($_bmkzfegajfuw8pol.getScripts(editor), this.value())); + this.parent().parent().fromJSON(data); }; - - var createUi = function (onChange) { - var recalcSize = function () { - onChange(function (win) { - updateSize(win); - }); - }; - - return { + embedTextBox[embedChange] = updateValueOnChange; + var body = [ + { + title: 'General', + type: 'form', + items: generalFormItems + }, + { + title: 'Embed', type: 'container', - label: 'Dimensions', layout: 'flex', - align: 'center', - spacing: 5, + direction: 'column', + align: 'stretch', + padding: 10, + spacing: 10, items: [ { - name: 'width', type: 'textbox', maxLength: 5, size: 5, - onchange: recalcSize, ariaLabel: 'Width' + type: 'label', + text: 'Paste your embed code below:', + forId: 'mcemediasource' }, - { type: 'label', text: 'x' }, - { - name: 'height', type: 'textbox', maxLength: 5, size: 5, - onchange: recalcSize, ariaLabel: 'Height' - }, - { name: 'constrain', type: 'checkbox', checked: true, text: 'Constrain proportions' } + embedTextBox ] - }; - }; - - return { - createUi: createUi, - syncSize: syncSize, - updateSize: updateSize - }; - } -); -/** - * Dialog.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.media.ui.Dialog', - [ - 'tinymce.core.util.Delay', - 'tinymce.plugins.media.core.HtmlToData', - 'tinymce.plugins.media.core.UpdateHtml', - 'tinymce.plugins.media.core.Service', - 'tinymce.plugins.media.core.Size', - 'tinymce.core.util.Tools', - 'tinymce.core.Env', - 'tinymce.plugins.media.ui.SizeManager' - ], - function (Delay, HtmlToData, UpdateHtml, Service, Size, Tools, Env, SizeManager) { - var embedChange = (Env.ie && Env.ie <= 8) ? 'onChange' : 'onInput'; - - var handleError = function (editor) { - return function (error) { - var errorMessage = error && error.msg ? - 'Media embed handler error: ' + error.msg : - 'Media embed handler threw unknown error.'; - editor.notificationManager.open({ type: 'error', text: errorMessage }); - }; - }; - - var getData = function (editor) { - var element = editor.selection.getNode(); - var dataEmbed = element.getAttribute('data-ephox-embed-iri'); - - if (dataEmbed) { - return { - source1: dataEmbed, - 'data-ephox-embed-iri': dataEmbed, - width: Size.getMaxWidth(element), - height: Size.getMaxHeight(element) - }; } + ]; + if (advancedFormItems.length > 0) { + body.push({ + title: 'Advanced', + type: 'form', + items: advancedFormItems + }); + } + win = editor.windowManager.open({ + title: 'Insert/edit media', + data: data, + bodyType: 'tabpanel', + body: body, + onSubmit: function () { + $_32c8argojfuw8ppe.updateSize(win); + submitForm(win, editor); + } + }); + $_32c8argojfuw8ppe.syncSize(win); + }; + var $_92htb0g7jfuw8pog = { showDialog: showDialog }; - return element.getAttribute('data-mce-object') ? - HtmlToData.htmlToData(editor.settings.media_scripts, editor.serializer.serialize(element, { selection: true })) : - {}; + var get = function (editor) { + var showDialog = function () { + $_92htb0g7jfuw8pog.showDialog(editor); }; + return { showDialog: showDialog }; + }; + var $_4zi4sfg6jfuw8poe = { get: get }; - var getSource = function (editor) { - var elm = editor.selection.getNode(); - - if (elm.getAttribute('data-mce-object') || elm.getAttribute('data-ephox-embed-iri')) { - return editor.selection.getContent(); - } + var register = function (editor) { + var showDialog = function () { + $_92htb0g7jfuw8pog.showDialog(editor); }; + editor.addCommand('mceMedia', showDialog); + }; + var $_1si9ufgpjfuw8ppg = { register: register }; - var addEmbedHtml = function (win, editor) { - return function (response) { - var html = response.html; - var embed = win.find('#embed')[0]; - var data = Tools.extend(HtmlToData.htmlToData(editor.settings.media_scripts, html), { source1: response.url }); - win.fromJSON(data); + var global$8 = tinymce.util.Tools.resolve('tinymce.html.Node'); - if (embed) { - embed.value(html); - SizeManager.updateSize(win); + var sanitize = function (editor, html) { + if ($_bmkzfegajfuw8pol.shouldFilterHtml(editor) === false) { + return html; + } + var writer = global$6(); + var blocked; + global$3({ + validate: false, + allow_conditional_comments: false, + special: 'script,noscript', + comment: function (text) { + writer.comment(text); + }, + cdata: function (text) { + writer.cdata(text); + }, + text: function (text, raw) { + writer.text(text, raw); + }, + start: function (name, attrs, empty) { + blocked = true; + if (name === 'script' || name === 'noscript') { + return; } - }; - }; - - var selectPlaceholder = function (editor, beforeObjects) { - var i; - var y; - var afterObjects = editor.dom.select('img[data-mce-object]'); - - // Find new image placeholder so we can select it - for (i = 0; i < beforeObjects.length; i++) { - for (y = afterObjects.length - 1; y >= 0; y--) { - if (beforeObjects[i] === afterObjects[y]) { - afterObjects.splice(y, 1); + for (var i = 0; i < attrs.length; i++) { + if (attrs[i].name.indexOf('on') === 0) { + return; } - } - } - - editor.selection.select(afterObjects[0]); - }; - - var handleInsert = function (editor, html) { - var beforeObjects = editor.dom.select('img[data-mce-object]'); - - editor.insertContent(html); - selectPlaceholder(editor, beforeObjects); - editor.nodeChanged(); - }; - - var submitForm = function (win, editor) { - var data = win.toJSON(); - - data.embed = UpdateHtml.updateHtml(data.embed, data); - - if (data.embed) { - handleInsert(editor, data.embed); - } else { - Service.getEmbedHtml(editor, data) - .then(function (response) { - handleInsert(editor, response.html); - })["catch"](handleError(editor)); - } - }; - - var populateMeta = function (win, meta) { - Tools.each(meta, function (value, key) { - win.find('#' + key).value(value); - }); - }; - - var showDialog = function (editor) { - var win; - var data; - - var generalFormItems = [ - { - name: 'source1', - type: 'filepicker', - filetype: 'media', - size: 40, - autofocus: true, - label: 'Source', - onpaste: function () { - setTimeout(function () { - Service.getEmbedHtml(editor, win.toJSON()) - .then( - addEmbedHtml(win, editor) - )["catch"](handleError(editor)); - }, 1); - }, - onchange: function (e) { - Service.getEmbedHtml(editor, win.toJSON()) - .then( - addEmbedHtml(win, editor) - )["catch"](handleError(editor)); - - populateMeta(win, e.meta); - }, - onbeforecall: function (e) { - e.meta = win.toJSON(); + if (attrs[i].name === 'style') { + attrs[i].value = editor.dom.serializeStyle(editor.dom.parseStyle(attrs[i].value), name); } } - ]; - - var advancedFormItems = []; - - var reserialise = function (update) { - update(win); - data = win.toJSON(); - win.find('#embed').value(UpdateHtml.updateHtml(data.embed, data)); - }; - - if (editor.settings.media_alt_source !== false) { - advancedFormItems.push({ name: 'source2', type: 'filepicker', filetype: 'media', size: 40, label: 'Alternative source' }); + writer.start(name, attrs, empty); + blocked = false; + }, + end: function (name) { + if (blocked) { + return; + } + writer.end(name); } - - if (editor.settings.media_poster !== false) { - advancedFormItems.push({ name: 'poster', type: 'filepicker', filetype: 'image', size: 40, label: 'Poster' }); + }, global$7({})).parse(html); + return writer.getContent(); + }; + var $_77d5ybgtjfuw8ppp = { sanitize: sanitize }; + + var createPlaceholderNode = function (editor, node) { + var placeHolder; + var name = node.name; + placeHolder = new global$8('img', 1); + placeHolder.shortEnded = true; + retainAttributesAndInnerHtml(editor, node, placeHolder); + placeHolder.attr({ + 'width': node.attr('width') || '300', + 'height': node.attr('height') || (name === 'audio' ? '30' : '150'), + 'style': node.attr('style'), + 'src': global$1.transparentSrc, + 'data-mce-object': name, + 'class': 'mce-object mce-object-' + name + }); + return placeHolder; + }; + var createPreviewIframeNode = function (editor, node) { + var previewWrapper; + var previewNode; + var shimNode; + var name = node.name; + previewWrapper = new global$8('span', 1); + previewWrapper.attr({ + 'contentEditable': 'false', + 'style': node.attr('style'), + 'data-mce-object': name, + 'class': 'mce-preview-object mce-object-' + name + }); + retainAttributesAndInnerHtml(editor, node, previewWrapper); + previewNode = new global$8(name, 1); + previewNode.attr({ + src: node.attr('src'), + allowfullscreen: node.attr('allowfullscreen'), + style: node.attr('style'), + class: node.attr('class'), + width: node.attr('width'), + height: node.attr('height'), + frameborder: '0' + }); + shimNode = new global$8('span', 1); + shimNode.attr('class', 'mce-shim'); + previewWrapper.append(previewNode); + previewWrapper.append(shimNode); + return previewWrapper; + }; + var retainAttributesAndInnerHtml = function (editor, sourceNode, targetNode) { + var attrName; + var attrValue; + var attribs; + var ai; + var innerHtml; + attribs = sourceNode.attributes; + ai = attribs.length; + while (ai--) { + attrName = attribs[ai].name; + attrValue = attribs[ai].value; + if (attrName !== 'width' && attrName !== 'height' && attrName !== 'style') { + if (attrName === 'data' || attrName === 'src') { + attrValue = editor.convertURL(attrValue, attrName); + } + targetNode.attr('data-mce-p-' + attrName, attrValue); } - - if (editor.settings.media_dimensions !== false) { - var control = SizeManager.createUi(reserialise); - generalFormItems.push(control); + } + innerHtml = sourceNode.firstChild && sourceNode.firstChild.value; + if (innerHtml) { + targetNode.attr('data-mce-html', escape($_77d5ybgtjfuw8ppp.sanitize(editor, innerHtml))); + targetNode.firstChild = null; + } + }; + var isWithinEphoxEmbed = function (node) { + while (node = node.parent) { + if (node.attr('data-ephox-embed-iri')) { + return true; } - - data = getData(editor); - - var embedTextBox = { - id: 'mcemediasource', - type: 'textbox', - flex: 1, - name: 'embed', - value: getSource(editor), - multiline: true, - rows: 5, - label: 'Source' - }; - - var updateValueOnChange = function () { - data = Tools.extend({}, HtmlToData.htmlToData(editor.settings.media_scripts, this.value())); - this.parent().parent().fromJSON(data); - }; - - embedTextBox[embedChange] = updateValueOnChange; - - win = editor.windowManager.open({ - title: 'Insert/edit media', - data: data, - bodyType: 'tabpanel', - body: [ - { - title: 'General', - type: "form", - items: generalFormItems - }, - - { - title: 'Embed', - type: "container", - layout: 'flex', - direction: 'column', - align: 'stretch', - padding: 10, - spacing: 10, - items: [ - { - type: 'label', - text: 'Paste your embed code below:', - forId: 'mcemediasource' - }, - embedTextBox - ] - }, - - { - title: 'Advanced', - type: "form", - items: advancedFormItems + } + return false; + }; + var placeHolderConverter = function (editor) { + return function (nodes) { + var i = nodes.length; + var node; + var videoScript; + while (i--) { + node = nodes[i]; + if (!node.parent) { + continue; + } + if (node.parent.attr('data-mce-object')) { + continue; + } + if (node.name === 'script') { + videoScript = $_9fg1sigejfuw8poq.getVideoScriptMatch($_bmkzfegajfuw8pol.getScripts(editor), node.attr('src')); + if (!videoScript) { + continue; } - ], - onSubmit: function () { - SizeManager.updateSize(win); - submitForm(win, editor); } - }); - - SizeManager.syncSize(win); - }; - - return { - showDialog: showDialog + if (videoScript) { + if (videoScript.width) { + node.attr('width', videoScript.width.toString()); + } + if (videoScript.height) { + node.attr('height', videoScript.height.toString()); + } + } + if (node.name === 'iframe' && $_bmkzfegajfuw8pol.hasLiveEmbeds(editor) && global$1.ceFalse) { + if (!isWithinEphoxEmbed(node)) { + node.replace(createPreviewIframeNode(editor, node)); + } + } else { + if (!isWithinEphoxEmbed(node)) { + node.replace(createPlaceholderNode(editor, node)); + } + } + } }; - } -); -/** - * Plugin.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.media.Plugin', - [ - 'tinymce.core.html.Node', - 'tinymce.core.PluginManager', - 'tinymce.core.util.Tools', - 'tinymce.plugins.media.core.Nodes', - 'tinymce.plugins.media.core.Sanitize', - 'tinymce.plugins.media.core.UpdateHtml', - 'tinymce.plugins.media.ui.Dialog' - ], - function (Node, PluginManager, Tools, Nodes, Sanitize, UpdateHtml, Dialog) { - var Plugin = function (editor) { - editor.on('ResolveName', function (e) { - var name; + }; + var $_bp9pftgsjfuw8ppl = { + createPreviewIframeNode: createPreviewIframeNode, + createPlaceholderNode: createPlaceholderNode, + placeHolderConverter: placeHolderConverter + }; - if (e.target.nodeType === 1 && (name = e.target.getAttribute("data-mce-object"))) { - e.name = name; - } + var setup = function (editor) { + editor.on('preInit', function () { + var specialElements = editor.schema.getSpecialElements(); + global$2.each('video audio iframe object'.split(' '), function (name) { + specialElements[name] = new RegExp('</' + name + '[^>]*>', 'gi'); }); - - editor.on('preInit', function () { - // Make sure that any messy HTML is retained inside these - var specialElements = editor.schema.getSpecialElements(); - Tools.each('video audio iframe object'.split(' '), function (name) { - specialElements[name] = new RegExp('<\/' + name + '[^>]*>', 'gi'); - }); - - // Allow elements - //editor.schema.addValidElements( - // 'object[id|style|width|height|classid|codebase|*],embed[id|style|width|height|type|src|*],video[*],audio[*]' - //); - - // Set allowFullscreen attribs as boolean - var boolAttrs = editor.schema.getBoolAttrs(); - Tools.each('webkitallowfullscreen mozallowfullscreen allowfullscreen'.split(' '), function (name) { - boolAttrs[name] = {}; - }); - - // Converts iframe, video etc into placeholder images - editor.parser.addNodeFilter('iframe,video,audio,object,embed,script', - Nodes.placeHolderConverter(editor)); - - // Replaces placeholder images with real elements for video, object, iframe etc - editor.serializer.addAttributeFilter('data-mce-object', function (nodes, name) { - var i = nodes.length; - var node; - var realElm; - var ai; - var attribs; - var innerHtml; - var innerNode; - var realElmName; - var className; - - while (i--) { - node = nodes[i]; - if (!node.parent) { - continue; - } - - realElmName = node.attr(name); - realElm = new Node(realElmName, 1); - - // Add width/height to everything but audio - if (realElmName !== "audio" && realElmName !== "script") { - className = node.attr('class'); - if (className && className.indexOf('mce-preview-object') !== -1) { - realElm.attr({ - width: node.firstChild.attr('width'), - height: node.firstChild.attr('height') - }); - } else { - realElm.attr({ - width: node.attr('width'), - height: node.attr('height') - }); - } - } - - realElm.attr({ - style: node.attr('style') - }); - - // Unprefix all placeholder attributes - attribs = node.attributes; - ai = attribs.length; - while (ai--) { - var attrName = attribs[ai].name; - - if (attrName.indexOf('data-mce-p-') === 0) { - realElm.attr(attrName.substr(11), attribs[ai].value); - } - } - - if (realElmName === "script") { - realElm.attr('type', 'text/javascript'); + var boolAttrs = editor.schema.getBoolAttrs(); + global$2.each('webkitallowfullscreen mozallowfullscreen allowfullscreen'.split(' '), function (name) { + boolAttrs[name] = {}; + }); + editor.parser.addNodeFilter('iframe,video,audio,object,embed,script', $_bp9pftgsjfuw8ppl.placeHolderConverter(editor)); + editor.serializer.addAttributeFilter('data-mce-object', function (nodes, name) { + var i = nodes.length; + var node; + var realElm; + var ai; + var attribs; + var innerHtml; + var innerNode; + var realElmName; + var className; + while (i--) { + node = nodes[i]; + if (!node.parent) { + continue; + } + realElmName = node.attr(name); + realElm = new global$8(realElmName, 1); + if (realElmName !== 'audio' && realElmName !== 'script') { + className = node.attr('class'); + if (className && className.indexOf('mce-preview-object') !== -1) { + realElm.attr({ + width: node.firstChild.attr('width'), + height: node.firstChild.attr('height') + }); + } else { + realElm.attr({ + width: node.attr('width'), + height: node.attr('height') + }); } - - // Inject innerhtml - innerHtml = node.attr('data-mce-html'); - if (innerHtml) { - innerNode = new Node('#text', 3); - innerNode.raw = true; - innerNode.value = Sanitize.sanitize(editor, unescape(innerHtml)); - realElm.append(innerNode); + } + realElm.attr({ style: node.attr('style') }); + attribs = node.attributes; + ai = attribs.length; + while (ai--) { + var attrName = attribs[ai].name; + if (attrName.indexOf('data-mce-p-') === 0) { + realElm.attr(attrName.substr(11), attribs[ai].value); } - - node.replace(realElm); } - }); - }); - - editor.on('click keyup', function () { - var selectedNode = editor.selection.getNode(); - - if (selectedNode && editor.dom.hasClass(selectedNode, 'mce-preview-object')) { - if (editor.dom.getAttrib(selectedNode, 'data-mce-selected')) { - selectedNode.setAttribute('data-mce-selected', '2'); + if (realElmName === 'script') { + realElm.attr('type', 'text/javascript'); + } + innerHtml = node.attr('data-mce-html'); + if (innerHtml) { + innerNode = new global$8('#text', 3); + innerNode.raw = true; + innerNode.value = $_77d5ybgtjfuw8ppp.sanitize(editor, unescape(innerHtml)); + realElm.append(innerNode); } + node.replace(realElm); } }); - - editor.on('ObjectSelected', function (e) { - var objectType = e.target.getAttribute('data-mce-object'); - - if (objectType === "audio" || objectType === "script") { - e.preventDefault(); + }); + editor.on('setContent', function () { + editor.$('span.mce-preview-object').each(function (index, elm) { + var $elm = editor.$(elm); + if ($elm.find('span.mce-shim', elm).length === 0) { + $elm.append('<span class="mce-shim"></span>'); } }); + }); + }; + var $_7xjmklgqjfuw8pph = { setup: setup }; - editor.on('objectResized', function (e) { - var target = e.target; - var html; - - if (target.getAttribute('data-mce-object')) { - html = target.getAttribute('data-mce-html'); - if (html) { - html = unescape(html); - target.setAttribute('data-mce-html', escape( - UpdateHtml.updateHtml(html, { - width: e.width, - height: e.height - }) - )); - } + var setup$1 = function (editor) { + editor.on('ResolveName', function (e) { + var name; + if (e.target.nodeType === 1 && (name = e.target.getAttribute('data-mce-object'))) { + e.name = name; + } + }); + }; + var $_8fr4logujfuw8ppr = { setup: setup$1 }; + + var setup$2 = function (editor) { + editor.on('click keyup', function () { + var selectedNode = editor.selection.getNode(); + if (selectedNode && editor.dom.hasClass(selectedNode, 'mce-preview-object')) { + if (editor.dom.getAttrib(selectedNode, 'data-mce-selected')) { + selectedNode.setAttribute('data-mce-selected', '2'); } - }); - - this.showDialog = function () { - Dialog.showDialog(editor); - }; - - editor.addButton('media', { - tooltip: 'Insert/edit media', - onclick: this.showDialog, - stateSelector: ['img[data-mce-object]', 'span[data-mce-object]', 'div[data-ephox-embed-iri]'] - }); - - editor.addMenuItem('media', { - icon: 'media', - text: 'Media', - onclick: this.showDialog, - context: 'insert', - prependToContext: true - }); - - editor.on('setContent', function () { - // TODO: This shouldn't be needed there should be a way to mark bogus - // elements so they are never removed except external save - editor.$('span.mce-preview-object').each(function (index, elm) { - var $elm = editor.$(elm); - - if ($elm.find('span.mce-shim', elm).length === 0) { - $elm.append('<span class="mce-shim"></span>'); - } - }); - }); - - editor.addCommand('mceMedia', this.showDialog); - }; - - PluginManager.add('media', Plugin); - - return function () { }; + } + }); + editor.on('ObjectSelected', function (e) { + var objectType = e.target.getAttribute('data-mce-object'); + if (objectType === 'audio' || objectType === 'script') { + e.preventDefault(); + } + }); + editor.on('objectResized', function (e) { + var target = e.target; + var html; + if (target.getAttribute('data-mce-object')) { + html = target.getAttribute('data-mce-html'); + if (html) { + html = unescape(html); + target.setAttribute('data-mce-html', escape($_9oq1mlgkjfuw8pp0.updateHtml(html, { + width: e.width, + height: e.height + }))); + } + } + }); + }; + var $_b7skwpgvjfuw8pps = { setup: setup$2 }; + + var register$1 = function (editor) { + editor.addButton('media', { + tooltip: 'Insert/edit media', + cmd: 'mceMedia', + stateSelector: [ + 'img[data-mce-object]', + 'span[data-mce-object]', + 'div[data-ephox-embed-iri]' + ] + }); + editor.addMenuItem('media', { + icon: 'media', + text: 'Media', + cmd: 'mceMedia', + context: 'insert', + prependToContext: true + }); + }; + var $_7zyd29gwjfuw8ppt = { register: register$1 }; + + global.add('media', function (editor) { + $_1si9ufgpjfuw8ppg.register(editor); + $_7zyd29gwjfuw8ppt.register(editor); + $_8fr4logujfuw8ppr.setup(editor); + $_7xjmklgqjfuw8pph.setup(editor); + $_b7skwpgvjfuw8pps.setup(editor); + return $_4zi4sfg6jfuw8poe.get(editor); + }); + function Plugin () { } -); + return Plugin; -dem('tinymce.plugins.media.Plugin')(); +}()); })(); diff --git a/wp-includes/js/tinymce/plugins/media/plugin.min.js b/wp-includes/js/tinymce/plugins/media/plugin.min.js index 8373a0008..0dd06ba68 100644 --- a/wp-includes/js/tinymce/plugins/media/plugin.min.js +++ b/wp-includes/js/tinymce/plugins/media/plugin.min.js @@ -1 +1 @@ -!function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("8",tinymce.util.Tools.resolve),g("1",["8"],function(a){return a("tinymce.html.Node")}),g("2",["8"],function(a){return a("tinymce.PluginManager")}),g("3",["8"],function(a){return a("tinymce.util.Tools")}),g("9",["8"],function(a){return a("tinymce.html.Writer")}),g("a",["8"],function(a){return a("tinymce.html.SaxParser")}),g("b",["8"],function(a){return a("tinymce.html.Schema")}),g("5",["3","9","a","b"],function(a,b,c,d){var e=function(a,e){if(a.settings.media_filter_html===!1)return e;var f,g=new b;return new c({validate:!1,allow_conditional_comments:!1,special:"script,noscript",comment:function(a){g.comment(a)},cdata:function(a){g.cdata(a)},text:function(a,b){g.text(a,b)},start:function(b,c,d){if(f=!0,"script"!==b&&"noscript"!==b){for(var e=0;e<c.length;e++){if(0===c[e].name.indexOf("on"))return;"style"===c[e].name&&(c[e].value=a.dom.serializeStyle(a.dom.parseStyle(c[e].value),b))}g.start(b,c,d),f=!1}},end:function(a){f||g.end(a)}},new d({})).parse(e),g.getContent()};return{sanitize:e}}),g("c",[],function(){var a=function(a,b){if(a)for(var c=0;c<a.length;c++)if(b.indexOf(a[c].filter)!==-1)return a[c]};return{getVideoScriptMatch:a}}),g("d",["8"],function(a){return a("tinymce.Env")}),g("4",["5","c","1","d"],function(a,b,c,d){var e=function(a,b){var e,f=b.name;return e=new c("img",1),e.shortEnded=!0,g(a,b,e),e.attr({width:b.attr("width")||"300",height:b.attr("height")||("audio"===f?"30":"150"),style:b.attr("style"),src:d.transparentSrc,"data-mce-object":f,"class":"mce-object mce-object-"+f}),e},f=function(a,b){var d,e,f,h=b.name;return d=new c("span",1),d.attr({contentEditable:"false",style:b.attr("style"),"data-mce-object":h,"class":"mce-preview-object mce-object-"+h}),g(a,b,d),e=new c(h,1),e.attr({src:b.attr("src"),allowfullscreen:b.attr("allowfullscreen"),width:b.attr("width")||"300",height:b.attr("height")||("audio"===h?"30":"150"),frameborder:"0"}),f=new c("span",1),f.attr("class","mce-shim"),d.append(e),d.append(f),d},g=function(b,c,d){var e,f,g,h,i;for(g=c.attributes,h=g.length;h--;)e=g[h].name,f=g[h].value,"width"!==e&&"height"!==e&&"style"!==e&&("data"!==e&&"src"!==e||(f=b.convertURL(f,e)),d.attr("data-mce-p-"+e,f));i=c.firstChild&&c.firstChild.value,i&&(d.attr("data-mce-html",escape(a.sanitize(b,i))),d.firstChild=null)},h=function(a){for(;a=a.parent;)if(a.attr("data-ephox-embed-iri"))return!0;return!1},i=function(a){return function(c){for(var g,i,j=c.length;j--;)g=c[j],g.parent&&(g.parent.attr("data-mce-object")||("script"!==g.name||(i=b.getVideoScriptMatch(a.settings.media_scripts,g.attr("src"))))&&(i&&(i.width&&g.attr("width",i.width.toString()),i.height&&g.attr("height",i.height.toString())),"iframe"===g.name&&a.settings.media_live_embeds!==!1&&d.ceFalse?h(g)||g.replace(f(a,g)):h(g)||g.replace(e(a,g))))}};return{createPreviewIframeNode:f,createPlaceholderNode:e,placeHolderConverter:i}}),g("e",["8"],function(a){return a("tinymce.dom.DOMUtils")}),g("f",[],function(){var a=function(a){return a.replace(/px$/,"")},b=function(a){return/^[0-9.]+$/.test(a)?a+"px":a},c=function(b){return function(c){return c?a(c.style[b]):""}},d=function(a){return function(c,d){c&&(c.style[a]=b(d))}};return{getMaxWidth:c("maxWidth"),getMaxHeight:c("maxHeight"),setMaxWidth:d("maxWidth"),setMaxHeight:d("maxHeight")}}),g("6",["9","a","b","e","f"],function(a,b,c,d,e){var f=d.DOM,g=function(a,b){var c,d,e,f;for(c in b)if(e=""+b[c],a.map[c])for(d=a.length;d--;)f=a[d],f.name===c&&(e?(a.map[c]=e,f.value=e):(delete a.map[c],a.splice(d,1)));else e&&(a.push({name:c,value:e}),a.map[c]=e)},h=function(c){var d=new a,e=new b(d);return e.parse(c),d.getContent()},i=function(d,e,f){var h,i=new a,j=0;return new b({validate:!1,allow_conditional_comments:!0,special:"script,noscript",comment:function(a){i.comment(a)},cdata:function(a){i.cdata(a)},text:function(a,b){i.text(a,b)},start:function(a,b,c){switch(a){case"video":case"object":case"embed":case"img":case"iframe":void 0!==e.height&&void 0!==e.width&&g(b,{width:e.width,height:e.height})}if(f)switch(a){case"video":g(b,{poster:e.poster,src:""}),e.source2&&g(b,{src:""});break;case"iframe":g(b,{src:e.source1});break;case"source":if(j++,j<=2&&(g(b,{src:e["source"+j],type:e["source"+j+"mime"]}),!e["source"+j]))return;break;case"img":if(!e.poster)return;h=!0}i.start(a,b,c)},end:function(a){if("video"===a&&f)for(var b=1;b<=2;b++)if(e["source"+b]){var c=[];c.map={},j<b&&(g(c,{src:e["source"+b],type:e["source"+b+"mime"]}),i.start("source",c,!0))}if(e.poster&&"object"===a&&f&&!h){var d=[];d.map={},g(d,{src:e.poster,width:e.width,height:e.height}),i.start("img",d,!0)}i.end(a)}},new c({})).parse(d),i.getContent()},j=function(a){var b=f.createFragment(a);return""!==f.getAttrib(b.firstChild,"data-ephox-embed-iri")},k=function(a,b){var c=f.createFragment(a),d=c.firstChild;return e.setMaxWidth(d,b.width),e.setMaxHeight(d,b.height),h(d.outerHTML)},l=function(a,b,c){return j(a)?k(a,b):i(a,b,c)};return{updateHtml:l}}),g("g",["8"],function(a){return a("tinymce.util.Delay")}),g("h",["3","a","b","e","c","f"],function(a,b,c,d,e,f){var g=d.DOM,h=function(a){return g.getAttrib(a,"data-ephox-embed-iri")},i=function(a){var b=g.createFragment(a);return""!==h(b.firstChild)},j=function(c,d){var f={};return new b({validate:!1,allow_conditional_comments:!0,special:"script,noscript",start:function(b,d){if(f.source1||"param"!==b||(f.source1=d.map.movie),"iframe"!==b&&"object"!==b&&"embed"!==b&&"video"!==b&&"audio"!==b||(f.type||(f.type=b),f=a.extend(d.map,f)),"script"===b){var g=e.getVideoScriptMatch(c,d.map.src);if(!g)return;f={type:"script",source1:d.map.src,width:g.width,height:g.height}}"source"===b&&(f.source1?f.source2||(f.source2=d.map.src):f.source1=d.map.src),"img"!==b||f.poster||(f.poster=d.map.src)}}).parse(d),f.source1=f.source1||f.src||f.data,f.source2=f.source2||"",f.poster=f.poster||"",f},k=function(a){var b=g.createFragment(a),c=b.firstChild;return{type:"ephox-embed-iri",source1:h(c),source2:"",poster:"",width:f.getMaxWidth(c),height:f.getMaxHeight(c)}},l=function(a,b){return i(b)?k(b):j(a,b)};return{htmlToData:l}}),g("m",[],function(){var a=function(a){var b={mp3:"audio/mpeg",wav:"audio/wav",mp4:"video/mp4",webm:"video/webm",ogg:"video/ogg",swf:"application/x-shockwave-flash"},c=a.toLowerCase().split(".").pop(),d=b[c];return d?d:""};return{guess:a}}),g("n",[],function(){var a=[{regex:/youtu\.be\/([\w\-.]+)/,type:"iframe",w:560,h:314,url:"//www.youtube.com/embed/$1",allowFullscreen:!0},{regex:/youtube\.com(.+)v=([^&]+)/,type:"iframe",w:560,h:314,url:"//www.youtube.com/embed/$2",allowFullscreen:!0},{regex:/youtube.com\/embed\/([a-z0-9\-_]+(?:\?.+)?)/i,type:"iframe",w:560,h:314,url:"//www.youtube.com/embed/$1",allowFullscreen:!0},{regex:/vimeo\.com\/([0-9]+)/,type:"iframe",w:425,h:350,url:"//player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc",allowfullscreen:!0},{regex:/vimeo\.com\/(.*)\/([0-9]+)/,type:"iframe",w:425,h:350,url:"//player.vimeo.com/video/$2?title=0&byline=0",allowfullscreen:!0},{regex:/maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/,type:"iframe",w:425,h:350,url:'//maps.google.com/maps/ms?msid=$2&output=embed"',allowFullscreen:!1},{regex:/dailymotion\.com\/video\/([^_]+)/,type:"iframe",w:480,h:270,url:"//www.dailymotion.com/embed/video/$1",allowFullscreen:!0}];return{urlPatterns:a}}),g("k",["m","h","n","c","6","3"],function(a,b,c,d,e,f){var g=function(g,h){var i="",j=f.extend({},h);if(!j.source1&&(f.extend(j,b.htmlToData(g.settings.media_scripts,j.embed)),!j.source1))return"";if(j.source2||(j.source2=""),j.poster||(j.poster=""),j.source1=g.convertURL(j.source1,"source"),j.source2=g.convertURL(j.source2,"source"),j.source1mime=a.guess(j.source1),j.source2mime=a.guess(j.source2),j.poster=g.convertURL(j.poster,"poster"),f.each(c.urlPatterns,function(a){var b,c,d=a.regex.exec(j.source1);if(d){for(c=a.url,b=0;d[b];b++)c=c.replace("$"+b,function(){return d[b]});j.source1=c,j.type=a.type,j.allowFullscreen=a.allowFullscreen,j.width=j.width||a.w,j.height=j.height||a.h}}),j.embed)i=e.updateHtml(j.embed,j,!0);else{var k=d.getVideoScriptMatch(g.settings.media_scripts,j.source1);if(k&&(j.type="script",j.width=k.width,j.height=k.height),j.width=j.width||300,j.height=j.height||150,f.each(j,function(a,b){j[b]=g.dom.encode(a)}),"iframe"===j.type){var l=j.allowFullscreen?' allowFullscreen="1"':"";i+='<iframe src="'+j.source1+'" width="'+j.width+'" height="'+j.height+'"'+l+"></iframe>"}else"application/x-shockwave-flash"===j.source1mime?(i+='<object data="'+j.source1+'" width="'+j.width+'" height="'+j.height+'" type="application/x-shockwave-flash">',j.poster&&(i+='<img src="'+j.poster+'" width="'+j.width+'" height="'+j.height+'" />'),i+="</object>"):j.source1mime.indexOf("audio")!==-1?g.settings.audio_template_callback?i=g.settings.audio_template_callback(j):i+='<audio controls="controls" src="'+j.source1+'">'+(j.source2?'\n<source src="'+j.source2+'"'+(j.source2mime?' type="'+j.source2mime+'"':"")+" />\n":"")+"</audio>":"script"===j.type?i+='<script src="'+j.source1+'"></script>':i=g.settings.video_template_callback?g.settings.video_template_callback(j):'<video width="'+j.width+'" height="'+j.height+'"'+(j.poster?' poster="'+j.poster+'"':"")+' controls="controls">\n<source src="'+j.source1+'"'+(j.source1mime?' type="'+j.source1mime+'"':"")+" />\n"+(j.source2?'<source src="'+j.source2+'"'+(j.source2mime?' type="'+j.source2mime+'"':"")+" />\n":"")+"</video>"}return i};return{dataToHtml:g}}),g("l",["8"],function(a){return a("tinymce.util.Promise")}),g("i",["k","l"],function(a,b){var c=function(a,c,d){var e={};return new b(function(b,f){var g=function(d){return d.html&&(e[a.source1]=d),b({url:a.source1,html:d.html?d.html:c(a)})};e[a.source1]?g(e[a.source1]):d({url:a.source1},g,f)})},d=function(a,c){return new b(function(b){b({html:c(a),url:a.source1})})},e=function(b){return function(c){return a.dataToHtml(b,c)}},f=function(a,b){var f=a.settings.media_url_resolver;return f?c(b,e(a),f):d(b,e(a))};return{getEmbedHtml:f}}),g("j",[],function(){var a=function(a,b){a.state.set("oldVal",a.value()),b.state.set("oldVal",b.value())},b=function(a,b){var c=a.find("#width")[0],d=a.find("#height")[0],e=a.find("#constrain")[0];c&&d&&e&&b(c,d,e.checked())},c=function(b,c,d){var e=b.state.get("oldVal"),f=c.state.get("oldVal"),g=b.value(),h=c.value();d&&e&&f&&g&&h&&(g!==e?(h=Math.round(g/e*h),isNaN(h)||c.value(h)):(g=Math.round(h/f*g),isNaN(g)||b.value(g))),a(b,c)},d=function(c){b(c,a)},e=function(a){b(a,c)},f=function(a){var b=function(){a(function(a){e(a)})};return{type:"container",label:"Dimensions",layout:"flex",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:5,size:5,onchange:b,ariaLabel:"Width"},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:5,size:5,onchange:b,ariaLabel:"Height"},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}};return{createUi:f,syncSize:d,updateSize:e}}),g("7",["g","h","6","i","f","3","d","j"],function(a,b,c,d,e,f,g,h){var i=g.ie&&g.ie<=8?"onChange":"onInput",j=function(a){return function(b){var c=b&&b.msg?"Media embed handler error: "+b.msg:"Media embed handler threw unknown error.";a.notificationManager.open({type:"error",text:c})}},k=function(a){var c=a.selection.getNode(),d=c.getAttribute("data-ephox-embed-iri");return d?{source1:d,"data-ephox-embed-iri":d,width:e.getMaxWidth(c),height:e.getMaxHeight(c)}:c.getAttribute("data-mce-object")?b.htmlToData(a.settings.media_scripts,a.serializer.serialize(c,{selection:!0})):{}},l=function(a){var b=a.selection.getNode();if(b.getAttribute("data-mce-object")||b.getAttribute("data-ephox-embed-iri"))return a.selection.getContent()},m=function(a,c){return function(d){var e=d.html,g=a.find("#embed")[0],i=f.extend(b.htmlToData(c.settings.media_scripts,e),{source1:d.url});a.fromJSON(i),g&&(g.value(e),h.updateSize(a))}},n=function(a,b){var c,d,e=a.dom.select("img[data-mce-object]");for(c=0;c<b.length;c++)for(d=e.length-1;d>=0;d--)b[c]===e[d]&&e.splice(d,1);a.selection.select(e[0])},o=function(a,b){var c=a.dom.select("img[data-mce-object]");a.insertContent(b),n(a,c),a.nodeChanged()},p=function(a,b){var e=a.toJSON();e.embed=c.updateHtml(e.embed,e),e.embed?o(b,e.embed):d.getEmbedHtml(b,e).then(function(a){o(b,a.html)})["catch"](j(b))},q=function(a,b){f.each(b,function(b,c){a.find("#"+c).value(b)})},r=function(a){var e,g,n=[{name:"source1",type:"filepicker",filetype:"media",size:40,autofocus:!0,label:"Source",onpaste:function(){setTimeout(function(){d.getEmbedHtml(a,e.toJSON()).then(m(e,a))["catch"](j(a))},1)},onchange:function(b){d.getEmbedHtml(a,e.toJSON()).then(m(e,a))["catch"](j(a)),q(e,b.meta)},onbeforecall:function(a){a.meta=e.toJSON()}}],o=[],r=function(a){a(e),g=e.toJSON(),e.find("#embed").value(c.updateHtml(g.embed,g))};if(a.settings.media_alt_source!==!1&&o.push({name:"source2",type:"filepicker",filetype:"media",size:40,label:"Alternative source"}),a.settings.media_poster!==!1&&o.push({name:"poster",type:"filepicker",filetype:"image",size:40,label:"Poster"}),a.settings.media_dimensions!==!1){var s=h.createUi(r);n.push(s)}g=k(a);var t={id:"mcemediasource",type:"textbox",flex:1,name:"embed",value:l(a),multiline:!0,rows:5,label:"Source"},u=function(){g=f.extend({},b.htmlToData(a.settings.media_scripts,this.value())),this.parent().parent().fromJSON(g)};t[i]=u,e=a.windowManager.open({title:"Insert/edit media",data:g,bodyType:"tabpanel",body:[{title:"General",type:"form",items:n},{title:"Embed",type:"container",layout:"flex",direction:"column",align:"stretch",padding:10,spacing:10,items:[{type:"label",text:"Paste your embed code below:",forId:"mcemediasource"},t]},{title:"Advanced",type:"form",items:o}],onSubmit:function(){h.updateSize(e),p(e,a)}}),h.syncSize(e)};return{showDialog:r}}),g("0",["1","2","3","4","5","6","7"],function(a,b,c,d,e,f,g){var h=function(b){b.on("ResolveName",function(a){var b;1===a.target.nodeType&&(b=a.target.getAttribute("data-mce-object"))&&(a.name=b)}),b.on("preInit",function(){var f=b.schema.getSpecialElements();c.each("video audio iframe object".split(" "),function(a){f[a]=new RegExp("</"+a+"[^>]*>","gi")});var g=b.schema.getBoolAttrs();c.each("webkitallowfullscreen mozallowfullscreen allowfullscreen".split(" "),function(a){g[a]={}}),b.parser.addNodeFilter("iframe,video,audio,object,embed,script",d.placeHolderConverter(b)),b.serializer.addAttributeFilter("data-mce-object",function(c,d){for(var f,g,h,i,j,k,l,m,n=c.length;n--;)if(f=c[n],f.parent){for(l=f.attr(d),g=new a(l,1),"audio"!==l&&"script"!==l&&(m=f.attr("class"),m&&m.indexOf("mce-preview-object")!==-1?g.attr({width:f.firstChild.attr("width"),height:f.firstChild.attr("height")}):g.attr({width:f.attr("width"),height:f.attr("height")})),g.attr({style:f.attr("style")}),i=f.attributes,h=i.length;h--;){var o=i[h].name;0===o.indexOf("data-mce-p-")&&g.attr(o.substr(11),i[h].value)}"script"===l&&g.attr("type","text/javascript"),j=f.attr("data-mce-html"),j&&(k=new a("#text",3),k.raw=!0,k.value=e.sanitize(b,unescape(j)),g.append(k)),f.replace(g)}})}),b.on("click keyup",function(){var a=b.selection.getNode();a&&b.dom.hasClass(a,"mce-preview-object")&&b.dom.getAttrib(a,"data-mce-selected")&&a.setAttribute("data-mce-selected","2")}),b.on("ObjectSelected",function(a){var b=a.target.getAttribute("data-mce-object");"audio"!==b&&"script"!==b||a.preventDefault()}),b.on("objectResized",function(a){var b,c=a.target;c.getAttribute("data-mce-object")&&(b=c.getAttribute("data-mce-html"),b&&(b=unescape(b),c.setAttribute("data-mce-html",escape(f.updateHtml(b,{width:a.width,height:a.height})))))}),this.showDialog=function(){g.showDialog(b)},b.addButton("media",{tooltip:"Insert/edit media",onclick:this.showDialog,stateSelector:["img[data-mce-object]","span[data-mce-object]","div[data-ephox-embed-iri]"]}),b.addMenuItem("media",{icon:"media",text:"Media",onclick:this.showDialog,context:"insert",prependToContext:!0}),b.on("setContent",function(){b.$("span.mce-preview-object").each(function(a,c){var d=b.$(c);0===d.find("span.mce-shim",c).length&&d.append('<span class="mce-shim"></span>')})}),b.addCommand("mceMedia",this.showDialog)};return b.add("media",h),function(){}}),d("0")()}(); \ No newline at end of file +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),o=tinymce.util.Tools.resolve("tinymce.Env"),v=tinymce.util.Tools.resolve("tinymce.util.Tools"),w=function(e){return e.getParam("media_scripts")},b=function(e){return e.getParam("audio_template_callback")},y=function(e){return e.getParam("video_template_callback")},n=function(e){return e.getParam("media_live_embeds",!0)},t=function(e){return e.getParam("media_filter_html",!0)},s=function(e){return e.getParam("media_url_resolver")},m=function(e){return e.getParam("media_alt_source",!0)},d=function(e){return e.getParam("media_poster",!0)},h=function(e){return e.getParam("media_dimensions",!0)},p=tinymce.util.Tools.resolve("tinymce.html.SaxParser"),r=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),x=function(e,t){if(e)for(var r=0;r<e.length;r++)if(-1!==t.indexOf(e[r].filter))return e[r]},i=function(t){return function(e){return e?e.style[t].replace(/px$/,""):""}},a=function(i){return function(e,t){var r;e&&(e.style[i]=/^[0-9.]+$/.test(r=t)?r+"px":r)}},f={getMaxWidth:i("maxWidth"),getMaxHeight:i("maxHeight"),setMaxWidth:a("maxWidth"),setMaxHeight:a("maxHeight")},u=r.DOM,l=function(e){return u.getAttrib(e,"data-ephox-embed-iri")},j=function(e,t){return c=t,s=u.createFragment(c),""!==l(s.firstChild)?(o=t,n=u.createFragment(o).firstChild,{type:"ephox-embed-iri",source1:l(n),source2:"",poster:"",width:f.getMaxWidth(n),height:f.getMaxHeight(n)}):(i=e,r=t,p({validate:(a={},!1),allow_conditional_comments:!0,special:"script,noscript",start:function(e,t){if(a.source1||"param"!==e||(a.source1=t.map.movie),"iframe"!==e&&"object"!==e&&"embed"!==e&&"video"!==e&&"audio"!==e||(a.type||(a.type=e),a=v.extend(t.map,a)),"script"===e){var r=x(i,t.map.src);if(!r)return;a={type:"script",source1:t.map.src,width:r.width,height:r.height}}"source"===e&&(a.source1?a.source2||(a.source2=t.map.src):a.source1=t.map.src),"img"!==e||a.poster||(a.poster=t.map.src)}}).parse(r),a.source1=a.source1||a.src||a.data,a.source2=a.source2||"",a.poster=a.poster||"",a);var i,r,a,o,n,c,s},g=tinymce.util.Tools.resolve("tinymce.util.Promise"),M=function(e){var t={mp3:"audio/mpeg",wav:"audio/wav",mp4:"video/mp4",webm:"video/webm",ogg:"video/ogg",swf:"application/x-shockwave-flash"}[e.toLowerCase().split(".").pop()];return t||""},_=tinymce.util.Tools.resolve("tinymce.html.Writer"),C=tinymce.util.Tools.resolve("tinymce.html.Schema"),S=r.DOM,F=function(e,t){var r,i,a,o;for(r in t)if(a=""+t[r],e.map[r])for(i=e.length;i--;)(o=e[i]).name===r&&(a?(e.map[r]=a,o.value=a):(delete e.map[r],e.splice(i,1)));else a&&(e.push({name:r,value:a}),e.map[r]=a)},k=function(e,t){var r,i,a=S.createFragment(e).firstChild;return f.setMaxWidth(a,t.width),f.setMaxHeight(a,t.height),r=a.outerHTML,i=_(),p(i).parse(r),i.getContent()},A=function(e,t,r){return u=e,l=S.createFragment(u),""!==S.getAttrib(l.firstChild,"data-ephox-embed-iri")?k(e,t):(i=e,a=t,o=r,c=_(),p({validate:!1,allow_conditional_comments:!(s=0),special:"script,noscript",comment:function(e){c.comment(e)},cdata:function(e){c.cdata(e)},text:function(e,t){c.text(e,t)},start:function(e,t,r){switch(e){case"video":case"object":case"embed":case"img":case"iframe":a.height!==undefined&&a.width!==undefined&&F(t,{width:a.width,height:a.height})}if(o)switch(e){case"video":F(t,{poster:a.poster,src:""}),a.source2&&F(t,{src:""});break;case"iframe":F(t,{src:a.source1});break;case"source":if(++s<=2&&(F(t,{src:a["source"+s],type:a["source"+s+"mime"]}),!a["source"+s]))return;break;case"img":if(!a.poster)return;n=!0}c.start(e,t,r)},end:function(e){if("video"===e&&o)for(var t=1;t<=2;t++)if(a["source"+t]){var r=[];r.map={},s<t&&(F(r,{src:a["source"+t],type:a["source"+t+"mime"]}),c.start("source",r,!0))}if(a.poster&&"object"===e&&o&&!n){var i=[];i.map={},F(i,{src:a.poster,width:a.width,height:a.height}),c.start("img",i,!0)}c.end(e)}},C({})).parse(i),c.getContent());var i,a,o,n,c,s,u,l},N=[{regex:/youtu\.be\/([\w\-_\?&=.]+)/i,type:"iframe",w:560,h:314,url:"//www.youtube.com/embed/$1",allowFullscreen:!0},{regex:/youtube\.com(.+)v=([^&]+)(&([a-z0-9&=\-_]+))?/i,type:"iframe",w:560,h:314,url:"//www.youtube.com/embed/$2?$4",allowFullscreen:!0},{regex:/youtube.com\/embed\/([a-z0-9\?&=\-_]+)/i,type:"iframe",w:560,h:314,url:"//www.youtube.com/embed/$1",allowFullscreen:!0},{regex:/vimeo\.com\/([0-9]+)/,type:"iframe",w:425,h:350,url:"//player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc",allowFullscreen:!0},{regex:/vimeo\.com\/(.*)\/([0-9]+)/,type:"iframe",w:425,h:350,url:"//player.vimeo.com/video/$2?title=0&byline=0",allowFullscreen:!0},{regex:/maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/,type:"iframe",w:425,h:350,url:'//maps.google.com/maps/ms?msid=$2&output=embed"',allowFullscreen:!1},{regex:/dailymotion\.com\/video\/([^_]+)/,type:"iframe",w:480,h:270,url:"//www.dailymotion.com/embed/video/$1",allowFullscreen:!0},{regex:/dai\.ly\/([^_]+)/,type:"iframe",w:480,h:270,url:"//www.dailymotion.com/embed/video/$1",allowFullscreen:!0}],c=function(r,e){var i=v.extend({},e);if(!i.source1&&(v.extend(i,j(w(r),i.embed)),!i.source1))return"";i.source2||(i.source2=""),i.poster||(i.poster=""),i.source1=r.convertURL(i.source1,"source"),i.source2=r.convertURL(i.source2,"source"),i.source1mime=M(i.source1),i.source2mime=M(i.source2),i.poster=r.convertURL(i.poster,"poster");var t,a,o=(t=i.source1,0<(a=N.filter(function(e){return e.regex.test(t)})).length?v.extend({},a[0],{url:function(e,t){for(var r=e.regex.exec(t),i=e.url,a=function(e){i=i.replace("$"+e,function(){return r[e]?r[e]:""})},o=0;o<r.length;o++)a(o);return i.replace(/\?$/,"")}(a[0],t)}):null);if(o&&(i.source1=o.url,i.type=o.type,i.allowFullscreen=o.allowFullscreen,i.width=i.width||o.w,i.height=i.height||o.h),i.embed)return A(i.embed,i,!0);var n=x(w(r),i.source1);n&&(i.type="script",i.width=n.width,i.height=n.height);var c,s,u,l,m,d,h,p,f=b(r),g=y(r);return i.width=i.width||300,i.height=i.height||150,v.each(i,function(e,t){i[t]=r.dom.encode(e)}),"iframe"===i.type?(p=(h=i).allowFullscreen?' allowFullscreen="1"':"",'<iframe src="'+h.source1+'" width="'+h.width+'" height="'+h.height+'"'+p+"></iframe>"):"application/x-shockwave-flash"===i.source1mime?(d='<object data="'+(m=i).source1+'" width="'+m.width+'" height="'+m.height+'" type="application/x-shockwave-flash">',m.poster&&(d+='<img src="'+m.poster+'" width="'+m.width+'" height="'+m.height+'" />'),d+="</object>"):-1!==i.source1mime.indexOf("audio")?(u=i,(l=f)?l(u):'<audio controls="controls" src="'+u.source1+'">'+(u.source2?'\n<source src="'+u.source2+'"'+(u.source2mime?' type="'+u.source2mime+'"':"")+" />\n":"")+"</audio>"):"script"===i.type?'<script src="'+i.source1+'"><\/script>':(c=i,(s=g)?s(c):'<video width="'+c.width+'" height="'+c.height+'"'+(c.poster?' poster="'+c.poster+'"':"")+' controls="controls">\n<source src="'+c.source1+'"'+(c.source1mime?' type="'+c.source1mime+'"':"")+" />\n"+(c.source2?'<source src="'+c.source2+'"'+(c.source2mime?' type="'+c.source2mime+'"':"")+" />\n":"")+"</video>")},O={},P=function(t){return function(e){return c(t,e)}},T=function(e,t){var r,i,a,o,n,c=s(e);return c?(a=t,o=P(e),n=c,new g(function(t,e){var r=function(e){return e.html&&(O[a.source1]=e),t({url:a.source1,html:e.html?e.html:o(a)})};O[a.source1]?r(O[a.source1]):n({url:a.source1},r,e)})):(r=t,i=P(e),new g(function(e){e({html:i(r),url:r.source1})}))},$=function(e){return O.hasOwnProperty(e)},z=function(e,t){e.state.set("oldVal",e.value()),t.state.set("oldVal",t.value())},L=function(e,t){var r=e.find("#width")[0],i=e.find("#height")[0],a=e.find("#constrain")[0];r&&i&&a&&t(r,i,a.checked())},H=function(e,t,r){var i=e.state.get("oldVal"),a=t.state.get("oldVal"),o=e.value(),n=t.value();r&&i&&a&&o&&n&&(o!==i?(n=Math.round(o/i*n),isNaN(n)||t.value(n)):(o=Math.round(n/a*o),isNaN(o)||e.value(o))),z(e,t)},W=function(e){L(e,H)},J=function(e){var t=function(){e(function(e){W(e)})};return{type:"container",label:"Dimensions",layout:"flex",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:5,size:5,onchange:t,ariaLabel:"Width"},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:5,size:5,onchange:t,ariaLabel:"Height"},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}},R=function(e){L(e,z)},D=W,E=o.ie&&o.ie<=8?"onChange":"onInput",I=function(r){return function(e){var t=e&&e.msg?"Media embed handler error: "+e.msg:"Media embed handler threw unknown error.";r.notificationManager.open({type:"error",text:t})}},U=function(a,o){return function(e){var t=e.html,r=a.find("#embed")[0],i=v.extend(j(w(o),t),{source1:e.url});a.fromJSON(i),r&&(r.value(t),D(a))}},V=function(e,t){var r=e.dom.select("img[data-mce-object]");e.insertContent(t),function(e,t){var r,i,a=e.dom.select("img[data-mce-object]");for(r=0;r<t.length;r++)for(i=a.length-1;0<=i;i--)t[r]===a[i]&&a.splice(i,1);e.selection.select(a[0])}(e,r),e.nodeChanged()},B=function(i){var a,t,e,r,o,n=[{name:"source1",type:"filepicker",filetype:"media",size:40,autofocus:!0,label:"Source",onpaste:function(){setTimeout(function(){T(i,a.toJSON()).then(U(a,i))["catch"](I(i))},1)},onchange:function(e){var r,t;T(i,a.toJSON()).then(U(a,i))["catch"](I(i)),r=a,t=e.meta,v.each(t,function(e,t){r.find("#"+t).value(e)})},onbeforecall:function(e){e.meta=a.toJSON()}}],c=[];if(m(i)&&c.push({name:"source2",type:"filepicker",filetype:"media",size:40,label:"Alternative source"}),d(i)&&c.push({name:"poster",type:"filepicker",filetype:"image",size:40,label:"Poster"}),h(i)){var s=J(function(e){e(a),t=a.toJSON(),a.find("#embed").value(A(t.embed,t))});n.push(s)}r=(e=i).selection.getNode(),o=r.getAttribute("data-ephox-embed-iri"),t=o?{source1:o,"data-ephox-embed-iri":o,width:f.getMaxWidth(r),height:f.getMaxHeight(r)}:r.getAttribute("data-mce-object")?j(w(e),e.serializer.serialize(r,{selection:!0})):{};var u={id:"mcemediasource",type:"textbox",flex:1,name:"embed",value:function(e){var t=e.selection.getNode();if(t.getAttribute("data-mce-object")||t.getAttribute("data-ephox-embed-iri"))return e.selection.getContent()}(i),multiline:!0,rows:5,label:"Source"};u[E]=function(){t=v.extend({},j(w(i),this.value())),this.parent().parent().fromJSON(t)};var l=[{title:"General",type:"form",items:n},{title:"Embed",type:"container",layout:"flex",direction:"column",align:"stretch",padding:10,spacing:10,items:[{type:"label",text:"Paste your embed code below:",forId:"mcemediasource"},u]}];0<c.length&&l.push({title:"Advanced",type:"form",items:c}),a=i.windowManager.open({title:"Insert/edit media",data:t,bodyType:"tabpanel",body:l,onSubmit:function(){var t,e;D(a),t=i,(e=a.toJSON()).embed=A(e.embed,e),e.embed&&$(e.source1)?V(t,e.embed):T(t,e).then(function(e){V(t,e.html)})["catch"](I(t))}}),R(a)},G=function(e){return{showDialog:function(){B(e)}}},q=function(e){e.addCommand("mceMedia",function(){B(e)})},K=tinymce.util.Tools.resolve("tinymce.html.Node"),Q=function(a,e){if(!1===t(a))return e;var o,n=_();return p({validate:!1,allow_conditional_comments:!1,special:"script,noscript",comment:function(e){n.comment(e)},cdata:function(e){n.cdata(e)},text:function(e,t){n.text(e,t)},start:function(e,t,r){if(o=!0,"script"!==e&&"noscript"!==e){for(var i=0;i<t.length;i++){if(0===t[i].name.indexOf("on"))return;"style"===t[i].name&&(t[i].value=a.dom.serializeStyle(a.dom.parseStyle(t[i].value),e))}n.start(e,t,r),o=!1}},end:function(e){o||n.end(e)}},C({})).parse(e),n.getContent()},X=function(e,t){var r,i=t.name;return(r=new K("img",1)).shortEnded=!0,Z(e,t,r),r.attr({width:t.attr("width")||"300",height:t.attr("height")||("audio"===i?"30":"150"),style:t.attr("style"),src:o.transparentSrc,"data-mce-object":i,"class":"mce-object mce-object-"+i}),r},Y=function(e,t){var r,i,a,o=t.name;return(r=new K("span",1)).attr({contentEditable:"false",style:t.attr("style"),"data-mce-object":o,"class":"mce-preview-object mce-object-"+o}),Z(e,t,r),(i=new K(o,1)).attr({src:t.attr("src"),allowfullscreen:t.attr("allowfullscreen"),style:t.attr("style"),"class":t.attr("class"),width:t.attr("width"),height:t.attr("height"),frameborder:"0"}),(a=new K("span",1)).attr("class","mce-shim"),r.append(i),r.append(a),r},Z=function(e,t,r){var i,a,o,n,c;for(n=(o=t.attributes).length;n--;)i=o[n].name,a=o[n].value,"width"!==i&&"height"!==i&&"style"!==i&&("data"!==i&&"src"!==i||(a=e.convertURL(a,i)),r.attr("data-mce-p-"+i,a));(c=t.firstChild&&t.firstChild.value)&&(r.attr("data-mce-html",escape(Q(e,c))),r.firstChild=null)},ee=function(e){for(;e=e.parent;)if(e.attr("data-ephox-embed-iri"))return!0;return!1},te=function(a){return function(e){for(var t,r,i=e.length;i--;)(t=e[i]).parent&&(t.parent.attr("data-mce-object")||("script"!==t.name||(r=x(w(a),t.attr("src"))))&&(r&&(r.width&&t.attr("width",r.width.toString()),r.height&&t.attr("height",r.height.toString())),"iframe"===t.name&&n(a)&&o.ceFalse?ee(t)||t.replace(Y(a,t)):ee(t)||t.replace(X(a,t))))}},re=function(d){d.on("preInit",function(){var t=d.schema.getSpecialElements();v.each("video audio iframe object".split(" "),function(e){t[e]=new RegExp("</"+e+"[^>]*>","gi")});var r=d.schema.getBoolAttrs();v.each("webkitallowfullscreen mozallowfullscreen allowfullscreen".split(" "),function(e){r[e]={}}),d.parser.addNodeFilter("iframe,video,audio,object,embed,script",te(d)),d.serializer.addAttributeFilter("data-mce-object",function(e,t){for(var r,i,a,o,n,c,s,u,l=e.length;l--;)if((r=e[l]).parent){for(s=r.attr(t),i=new K(s,1),"audio"!==s&&"script"!==s&&((u=r.attr("class"))&&-1!==u.indexOf("mce-preview-object")?i.attr({width:r.firstChild.attr("width"),height:r.firstChild.attr("height")}):i.attr({width:r.attr("width"),height:r.attr("height")})),i.attr({style:r.attr("style")}),a=(o=r.attributes).length;a--;){var m=o[a].name;0===m.indexOf("data-mce-p-")&&i.attr(m.substr(11),o[a].value)}"script"===s&&i.attr("type","text/javascript"),(n=r.attr("data-mce-html"))&&((c=new K("#text",3)).raw=!0,c.value=Q(d,unescape(n)),i.append(c)),r.replace(i)}})}),d.on("setContent",function(){d.$("span.mce-preview-object").each(function(e,t){var r=d.$(t);0===r.find("span.mce-shim",t).length&&r.append('<span class="mce-shim"></span>')})})},ie=function(e){e.on("ResolveName",function(e){var t;1===e.target.nodeType&&(t=e.target.getAttribute("data-mce-object"))&&(e.name=t)})},ae=function(t){t.on("click keyup",function(){var e=t.selection.getNode();e&&t.dom.hasClass(e,"mce-preview-object")&&t.dom.getAttrib(e,"data-mce-selected")&&e.setAttribute("data-mce-selected","2")}),t.on("ObjectSelected",function(e){var t=e.target.getAttribute("data-mce-object");"audio"!==t&&"script"!==t||e.preventDefault()}),t.on("objectResized",function(e){var t,r=e.target;r.getAttribute("data-mce-object")&&(t=r.getAttribute("data-mce-html"))&&(t=unescape(t),r.setAttribute("data-mce-html",escape(A(t,{width:e.width,height:e.height}))))})},oe=function(e){e.addButton("media",{tooltip:"Insert/edit media",cmd:"mceMedia",stateSelector:["img[data-mce-object]","span[data-mce-object]","div[data-ephox-embed-iri]"]}),e.addMenuItem("media",{icon:"media",text:"Media",cmd:"mceMedia",context:"insert",prependToContext:!0})};e.add("media",function(e){return q(e),oe(e),ie(e),re(e),ae(e),G(e)})}(); \ No newline at end of file diff --git a/wp-includes/js/tinymce/plugins/paste/plugin.js b/wp-includes/js/tinymce/plugins/paste/plugin.js index a45fd8089..5ef978b99 100644 --- a/wp-includes/js/tinymce/plugins/paste/plugin.js +++ b/wp-includes/js/tinymce/plugins/paste/plugin.js @@ -1,2488 +1,1609 @@ (function () { +var paste = (function () { + 'use strict'; -var defs = {}; // id -> {dependencies, definition, instance (possibly undefined)} - -// Used when there is no 'main' module. -// The name is probably (hopefully) unique so minification removes for releases. -var register_3795 = function (id) { - var module = dem(id); - var fragments = id.split('.'); - var target = Function('return this;')(); - for (var i = 0; i < fragments.length - 1; ++i) { - if (target[fragments[i]] === undefined) - target[fragments[i]] = {}; - target = target[fragments[i]]; - } - target[fragments[fragments.length - 1]] = module; -}; - -var instantiate = function (id) { - var actual = defs[id]; - var dependencies = actual.deps; - var definition = actual.defn; - var len = dependencies.length; - var instances = new Array(len); - for (var i = 0; i < len; ++i) - instances[i] = dem(dependencies[i]); - var defResult = definition.apply(null, instances); - if (defResult === undefined) - throw 'module [' + id + '] returned undefined'; - actual.instance = defResult; -}; - -var def = function (id, dependencies, definition) { - if (typeof id !== 'string') - throw 'module id must be a string'; - else if (dependencies === undefined) - throw 'no dependencies for ' + id; - else if (definition === undefined) - throw 'no definition function for ' + id; - defs[id] = { - deps: dependencies, - defn: definition, - instance: undefined - }; -}; - -var dem = function (id) { - var actual = defs[id]; - if (actual === undefined) - throw 'module [' + id + '] was undefined'; - else if (actual.instance === undefined) - instantiate(id); - return actual.instance; -}; - -var req = function (ids, callback) { - var len = ids.length; - var instances = new Array(len); - for (var i = 0; i < len; ++i) - instances.push(dem(ids[i])); - callback.apply(null, callback); -}; - -var ephox = {}; - -ephox.bolt = { - module: { - api: { - define: def, - require: req, - demand: dem - } - } -}; - -var define = def; -var require = req; -var demand = dem; -// this helps with minificiation when using a lot of global references -var defineGlobal = function (id, ref) { - define(id, [], function () { return ref; }); -}; -/*jsc -["tinymce.plugins.paste.Plugin","tinymce.core.PluginManager","tinymce.plugins.paste.api.Events","tinymce.plugins.paste.core.Clipboard","tinymce.plugins.paste.core.CutCopy","tinymce.plugins.paste.core.Quirks","global!tinymce.util.Tools.resolve","tinymce.core.dom.RangeUtils","tinymce.core.Env","tinymce.core.util.Delay","tinymce.core.util.Tools","tinymce.core.util.VK","tinymce.plugins.paste.core.InternalHtml","tinymce.plugins.paste.core.Newlines","tinymce.plugins.paste.core.PasteBin","tinymce.plugins.paste.core.ProcessFilters","tinymce.plugins.paste.core.SmartPaste","tinymce.plugins.paste.core.Utils","tinymce.plugins.paste.core.WordFilter","tinymce.core.html.Entities","tinymce.core.html.DomParser","tinymce.core.html.Schema","tinymce.core.html.Serializer","tinymce.core.html.Node"] -jsc*/ -defineGlobal("global!tinymce.util.Tools.resolve", tinymce.util.Tools.resolve); -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.PluginManager', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.PluginManager'); - } -); - -/** - * Events.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.paste.api.Events', - [ - ], - function () { - var firePastePreProcess = function (editor, html, internal, isWordHtml) { - return editor.fire('PastePreProcess', { content: html, internal: internal, wordContent: isWordHtml }); + var Cell = function (initial) { + var value = initial; + var get = function () { + return value; }; - - var firePastePostProcess = function (editor, node, internal, isWordHtml) { - return editor.fire('PastePostProcess', { node: node, internal: internal, wordContent: isWordHtml }); + var set = function (v) { + value = v; }; - - var firePastePlainTextToggle = function (editor, state) { - return editor.fire('PastePlainTextToggle', { state: state }); + var clone = function () { + return Cell(get()); }; - return { - firePastePreProcess: firePastePreProcess, - firePastePostProcess: firePastePostProcess, - firePastePlainTextToggle: firePastePlainTextToggle + get: get, + set: set, + clone: clone }; - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.dom.RangeUtils', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.dom.RangeUtils'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.Env', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.Env'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.util.Delay', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.util.Delay'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.util.Tools', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.util.Tools'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.util.VK', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.util.VK'); - } -); + }; -/** - * InternalHtml.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ + var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); -define( - 'tinymce.plugins.paste.core.InternalHtml', - [ - ], - function () { - var internalMimeType = 'x-tinymce/html'; - var internalMark = '<!-- ' + internalMimeType + ' -->'; + var hasProPlugin = function (editor) { + if (/(^|[ ,])powerpaste([, ]|$)/.test(editor.settings.plugins) && global.get('powerpaste')) { + if (typeof window.console !== 'undefined' && window.console.log) { + window.console.log('PowerPaste is incompatible with Paste plugin! Remove \'paste\' from the \'plugins\' option.'); + } + return true; + } else { + return false; + } + }; + var $_5e30n7hljfuw8pt8 = { hasProPlugin: hasProPlugin }; - var mark = function (html) { - return internalMark + html; + var get = function (clipboard, quirks) { + return { + clipboard: clipboard, + quirks: quirks }; + }; + var $_4xrki5hmjfuw8pta = { get: get }; - var unmark = function (html) { - return html.replace(internalMark, ''); - }; + var firePastePreProcess = function (editor, html, internal, isWordHtml) { + return editor.fire('PastePreProcess', { + content: html, + internal: internal, + wordContent: isWordHtml + }); + }; + var firePastePostProcess = function (editor, node, internal, isWordHtml) { + return editor.fire('PastePostProcess', { + node: node, + internal: internal, + wordContent: isWordHtml + }); + }; + var firePastePlainTextToggle = function (editor, state) { + return editor.fire('PastePlainTextToggle', { state: state }); + }; + var firePaste = function (editor, ieFake) { + return editor.fire('paste', { ieFake: ieFake }); + }; + var $_ae0f8dhpjfuw8pte = { + firePastePreProcess: firePastePreProcess, + firePastePostProcess: firePastePostProcess, + firePastePlainTextToggle: firePastePlainTextToggle, + firePaste: firePaste + }; - var isMarked = function (html) { - return html.indexOf(internalMark) !== -1; - }; + var shouldPlainTextInform = function (editor) { + return editor.getParam('paste_plaintext_inform', true); + }; + var shouldBlockDrop = function (editor) { + return editor.getParam('paste_block_drop', false); + }; + var shouldPasteDataImages = function (editor) { + return editor.getParam('paste_data_images', false); + }; + var shouldFilterDrop = function (editor) { + return editor.getParam('paste_filter_drop', true); + }; + var getPreProcess = function (editor) { + return editor.getParam('paste_preprocess'); + }; + var getPostProcess = function (editor) { + return editor.getParam('paste_postprocess'); + }; + var getWebkitStyles = function (editor) { + return editor.getParam('paste_webkit_styles'); + }; + var shouldRemoveWebKitStyles = function (editor) { + return editor.getParam('paste_remove_styles_if_webkit', true); + }; + var shouldMergeFormats = function (editor) { + return editor.getParam('paste_merge_formats', true); + }; + var isSmartPasteEnabled = function (editor) { + return editor.getParam('smart_paste', true); + }; + var isPasteAsTextEnabled = function (editor) { + return editor.getParam('paste_as_text', false); + }; + var getRetainStyleProps = function (editor) { + return editor.getParam('paste_retain_style_properties'); + }; + var getWordValidElements = function (editor) { + var defaultValidElements = '-strong/b,-em/i,-u,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,' + '-p/div,-a[href|name],sub,sup,strike,br,del,table[width],tr,' + 'td[colspan|rowspan|width],th[colspan|rowspan|width],thead,tfoot,tbody'; + return editor.getParam('paste_word_valid_elements', defaultValidElements); + }; + var shouldConvertWordFakeLists = function (editor) { + return editor.getParam('paste_convert_word_fake_lists', true); + }; + var shouldUseDefaultFilters = function (editor) { + return editor.getParam('paste_enable_default_filters', true); + }; + var $_dls6llhqjfuw8ptf = { + shouldPlainTextInform: shouldPlainTextInform, + shouldBlockDrop: shouldBlockDrop, + shouldPasteDataImages: shouldPasteDataImages, + shouldFilterDrop: shouldFilterDrop, + getPreProcess: getPreProcess, + getPostProcess: getPostProcess, + getWebkitStyles: getWebkitStyles, + shouldRemoveWebKitStyles: shouldRemoveWebKitStyles, + shouldMergeFormats: shouldMergeFormats, + isSmartPasteEnabled: isSmartPasteEnabled, + isPasteAsTextEnabled: isPasteAsTextEnabled, + getRetainStyleProps: getRetainStyleProps, + getWordValidElements: getWordValidElements, + shouldConvertWordFakeLists: shouldConvertWordFakeLists, + shouldUseDefaultFilters: shouldUseDefaultFilters + }; - return { - mark: mark, - unmark: unmark, - isMarked: isMarked, - internalHtmlMime: function () { - return internalMimeType; + var shouldInformUserAboutPlainText = function (editor, userIsInformedState) { + return userIsInformedState.get() === false && $_dls6llhqjfuw8ptf.shouldPlainTextInform(editor); + }; + var displayNotification = function (editor, message) { + editor.notificationManager.open({ + text: editor.translate(message), + type: 'info' + }); + }; + var togglePlainTextPaste = function (editor, clipboard, userIsInformedState) { + if (clipboard.pasteFormat.get() === 'text') { + clipboard.pasteFormat.set('html'); + $_ae0f8dhpjfuw8pte.firePastePlainTextToggle(editor, false); + } else { + clipboard.pasteFormat.set('text'); + $_ae0f8dhpjfuw8pte.firePastePlainTextToggle(editor, true); + if (shouldInformUserAboutPlainText(editor, userIsInformedState)) { + displayNotification(editor, 'Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.'); + userIsInformedState.set(true); } - }; - } -); -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.html.Entities', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.html.Entities'); - } -); - -/** - * Newlines.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ + } + editor.focus(); + }; + var $_btm9r2hojfuw8ptc = { togglePlainTextPaste: togglePlainTextPaste }; -/** - * Newlines class contains utilities to convert newlines (\n or \r\n) tp BRs or to a combination of the specified block element and BRs - * - * @class tinymce.Newlines - * @private - */ -define( - 'tinymce.plugins.paste.core.Newlines', - [ - 'tinymce.core.util.Tools', - 'tinymce.core.html.Entities' - ], - function (Tools, Entities) { + var register = function (editor, clipboard, userIsInformedState) { + editor.addCommand('mceTogglePlainTextPaste', function () { + $_btm9r2hojfuw8ptc.togglePlainTextPaste(editor, clipboard, userIsInformedState); + }); + editor.addCommand('mceInsertClipboardContent', function (ui, value) { + if (value.content) { + clipboard.pasteHtml(value.content, value.internal); + } + if (value.text) { + clipboard.pasteText(value.text); + } + }); + }; + var $_a15l7thnjfuw8pta = { register: register }; - var isPlainText = function (text) { - // so basically any tag that is not one of the "p, div, span, br", or is one of them, but is followed - // by some additional characters qualifies the text as not a plain text (having some HTML tags) - // <span style="white-space:pre"> and <br /> are added as separate exceptions to the rule - return !/<(?:\/?(?!(?:div|p|br|span)>)\w+|(?:(?!(?:span style="white-space:\s?pre;?">)|br\s?\/>))\w+\s[^>]+)>/i.test(text); - }; + var global$1 = tinymce.util.Tools.resolve('tinymce.Env'); + var global$2 = tinymce.util.Tools.resolve('tinymce.util.Delay'); - var toBRs = function (text) { - return text.replace(/\r?\n/g, '<br>'); - }; + var global$3 = tinymce.util.Tools.resolve('tinymce.util.Tools'); + var global$4 = tinymce.util.Tools.resolve('tinymce.util.VK'); - var openContainer = function (rootTag, rootAttrs) { - var key, attrs = []; - var tag = '<' + rootTag; + var internalMimeType = 'x-tinymce/html'; + var internalMark = '<!-- ' + internalMimeType + ' -->'; + var mark = function (html) { + return internalMark + html; + }; + var unmark = function (html) { + return html.replace(internalMark, ''); + }; + var isMarked = function (html) { + return html.indexOf(internalMark) !== -1; + }; + var $_ceqsrthxjfuw8ptx = { + mark: mark, + unmark: unmark, + isMarked: isMarked, + internalHtmlMime: function () { + return internalMimeType; + } + }; - if (typeof rootAttrs === 'object') { - for (key in rootAttrs) { - if (rootAttrs.hasOwnProperty(key)) { - attrs.push(key + '="' + Entities.encodeAllRaw(rootAttrs[key]) + '"'); - } - } + var global$5 = tinymce.util.Tools.resolve('tinymce.html.Entities'); - if (attrs.length) { - tag += ' ' + attrs.join(' '); + var isPlainText = function (text) { + return !/<(?:\/?(?!(?:div|p|br|span)>)\w+|(?:(?!(?:span style="white-space:\s?pre;?">)|br\s?\/>))\w+\s[^>]+)>/i.test(text); + }; + var toBRs = function (text) { + return text.replace(/\r?\n/g, '<br>'); + }; + var openContainer = function (rootTag, rootAttrs) { + var key; + var attrs = []; + var tag = '<' + rootTag; + if (typeof rootAttrs === 'object') { + for (key in rootAttrs) { + if (rootAttrs.hasOwnProperty(key)) { + attrs.push(key + '="' + global$5.encodeAllRaw(rootAttrs[key]) + '"'); } } - return tag + '>'; + if (attrs.length) { + tag += ' ' + attrs.join(' '); + } + } + return tag + '>'; + }; + var toBlockElements = function (text, rootTag, rootAttrs) { + var blocks = text.split(/\n\n/); + var tagOpen = openContainer(rootTag, rootAttrs); + var tagClose = '</' + rootTag + '>'; + var paragraphs = global$3.map(blocks, function (p) { + return p.split(/\n/).join('<br />'); + }); + var stitch = function (p) { + return tagOpen + p + tagClose; }; + return paragraphs.length === 1 ? paragraphs[0] : global$3.map(paragraphs, stitch).join(''); + }; + var convert = function (text, rootTag, rootAttrs) { + return rootTag ? toBlockElements(text, rootTag, rootAttrs) : toBRs(text); + }; + var $_7lc4hihyjfuw8pty = { + isPlainText: isPlainText, + convert: convert, + toBRs: toBRs, + toBlockElements: toBlockElements + }; + var global$6 = tinymce.util.Tools.resolve('tinymce.html.DomParser'); - var toBlockElements = function (text, rootTag, rootAttrs) { - var blocks = text.split(/\n\n/); - var tagOpen = openContainer(rootTag, rootAttrs); - var tagClose = '</' + rootTag + '>'; - - var paragraphs = Tools.map(blocks, function (p) { - return p.split(/\n/).join('<br />'); - }); - - var stitch = function (p) { - return tagOpen + p + tagClose; - }; - - return paragraphs.length === 1 ? paragraphs[0] : Tools.map(paragraphs, stitch).join(''); - }; - + var global$7 = tinymce.util.Tools.resolve('tinymce.html.Node'); - var convert = function (text, rootTag, rootAttrs) { - return rootTag ? toBlockElements(text, rootTag, rootAttrs) : toBRs(text); - }; + var global$8 = tinymce.util.Tools.resolve('tinymce.html.Schema'); + var global$9 = tinymce.util.Tools.resolve('tinymce.html.Serializer'); - return { - isPlainText: isPlainText, - convert: convert, - toBRs: toBRs, - toBlockElements: toBlockElements - }; + function filter(content, items) { + global$3.each(items, function (v) { + if (v.constructor === RegExp) { + content = content.replace(v, ''); + } else { + content = content.replace(v[0], v[1]); + } + }); + return content; } -); -/** - * PasteBin.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -/** - * @class tinymce.pasteplugin.PasteBin - * @private - */ -define( - 'tinymce.plugins.paste.core.PasteBin', - [ - 'tinymce.core.util.Tools', - 'tinymce.core.Env' - ], - function (Tools, Env) { - return function (editor) { - var lastRng; - var pasteBinDefaultContent = '%MCEPASTEBIN%'; - - /** - * Creates a paste bin element as close as possible to the current caret location and places the focus inside that element - * so that when the real paste event occurs the contents gets inserted into this element - * instead of the current editor selection element. - */ - var create = function () { - var dom = editor.dom, body = editor.getBody(); - var viewport = editor.dom.getViewPort(editor.getWin()), scrollTop = viewport.y, top = 20; - var pasteBinElm; - var scrollContainer; - - lastRng = editor.selection.getRng(); - - if (editor.inline) { - scrollContainer = editor.selection.getScrollContainer(); - - // Can't always rely on scrollTop returning a useful value. - // It returns 0 if the browser doesn't support scrollTop for the element or is non-scrollable - if (scrollContainer && scrollContainer.scrollTop > 0) { - scrollTop = scrollContainer.scrollTop; - } - } - - /** - * Returns the rect of the current caret if the caret is in an empty block before a - * BR we insert a temporary invisible character that we get the rect this way we always get a proper rect. - * - * TODO: This might be useful in core. - */ - function getCaretRect(rng) { - var rects, textNode, node, container = rng.startContainer; - - rects = rng.getClientRects(); - if (rects.length) { - return rects[0]; - } - - if (!rng.collapsed || container.nodeType != 1) { - return; - } - - node = container.childNodes[lastRng.startOffset]; - - // Skip empty whitespace nodes - while (node && node.nodeType == 3 && !node.data.length) { - node = node.nextSibling; - } - - if (!node) { - return; - } - - // Check if the location is |<br> - // TODO: Might need to expand this to say |<table> - if (node.tagName == 'BR') { - textNode = dom.doc.createTextNode('\uFEFF'); - node.parentNode.insertBefore(textNode, node); - - rng = dom.createRng(); - rng.setStartBefore(textNode); - rng.setEndAfter(textNode); - - rects = rng.getClientRects(); - dom.remove(textNode); - } - - if (rects.length) { - return rects[0]; - } - } - - // Calculate top cordinate this is needed to avoid scrolling to top of document - // We want the paste bin to be as close to the caret as possible to avoid scrolling - if (lastRng.getClientRects) { - var rect = getCaretRect(lastRng); - - if (rect) { - // Client rects gets us closes to the actual - // caret location in for example a wrapped paragraph block - top = scrollTop + (rect.top - dom.getPos(body).y); - } else { - top = scrollTop; - - // Check if we can find a closer location by checking the range element - var container = lastRng.startContainer; - if (container) { - if (container.nodeType == 3 && container.parentNode != body) { - container = container.parentNode; - } - - if (container.nodeType == 1) { - top = dom.getPos(container, scrollContainer || body).y; - } - } - } - } - - // Create a pastebin - pasteBinElm = editor.dom.add(editor.getBody(), 'div', { - id: "mcepastebin", - contentEditable: true, - "data-mce-bogus": "all", - style: 'position: absolute; top: ' + top + 'px; width: 10px; height: 10px; overflow: hidden; opacity: 0' - }, pasteBinDefaultContent); - - // Move paste bin out of sight since the controlSelection rect gets displayed otherwise on IE and Gecko - if (Env.ie || Env.gecko) { - dom.setStyle(pasteBinElm, 'left', dom.getStyle(body, 'direction', true) == 'rtl' ? 0xFFFF : -0xFFFF); - } - - // Prevent focus events from bubbeling fixed FocusManager issues - dom.bind(pasteBinElm, 'beforedeactivate focusin focusout', function (e) { - e.stopPropagation(); - }); - - pasteBinElm.focus(); - editor.selection.select(pasteBinElm, true); - }; - - /** - * Removes the paste bin if it exists. - */ - var remove = function () { - if (getEl()) { - var pasteBinClone; - - // WebKit/Blink might clone the div so - // lets make sure we remove all clones - // TODO: Man o man is this ugly. WebKit is the new IE! Remove this if they ever fix it! - while ((pasteBinClone = editor.dom.get('mcepastebin'))) { - editor.dom.remove(pasteBinClone); - editor.dom.unbind(pasteBinClone); - } - - if (lastRng) { - editor.selection.setRng(lastRng); - } + function innerText(html) { + var schema = global$8(); + var domParser = global$6({}, schema); + var text = ''; + var shortEndedElements = schema.getShortEndedElements(); + var ignoreElements = global$3.makeMap('script noscript style textarea video audio iframe object', ' '); + var blockElements = schema.getBlockElements(); + function walk(node) { + var name = node.name, currentNode = node; + if (name === 'br') { + text += '\n'; + return; + } + if (shortEndedElements[name]) { + text += ' '; + } + if (ignoreElements[name]) { + text += ' '; + return; + } + if (node.type === 3) { + text += node.value; + } + if (!node.shortEnded) { + if (node = node.firstChild) { + do { + walk(node); + } while (node = node.next); } - - lastRng = null; - }; - - - var getEl = function () { - return editor.dom.get('mcepastebin'); - }; - - /** - * Returns the contents of the paste bin as a HTML string. - * - * @return {String} Get the contents of the paste bin. - */ - var getHtml = function () { - var pasteBinElm, pasteBinClones, i, dirtyWrappers, cleanWrapper; - - // Since WebKit/Chrome might clone the paste bin when pasting - // for example: <img style="float: right"> we need to check if any of them contains some useful html. - // TODO: Man o man is this ugly. WebKit is the new IE! Remove this if they ever fix it! - - var copyAndRemove = function (toElm, fromElm) { - toElm.appendChild(fromElm); - editor.dom.remove(fromElm, true); // remove, but keep children - }; - - // find only top level elements (there might be more nested inside them as well, see TINY-1162) - pasteBinClones = Tools.grep(editor.getBody().childNodes, function (elm) { - return elm.id === 'mcepastebin'; - }); - pasteBinElm = pasteBinClones.shift(); - - // if clones were found, move their content into the first bin - Tools.each(pasteBinClones, function (pasteBinClone) { - copyAndRemove(pasteBinElm, pasteBinClone); - }); - - // TINY-1162: when copying plain text (from notepad for example) WebKit clones - // paste bin (with styles and attributes) and uses it as a default wrapper for - // the chunks of the content, here we cycle over the whole paste bin and replace - // those wrappers with a basic div - dirtyWrappers = editor.dom.select('div[id=mcepastebin]', pasteBinElm); - for (i = dirtyWrappers.length - 1; i >= 0; i--) { - cleanWrapper = editor.dom.create('div'); - pasteBinElm.insertBefore(cleanWrapper, dirtyWrappers[i]); - copyAndRemove(cleanWrapper, dirtyWrappers[i]); + } + if (blockElements[name] && currentNode.next) { + text += '\n'; + if (name === 'p') { + text += '\n'; } - - return pasteBinElm ? pasteBinElm.innerHTML : ''; - }; - - - var getLastRng = function () { - return lastRng; - }; - - - var isDefaultContent = function (content) { - return content === pasteBinDefaultContent; - }; - - - var isPasteBin = function (elm) { - return elm && elm.id === 'mcepastebin'; - }; - - - var isDefault = function () { - var pasteBinElm = getEl(); - return isPasteBin(pasteBinElm) && isDefaultContent(pasteBinElm.innerHTML); - }; - - return { - create: create, - remove: remove, - getEl: getEl, - getHtml: getHtml, - getLastRng: getLastRng, - isDefault: isDefault, - isDefaultContent: isDefaultContent - }; - }; + } + } + html = filter(html, [/<!\[[^\]]+\]>/g]); + walk(domParser.parse(html)); + return text; } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.html.DomParser', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.html.DomParser'); + function trimHtml(html) { + function trimSpaces(all, s1, s2) { + if (!s1 && !s2) { + return ' '; + } + return '\xA0'; + } + html = filter(html, [ + /^[\s\S]*<body[^>]*>\s*|\s*<\/body[^>]*>[\s\S]*$/ig, + /<!--StartFragment-->|<!--EndFragment-->/g, + [ + /( ?)<span class="Apple-converted-space">\u00a0<\/span>( ?)/g, + trimSpaces + ], + /<br class="Apple-interchange-newline">/g, + /<br>$/i + ]); + return html; } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.html.Schema', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.html.Schema'); + function createIdGenerator(prefix) { + var count = 0; + return function () { + return prefix + count++; + }; } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ + var isMsEdge = function () { + return navigator.userAgent.indexOf(' Edge/') !== -1; + }; + var $_cedk7ri6jfuw8pud = { + filter: filter, + innerText: innerText, + trimHtml: trimHtml, + createIdGenerator: createIdGenerator, + isMsEdge: isMsEdge + }; -define( - 'tinymce.core.html.Serializer', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.html.Serializer'); + function isWordContent(content) { + return /<font face="Times New Roman"|class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i.test(content) || /class="OutlineElement/.test(content) || /id="?docs\-internal\-guid\-/.test(content); } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.html.Node', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.html.Node'); + function isNumericList(text) { + var found, patterns; + patterns = [ + /^[IVXLMCD]{1,2}\.[ \u00a0]/, + /^[ivxlmcd]{1,2}\.[ \u00a0]/, + /^[a-z]{1,2}[\.\)][ \u00a0]/, + /^[A-Z]{1,2}[\.\)][ \u00a0]/, + /^[0-9]+\.[ \u00a0]/, + /^[\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d]+\.[ \u00a0]/, + /^[\u58f1\u5f10\u53c2\u56db\u4f0d\u516d\u4e03\u516b\u4e5d\u62fe]+\.[ \u00a0]/ + ]; + text = text.replace(/^[\u00a0 ]+/, ''); + global$3.each(patterns, function (pattern) { + if (pattern.test(text)) { + found = true; + return false; + } + }); + return found; } -); - -/** - * Utils.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -/** - * This class contails various utility functions for the paste plugin. - * - * @class tinymce.pasteplugin.Utils - */ -define( - 'tinymce.plugins.paste.core.Utils', - [ - 'tinymce.core.util.Tools', - 'tinymce.core.html.DomParser', - 'tinymce.core.html.Schema' - ], - function (Tools, DomParser, Schema) { - function filter(content, items) { - Tools.each(items, function (v) { - if (v.constructor == RegExp) { - content = content.replace(v, ''); - } else { - content = content.replace(v[0], v[1]); + function isBulletList(text) { + return /^[\s\u00a0]*[\u2022\u00b7\u00a7\u25CF]\s*/.test(text); + } + function convertFakeListsToProperLists(node) { + var currentListNode, prevListNode, lastLevel = 1; + function getText(node) { + var txt = ''; + if (node.type === 3) { + return node.value; + } + if (node = node.firstChild) { + do { + txt += getText(node); + } while (node = node.next); + } + return txt; + } + function trimListStart(node, regExp) { + if (node.type === 3) { + if (regExp.test(node.value)) { + node.value = node.value.replace(regExp, ''); + return false; } - }); - - return content; + } + if (node = node.firstChild) { + do { + if (!trimListStart(node, regExp)) { + return false; + } + } while (node = node.next); + } + return true; } - - /** - * Gets the innerText of the specified element. It will handle edge cases - * and works better than textContent on Gecko. - * - * @param {String} html HTML string to get text from. - * @return {String} String of text with line feeds. - */ - function innerText(html) { - var schema = new Schema(), domParser = new DomParser({}, schema), text = ''; - var shortEndedElements = schema.getShortEndedElements(); - var ignoreElements = Tools.makeMap('script noscript style textarea video audio iframe object', ' '); - var blockElements = schema.getBlockElements(); - - function walk(node) { - var name = node.name, currentNode = node; - - if (name === 'br') { - text += '\n'; - return; + function removeIgnoredNodes(node) { + if (node._listIgnore) { + node.remove(); + return; + } + if (node = node.firstChild) { + do { + removeIgnoredNodes(node); + } while (node = node.next); + } + } + function convertParagraphToLi(paragraphNode, listName, start) { + var level = paragraphNode._listLevel || lastLevel; + if (level !== lastLevel) { + if (level < lastLevel) { + if (currentListNode) { + currentListNode = currentListNode.parent.parent; + } + } else { + prevListNode = currentListNode; + currentListNode = null; } - - // img/input/hr - if (shortEndedElements[name]) { - text += ' '; + } + if (!currentListNode || currentListNode.name !== listName) { + prevListNode = prevListNode || currentListNode; + currentListNode = new global$7(listName, 1); + if (start > 1) { + currentListNode.attr('start', '' + start); } - - // Ingore script, video contents - if (ignoreElements[name]) { - text += ' '; - return; + paragraphNode.wrap(currentListNode); + } else { + currentListNode.append(paragraphNode); + } + paragraphNode.name = 'li'; + if (level > lastLevel && prevListNode) { + prevListNode.lastChild.append(currentListNode); + } + lastLevel = level; + removeIgnoredNodes(paragraphNode); + trimListStart(paragraphNode, /^\u00a0+/); + trimListStart(paragraphNode, /^\s*([\u2022\u00b7\u00a7\u25CF]|\w+\.)/); + trimListStart(paragraphNode, /^\u00a0+/); + } + var elements = []; + var child = node.firstChild; + while (typeof child !== 'undefined' && child !== null) { + elements.push(child); + child = child.walk(); + if (child !== null) { + while (typeof child !== 'undefined' && child.parent !== node) { + child = child.walk(); } - - if (node.type == 3) { - text += node.value; + } + } + for (var i = 0; i < elements.length; i++) { + node = elements[i]; + if (node.name === 'p' && node.firstChild) { + var nodeText = getText(node); + if (isBulletList(nodeText)) { + convertParagraphToLi(node, 'ul'); + continue; } - - // Walk all children - if (!node.shortEnded) { - if ((node = node.firstChild)) { - do { - walk(node); - } while ((node = node.next)); + if (isNumericList(nodeText)) { + var matches = /([0-9]+)\./.exec(nodeText); + var start = 1; + if (matches) { + start = parseInt(matches[1], 10); } + convertParagraphToLi(node, 'ol', start); + continue; } - - // Add \n or \n\n for blocks or P - if (blockElements[name] && currentNode.next) { - text += '\n'; - - if (name == 'p') { - text += '\n'; - } + if (node._listLevel) { + convertParagraphToLi(node, 'ul', 1); + continue; } + currentListNode = null; + } else { + prevListNode = currentListNode; + currentListNode = null; } - - html = filter(html, [ - /<!\[[^\]]+\]>/g // Conditional comments - ]); - - walk(domParser.parse(html)); - - return text; - } - - /** - * Trims the specified HTML by removing all WebKit fragments, all elements wrapping the body trailing BR elements etc. - * - * @param {String} html Html string to trim contents on. - * @return {String} Html contents that got trimmed. - */ - function trimHtml(html) { - function trimSpaces(all, s1, s2) { - // WebKit meant to preserve multiple spaces but instead inserted around all inline tags, - // including the spans with inline styles created on paste - if (!s1 && !s2) { - return ' '; - } - - return '\u00a0'; - } - - html = filter(html, [ - /^[\s\S]*<body[^>]*>\s*|\s*<\/body[^>]*>[\s\S]*$/ig, // Remove anything but the contents within the BODY element - /<!--StartFragment-->|<!--EndFragment-->/g, // Inner fragments (tables from excel on mac) - [/( ?)<span class="Apple-converted-space">\u00a0<\/span>( ?)/g, trimSpaces], - /<br class="Apple-interchange-newline">/g, - /<br>$/i // Trailing BR elements - ]); - - return html; } - - // TODO: Should be in some global class - function createIdGenerator(prefix) { - var count = 0; - - return function () { - return prefix + (count++); - }; - } - - var isMsEdge = function () { - return navigator.userAgent.indexOf(' Edge/') !== -1; - }; - - return { - filter: filter, - innerText: innerText, - trimHtml: trimHtml, - createIdGenerator: createIdGenerator, - isMsEdge: isMsEdge - }; } -); - -/** - * WordFilter.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -/** - * This class parses word HTML into proper TinyMCE markup. - * - * @class tinymce.pasteplugin.WordFilter - * @private - */ -define( - 'tinymce.plugins.paste.core.WordFilter', - [ - 'tinymce.core.util.Tools', - 'tinymce.core.html.DomParser', - 'tinymce.core.html.Schema', - 'tinymce.core.html.Serializer', - 'tinymce.core.html.Node', - 'tinymce.plugins.paste.core.Utils' - ], - function (Tools, DomParser, Schema, Serializer, Node, Utils) { - /** - * Checks if the specified content is from any of the following sources: MS Word/Office 365/Google docs. - */ - function isWordContent(content) { - return ( - (/<font face="Times New Roman"|class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i).test(content) || - (/class="OutlineElement/).test(content) || - (/id="?docs\-internal\-guid\-/.test(content)) - ); - } - - /** - * Checks if the specified text starts with "1. " or "a. " etc. - */ - function isNumericList(text) { - var found, patterns; - - patterns = [ - /^[IVXLMCD]{1,2}\.[ \u00a0]/, // Roman upper case - /^[ivxlmcd]{1,2}\.[ \u00a0]/, // Roman lower case - /^[a-z]{1,2}[\.\)][ \u00a0]/, // Alphabetical a-z - /^[A-Z]{1,2}[\.\)][ \u00a0]/, // Alphabetical A-Z - /^[0-9]+\.[ \u00a0]/, // Numeric lists - /^[\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d]+\.[ \u00a0]/, // Japanese - /^[\u58f1\u5f10\u53c2\u56db\u4f0d\u516d\u4e03\u516b\u4e5d\u62fe]+\.[ \u00a0]/ // Chinese - ]; - - text = text.replace(/^[\u00a0 ]+/, ''); - - Tools.each(patterns, function (pattern) { - if (pattern.test(text)) { - found = true; - return false; + function filterStyles(editor, validStyles, node, styleValue) { + var outputStyles = {}, matches; + var styles = editor.dom.parseStyle(styleValue); + global$3.each(styles, function (value, name) { + switch (name) { + case 'mso-list': + matches = /\w+ \w+([0-9]+)/i.exec(styleValue); + if (matches) { + node._listLevel = parseInt(matches[1], 10); } - }); - - return found; - } - - function isBulletList(text) { - return /^[\s\u00a0]*[\u2022\u00b7\u00a7\u25CF]\s*/.test(text); - } - - /** - * Converts fake bullet and numbered lists to real semantic OL/UL. - * - * @param {tinymce.html.Node} node Root node to convert children of. - */ - function convertFakeListsToProperLists(node) { - var currentListNode, prevListNode, lastLevel = 1; - - function getText(node) { - var txt = ''; - - if (node.type === 3) { - return node.value; + if (/Ignore/i.test(value) && node.firstChild) { + node._listIgnore = true; + node.firstChild._listIgnore = true; } - - if ((node = node.firstChild)) { - do { - txt += getText(node); - } while ((node = node.next)); - } - - return txt; - } - - function trimListStart(node, regExp) { - if (node.type === 3) { - if (regExp.test(node.value)) { - node.value = node.value.replace(regExp, ''); - return false; - } - } - - if ((node = node.firstChild)) { - do { - if (!trimListStart(node, regExp)) { - return false; - } - } while ((node = node.next)); + break; + case 'horiz-align': + name = 'text-align'; + break; + case 'vert-align': + name = 'vertical-align'; + break; + case 'font-color': + case 'mso-foreground': + name = 'color'; + break; + case 'mso-background': + case 'mso-highlight': + name = 'background'; + break; + case 'font-weight': + case 'font-style': + if (value !== 'normal') { + outputStyles[name] = value; } - - return true; - } - - function removeIgnoredNodes(node) { - if (node._listIgnore) { + return; + case 'mso-element': + if (/^(comment|comment-list)$/i.test(value)) { node.remove(); return; } - - if ((node = node.firstChild)) { - do { - removeIgnoredNodes(node); - } while ((node = node.next)); - } + break; } - - function convertParagraphToLi(paragraphNode, listName, start) { - var level = paragraphNode._listLevel || lastLevel; - - // Handle list nesting - if (level != lastLevel) { - if (level < lastLevel) { - // Move to parent list - if (currentListNode) { - currentListNode = currentListNode.parent.parent; - } - } else { - // Create new list - prevListNode = currentListNode; - currentListNode = null; - } - } - - if (!currentListNode || currentListNode.name != listName) { - prevListNode = prevListNode || currentListNode; - currentListNode = new Node(listName, 1); - - if (start > 1) { - currentListNode.attr('start', '' + start); - } - - paragraphNode.wrap(currentListNode); - } else { - currentListNode.append(paragraphNode); - } - - paragraphNode.name = 'li'; - - // Append list to previous list if it exists - if (level > lastLevel && prevListNode) { - prevListNode.lastChild.append(currentListNode); - } - - lastLevel = level; - - // Remove start of list item "1. " or "· " etc - removeIgnoredNodes(paragraphNode); - trimListStart(paragraphNode, /^\u00a0+/); - trimListStart(paragraphNode, /^\s*([\u2022\u00b7\u00a7\u25CF]|\w+\.)/); - trimListStart(paragraphNode, /^\u00a0+/); + if (name.indexOf('mso-comment') === 0) { + node.remove(); + return; } - - // Build a list of all root level elements before we start - // altering them in the loop below. - var elements = [], child = node.firstChild; - while (typeof child !== 'undefined' && child !== null) { - elements.push(child); - - child = child.walk(); - if (child !== null) { - while (typeof child !== 'undefined' && child.parent !== node) { - child = child.walk(); - } - } + if (name.indexOf('mso-') === 0) { + return; } - - for (var i = 0; i < elements.length; i++) { - node = elements[i]; - - if (node.name == 'p' && node.firstChild) { - // Find first text node in paragraph - var nodeText = getText(node); - - // Detect unordered lists look for bullets - if (isBulletList(nodeText)) { - convertParagraphToLi(node, 'ul'); - continue; - } - - // Detect ordered lists 1., a. or ixv. - if (isNumericList(nodeText)) { - // Parse OL start number - var matches = /([0-9]+)\./.exec(nodeText); - var start = 1; - if (matches) { - start = parseInt(matches[1], 10); - } - - convertParagraphToLi(node, 'ol', start); - continue; - } - - // Convert paragraphs marked as lists but doesn't look like anything - if (node._listLevel) { - convertParagraphToLi(node, 'ul', 1); - continue; - } - - currentListNode = null; - } else { - // If the root level element isn't a p tag which can be - // processed by convertParagraphToLi, it interrupts the - // lists, causing a new list to start instead of having - // elements from the next list inserted above this tag. - prevListNode = currentListNode; - currentListNode = null; - } + if ($_dls6llhqjfuw8ptf.getRetainStyleProps(editor) === 'all' || validStyles && validStyles[name]) { + outputStyles[name] = value; } + }); + if (/(bold)/i.test(outputStyles['font-weight'])) { + delete outputStyles['font-weight']; + node.wrap(new global$7('b', 1)); } - - function filterStyles(editor, validStyles, node, styleValue) { - var outputStyles = {}, matches, styles = editor.dom.parseStyle(styleValue); - - Tools.each(styles, function (value, name) { - // Convert various MS styles to W3C styles - switch (name) { - case 'mso-list': - // Parse out list indent level for lists - matches = /\w+ \w+([0-9]+)/i.exec(styleValue); - if (matches) { - node._listLevel = parseInt(matches[1], 10); - } - - // Remove these nodes <span style="mso-list:Ignore">o</span> - // Since the span gets removed we mark the text node and the span - if (/Ignore/i.test(value) && node.firstChild) { - node._listIgnore = true; - node.firstChild._listIgnore = true; - } - - break; - - case "horiz-align": - name = "text-align"; - break; - - case "vert-align": - name = "vertical-align"; - break; - - case "font-color": - case "mso-foreground": - name = "color"; - break; - - case "mso-background": - case "mso-highlight": - name = "background"; - break; - - case "font-weight": - case "font-style": - if (value != "normal") { - outputStyles[name] = value; - } - return; - - case "mso-element": - // Remove track changes code - if (/^(comment|comment-list)$/i.test(value)) { - node.remove(); - return; - } - - break; - } - - if (name.indexOf('mso-comment') === 0) { - node.remove(); - return; - } - - // Never allow mso- prefixed names - if (name.indexOf('mso-') === 0) { - return; - } - - // Output only valid styles - if (editor.settings.paste_retain_style_properties == "all" || (validStyles && validStyles[name])) { - outputStyles[name] = value; + if (/(italic)/i.test(outputStyles['font-style'])) { + delete outputStyles['font-style']; + node.wrap(new global$7('i', 1)); + } + outputStyles = editor.dom.serializeStyle(outputStyles, node.name); + if (outputStyles) { + return outputStyles; + } + return null; + } + var filterWordContent = function (editor, content) { + var retainStyleProperties, validStyles; + retainStyleProperties = $_dls6llhqjfuw8ptf.getRetainStyleProps(editor); + if (retainStyleProperties) { + validStyles = global$3.makeMap(retainStyleProperties.split(/[, ]/)); + } + content = $_cedk7ri6jfuw8pud.filter(content, [ + /<br class="?Apple-interchange-newline"?>/gi, + /<b[^>]+id="?docs-internal-[^>]*>/gi, + /<!--[\s\S]+?-->/gi, + /<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi, + [ + /<(\/?)s>/gi, + '<$1strike>' + ], + [ + / /gi, + '\xA0' + ], + [ + /<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi, + function (str, spaces) { + return spaces.length > 0 ? spaces.replace(/./, ' ').slice(Math.floor(spaces.length / 2)).split('').join('\xA0') : ''; } - }); - - // Convert bold style to "b" element - if (/(bold)/i.test(outputStyles["font-weight"])) { - delete outputStyles["font-weight"]; - node.wrap(new Node("b", 1)); + ] + ]); + var validElements = $_dls6llhqjfuw8ptf.getWordValidElements(editor); + var schema = global$8({ + valid_elements: validElements, + valid_children: '-li[p]' + }); + global$3.each(schema.elements, function (rule) { + if (!rule.attributes.class) { + rule.attributes.class = {}; + rule.attributesOrder.push('class'); } - - // Convert italic style to "i" element - if (/(italic)/i.test(outputStyles["font-style"])) { - delete outputStyles["font-style"]; - node.wrap(new Node("i", 1)); + if (!rule.attributes.style) { + rule.attributes.style = {}; + rule.attributesOrder.push('style'); } - - // Serialize the styles and see if there is something left to keep - outputStyles = editor.dom.serializeStyle(outputStyles, node.name); - if (outputStyles) { - return outputStyles; + }); + var domParser = global$6({}, schema); + domParser.addAttributeFilter('style', function (nodes) { + var i = nodes.length, node; + while (i--) { + node = nodes[i]; + node.attr('style', filterStyles(editor, validStyles, node, node.attr('style'))); + if (node.name === 'span' && node.parent && !node.attributes.length) { + node.unwrap(); + } } - - return null; - } - - var filterWordContent = function (editor, content) { - var retainStyleProperties, validStyles; - - retainStyleProperties = editor.settings.paste_retain_style_properties; - if (retainStyleProperties) { - validStyles = Tools.makeMap(retainStyleProperties.split(/[, ]/)); + }); + domParser.addAttributeFilter('class', function (nodes) { + var i = nodes.length, node, className; + while (i--) { + node = nodes[i]; + className = node.attr('class'); + if (/^(MsoCommentReference|MsoCommentText|msoDel)$/i.test(className)) { + node.remove(); + } + node.attr('class', null); } - - // Remove basic Word junk - content = Utils.filter(content, [ - // Remove apple new line markers - /<br class="?Apple-interchange-newline"?>/gi, - - // Remove google docs internal guid markers - /<b[^>]+id="?docs-internal-[^>]*>/gi, - - // Word comments like conditional comments etc - /<!--[\s\S]+?-->/gi, - - // Remove comments, scripts (e.g., msoShowComment), XML tag, VML content, - // MS Office namespaced tags, and a few other tags - /<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi, - - // Convert <s> into <strike> for line-though - [/<(\/?)s>/gi, "<$1strike>"], - - // Replace nsbp entites to char since it's easier to handle - [/ /gi, "\u00a0"], - - // Convert <span style="mso-spacerun:yes">___</span> to string of alternating - // breaking/non-breaking spaces of same length - [/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi, - function (str, spaces) { - return (spaces.length > 0) ? - spaces.replace(/./, " ").slice(Math.floor(spaces.length / 2)).split("").join("\u00a0") : ""; - } - ] - ]); - - var validElements = editor.settings.paste_word_valid_elements; - if (!validElements) { - validElements = ( - '-strong/b,-em/i,-u,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,' + - '-p/div,-a[href|name],sub,sup,strike,br,del,table[width],tr,' + - 'td[colspan|rowspan|width],th[colspan|rowspan|width],thead,tfoot,tbody' - ); + }); + domParser.addNodeFilter('del', function (nodes) { + var i = nodes.length; + while (i--) { + nodes[i].remove(); } - - // Setup strict schema - var schema = new Schema({ - valid_elements: validElements, - valid_children: '-li[p]' - }); - - // Add style/class attribute to all element rules since the user might have removed them from - // paste_word_valid_elements config option and we need to check them for properties - Tools.each(schema.elements, function (rule) { - /*eslint dot-notation:0*/ - if (!rule.attributes["class"]) { - rule.attributes["class"] = {}; - rule.attributesOrder.push("class"); - } - - if (!rule.attributes.style) { - rule.attributes.style = {}; - rule.attributesOrder.push("style"); - } - }); - - // Parse HTML into DOM structure - var domParser = new DomParser({}, schema); - - // Filter styles to remove "mso" specific styles and convert some of them - domParser.addAttributeFilter('style', function (nodes) { - var i = nodes.length, node; - - while (i--) { - node = nodes[i]; - node.attr('style', filterStyles(editor, validStyles, node, node.attr('style'))); - - // Remove pointess spans - if (node.name == 'span' && node.parent && !node.attributes.length) { - node.unwrap(); - } + }); + domParser.addNodeFilter('a', function (nodes) { + var i = nodes.length, node, href, name; + while (i--) { + node = nodes[i]; + href = node.attr('href'); + name = node.attr('name'); + if (href && href.indexOf('#_msocom_') !== -1) { + node.remove(); + continue; } - }); - - // Check the class attribute for comments or del items and remove those - domParser.addAttributeFilter('class', function (nodes) { - var i = nodes.length, node, className; - - while (i--) { - node = nodes[i]; - - className = node.attr('class'); - if (/^(MsoCommentReference|MsoCommentText|msoDel)$/i.test(className)) { - node.remove(); + if (href && href.indexOf('file://') === 0) { + href = href.split('#')[1]; + if (href) { + href = '#' + href; } - - node.attr('class', null); - } - }); - - // Remove all del elements since we don't want the track changes code in the editor - domParser.addNodeFilter('del', function (nodes) { - var i = nodes.length; - - while (i--) { - nodes[i].remove(); } - }); - - // Keep some of the links and anchors - domParser.addNodeFilter('a', function (nodes) { - var i = nodes.length, node, href, name; - - while (i--) { - node = nodes[i]; - href = node.attr('href'); - name = node.attr('name'); - - if (href && href.indexOf('#_msocom_') != -1) { - node.remove(); - continue; - } - - if (href && href.indexOf('file://') === 0) { - href = href.split('#')[1]; - if (href) { - href = '#' + href; - } - } - - if (!href && !name) { + if (!href && !name) { + node.unwrap(); + } else { + if (name && !/^_?(?:toc|edn|ftn)/i.test(name)) { node.unwrap(); - } else { - // Remove all named anchors that aren't specific to TOC, Footnotes or Endnotes - if (name && !/^_?(?:toc|edn|ftn)/i.test(name)) { - node.unwrap(); - continue; - } - - node.attr({ - href: href, - name: name - }); + continue; } + node.attr({ + href: href, + name: name + }); } - }); - - // Parse into DOM structure - var rootNode = domParser.parse(content); - - // Process DOM - if (editor.settings.paste_convert_word_fake_lists !== false) { - convertFakeListsToProperLists(rootNode); - } - - // Serialize DOM back to HTML - content = new Serializer({ - validate: editor.settings.validate - }, schema).serialize(rootNode); - - return content; - }; - - var preProcess = function (editor, content) { - return editor.settings.paste_enable_default_filters === false ? content : filterWordContent(editor, content); - }; - - return { - preProcess: preProcess, - isWordContent: isWordContent - }; - } -); - -/** - * ProcessFilters.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.paste.core.ProcessFilters', - [ - 'tinymce.plugins.paste.api.Events', - 'tinymce.plugins.paste.core.WordFilter' - ], - function (Events, WordFilter) { - var processResult = function (content, cancelled) { - return { content: content, cancelled: cancelled }; - }; - - var postProcessFilter = function (editor, html, internal, isWordHtml) { - var tempBody = editor.dom.create('div', { style: 'display:none' }, html); - var postProcessArgs = Events.firePastePostProcess(editor, tempBody, internal, isWordHtml); - return processResult(postProcessArgs.node.innerHTML, postProcessArgs.isDefaultPrevented()); - }; - - var filterContent = function (editor, content, internal, isWordHtml) { - var preProcessArgs = Events.firePastePreProcess(editor, content, internal, isWordHtml); - - if (editor.hasEventListeners('PastePostProcess') && !preProcessArgs.isDefaultPrevented()) { - return postProcessFilter(editor, preProcessArgs.content, internal, isWordHtml); - } else { - return processResult(preProcessArgs.content, preProcessArgs.isDefaultPrevented()); - } - }; - - var process = function (editor, html, internal) { - var isWordHtml = WordFilter.isWordContent(html); - var content = isWordHtml ? WordFilter.preProcess(editor, html) : html; - - return filterContent(editor, content, internal, isWordHtml); - }; - - return { - process: process - }; - } -); - -/** - * SmartPaste.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -/** - * Tries to be smart depending on what the user pastes if it looks like an url - * it will make a link out of the current selection. If it's an image url that looks - * like an image it will check if it's an image and insert it as an image. - * - * @class tinymce.pasteplugin.SmartPaste - * @private - */ -define( - 'tinymce.plugins.paste.core.SmartPaste', - [ - 'tinymce.core.util.Tools' - ], - function (Tools) { - var isAbsoluteUrl = function (url) { - return /^https?:\/\/[\w\?\-\/+=.&%@~#]+$/i.test(url); - }; - - var isImageUrl = function (url) { - return isAbsoluteUrl(url) && /.(gif|jpe?g|png)$/.test(url); - }; - - var createImage = function (editor, url, pasteHtml) { - editor.undoManager.extra(function () { - pasteHtml(editor, url); - }, function () { - editor.insertContent('<img src="' + url + '">'); - }); - - return true; - }; - - var createLink = function (editor, url, pasteHtml) { - editor.undoManager.extra(function () { - pasteHtml(editor, url); - }, function () { - editor.execCommand('mceInsertLink', false, url); - }); - - return true; - }; - - var linkSelection = function (editor, html, pasteHtml) { - return editor.selection.isCollapsed() === false && isAbsoluteUrl(html) ? createLink(editor, html, pasteHtml) : false; - }; - - var insertImage = function (editor, html, pasteHtml) { - return isImageUrl(html) ? createImage(editor, html, pasteHtml) : false; - }; - - var pasteHtml = function (editor, html) { - editor.insertContent(html, { - merge: editor.settings.paste_merge_formats !== false, - paste: true - }); - - return true; - }; - - var smartInsertContent = function (editor, html) { - Tools.each([ - linkSelection, - insertImage, - pasteHtml - ], function (action) { - return action(editor, html, pasteHtml) !== true; - }); - }; - - var insertContent = function (editor, html) { - if (editor.settings.smart_paste === false) { - pasteHtml(editor, html); - } else { - smartInsertContent(editor, html); } - }; + }); + var rootNode = domParser.parse(content); + if ($_dls6llhqjfuw8ptf.shouldConvertWordFakeLists(editor)) { + convertFakeListsToProperLists(rootNode); + } + content = global$9({ validate: editor.settings.validate }, schema).serialize(rootNode); + return content; + }; + var preProcess = function (editor, content) { + return $_dls6llhqjfuw8ptf.shouldUseDefaultFilters(editor) ? filterWordContent(editor, content) : content; + }; + var $_8q8fy4i1jfuw8pu5 = { + preProcess: preProcess, + isWordContent: isWordContent + }; + var processResult = function (content, cancelled) { return { - isImageUrl: isImageUrl, - isAbsoluteUrl: isAbsoluteUrl, - insertContent: insertContent + content: content, + cancelled: cancelled }; - } -); - -/** - * Clipboard.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -/** - * This class contains logic for getting HTML contents out of the clipboard. - * - * We need to make a lot of ugly hacks to get the contents out of the clipboard since - * the W3C Clipboard API is broken in all browsers that have it: Gecko/WebKit/Blink. - * We might rewrite this the way those API:s stabilize. Browsers doesn't handle pasting - * from applications like Word the same way as it does when pasting into a contentEditable area - * so we need to do lots of extra work to try to get to this clipboard data. - * - * Current implementation steps: - * 1. On keydown with paste keys Ctrl+V or Shift+Insert create - * a paste bin element and move focus to that element. - * 2. Wait for the browser to fire a "paste" event and get the contents out of the paste bin. - * 3. Check if the paste was successful if true, process the HTML. - * (4). If the paste was unsuccessful use IE execCommand, Clipboard API, document.dataTransfer old WebKit API etc. - * - * @class tinymce.pasteplugin.Clipboard - * @private - */ -define( - 'tinymce.plugins.paste.core.Clipboard', - [ - 'tinymce.core.dom.RangeUtils', - 'tinymce.core.Env', - 'tinymce.core.util.Delay', - 'tinymce.core.util.Tools', - 'tinymce.core.util.VK', - 'tinymce.plugins.paste.core.InternalHtml', - 'tinymce.plugins.paste.core.Newlines', - 'tinymce.plugins.paste.core.PasteBin', - 'tinymce.plugins.paste.core.ProcessFilters', - 'tinymce.plugins.paste.core.SmartPaste', - 'tinymce.plugins.paste.core.Utils' - ], - function (RangeUtils, Env, Delay, Tools, VK, InternalHtml, Newlines, PasteBin, ProcessFilters, SmartPaste, Utils) { - return function (editor) { - var self = this, keyboardPasteTimeStamp = 0, draggingInternally = false; - var pasteBin = new PasteBin(editor); - var keyboardPastePlainTextState; - var mceInternalUrlPrefix = 'data:text/mce-internal,'; - var uniqueId = Utils.createIdGenerator("mceclip"); + }; + var postProcessFilter = function (editor, html, internal, isWordHtml) { + var tempBody = editor.dom.create('div', { style: 'display:none' }, html); + var postProcessArgs = $_ae0f8dhpjfuw8pte.firePastePostProcess(editor, tempBody, internal, isWordHtml); + return processResult(postProcessArgs.node.innerHTML, postProcessArgs.isDefaultPrevented()); + }; + var filterContent = function (editor, content, internal, isWordHtml) { + var preProcessArgs = $_ae0f8dhpjfuw8pte.firePastePreProcess(editor, content, internal, isWordHtml); + if (editor.hasEventListeners('PastePostProcess') && !preProcessArgs.isDefaultPrevented()) { + return postProcessFilter(editor, preProcessArgs.content, internal, isWordHtml); + } else { + return processResult(preProcessArgs.content, preProcessArgs.isDefaultPrevented()); + } + }; + var process = function (editor, html, internal) { + var isWordHtml = $_8q8fy4i1jfuw8pu5.isWordContent(html); + var content = isWordHtml ? $_8q8fy4i1jfuw8pu5.preProcess(editor, html) : html; + return filterContent(editor, content, internal, isWordHtml); + }; + var $_g5r539i0jfuw8pu1 = { process: process }; - /** - * Pastes the specified HTML. This means that the HTML is filtered and then - * inserted at the current selection in the editor. It will also fire paste events - * for custom user filtering. - * - * @param {String} html HTML code to paste into the current selection. - * @param {Boolean?} internalFlag Optional true/false flag if the contents is internal or external. - */ - function pasteHtml(html, internalFlag) { - var internal = internalFlag ? internalFlag : InternalHtml.isMarked(html); - var args = ProcessFilters.process(editor, InternalHtml.unmark(html), internal); + var pasteHtml = function (editor, html) { + editor.insertContent(html, { + merge: $_dls6llhqjfuw8ptf.shouldMergeFormats(editor), + paste: true + }); + return true; + }; + var isAbsoluteUrl = function (url) { + return /^https?:\/\/[\w\?\-\/+=.&%@~#]+$/i.test(url); + }; + var isImageUrl = function (url) { + return isAbsoluteUrl(url) && /.(gif|jpe?g|png)$/.test(url); + }; + var createImage = function (editor, url, pasteHtmlFn) { + editor.undoManager.extra(function () { + pasteHtmlFn(editor, url); + }, function () { + editor.insertContent('<img src="' + url + '">'); + }); + return true; + }; + var createLink = function (editor, url, pasteHtmlFn) { + editor.undoManager.extra(function () { + pasteHtmlFn(editor, url); + }, function () { + editor.execCommand('mceInsertLink', false, url); + }); + return true; + }; + var linkSelection = function (editor, html, pasteHtmlFn) { + return editor.selection.isCollapsed() === false && isAbsoluteUrl(html) ? createLink(editor, html, pasteHtmlFn) : false; + }; + var insertImage = function (editor, html, pasteHtmlFn) { + return isImageUrl(html) ? createImage(editor, html, pasteHtmlFn) : false; + }; + var smartInsertContent = function (editor, html) { + global$3.each([ + linkSelection, + insertImage, + pasteHtml + ], function (action) { + return action(editor, html, pasteHtml) !== true; + }); + }; + var insertContent = function (editor, html) { + if ($_dls6llhqjfuw8ptf.isSmartPasteEnabled(editor) === false) { + pasteHtml(editor, html); + } else { + smartInsertContent(editor, html); + } + }; + var $_6s6wwwi7jfuw8puh = { + isImageUrl: isImageUrl, + isAbsoluteUrl: isAbsoluteUrl, + insertContent: insertContent + }; - if (args.cancelled === false) { - SmartPaste.insertContent(editor, args.content); + var pasteHtml$1 = function (editor, html, internalFlag) { + var internal = internalFlag ? internalFlag : $_ceqsrthxjfuw8ptx.isMarked(html); + var args = $_g5r539i0jfuw8pu1.process(editor, $_ceqsrthxjfuw8ptx.unmark(html), internal); + if (args.cancelled === false) { + $_6s6wwwi7jfuw8puh.insertContent(editor, args.content); + } + }; + var pasteText = function (editor, text) { + text = editor.dom.encode(text).replace(/\r\n/g, '\n'); + text = $_7lc4hihyjfuw8pty.convert(text, editor.settings.forced_root_block, editor.settings.forced_root_block_attrs); + pasteHtml$1(editor, text, false); + }; + var getDataTransferItems = function (dataTransfer) { + var items = {}; + var mceInternalUrlPrefix = 'data:text/mce-internal,'; + if (dataTransfer) { + if (dataTransfer.getData) { + var legacyText = dataTransfer.getData('Text'); + if (legacyText && legacyText.length > 0) { + if (legacyText.indexOf(mceInternalUrlPrefix) === -1) { + items['text/plain'] = legacyText; + } } } - - /** - * Pastes the specified text. This means that the plain text is processed - * and converted into BR and P elements. It will fire paste events for custom filtering. - * - * @param {String} text Text to paste as the current selection location. - */ - function pasteText(text) { - text = editor.dom.encode(text).replace(/\r\n/g, '\n'); - text = Newlines.convert(text, editor.settings.forced_root_block, editor.settings.forced_root_block_attrs); - - pasteHtml(text, false); - } - - - /** - * Gets various content types out of a datatransfer object. - * - * @param {DataTransfer} dataTransfer Event fired on paste. - * @return {Object} Object with mime types and data for those mime types. - */ - function getDataTransferItems(dataTransfer) { - var items = {}; - - if (dataTransfer) { - // Use old WebKit/IE API - if (dataTransfer.getData) { - var legacyText = dataTransfer.getData('Text'); - if (legacyText && legacyText.length > 0) { - if (legacyText.indexOf(mceInternalUrlPrefix) == -1) { - items['text/plain'] = legacyText; - } - } - } - - if (dataTransfer.types) { - for (var i = 0; i < dataTransfer.types.length; i++) { - var contentType = dataTransfer.types[i]; - try { // IE11 throws exception when contentType is Files (type is present but data cannot be retrieved via getData()) - items[contentType] = dataTransfer.getData(contentType); - } catch (ex) { - items[contentType] = ""; // useless in general, but for consistency across browsers - } - } + if (dataTransfer.types) { + for (var i = 0; i < dataTransfer.types.length; i++) { + var contentType = dataTransfer.types[i]; + try { + items[contentType] = dataTransfer.getData(contentType); + } catch (ex) { + items[contentType] = ''; } } - - return items; - } - - /** - * Gets various content types out of the Clipboard API. It will also get the - * plain text using older IE and WebKit API:s. - * - * @param {ClipboardEvent} clipboardEvent Event fired on paste. - * @return {Object} Object with mime types and data for those mime types. - */ - function getClipboardContent(clipboardEvent) { - var content = getDataTransferItems(clipboardEvent.clipboardData || editor.getDoc().dataTransfer); - - // Edge 15 has a broken HTML Clipboard API see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11877517/ - return Utils.isMsEdge() ? Tools.extend(content, { 'text/html': '' }) : content; } - - function hasHtmlOrText(content) { - return hasContentType(content, 'text/html') || hasContentType(content, 'text/plain'); + } + return items; + }; + var getClipboardContent = function (editor, clipboardEvent) { + var content = getDataTransferItems(clipboardEvent.clipboardData || editor.getDoc().dataTransfer); + return $_cedk7ri6jfuw8pud.isMsEdge() ? global$3.extend(content, { 'text/html': '' }) : content; + }; + var hasContentType = function (clipboardContent, mimeType) { + return mimeType in clipboardContent && clipboardContent[mimeType].length > 0; + }; + var hasHtmlOrText = function (content) { + return hasContentType(content, 'text/html') || hasContentType(content, 'text/plain'); + }; + var getBase64FromUri = function (uri) { + var idx; + idx = uri.indexOf(','); + if (idx !== -1) { + return uri.substr(idx + 1); + } + return null; + }; + var isValidDataUriImage = function (settings, imgElm) { + return settings.images_dataimg_filter ? settings.images_dataimg_filter(imgElm) : true; + }; + var extractFilename = function (editor, str) { + var m = str.match(/([\s\S]+?)\.(?:jpeg|jpg|png|gif)$/i); + return m ? editor.dom.encode(m[1]) : null; + }; + var pasteImage = function (editor, rng, reader, blob) { + var uniqueId = $_cedk7ri6jfuw8pud.createIdGenerator('mceclip'); + if (rng) { + editor.selection.setRng(rng); + rng = null; + } + var dataUri = reader.result; + var base64 = getBase64FromUri(dataUri); + var id = uniqueId(); + var name = editor.settings.images_reuse_filename && blob.name ? extractFilename(editor, blob.name) : id; + var img = new Image(); + img.src = dataUri; + if (isValidDataUriImage(editor.settings, img)) { + var blobCache = editor.editorUpload.blobCache; + var blobInfo = void 0, existingBlobInfo = void 0; + existingBlobInfo = blobCache.findFirst(function (cachedBlobInfo) { + return cachedBlobInfo.base64() === base64; + }); + if (!existingBlobInfo) { + blobInfo = blobCache.create(id, blob, base64, name); + blobCache.add(blobInfo); + } else { + blobInfo = existingBlobInfo; } - - function getBase64FromUri(uri) { - var idx; - - idx = uri.indexOf(','); - if (idx !== -1) { - return uri.substr(idx + 1); + pasteHtml$1(editor, '<img src="' + blobInfo.blobUri() + '">', false); + } else { + pasteHtml$1(editor, '<img src="' + dataUri + '">', false); + } + }; + var isClipboardEvent = function (event) { + return event.type === 'paste'; + }; + var pasteImageData = function (editor, e, rng) { + var dataTransfer = isClipboardEvent(e) ? e.clipboardData : e.dataTransfer; + function processItems(items) { + var i, item, reader, hadImage = false; + if (items) { + for (i = 0; i < items.length; i++) { + item = items[i]; + if (/^image\/(jpeg|png|gif|bmp)$/.test(item.type)) { + var blob = item.getAsFile ? item.getAsFile() : item; + reader = new window.FileReader(); + reader.onload = pasteImage.bind(null, editor, rng, reader, blob); + reader.readAsDataURL(blob); + e.preventDefault(); + hadImage = true; + } } - - return null; - } - - function isValidDataUriImage(settings, imgElm) { - return settings.images_dataimg_filter ? settings.images_dataimg_filter(imgElm) : true; - } - - function extractFilename(str) { - var m = str.match(/([\s\S]+?)\.(?:jpeg|jpg|png|gif)$/i); - return m ? editor.dom.encode(m[1]) : null; } - - function pasteImage(rng, reader, blob) { - if (rng) { - editor.selection.setRng(rng); - rng = null; - } - - var dataUri = reader.result; - var base64 = getBase64FromUri(dataUri); - var id = uniqueId(); - var name = editor.settings.images_reuse_filename && blob.name ? extractFilename(blob.name) : id; - var img = new Image(); - - img.src = dataUri; - - // TODO: Move the bulk of the cache logic to EditorUpload - if (isValidDataUriImage(editor.settings, img)) { - var blobCache = editor.editorUpload.blobCache; - var blobInfo, existingBlobInfo; - - existingBlobInfo = blobCache.findFirst(function (cachedBlobInfo) { - return cachedBlobInfo.base64() === base64; - }); - - if (!existingBlobInfo) { - blobInfo = blobCache.create(id, blob, base64, name); - blobCache.add(blobInfo); - } else { - blobInfo = existingBlobInfo; - } - - pasteHtml('<img src="' + blobInfo.blobUri() + '">', false); - } else { - pasteHtml('<img src="' + dataUri + '">', false); + return hadImage; + } + if (editor.settings.paste_data_images && dataTransfer) { + return processItems(dataTransfer.items) || processItems(dataTransfer.files); + } + }; + var isBrokenAndroidClipboardEvent = function (e) { + var clipboardData = e.clipboardData; + return navigator.userAgent.indexOf('Android') !== -1 && clipboardData && clipboardData.items && clipboardData.items.length === 0; + }; + var isKeyboardPasteEvent = function (e) { + return global$4.metaKeyPressed(e) && e.keyCode === 86 || e.shiftKey && e.keyCode === 45; + }; + var registerEventHandlers = function (editor, pasteBin, pasteFormat) { + var keyboardPasteTimeStamp = 0; + var keyboardPastePlainTextState; + editor.on('keydown', function (e) { + function removePasteBinOnKeyUp(e) { + if (isKeyboardPasteEvent(e) && !e.isDefaultPrevented()) { + pasteBin.remove(); } } - - /** - * Checks if the clipboard contains image data if it does it will take that data - * and convert it into a data url image and paste that image at the caret location. - * - * @param {ClipboardEvent} e Paste/drop event object. - * @param {DOMRange} rng Rng object to move selection to. - * @return {Boolean} true/false if the image data was found or not. - */ - function pasteImageData(e, rng) { - var dataTransfer = e.clipboardData || e.dataTransfer; - - function processItems(items) { - var i, item, reader, hadImage = false; - - if (items) { - for (i = 0; i < items.length; i++) { - item = items[i]; - - if (/^image\/(jpeg|png|gif|bmp)$/.test(item.type)) { - var blob = item.getAsFile ? item.getAsFile() : item; - - reader = new FileReader(); - reader.onload = pasteImage.bind(null, rng, reader, blob); - reader.readAsDataURL(blob); - - e.preventDefault(); - hadImage = true; - } - } - } - - return hadImage; + if (isKeyboardPasteEvent(e) && !e.isDefaultPrevented()) { + keyboardPastePlainTextState = e.shiftKey && e.keyCode === 86; + if (keyboardPastePlainTextState && global$1.webkit && navigator.userAgent.indexOf('Version/') !== -1) { + return; } - - if (editor.settings.paste_data_images && dataTransfer) { - return processItems(dataTransfer.items) || processItems(dataTransfer.files); + e.stopImmediatePropagation(); + keyboardPasteTimeStamp = new Date().getTime(); + if (global$1.ie && keyboardPastePlainTextState) { + e.preventDefault(); + $_ae0f8dhpjfuw8pte.firePaste(editor, true); + return; } + pasteBin.remove(); + pasteBin.create(); + editor.once('keyup', removePasteBinOnKeyUp); + editor.once('paste', function () { + editor.off('keyup', removePasteBinOnKeyUp); + }); } - - /** - * Chrome on Android doesn't support proper clipboard access so we have no choice but to allow the browser default behavior. - * - * @param {Event} e Paste event object to check if it contains any data. - * @return {Boolean} true/false if the clipboard is empty or not. - */ - function isBrokenAndroidClipboardEvent(e) { - var clipboardData = e.clipboardData; - - return navigator.userAgent.indexOf('Android') != -1 && clipboardData && clipboardData.items && clipboardData.items.length === 0; - } - - function getCaretRangeFromEvent(e) { - return RangeUtils.getCaretRangeFromPoint(e.clientX, e.clientY, editor.getDoc()); - } - - function hasContentType(clipboardContent, mimeType) { - return mimeType in clipboardContent && clipboardContent[mimeType].length > 0; + }); + function insertClipboardContent(clipboardContent, isKeyBoardPaste, plainTextMode, internal) { + var content, isPlainTextHtml; + if (hasContentType(clipboardContent, 'text/html')) { + content = clipboardContent['text/html']; + } else { + content = pasteBin.getHtml(); + internal = internal ? internal : $_ceqsrthxjfuw8ptx.isMarked(content); + if (pasteBin.isDefaultContent(content)) { + plainTextMode = true; + } } - - function isKeyboardPasteEvent(e) { - return (VK.metaKeyPressed(e) && e.keyCode == 86) || (e.shiftKey && e.keyCode == 45); + content = $_cedk7ri6jfuw8pud.trimHtml(content); + pasteBin.remove(); + isPlainTextHtml = internal === false && $_7lc4hihyjfuw8pty.isPlainText(content); + if (!content.length || isPlainTextHtml) { + plainTextMode = true; } - - function registerEventHandlers() { - editor.on('keydown', function (e) { - function removePasteBinOnKeyUp(e) { - // Ctrl+V or Shift+Insert - if (isKeyboardPasteEvent(e) && !e.isDefaultPrevented()) { - pasteBin.remove(); - } - } - - // Ctrl+V or Shift+Insert - if (isKeyboardPasteEvent(e) && !e.isDefaultPrevented()) { - keyboardPastePlainTextState = e.shiftKey && e.keyCode == 86; - - // Edge case on Safari on Mac where it doesn't handle Cmd+Shift+V correctly - // it fires the keydown but no paste or keyup so we are left with a paste bin - if (keyboardPastePlainTextState && Env.webkit && navigator.userAgent.indexOf('Version/') != -1) { - return; - } - - // Prevent undoManager keydown handler from making an undo level with the pastebin in it - e.stopImmediatePropagation(); - - keyboardPasteTimeStamp = new Date().getTime(); - - // IE doesn't support Ctrl+Shift+V and it doesn't even produce a paste event - // so lets fake a paste event and let IE use the execCommand/dataTransfer methods - if (Env.ie && keyboardPastePlainTextState) { - e.preventDefault(); - editor.fire('paste', { ieFake: true }); - return; - } - - pasteBin.remove(); - pasteBin.create(); - - // Remove pastebin if we get a keyup and no paste event - // For example pasting a file in IE 11 will not produce a paste event - editor.once('keyup', removePasteBinOnKeyUp); - editor.once('paste', function () { - editor.off('keyup', removePasteBinOnKeyUp); - }); - } - }); - - function insertClipboardContent(clipboardContent, isKeyBoardPaste, plainTextMode, internal) { - var content, isPlainTextHtml; - - // Grab HTML from Clipboard API or paste bin as a fallback - if (hasContentType(clipboardContent, 'text/html')) { - content = clipboardContent['text/html']; - } else { - content = pasteBin.getHtml(); - internal = internal ? internal : InternalHtml.isMarked(content); - - // If paste bin is empty try using plain text mode - // since that is better than nothing right - if (pasteBin.isDefaultContent(content)) { - plainTextMode = true; - } - } - - content = Utils.trimHtml(content); - - pasteBin.remove(); - - isPlainTextHtml = (internal === false && Newlines.isPlainText(content)); - - // If we got nothing from clipboard API and pastebin or the content is a plain text (with only - // some BRs, Ps or DIVs as newlines) then we fallback to plain/text - if (!content.length || isPlainTextHtml) { - plainTextMode = true; - } - - // Grab plain text from Clipboard API or convert existing HTML to plain text - if (plainTextMode) { - // Use plain text contents from Clipboard API unless the HTML contains paragraphs then - // we should convert the HTML to plain text since works better when pasting HTML/Word contents as plain text - if (hasContentType(clipboardContent, 'text/plain') && isPlainTextHtml) { - content = clipboardContent['text/plain']; - } else { - content = Utils.innerText(content); - } - } - - // If the content is the paste bin default HTML then it was - // impossible to get the cliboard data out. - if (pasteBin.isDefaultContent(content)) { - if (!isKeyBoardPaste) { - editor.windowManager.alert('Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents.'); - } - - return; - } - - if (plainTextMode) { - pasteText(content); - } else { - pasteHtml(content, internal); - } - } - - var getLastRng = function () { - return pasteBin.getLastRng() || editor.selection.getRng(); - }; - - editor.on('paste', function (e) { - // Getting content from the Clipboard can take some time - var clipboardTimer = new Date().getTime(); - var clipboardContent = getClipboardContent(e); - var clipboardDelay = new Date().getTime() - clipboardTimer; - - var isKeyBoardPaste = (new Date().getTime() - keyboardPasteTimeStamp - clipboardDelay) < 1000; - var plainTextMode = self.pasteFormat == "text" || keyboardPastePlainTextState; - var internal = hasContentType(clipboardContent, InternalHtml.internalHtmlMime()); - - keyboardPastePlainTextState = false; - - if (e.isDefaultPrevented() || isBrokenAndroidClipboardEvent(e)) { - pasteBin.remove(); - return; - } - - if (!hasHtmlOrText(clipboardContent) && pasteImageData(e, getLastRng())) { - pasteBin.remove(); - return; - } - - // Not a keyboard paste prevent default paste and try to grab the clipboard contents using different APIs - if (!isKeyBoardPaste) { - e.preventDefault(); - } - - // Try IE only method if paste isn't a keyboard paste - if (Env.ie && (!isKeyBoardPaste || e.ieFake) && !hasContentType(clipboardContent, 'text/html')) { - pasteBin.create(); - - editor.dom.bind(pasteBin.getEl(), 'paste', function (e) { - e.stopPropagation(); - }); - - editor.getDoc().execCommand('Paste', false, null); - clipboardContent["text/html"] = pasteBin.getHtml(); - } - - // If clipboard API has HTML then use that directly - if (hasContentType(clipboardContent, 'text/html')) { - e.preventDefault(); - - // if clipboard lacks internal mime type, inspect html for internal markings - if (!internal) { - internal = InternalHtml.isMarked(clipboardContent['text/html']); - } - - insertClipboardContent(clipboardContent, isKeyBoardPaste, plainTextMode, internal); - } else { - Delay.setEditorTimeout(editor, function () { - insertClipboardContent(clipboardContent, isKeyBoardPaste, plainTextMode, internal); - }, 0); - } - }); - - editor.on('dragstart dragend', function (e) { - draggingInternally = e.type == 'dragstart'; - }); - - function isPlainTextFileUrl(content) { - var plainTextContent = content['text/plain']; - return plainTextContent ? plainTextContent.indexOf('file://') === 0 : false; + if (plainTextMode) { + if (hasContentType(clipboardContent, 'text/plain') && isPlainTextHtml) { + content = clipboardContent['text/plain']; + } else { + content = $_cedk7ri6jfuw8pud.innerText(content); } - - editor.on('drop', function (e) { - var dropContent, rng; - - rng = getCaretRangeFromEvent(e); - - if (e.isDefaultPrevented() || draggingInternally) { - return; - } - - dropContent = getDataTransferItems(e.dataTransfer); - var internal = hasContentType(dropContent, InternalHtml.internalHtmlMime()); - - if ((!hasHtmlOrText(dropContent) || isPlainTextFileUrl(dropContent)) && pasteImageData(e, rng)) { - return; - } - - if (rng && editor.settings.paste_filter_drop !== false) { - var content = dropContent['mce-internal'] || dropContent['text/html'] || dropContent['text/plain']; - - if (content) { - e.preventDefault(); - - // FF 45 doesn't paint a caret when dragging in text in due to focus call by execCommand - Delay.setEditorTimeout(editor, function () { - editor.undoManager.transact(function () { - if (dropContent['mce-internal']) { - editor.execCommand('Delete'); - } - - editor.selection.setRng(rng); - - content = Utils.trimHtml(content); - - if (!dropContent['text/html']) { - pasteText(content); - } else { - pasteHtml(content, internal); - } - }); - }); - } - } - }); - - editor.on('dragover dragend', function (e) { - if (editor.settings.paste_data_images) { - e.preventDefault(); - } - }); } - - self.pasteHtml = pasteHtml; - self.pasteText = pasteText; - self.pasteImageData = pasteImageData; - - editor.on('preInit', function () { - registerEventHandlers(); - - // Remove all data images from paste for example from Gecko - // except internal images like video elements - editor.parser.addNodeFilter('img', function (nodes, name, args) { - function isPasteInsert(args) { - return args.data && args.data.paste === true; - } - - function remove(node) { - if (!node.attr('data-mce-object') && src !== Env.transparentSrc) { - node.remove(); - } - } - - function isWebKitFakeUrl(src) { - return src.indexOf("webkit-fake-url") === 0; - } - - function isDataUri(src) { - return src.indexOf("data:") === 0; - } - - if (!editor.settings.paste_data_images && isPasteInsert(args)) { - var i = nodes.length; - - while (i--) { - var src = nodes[i].attributes.map.src; - - if (!src) { - continue; - } - - // Safari on Mac produces webkit-fake-url see: https://bugs.webkit.org/show_bug.cgi?id=49141 - if (isWebKitFakeUrl(src)) { - remove(nodes[i]); - } else if (!editor.settings.allow_html_data_urls && isDataUri(src)) { - remove(nodes[i]); - } - } - } - }); - }); - }; - } -); - -/** - * CutCopy.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.plugins.paste.core.CutCopy', - [ - 'tinymce.core.Env', - 'tinymce.plugins.paste.core.InternalHtml', - 'tinymce.plugins.paste.core.Utils' - ], - function (Env, InternalHtml, Utils) { - var noop = function () { - }; - - var hasWorkingClipboardApi = function (clipboardData) { - // iOS supports the clipboardData API but it doesn't do anything for cut operations - // Edge 15 has a broken HTML Clipboard API see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11780845/ - return Env.iOS === false && clipboardData !== undefined && typeof clipboardData.setData === 'function' && Utils.isMsEdge() !== true; - }; - - var setHtml5Clipboard = function (clipboardData, html, text) { - if (hasWorkingClipboardApi(clipboardData)) { - try { - clipboardData.clearData(); - clipboardData.setData('text/html', html); - clipboardData.setData('text/plain', text); - clipboardData.setData(InternalHtml.internalHtmlMime(), html); - return true; - } catch (e) { - return false; + if (pasteBin.isDefaultContent(content)) { + if (!isKeyBoardPaste) { + editor.windowManager.alert('Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents.'); } - } else { - return false; + return; } - }; - - var setClipboardData = function (evt, data, fallback, done) { - if (setHtml5Clipboard(evt.clipboardData, data.html, data.text)) { - evt.preventDefault(); - done(); + if (plainTextMode) { + pasteText(editor, content); } else { - fallback(data.html, done); + pasteHtml$1(editor, content, internal); } + } + var getLastRng = function () { + return pasteBin.getLastRng() || editor.selection.getRng(); }; - - var fallback = function (editor) { - return function (html, done) { - var markedHtml = InternalHtml.mark(html); - var outer = editor.dom.create('div', { - contenteditable: "false", - "data-mce-bogus": "all" - }); - var inner = editor.dom.create('div', { contenteditable: "true" }, markedHtml); - editor.dom.setStyles(outer, { - position: 'fixed', - left: '-3000px', - width: '1000px', - overflow: 'hidden' + editor.on('paste', function (e) { + var clipboardTimer = new Date().getTime(); + var clipboardContent = getClipboardContent(editor, e); + var clipboardDelay = new Date().getTime() - clipboardTimer; + var isKeyBoardPaste = new Date().getTime() - keyboardPasteTimeStamp - clipboardDelay < 1000; + var plainTextMode = pasteFormat.get() === 'text' || keyboardPastePlainTextState; + var internal = hasContentType(clipboardContent, $_ceqsrthxjfuw8ptx.internalHtmlMime()); + keyboardPastePlainTextState = false; + if (e.isDefaultPrevented() || isBrokenAndroidClipboardEvent(e)) { + pasteBin.remove(); + return; + } + if (!hasHtmlOrText(clipboardContent) && pasteImageData(editor, e, getLastRng())) { + pasteBin.remove(); + return; + } + if (!isKeyBoardPaste) { + e.preventDefault(); + } + if (global$1.ie && (!isKeyBoardPaste || e.ieFake) && !hasContentType(clipboardContent, 'text/html')) { + pasteBin.create(); + editor.dom.bind(pasteBin.getEl(), 'paste', function (e) { + e.stopPropagation(); }); - outer.appendChild(inner); - editor.dom.add(editor.getBody(), outer); - - var range = editor.selection.getRng(); - inner.focus(); - - var offscreenRange = editor.dom.createRng(); - offscreenRange.selectNodeContents(inner); - editor.selection.setRng(offscreenRange); - - setTimeout(function () { - outer.parentNode.removeChild(outer); - editor.selection.setRng(range); - done(); + editor.getDoc().execCommand('Paste', false, null); + clipboardContent['text/html'] = pasteBin.getHtml(); + } + if (hasContentType(clipboardContent, 'text/html')) { + e.preventDefault(); + if (!internal) { + internal = $_ceqsrthxjfuw8ptx.isMarked(clipboardContent['text/html']); + } + insertClipboardContent(clipboardContent, isKeyBoardPaste, plainTextMode, internal); + } else { + global$2.setEditorTimeout(editor, function () { + insertClipboardContent(clipboardContent, isKeyBoardPaste, plainTextMode, internal); }, 0); + } + }); + }; + var registerEventsAndFilters = function (editor, pasteBin, pasteFormat) { + registerEventHandlers(editor, pasteBin, pasteFormat); + var src; + editor.parser.addNodeFilter('img', function (nodes, name, args) { + var isPasteInsert = function (args) { + return args.data && args.data.paste === true; }; - }; - - var getData = function (editor) { - return { - html: editor.selection.getContent({ contextual: true }), - text: editor.selection.getContent({ format: 'text' }) - }; - }; - - var cut = function (editor) { - return function (evt) { - if (editor.selection.isCollapsed() === false) { - setClipboardData(evt, getData(editor), fallback(editor), function () { - // Chrome fails to execCommand from another execCommand with this message: - // "We don't execute document.execCommand() this time, because it is called recursively."" - setTimeout(function () { // detach - editor.execCommand('Delete'); - }, 0); - }); + var remove = function (node) { + if (!node.attr('data-mce-object') && src !== global$1.transparentSrc) { + node.remove(); } }; - }; - - var copy = function (editor) { - return function (evt) { - if (editor.selection.isCollapsed() === false) { - setClipboardData(evt, getData(editor), fallback(editor), noop); - } + var isWebKitFakeUrl = function (src) { + return src.indexOf('webkit-fake-url') === 0; }; - }; - - var register = function (editor) { - editor.on('cut', cut(editor)); - editor.on('copy', copy(editor)); - }; - - return { - register: register - }; - } -); -/** - * Quirks.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -/** - * This class contains various fixes for browsers. These issues can not be feature - * detected since we have no direct control over the clipboard. However we might be able - * to remove some of these fixes once the browsers gets updated/fixed. - * - * @class tinymce.pasteplugin.Quirks - * @private - */ -define( - 'tinymce.plugins.paste.core.Quirks', - [ - 'tinymce.core.Env', - 'tinymce.core.util.Tools', - 'tinymce.plugins.paste.core.WordFilter', - 'tinymce.plugins.paste.core.Utils' - ], - function (Env, Tools, WordFilter, Utils) { - function addPreProcessFilter(editor, filterFunc) { - editor.on('PastePreProcess', function (e) { - e.content = filterFunc(editor, e.content, e.internal, e.wordContent); - }); - } - - function addPostProcessFilter(editor, filterFunc) { - editor.on('PastePostProcess', function (e) { - filterFunc(editor, e.node); - }); - } - - /** - * Removes BR elements after block elements. IE9 has a nasty bug where it puts a BR element after each - * block element when pasting from word. This removes those elements. - * - * This: - * <p>a</p><br><p>b</p> - * - * Becomes: - * <p>a</p><p>b</p> - */ - function removeExplorerBrElementsAfterBlocks(editor, html) { - // Only filter word specific content - if (!WordFilter.isWordContent(html)) { - return html; + var isDataUri = function (src) { + return src.indexOf('data:') === 0; + }; + if (!editor.settings.paste_data_images && isPasteInsert(args)) { + var i = nodes.length; + while (i--) { + src = nodes[i].attributes.map.src; + if (!src) { + continue; + } + if (isWebKitFakeUrl(src)) { + remove(nodes[i]); + } else if (!editor.settings.allow_html_data_urls && isDataUri(src)) { + remove(nodes[i]); + } + } } + }); + }; - // Produce block regexp based on the block elements in schema - var blockElements = []; - - Tools.each(editor.schema.getBlockElements(), function (block, blockName) { - blockElements.push(blockName); - }); - - var explorerBlocksRegExp = new RegExp( - '(?:<br> [\\s\\r\\n]+|<br>)*(<\\/?(' + blockElements.join('|') + ')[^>]*>)(?:<br> [\\s\\r\\n]+|<br>)*', - 'g' - ); - - // Remove BR:s from: <BLOCK>X</BLOCK><BR> - html = Utils.filter(html, [ - [explorerBlocksRegExp, '$1'] - ]); - - // IE9 also adds an extra BR element for each soft-linefeed and it also adds a BR for each word wrap break - html = Utils.filter(html, [ - [/<br><br>/g, '<BR><BR>'], // Replace multiple BR elements with uppercase BR to keep them intact - [/<br>/g, ' '], // Replace single br elements with space since they are word wrap BR:s - [/<BR><BR>/g, '<br>'] // Replace back the double brs but into a single BR - ]); - - return html; + var create = function (editor, lastRngCell, pasteBinDefaultContent) { + var dom = editor.dom, body = editor.getBody(); + var viewport = editor.dom.getViewPort(editor.getWin()); + var scrollTop = viewport.y, top = 20; + var pasteBinElm; + var scrollContainer; + lastRngCell.set(editor.selection.getRng()); + var lastRng = lastRngCell.get(); + if (editor.inline) { + scrollContainer = editor.selection.getScrollContainer(); + if (scrollContainer && scrollContainer.scrollTop > 0) { + scrollTop = scrollContainer.scrollTop; + } } - - /** - * WebKit has a nasty bug where the all computed styles gets added to style attributes when copy/pasting contents. - * This fix solves that by simply removing the whole style attribute. - * - * The paste_webkit_styles option can be set to specify what to keep: - * paste_webkit_styles: "none" // Keep no styles - * paste_webkit_styles: "all", // Keep all of them - * paste_webkit_styles: "font-weight color" // Keep specific ones - */ - function removeWebKitStyles(editor, content, internal, isWordHtml) { - // WordFilter has already processed styles at this point and internal doesn't need any processing - if (isWordHtml || internal) { - return content; + function getCaretRect(rng) { + var rects, textNode, node; + var container = rng.startContainer; + rects = rng.getClientRects(); + if (rects.length) { + return rects[0]; } - - // Filter away styles that isn't matching the target node - var webKitStyles = editor.settings.paste_webkit_styles; - - if (editor.settings.paste_remove_styles_if_webkit === false || webKitStyles == "all") { - return content; + if (!rng.collapsed || container.nodeType !== 1) { + return; } - - if (webKitStyles) { - webKitStyles = webKitStyles.split(/[, ]/); + node = container.childNodes[lastRng.startOffset]; + while (node && node.nodeType === 3 && !node.data.length) { + node = node.nextSibling; } - - // Keep specific styles that doesn't match the current node computed style - if (webKitStyles) { - var dom = editor.dom, node = editor.selection.getNode(); - - content = content.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi, function (all, before, value, after) { - var inputStyles = dom.parseStyle(dom.decode(value), 'span'); - var outputStyles = {}; - - if (webKitStyles === "none") { - return before + after; - } - - for (var i = 0; i < webKitStyles.length; i++) { - var inputValue = inputStyles[webKitStyles[i]], currentValue = dom.getStyle(node, webKitStyles[i], true); - - if (/color/.test(webKitStyles[i])) { - inputValue = dom.toHex(inputValue); - currentValue = dom.toHex(currentValue); - } - - if (currentValue != inputValue) { - outputStyles[webKitStyles[i]] = inputValue; - } + if (!node) { + return; + } + if (node.tagName === 'BR') { + textNode = dom.doc.createTextNode('\uFEFF'); + node.parentNode.insertBefore(textNode, node); + rng = dom.createRng(); + rng.setStartBefore(textNode); + rng.setEndAfter(textNode); + rects = rng.getClientRects(); + dom.remove(textNode); + } + if (rects.length) { + return rects[0]; + } + } + if (lastRng.getClientRects) { + var rect = getCaretRect(lastRng); + if (rect) { + top = scrollTop + (rect.top - dom.getPos(body).y); + } else { + top = scrollTop; + var container = lastRng.startContainer; + if (container) { + if (container.nodeType === 3 && container.parentNode !== body) { + container = container.parentNode; } - - outputStyles = dom.serializeStyle(outputStyles, 'span'); - if (outputStyles) { - return before + ' style="' + outputStyles + '"' + after; + if (container.nodeType === 1) { + top = dom.getPos(container, scrollContainer || body).y; } - - return before + after; - }); - } else { - // Remove all external styles - content = content.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi, '$1$3'); + } } - - // Keep internal styles - content = content.replace(/(<[^>]+) data-mce-style="([^"]+)"([^>]*>)/gi, function (all, before, value, after) { - return before + ' style="' + value + '"' + after; - }); - - return content; } - - function removeUnderlineAndFontInAnchor(editor, root) { - editor.$('a', root).find('font,u').each(function (i, node) { - editor.dom.remove(node, true); - }); + pasteBinElm = editor.dom.add(editor.getBody(), 'div', { + 'id': 'mcepastebin', + 'contentEditable': true, + 'data-mce-bogus': 'all', + 'style': 'position: absolute; top: ' + top + 'px; width: 10px; height: 10px; overflow: hidden; opacity: 0' + }, pasteBinDefaultContent); + if (global$1.ie || global$1.gecko) { + dom.setStyle(pasteBinElm, 'left', dom.getStyle(body, 'direction', true) === 'rtl' ? 65535 : -65535); } - - var setup = function (editor) { - if (Env.webkit) { - addPreProcessFilter(editor, removeWebKitStyles); + dom.bind(pasteBinElm, 'beforedeactivate focusin focusout', function (e) { + e.stopPropagation(); + }); + pasteBinElm.focus(); + editor.selection.select(pasteBinElm, true); + }; + var remove = function (editor, lastRngCell) { + if (getEl(editor)) { + var pasteBinClone = void 0; + var lastRng = lastRngCell.get(); + while (pasteBinClone = editor.dom.get('mcepastebin')) { + editor.dom.remove(pasteBinClone); + editor.dom.unbind(pasteBinClone); } - - if (Env.ie) { - addPreProcessFilter(editor, removeExplorerBrElementsAfterBlocks); - addPostProcessFilter(editor, removeUnderlineAndFontInAnchor); + if (lastRng) { + editor.selection.setRng(lastRng); } + } + lastRngCell.set(null); + }; + var getEl = function (editor) { + return editor.dom.get('mcepastebin'); + }; + var getHtml = function (editor) { + var pasteBinElm, pasteBinClones, i, dirtyWrappers, cleanWrapper; + var copyAndRemove = function (toElm, fromElm) { + toElm.appendChild(fromElm); + editor.dom.remove(fromElm, true); }; - + pasteBinClones = global$3.grep(editor.getBody().childNodes, function (elm) { + return elm.id === 'mcepastebin'; + }); + pasteBinElm = pasteBinClones.shift(); + global$3.each(pasteBinClones, function (pasteBinClone) { + copyAndRemove(pasteBinElm, pasteBinClone); + }); + dirtyWrappers = editor.dom.select('div[id=mcepastebin]', pasteBinElm); + for (i = dirtyWrappers.length - 1; i >= 0; i--) { + cleanWrapper = editor.dom.create('div'); + pasteBinElm.insertBefore(cleanWrapper, dirtyWrappers[i]); + copyAndRemove(cleanWrapper, dirtyWrappers[i]); + } + return pasteBinElm ? pasteBinElm.innerHTML : ''; + }; + var getLastRng = function (lastRng) { + return lastRng.get(); + }; + var isDefaultContent = function (pasteBinDefaultContent, content) { + return content === pasteBinDefaultContent; + }; + var isPasteBin = function (elm) { + return elm && elm.id === 'mcepastebin'; + }; + var isDefault = function (editor, pasteBinDefaultContent) { + var pasteBinElm = getEl(editor); + return isPasteBin(pasteBinElm) && isDefaultContent(pasteBinDefaultContent, pasteBinElm.innerHTML); + }; + var PasteBin = function (editor) { + var lastRng = Cell(null); + var pasteBinDefaultContent = '%MCEPASTEBIN%'; return { - setup: setup + create: function () { + return create(editor, lastRng, pasteBinDefaultContent); + }, + remove: function () { + return remove(editor, lastRng); + }, + getEl: function () { + return getEl(editor); + }, + getHtml: function () { + return getHtml(editor); + }, + getLastRng: function () { + return getLastRng(lastRng); + }, + isDefault: function () { + return isDefault(editor, pasteBinDefaultContent); + }, + isDefaultContent: function (content) { + return isDefaultContent(pasteBinDefaultContent, content); + } }; - } -); -/** - * Plugin.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -/** - * This class contains all core logic for the paste plugin. - * - * @class tinymce.paste.Plugin - * @private - */ -define( - 'tinymce.plugins.paste.Plugin', - [ - 'tinymce.core.PluginManager', - 'tinymce.plugins.paste.api.Events', - 'tinymce.plugins.paste.core.Clipboard', - 'tinymce.plugins.paste.core.CutCopy', - 'tinymce.plugins.paste.core.Quirks' - ], - function (PluginManager, Events, Clipboard, CutCopy, Quirks) { - var userIsInformed; + }; - PluginManager.add('paste', function (editor) { - var self = this, clipboard, settings = editor.settings; + var Clipboard = function (editor, pasteFormat) { + var pasteBin = PasteBin(editor); + editor.on('preInit', function () { + return registerEventsAndFilters(editor, pasteBin, pasteFormat); + }); + return { + pasteFormat: pasteFormat, + pasteHtml: function (html, internalFlag) { + return pasteHtml$1(editor, html, internalFlag); + }, + pasteText: function (text) { + return pasteText(editor, text); + }, + pasteImageData: function (e, rng) { + return pasteImageData(editor, e, rng); + }, + getDataTransferItems: getDataTransferItems, + hasHtmlOrText: hasHtmlOrText, + hasContentType: hasContentType + }; + }; - function isUserInformedAboutPlainText() { - return userIsInformed || editor.settings.paste_plaintext_inform === false; + var noop = function () { + }; + var hasWorkingClipboardApi = function (clipboardData) { + return global$1.iOS === false && clipboardData !== undefined && typeof clipboardData.setData === 'function' && $_cedk7ri6jfuw8pud.isMsEdge() !== true; + }; + var setHtml5Clipboard = function (clipboardData, html, text) { + if (hasWorkingClipboardApi(clipboardData)) { + try { + clipboardData.clearData(); + clipboardData.setData('text/html', html); + clipboardData.setData('text/plain', text); + clipboardData.setData($_ceqsrthxjfuw8ptx.internalHtmlMime(), html); + return true; + } catch (e) { + return false; } + } else { + return false; + } + }; + var setClipboardData = function (evt, data, fallback, done) { + if (setHtml5Clipboard(evt.clipboardData, data.html, data.text)) { + evt.preventDefault(); + done(); + } else { + fallback(data.html, done); + } + }; + var fallback = function (editor) { + return function (html, done) { + var markedHtml = $_ceqsrthxjfuw8ptx.mark(html); + var outer = editor.dom.create('div', { + 'contenteditable': 'false', + 'data-mce-bogus': 'all' + }); + var inner = editor.dom.create('div', { contenteditable: 'true' }, markedHtml); + editor.dom.setStyles(outer, { + position: 'fixed', + top: '0', + left: '-3000px', + width: '1000px', + overflow: 'hidden' + }); + outer.appendChild(inner); + editor.dom.add(editor.getBody(), outer); + var range = editor.selection.getRng(); + inner.focus(); + var offscreenRange = editor.dom.createRng(); + offscreenRange.selectNodeContents(inner); + editor.selection.setRng(offscreenRange); + setTimeout(function () { + editor.selection.setRng(range); + outer.parentNode.removeChild(outer); + done(); + }, 0); + }; + }; + var getData = function (editor) { + return { + html: editor.selection.getContent({ contextual: true }), + text: editor.selection.getContent({ format: 'text' }) + }; + }; + var cut = function (editor) { + return function (evt) { + if (editor.selection.isCollapsed() === false) { + setClipboardData(evt, getData(editor), fallback(editor), function () { + setTimeout(function () { + editor.execCommand('Delete'); + }, 0); + }); + } + }; + }; + var copy = function (editor) { + return function (evt) { + if (editor.selection.isCollapsed() === false) { + setClipboardData(evt, getData(editor), fallback(editor), noop); + } + }; + }; + var register$1 = function (editor) { + editor.on('cut', cut(editor)); + editor.on('copy', copy(editor)); + }; + var $_cphe9ai9jfuw8puq = { register: register$1 }; - function togglePlainTextPaste() { - if (clipboard.pasteFormat == "text") { - clipboard.pasteFormat = "html"; - Events.firePastePlainTextToggle(editor, false); - } else { - clipboard.pasteFormat = "text"; - Events.firePastePlainTextToggle(editor, true); - - if (!isUserInformedAboutPlainText()) { - var message = editor.translate('Paste is now in plain text mode. Contents will now ' + - 'be pasted as plain text until you toggle this option off.'); - - editor.notificationManager.open({ - text: message, - type: 'info' - }); + var global$10 = tinymce.util.Tools.resolve('tinymce.dom.RangeUtils'); - userIsInformed = true; - } + var getCaretRangeFromEvent = function (editor, e) { + return global$10.getCaretRangeFromPoint(e.clientX, e.clientY, editor.getDoc()); + }; + var isPlainTextFileUrl = function (content) { + var plainTextContent = content['text/plain']; + return plainTextContent ? plainTextContent.indexOf('file://') === 0 : false; + }; + var setFocusedRange = function (editor, rng) { + editor.focus(); + editor.selection.setRng(rng); + }; + var setup = function (editor, clipboard, draggingInternallyState) { + if ($_dls6llhqjfuw8ptf.shouldBlockDrop(editor)) { + editor.on('dragend dragover draggesture dragdrop drop drag', function (e) { + e.preventDefault(); + e.stopPropagation(); + }); + } + if (!$_dls6llhqjfuw8ptf.shouldPasteDataImages(editor)) { + editor.on('drop', function (e) { + var dataTransfer = e.dataTransfer; + if (dataTransfer && dataTransfer.files && dataTransfer.files.length > 0) { + e.preventDefault(); } - - editor.focus(); + }); + } + editor.on('drop', function (e) { + var dropContent, rng; + rng = getCaretRangeFromEvent(editor, e); + if (e.isDefaultPrevented() || draggingInternallyState.get()) { + return; } - - function stateChange() { - var self = this; - - self.active(clipboard.pasteFormat === 'text'); - - editor.on('PastePlainTextToggle', function (e) { - self.active(e.state); - }); + dropContent = clipboard.getDataTransferItems(e.dataTransfer); + var internal = clipboard.hasContentType(dropContent, $_ceqsrthxjfuw8ptx.internalHtmlMime()); + if ((!clipboard.hasHtmlOrText(dropContent) || isPlainTextFileUrl(dropContent)) && clipboard.pasteImageData(e, rng)) { + return; } - - // draw back if power version is requested and registered - if (/(^|[ ,])powerpaste([, ]|$)/.test(settings.plugins) && PluginManager.get('powerpaste')) { - /*eslint no-console:0 */ - if (typeof console !== "undefined" && console.log) { - console.log("PowerPaste is incompatible with Paste plugin! Remove 'paste' from the 'plugins' option."); + if (rng && $_dls6llhqjfuw8ptf.shouldFilterDrop(editor)) { + var content_1 = dropContent['mce-internal'] || dropContent['text/html'] || dropContent['text/plain']; + if (content_1) { + e.preventDefault(); + global$2.setEditorTimeout(editor, function () { + editor.undoManager.transact(function () { + if (dropContent['mce-internal']) { + editor.execCommand('Delete'); + } + setFocusedRange(editor, rng); + content_1 = $_cedk7ri6jfuw8pud.trimHtml(content_1); + if (!dropContent['text/html']) { + clipboard.pasteText(content_1); + } else { + clipboard.pasteHtml(content_1, internal); + } + }); + }); } - return; } - - self.clipboard = clipboard = new Clipboard(editor); - self.quirks = Quirks.setup(editor); - - if (editor.settings.paste_as_text) { - self.clipboard.pasteFormat = "text"; + }); + editor.on('dragstart', function (e) { + draggingInternallyState.set(true); + }); + editor.on('dragover dragend', function (e) { + if ($_dls6llhqjfuw8ptf.shouldPasteDataImages(editor) && draggingInternallyState.get() === false) { + e.preventDefault(); + setFocusedRange(editor, getCaretRangeFromEvent(editor, e)); } - - if (settings.paste_preprocess) { - editor.on('PastePreProcess', function (e) { - settings.paste_preprocess.call(self, self, e); - }); + if (e.type === 'dragend') { + draggingInternallyState.set(false); } + }); + }; + var $_2uhmpriajfuw8put = { setup: setup }; - if (settings.paste_postprocess) { - editor.on('PastePostProcess', function (e) { - settings.paste_postprocess.call(self, self, e); - }); - } + var setup$1 = function (editor) { + var plugin = editor.plugins.paste; + var preProcess = $_dls6llhqjfuw8ptf.getPreProcess(editor); + if (preProcess) { + editor.on('PastePreProcess', function (e) { + preProcess.call(plugin, plugin, e); + }); + } + var postProcess = $_dls6llhqjfuw8ptf.getPostProcess(editor); + if (postProcess) { + editor.on('PastePostProcess', function (e) { + postProcess.call(plugin, plugin, e); + }); + } + }; + var $_84oppricjfuw8pux = { setup: setup$1 }; - editor.addCommand('mceInsertClipboardContent', function (ui, value) { - if (value.content) { - self.clipboard.pasteHtml(value.content, value.internal); + function addPreProcessFilter(editor, filterFunc) { + editor.on('PastePreProcess', function (e) { + e.content = filterFunc(editor, e.content, e.internal, e.wordContent); + }); + } + function addPostProcessFilter(editor, filterFunc) { + editor.on('PastePostProcess', function (e) { + filterFunc(editor, e.node); + }); + } + function removeExplorerBrElementsAfterBlocks(editor, html) { + if (!$_8q8fy4i1jfuw8pu5.isWordContent(html)) { + return html; + } + var blockElements = []; + global$3.each(editor.schema.getBlockElements(), function (block, blockName) { + blockElements.push(blockName); + }); + var explorerBlocksRegExp = new RegExp('(?:<br> [\\s\\r\\n]+|<br>)*(<\\/?(' + blockElements.join('|') + ')[^>]*>)(?:<br> [\\s\\r\\n]+|<br>)*', 'g'); + html = $_cedk7ri6jfuw8pud.filter(html, [[ + explorerBlocksRegExp, + '$1' + ]]); + html = $_cedk7ri6jfuw8pud.filter(html, [ + [ + /<br><br>/g, + '<BR><BR>' + ], + [ + /<br>/g, + ' ' + ], + [ + /<BR><BR>/g, + '<br>' + ] + ]); + return html; + } + function removeWebKitStyles(editor, content, internal, isWordHtml) { + if (isWordHtml || internal) { + return content; + } + var webKitStylesSetting = $_dls6llhqjfuw8ptf.getWebkitStyles(editor); + var webKitStyles; + if ($_dls6llhqjfuw8ptf.shouldRemoveWebKitStyles(editor) === false || webKitStylesSetting === 'all') { + return content; + } + if (webKitStylesSetting) { + webKitStyles = webKitStylesSetting.split(/[, ]/); + } + if (webKitStyles) { + var dom_1 = editor.dom, node_1 = editor.selection.getNode(); + content = content.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi, function (all, before, value, after) { + var inputStyles = dom_1.parseStyle(dom_1.decode(value)); + var outputStyles = {}; + if (webKitStyles === 'none') { + return before + after; } - - if (value.text) { - self.clipboard.pasteText(value.text); + for (var i = 0; i < webKitStyles.length; i++) { + var inputValue = inputStyles[webKitStyles[i]], currentValue = dom_1.getStyle(node_1, webKitStyles[i], true); + if (/color/.test(webKitStyles[i])) { + inputValue = dom_1.toHex(inputValue); + currentValue = dom_1.toHex(currentValue); + } + if (currentValue !== inputValue) { + outputStyles[webKitStyles[i]] = inputValue; + } } + outputStyles = dom_1.serializeStyle(outputStyles, 'span'); + if (outputStyles) { + return before + ' style="' + outputStyles + '"' + after; + } + return before + after; }); + } else { + content = content.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi, '$1$3'); + } + content = content.replace(/(<[^>]+) data-mce-style="([^"]+)"([^>]*>)/gi, function (all, before, value, after) { + return before + ' style="' + value + '"' + after; + }); + return content; + } + function removeUnderlineAndFontInAnchor(editor, root) { + editor.$('a', root).find('font,u').each(function (i, node) { + editor.dom.remove(node, true); + }); + } + var setup$2 = function (editor) { + if (global$1.webkit) { + addPreProcessFilter(editor, removeWebKitStyles); + } + if (global$1.ie) { + addPreProcessFilter(editor, removeExplorerBrElementsAfterBlocks); + addPostProcessFilter(editor, removeUnderlineAndFontInAnchor); + } + }; + var $_6bnerjidjfuw8puz = { setup: setup$2 }; - // Block all drag/drop events - if (editor.settings.paste_block_drop) { - editor.on('dragend dragover draggesture dragdrop drop drag', function (e) { - e.preventDefault(); - e.stopPropagation(); - }); + var noop$1 = function () { + var x = []; + for (var _i = 0; _i < arguments.length; _i++) { + x[_i] = arguments[_i]; + } + }; + var noarg = function (f) { + return function () { + var x = []; + for (var _i = 0; _i < arguments.length; _i++) { + x[_i] = arguments[_i]; } - - // Prevent users from dropping data images on Gecko - if (!editor.settings.paste_data_images) { - editor.on('drop', function (e) { - var dataTransfer = e.dataTransfer; - - if (dataTransfer && dataTransfer.files && dataTransfer.files.length > 0) { - e.preventDefault(); - } - }); + return f(); + }; + }; + var compose = function (fa, fb) { + return function () { + var x = []; + for (var _i = 0; _i < arguments.length; _i++) { + x[_i] = arguments[_i]; } + return fa(fb.apply(null, arguments)); + }; + }; + var constant = function (value) { + return function () { + return value; + }; + }; + var identity = function (x) { + return x; + }; + var tripleEquals = function (a, b) { + return a === b; + }; + var curry = function (f) { + var x = []; + for (var _i = 1; _i < arguments.length; _i++) { + x[_i - 1] = arguments[_i]; + } + var args = new Array(arguments.length - 1); + for (var i = 1; i < arguments.length; i++) + args[i - 1] = arguments[i]; + return function () { + var x = []; + for (var _i = 0; _i < arguments.length; _i++) { + x[_i] = arguments[_i]; + } + var newArgs = new Array(arguments.length); + for (var j = 0; j < newArgs.length; j++) + newArgs[j] = arguments[j]; + var all = args.concat(newArgs); + return f.apply(null, all); + }; + }; + var not = function (f) { + return function () { + var x = []; + for (var _i = 0; _i < arguments.length; _i++) { + x[_i] = arguments[_i]; + } + return !f.apply(null, arguments); + }; + }; + var die = function (msg) { + return function () { + throw new Error(msg); + }; + }; + var apply = function (f) { + return f(); + }; + var call = function (f) { + f(); + }; + var never = constant(false); + var always = constant(true); + var $_avmd1ifjfuw8pv5 = { + noop: noop$1, + noarg: noarg, + compose: compose, + constant: constant, + identity: identity, + tripleEquals: tripleEquals, + curry: curry, + not: not, + die: die, + apply: apply, + call: call, + never: never, + always: always + }; - editor.addCommand('mceTogglePlainTextPaste', togglePlainTextPaste); - - editor.addButton('pastetext', { - icon: 'pastetext', - tooltip: 'Paste as text', - onclick: togglePlainTextPaste, - onPostRender: stateChange - }); - - editor.addMenuItem('pastetext', { - text: 'Paste as text', - selectable: true, - active: clipboard.pasteFormat, - onclick: togglePlainTextPaste, - onPostRender: stateChange - }); - - CutCopy.register(editor); + var stateChange = function (editor, clipboard, e) { + var ctrl = e.control; + ctrl.active(clipboard.pasteFormat.get() === 'text'); + editor.on('PastePlainTextToggle', function (e) { + ctrl.active(e.state); }); - - return function () { }; + }; + var register$2 = function (editor, clipboard) { + var postRender = $_avmd1ifjfuw8pv5.curry(stateChange, editor, clipboard); + editor.addButton('pastetext', { + active: false, + icon: 'pastetext', + tooltip: 'Paste as text', + cmd: 'mceTogglePlainTextPaste', + onPostRender: postRender + }); + editor.addMenuItem('pastetext', { + text: 'Paste as text', + selectable: true, + active: clipboard.pasteFormat, + cmd: 'mceTogglePlainTextPaste', + onPostRender: postRender + }); + }; + var $_3d07oyiejfuw8pv2 = { register: register$2 }; + + global.add('paste', function (editor) { + if ($_5e30n7hljfuw8pt8.hasProPlugin(editor) === false) { + var userIsInformedState = Cell(false); + var draggingInternallyState = Cell(false); + var pasteFormat = Cell($_dls6llhqjfuw8ptf.isPasteAsTextEnabled(editor) ? 'text' : 'html'); + var clipboard = Clipboard(editor, pasteFormat); + var quirks = $_6bnerjidjfuw8puz.setup(editor); + $_3d07oyiejfuw8pv2.register(editor, clipboard); + $_a15l7thnjfuw8pta.register(editor, clipboard, userIsInformedState); + $_84oppricjfuw8pux.setup(editor); + $_cphe9ai9jfuw8puq.register(editor); + $_2uhmpriajfuw8put.setup(editor, clipboard, draggingInternallyState); + return $_4xrki5hmjfuw8pta.get(clipboard, quirks); + } + }); + function Plugin () { } -); -dem('tinymce.plugins.paste.Plugin')(); + + return Plugin; + +}()); })(); diff --git a/wp-includes/js/tinymce/plugins/paste/plugin.min.js b/wp-includes/js/tinymce/plugins/paste/plugin.min.js index 425febd73..e638e6eb5 100644 --- a/wp-includes/js/tinymce/plugins/paste/plugin.min.js +++ b/wp-includes/js/tinymce/plugins/paste/plugin.min.js @@ -1 +1 @@ -!function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("6",tinymce.util.Tools.resolve),g("1",["6"],function(a){return a("tinymce.PluginManager")}),g("2",[],function(){var a=function(a,b,c,d){return a.fire("PastePreProcess",{content:b,internal:c,wordContent:d})},b=function(a,b,c,d){return a.fire("PastePostProcess",{node:b,internal:c,wordContent:d})},c=function(a,b){return a.fire("PastePlainTextToggle",{state:b})};return{firePastePreProcess:a,firePastePostProcess:b,firePastePlainTextToggle:c}}),g("7",["6"],function(a){return a("tinymce.dom.RangeUtils")}),g("8",["6"],function(a){return a("tinymce.Env")}),g("9",["6"],function(a){return a("tinymce.util.Delay")}),g("a",["6"],function(a){return a("tinymce.util.Tools")}),g("b",["6"],function(a){return a("tinymce.util.VK")}),g("c",[],function(){var a="x-tinymce/html",b="<!-- "+a+" -->",c=function(a){return b+a},d=function(a){return a.replace(b,"")},e=function(a){return a.indexOf(b)!==-1};return{mark:c,unmark:d,isMarked:e,internalHtmlMime:function(){return a}}}),g("j",["6"],function(a){return a("tinymce.html.Entities")}),g("d",["a","j"],function(a,b){var c=function(a){return!/<(?:\/?(?!(?:div|p|br|span)>)\w+|(?:(?!(?:span style="white-space:\s?pre;?">)|br\s?\/>))\w+\s[^>]+)>/i.test(a)},d=function(a){return a.replace(/\r?\n/g,"<br>")},e=function(a,c){var d,e=[],f="<"+a;if("object"==typeof c){for(d in c)c.hasOwnProperty(d)&&e.push(d+'="'+b.encodeAllRaw(c[d])+'"');e.length&&(f+=" "+e.join(" "))}return f+">"},f=function(b,c,d){var f=b.split(/\n\n/),g=e(c,d),h="</"+c+">",i=a.map(f,function(a){return a.split(/\n/).join("<br />")}),j=function(a){return g+a+h};return 1===i.length?i[0]:a.map(i,j).join("")},g=function(a,b,c){return b?f(a,b,c):d(a)};return{isPlainText:c,convert:g,toBRs:d,toBlockElements:f}}),g("e",["a","8"],function(a,b){return function(c){var d,e="%MCEPASTEBIN%",f=function(){function a(a){var b,c,e,f=a.startContainer;if(b=a.getClientRects(),b.length)return b[0];if(a.collapsed&&1==f.nodeType){for(e=f.childNodes[d.startOffset];e&&3==e.nodeType&&!e.data.length;)e=e.nextSibling;if(e)return"BR"==e.tagName&&(c=h.doc.createTextNode("\ufeff"),e.parentNode.insertBefore(c,e),a=h.createRng(),a.setStartBefore(c),a.setEndAfter(c),b=a.getClientRects(),h.remove(c)),b.length?b[0]:void 0}}var f,g,h=c.dom,i=c.getBody(),j=c.dom.getViewPort(c.getWin()),k=j.y,l=20;if(d=c.selection.getRng(),c.inline&&(g=c.selection.getScrollContainer(),g&&g.scrollTop>0&&(k=g.scrollTop)),d.getClientRects){var m=a(d);if(m)l=k+(m.top-h.getPos(i).y);else{l=k;var n=d.startContainer;n&&(3==n.nodeType&&n.parentNode!=i&&(n=n.parentNode),1==n.nodeType&&(l=h.getPos(n,g||i).y))}}f=c.dom.add(c.getBody(),"div",{id:"mcepastebin",contentEditable:!0,"data-mce-bogus":"all",style:"position: absolute; top: "+l+"px; width: 10px; height: 10px; overflow: hidden; opacity: 0"},e),(b.ie||b.gecko)&&h.setStyle(f,"left","rtl"==h.getStyle(i,"direction",!0)?65535:-65535),h.bind(f,"beforedeactivate focusin focusout",function(a){a.stopPropagation()}),f.focus(),c.selection.select(f,!0)},g=function(){if(h()){for(var a;a=c.dom.get("mcepastebin");)c.dom.remove(a),c.dom.unbind(a);d&&c.selection.setRng(d)}d=null},h=function(){return c.dom.get("mcepastebin")},i=function(){var b,d,e,f,g,h=function(a,b){a.appendChild(b),c.dom.remove(b,!0)};for(d=a.grep(c.getBody().childNodes,function(a){return"mcepastebin"===a.id}),b=d.shift(),a.each(d,function(a){h(b,a)}),f=c.dom.select("div[id=mcepastebin]",b),e=f.length-1;e>=0;e--)g=c.dom.create("div"),b.insertBefore(g,f[e]),h(g,f[e]);return b?b.innerHTML:""},j=function(){return d},k=function(a){return a===e},l=function(a){return a&&"mcepastebin"===a.id},m=function(){var a=h();return l(a)&&k(a.innerHTML)};return{create:f,remove:g,getEl:h,getHtml:i,getLastRng:j,isDefault:m,isDefaultContent:k}}}),g("k",["6"],function(a){return a("tinymce.html.DomParser")}),g("l",["6"],function(a){return a("tinymce.html.Schema")}),g("m",["6"],function(a){return a("tinymce.html.Serializer")}),g("n",["6"],function(a){return a("tinymce.html.Node")}),g("h",["a","k","l"],function(a,b,c){function d(b,c){return a.each(c,function(a){b=a.constructor==RegExp?b.replace(a,""):b.replace(a[0],a[1])}),b}function e(e){function f(a){var b=a.name,c=a;if("br"===b)return void(i+="\n");if(j[b]&&(i+=" "),k[b])return void(i+=" ");if(3==a.type&&(i+=a.value),!a.shortEnded&&(a=a.firstChild))do f(a);while(a=a.next);l[b]&&c.next&&(i+="\n","p"==b&&(i+="\n"))}var g=new c,h=new b({},g),i="",j=g.getShortEndedElements(),k=a.makeMap("script noscript style textarea video audio iframe object"," "),l=g.getBlockElements();return e=d(e,[/<!\[[^\]]+\]>/g]),f(h.parse(e)),i}function f(a){function b(a,b,c){return b||c?"\xa0":" "}return a=d(a,[/^[\s\S]*<body[^>]*>\s*|\s*<\/body[^>]*>[\s\S]*$/gi,/<!--StartFragment-->|<!--EndFragment-->/g,[/( ?)<span class="Apple-converted-space">\u00a0<\/span>( ?)/g,b],/<br class="Apple-interchange-newline">/g,/<br>$/i])}function g(a){var b=0;return function(){return a+b++}}var h=function(){return navigator.userAgent.indexOf(" Edge/")!==-1};return{filter:d,innerText:e,trimHtml:f,createIdGenerator:g,isMsEdge:h}}),g("i",["a","k","l","m","n","h"],function(a,b,c,d,e,f){function g(a){return/<font face="Times New Roman"|class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i.test(a)||/class="OutlineElement/.test(a)||/id="?docs\-internal\-guid\-/.test(a)}function h(b){var c,d;return d=[/^[IVXLMCD]{1,2}\.[ \u00a0]/,/^[ivxlmcd]{1,2}\.[ \u00a0]/,/^[a-z]{1,2}[\.\)][ \u00a0]/,/^[A-Z]{1,2}[\.\)][ \u00a0]/,/^[0-9]+\.[ \u00a0]/,/^[\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d]+\.[ \u00a0]/,/^[\u58f1\u5f10\u53c2\u56db\u4f0d\u516d\u4e03\u516b\u4e5d\u62fe]+\.[ \u00a0]/],b=b.replace(/^[\u00a0 ]+/,""),a.each(d,function(a){if(a.test(b))return c=!0,!1}),c}function i(a){return/^[\s\u00a0]*[\u2022\u00b7\u00a7\u25CF]\s*/.test(a)}function j(a){function b(a){var c="";if(3===a.type)return a.value;if(a=a.firstChild)do c+=b(a);while(a=a.next);return c}function c(a,b){if(3===a.type&&b.test(a.value))return a.value=a.value.replace(b,""),!1;if(a=a.firstChild)do if(!c(a,b))return!1;while(a=a.next);return!0}function d(a){if(a._listIgnore)return void a.remove();if(a=a.firstChild)do d(a);while(a=a.next)}function f(a,b,f){var h=a._listLevel||k;h!=k&&(h<k?g&&(g=g.parent.parent):(j=g,g=null)),g&&g.name==b?g.append(a):(j=j||g,g=new e(b,1),f>1&&g.attr("start",""+f),a.wrap(g)),a.name="li",h>k&&j&&j.lastChild.append(g),k=h,d(a),c(a,/^\u00a0+/),c(a,/^\s*([\u2022\u00b7\u00a7\u25CF]|\w+\.)/),c(a,/^\u00a0+/)}for(var g,j,k=1,l=[],m=a.firstChild;"undefined"!=typeof m&&null!==m;)if(l.push(m),m=m.walk(),null!==m)for(;"undefined"!=typeof m&&m.parent!==a;)m=m.walk();for(var n=0;n<l.length;n++)if(a=l[n],"p"==a.name&&a.firstChild){var o=b(a);if(i(o)){f(a,"ul");continue}if(h(o)){var p=/([0-9]+)\./.exec(o),q=1;p&&(q=parseInt(p[1],10)),f(a,"ol",q);continue}if(a._listLevel){f(a,"ul",1);continue}g=null}else j=g,g=null}function k(b,c,d,f){var g,h={},i=b.dom.parseStyle(f);return a.each(i,function(a,e){switch(e){case"mso-list":g=/\w+ \w+([0-9]+)/i.exec(f),g&&(d._listLevel=parseInt(g[1],10)),/Ignore/i.test(a)&&d.firstChild&&(d._listIgnore=!0,d.firstChild._listIgnore=!0);break;case"horiz-align":e="text-align";break;case"vert-align":e="vertical-align";break;case"font-color":case"mso-foreground":e="color";break;case"mso-background":case"mso-highlight":e="background";break;case"font-weight":case"font-style":return void("normal"!=a&&(h[e]=a));case"mso-element":if(/^(comment|comment-list)$/i.test(a))return void d.remove()}return 0===e.indexOf("mso-comment")?void d.remove():void(0!==e.indexOf("mso-")&&("all"==b.settings.paste_retain_style_properties||c&&c[e])&&(h[e]=a))}),/(bold)/i.test(h["font-weight"])&&(delete h["font-weight"],d.wrap(new e("b",1))),/(italic)/i.test(h["font-style"])&&(delete h["font-style"],d.wrap(new e("i",1))),h=b.dom.serializeStyle(h,d.name),h?h:null}var l=function(e,g){var h,i;h=e.settings.paste_retain_style_properties,h&&(i=a.makeMap(h.split(/[, ]/))),g=f.filter(g,[/<br class="?Apple-interchange-newline"?>/gi,/<b[^>]+id="?docs-internal-[^>]*>/gi,/<!--[\s\S]+?-->/gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/ /gi,"\xa0"],[/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi,function(a,b){return b.length>0?b.replace(/./," ").slice(Math.floor(b.length/2)).split("").join("\xa0"):""}]]);var l=e.settings.paste_word_valid_elements;l||(l="-strong/b,-em/i,-u,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-p/div,-a[href|name],sub,sup,strike,br,del,table[width],tr,td[colspan|rowspan|width],th[colspan|rowspan|width],thead,tfoot,tbody");var m=new c({valid_elements:l,valid_children:"-li[p]"});a.each(m.elements,function(a){a.attributes["class"]||(a.attributes["class"]={},a.attributesOrder.push("class")),a.attributes.style||(a.attributes.style={},a.attributesOrder.push("style"))});var n=new b({},m);n.addAttributeFilter("style",function(a){for(var b,c=a.length;c--;)b=a[c],b.attr("style",k(e,i,b,b.attr("style"))),"span"==b.name&&b.parent&&!b.attributes.length&&b.unwrap()}),n.addAttributeFilter("class",function(a){for(var b,c,d=a.length;d--;)b=a[d],c=b.attr("class"),/^(MsoCommentReference|MsoCommentText|msoDel)$/i.test(c)&&b.remove(),b.attr("class",null)}),n.addNodeFilter("del",function(a){for(var b=a.length;b--;)a[b].remove()}),n.addNodeFilter("a",function(a){for(var b,c,d,e=a.length;e--;)if(b=a[e],c=b.attr("href"),d=b.attr("name"),c&&c.indexOf("#_msocom_")!=-1)b.remove();else if(c&&0===c.indexOf("file://")&&(c=c.split("#")[1],c&&(c="#"+c)),c||d){if(d&&!/^_?(?:toc|edn|ftn)/i.test(d)){b.unwrap();continue}b.attr({href:c,name:d})}else b.unwrap()});var o=n.parse(g);return e.settings.paste_convert_word_fake_lists!==!1&&j(o),g=new d({validate:e.settings.validate},m).serialize(o)},m=function(a,b){return a.settings.paste_enable_default_filters===!1?b:l(a,b)};return{preProcess:m,isWordContent:g}}),g("f",["2","i"],function(a,b){var c=function(a,b){return{content:a,cancelled:b}},d=function(b,d,e,f){var g=b.dom.create("div",{style:"display:none"},d),h=a.firePastePostProcess(b,g,e,f);return c(h.node.innerHTML,h.isDefaultPrevented())},e=function(b,e,f,g){var h=a.firePastePreProcess(b,e,f,g);return b.hasEventListeners("PastePostProcess")&&!h.isDefaultPrevented()?d(b,h.content,f,g):c(h.content,h.isDefaultPrevented())},f=function(a,c,d){var f=b.isWordContent(c),g=f?b.preProcess(a,c):c;return e(a,g,d,f)};return{process:f}}),g("g",["a"],function(a){var b=function(a){return/^https?:\/\/[\w\?\-\/+=.&%@~#]+$/i.test(a)},c=function(a){return b(a)&&/.(gif|jpe?g|png)$/.test(a)},d=function(a,b,c){return a.undoManager.extra(function(){c(a,b)},function(){a.insertContent('<img src="'+b+'">')}),!0},e=function(a,b,c){return a.undoManager.extra(function(){c(a,b)},function(){a.execCommand("mceInsertLink",!1,b)}),!0},f=function(a,c,d){return!(a.selection.isCollapsed()!==!1||!b(c))&&e(a,c,d)},g=function(a,b,e){return!!c(b)&&d(a,b,e)},h=function(a,b){return a.insertContent(b,{merge:a.settings.paste_merge_formats!==!1,paste:!0}),!0},i=function(b,c){a.each([f,g,h],function(a){return a(b,c,h)!==!0})},j=function(a,b){a.settings.smart_paste===!1?h(a,b):i(a,b)};return{isImageUrl:c,isAbsoluteUrl:b,insertContent:j}}),g("3",["7","8","9","a","b","c","d","e","f","g","h"],function(a,b,c,d,e,f,g,h,i,j,k){return function(l){function m(a,b){var c=b?b:f.isMarked(a),d=i.process(l,f.unmark(a),c);d.cancelled===!1&&j.insertContent(l,d.content)}function n(a){a=l.dom.encode(a).replace(/\r\n/g,"\n"),a=g.convert(a,l.settings.forced_root_block,l.settings.forced_root_block_attrs),m(a,!1)}function o(a){var b={};if(a){if(a.getData){var c=a.getData("Text");c&&c.length>0&&c.indexOf(G)==-1&&(b["text/plain"]=c)}if(a.types)for(var d=0;d<a.types.length;d++){var e=a.types[d];try{b[e]=a.getData(e)}catch(a){b[e]=""}}}return b}function p(a){var b=o(a.clipboardData||l.getDoc().dataTransfer);return k.isMsEdge()?d.extend(b,{"text/html":""}):b}function q(a){return y(a,"text/html")||y(a,"text/plain")}function r(a){var b;return b=a.indexOf(","),b!==-1?a.substr(b+1):null}function s(a,b){return!a.images_dataimg_filter||a.images_dataimg_filter(b)}function t(a){var b=a.match(/([\s\S]+?)\.(?:jpeg|jpg|png|gif)$/i);return b?l.dom.encode(b[1]):null}function u(a,b,c){a&&(l.selection.setRng(a),a=null);var d=b.result,e=r(d),f=H(),g=l.settings.images_reuse_filename&&c.name?t(c.name):f,h=new Image;if(h.src=d,s(l.settings,h)){var i,j,k=l.editorUpload.blobCache;j=k.findFirst(function(a){return a.base64()===e}),j?i=j:(i=k.create(f,c,e,g),k.add(i)),m('<img src="'+i.blobUri()+'">',!1)}else m('<img src="'+d+'">',!1)}function v(a,b){function c(c){var d,e,f,g=!1;if(c)for(d=0;d<c.length;d++)if(e=c[d],/^image\/(jpeg|png|gif|bmp)$/.test(e.type)){var h=e.getAsFile?e.getAsFile():e;f=new FileReader,f.onload=u.bind(null,b,f,h),f.readAsDataURL(h),a.preventDefault(),g=!0}return g}var d=a.clipboardData||a.dataTransfer;if(l.settings.paste_data_images&&d)return c(d.items)||c(d.files)}function w(a){var b=a.clipboardData;return navigator.userAgent.indexOf("Android")!=-1&&b&&b.items&&0===b.items.length}function x(b){return a.getCaretRangeFromPoint(b.clientX,b.clientY,l.getDoc())}function y(a,b){return b in a&&a[b].length>0}function z(a){return e.metaKeyPressed(a)&&86==a.keyCode||a.shiftKey&&45==a.keyCode}function A(){function a(a,b,c,d){var e,h;return y(a,"text/html")?e=a["text/html"]:(e=F.getHtml(),d=d?d:f.isMarked(e),F.isDefaultContent(e)&&(c=!0)),e=k.trimHtml(e),F.remove(),h=d===!1&&g.isPlainText(e),e.length&&!h||(c=!0),c&&(e=y(a,"text/plain")&&h?a["text/plain"]:k.innerText(e)),F.isDefaultContent(e)?void(b||l.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents.")):void(c?n(e):m(e,d))}function d(a){var b=a["text/plain"];return!!b&&0===b.indexOf("file://")}l.on("keydown",function(a){function c(a){z(a)&&!a.isDefaultPrevented()&&F.remove()}if(z(a)&&!a.isDefaultPrevented()){if(B=a.shiftKey&&86==a.keyCode,B&&b.webkit&&navigator.userAgent.indexOf("Version/")!=-1)return;if(a.stopImmediatePropagation(),D=(new Date).getTime(),b.ie&&B)return a.preventDefault(),void l.fire("paste",{ieFake:!0});F.remove(),F.create(),l.once("keyup",c),l.once("paste",function(){l.off("keyup",c)})}});var e=function(){return F.getLastRng()||l.selection.getRng()};l.on("paste",function(d){var g=(new Date).getTime(),h=p(d),i=(new Date).getTime()-g,j=(new Date).getTime()-D-i<1e3,k="text"==C.pasteFormat||B,m=y(h,f.internalHtmlMime());return B=!1,d.isDefaultPrevented()||w(d)?void F.remove():!q(h)&&v(d,e())?void F.remove():(j||d.preventDefault(),!b.ie||j&&!d.ieFake||y(h,"text/html")||(F.create(),l.dom.bind(F.getEl(),"paste",function(a){a.stopPropagation()}),l.getDoc().execCommand("Paste",!1,null),h["text/html"]=F.getHtml()),void(y(h,"text/html")?(d.preventDefault(),m||(m=f.isMarked(h["text/html"])),a(h,j,k,m)):c.setEditorTimeout(l,function(){a(h,j,k,m)},0)))}),l.on("dragstart dragend",function(a){E="dragstart"==a.type}),l.on("drop",function(a){var b,e;if(e=x(a),!a.isDefaultPrevented()&&!E){b=o(a.dataTransfer);var g=y(b,f.internalHtmlMime());if((q(b)&&!d(b)||!v(a,e))&&e&&l.settings.paste_filter_drop!==!1){var h=b["mce-internal"]||b["text/html"]||b["text/plain"];h&&(a.preventDefault(),c.setEditorTimeout(l,function(){l.undoManager.transact(function(){b["mce-internal"]&&l.execCommand("Delete"),l.selection.setRng(e),h=k.trimHtml(h),b["text/html"]?m(h,g):n(h)})}))}}}),l.on("dragover dragend",function(a){l.settings.paste_data_images&&a.preventDefault()})}var B,C=this,D=0,E=!1,F=new h(l),G="data:text/mce-internal,",H=k.createIdGenerator("mceclip");C.pasteHtml=m,C.pasteText=n,C.pasteImageData=v,l.on("preInit",function(){A(),l.parser.addNodeFilter("img",function(a,c,d){function e(a){return a.data&&a.data.paste===!0}function f(a){a.attr("data-mce-object")||j===b.transparentSrc||a.remove()}function g(a){return 0===a.indexOf("webkit-fake-url")}function h(a){return 0===a.indexOf("data:")}if(!l.settings.paste_data_images&&e(d))for(var i=a.length;i--;){var j=a[i].attributes.map.src;j&&(g(j)?f(a[i]):!l.settings.allow_html_data_urls&&h(j)&&f(a[i]))}})})}}),g("4",["8","c","h"],function(a,b,c){var d=function(){},e=function(b){return a.iOS===!1&&void 0!==b&&"function"==typeof b.setData&&c.isMsEdge()!==!0},f=function(a,c,d){if(!e(a))return!1;try{return a.clearData(),a.setData("text/html",c),a.setData("text/plain",d),a.setData(b.internalHtmlMime(),c),!0}catch(a){return!1}},g=function(a,b,c,d){f(a.clipboardData,b.html,b.text)?(a.preventDefault(),d()):c(b.html,d)},h=function(a){return function(c,d){var e=b.mark(c),f=a.dom.create("div",{contenteditable:"false","data-mce-bogus":"all"}),g=a.dom.create("div",{contenteditable:"true"},e);a.dom.setStyles(f,{position:"fixed",left:"-3000px",width:"1000px",overflow:"hidden"}),f.appendChild(g),a.dom.add(a.getBody(),f);var h=a.selection.getRng();g.focus();var i=a.dom.createRng();i.selectNodeContents(g),a.selection.setRng(i),setTimeout(function(){f.parentNode.removeChild(f),a.selection.setRng(h),d()},0)}},i=function(a){return{html:a.selection.getContent({contextual:!0}),text:a.selection.getContent({format:"text"})}},j=function(a){return function(b){a.selection.isCollapsed()===!1&&g(b,i(a),h(a),function(){setTimeout(function(){a.execCommand("Delete")},0)})}},k=function(a){return function(b){a.selection.isCollapsed()===!1&&g(b,i(a),h(a),d)}},l=function(a){a.on("cut",j(a)),a.on("copy",k(a))};return{register:l}}),g("5",["8","a","i","h"],function(a,b,c,d){function e(a,b){a.on("PastePreProcess",function(c){c.content=b(a,c.content,c.internal,c.wordContent)})}function f(a,b){a.on("PastePostProcess",function(c){b(a,c.node)})}function g(a,e){if(!c.isWordContent(e))return e;var f=[];b.each(a.schema.getBlockElements(),function(a,b){f.push(b)});var g=new RegExp("(?:<br> [\\s\\r\\n]+|<br>)*(<\\/?("+f.join("|")+")[^>]*>)(?:<br> [\\s\\r\\n]+|<br>)*","g");return e=d.filter(e,[[g,"$1"]]),e=d.filter(e,[[/<br><br>/g,"<BR><BR>"],[/<br>/g," "],[/<BR><BR>/g,"<br>"]])}function h(a,b,c,d){if(d||c)return b;var e=a.settings.paste_webkit_styles;if(a.settings.paste_remove_styles_if_webkit===!1||"all"==e)return b;if(e&&(e=e.split(/[, ]/)),e){var f=a.dom,g=a.selection.getNode();b=b.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,function(a,b,c,d){var h=f.parseStyle(f.decode(c),"span"),i={};if("none"===e)return b+d;for(var j=0;j<e.length;j++){var k=h[e[j]],l=f.getStyle(g,e[j],!0);/color/.test(e[j])&&(k=f.toHex(k),l=f.toHex(l)),l!=k&&(i[e[j]]=k)}return i=f.serializeStyle(i,"span"),i?b+' style="'+i+'"'+d:b+d})}else b=b.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,"$1$3");return b=b.replace(/(<[^>]+) data-mce-style="([^"]+)"([^>]*>)/gi,function(a,b,c,d){return b+' style="'+c+'"'+d})}function i(a,b){a.$("a",b).find("font,u").each(function(b,c){a.dom.remove(c,!0)})}var j=function(b){a.webkit&&e(b,h),a.ie&&(e(b,g),f(b,i))};return{setup:j}}),g("0",["1","2","3","4","5"],function(a,b,c,d,e){var f;return a.add("paste",function(g){function h(){return f||g.settings.paste_plaintext_inform===!1}function i(){if("text"==k.pasteFormat)k.pasteFormat="html",b.firePastePlainTextToggle(g,!1);else if(k.pasteFormat="text",b.firePastePlainTextToggle(g,!0),!h()){var a=g.translate("Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.");g.notificationManager.open({text:a,type:"info"}),f=!0}g.focus()}function j(){var a=this;a.active("text"===k.pasteFormat),g.on("PastePlainTextToggle",function(b){a.active(b.state)})}var k,l=this,m=g.settings;return/(^|[ ,])powerpaste([, ]|$)/.test(m.plugins)&&a.get("powerpaste")?void("undefined"!=typeof console&&console.log&&console.log("PowerPaste is incompatible with Paste plugin! Remove 'paste' from the 'plugins' option.")):(l.clipboard=k=new c(g),l.quirks=e.setup(g),g.settings.paste_as_text&&(l.clipboard.pasteFormat="text"),m.paste_preprocess&&g.on("PastePreProcess",function(a){m.paste_preprocess.call(l,l,a)}),m.paste_postprocess&&g.on("PastePostProcess",function(a){m.paste_postprocess.call(l,l,a)}),g.addCommand("mceInsertClipboardContent",function(a,b){b.content&&l.clipboard.pasteHtml(b.content,b.internal),b.text&&l.clipboard.pasteText(b.text)}),g.settings.paste_block_drop&&g.on("dragend dragover draggesture dragdrop drop drag",function(a){a.preventDefault(),a.stopPropagation()}),g.settings.paste_data_images||g.on("drop",function(a){var b=a.dataTransfer;b&&b.files&&b.files.length>0&&a.preventDefault()}),g.addCommand("mceTogglePlainTextPaste",i),g.addButton("pastetext",{icon:"pastetext",tooltip:"Paste as text",onclick:i,onPostRender:j}),g.addMenuItem("pastetext",{text:"Paste as text",selectable:!0,active:k.pasteFormat,onclick:i,onPostRender:j}),void d.register(g))}),function(){}}),d("0")()}(); \ No newline at end of file +!function(){"use strict";var o=function(e){var t=e,n=function(){return t};return{get:n,set:function(e){t=e},clone:function(){return o(n())}}},t=tinymce.util.Tools.resolve("tinymce.PluginManager"),s=function(e){return!(!/(^|[ ,])powerpaste([, ]|$)/.test(e.settings.plugins)||!t.get("powerpaste")||("undefined"!=typeof window.console&&window.console.log&&window.console.log("PowerPaste is incompatible with Paste plugin! Remove 'paste' from the 'plugins' option."),0))},l=function(e,t){return{clipboard:e,quirks:t}},f=function(e,t,n,r){return e.fire("PastePreProcess",{content:t,internal:n,wordContent:r})},d=function(e,t,n,r){return e.fire("PastePostProcess",{node:t,internal:n,wordContent:r})},u=function(e,t){return e.fire("PastePlainTextToggle",{state:t})},n=function(e,t){return e.fire("paste",{ieFake:t})},m={shouldPlainTextInform:function(e){return e.getParam("paste_plaintext_inform",!0)},shouldBlockDrop:function(e){return e.getParam("paste_block_drop",!1)},shouldPasteDataImages:function(e){return e.getParam("paste_data_images",!1)},shouldFilterDrop:function(e){return e.getParam("paste_filter_drop",!0)},getPreProcess:function(e){return e.getParam("paste_preprocess")},getPostProcess:function(e){return e.getParam("paste_postprocess")},getWebkitStyles:function(e){return e.getParam("paste_webkit_styles")},shouldRemoveWebKitStyles:function(e){return e.getParam("paste_remove_styles_if_webkit",!0)},shouldMergeFormats:function(e){return e.getParam("paste_merge_formats",!0)},isSmartPasteEnabled:function(e){return e.getParam("smart_paste",!0)},isPasteAsTextEnabled:function(e){return e.getParam("paste_as_text",!1)},getRetainStyleProps:function(e){return e.getParam("paste_retain_style_properties")},getWordValidElements:function(e){return e.getParam("paste_word_valid_elements","-strong/b,-em/i,-u,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-p/div,-a[href|name],sub,sup,strike,br,del,table[width],tr,td[colspan|rowspan|width],th[colspan|rowspan|width],thead,tfoot,tbody")},shouldConvertWordFakeLists:function(e){return e.getParam("paste_convert_word_fake_lists",!0)},shouldUseDefaultFilters:function(e){return e.getParam("paste_enable_default_filters",!0)}},r=function(e,t,n){var r,a,i;"text"===t.pasteFormat.get()?(t.pasteFormat.set("html"),u(e,!1)):(t.pasteFormat.set("text"),u(e,!0),i=e,!1===n.get()&&m.shouldPlainTextInform(i)&&(a="Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.",(r=e).notificationManager.open({text:r.translate(a),type:"info"}),n.set(!0))),e.focus()},c=function(e,n,t){e.addCommand("mceTogglePlainTextPaste",function(){r(e,n,t)}),e.addCommand("mceInsertClipboardContent",function(e,t){t.content&&n.pasteHtml(t.content,t.internal),t.text&&n.pasteText(t.text)})},v=tinymce.util.Tools.resolve("tinymce.Env"),h=tinymce.util.Tools.resolve("tinymce.util.Delay"),y=tinymce.util.Tools.resolve("tinymce.util.Tools"),a=tinymce.util.Tools.resolve("tinymce.util.VK"),e="x-tinymce/html",i="\x3c!-- "+e+" --\x3e",b={mark:function(e){return i+e},unmark:function(e){return e.replace(i,"")},isMarked:function(e){return-1!==e.indexOf(i)},internalHtmlMime:function(){return e}},g=tinymce.util.Tools.resolve("tinymce.html.Entities"),p=function(e){return e.replace(/\r?\n/g,"<br>")},x=function(e,t,n){var r=e.split(/\n\n/),a=function(e,t){var n,r=[],a="<"+e;if("object"==typeof t){for(n in t)t.hasOwnProperty(n)&&r.push(n+'="'+g.encodeAllRaw(t[n])+'"');r.length&&(a+=" "+r.join(" "))}return a+">"}(t,n),i="</"+t+">",o=y.map(r,function(e){return e.split(/\n/).join("<br />")});return 1===o.length?o[0]:y.map(o,function(e){return a+e+i}).join("")},P={isPlainText:function(e){return!/<(?:\/?(?!(?:div|p|br|span)>)\w+|(?:(?!(?:span style="white-space:\s?pre;?">)|br\s?\/>))\w+\s[^>]+)>/i.test(e)},convert:function(e,t,n){return t?x(e,t,n):p(e)},toBRs:p,toBlockElements:x},w=tinymce.util.Tools.resolve("tinymce.html.DomParser"),T=tinymce.util.Tools.resolve("tinymce.html.Node"),_=tinymce.util.Tools.resolve("tinymce.html.Schema"),C=tinymce.util.Tools.resolve("tinymce.html.Serializer");function D(t,e){return y.each(e,function(e){t=e.constructor===RegExp?t.replace(e,""):t.replace(e[0],e[1])}),t}var k={filter:D,innerText:function(t){var n=_(),r=w({},n),a="",i=n.getShortEndedElements(),o=y.makeMap("script noscript style textarea video audio iframe object"," "),s=n.getBlockElements();return t=D(t,[/<!\[[^\]]+\]>/g]),function e(t){var n=t.name,r=t;if("br"!==n)if(i[n]&&(a+=" "),o[n])a+=" ";else{if(3===t.type&&(a+=t.value),!t.shortEnded&&(t=t.firstChild))for(;e(t),t=t.next;);s[n]&&r.next&&(a+="\n","p"===n&&(a+="\n"))}else a+="\n"}(r.parse(t)),a},trimHtml:function(e){return e=D(e,[/^[\s\S]*<body[^>]*>\s*|\s*<\/body[^>]*>[\s\S]*$/gi,/<!--StartFragment-->|<!--EndFragment-->/g,[/( ?)<span class="Apple-converted-space">\u00a0<\/span>( ?)/g,function(e,t,n){return t||n?"\xa0":" "}],/<br class="Apple-interchange-newline">/g,/<br>$/i])},createIdGenerator:function(e){var t=0;return function(){return e+t++}},isMsEdge:function(){return-1!==navigator.userAgent.indexOf(" Edge/")}};function R(t){var n,e;return e=[/^[IVXLMCD]{1,2}\.[ \u00a0]/,/^[ivxlmcd]{1,2}\.[ \u00a0]/,/^[a-z]{1,2}[\.\)][ \u00a0]/,/^[A-Z]{1,2}[\.\)][ \u00a0]/,/^[0-9]+\.[ \u00a0]/,/^[\u3007\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d]+\.[ \u00a0]/,/^[\u58f1\u5f10\u53c2\u56db\u4f0d\u516d\u4e03\u516b\u4e5d\u62fe]+\.[ \u00a0]/],t=t.replace(/^[\u00a0 ]+/,""),y.each(e,function(e){if(e.test(t))return!(n=!0)}),n}function E(e){var i,o,s=1;function n(e){var t="";if(3===e.type)return e.value;if(e=e.firstChild)for(;t+=n(e),e=e.next;);return t}function l(e,t){if(3===e.type&&t.test(e.value))return e.value=e.value.replace(t,""),!1;if(e=e.firstChild)do{if(!l(e,t))return!1}while(e=e.next);return!0}function t(t,n,r){var a=t._listLevel||s;a!==s&&(a<s?i&&(i=i.parent.parent):(o=i,i=null)),i&&i.name===n?i.append(t):(o=o||i,i=new T(n,1),1<r&&i.attr("start",""+r),t.wrap(i)),t.name="li",s<a&&o&&o.lastChild.append(i),s=a,function e(t){if(t._listIgnore)t.remove();else if(t=t.firstChild)for(;e(t),t=t.next;);}(t),l(t,/^\u00a0+/),l(t,/^\s*([\u2022\u00b7\u00a7\u25CF]|\w+\.)/),l(t,/^\u00a0+/)}for(var r=[],a=e.firstChild;null!=a;)if(r.push(a),null!==(a=a.walk()))for(;void 0!==a&&a.parent!==e;)a=a.walk();for(var u=0;u<r.length;u++)if("p"===(e=r[u]).name&&e.firstChild){var c=n(e);if(/^[\s\u00a0]*[\u2022\u00b7\u00a7\u25CF]\s*/.test(c)){t(e,"ul");continue}if(R(c)){var f=/([0-9]+)\./.exec(c),d=1;f&&(d=parseInt(f[1],10)),t(e,"ol",d);continue}if(e._listLevel){t(e,"ul",1);continue}i=null}else o=i,i=null}function M(n,r,a,i){var o,s={},e=n.dom.parseStyle(i);return y.each(e,function(e,t){switch(t){case"mso-list":(o=/\w+ \w+([0-9]+)/i.exec(i))&&(a._listLevel=parseInt(o[1],10)),/Ignore/i.test(e)&&a.firstChild&&(a._listIgnore=!0,a.firstChild._listIgnore=!0);break;case"horiz-align":t="text-align";break;case"vert-align":t="vertical-align";break;case"font-color":case"mso-foreground":t="color";break;case"mso-background":case"mso-highlight":t="background";break;case"font-weight":case"font-style":return void("normal"!==e&&(s[t]=e));case"mso-element":if(/^(comment|comment-list)$/i.test(e))return void a.remove()}0!==t.indexOf("mso-comment")?0!==t.indexOf("mso-")&&("all"===m.getRetainStyleProps(n)||r&&r[t])&&(s[t]=e):a.remove()}),/(bold)/i.test(s["font-weight"])&&(delete s["font-weight"],a.wrap(new T("b",1))),/(italic)/i.test(s["font-style"])&&(delete s["font-style"],a.wrap(new T("i",1))),(s=n.dom.serializeStyle(s,a.name))||null}var S={preProcess:function(e,t){return m.shouldUseDefaultFilters(e)?function(r,e){var t,a;(t=m.getRetainStyleProps(r))&&(a=y.makeMap(t.split(/[, ]/))),e=k.filter(e,[/<br class="?Apple-interchange-newline"?>/gi,/<b[^>]+id="?docs-internal-[^>]*>/gi,/<!--[\s\S]+?-->/gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/ /gi,"\xa0"],[/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi,function(e,t){return 0<t.length?t.replace(/./," ").slice(Math.floor(t.length/2)).split("").join("\xa0"):""}]]);var n=m.getWordValidElements(r),i=_({valid_elements:n,valid_children:"-li[p]"});y.each(i.elements,function(e){e.attributes["class"]||(e.attributes["class"]={},e.attributesOrder.push("class")),e.attributes.style||(e.attributes.style={},e.attributesOrder.push("style"))});var o=w({},i);o.addAttributeFilter("style",function(e){for(var t,n=e.length;n--;)(t=e[n]).attr("style",M(r,a,t,t.attr("style"))),"span"===t.name&&t.parent&&!t.attributes.length&&t.unwrap()}),o.addAttributeFilter("class",function(e){for(var t,n,r=e.length;r--;)n=(t=e[r]).attr("class"),/^(MsoCommentReference|MsoCommentText|msoDel)$/i.test(n)&&t.remove(),t.attr("class",null)}),o.addNodeFilter("del",function(e){for(var t=e.length;t--;)e[t].remove()}),o.addNodeFilter("a",function(e){for(var t,n,r,a=e.length;a--;)if(n=(t=e[a]).attr("href"),r=t.attr("name"),n&&-1!==n.indexOf("#_msocom_"))t.remove();else if(n&&0===n.indexOf("file://")&&(n=n.split("#")[1])&&(n="#"+n),n||r){if(r&&!/^_?(?:toc|edn|ftn)/i.test(r)){t.unwrap();continue}t.attr({href:n,name:r})}else t.unwrap()});var s=o.parse(e);return m.shouldConvertWordFakeLists(r)&&E(s),e=C({validate:r.settings.validate},i).serialize(s)}(e,t):t},isWordContent:function(e){return/<font face="Times New Roman"|class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i.test(e)||/class="OutlineElement/.test(e)||/id="?docs\-internal\-guid\-/.test(e)}},F=function(e,t){return{content:e,cancelled:t}},I=function(e,t,n,r){var a,i,o,s,l,u,c=f(e,t,n,r);return e.hasEventListeners("PastePostProcess")&&!c.isDefaultPrevented()?(a=e,i=c.content,o=n,s=r,l=a.dom.create("div",{style:"display:none"},i),u=d(a,l,o,s),F(u.node.innerHTML,u.isDefaultPrevented())):F(c.content,c.isDefaultPrevented())},O=function(e,t,n){var r=S.isWordContent(t),a=r?S.preProcess(e,t):t;return I(e,a,n,r)},A=function(e,t){return e.insertContent(t,{merge:m.shouldMergeFormats(e),paste:!0}),!0},B=function(e){return/^https?:\/\/[\w\?\-\/+=.&%@~#]+$/i.test(e)},H=function(e){return B(e)&&/.(gif|jpe?g|png)$/.test(e)},N=function(e,t,n){return!(!1!==e.selection.isCollapsed()||!B(t)||(a=t,i=n,(r=e).undoManager.extra(function(){i(r,a)},function(){r.execCommand("mceInsertLink",!1,a)}),0));var r,a,i},L=function(e,t,n){return!!H(t)&&(a=t,i=n,(r=e).undoManager.extra(function(){i(r,a)},function(){r.insertContent('<img src="'+a+'">')}),!0);var r,a,i},$=function(e,t){var n,r;!1===m.isSmartPasteEnabled(e)?A(e,t):(n=e,r=t,y.each([N,L,A],function(e){return!0!==e(n,r,A)}))},W=function(e,t,n){var r=n||b.isMarked(t),a=O(e,b.unmark(t),r);!1===a.cancelled&&$(e,a.content)},j=function(e,t){t=e.dom.encode(t).replace(/\r\n/g,"\n"),t=P.convert(t,e.settings.forced_root_block,e.settings.forced_root_block_attrs),W(e,t,!1)},V=function(e){var t={};if(e){if(e.getData){var n=e.getData("Text");n&&0<n.length&&-1===n.indexOf("data:text/mce-internal,")&&(t["text/plain"]=n)}if(e.types)for(var r=0;r<e.types.length;r++){var a=e.types[r];try{t[a]=e.getData(a)}catch(i){t[a]=""}}}return t},z=function(e,t){return t in e&&0<e[t].length},K=function(e){return z(e,"text/html")||z(e,"text/plain")},U=function(e,t,n,r){var a=k.createIdGenerator("mceclip");t&&(e.selection.setRng(t),t=null);var i,o,s,l,u,c,f,d=n.result,m=-1!==(o=(i=d).indexOf(","))?i.substr(o+1):null,g=a(),p=e.settings.images_reuse_filename&&r.name?(s=e,l=r.name,(u=l.match(/([\s\S]+?)\.(?:jpeg|jpg|png|gif)$/i))?s.dom.encode(u[1]):null):g,v=new Image;if(v.src=d,c=e.settings,f=v,!c.images_dataimg_filter||c.images_dataimg_filter(f)){var h,y=e.editorUpload.blobCache,b=void 0;(h=y.findFirst(function(e){return e.base64()===m}))?b=h:(b=y.create(g,r,m,p),y.add(b)),W(e,'<img src="'+b.blobUri()+'">',!1)}else W(e,'<img src="'+d+'">',!1)},G=function(o,s,l){var e="paste"===s.type?s.clipboardData:s.dataTransfer;function t(e){var t,n,r,a=!1;if(e)for(t=0;t<e.length;t++)if(n=e[t],/^image\/(jpeg|png|gif|bmp)$/.test(n.type)){var i=n.getAsFile?n.getAsFile():n;(r=new window.FileReader).onload=U.bind(null,o,l,r,i),r.readAsDataURL(i),s.preventDefault(),a=!0}return a}if(o.settings.paste_data_images&&e)return t(e.items)||t(e.files)},X=function(e){return a.metaKeyPressed(e)&&86===e.keyCode||e.shiftKey&&45===e.keyCode},q=function(c,f,d){var m,g=0;function p(e,t,n,r){var a,i;z(e,"text/html")?a=e["text/html"]:(a=f.getHtml(),r=r||b.isMarked(a),f.isDefaultContent(a)&&(n=!0)),a=k.trimHtml(a),f.remove(),i=!1===r&&P.isPlainText(a),a.length&&!i||(n=!0),n&&(a=z(e,"text/plain")&&i?e["text/plain"]:k.innerText(a)),f.isDefaultContent(a)?t||c.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents."):n?j(c,a):W(c,a,r)}c.on("keydown",function(e){function t(e){X(e)&&!e.isDefaultPrevented()&&f.remove()}if(X(e)&&!e.isDefaultPrevented()){if((m=e.shiftKey&&86===e.keyCode)&&v.webkit&&-1!==navigator.userAgent.indexOf("Version/"))return;if(e.stopImmediatePropagation(),g=(new Date).getTime(),v.ie&&m)return e.preventDefault(),void n(c,!0);f.remove(),f.create(),c.once("keyup",t),c.once("paste",function(){c.off("keyup",t)})}}),c.on("paste",function(e){var t,n,r,a=(new Date).getTime(),i=(t=c,n=V(e.clipboardData||t.getDoc().dataTransfer),k.isMsEdge()?y.extend(n,{"text/html":""}):n),o=(new Date).getTime()-a,s=(new Date).getTime()-g-o<1e3,l="text"===d.get()||m,u=z(i,b.internalHtmlMime());m=!1,e.isDefaultPrevented()||(r=e.clipboardData,-1!==navigator.userAgent.indexOf("Android")&&r&&r.items&&0===r.items.length)?f.remove():K(i)||!G(c,e,f.getLastRng()||c.selection.getRng())?(s||e.preventDefault(),!v.ie||s&&!e.ieFake||z(i,"text/html")||(f.create(),c.dom.bind(f.getEl(),"paste",function(e){e.stopPropagation()}),c.getDoc().execCommand("Paste",!1,null),i["text/html"]=f.getHtml()),z(i,"text/html")?(e.preventDefault(),u||(u=b.isMarked(i["text/html"])),p(i,s,l,u)):h.setEditorTimeout(c,function(){p(i,s,l,u)},0)):f.remove()})},Y=function(e){return e.dom.get("mcepastebin")},Z=function(e,t){return t===e},J=function(r){var e=o(null),a="%MCEPASTEBIN%";return{create:function(){return function(e,t,n){var r,a,i=e.dom,o=e.getBody(),s=e.dom.getViewPort(e.getWin()).y,l=20;t.set(e.selection.getRng());var u=t.get();if(e.inline&&(a=e.selection.getScrollContainer())&&0<a.scrollTop&&(s=a.scrollTop),u.getClientRects){var c=function(e){var t,n,r,a=e.startContainer;if((t=e.getClientRects()).length)return t[0];if(e.collapsed&&1===a.nodeType){for(r=a.childNodes[u.startOffset];r&&3===r.nodeType&&!r.data.length;)r=r.nextSibling;if(r)return"BR"===r.tagName&&(n=i.doc.createTextNode("\ufeff"),r.parentNode.insertBefore(n,r),(e=i.createRng()).setStartBefore(n),e.setEndAfter(n),t=e.getClientRects(),i.remove(n)),t.length?t[0]:void 0}}(u);if(c)l=s+(c.top-i.getPos(o).y);else{l=s;var f=u.startContainer;f&&(3===f.nodeType&&f.parentNode!==o&&(f=f.parentNode),1===f.nodeType&&(l=i.getPos(f,a||o).y))}}r=e.dom.add(e.getBody(),"div",{id:"mcepastebin",contentEditable:!0,"data-mce-bogus":"all",style:"position: absolute; top: "+l+"px; width: 10px; height: 10px; overflow: hidden; opacity: 0"},n),(v.ie||v.gecko)&&i.setStyle(r,"left","rtl"===i.getStyle(o,"direction",!0)?65535:-65535),i.bind(r,"beforedeactivate focusin focusout",function(e){e.stopPropagation()}),r.focus(),e.selection.select(r,!0)}(r,e,a)},remove:function(){return function(e,t){if(Y(e)){for(var n=void 0,r=t.get();n=e.dom.get("mcepastebin");)e.dom.remove(n),e.dom.unbind(n);r&&e.selection.setRng(r)}t.set(null)}(r,e)},getEl:function(){return Y(r)},getHtml:function(){return function(n){var t,e,r,a,i,o=function(e,t){e.appendChild(t),n.dom.remove(t,!0)};for(e=y.grep(n.getBody().childNodes,function(e){return"mcepastebin"===e.id}),t=e.shift(),y.each(e,function(e){o(t,e)}),r=(a=n.dom.select("div[id=mcepastebin]",t)).length-1;0<=r;r--)i=n.dom.create("div"),t.insertBefore(i,a[r]),o(i,a[r]);return t?t.innerHTML:""}(r)},getLastRng:function(){return e.get()},isDefault:function(){return e=a,n=Y(r),(t=n)&&"mcepastebin"===t.id&&Z(e,n.innerHTML);var e,t,n},isDefaultContent:function(e){return Z(a,e)}}},Q=function(n,e){var t=J(n);return n.on("preInit",function(){return q(o=n,t,e),void o.parser.addNodeFilter("img",function(e,t,n){var r,a=function(e){e.attr("data-mce-object")||s===v.transparentSrc||e.remove()};if(!o.settings.paste_data_images&&(r=n).data&&!0===r.data.paste)for(var i=e.length;i--;)(s=e[i].attributes.map.src)&&(0===s.indexOf("webkit-fake-url")?a(e[i]):o.settings.allow_html_data_urls||0!==s.indexOf("data:")||a(e[i]))});var o,s}),{pasteFormat:e,pasteHtml:function(e,t){return W(n,e,t)},pasteText:function(e){return j(n,e)},pasteImageData:function(e,t){return G(n,e,t)},getDataTransferItems:V,hasHtmlOrText:K,hasContentType:z}},ee=function(){},te=function(e,t,n){if(r=e,!1!==v.iOS||r===undefined||"function"!=typeof r.setData||!0===k.isMsEdge())return!1;try{return e.clearData(),e.setData("text/html",t),e.setData("text/plain",n),e.setData(b.internalHtmlMime(),t),!0}catch(a){return!1}var r},ne=function(e,t,n,r){te(e.clipboardData,t.html,t.text)?(e.preventDefault(),r()):n(t.html,r)},re=function(s){return function(e,t){var n=b.mark(e),r=s.dom.create("div",{contenteditable:"false","data-mce-bogus":"all"}),a=s.dom.create("div",{contenteditable:"true"},n);s.dom.setStyles(r,{position:"fixed",top:"0",left:"-3000px",width:"1000px",overflow:"hidden"}),r.appendChild(a),s.dom.add(s.getBody(),r);var i=s.selection.getRng();a.focus();var o=s.dom.createRng();o.selectNodeContents(a),s.selection.setRng(o),setTimeout(function(){s.selection.setRng(i),r.parentNode.removeChild(r),t()},0)}},ae=function(e){return{html:e.selection.getContent({contextual:!0}),text:e.selection.getContent({format:"text"})}},ie=function(e){var t,n;e.on("cut",(t=e,function(e){!1===t.selection.isCollapsed()&&ne(e,ae(t),re(t),function(){setTimeout(function(){t.execCommand("Delete")},0)})})),e.on("copy",(n=e,function(e){!1===n.selection.isCollapsed()&&ne(e,ae(n),re(n),ee)}))},oe=tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"),se=function(e,t){return oe.getCaretRangeFromPoint(t.clientX,t.clientY,e.getDoc())},le=function(e,t){e.focus(),e.selection.setRng(t)},ue=function(o,s,l){m.shouldBlockDrop(o)&&o.on("dragend dragover draggesture dragdrop drop drag",function(e){e.preventDefault(),e.stopPropagation()}),m.shouldPasteDataImages(o)||o.on("drop",function(e){var t=e.dataTransfer;t&&t.files&&0<t.files.length&&e.preventDefault()}),o.on("drop",function(e){var t,n;if(n=se(o,e),!e.isDefaultPrevented()&&!l.get()){t=s.getDataTransferItems(e.dataTransfer);var r,a=s.hasContentType(t,b.internalHtmlMime());if((s.hasHtmlOrText(t)&&(!(r=t["text/plain"])||0!==r.indexOf("file://"))||!s.pasteImageData(e,n))&&n&&m.shouldFilterDrop(o)){var i=t["mce-internal"]||t["text/html"]||t["text/plain"];i&&(e.preventDefault(),h.setEditorTimeout(o,function(){o.undoManager.transact(function(){t["mce-internal"]&&o.execCommand("Delete"),le(o,n),i=k.trimHtml(i),t["text/html"]?s.pasteHtml(i,a):s.pasteText(i)})}))}}}),o.on("dragstart",function(e){l.set(!0)}),o.on("dragover dragend",function(e){m.shouldPasteDataImages(o)&&!1===l.get()&&(e.preventDefault(),le(o,se(o,e))),"dragend"===e.type&&l.set(!1)})},ce=function(e){var t=e.plugins.paste,n=m.getPreProcess(e);n&&e.on("PastePreProcess",function(e){n.call(t,t,e)});var r=m.getPostProcess(e);r&&e.on("PastePostProcess",function(e){r.call(t,t,e)})};function fe(t,n){t.on("PastePreProcess",function(e){e.content=n(t,e.content,e.internal,e.wordContent)})}function de(e,t){if(!S.isWordContent(t))return t;var n=[];y.each(e.schema.getBlockElements(),function(e,t){n.push(t)});var r=new RegExp("(?:<br> [\\s\\r\\n]+|<br>)*(<\\/?("+n.join("|")+")[^>]*>)(?:<br> [\\s\\r\\n]+|<br>)*","g");return t=k.filter(t,[[r,"$1"]]),t=k.filter(t,[[/<br><br>/g,"<BR><BR>"],[/<br>/g," "],[/<BR><BR>/g,"<br>"]])}function me(e,t,n,r){if(r||n)return t;var u,a=m.getWebkitStyles(e);if(!1===m.shouldRemoveWebKitStyles(e)||"all"===a)return t;if(a&&(u=a.split(/[, ]/)),u){var c=e.dom,f=e.selection.getNode();t=t.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,function(e,t,n,r){var a=c.parseStyle(c.decode(n)),i={};if("none"===u)return t+r;for(var o=0;o<u.length;o++){var s=a[u[o]],l=c.getStyle(f,u[o],!0);/color/.test(u[o])&&(s=c.toHex(s),l=c.toHex(l)),l!==s&&(i[u[o]]=s)}return(i=c.serializeStyle(i,"span"))?t+' style="'+i+'"'+r:t+r})}else t=t.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,"$1$3");return t=t.replace(/(<[^>]+) data-mce-style="([^"]+)"([^>]*>)/gi,function(e,t,n,r){return t+' style="'+n+'"'+r})}function ge(n,e){n.$("a",e).find("font,u").each(function(e,t){n.dom.remove(t,!0)})}var pe=function(e){var t,n;v.webkit&&fe(e,me),v.ie&&(fe(e,de),n=ge,(t=e).on("PastePostProcess",function(e){n(t,e.node)}))},ve=function(e){return function(){return e}},he=(ve(!1),ve(!0),function(i){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];for(var o=new Array(arguments.length-1),n=1;n<arguments.length;n++)o[n-1]=arguments[n];return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];var a=o.concat(n);return i.apply(null,a)}}),ye=function(e,t,n){var r=n.control;r.active("text"===t.pasteFormat.get()),e.on("PastePlainTextToggle",function(e){r.active(e.state)})},be=function(e,t){var n=he(ye,e,t);e.addButton("pastetext",{active:!1,icon:"pastetext",tooltip:"Paste as text",cmd:"mceTogglePlainTextPaste",onPostRender:n}),e.addMenuItem("pastetext",{text:"Paste as text",selectable:!0,active:t.pasteFormat,cmd:"mceTogglePlainTextPaste",onPostRender:n})};t.add("paste",function(e){if(!1===s(e)){var t=o(!1),n=o(!1),r=o(m.isPasteAsTextEnabled(e)?"text":"html"),a=Q(e,r),i=pe(e);return be(e,a),c(e,a,t),ce(e),ie(e),ue(e,a,n),l(a,i)}})}(); \ No newline at end of file diff --git a/wp-includes/js/tinymce/plugins/tabfocus/plugin.js b/wp-includes/js/tinymce/plugins/tabfocus/plugin.js index 80383ccfc..c1f939d4e 100644 --- a/wp-includes/js/tinymce/plugins/tabfocus/plugin.js +++ b/wp-includes/js/tinymce/plugins/tabfocus/plugin.js @@ -1,348 +1,124 @@ (function () { +var tabfocus = (function () { + 'use strict'; -var defs = {}; // id -> {dependencies, definition, instance (possibly undefined)} + var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); -// Used when there is no 'main' module. -// The name is probably (hopefully) unique so minification removes for releases. -var register_3795 = function (id) { - var module = dem(id); - var fragments = id.split('.'); - var target = Function('return this;')(); - for (var i = 0; i < fragments.length - 1; ++i) { - if (target[fragments[i]] === undefined) - target[fragments[i]] = {}; - target = target[fragments[i]]; - } - target[fragments[fragments.length - 1]] = module; -}; - -var instantiate = function (id) { - var actual = defs[id]; - var dependencies = actual.deps; - var definition = actual.defn; - var len = dependencies.length; - var instances = new Array(len); - for (var i = 0; i < len; ++i) - instances[i] = dem(dependencies[i]); - var defResult = definition.apply(null, instances); - if (defResult === undefined) - throw 'module [' + id + '] returned undefined'; - actual.instance = defResult; -}; - -var def = function (id, dependencies, definition) { - if (typeof id !== 'string') - throw 'module id must be a string'; - else if (dependencies === undefined) - throw 'no dependencies for ' + id; - else if (definition === undefined) - throw 'no definition function for ' + id; - defs[id] = { - deps: dependencies, - defn: definition, - instance: undefined - }; -}; - -var dem = function (id) { - var actual = defs[id]; - if (actual === undefined) - throw 'module [' + id + '] was undefined'; - else if (actual.instance === undefined) - instantiate(id); - return actual.instance; -}; - -var req = function (ids, callback) { - var len = ids.length; - var instances = new Array(len); - for (var i = 0; i < len; ++i) - instances.push(dem(ids[i])); - callback.apply(null, callback); -}; - -var ephox = {}; - -ephox.bolt = { - module: { - api: { - define: def, - require: req, - demand: dem - } - } -}; - -var define = def; -var require = req; -var demand = dem; -// this helps with minificiation when using a lot of global references -var defineGlobal = function (id, ref) { - define(id, [], function () { return ref; }); -}; -/*jsc -["tinymce.plugins.tabfocus.Plugin","tinymce.core.PluginManager","tinymce.core.dom.DOMUtils","tinymce.core.util.Tools","tinymce.core.EditorManager","tinymce.core.util.Delay","tinymce.core.Env","global!tinymce.util.Tools.resolve"] -jsc*/ -defineGlobal("global!tinymce.util.Tools.resolve", tinymce.util.Tools.resolve); -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.PluginManager', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.PluginManager'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.dom.DOMUtils', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.dom.DOMUtils'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ + var global$1 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils'); -define( - 'tinymce.core.util.Tools', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.util.Tools'); - } -); + var global$2 = tinymce.util.Tools.resolve('tinymce.EditorManager'); -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ + var global$3 = tinymce.util.Tools.resolve('tinymce.Env'); -define( - 'tinymce.core.EditorManager', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.EditorManager'); - } -); + var global$4 = tinymce.util.Tools.resolve('tinymce.util.Delay'); -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ + var global$5 = tinymce.util.Tools.resolve('tinymce.util.Tools'); -define( - 'tinymce.core.util.Delay', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.util.Delay'); - } -); + var global$6 = tinymce.util.Tools.resolve('tinymce.util.VK'); -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.Env', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.Env'); - } -); - -/** - * Plugin.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -/** - * This class contains all core logic for the code plugin. - * - * @class tinymce.tabfocus.Plugin - * @private - */ -define( - 'tinymce.plugins.tabfocus.Plugin', - [ - 'tinymce.core.PluginManager', - 'tinymce.core.dom.DOMUtils', - 'tinymce.core.util.Tools', - 'tinymce.core.EditorManager', - 'tinymce.core.util.Delay', - 'tinymce.core.Env' - ], - function (PluginManager, DOMUtils, Tools, EditorManager, Delay, Env) { - PluginManager.add('tabfocus', function (editor) { - var DOM = DOMUtils.DOM; + var getTabFocusElements = function (editor) { + return editor.getParam('tabfocus_elements', ':prev,:next'); + }; + var getTabFocus = function (editor) { + return editor.getParam('tab_focus', getTabFocusElements(editor)); + }; + var $_54igvnk1jfuw8q35 = { getTabFocus: getTabFocus }; - function tabCancel(e) { - if (e.keyCode === 9 && !e.ctrlKey && !e.altKey && !e.metaKey) { - e.preventDefault(); - } + var DOM = global$1.DOM; + var tabCancel = function (e) { + if (e.keyCode === global$6.TAB && !e.ctrlKey && !e.altKey && !e.metaKey) { + e.preventDefault(); + } + }; + var setup = function (editor) { + function tabHandler(e) { + var x, el, v, i; + if (e.keyCode !== global$6.TAB || e.ctrlKey || e.altKey || e.metaKey || e.isDefaultPrevented()) { + return; } - - function tabHandler(e) { - var x, el, v, i; - - if (e.keyCode !== 9 || e.ctrlKey || e.altKey || e.metaKey || e.isDefaultPrevented()) { - return; + function find(direction) { + el = DOM.select(':input:enabled,*[tabindex]:not(iframe)'); + function canSelectRecursive(e) { + return e.nodeName === 'BODY' || e.type !== 'hidden' && e.style.display !== 'none' && e.style.visibility !== 'hidden' && canSelectRecursive(e.parentNode); } - - function find(direction) { - el = DOM.select(':input:enabled,*[tabindex]:not(iframe)'); - - function canSelectRecursive(e) { - return e.nodeName === "BODY" || (e.type != 'hidden' && - e.style.display != "none" && - e.style.visibility != "hidden" && canSelectRecursive(e.parentNode)); - } - - function canSelect(el) { - return /INPUT|TEXTAREA|BUTTON/.test(el.tagName) && EditorManager.get(e.id) && el.tabIndex != -1 && canSelectRecursive(el); + function canSelect(el) { + return /INPUT|TEXTAREA|BUTTON/.test(el.tagName) && global$2.get(e.id) && el.tabIndex !== -1 && canSelectRecursive(el); + } + global$5.each(el, function (e, i) { + if (e.id === editor.id) { + x = i; + return false; } - - Tools.each(el, function (e, i) { - if (e.id == editor.id) { - x = i; - return false; + }); + if (direction > 0) { + for (i = x + 1; i < el.length; i++) { + if (canSelect(el[i])) { + return el[i]; } - }); - if (direction > 0) { - for (i = x + 1; i < el.length; i++) { - if (canSelect(el[i])) { - return el[i]; - } - } - } else { - for (i = x - 1; i >= 0; i--) { - if (canSelect(el[i])) { - return el[i]; - } + } + } else { + for (i = x - 1; i >= 0; i--) { + if (canSelect(el[i])) { + return el[i]; } } - - return null; } - - v = Tools.explode(editor.getParam('tab_focus', editor.getParam('tabfocus_elements', ':prev,:next'))); - - if (v.length == 1) { - v[1] = v[0]; - v[0] = ':prev'; - } - - // Find element to focus - if (e.shiftKey) { - if (v[0] == ':prev') { - el = find(-1); - } else { - el = DOM.get(v[0]); - } + return null; + } + v = global$5.explode($_54igvnk1jfuw8q35.getTabFocus(editor)); + if (v.length === 1) { + v[1] = v[0]; + v[0] = ':prev'; + } + if (e.shiftKey) { + if (v[0] === ':prev') { + el = find(-1); } else { - if (v[1] == ':next') { - el = find(1); - } else { - el = DOM.get(v[1]); - } + el = DOM.get(v[0]); } - - if (el) { - var focusEditor = EditorManager.get(el.id || el.name); - - if (el.id && focusEditor) { - focusEditor.focus(); - } else { - Delay.setTimeout(function () { - if (!Env.webkit) { - window.focus(); - } - - el.focus(); - }, 10); - } - - e.preventDefault(); + } else { + if (v[1] === ':next') { + el = find(1); + } else { + el = DOM.get(v[1]); } } - - editor.on('init', function () { - if (editor.inline) { - // Remove default tabIndex in inline mode - DOM.setAttrib(editor.getBody(), 'tabIndex', null); - } - - editor.on('keyup', tabCancel); - - if (Env.gecko) { - editor.on('keypress keydown', tabHandler); + if (el) { + var focusEditor = global$2.get(el.id || el.name); + if (el.id && focusEditor) { + focusEditor.focus(); } else { - editor.on('keydown', tabHandler); + global$4.setTimeout(function () { + if (!global$3.webkit) { + window.focus(); + } + el.focus(); + }, 10); } - }); + e.preventDefault(); + } + } + editor.on('init', function () { + if (editor.inline) { + DOM.setAttrib(editor.getBody(), 'tabIndex', null); + } + editor.on('keyup', tabCancel); + if (global$3.gecko) { + editor.on('keypress keydown', tabHandler); + } else { + editor.on('keydown', tabHandler); + } }); + }; + var $_4nj741jujfuw8q2z = { setup: setup }; - - return function () { }; + global.add('tabfocus', function (editor) { + $_4nj741jujfuw8q2z.setup(editor); + }); + function Plugin () { } -); -dem('tinymce.plugins.tabfocus.Plugin')(); + + return Plugin; + +}()); })(); diff --git a/wp-includes/js/tinymce/plugins/tabfocus/plugin.min.js b/wp-includes/js/tinymce/plugins/tabfocus/plugin.min.js index b0c95f827..331e36b12 100644 --- a/wp-includes/js/tinymce/plugins/tabfocus/plugin.min.js +++ b/wp-includes/js/tinymce/plugins/tabfocus/plugin.min.js @@ -1 +1 @@ -!function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("7",tinymce.util.Tools.resolve),g("1",["7"],function(a){return a("tinymce.PluginManager")}),g("2",["7"],function(a){return a("tinymce.dom.DOMUtils")}),g("3",["7"],function(a){return a("tinymce.util.Tools")}),g("4",["7"],function(a){return a("tinymce.EditorManager")}),g("5",["7"],function(a){return a("tinymce.util.Delay")}),g("6",["7"],function(a){return a("tinymce.Env")}),g("0",["1","2","3","4","5","6"],function(a,b,c,d,e,f){return a.add("tabfocus",function(a){function g(a){9!==a.keyCode||a.ctrlKey||a.altKey||a.metaKey||a.preventDefault()}function h(b){function g(e){function f(a){return"BODY"===a.nodeName||"hidden"!=a.type&&"none"!=a.style.display&&"hidden"!=a.style.visibility&&f(a.parentNode)}function g(a){return/INPUT|TEXTAREA|BUTTON/.test(a.tagName)&&d.get(b.id)&&a.tabIndex!=-1&&f(a)}if(j=i.select(":input:enabled,*[tabindex]:not(iframe)"),c.each(j,function(b,c){if(b.id==a.id)return h=c,!1}),e>0){for(l=h+1;l<j.length;l++)if(g(j[l]))return j[l]}else for(l=h-1;l>=0;l--)if(g(j[l]))return j[l];return null}var h,j,k,l;if(!(9!==b.keyCode||b.ctrlKey||b.altKey||b.metaKey||b.isDefaultPrevented())&&(k=c.explode(a.getParam("tab_focus",a.getParam("tabfocus_elements",":prev,:next"))),1==k.length&&(k[1]=k[0],k[0]=":prev"),j=b.shiftKey?":prev"==k[0]?g(-1):i.get(k[0]):":next"==k[1]?g(1):i.get(k[1]))){var m=d.get(j.id||j.name);j.id&&m?m.focus():e.setTimeout(function(){f.webkit||window.focus(),j.focus()},10),b.preventDefault()}}var i=b.DOM;a.on("init",function(){a.inline&&i.setAttrib(a.getBody(),"tabIndex",null),a.on("keyup",g),f.gecko?a.on("keypress keydown",h):a.on("keydown",h)})}),function(){}}),d("0")()}(); \ No newline at end of file +!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),c=tinymce.util.Tools.resolve("tinymce.EditorManager"),s=tinymce.util.Tools.resolve("tinymce.Env"),a=tinymce.util.Tools.resolve("tinymce.util.Delay"),y=tinymce.util.Tools.resolve("tinymce.util.Tools"),f=tinymce.util.Tools.resolve("tinymce.util.VK"),d={getTabFocus:function(e){return e.getParam("tab_focus",e.getParam("tabfocus_elements",":prev,:next"))}},m=t.DOM,n=function(e){e.keyCode!==f.TAB||e.ctrlKey||e.altKey||e.metaKey||e.preventDefault()},i=function(r){function e(n){var i,o,e,l;if(!(n.keyCode!==f.TAB||n.ctrlKey||n.altKey||n.metaKey||n.isDefaultPrevented())&&(1===(e=y.explode(d.getTabFocus(r))).length&&(e[1]=e[0],e[0]=":prev"),o=n.shiftKey?":prev"===e[0]?u(-1):m.get(e[0]):":next"===e[1]?u(1):m.get(e[1]))){var t=c.get(o.id||o.name);o.id&&t?t.focus():a.setTimeout(function(){s.webkit||window.focus(),o.focus()},10),n.preventDefault()}function u(e){function t(t){return/INPUT|TEXTAREA|BUTTON/.test(t.tagName)&&c.get(n.id)&&-1!==t.tabIndex&&function e(t){return"BODY"===t.nodeName||"hidden"!==t.type&&"none"!==t.style.display&&"hidden"!==t.style.visibility&&e(t.parentNode)}(t)}if(o=m.select(":input:enabled,*[tabindex]:not(iframe)"),y.each(o,function(e,t){if(e.id===r.id)return i=t,!1}),0<e){for(l=i+1;l<o.length;l++)if(t(o[l]))return o[l]}else for(l=i-1;0<=l;l--)if(t(o[l]))return o[l];return null}}r.on("init",function(){r.inline&&m.setAttrib(r.getBody(),"tabIndex",null),r.on("keyup",n),s.gecko?r.on("keypress keydown",e):r.on("keydown",e)})};e.add("tabfocus",function(e){i(e)})}(); \ No newline at end of file diff --git a/wp-includes/js/tinymce/plugins/textcolor/plugin.js b/wp-includes/js/tinymce/plugins/textcolor/plugin.js index 61e4a5b9d..eb40c98e9 100644 --- a/wp-includes/js/tinymce/plugins/textcolor/plugin.js +++ b/wp-includes/js/tinymce/plugins/textcolor/plugin.js @@ -1,483 +1,346 @@ (function () { +var textcolor = (function () { + 'use strict'; -var defs = {}; // id -> {dependencies, definition, instance (possibly undefined)} + var global = tinymce.util.Tools.resolve('tinymce.PluginManager'); -// Used when there is no 'main' module. -// The name is probably (hopefully) unique so minification removes for releases. -var register_3795 = function (id) { - var module = dem(id); - var fragments = id.split('.'); - var target = Function('return this;')(); - for (var i = 0; i < fragments.length - 1; ++i) { - if (target[fragments[i]] === undefined) - target[fragments[i]] = {}; - target = target[fragments[i]]; - } - target[fragments[fragments.length - 1]] = module; -}; - -var instantiate = function (id) { - var actual = defs[id]; - var dependencies = actual.deps; - var definition = actual.defn; - var len = dependencies.length; - var instances = new Array(len); - for (var i = 0; i < len; ++i) - instances[i] = dem(dependencies[i]); - var defResult = definition.apply(null, instances); - if (defResult === undefined) - throw 'module [' + id + '] returned undefined'; - actual.instance = defResult; -}; - -var def = function (id, dependencies, definition) { - if (typeof id !== 'string') - throw 'module id must be a string'; - else if (dependencies === undefined) - throw 'no dependencies for ' + id; - else if (definition === undefined) - throw 'no definition function for ' + id; - defs[id] = { - deps: dependencies, - defn: definition, - instance: undefined + var getCurrentColor = function (editor, format) { + var color; + editor.dom.getParents(editor.selection.getStart(), function (elm) { + var value; + if (value = elm.style[format === 'forecolor' ? 'color' : 'background-color']) { + color = value; + } + }); + return color; }; -}; - -var dem = function (id) { - var actual = defs[id]; - if (actual === undefined) - throw 'module [' + id + '] was undefined'; - else if (actual.instance === undefined) - instantiate(id); - return actual.instance; -}; - -var req = function (ids, callback) { - var len = ids.length; - var instances = new Array(len); - for (var i = 0; i < len; ++i) - instances.push(dem(ids[i])); - callback.apply(null, callback); -}; - -var ephox = {}; - -ephox.bolt = { - module: { - api: { - define: def, - require: req, - demand: dem + var mapColors = function (colorMap) { + var i; + var colors = []; + for (i = 0; i < colorMap.length; i += 2) { + colors.push({ + text: colorMap[i + 1], + color: '#' + colorMap[i] + }); } - } -}; - -var define = def; -var require = req; -var demand = dem; -// this helps with minificiation when using a lot of global references -var defineGlobal = function (id, ref) { - define(id, [], function () { return ref; }); -}; -/*jsc -["tinymce.plugins.textcolor.Plugin","tinymce.core.dom.DOMUtils","tinymce.core.PluginManager","tinymce.core.util.I18n","tinymce.core.util.Tools","global!tinymce.util.Tools.resolve"] -jsc*/ -defineGlobal("global!tinymce.util.Tools.resolve", tinymce.util.Tools.resolve); -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.dom.DOMUtils', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.dom.DOMUtils'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.PluginManager', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.PluginManager'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.util.I18n', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.util.I18n'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.util.Tools', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.util.Tools'); - } -); - -/** - * Plugin.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -/** - * This class contains all core logic for the code plugin. - * - * @class tinymce.textcolor.Plugin - * @private - */ -define( - 'tinymce.plugins.textcolor.Plugin', - [ - 'tinymce.core.dom.DOMUtils', - 'tinymce.core.PluginManager', - 'tinymce.core.util.I18n', - 'tinymce.core.util.Tools' - ], - function (DOMUtils, PluginManager, I18n, Tools) { - var translate = I18n.translate; - - PluginManager.add('textcolor', function (editor) { - var cols, rows; - - rows = { - forecolor: editor.settings.forecolor_rows || editor.settings.textcolor_rows || 5, - backcolor: editor.settings.backcolor_rows || editor.settings.textcolor_rows || 5 - }; - cols = { - forecolor: editor.settings.forecolor_cols || editor.settings.textcolor_cols || 8, - backcolor: editor.settings.backcolor_cols || editor.settings.textcolor_cols || 8 - }; - - function getCurrentColor(format) { - var color; - - editor.dom.getParents(editor.selection.getStart(), function (elm) { - var value; - - if ((value = elm.style[format == 'forecolor' ? 'color' : 'background-color'])) { - color = value; - } - }); - - return color; - } - - function mapColors(type) { - var i, colors = [], colorMap; - - colorMap = [ - "000000", "Black", - "993300", "Burnt orange", - "333300", "Dark olive", - "003300", "Dark green", - "003366", "Dark azure", - "000080", "Navy Blue", - "333399", "Indigo", - "333333", "Very dark gray", - "800000", "Maroon", - "FF6600", "Orange", - "808000", "Olive", - "008000", "Green", - "008080", "Teal", - "0000FF", "Blue", - "666699", "Grayish blue", - "808080", "Gray", - "FF0000", "Red", - "FF9900", "Amber", - "99CC00", "Yellow green", - "339966", "Sea green", - "33CCCC", "Turquoise", - "3366FF", "Royal blue", - "800080", "Purple", - "999999", "Medium gray", - "FF00FF", "Magenta", - "FFCC00", "Gold", - "FFFF00", "Yellow", - "00FF00", "Lime", - "00FFFF", "Aqua", - "00CCFF", "Sky blue", - "993366", "Red violet", - "FFFFFF", "White", - "FF99CC", "Pink", - "FFCC99", "Peach", - "FFFF99", "Light yellow", - "CCFFCC", "Pale green", - "CCFFFF", "Pale cyan", - "99CCFF", "Light sky blue", - "CC99FF", "Plum" - ]; - - colorMap = editor.settings.textcolor_map || colorMap; - colorMap = editor.settings[type + '_map'] || colorMap; - - for (i = 0; i < colorMap.length; i += 2) { - colors.push({ - text: colorMap[i + 1], - color: '#' + colorMap[i] - }); - } - - return colors; - } - - function renderColorPicker() { - var self = this, colors, color, html, last, x, y, i, id = self._id, count = 0, type; - - type = self.settings.origin; - - function getColorCellHtml(color, title) { - var isNoColor = color == 'transparent'; - - return ( - '<td class="mce-grid-cell' + (isNoColor ? ' mce-colorbtn-trans' : '') + '">' + - '<div id="' + id + '-' + (count++) + '"' + - ' data-mce-color="' + (color ? color : '') + '"' + - ' role="option"' + - ' tabIndex="-1"' + - ' style="' + (color ? 'background-color: ' + color : '') + '"' + - ' title="' + translate(title) + '">' + - (isNoColor ? '×' : '') + - '</div>' + - '</td>' - ); - } - - colors = mapColors(type); - colors.push({ - text: translate("No color"), - color: "transparent" - }); - - html = '<table class="mce-grid mce-grid-border mce-colorbutton-grid" role="list" cellspacing="0"><tbody>'; - last = colors.length - 1; - - for (y = 0; y < rows[type]; y++) { - html += '<tr>'; - - for (x = 0; x < cols[type]; x++) { - i = y * cols[type] + x; - - if (i > last) { - html += '<td></td>'; - } else { - color = colors[i]; - html += getColorCellHtml(color.color, color.text); - } - } - - html += '</tr>'; - } - - if (editor.settings.color_picker_callback) { - html += ( - '<tr>' + - '<td colspan="' + cols[type] + '" class="mce-custom-color-btn">' + - '<div id="' + id + '-c" class="mce-widget mce-btn mce-btn-small mce-btn-flat" ' + - 'role="button" tabindex="-1" aria-labelledby="' + id + '-c" style="width: 100%">' + - '<button type="button" role="presentation" tabindex="-1">' + translate('Custom...') + '</button>' + - '</div>' + - '</td>' + - '</tr>' - ); - - html += '<tr>'; + return colors; + }; + var applyFormat = function (editor, format, value) { + editor.undoManager.transact(function () { + editor.focus(); + editor.formatter.apply(format, { value: value }); + editor.nodeChanged(); + }); + }; + var removeFormat = function (editor, format) { + editor.undoManager.transact(function () { + editor.focus(); + editor.formatter.remove(format, { value: null }, null, true); + editor.nodeChanged(); + }); + }; + var $_4zaeklqljfuw8rym = { + getCurrentColor: getCurrentColor, + mapColors: mapColors, + applyFormat: applyFormat, + removeFormat: removeFormat + }; - for (x = 0; x < cols[type]; x++) { - html += getColorCellHtml('', 'Custom color'); - } + var register = function (editor) { + editor.addCommand('mceApplyTextcolor', function (format, value) { + $_4zaeklqljfuw8rym.applyFormat(editor, format, value); + }); + editor.addCommand('mceRemoveTextcolor', function (format) { + $_4zaeklqljfuw8rym.removeFormat(editor, format); + }); + }; + var $_5bxwpcqkjfuw8ryl = { register: register }; + + var global$1 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils'); + + var global$2 = tinymce.util.Tools.resolve('tinymce.util.Tools'); + + var defaultColorMap = [ + '000000', + 'Black', + '993300', + 'Burnt orange', + '333300', + 'Dark olive', + '003300', + 'Dark green', + '003366', + 'Dark azure', + '000080', + 'Navy Blue', + '333399', + 'Indigo', + '333333', + 'Very dark gray', + '800000', + 'Maroon', + 'FF6600', + 'Orange', + '808000', + 'Olive', + '008000', + 'Green', + '008080', + 'Teal', + '0000FF', + 'Blue', + '666699', + 'Grayish blue', + '808080', + 'Gray', + 'FF0000', + 'Red', + 'FF9900', + 'Amber', + '99CC00', + 'Yellow green', + '339966', + 'Sea green', + '33CCCC', + 'Turquoise', + '3366FF', + 'Royal blue', + '800080', + 'Purple', + '999999', + 'Medium gray', + 'FF00FF', + 'Magenta', + 'FFCC00', + 'Gold', + 'FFFF00', + 'Yellow', + '00FF00', + 'Lime', + '00FFFF', + 'Aqua', + '00CCFF', + 'Sky blue', + '993366', + 'Red violet', + 'FFFFFF', + 'White', + 'FF99CC', + 'Pink', + 'FFCC99', + 'Peach', + 'FFFF99', + 'Light yellow', + 'CCFFCC', + 'Pale green', + 'CCFFFF', + 'Pale cyan', + '99CCFF', + 'Light sky blue', + 'CC99FF', + 'Plum' + ]; + var getTextColorMap = function (editor) { + return editor.getParam('textcolor_map', defaultColorMap); + }; + var getForeColorMap = function (editor) { + return editor.getParam('forecolor_map', getTextColorMap(editor)); + }; + var getBackColorMap = function (editor) { + return editor.getParam('backcolor_map', getTextColorMap(editor)); + }; + var getTextColorRows = function (editor) { + return editor.getParam('textcolor_rows', 5); + }; + var getTextColorCols = function (editor) { + return editor.getParam('textcolor_cols', 8); + }; + var getForeColorRows = function (editor) { + return editor.getParam('forecolor_rows', getTextColorRows(editor)); + }; + var getBackColorRows = function (editor) { + return editor.getParam('backcolor_rows', getTextColorRows(editor)); + }; + var getForeColorCols = function (editor) { + return editor.getParam('forecolor_cols', getTextColorCols(editor)); + }; + var getBackColorCols = function (editor) { + return editor.getParam('backcolor_cols', getTextColorCols(editor)); + }; + var getColorPickerCallback = function (editor) { + return editor.getParam('color_picker_callback', null); + }; + var hasColorPicker = function (editor) { + return typeof getColorPickerCallback(editor) === 'function'; + }; + var $_92xy2xqpjfuw8ryt = { + getForeColorMap: getForeColorMap, + getBackColorMap: getBackColorMap, + getForeColorRows: getForeColorRows, + getBackColorRows: getBackColorRows, + getForeColorCols: getForeColorCols, + getBackColorCols: getBackColorCols, + getColorPickerCallback: getColorPickerCallback, + hasColorPicker: hasColorPicker + }; - html += '</tr>'; + var global$3 = tinymce.util.Tools.resolve('tinymce.util.I18n'); + + var getHtml = function (cols, rows, colorMap, hasColorPicker) { + var colors, color, html, last, x, y, i, count = 0; + var id = global$1.DOM.uniqueId('mcearia'); + var getColorCellHtml = function (color, title) { + var isNoColor = color === 'transparent'; + return '<td class="mce-grid-cell' + (isNoColor ? ' mce-colorbtn-trans' : '') + '">' + '<div id="' + id + '-' + count++ + '"' + ' data-mce-color="' + (color ? color : '') + '"' + ' role="option"' + ' tabIndex="-1"' + ' style="' + (color ? 'background-color: ' + color : '') + '"' + ' title="' + global$3.translate(title) + '">' + (isNoColor ? '×' : '') + '</div>' + '</td>'; + }; + colors = $_4zaeklqljfuw8rym.mapColors(colorMap); + colors.push({ + text: global$3.translate('No color'), + color: 'transparent' + }); + html = '<table class="mce-grid mce-grid-border mce-colorbutton-grid" role="list" cellspacing="0"><tbody>'; + last = colors.length - 1; + for (y = 0; y < rows; y++) { + html += '<tr>'; + for (x = 0; x < cols; x++) { + i = y * cols + x; + if (i > last) { + html += '<td></td>'; + } else { + color = colors[i]; + html += getColorCellHtml(color.color, color.text); } - - html += '</tbody></table>'; - - return html; } - - function applyFormat(format, value) { - editor.undoManager.transact(function () { - editor.focus(); - editor.formatter.apply(format, { value: value }); - editor.nodeChanged(); - }); + html += '</tr>'; + } + if (hasColorPicker) { + html += '<tr>' + '<td colspan="' + cols + '" class="mce-custom-color-btn">' + '<div id="' + id + '-c" class="mce-widget mce-btn mce-btn-small mce-btn-flat" ' + 'role="button" tabindex="-1" aria-labelledby="' + id + '-c" style="width: 100%">' + '<button type="button" role="presentation" tabindex="-1">' + global$3.translate('Custom...') + '</button>' + '</div>' + '</td>' + '</tr>'; + html += '<tr>'; + for (x = 0; x < cols; x++) { + html += getColorCellHtml('', 'Custom color'); } + html += '</tr>'; + } + html += '</tbody></table>'; + return html; + }; + var $_2vokwrqqjfuw8ryv = { getHtml: getHtml }; - function removeFormat(format) { - editor.undoManager.transact(function () { - editor.focus(); - editor.formatter.remove(format, { value: null }, null, true); - editor.nodeChanged(); - }); + var setDivColor = function setDivColor(div, value) { + div.style.background = value; + div.setAttribute('data-mce-color', value); + }; + var onButtonClick = function (editor) { + return function (e) { + var ctrl = e.control; + if (ctrl._color) { + editor.execCommand('mceApplyTextcolor', ctrl.settings.format, ctrl._color); + } else { + editor.execCommand('mceRemoveTextcolor', ctrl.settings.format); } - - function onPanelClick(e) { - var buttonCtrl = this.parent(), value, type; - - type = buttonCtrl.settings.origin; - - function selectColor(value) { - buttonCtrl.hidePanel(); - buttonCtrl.color(value); - applyFormat(buttonCtrl.settings.format, value); - } - - function resetColor() { - buttonCtrl.hidePanel(); - buttonCtrl.resetColor(); - removeFormat(buttonCtrl.settings.format); - } - - function setDivColor(div, value) { - div.style.background = value; - div.setAttribute('data-mce-color', value); - } - - if (DOMUtils.DOM.getParent(e.target, '.mce-custom-color-btn')) { - buttonCtrl.hidePanel(); - - editor.settings.color_picker_callback.call(editor, function (value) { - var tableElm = buttonCtrl.panel.getEl().getElementsByTagName('table')[0]; - var customColorCells, div, i; - - customColorCells = Tools.map(tableElm.rows[tableElm.rows.length - 1].childNodes, function (elm) { - return elm.firstChild; - }); - - for (i = 0; i < customColorCells.length; i++) { - div = customColorCells[i]; - if (!div.getAttribute('data-mce-color')) { - break; - } - } - - // Shift colors to the right - // TODO: Might need to be the left on RTL - if (i == cols[type]) { - for (i = 0; i < cols[type] - 1; i++) { - setDivColor(customColorCells[i], customColorCells[i + 1].getAttribute('data-mce-color')); - } + }; + }; + var onPanelClick = function (editor, cols) { + return function (e) { + var buttonCtrl = this.parent(); + var value; + var currentColor = $_4zaeklqljfuw8rym.getCurrentColor(editor, buttonCtrl.settings.format); + var selectColor = function (value) { + buttonCtrl.hidePanel(); + buttonCtrl.color(value); + editor.execCommand('mceApplyTextcolor', buttonCtrl.settings.format, value); + }; + var resetColor = function () { + buttonCtrl.hidePanel(); + buttonCtrl.resetColor(); + editor.execCommand('mceRemoveTextcolor', buttonCtrl.settings.format); + }; + if (global$1.DOM.getParent(e.target, '.mce-custom-color-btn')) { + buttonCtrl.hidePanel(); + var colorPickerCallback = $_92xy2xqpjfuw8ryt.getColorPickerCallback(editor); + colorPickerCallback.call(editor, function (value) { + var tableElm = buttonCtrl.panel.getEl().getElementsByTagName('table')[0]; + var customColorCells, div, i; + customColorCells = global$2.map(tableElm.rows[tableElm.rows.length - 1].childNodes, function (elm) { + return elm.firstChild; + }); + for (i = 0; i < customColorCells.length; i++) { + div = customColorCells[i]; + if (!div.getAttribute('data-mce-color')) { + break; } - - setDivColor(div, value); - selectColor(value); - }, getCurrentColor(buttonCtrl.settings.format)); - } - - value = e.target.getAttribute('data-mce-color'); - if (value) { - if (this.lastId) { - document.getElementById(this.lastId).setAttribute('aria-selected', false); } - - e.target.setAttribute('aria-selected', true); - this.lastId = e.target.id; - - if (value == 'transparent') { - resetColor(); - } else { - selectColor(value); + if (i === cols) { + for (i = 0; i < cols - 1; i++) { + setDivColor(customColorCells[i], customColorCells[i + 1].getAttribute('data-mce-color')); + } } - } else if (value !== null) { - buttonCtrl.hidePanel(); - } + setDivColor(div, value); + selectColor(value); + }, currentColor); } - - function onButtonClick() { - var self = this; - - if (self._color) { - applyFormat(self.settings.format, self._color); + value = e.target.getAttribute('data-mce-color'); + if (value) { + if (this.lastId) { + global$1.DOM.get(this.lastId).setAttribute('aria-selected', 'false'); + } + e.target.setAttribute('aria-selected', true); + this.lastId = e.target.id; + if (value === 'transparent') { + resetColor(); } else { - removeFormat(self.settings.format); + selectColor(value); } + } else if (value !== null) { + buttonCtrl.hidePanel(); } - - editor.addButton('forecolor', { - type: 'colorbutton', - tooltip: 'Text color', - format: 'forecolor', - panel: { - origin: 'forecolor', - role: 'application', - ariaRemember: true, - html: renderColorPicker, - onclick: onPanelClick - }, - onclick: onButtonClick - }); - - editor.addButton('backcolor', { - type: 'colorbutton', - tooltip: 'Background color', - format: 'hilitecolor', - panel: { - origin: 'backcolor', - role: 'application', - ariaRemember: true, - html: renderColorPicker, - onclick: onPanelClick - }, - onclick: onButtonClick - }); + }; + }; + var renderColorPicker = function (editor, foreColor) { + return function () { + var cols = foreColor ? $_92xy2xqpjfuw8ryt.getForeColorCols(editor) : $_92xy2xqpjfuw8ryt.getBackColorCols(editor); + var rows = foreColor ? $_92xy2xqpjfuw8ryt.getForeColorRows(editor) : $_92xy2xqpjfuw8ryt.getBackColorRows(editor); + var colorMap = foreColor ? $_92xy2xqpjfuw8ryt.getForeColorMap(editor) : $_92xy2xqpjfuw8ryt.getBackColorMap(editor); + var hasColorPicker = $_92xy2xqpjfuw8ryt.hasColorPicker(editor); + return $_2vokwrqqjfuw8ryv.getHtml(cols, rows, colorMap, hasColorPicker); + }; + }; + var register$1 = function (editor) { + editor.addButton('forecolor', { + type: 'colorbutton', + tooltip: 'Text color', + format: 'forecolor', + panel: { + role: 'application', + ariaRemember: true, + html: renderColorPicker(editor, true), + onclick: onPanelClick(editor, $_92xy2xqpjfuw8ryt.getForeColorCols(editor)) + }, + onclick: onButtonClick(editor) }); + editor.addButton('backcolor', { + type: 'colorbutton', + tooltip: 'Background color', + format: 'hilitecolor', + panel: { + role: 'application', + ariaRemember: true, + html: renderColorPicker(editor, false), + onclick: onPanelClick(editor, $_92xy2xqpjfuw8ryt.getBackColorCols(editor)) + }, + onclick: onButtonClick(editor) + }); + }; + var $_f806lqqmjfuw8ryo = { register: register$1 }; - return function () { }; + global.add('textcolor', function (editor) { + $_5bxwpcqkjfuw8ryl.register(editor); + $_f806lqqmjfuw8ryo.register(editor); + }); + function Plugin () { } -); -dem('tinymce.plugins.textcolor.Plugin')(); + + return Plugin; + +}()); })(); diff --git a/wp-includes/js/tinymce/plugins/textcolor/plugin.min.js b/wp-includes/js/tinymce/plugins/textcolor/plugin.min.js index 4b2f012c0..2d7e337ac 100644 --- a/wp-includes/js/tinymce/plugins/textcolor/plugin.min.js +++ b/wp-includes/js/tinymce/plugins/textcolor/plugin.min.js @@ -1 +1 @@ -!function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("5",tinymce.util.Tools.resolve),g("1",["5"],function(a){return a("tinymce.dom.DOMUtils")}),g("2",["5"],function(a){return a("tinymce.PluginManager")}),g("3",["5"],function(a){return a("tinymce.util.I18n")}),g("4",["5"],function(a){return a("tinymce.util.Tools")}),g("0",["1","2","3","4"],function(a,b,c,d){var e=c.translate;return b.add("textcolor",function(b){function c(a){var c;return b.dom.getParents(b.selection.getStart(),function(b){var d;(d=b.style["forecolor"==a?"color":"background-color"])&&(c=d)}),c}function f(a){var c,d,e=[];for(d=["000000","Black","993300","Burnt orange","333300","Dark olive","003300","Dark green","003366","Dark azure","000080","Navy Blue","333399","Indigo","333333","Very dark gray","800000","Maroon","FF6600","Orange","808000","Olive","008000","Green","008080","Teal","0000FF","Blue","666699","Grayish blue","808080","Gray","FF0000","Red","FF9900","Amber","99CC00","Yellow green","339966","Sea green","33CCCC","Turquoise","3366FF","Royal blue","800080","Purple","999999","Medium gray","FF00FF","Magenta","FFCC00","Gold","FFFF00","Yellow","00FF00","Lime","00FFFF","Aqua","00CCFF","Sky blue","993366","Red violet","FFFFFF","White","FF99CC","Pink","FFCC99","Peach","FFFF99","Light yellow","CCFFCC","Pale green","CCFFFF","Pale cyan","99CCFF","Light sky blue","CC99FF","Plum"],d=b.settings.textcolor_map||d,d=b.settings[a+"_map"]||d,c=0;c<d.length;c+=2)e.push({text:d[c+1],color:"#"+d[c]});return e}function g(){function a(a,b){var c="transparent"==a;return'<td class="mce-grid-cell'+(c?" mce-colorbtn-trans":"")+'"><div id="'+p+"-"+q++ +'" data-mce-color="'+(a?a:"")+'" role="option" tabIndex="-1" style="'+(a?"background-color: "+a:"")+'" title="'+e(b)+'">'+(c?"×":"")+"</div></td>"}var c,d,g,h,i,j,k,n,o=this,p=o._id,q=0;for(n=o.settings.origin,c=f(n),c.push({text:e("No color"),color:"transparent"}),g='<table class="mce-grid mce-grid-border mce-colorbutton-grid" role="list" cellspacing="0"><tbody>',h=c.length-1,j=0;j<m[n];j++){for(g+="<tr>",i=0;i<l[n];i++)k=j*l[n]+i,k>h?g+="<td></td>":(d=c[k],g+=a(d.color,d.text));g+="</tr>"}if(b.settings.color_picker_callback){for(g+='<tr><td colspan="'+l[n]+'" class="mce-custom-color-btn"><div id="'+p+'-c" class="mce-widget mce-btn mce-btn-small mce-btn-flat" role="button" tabindex="-1" aria-labelledby="'+p+'-c" style="width: 100%"><button type="button" role="presentation" tabindex="-1">'+e("Custom...")+"</button></div></td></tr>",g+="<tr>",i=0;i<l[n];i++)g+=a("","Custom color");g+="</tr>"}return g+="</tbody></table>"}function h(a,c){b.undoManager.transact(function(){b.focus(),b.formatter.apply(a,{value:c}),b.nodeChanged()})}function i(a){b.undoManager.transact(function(){b.focus(),b.formatter.remove(a,{value:null},null,!0),b.nodeChanged()})}function j(e){function f(a){n.hidePanel(),n.color(a),h(n.settings.format,a)}function g(){n.hidePanel(),n.resetColor(),i(n.settings.format)}function j(a,b){a.style.background=b,a.setAttribute("data-mce-color",b)}var k,m,n=this.parent();m=n.settings.origin,a.DOM.getParent(e.target,".mce-custom-color-btn")&&(n.hidePanel(),b.settings.color_picker_callback.call(b,function(a){var b,c,e,g=n.panel.getEl().getElementsByTagName("table")[0];for(b=d.map(g.rows[g.rows.length-1].childNodes,function(a){return a.firstChild}),e=0;e<b.length&&(c=b[e],c.getAttribute("data-mce-color"));e++);if(e==l[m])for(e=0;e<l[m]-1;e++)j(b[e],b[e+1].getAttribute("data-mce-color"));j(c,a),f(a)},c(n.settings.format))),k=e.target.getAttribute("data-mce-color"),k?(this.lastId&&document.getElementById(this.lastId).setAttribute("aria-selected",!1),e.target.setAttribute("aria-selected",!0),this.lastId=e.target.id,"transparent"==k?g():f(k)):null!==k&&n.hidePanel()}function k(){var a=this;a._color?h(a.settings.format,a._color):i(a.settings.format)}var l,m;m={forecolor:b.settings.forecolor_rows||b.settings.textcolor_rows||5,backcolor:b.settings.backcolor_rows||b.settings.textcolor_rows||5},l={forecolor:b.settings.forecolor_cols||b.settings.textcolor_cols||8,backcolor:b.settings.backcolor_cols||b.settings.textcolor_cols||8},b.addButton("forecolor",{type:"colorbutton",tooltip:"Text color",format:"forecolor",panel:{origin:"forecolor",role:"application",ariaRemember:!0,html:g,onclick:j},onclick:k}),b.addButton("backcolor",{type:"colorbutton",tooltip:"Background color",format:"hilitecolor",panel:{origin:"backcolor",role:"application",ariaRemember:!0,html:g,onclick:j},onclick:k})}),function(){}}),d("0")()}(); \ No newline at end of file +!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager"),n=function(t,o){var r;return t.dom.getParents(t.selection.getStart(),function(t){var e;(e=t.style["forecolor"===o?"color":"background-color"])&&(r=e)}),r},g=function(t){var e,o=[];for(e=0;e<t.length;e+=2)o.push({text:t[e+1],color:"#"+t[e]});return o},r=function(t,e,o){t.undoManager.transact(function(){t.focus(),t.formatter.apply(e,{value:o}),t.nodeChanged()})},e=function(t,e){t.undoManager.transact(function(){t.focus(),t.formatter.remove(e,{value:null},null,!0),t.nodeChanged()})},o=function(o){o.addCommand("mceApplyTextcolor",function(t,e){r(o,t,e)}),o.addCommand("mceRemoveTextcolor",function(t){e(o,t)})},F=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),i=tinymce.util.Tools.resolve("tinymce.util.Tools"),a=["000000","Black","993300","Burnt orange","333300","Dark olive","003300","Dark green","003366","Dark azure","000080","Navy Blue","333399","Indigo","333333","Very dark gray","800000","Maroon","FF6600","Orange","808000","Olive","008000","Green","008080","Teal","0000FF","Blue","666699","Grayish blue","808080","Gray","FF0000","Red","FF9900","Amber","99CC00","Yellow green","339966","Sea green","33CCCC","Turquoise","3366FF","Royal blue","800080","Purple","999999","Medium gray","FF00FF","Magenta","FFCC00","Gold","FFFF00","Yellow","00FF00","Lime","00FFFF","Aqua","00CCFF","Sky blue","993366","Red violet","FFFFFF","White","FF99CC","Pink","FFCC99","Peach","FFFF99","Light yellow","CCFFCC","Pale green","CCFFFF","Pale cyan","99CCFF","Light sky blue","CC99FF","Plum"],l=function(t){return t.getParam("textcolor_map",a)},c=function(t){return t.getParam("textcolor_rows",5)},u=function(t){return t.getParam("textcolor_cols",8)},m=function(t){return t.getParam("color_picker_callback",null)},s=function(t){return t.getParam("forecolor_map",l(t))},d=function(t){return t.getParam("backcolor_map",l(t))},f=function(t){return t.getParam("forecolor_rows",c(t))},b=function(t){return t.getParam("backcolor_rows",c(t))},p=function(t){return t.getParam("forecolor_cols",u(t))},C=function(t){return t.getParam("backcolor_cols",u(t))},y=m,v=function(t){return"function"==typeof m(t)},h=tinymce.util.Tools.resolve("tinymce.util.I18n"),P=function(t,e,o,r){var n,a,l,c,i,u,m,s=0,d=F.DOM.uniqueId("mcearia"),f=function(t,e){var o="transparent"===t;return'<td class="mce-grid-cell'+(o?" mce-colorbtn-trans":"")+'"><div id="'+d+"-"+s+++'" data-mce-color="'+(t||"")+'" role="option" tabIndex="-1" style="'+(t?"background-color: "+t:"")+'" title="'+h.translate(e)+'">'+(o?"×":"")+"</div></td>"};for((n=g(o)).push({text:h.translate("No color"),color:"transparent"}),l='<table class="mce-grid mce-grid-border mce-colorbutton-grid" role="list" cellspacing="0"><tbody>',c=n.length-1,u=0;u<e;u++){for(l+="<tr>",i=0;i<t;i++)l+=c<(m=u*t+i)?"<td></td>":f((a=n[m]).color,a.text);l+="</tr>"}if(r){for(l+='<tr><td colspan="'+t+'" class="mce-custom-color-btn"><div id="'+d+'-c" class="mce-widget mce-btn mce-btn-small mce-btn-flat" role="button" tabindex="-1" aria-labelledby="'+d+'-c" style="width: 100%"><button type="button" role="presentation" tabindex="-1">'+h.translate("Custom...")+"</button></div></td></tr>",l+="<tr>",i=0;i<t;i++)l+=f("","Custom color");l+="</tr>"}return l+="</tbody></table>"},k=function(t,e){t.style.background=e,t.setAttribute("data-mce-color",e)},x=function(o){return function(t){var e=t.control;e._color?o.execCommand("mceApplyTextcolor",e.settings.format,e._color):o.execCommand("mceRemoveTextcolor",e.settings.format)}},T=function(r,c){return function(t){var e,a=this.parent(),o=n(r,a.settings.format),l=function(t){a.hidePanel(),a.color(t),r.execCommand("mceApplyTextcolor",a.settings.format,t)};F.DOM.getParent(t.target,".mce-custom-color-btn")&&(a.hidePanel(),y(r).call(r,function(t){var e,o,r,n=a.panel.getEl().getElementsByTagName("table")[0];for(e=i.map(n.rows[n.rows.length-1].childNodes,function(t){return t.firstChild}),r=0;r<e.length&&(o=e[r]).getAttribute("data-mce-color");r++);if(r===c)for(r=0;r<c-1;r++)k(e[r],e[r+1].getAttribute("data-mce-color"));k(o,t),l(t)},o)),(e=t.target.getAttribute("data-mce-color"))?(this.lastId&&F.DOM.get(this.lastId).setAttribute("aria-selected","false"),t.target.setAttribute("aria-selected",!0),this.lastId=t.target.id,"transparent"===e?(a.hidePanel(),a.resetColor(),r.execCommand("mceRemoveTextcolor",a.settings.format)):l(e)):null!==e&&a.hidePanel()}},_=function(n,a){return function(){var t=a?p(n):C(n),e=a?f(n):b(n),o=a?s(n):d(n),r=v(n);return P(t,e,o,r)}},A=function(t){t.addButton("forecolor",{type:"colorbutton",tooltip:"Text color",format:"forecolor",panel:{role:"application",ariaRemember:!0,html:_(t,!0),onclick:T(t,p(t))},onclick:x(t)}),t.addButton("backcolor",{type:"colorbutton",tooltip:"Background color",format:"hilitecolor",panel:{role:"application",ariaRemember:!0,html:_(t,!1),onclick:T(t,C(t))},onclick:x(t)})};t.add("textcolor",function(t){o(t),A(t)})}(); \ No newline at end of file diff --git a/wp-includes/js/tinymce/skins/lightgray/content.inline.min.css b/wp-includes/js/tinymce/skins/lightgray/content.inline.min.css index 95f513b5f..8b9f10ccf 100644 --- a/wp-includes/js/tinymce/skins/lightgray/content.inline.min.css +++ b/wp-includes/js/tinymce/skins/lightgray/content.inline.min.css @@ -1 +1 @@ -.word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid #F00;cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data-mce-selected],th[data-mce-selected]{background-color:#3399ff !important}.mce-edit-focus{outline:1px dotted #333}.mce-resize-bar-dragging{background-color:blue;opacity:.25;filter:alpha(opacity=25);zoom:1}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2d8ac7}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #7ACAFF}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2d8ac7}.mce-content-body a[data-mce-selected],.mce-content-body code[data-mce-selected],.mce-content-body b[data-mce-selected],.mce-content-body i[data-mce-selected],.mce-content-body em[data-mce-selected],.mce-content-body strong[data-mce-selected],.mce-content-body sup[data-mce-selected],.mce-content-body sub[data-mce-selected]{background:#bfe6ff}.mce-content-body hr{cursor:default}.mce-content-body{line-height:1.3} \ No newline at end of file +.word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid rgba(208,2,27,0.5);cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data-mce-selected],th[data-mce-selected]{background-color:#2276d2 !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2276d2}.mce-content-body *[data-mce-selected="inline-boundary"]{background:#bfe6ff}.mce-content-body .mce-item-anchor[data-mce-selected]{background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-content-body hr{cursor:default}.mce-content-body table{-webkit-nbsp-mode:normal}.ephox-snooker-resizer-bar{background-color:#2276d2;opacity:0}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:.2}.mce-content-body{line-height:1.3} \ No newline at end of file diff --git a/wp-includes/js/tinymce/skins/lightgray/content.min.css b/wp-includes/js/tinymce/skins/lightgray/content.min.css index 6e8ee9366..b3006d2b1 100644 --- a/wp-includes/js/tinymce/skins/lightgray/content.min.css +++ b/wp-includes/js/tinymce/skins/lightgray/content.min.css @@ -1 +1 @@ -body{background-color:#FFFFFF;color:#000000;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px;line-height:1.3;scrollbar-3dlight-color:#F0F0EE;scrollbar-arrow-color:#676662;scrollbar-base-color:#F0F0EE;scrollbar-darkshadow-color:#DDDDDD;scrollbar-face-color:#E0E0DD;scrollbar-highlight-color:#F0F0EE;scrollbar-shadow-color:#F0F0EE;scrollbar-track-color:#F5F5F5}td,th{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px}.word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid #F00;cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data-mce-selected],th[data-mce-selected]{background-color:#3399ff !important}.mce-edit-focus{outline:1px dotted #333}.mce-resize-bar-dragging{background-color:blue;opacity:.25;filter:alpha(opacity=25);zoom:1}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2d8ac7}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #7ACAFF}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2d8ac7}.mce-content-body a[data-mce-selected],.mce-content-body code[data-mce-selected],.mce-content-body b[data-mce-selected],.mce-content-body i[data-mce-selected],.mce-content-body em[data-mce-selected],.mce-content-body strong[data-mce-selected],.mce-content-body sup[data-mce-selected],.mce-content-body sub[data-mce-selected]{background:#bfe6ff}.mce-content-body hr{cursor:default} \ No newline at end of file +body{background-color:#FFFFFF;color:#000000;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px;line-height:1.3;scrollbar-3dlight-color:#F0F0EE;scrollbar-arrow-color:#676662;scrollbar-base-color:#F0F0EE;scrollbar-darkshadow-color:#DDDDDD;scrollbar-face-color:#E0E0DD;scrollbar-highlight-color:#F0F0EE;scrollbar-shadow-color:#F0F0EE;scrollbar-track-color:#F5F5F5}td,th{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px}.word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid rgba(208,2,27,0.5);cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data-mce-selected],th[data-mce-selected]{background-color:#2276d2 !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2276d2}.mce-content-body *[data-mce-selected="inline-boundary"]{background:#bfe6ff}.mce-content-body .mce-item-anchor[data-mce-selected]{background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-content-body hr{cursor:default}.mce-content-body table{-webkit-nbsp-mode:normal}.ephox-snooker-resizer-bar{background-color:#2276d2;opacity:0}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:.2} \ No newline at end of file diff --git a/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.eot b/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.eot index f99c13f32f5c968849f08a3d8a399157bfb0cccb..5336c38ff5206392d145d4feb00cd19b10e5614d 100644 GIT binary patch delta 5962 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 agg%45ih31wD27`r)n5`FwUyCt;(r15SK6Hb delta 4753 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 diff --git a/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.svg b/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.svg index 5727cea42..9fa215f3d 100644 --- a/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.svg +++ b/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.svg @@ -79,7 +79,7 @@ <glyph unicode="" glyph-name="tabledeleterow" d="M886.4 572.8l-156.8-156.8 160-160-76.8-76.8-160 160-156.8-156.8-76.8 73.6 160 160-163.2 163.2 76.8 76.8 163.2-163.2 156.8 156.8 73.6-76.8zM0 896v-896h1024v896h-1024zM960 576h-22.4l-64-64h86.4v-192h-89.6l64-64h25.6v-192h-896v192h310.4l64 64h-374.4v192h371.2l-64 64h-307.2v192h896v-192z" /> <glyph unicode="" glyph-name="tabledeletecol" d="M320 499.2l64-64v-12.8l-64-64v140.8zM640 422.4l64-64v137.6l-64-64v-9.6zM1024 896v-896h-1024v896h1024zM960 768h-256v-51.2l-12.8 12.8-51.2-51.2v89.6h-256v-89.6l-51.2 51.2-12.8-12.8v51.2h-256v-704h256v118.4l35.2-35.2 28.8 28.8v-115.2h256v115.2l48-48 16 16v-83.2h256v707.2zM672 662.4l-156.8-156.8-163.2 163.2-76.8-76.8 163.2-163.2-156.8-156.8 76.8-76.8 156.8 156.8 160-160 76.8 76.8-160 160 156.8 156.8-76.8 76.8z" /> <glyph unicode="" glyph-name="a11y" d="M960 704v64l-448-128-448 128v-64l320-128v-256l-128-448h64l192 448 192-448h64l-128 448v256zM416 800q0 40 28 68t68 28 68-28 28-68-28-68-68-28-68 28-28 68z" /> -<glyph unicode="" glyph-name="toc" d="M0 896h128v-128h-128v128zM192 896h832v-128h-832v128zM192 704h128v-128h-128v128zM384 704h640v-128h-640v128zM384 512h128v-128h-128v128zM576 512h448v-128h-448v128zM0 320h128v-128h-128v128zM192 320h832v-128h-832v128zM192 128h128v-128h-128v128zM384 128h640v-128h-640v128z" /> +<glyph unicode="" glyph-name="toc" d="M0 896h128v-128h-128v128zM192 896h832v-128h-832v128zM0 512h128v-128h-128v128zM192 512h832v-128h-832v128zM0 128h128v-128h-128v128zM192 128h832v-128h-832v128zM192 704h128v-128h-128v128zM384 704h640v-128h-640v128zM192 320h128v-128h-128v128zM384 320h640v-128h-640v128z" /> <glyph unicode="" glyph-name="fill" d="M521.6 915.2l-67.2-67.2-86.4 86.4-86.4-86.4 86.4-86.4-368-368 432-432 518.4 518.4-428.8 435.2zM435.2 134.4l-262.4 262.4 35.2 35.2 576 51.2-348.8-348.8zM953.6 409.6c-6.4-6.4-16-16-28.8-32-28.8-32-41.6-64-41.6-89.6v0 0 0 0 0 0 0c0-16 6.4-35.2 22.4-48 12.8-12.8 32-22.4 48-22.4s35.2 6.4 48 22.4 22.4 32 22.4 48v0 0 0 0 0 0 0c0 25.6-12.8 54.4-41.6 89.6-9.6 16-22.4 25.6-28.8 32v0z" /> <glyph unicode="" glyph-name="borderwidth" d="M0 265.6h1024v-128h-1024v128zM0 32h1024v-64h-1024v64zM0 566.4h1024v-192h-1024v192zM0 928h1024v-256h-1024v256z" /> <glyph unicode="" glyph-name="line" d="M739.2 627.2l-502.4-502.4h-185.6v185.6l502.4 502.4 185.6-185.6zM803.2 688l-185.6 185.6 67.2 67.2c22.4 22.4 54.4 22.4 76.8 0l108.8-108.8c22.4-22.4 22.4-54.4 0-76.8l-67.2-67.2zM41.6 48h940.8v-112h-940.8v112z" /> diff --git a/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.ttf b/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.ttf index 16536bfd7a292e7090b9d4e0ae61061da9bc042f..61a48a511c224a81c89a7fb1d8101f9f16fbfd13 100644 GIT binary patch delta 5896 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 delta 4663 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 Tjs;|8?hq1-nY@{rw$u1uS?qyg diff --git a/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.woff b/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.woff index 74b50f4c3001da7fdfffd8638213dcf1a396da78..aace5d9c5c14e60c934cdb1a146fe468730eb4e3 100644 GIT binary patch delta 5851 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 Z2R%XP-_RFOx5f@laM#lE<D=ie{|ma{(z^fv delta 4648 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 D4OW2& diff --git a/wp-includes/js/tinymce/skins/lightgray/skin.min.css b/wp-includes/js/tinymce/skins/lightgray/skin.min.css index 9698826ff..bb3312a41 100644 --- a/wp-includes/js/tinymce/skins/lightgray/skin.min.css +++ b/wp-includes/js/tinymce/skins/lightgray/skin.min.css @@ -1 +1 @@ -.mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:inherit !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid rgba(0,0,0,0.2);width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#D9D9D9}.mce-grid td.mce-grid-cell div{border:1px solid #d6d6d6;width:15px;height:15px;margin:0;cursor:pointer}.mce-grid td.mce-grid-cell div:focus{border-color:#3498db}.mce-grid td.mce-grid-cell div[disabled]{cursor:not-allowed}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#3498db}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#d6d6d6;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#3498db;background:#3498db}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%}.mce-colorbtn-trans div{text-align:center;vertical-align:middle;font-weight:bold;font-size:20px;line-height:16px;color:#707070}.mce-monospace{font-family:"Courier New",Courier,monospace}.mce-toolbar-grp{padding:2px 0}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-container b{font-weight:bold}.mce-container p{margin-bottom:5px}.mce-container a{cursor:pointer;color:#2980b9}.mce-container a:hover{text-decoration:underline}.mce-container ul{margin-left:15px}.mce-container .mce-table-striped{border-collapse:collapse;margin:10px}.mce-container .mce-table-striped thead>tr{background-color:#fafafa}.mce-container .mce-table-striped thead>tr th{font-weight:bold}.mce-container .mce-table-striped td,.mce-container .mce-table-striped th{padding:5px}.mce-container .mce-table-striped tr:nth-child(even){background-color:#fafafa}.mce-container .mce-table-striped tbody>tr:hover{background-color:#e1e1e1}.mce-branding-powered-by{background-color:#f0f0f0;position:absolute;right:0;bottom:0;width:91px;height:9px;margin-right:-1px;margin-bottom:-1px;border:1px solid #c5c5c5;border-width:1px 1px 0 1px;padding:6px 6px 0 6px;background-image:url('data:image/gif;base64,R0lGODlhXwAJAIABAIiIiAAAACH5BAEKAAEALAAAAABfAAkAAAJxhBGpy+2PUnzqGNpmPNJqDIZSJY4m+KXLF3At2V6xPFfuvMF6J6fINTnhTr9XcaRC6pKvFYlZjDIszaXRSA3ijlXo9AlWindaldSJthJ55XAz6+ZWbVCOdojP77p8J8vlUSI4SHEnaEiYqOhARdhIWAAAOw');background-repeat:no-repeat;background-position:center center}.mce-croprect-container{position:absolute;top:0;left:0}.mce-croprect-handle{position:absolute;top:0;left:0;width:20px;height:20px;border:2px solid white}.mce-croprect-handle-nw{border-width:2px 0 0 2px;margin:-2px 0 0 -2px;cursor:nw-resize;top:100px;left:100px}.mce-croprect-handle-ne{border-width:2px 2px 0 0;margin:-2px 0 0 -20px;cursor:ne-resize;top:100px;left:200px}.mce-croprect-handle-sw{border-width:0 0 2px 2px;margin:-20px 2px 0 -2px;cursor:sw-resize;top:200px;left:100px}.mce-croprect-handle-se{border-width:0 2px 2px 0;margin:-20px 0 0 -20px;cursor:se-resize;top:200px;left:200px}.mce-croprect-handle-move{position:absolute;cursor:move;border:0}.mce-croprect-block{opacity:.3;filter:alpha(opacity=30);zoom:1;position:absolute;background:black}.mce-croprect-handle:focus{border-color:#3498db}.mce-croprect-handle-move:focus{outline:1px solid #3498db}.mce-imagepanel{overflow:auto;background:black}.mce-imagepanel-bg{position:absolute;background:url('data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==')}.mce-imagepanel img{position:absolute}.mce-imagetool.mce-btn .mce-ico{display:block;width:20px;height:20px;text-align:center;line-height:20px;font-size:20px;padding:5px}.mce-arrow-up{margin-top:12px}.mce-arrow-down{margin-top:-12px}.mce-arrow:before,.mce-arrow:after{position:absolute;left:50%;display:block;width:0;height:0;border-style:solid;border-color:transparent;content:""}.mce-arrow.mce-arrow-up:before{top:-9px;border-bottom-color:rgba(0,0,0,0.2);border-width:0 9px 9px;margin-left:-9px}.mce-arrow.mce-arrow-down:before{bottom:-9px;border-top-color:rgba(0,0,0,0.2);border-width:9px 9px 0;margin-left:-9px}.mce-arrow.mce-arrow-up:after{top:-8px;border-bottom-color:#f0f0f0;border-width:0 8px 8px;margin-left:-8px}.mce-arrow.mce-arrow-down:after{bottom:-8px;border-top-color:#f0f0f0;border-width:8px 8px 0;margin-left:-8px}.mce-arrow.mce-arrow-left:before,.mce-arrow.mce-arrow-left:after{margin:0}.mce-arrow.mce-arrow-left:before{left:8px}.mce-arrow.mce-arrow-left:after{left:9px}.mce-arrow.mce-arrow-right:before,.mce-arrow.mce-arrow-right:after{left:auto;margin:0}.mce-arrow.mce-arrow-right:before{right:8px}.mce-arrow.mce-arrow-right:after{right:9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left:before{left:-9px;top:50%;border-right-color:rgba(0,0,0,0.2);border-width:9px 9px 9px 0;margin-top:-9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left:after{left:-8px;top:50%;border-right-color:#f0f0f0;border-width:8px 8px 8px 0;margin-top:-8px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left{margin-left:12px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right:before{right:-9px;top:50%;border-left-color:rgba(0,0,0,0.2);border-width:9px 0 9px 9px;margin-top:-9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right:after{right:-8px;top:50%;border-left-color:#f0f0f0;border-width:8px 0 8px 8px;margin-top:-8px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right{margin-left:-14px}.mce-edit-aria-container>.mce-container-body{display:flex}.mce-edit-aria-container>.mce-container-body .mce-edit-area{flex:1}.mce-edit-aria-container>.mce-container-body .mce-sidebar>.mce-container-body{display:flex;align-items:stretch;height:100%}.mce-edit-aria-container>.mce-container-body .mce-sidebar-panel{min-width:250px;max-width:250px;position:relative}.mce-edit-aria-container>.mce-container-body .mce-sidebar-panel>.mce-container-body{position:absolute;width:100%;height:100%;overflow:auto;top:0;left:0}.mce-sidebar-toolbar{border:0 solid rgba(0,0,0,0.2);border-left-width:1px}.mce-sidebar-toolbar .mce-btn.mce-active,.mce-sidebar-toolbar .mce-btn.mce-active:hover{border:1px solid transparent;border-color:transparent;background-color:#2d8ac7}.mce-sidebar-toolbar .mce-btn.mce-active button,.mce-sidebar-toolbar .mce-btn.mce-active:hover button,.mce-sidebar-toolbar .mce-btn.mce-active button i,.mce-sidebar-toolbar .mce-btn.mce-active:hover button i{color:#fff;text-shadow:1px 1px none}.mce-sidebar-panel{border:0 solid rgba(0,0,0,0.2);border-left-width:1px}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1}.mce-scroll{position:relative}.mce-panel{border:0 solid #cacaca;border:0 solid rgba(0,0,0,0.2);background-color:#f0f0f0}.mce-floatpanel{position:absolute}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;top:0;left:0;background:#FFF;border:1px solid rgba(0,0,0,0.2);border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:rgba(0,0,0,0.2);border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#FFF}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#FFF;position:fixed;top:0;left:0;opacity:0;transform:scale(.1);transition:transform 100ms ease-in,opacity 150ms ease-in}.mce-window.mce-in{transform:scale(1);opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mce-window-head .mce-close{position:absolute;right:0;top:0;height:38px;width:38px;text-align:center;cursor:pointer}.mce-window-head .mce-close i{color:#858585}.mce-close:hover i{color:#adadad}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:20px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#FFF;border-top:1px solid #c5c5c5}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window-body .mce-listbox{border-color:#ccc}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:white;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-ne,.mce-tooltip-se{margin-left:14px}.mce-tooltip-n .mce-tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-progress{display:inline-block;position:relative;height:20px}.mce-progress .mce-bar-container{display:inline-block;width:100px;height:100%;margin-right:8px;border:1px solid #ccc;overflow:hidden}.mce-progress .mce-text{display:inline-block;margin-top:auto;margin-bottom:auto;font-size:14px;width:40px;color:#333}.mce-bar{display:block;width:0;height:100%;background-color:#d7d7d7;-webkit-transition:width .2s ease;transition:width .2s ease}.mce-notification{position:absolute;background-color:#F0F0F0;padding:5px;margin-top:5px;border-width:1px;border-style:solid;border-color:#CCCCCC;transition:transform 100ms ease-in,opacity 150ms ease-in;opacity:0;box-sizing:border-box}.mce-notification.mce-in{opacity:1}.mce-notification-success{background-color:#dff0d8;border-color:#d6e9c6}.mce-notification-info{background-color:#d9edf7;border-color:#779ECB}.mce-notification-warning{background-color:#fcf8e3;border-color:#faebcc}.mce-notification-error{background-color:#f2dede;border-color:#ebccd1}.mce-notification.mce-has-close{padding-right:15px}.mce-notification .mce-ico{margin-top:5px}.mce-notification-inner{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;display:inline-block;font-size:14px;margin:5px 8px 4px 8px;text-align:center;white-space:normal;color:#31708f}.mce-notification-inner a{text-decoration:underline;cursor:pointer}.mce-notification .mce-progress{margin-right:8px}.mce-notification .mce-progress .mce-text{margin-top:5px}.mce-notification *,.mce-notification .mce-progress .mce-text{color:#333333}.mce-notification .mce-progress .mce-bar-container{border-color:#CCCCCC}.mce-notification .mce-progress .mce-bar-container .mce-bar{background-color:#333333}.mce-notification-success *,.mce-notification-success .mce-progress .mce-text{color:#3c763d}.mce-notification-success .mce-progress .mce-bar-container{border-color:#d6e9c6}.mce-notification-success .mce-progress .mce-bar-container .mce-bar{background-color:#3c763d}.mce-notification-info *,.mce-notification-info .mce-progress .mce-text{color:#31708f}.mce-notification-info .mce-progress .mce-bar-container{border-color:#779ECB}.mce-notification-info .mce-progress .mce-bar-container .mce-bar{background-color:#31708f}.mce-notification-warning *,.mce-notification-warning .mce-progress .mce-text{color:#8a6d3b}.mce-notification-warning .mce-progress .mce-bar-container{border-color:#faebcc}.mce-notification-warning .mce-progress .mce-bar-container .mce-bar{background-color:#8a6d3b}.mce-notification-error *,.mce-notification-error .mce-progress .mce-text{color:#a94442}.mce-notification-error .mce-progress .mce-bar-container{border-color:#ebccd1}.mce-notification-error .mce-progress .mce-bar-container .mce-bar{background-color:#a94442}.mce-notification .mce-close{position:absolute;top:6px;right:8px;font-size:20px;font-weight:bold;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-btn{border:1px solid #b1b1b1;border-color:transparent transparent transparent transparent;position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);display:inline-block;*display:inline;*zoom:1;background-color:#f0f0f0}.mce-btn:hover,.mce-btn:focus{color:#333;background-color:#e3e3e3;border-color:#ccc}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{background-color:#dbdbdb;border-color:#ccc}.mce-btn:active{background-color:#e0e0e0;border-color:#ccc}.mce-btn button{padding:4px 8px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#333;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px none}.mce-primary.mce-btn-has-text{min-width:50px}.mce-primary{color:#fff;border:1px solid transparent;border-color:transparent;background-color:#2d8ac7}.mce-primary:hover,.mce-primary:focus{background-color:#257cb6;border-color:transparent}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#206ea1}.mce-primary button,.mce-primary button i{color:#fff;text-shadow:1px 1px none}.mce-btn .mce-txt{font-size:inherit;line-height:inherit;color:inherit}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #333;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #333;border-top:0}.mce-btn-flat{border:0;background:transparent;filter:none}.mce-btn-flat:hover,.mce-btn-flat.mce-active,.mce-btn-flat:focus,.mce-btn-flat:active{border:0;background:#e6e6e6;filter:none}.mce-btn-has-text .mce-ico{padding-right:5px}.mce-rtl .mce-btn button{direction:rtl}.mce-btn-group .mce-btn{border-width:1px;margin:0;margin-left:2px}.mce-btn-group:not(:first-child){border-left:1px solid #d9d9d9;padding-left:3px;margin-left:3px}.mce-btn-group .mce-first{margin-left:0}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-rtl .mce-btn-group .mce-btn{margin-left:0;margin-right:2px}.mce-rtl .mce-btn-group .mce-first{margin-right:0}.mce-rtl .mce-btn-group:not(:first-child){border-left:none;border-right:1px solid #d9d9d9;padding-right:4px;margin-right:4px}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;background-color:#f0f0f0;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#333;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid rgba(82,168,236,0.8)}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#acacac}.mce-checkbox .mce-label{vertical-align:middle}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-combobox{position:relative;display:inline-block;*display:inline;*zoom:1;*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#adadad}.mce-combobox .mce-btn{border:1px solid #c5c5c5;border-left:0;margin:0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-combobox .mce-status{position:absolute;right:2px;top:50%;line-height:16px;margin-top:-8px;font-size:12px;width:15px;height:15px;text-align:center;cursor:pointer}.mce-combobox.mce-has-status input{padding-right:20px}.mce-combobox.mce-has-open .mce-status{right:37px}.mce-combobox .mce-status.mce-i-warning{color:#c09853}.mce-combobox .mce-status.mce-i-checkmark{color:#468847}.mce-menu.mce-combobox-menu{border-top:0;margin-top:0;max-height:200px}.mce-menu.mce-combobox-menu .mce-menu-item{padding:4px 6px 4px 4px;font-size:11px}.mce-menu.mce-combobox-menu .mce-menu-item-sep{padding:0}.mce-menu.mce-combobox-menu .mce-text{font-size:11px}.mce-menu.mce-combobox-menu .mce-menu-item-link,.mce-menu.mce-combobox-menu .mce-menu-item-link b{font-size:11px}.mce-menu.mce-combobox-menu .mce-text b{font-size:11px}.mce-colorbox i{border:1px solid #c5c5c5;width:14px;height:14px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:6px;padding-left:6px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-17px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;padding-right:4px;border-left:1px solid transparent}.mce-colorbutton:hover .mce-open{border-color:#ccc}.mce-colorbutton.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:3px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;padding-left:2px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px;border-left:0}.mce-colorpicker{position:relative;width:250px;height:220px}.mce-colorpicker-sv{position:absolute;top:0;left:0;width:90%;height:100%;border:1px solid #c5c5c5;cursor:crosshair;overflow:hidden}.mce-colorpicker-h-chunk{width:100%}.mce-colorpicker-overlay1,.mce-colorpicker-overlay2{width:100%;height:100%;position:absolute;top:0;left:0}.mce-colorpicker-overlay1{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#ffffff', endColorstr='#00ffffff');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')";background:linear-gradient(to right, #fff, rgba(255,255,255,0))}.mce-colorpicker-overlay2{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#00000000', endColorstr='#000000');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')";background:linear-gradient(to bottom, rgba(0,0,0,0), #000)}.mce-colorpicker-selector1{background:none;position:absolute;width:12px;height:12px;margin:-8px 0 0 -8px;border:1px solid black;border-radius:50%}.mce-colorpicker-selector2{position:absolute;width:10px;height:10px;border:1px solid white;border-radius:50%}.mce-colorpicker-h{position:absolute;top:0;right:0;width:6.5%;height:100%;border:1px solid #c5c5c5;cursor:crosshair}.mce-colorpicker-h-marker{margin-top:-4px;position:absolute;top:0;left:-1px;width:100%;border:1px solid #333;background:#fff;height:4px;z-index:100}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#333}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#666;color:#fff}.mce-path .mce-divider{display:inline}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid rgba(0,0,0,0.2);width:100%;height:100%}.mce-infobox{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden;border:1px solid red}.mce-infobox div{display:block;margin:5px}.mce-infobox div button{position:absolute;top:50%;right:4px;cursor:pointer;margin-top:-8px;display:none}.mce-infobox div button:focus{outline:2px solid #ccc}.mce-infobox.mce-has-help div{margin-right:25px}.mce-infobox.mce-has-help button{display:block}.mce-infobox.mce-success{background:#dff0d8;border-color:#d6e9c6}.mce-infobox.mce-success div{color:#3c763d}.mce-infobox.mce-warning{background:#fcf8e3;border-color:#faebcc}.mce-infobox.mce-warning div{color:#8a6d3b}.mce-infobox.mce-error{background:#f2dede;border-color:#ebccd1}.mce-infobox.mce-error div{color:#a94442}.mce-rtl .mce-infobox div{text-align:right;direction:rtl}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-success{color:#468847}.mce-label.mce-warning{color:#c09853}.mce-label.mce-error{color:#b94a48}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;filter:none}.mce-menubar .mce-menubtn button{color:#333}.mce-menubar{border:1px solid rgba(217,217,217,0.52)}.mce-menubar .mce-menubtn button span{color:#333}.mce-menubar .mce-caret{border-top-color:#333}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:#ccc;background:#fff;filter:none}.mce-menubtn button{color:#333}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-ico,.mce-menu-item .mce-text{color:#333}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled .mce-ico{color:#adadad}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text,.mce-menu-item:focus .mce-text{color:white}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:white}.mce-menu-item.mce-disabled:hover{background:#CCC}.mce-menu-shortcut{display:inline-block;color:#adadad}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 15px 0 20px}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item.mce-selected .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:white}.mce-menu-item .mce-caret{margin-top:4px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #333}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret,.mce-menu-item:hover .mce-caret{border-left-color:white}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item-normal.mce-active{background-color:#3498db}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa}.mce-menu-item-normal.mce-active .mce-text{color:white}.mce-menu-item-normal.mce-active:hover .mce-text,.mce-menu-item-normal.mce-active:hover .mce-ico{color:white}.mce-menu-item-normal.mce-active:focus .mce-text,.mce-menu-item-normal.mce-active:focus .mce-ico{color:white}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:white;background-color:#2d8ac7}.mce-menu-item-link{color:#093;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mce-menu-item-link b{color:#093}.mce-menu-item-ellipsis{display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mce-menu-item:hover *,.mce-menu-item.mce-selected *,.mce-menu-item:focus *{color:white}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:transparent;border-bottom:1px solid rgba(0,0,0,0.1);cursor:default;filter:none}div.mce-menu .mce-menu-item b{font-weight:bold}.mce-menu-item-indent-1{padding-left:20px}.mce-menu-item-indent-2{padding-left:35px}.mce-menu-item-indent-2{padding-left:35px}.mce-menu-item-indent-3{padding-left:40px}.mce-menu-item-indent-4{padding-left:45px}.mce-menu-item-indent-5{padding-left:50px}.mce-menu-item-indent-6{padding-left:55px}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-menu-align.mce-rtl .mce-menu-shortcut,.mce-menu-align.mce-rtl .mce-caret{right:auto;left:0}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #333;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:white}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}.mce-menu .mce-throbber-inline{height:25px;background-size:contain}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:-1px 0 0;min-width:160px;background:#fff;border:1px solid #989898;border:1px solid rgba(0,0,0,0.2);z-index:1002;max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#333}.mce-selectbox{background:#fff;border:1px solid #c5c5c5}.mce-slider{border:1px solid #AAA;background:#EEE;width:100px;height:10px;position:relative;display:block}.mce-slider.mce-vertical{width:10px;height:100px}.mce-slider-handle{border:1px solid #BBB;background:#DDD;display:block;width:13px;height:13px;position:absolute;top:0;left:0;margin-left:-1px;margin-top:-2px}.mce-slider-handle:focus{background:#BBB}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#ccc}.mce-splitbtn button{padding-right:6px;padding-left:6px}.mce-splitbtn .mce-open{padding-right:4px;padding-left:4px}.mce-splitbtn .mce-open.mce-active{background-color:#dbdbdb;outline:1px solid #ccc}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:4px;padding-left:4px}.mce-rtl .mce-splitbtn .mce-open{border-left:0}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tabs,.mce-tabs+.mce-container-body{background:#FFF}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#ffffff;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#FDFDFD}.mce-tab.mce-active{background:#FDFDFD;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#333}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:#3498db}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px;height:auto}.mce-textbox.mce-disabled{color:#adadad}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-dropzone{border:3px dashed gray;text-align:center}.mce-dropzone span{color:gray;text-transform:uppercase;font-family:Verdana;display:inline-block;vertical-align:middle}.mce-dropzone:after{content:"";height:100%;display:inline-block;vertical-align:middle}.mce-dropzone.mce-disabled{opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-dropzone.mce-disabled.mce-dragenter{cursor:not-allowed}.mce-browsebutton{position:relative;overflow:hidden}.mce-browsebutton button{position:relative;z-index:1}.mce-browsebutton input{opacity:0;filter:alpha(opacity=0);zoom:1;position:absolute;top:0;left:0;width:100%;height:100%;z-index:0}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce',Arial;font-style:normal;font-weight:normal;font-variant:normal;font-size:16px;line-height:16px;speak:none;vertical-align:text-top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;background:transparent center center;background-size:cover;width:16px;height:16px;color:#333}.mce-btn-small .mce-ico{font-family:'tinymce-small',Arial}.mce-i-save:before{content:"\e000"}.mce-i-newdocument:before{content:"\e001"}.mce-i-fullpage:before{content:"\e002"}.mce-i-alignleft:before{content:"\e003"}.mce-i-aligncenter:before{content:"\e004"}.mce-i-alignright:before{content:"\e005"}.mce-i-alignjustify:before{content:"\e006"}.mce-i-alignnone:before{content:"\e003"}.mce-i-cut:before{content:"\e007"}.mce-i-paste:before{content:"\e008"}.mce-i-searchreplace:before{content:"\e009"}.mce-i-bullist:before{content:"\e00a"}.mce-i-numlist:before{content:"\e00b"}.mce-i-indent:before{content:"\e00c"}.mce-i-outdent:before{content:"\e00d"}.mce-i-blockquote:before{content:"\e00e"}.mce-i-undo:before{content:"\e00f"}.mce-i-redo:before{content:"\e010"}.mce-i-link:before{content:"\e011"}.mce-i-unlink:before{content:"\e012"}.mce-i-anchor:before{content:"\e013"}.mce-i-image:before{content:"\e014"}.mce-i-media:before{content:"\e015"}.mce-i-help:before{content:"\e016"}.mce-i-code:before{content:"\e017"}.mce-i-insertdatetime:before{content:"\e018"}.mce-i-preview:before{content:"\e019"}.mce-i-forecolor:before{content:"\e01a"}.mce-i-backcolor:before{content:"\e01a"}.mce-i-table:before{content:"\e01b"}.mce-i-hr:before{content:"\e01c"}.mce-i-removeformat:before{content:"\e01d"}.mce-i-subscript:before{content:"\e01e"}.mce-i-superscript:before{content:"\e01f"}.mce-i-charmap:before{content:"\e020"}.mce-i-emoticons:before{content:"\e021"}.mce-i-print:before{content:"\e022"}.mce-i-fullscreen:before{content:"\e023"}.mce-i-spellchecker:before{content:"\e024"}.mce-i-nonbreaking:before{content:"\e025"}.mce-i-template:before{content:"\e026"}.mce-i-pagebreak:before{content:"\e027"}.mce-i-restoredraft:before{content:"\e028"}.mce-i-bold:before{content:"\e02a"}.mce-i-italic:before{content:"\e02b"}.mce-i-underline:before{content:"\e02c"}.mce-i-strikethrough:before{content:"\e02d"}.mce-i-visualchars:before{content:"\e02e"}.mce-i-visualblocks:before{content:"\e02e"}.mce-i-ltr:before{content:"\e02f"}.mce-i-rtl:before{content:"\e030"}.mce-i-copy:before{content:"\e031"}.mce-i-resize:before{content:"\e032"}.mce-i-browse:before{content:"\e034"}.mce-i-pastetext:before{content:"\e035"}.mce-i-rotateleft:before{content:"\eaa8"}.mce-i-rotateright:before{content:"\eaa9"}.mce-i-crop:before{content:"\ee78"}.mce-i-editimage:before{content:"\e915"}.mce-i-options:before{content:"\ec6a"}.mce-i-flipv:before{content:"\eaaa"}.mce-i-fliph:before{content:"\eaac"}.mce-i-zoomin:before{content:"\eb35"}.mce-i-zoomout:before{content:"\eb36"}.mce-i-sun:before{content:"\eccc"}.mce-i-moon:before{content:"\eccd"}.mce-i-arrowleft:before{content:"\edc0"}.mce-i-arrowright:before{content:"\e93c"}.mce-i-drop:before{content:"\e935"}.mce-i-contrast:before{content:"\ecd4"}.mce-i-sharpen:before{content:"\eba7"}.mce-i-resize2:before{content:"\edf9"}.mce-i-orientation:before{content:"\e601"}.mce-i-invert:before{content:"\e602"}.mce-i-gamma:before{content:"\e600"}.mce-i-remove:before{content:"\ed6a"}.mce-i-tablerowprops:before{content:"\e604"}.mce-i-tablecellprops:before{content:"\e605"}.mce-i-table2:before{content:"\e606"}.mce-i-tablemergecells:before{content:"\e607"}.mce-i-tableinsertcolbefore:before{content:"\e608"}.mce-i-tableinsertcolafter:before{content:"\e609"}.mce-i-tableinsertrowbefore:before{content:"\e60a"}.mce-i-tableinsertrowafter:before{content:"\e60b"}.mce-i-tablesplitcells:before{content:"\e60d"}.mce-i-tabledelete:before{content:"\e60e"}.mce-i-tableleftheader:before{content:"\e62a"}.mce-i-tabletopheader:before{content:"\e62b"}.mce-i-tabledeleterow:before{content:"\e800"}.mce-i-tabledeletecol:before{content:"\e801"}.mce-i-codesample:before{content:"\e603"}.mce-i-fill:before{content:"\e902"}.mce-i-borderwidth:before{content:"\e903"}.mce-i-line:before{content:"\e904"}.mce-i-count:before{content:"\e905"}.mce-i-translate:before{content:"\e907"}.mce-i-drag:before{content:"\e908"}.mce-i-home:before{content:"\e90b"}.mce-i-upload:before{content:"\e914"}.mce-i-bubble:before{content:"\e91c"}.mce-i-user:before{content:"\e91d"}.mce-i-lock:before{content:"\e926"}.mce-i-unlock:before{content:"\e927"}.mce-i-settings:before{content:"\e928"}.mce-i-remove2:before{content:"\e92a"}.mce-i-menu:before{content:"\e92d"}.mce-i-warning:before{content:"\e930"}.mce-i-question:before{content:"\e931"}.mce-i-pluscircle:before{content:"\e932"}.mce-i-info:before{content:"\e933"}.mce-i-notice:before{content:"\e934"}.mce-i-arrowup:before{content:"\e93b"}.mce-i-arrowdown:before{content:"\e93d"}.mce-i-arrowup2:before{content:"\e93f"}.mce-i-arrowdown2:before{content:"\e940"}.mce-i-menu2:before{content:"\e941"}.mce-i-newtab:before{content:"\e961"}.mce-i-a11y:before{content:"\e900"}.mce-i-plus:before{content:"\e93a"}.mce-i-insert:before{content:"\e93a"}.mce-i-minus:before{content:"\e939"}.mce-i-books:before{content:"\e911"}.mce-i-reload:before{content:"\e906"}.mce-i-toc:before{content:"\e901"}.mce-i-checkmark:before{content:"\e033"}.mce-i-checkbox:before,.mce-i-selected:before{content:"\e033"}.mce-i-insert{font-size:14px}.mce-i-selected{visibility:hidden}i.mce-i-backcolor{text-shadow:none;background:#BBB} \ No newline at end of file +.mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#595959;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:inherit !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2)}.mce-statusbar>.mce-container-body{display:flex;padding-right:16px}.mce-statusbar>.mce-container-body .mce-path{flex:1}.mce-wordcount{font-size:inherit;text-transform:uppercase;padding:8px 0}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative;font-size:11px}.mce-fullscreen .mce-resizehandle{display:none}.mce-statusbar .mce-flow-layout-item{margin:0}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #c5c5c5;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:white}.mce-grid td.mce-grid-cell div{border:1px solid #c5c5c5;width:15px;height:15px;margin:0;cursor:pointer}.mce-grid td.mce-grid-cell div:focus{border-color:#91bbe9}.mce-grid td.mce-grid-cell div[disabled]{cursor:not-allowed}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#91bbe9}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#c5c5c5;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#91bbe9;background:#bdd6f2}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%}.mce-colorbtn-trans div{text-align:center;vertical-align:middle;font-weight:bold;font-size:20px;line-height:16px;color:#8b8b8b}.mce-monospace{font-family:"Courier New",Courier,monospace}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-container b{font-weight:bold}.mce-container p{margin-bottom:5px}.mce-container a{cursor:pointer;color:#2276d2}.mce-container a:hover{text-decoration:underline}.mce-container ul{margin-left:15px}.mce-container .mce-table-striped{border-collapse:collapse;margin:10px}.mce-container .mce-table-striped thead>tr{background-color:#fafafa}.mce-container .mce-table-striped thead>tr th{font-weight:bold}.mce-container .mce-table-striped td,.mce-container .mce-table-striped th{padding:5px}.mce-container .mce-table-striped tr:nth-child(even){background-color:#fafafa}.mce-container .mce-table-striped tbody>tr:hover{background-color:#e1e1e1}.mce-branding{font-size:inherit;text-transform:uppercase;white-space:pre;padding:8px 0}.mce-branding a{font-size:inherit;color:inherit}.mce-top-part{position:relative}.mce-top-part::before{content:'';position:absolute;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);top:0;right:0;bottom:0;left:0;pointer-events:none}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-rtl .mce-statusbar>.mce-container-body>*:last-child{padding-right:0;padding-left:10px}.mce-rtl .mce-path{text-align:right;padding-right:16px}.mce-croprect-container{position:absolute;top:0;left:0}.mce-croprect-handle{position:absolute;top:0;left:0;width:20px;height:20px;border:2px solid white}.mce-croprect-handle-nw{border-width:2px 0 0 2px;margin:-2px 0 0 -2px;cursor:nw-resize;top:100px;left:100px}.mce-croprect-handle-ne{border-width:2px 2px 0 0;margin:-2px 0 0 -20px;cursor:ne-resize;top:100px;left:200px}.mce-croprect-handle-sw{border-width:0 0 2px 2px;margin:-20px 2px 0 -2px;cursor:sw-resize;top:200px;left:100px}.mce-croprect-handle-se{border-width:0 2px 2px 0;margin:-20px 0 0 -20px;cursor:se-resize;top:200px;left:200px}.mce-croprect-handle-move{position:absolute;cursor:move;border:0}.mce-croprect-block{opacity:.5;filter:alpha(opacity=50);zoom:1;position:absolute;background:black}.mce-croprect-handle:focus{border-color:#2276d2}.mce-croprect-handle-move:focus{outline:1px solid #2276d2}.mce-imagepanel{overflow:auto;background:black}.mce-imagepanel-bg{position:absolute;background:url('data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==')}.mce-imagepanel img{position:absolute}.mce-imagetool.mce-btn .mce-ico{display:block;width:20px;height:20px;text-align:center;line-height:20px;font-size:20px;padding:5px}.mce-arrow-up{margin-top:12px}.mce-arrow-down{margin-top:-12px}.mce-arrow:before,.mce-arrow:after{position:absolute;left:50%;display:block;width:0;height:0;border-style:solid;border-color:transparent;content:""}.mce-arrow.mce-arrow-up:before{top:-9px;border-bottom-color:#c5c5c5;border-width:0 9px 9px;margin-left:-9px}.mce-arrow.mce-arrow-down:before{bottom:-9px;border-top-color:#c5c5c5;border-width:9px 9px 0;margin-left:-9px}.mce-arrow.mce-arrow-up:after{top:-8px;border-bottom-color:#fff;border-width:0 8px 8px;margin-left:-8px}.mce-arrow.mce-arrow-down:after{bottom:-8px;border-top-color:#fff;border-width:8px 8px 0;margin-left:-8px}.mce-arrow.mce-arrow-left:before,.mce-arrow.mce-arrow-left:after{margin:0}.mce-arrow.mce-arrow-left:before{left:8px}.mce-arrow.mce-arrow-left:after{left:9px}.mce-arrow.mce-arrow-right:before,.mce-arrow.mce-arrow-right:after{left:auto;margin:0}.mce-arrow.mce-arrow-right:before{right:8px}.mce-arrow.mce-arrow-right:after{right:9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left:before{left:-9px;top:50%;border-right-color:#c5c5c5;border-width:9px 9px 9px 0;margin-top:-9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left:after{left:-8px;top:50%;border-right-color:#fff;border-width:8px 8px 8px 0;margin-top:-8px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-left{margin-left:12px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right:before{right:-9px;top:50%;border-left-color:#c5c5c5;border-width:9px 0 9px 9px;margin-top:-9px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right:after{right:-8px;top:50%;border-left-color:#fff;border-width:8px 0 8px 8px;margin-top:-8px}.mce-arrow.mce-arrow-center.mce-arrow.mce-arrow-right{margin-left:-14px}.mce-edit-aria-container>.mce-container-body{display:flex}.mce-edit-aria-container>.mce-container-body .mce-edit-area{flex:1}.mce-edit-aria-container>.mce-container-body .mce-sidebar>.mce-container-body{display:flex;align-items:stretch;height:100%}.mce-edit-aria-container>.mce-container-body .mce-sidebar-panel{min-width:250px;max-width:250px;position:relative}.mce-edit-aria-container>.mce-container-body .mce-sidebar-panel>.mce-container-body{position:absolute;width:100%;height:100%;overflow:auto;top:0;left:0}.mce-sidebar-toolbar{border:0 solid #c5c5c5;border-left-width:1px}.mce-sidebar-toolbar .mce-btn{border-left:0;border-right:0}.mce-sidebar-toolbar .mce-btn.mce-active,.mce-sidebar-toolbar .mce-btn.mce-active:hover{background-color:#555c66}.mce-sidebar-toolbar .mce-btn.mce-active button,.mce-sidebar-toolbar .mce-btn.mce-active:hover button,.mce-sidebar-toolbar .mce-btn.mce-active button i,.mce-sidebar-toolbar .mce-btn.mce-active:hover button i{color:white;text-shadow:1px 1px none}.mce-sidebar-panel{border:0 solid #c5c5c5;border-left-width:1px}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1}.mce-scroll{position:relative}.mce-panel{border:0 solid #f3f3f3;border:0 solid #c5c5c5;background-color:#fff}.mce-floatpanel{position:absolute;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2)}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);top:0;left:0;background:#FFF;border:1px solid #c5c5c5;border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#c5c5c5;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#FFF}.mce-floatpanel.mce-popover.mce-top{margin-top:-10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-top>.mce-arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#c5c5c5;top:auto;bottom:-11px}.mce-floatpanel.mce-popover.mce-top>.mce-arrow:after{bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#FFF}.mce-floatpanel.mce-popover.mce-bottom.mce-start,.mce-floatpanel.mce-popover.mce-top.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow,.mce-floatpanel.mce-popover.mce-top.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end,.mce-floatpanel.mce-popover.mce-top.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow,.mce-floatpanel.mce-popover.mce-top.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#FFF}#mce-modal-block.mce-in{opacity:.5;filter:alpha(opacity=50);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#FFF;position:fixed;top:0;left:0;opacity:0;transform:scale(.1);transition:transform 100ms ease-in,opacity 150ms ease-in}.mce-window.mce-in{transform:scale(1);opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mce-window-head .mce-close{position:absolute;right:0;top:0;height:38px;width:38px;text-align:center;cursor:pointer}.mce-window-head .mce-close i{color:#9b9b9b}.mce-close:hover i{color:#bdbdbd}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:20px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#FFF;border-top:1px solid #c5c5c5}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window-body .mce-listbox{border-color:#e2e4e7}.mce-window .mce-btn:hover{border-color:#c5c5c5}.mce-window .mce-btn:focus{border-color:#2276d2}.mce-window-body .mce-btn,.mce-foot .mce-btn{border-color:#c5c5c5}.mce-foot .mce-btn.mce-primary{border-color:transparent}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:0}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right;padding-right:0;padding-left:20px}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1;margin-top:1px}.mce-tooltip-inner{font-size:11px;background-color:#000;color:white;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-ne,.mce-tooltip-se{margin-left:14px}.mce-tooltip-n .mce-tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-progress{display:inline-block;position:relative;height:20px}.mce-progress .mce-bar-container{display:inline-block;width:100px;height:100%;margin-right:8px;border:1px solid #ccc;overflow:hidden}.mce-progress .mce-text{display:inline-block;margin-top:auto;margin-bottom:auto;font-size:14px;width:40px;color:#595959}.mce-bar{display:block;width:0;height:100%;background-color:#dfdfdf;-webkit-transition:width .2s ease;transition:width .2s ease}.mce-notification{position:absolute;background-color:#fff;padding:5px;margin-top:5px;border-width:1px;border-style:solid;border-color:#c5c5c5;transition:transform 100ms ease-in,opacity 150ms ease-in;opacity:0;box-sizing:border-box}.mce-notification.mce-in{opacity:1}.mce-notification-success{background-color:#dff0d8;border-color:#d6e9c6}.mce-notification-info{background-color:#d9edf7;border-color:#779ECB}.mce-notification-warning{background-color:#fcf8e3;border-color:#faebcc}.mce-notification-error{background-color:#f2dede;border-color:#ebccd1}.mce-notification.mce-has-close{padding-right:15px}.mce-notification .mce-ico{margin-top:5px}.mce-notification-inner{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;display:inline-block;font-size:14px;margin:5px 8px 4px 8px;text-align:center;white-space:normal;color:#31708f}.mce-notification-inner a{text-decoration:underline;cursor:pointer}.mce-notification .mce-progress{margin-right:8px}.mce-notification .mce-progress .mce-text{margin-top:5px}.mce-notification *,.mce-notification .mce-progress .mce-text{color:#595959}.mce-notification .mce-progress .mce-bar-container{border-color:#c5c5c5}.mce-notification .mce-progress .mce-bar-container .mce-bar{background-color:#595959}.mce-notification-success *,.mce-notification-success .mce-progress .mce-text{color:#3c763d}.mce-notification-success .mce-progress .mce-bar-container{border-color:#d6e9c6}.mce-notification-success .mce-progress .mce-bar-container .mce-bar{background-color:#3c763d}.mce-notification-info *,.mce-notification-info .mce-progress .mce-text{color:#31708f}.mce-notification-info .mce-progress .mce-bar-container{border-color:#779ECB}.mce-notification-info .mce-progress .mce-bar-container .mce-bar{background-color:#31708f}.mce-notification-warning *,.mce-notification-warning .mce-progress .mce-text{color:#8a6d3b}.mce-notification-warning .mce-progress .mce-bar-container{border-color:#faebcc}.mce-notification-warning .mce-progress .mce-bar-container .mce-bar{background-color:#8a6d3b}.mce-notification-error *,.mce-notification-error .mce-progress .mce-text{color:#a94442}.mce-notification-error .mce-progress .mce-bar-container{border-color:#ebccd1}.mce-notification-error .mce-progress .mce-bar-container .mce-bar{background-color:#a94442}.mce-notification .mce-close{position:absolute;top:6px;right:8px;font-size:20px;font-weight:bold;line-height:20px;color:#9b9b9b;cursor:pointer}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-btn{border:1px solid #b3b3b3;border-color:transparent transparent transparent transparent;position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);background:white;display:inline-block;*display:inline;*zoom:1;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-btn:hover,.mce-btn:active{background:white;color:#595959;border-color:#e2e4e7}.mce-btn:focus{background:white;color:#595959;border-color:#e2e4e7}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover,.mce-btn.mce-active:focus,.mce-btn.mce-active:active{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;background:#555c66;color:white;border-color:transparent}.mce-btn.mce-active button,.mce-btn.mce-active:hover button,.mce-btn.mce-active i,.mce-btn.mce-active:hover i{color:white}.mce-btn:hover .mce-caret{border-top-color:#b5bcc2}.mce-btn.mce-active .mce-caret,.mce-btn.mce-active:hover .mce-caret{border-top-color:white}.mce-btn button{padding:4px 6px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#595959;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px none}.mce-primary.mce-btn-has-text{min-width:50px}.mce-primary{color:white;border:1px solid transparent;border-color:transparent;background-color:#2276d2}.mce-primary:hover,.mce-primary:focus{background-color:#1e6abc;border-color:transparent}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#1e6abc;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-primary button,.mce-primary button i{color:white;text-shadow:1px 1px none}.mce-btn .mce-txt{font-size:inherit;line-height:inherit;color:inherit}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #b5bcc2;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #b5bcc2;border-top:0}.mce-btn-flat{border:0;background:transparent;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-btn-flat:hover,.mce-btn-flat.mce-active,.mce-btn-flat:focus,.mce-btn-flat:active{border:0;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-btn-has-text .mce-ico{padding-right:5px}.mce-rtl .mce-btn button{direction:rtl}.mce-toolbar .mce-btn-group{margin:0;padding:2px 0}.mce-btn-group .mce-btn{border-width:1px;margin:0;margin-left:2px}.mce-btn-group:not(:first-child){border-left:1px solid #d9d9d9;padding-left:0;margin-left:2px}.mce-btn-group{margin-left:2px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-rtl .mce-btn-group .mce-btn{margin-left:0;margin-right:2px}.mce-rtl .mce-btn-group .mce-first{margin-right:0}.mce-rtl .mce-btn-group:not(:first-child){border-left:none;border-right:1px solid #d9d9d9;padding-right:4px;margin-right:4px}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;background-color:white;text-indent:-10em;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#595959;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid #2276d2;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#bdbdbd}.mce-checkbox .mce-label{vertical-align:middle}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-combobox{position:relative;display:inline-block;*display:inline;*zoom:1;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#bdbdbd}.mce-combobox .mce-btn{border:1px solid #c5c5c5;border-left:0;margin:0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-combobox .mce-status{position:absolute;right:2px;top:50%;line-height:16px;margin-top:-8px;font-size:12px;width:15px;height:15px;text-align:center;cursor:pointer}.mce-combobox.mce-has-status input{padding-right:20px}.mce-combobox.mce-has-open .mce-status{right:37px}.mce-combobox .mce-status.mce-i-warning{color:#c09853}.mce-combobox .mce-status.mce-i-checkmark{color:#468847}.mce-menu.mce-combobox-menu{border-top:0;margin-top:0;max-height:200px}.mce-menu.mce-combobox-menu .mce-menu-item{padding:4px 6px 4px 4px;font-size:11px}.mce-menu.mce-combobox-menu .mce-menu-item-sep{padding:0}.mce-menu.mce-combobox-menu .mce-text,.mce-menu.mce-combobox-menu .mce-text b{font-size:11px}.mce-menu.mce-combobox-menu .mce-menu-item-link,.mce-menu.mce-combobox-menu .mce-menu-item-link b{font-size:11px}.mce-colorbox i{border:1px solid #c5c5c5;width:14px;height:14px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-17px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:3px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;padding-left:2px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px;border-left:0}.mce-colorpicker{position:relative;width:250px;height:220px}.mce-colorpicker-sv{position:absolute;top:0;left:0;width:90%;height:100%;border:1px solid #c5c5c5;cursor:crosshair;overflow:hidden}.mce-colorpicker-h-chunk{width:100%}.mce-colorpicker-overlay1,.mce-colorpicker-overlay2{width:100%;height:100%;position:absolute;top:0;left:0}.mce-colorpicker-overlay1{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#ffffff', endColorstr='#00ffffff');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')";background:linear-gradient(to right, #fff, rgba(255,255,255,0))}.mce-colorpicker-overlay2{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#00000000', endColorstr='#000000');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')";background:linear-gradient(to bottom, rgba(0,0,0,0), #000)}.mce-colorpicker-selector1{background:none;position:absolute;width:12px;height:12px;margin:-8px 0 0 -8px;border:1px solid black;border-radius:50%}.mce-colorpicker-selector2{position:absolute;width:10px;height:10px;border:1px solid white;border-radius:50%}.mce-colorpicker-h{position:absolute;top:0;right:0;width:6.5%;height:100%;border:1px solid #c5c5c5;cursor:crosshair}.mce-colorpicker-h-marker{margin-top:-4px;position:absolute;top:0;left:-1px;width:100%;border:1px solid black;background:white;height:4px;z-index:100}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal;font-size:inherit}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#595959;font-size:inherit;text-transform:uppercase}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#555c66;color:white}.mce-path .mce-divider{display:inline;font-size:inherit}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid #c5c5c5;width:100%;height:100%}.mce-infobox{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden;border:1px solid red}.mce-infobox div{display:block;margin:5px}.mce-infobox div button{position:absolute;top:50%;right:4px;cursor:pointer;margin-top:-8px;display:none}.mce-infobox div button:focus{outline:2px solid #e2e4e7}.mce-infobox.mce-has-help div{margin-right:25px}.mce-infobox.mce-has-help button{display:block}.mce-infobox.mce-success{background:#dff0d8;border-color:#d6e9c6}.mce-infobox.mce-success div{color:#3c763d}.mce-infobox.mce-warning{background:#fcf8e3;border-color:#faebcc}.mce-infobox.mce-warning div{color:#8a6d3b}.mce-infobox.mce-error{background:#f2dede;border-color:#ebccd1}.mce-infobox.mce-error div{color:#a94442}.mce-rtl .mce-infobox div{text-align:right;direction:rtl}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-success{color:#468847}.mce-label.mce-warning{color:#c09853}.mce-label.mce-error{color:#b94a48}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar{border:1px solid #e2e4e7}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar .mce-menubtn button span{color:#595959}.mce-menubar .mce-caret{border-top-color:#b5bcc2}.mce-menubar .mce-active .mce-caret,.mce-menubar .mce-menubtn:hover .mce-caret{border-top-color:#b5bcc2}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:#e2e4e7;background:white;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-menubar .mce-menubtn.mce-active{border-bottom:none;z-index:65537}div.mce-menubtn.mce-opened{border-bottom-color:white;z-index:65537}.mce-menubtn button{color:#595959}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-rtl .mce-menubtn.mce-fixed-width span{direction:rtl;text-align:right}.mce-menu-item{display:block;padding:6px 4px 6px 4px;clear:both;font-weight:normal;line-height:20px;color:#595959;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-text,.mce-menu-item .mce-text b{line-height:1;vertical-align:initial}.mce-menu-item .mce-caret{margin-top:4px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #595959}.mce-menu-item .mce-menu-shortcut{display:inline-block;padding:0 10px 0 20px;color:#aaa}.mce-menu-item .mce-ico{padding-right:4px}.mce-menu-item:hover,.mce-menu-item:focus{background:#ededee}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:#aaa}.mce-menu-item:hover .mce-text,.mce-menu-item:focus .mce-text,.mce-menu-item:hover .mce-ico,.mce-menu-item:focus .mce-ico{color:#595959}.mce-menu-item.mce-selected{background:#ededee}.mce-menu-item.mce-selected .mce-text,.mce-menu-item.mce-selected .mce-ico{color:#595959}.mce-menu-item.mce-active.mce-menu-item-normal{background:#555c66}.mce-menu-item.mce-active.mce-menu-item-normal .mce-text,.mce-menu-item.mce-active.mce-menu-item-normal .mce-ico{color:white}.mce-menu-item.mce-active.mce-menu-item-checkbox .mce-ico{visibility:visible}.mce-menu-item.mce-disabled,.mce-menu-item.mce-disabled:hover{background:white}.mce-menu-item.mce-disabled:focus,.mce-menu-item.mce-disabled:hover:focus{background:#ededee}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled:hover .mce-text,.mce-menu-item.mce-disabled .mce-ico,.mce-menu-item.mce-disabled:hover .mce-ico{color:#aaa}.mce-menu-item.mce-menu-item-preview.mce-active{border-left:5px solid #555c66;background:white}.mce-menu-item.mce-menu-item-preview.mce-active .mce-text,.mce-menu-item.mce-menu-item-preview.mce-active .mce-ico{color:#595959}.mce-menu-item.mce-menu-item-preview.mce-active:hover{background:#ededee}.mce-menu-item-link{color:#093;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mce-menu-item-link b{color:#093}.mce-menu-item-ellipsis{display:block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mce-menu-item:hover *,.mce-menu-item.mce-selected *,.mce-menu-item:focus *{color:#595959}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:transparent;border-bottom:1px solid rgba(0,0,0,0.1);cursor:default;filter:none}div.mce-menu .mce-menu-item b{font-weight:bold}.mce-menu-item-indent-1{padding-left:20px}.mce-menu-item-indent-2{padding-left:35px}.mce-menu-item-indent-2{padding-left:35px}.mce-menu-item-indent-3{padding-left:40px}.mce-menu-item-indent-4{padding-left:45px}.mce-menu-item-indent-5{padding-left:50px}.mce-menu-item-indent-6{padding-left:55px}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #595959;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:#595959}.mce-rtl .mce-menu-item .mce-ico{padding-right:0;padding-left:4px}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}.mce-menu .mce-throbber-inline{height:25px;background-size:contain}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:-1px 0 0;min-width:180px;background:white;border:1px solid #c5c9cf;border:1px solid #e2e4e7;z-index:1002;-webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);box-shadow:0 1px 2px rgba(0, 0, 0, 0.2);max-height:500px;overflow:auto;overflow-x:hidden}.mce-menu.mce-animate{opacity:.01;transform:rotateY(10deg) rotateX(-10deg);transform-origin:left top}.mce-menu.mce-menu-align .mce-menu-shortcut,.mce-menu.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block}.mce-menu.mce-in.mce-animate{opacity:1;transform:rotateY(0) rotateX(0);transition:opacity .075s ease,transform .1s ease}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-rtl .mce-menu-item .mce-ico{padding-right:0;padding-left:4px}.mce-rtl.mce-menu-align .mce-caret,.mce-rtl .mce-menu-shortcut{right:auto;left:0}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#595959}.mce-selectbox{background:#fff;border:1px solid #c5c5c5}.mce-slider{border:1px solid #c5c5c5;background:#fff;width:100px;height:10px;position:relative;display:block}.mce-slider.mce-vertical{width:10px;height:100px}.mce-slider-handle{border:1px solid #c5c5c5;background:#e6e6e6;display:block;width:13px;height:13px;position:absolute;top:0;left:0;margin-left:-1px;margin-top:-2px}.mce-slider-handle:focus{border-color:#2276d2}.mce-spacer{visibility:hidden}.mce-splitbtn:hover .mce-open{border-left:1px solid #e2e4e7}.mce-splitbtn .mce-open{border-left:1px solid transparent;padding-right:4px;padding-left:4px}.mce-splitbtn .mce-open:focus{border-left:1px solid #e2e4e7}.mce-splitbtn .mce-open:hover,.mce-splitbtn .mce-open:active{border-left:1px solid #e2e4e7}.mce-splitbtn.mce-active:hover .mce-open{border-left:1px solid white}.mce-splitbtn.mce-opened{border-color:#e2e4e7}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:4px;padding-left:4px}.mce-rtl .mce-splitbtn .mce-open{border-left:0}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tabs,.mce-tabs+.mce-container-body{background:#fff}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#fff;padding:8px 15px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#FDFDFD}.mce-tab.mce-active{background:#FDFDFD;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-tab:focus{color:#2276d2}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#595959}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:#2276d2;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px;height:auto}.mce-textbox.mce-disabled{color:#bdbdbd}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-dropzone{border:3px dashed gray;text-align:center}.mce-dropzone span{text-transform:uppercase;display:inline-block;vertical-align:middle}.mce-dropzone:after{content:"";height:100%;display:inline-block;vertical-align:middle}.mce-dropzone.mce-disabled{opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-dropzone.mce-disabled.mce-dragenter{cursor:not-allowed}.mce-browsebutton{position:relative;overflow:hidden}.mce-browsebutton button{position:relative;z-index:1}.mce-browsebutton input{opacity:0;filter:alpha(opacity=0);zoom:1;position:absolute;top:0;left:0;width:100%;height:100%;z-index:0}@font-face{font-family:'tinymce';src:url('fonts/tinymce.eot');src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce.woff') format('woff'),url('fonts/tinymce.ttf') format('truetype'),url('fonts/tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('fonts/tinymce-small.eot');src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),url('fonts/tinymce-small.woff') format('woff'),url('fonts/tinymce-small.ttf') format('truetype'),url('fonts/tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce',Arial;font-style:normal;font-weight:normal;font-variant:normal;font-size:16px;line-height:16px;speak:none;vertical-align:text-top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;background:transparent center center;background-size:cover;width:16px;height:16px;color:#595959}.mce-btn-small .mce-ico{font-family:'tinymce-small',Arial}.mce-i-save:before{content:"\e000"}.mce-i-newdocument:before{content:"\e001"}.mce-i-fullpage:before{content:"\e002"}.mce-i-alignleft:before{content:"\e003"}.mce-i-aligncenter:before{content:"\e004"}.mce-i-alignright:before{content:"\e005"}.mce-i-alignjustify:before{content:"\e006"}.mce-i-alignnone:before{content:"\e003"}.mce-i-cut:before{content:"\e007"}.mce-i-paste:before{content:"\e008"}.mce-i-searchreplace:before{content:"\e009"}.mce-i-bullist:before{content:"\e00a"}.mce-i-numlist:before{content:"\e00b"}.mce-i-indent:before{content:"\e00c"}.mce-i-outdent:before{content:"\e00d"}.mce-i-blockquote:before{content:"\e00e"}.mce-i-undo:before{content:"\e00f"}.mce-i-redo:before{content:"\e010"}.mce-i-link:before{content:"\e011"}.mce-i-unlink:before{content:"\e012"}.mce-i-anchor:before{content:"\e013"}.mce-i-image:before{content:"\e014"}.mce-i-media:before{content:"\e015"}.mce-i-help:before{content:"\e016"}.mce-i-code:before{content:"\e017"}.mce-i-insertdatetime:before{content:"\e018"}.mce-i-preview:before{content:"\e019"}.mce-i-forecolor:before{content:"\e01a"}.mce-i-backcolor:before{content:"\e01a"}.mce-i-table:before{content:"\e01b"}.mce-i-hr:before{content:"\e01c"}.mce-i-removeformat:before{content:"\e01d"}.mce-i-subscript:before{content:"\e01e"}.mce-i-superscript:before{content:"\e01f"}.mce-i-charmap:before{content:"\e020"}.mce-i-emoticons:before{content:"\e021"}.mce-i-print:before{content:"\e022"}.mce-i-fullscreen:before{content:"\e023"}.mce-i-spellchecker:before{content:"\e024"}.mce-i-nonbreaking:before{content:"\e025"}.mce-i-template:before{content:"\e026"}.mce-i-pagebreak:before{content:"\e027"}.mce-i-restoredraft:before{content:"\e028"}.mce-i-bold:before{content:"\e02a"}.mce-i-italic:before{content:"\e02b"}.mce-i-underline:before{content:"\e02c"}.mce-i-strikethrough:before{content:"\e02d"}.mce-i-visualchars:before{content:"\e02e"}.mce-i-visualblocks:before{content:"\e02e"}.mce-i-ltr:before{content:"\e02f"}.mce-i-rtl:before{content:"\e030"}.mce-i-copy:before{content:"\e031"}.mce-i-resize:before{content:"\e032"}.mce-i-browse:before{content:"\e034"}.mce-i-pastetext:before{content:"\e035"}.mce-i-rotateleft:before{content:"\eaa8"}.mce-i-rotateright:before{content:"\eaa9"}.mce-i-crop:before{content:"\ee78"}.mce-i-editimage:before{content:"\e915"}.mce-i-options:before{content:"\ec6a"}.mce-i-flipv:before{content:"\eaaa"}.mce-i-fliph:before{content:"\eaac"}.mce-i-zoomin:before{content:"\eb35"}.mce-i-zoomout:before{content:"\eb36"}.mce-i-sun:before{content:"\eccc"}.mce-i-moon:before{content:"\eccd"}.mce-i-arrowleft:before{content:"\edc0"}.mce-i-arrowright:before{content:"\e93c"}.mce-i-drop:before{content:"\e935"}.mce-i-contrast:before{content:"\ecd4"}.mce-i-sharpen:before{content:"\eba7"}.mce-i-resize2:before{content:"\edf9"}.mce-i-orientation:before{content:"\e601"}.mce-i-invert:before{content:"\e602"}.mce-i-gamma:before{content:"\e600"}.mce-i-remove:before{content:"\ed6a"}.mce-i-tablerowprops:before{content:"\e604"}.mce-i-tablecellprops:before{content:"\e605"}.mce-i-table2:before{content:"\e606"}.mce-i-tablemergecells:before{content:"\e607"}.mce-i-tableinsertcolbefore:before{content:"\e608"}.mce-i-tableinsertcolafter:before{content:"\e609"}.mce-i-tableinsertrowbefore:before{content:"\e60a"}.mce-i-tableinsertrowafter:before{content:"\e60b"}.mce-i-tablesplitcells:before{content:"\e60d"}.mce-i-tabledelete:before{content:"\e60e"}.mce-i-tableleftheader:before{content:"\e62a"}.mce-i-tabletopheader:before{content:"\e62b"}.mce-i-tabledeleterow:before{content:"\e800"}.mce-i-tabledeletecol:before{content:"\e801"}.mce-i-codesample:before{content:"\e603"}.mce-i-fill:before{content:"\e902"}.mce-i-borderwidth:before{content:"\e903"}.mce-i-line:before{content:"\e904"}.mce-i-count:before{content:"\e905"}.mce-i-translate:before{content:"\e907"}.mce-i-drag:before{content:"\e908"}.mce-i-home:before{content:"\e90b"}.mce-i-upload:before{content:"\e914"}.mce-i-bubble:before{content:"\e91c"}.mce-i-user:before{content:"\e91d"}.mce-i-lock:before{content:"\e926"}.mce-i-unlock:before{content:"\e927"}.mce-i-settings:before{content:"\e928"}.mce-i-remove2:before{content:"\e92a"}.mce-i-menu:before{content:"\e92d"}.mce-i-warning:before{content:"\e930"}.mce-i-question:before{content:"\e931"}.mce-i-pluscircle:before{content:"\e932"}.mce-i-info:before{content:"\e933"}.mce-i-notice:before{content:"\e934"}.mce-i-arrowup:before{content:"\e93b"}.mce-i-arrowdown:before{content:"\e93d"}.mce-i-arrowup2:before{content:"\e93f"}.mce-i-arrowdown2:before{content:"\e940"}.mce-i-menu2:before{content:"\e941"}.mce-i-newtab:before{content:"\e961"}.mce-i-a11y:before{content:"\e900"}.mce-i-plus:before{content:"\e93a"}.mce-i-insert:before{content:"\e93a"}.mce-i-minus:before{content:"\e939"}.mce-i-books:before{content:"\e911"}.mce-i-reload:before{content:"\e906"}.mce-i-toc:before{content:"\e901"}.mce-i-checkmark:before{content:"\e033"}.mce-i-checkbox:before,.mce-i-selected:before{content:"\e033"}.mce-i-insert{font-size:14px}.mce-i-selected{visibility:hidden}i.mce-i-backcolor{text-shadow:none;background:#BBB}.mce-rtl .mce-filepicker input{direction:ltr} \ No newline at end of file diff --git a/wp-includes/js/tinymce/skins/wordpress/wp-content.css b/wp-includes/js/tinymce/skins/wordpress/wp-content.css index ed00770f0..3bd97d442 100644 --- a/wp-includes/js/tinymce/skins/wordpress/wp-content.css +++ b/wp-includes/js/tinymce/skins/wordpress/wp-content.css @@ -265,6 +265,11 @@ a[data-wplink-url-error]:before { z-index: -1; } +/* Special styling for the suggestes policy text tutorial sections after they have been pasted in the editor. */ +p.wp-policy-help { + background-color: #ff0; +} + /** * WP Views */ diff --git a/wp-includes/js/tinymce/themes/inlite/theme.js b/wp-includes/js/tinymce/themes/inlite/theme.js index c249e1972..a3ad8b507 100644 --- a/wp-includes/js/tinymce/themes/inlite/theme.js +++ b/wp-includes/js/tinymce/themes/inlite/theme.js @@ -1,2168 +1,10644 @@ (function () { +var inlite = (function () { + 'use strict'; -var defs = {}; // id -> {dependencies, definition, instance (possibly undefined)} - -// Used when there is no 'main' module. -// The name is probably (hopefully) unique so minification removes for releases. -var register_3795 = function (id) { - var module = dem(id); - var fragments = id.split('.'); - var target = Function('return this;')(); - for (var i = 0; i < fragments.length - 1; ++i) { - if (target[fragments[i]] === undefined) - target[fragments[i]] = {}; - target = target[fragments[i]]; - } - target[fragments[fragments.length - 1]] = module; -}; - -var instantiate = function (id) { - var actual = defs[id]; - var dependencies = actual.deps; - var definition = actual.defn; - var len = dependencies.length; - var instances = new Array(len); - for (var i = 0; i < len; ++i) - instances[i] = dem(dependencies[i]); - var defResult = definition.apply(null, instances); - if (defResult === undefined) - throw 'module [' + id + '] returned undefined'; - actual.instance = defResult; -}; - -var def = function (id, dependencies, definition) { - if (typeof id !== 'string') - throw 'module id must be a string'; - else if (dependencies === undefined) - throw 'no dependencies for ' + id; - else if (definition === undefined) - throw 'no definition function for ' + id; - defs[id] = { - deps: dependencies, - defn: definition, - instance: undefined - }; -}; - -var dem = function (id) { - var actual = defs[id]; - if (actual === undefined) - throw 'module [' + id + '] was undefined'; - else if (actual.instance === undefined) - instantiate(id); - return actual.instance; -}; - -var req = function (ids, callback) { - var len = ids.length; - var instances = new Array(len); - for (var i = 0; i < len; ++i) - instances.push(dem(ids[i])); - callback.apply(null, callback); -}; - -var ephox = {}; - -ephox.bolt = { - module: { - api: { - define: def, - require: req, - demand: dem - } - } -}; - -var define = def; -var require = req; -var demand = dem; -// this helps with minificiation when using a lot of global references -var defineGlobal = function (id, ref) { - define(id, [], function () { return ref; }); -}; -/*jsc -["tinymce.themes.inlite.Theme","tinymce.core.ThemeManager","tinymce.core.ui.Api","tinymce.core.util.Delay","tinymce.themes.inlite.alien.Arr","tinymce.themes.inlite.alien.EditorSettings","tinymce.themes.inlite.core.ElementMatcher","tinymce.themes.inlite.core.Matcher","tinymce.themes.inlite.core.PredicateId","tinymce.themes.inlite.core.SelectionMatcher","tinymce.themes.inlite.core.SkinLoader","tinymce.themes.inlite.ui.Buttons","tinymce.themes.inlite.ui.Panel","global!tinymce.util.Tools.resolve","tinymce.themes.inlite.alien.Type","tinymce.themes.inlite.core.Measure","tinymce.core.util.Tools","tinymce.core.EditorManager","tinymce.core.dom.DOMUtils","tinymce.core.ui.Factory","tinymce.themes.inlite.ui.Toolbar","tinymce.themes.inlite.ui.Forms","tinymce.themes.inlite.core.Layout","tinymce.themes.inlite.file.Conversions","tinymce.themes.inlite.file.Picker","tinymce.themes.inlite.core.Actions","tinymce.themes.inlite.core.Convert","tinymce.core.util.Promise","tinymce.themes.inlite.alien.Uuid","tinymce.themes.inlite.alien.Unlink","tinymce.themes.inlite.core.UrlType","tinymce.core.geom.Rect","tinymce.themes.inlite.alien.Bookmark","tinymce.core.dom.TreeWalker","tinymce.core.dom.RangeUtils"] -jsc*/ -defineGlobal("global!tinymce.util.Tools.resolve", tinymce.util.Tools.resolve); -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.ThemeManager', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.ThemeManager'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.ui.Api', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.ui.Api'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.util.Delay', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.util.Delay'); - } -); - -/** - * Arr.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.inlite.alien.Arr', - [ - ], - function () { - var flatten = function (arr) { - return arr.reduce(function (results, item) { - return Array.isArray(item) ? results.concat(flatten(item)) : results.concat(item); - }, []); - }; + var global = tinymce.util.Tools.resolve('tinymce.ThemeManager'); - return { - flatten: flatten - }; - } -); - -/** - * Type.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.inlite.alien.Type', - [ - ], - function () { - var isType = function (type) { - return function (value) { - return typeof value === type; - }; - }; + var global$1 = tinymce.util.Tools.resolve('tinymce.Env'); - var isArray = function (value) { - return Array.isArray(value); - }; + var global$2 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils'); - var isNull = function (value) { - return value === null; - }; + var global$3 = tinymce.util.Tools.resolve('tinymce.util.Delay'); - var isObject = function (predicate) { - return function (value) { - return !isNull(value) && !isArray(value) && predicate(value); - }; - }; + var flatten = function (arr) { + return arr.reduce(function (results, item) { + return Array.isArray(item) ? results.concat(flatten(item)) : results.concat(item); + }, []); + }; + var $_5c3vrp16xjfuw8wdu = { flatten: flatten }; + var result = function (id, rect) { return { - isString: isType("string"), - isNumber: isType("number"), - isBoolean: isType("boolean"), - isFunction: isType("function"), - isObject: isObject(isType("object")), - isNull: isNull, - isArray: isArray - }; - } -); - -/** - * EditorSettings.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.inlite.alien.EditorSettings', - [ - 'tinymce.themes.inlite.alien.Type' - ], - function (Type) { - var validDefaultOrDie = function (value, predicate) { - if (predicate(value)) { - return true; - } - - throw new Error('Default value doesn\'t match requested type.'); - }; - - var getByTypeOr = function (predicate) { - return function (editor, name, defaultValue) { - var settings = editor.settings; - validDefaultOrDie(defaultValue, predicate); - return name in settings && predicate(settings[name]) ? settings[name] : defaultValue; - }; - }; - - var splitNoEmpty = function (str, delim) { - return str.split(delim).filter(function (item) { - return item.length > 0; - }); + id: id, + rect: rect }; - - var itemsToArray = function (value, defaultValue) { - var stringToItemsArray = function (value) { - return typeof value === 'string' ? splitNoEmpty(value, /[ ,]/) : value; - }; - - var boolToItemsArray = function (value, defaultValue) { - return value === false ? [] : defaultValue; - }; - - if (Type.isArray(value)) { - return value; - } else if (Type.isString(value)) { - return stringToItemsArray(value); - } else if (Type.isBoolean(value)) { - return boolToItemsArray(value, defaultValue); + }; + var match = function (editor, matchers) { + for (var i = 0; i < matchers.length; i++) { + var f = matchers[i]; + var result_1 = f(editor); + if (result_1) { + return result_1; } + } + return null; + }; + var $_8rky1516zjfuw8wdx = { + match: match, + result: result + }; - return defaultValue; + var fromClientRect = function (clientRect) { + return { + x: clientRect.left, + y: clientRect.top, + w: clientRect.width, + h: clientRect.height }; - - var getToolbarItemsOr = function (predicate) { - return function (editor, name, defaultValue) { - var value = name in editor.settings ? editor.settings[name] : defaultValue; - validDefaultOrDie(defaultValue, predicate); - return itemsToArray(value, defaultValue); - }; + }; + var toClientRect = function (geomRect) { + return { + left: geomRect.x, + top: geomRect.y, + width: geomRect.w, + height: geomRect.h, + right: geomRect.x + geomRect.w, + bottom: geomRect.y + geomRect.h }; + }; + var $_1tf7l3171jfuw8we0 = { + fromClientRect: fromClientRect, + toClientRect: toClientRect + }; + var toAbsolute = function (rect) { + var vp = global$2.DOM.getViewPort(); return { - // TODO: Add Option based getString, getBool if merged with core - getStringOr: getByTypeOr(Type.isString), - getBoolOr: getByTypeOr(Type.isBoolean), - getNumberOr: getByTypeOr(Type.isNumber), - getHandlerOr: getByTypeOr(Type.isFunction), - getToolbarItemsOr: getToolbarItemsOr(Type.isArray) - }; - } -); - -/** - * Matcher.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.inlite.core.Matcher', - [ - ], - function () { - // result :: String, Rect -> Matcher.result - var result = function (id, rect) { - return { - id: id, - rect: rect - }; + x: rect.x + vp.x, + y: rect.y + vp.y, + w: rect.w, + h: rect.h }; + }; + var measureElement = function (elm) { + var clientRect = elm.getBoundingClientRect(); + return toAbsolute({ + x: clientRect.left, + y: clientRect.top, + w: Math.max(elm.clientWidth, elm.offsetWidth), + h: Math.max(elm.clientHeight, elm.offsetHeight) + }); + }; + var getElementRect = function (editor, elm) { + return measureElement(elm); + }; + var getPageAreaRect = function (editor) { + return measureElement(editor.getElement().ownerDocument.body); + }; + var getContentAreaRect = function (editor) { + return measureElement(editor.getContentAreaContainer() || editor.getBody()); + }; + var getSelectionRect = function (editor) { + var clientRect = editor.selection.getBoundingClientRect(); + return clientRect ? toAbsolute($_1tf7l3171jfuw8we0.fromClientRect(clientRect)) : null; + }; + var $_eiro29170jfuw8wdy = { + getElementRect: getElementRect, + getPageAreaRect: getPageAreaRect, + getContentAreaRect: getContentAreaRect, + getSelectionRect: getSelectionRect + }; - // match :: Editor, [(Editor -> Matcher.result | Null)] -> Matcher.result | Null - var match = function (editor, matchers) { - for (var i = 0; i < matchers.length; i++) { - var f = matchers[i]; - var result = f(editor); - - if (result) { + var element = function (element, predicateIds) { + return function (editor) { + for (var i = 0; i < predicateIds.length; i++) { + if (predicateIds[i].predicate(element)) { + var result = $_8rky1516zjfuw8wdx.result(predicateIds[i].id, $_eiro29170jfuw8wdy.getElementRect(editor, element)); return result; } } - return null; }; - - return { - match: match, - result: result - }; - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.dom.DOMUtils', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.dom.DOMUtils'); - } -); - -/** - * Convert.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.inlite.core.Convert', - [ - ], - function () { - var fromClientRect = function (clientRect) { - return { - x: clientRect.left, - y: clientRect.top, - w: clientRect.width, - h: clientRect.height - }; + }; + var parent = function (elements, predicateIds) { + return function (editor) { + for (var i = 0; i < elements.length; i++) { + for (var x = 0; x < predicateIds.length; x++) { + if (predicateIds[x].predicate(elements[i])) { + return $_8rky1516zjfuw8wdx.result(predicateIds[x].id, $_eiro29170jfuw8wdy.getElementRect(editor, elements[i])); + } + } + } + return null; }; + }; + var $_9pht4216yjfuw8wdv = { + element: element, + parent: parent + }; - var toClientRect = function (geomRect) { - return { - left: geomRect.x, - top: geomRect.y, - width: geomRect.w, - height: geomRect.h, - right: geomRect.x + geomRect.w, - bottom: geomRect.y + geomRect.h - }; - }; + var global$4 = tinymce.util.Tools.resolve('tinymce.util.Tools'); + var create = function (id, predicate) { return { - fromClientRect: fromClientRect, - toClientRect: toClientRect + id: id, + predicate: predicate }; - } -); - -/** - * Measure.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.inlite.core.Measure', - [ - 'tinymce.core.dom.DOMUtils', - 'tinymce.themes.inlite.core.Convert' - ], - function (DOMUtils, Convert) { - var toAbsolute = function (rect) { - var vp = DOMUtils.DOM.getViewPort(); + }; + var fromContextToolbars = function (toolbars) { + return global$4.map(toolbars, function (toolbar) { + return create(toolbar.id, toolbar.predicate); + }); + }; + var $_g3lgux172jfuw8we1 = { + create: create, + fromContextToolbars: fromContextToolbars + }; - return { - x: rect.x + vp.x, - y: rect.y + vp.y, - w: rect.w, - h: rect.h - }; + var textSelection = function (id) { + return function (editor) { + if (!editor.selection.isCollapsed()) { + var result = $_8rky1516zjfuw8wdx.result(id, $_eiro29170jfuw8wdy.getSelectionRect(editor)); + return result; + } + return null; + }; + }; + var emptyTextBlock = function (elements, id) { + return function (editor) { + var i; + var textBlockElementsMap = editor.schema.getTextBlockElements(); + for (i = 0; i < elements.length; i++) { + if (elements[i].nodeName === 'TABLE') { + return null; + } + } + for (i = 0; i < elements.length; i++) { + if (elements[i].nodeName in textBlockElementsMap) { + if (editor.dom.isEmpty(elements[i])) { + return $_8rky1516zjfuw8wdx.result(id, $_eiro29170jfuw8wdy.getSelectionRect(editor)); + } + return null; + } + } + return null; }; + }; + var $_9xiw90174jfuw8we2 = { + textSelection: textSelection, + emptyTextBlock: emptyTextBlock + }; - var measureElement = function (elm) { - var clientRect = elm.getBoundingClientRect(); + var fireSkinLoaded = function (editor) { + editor.fire('SkinLoaded'); + }; + var fireBeforeRenderUI = function (editor) { + return editor.fire('BeforeRenderUI'); + }; + var $_5f627b176jfuw8we5 = { + fireSkinLoaded: fireSkinLoaded, + fireBeforeRenderUI: fireBeforeRenderUI + }; - return toAbsolute({ - x: clientRect.left, - y: clientRect.top, - w: Math.max(elm.clientWidth, elm.offsetWidth), - h: Math.max(elm.clientHeight, elm.offsetHeight) - }); - }; + var global$5 = tinymce.util.Tools.resolve('tinymce.EditorManager'); - var getElementRect = function (editor, elm) { - return measureElement(elm); + var isType = function (type) { + return function (value) { + return typeof value === type; }; - - var getPageAreaRect = function (editor) { - return measureElement(editor.getElement().ownerDocument.body); + }; + var isArray = function (value) { + return Array.isArray(value); + }; + var isNull = function (value) { + return value === null; + }; + var isObject = function (predicate) { + return function (value) { + return !isNull(value) && !isArray(value) && predicate(value); }; + }; + var isString = function (value) { + return isType('string')(value); + }; + var isNumber = function (value) { + return isType('number')(value); + }; + var isFunction = function (value) { + return isType('function')(value); + }; + var isBoolean = function (value) { + return isType('boolean')(value); + }; + var $_8t6wb917ajfuw8wec = { + isString: isString, + isNumber: isNumber, + isBoolean: isBoolean, + isFunction: isFunction, + isObject: isObject(isType('object')), + isNull: isNull, + isArray: isArray + }; - var getContentAreaRect = function (editor) { - return measureElement(editor.getContentAreaContainer() || editor.getBody()); + var validDefaultOrDie = function (value, predicate) { + if (predicate(value)) { + return true; + } + throw new Error('Default value doesn\'t match requested type.'); + }; + var getByTypeOr = function (predicate) { + return function (editor, name, defaultValue) { + var settings = editor.settings; + validDefaultOrDie(defaultValue, predicate); + return name in settings && predicate(settings[name]) ? settings[name] : defaultValue; }; - - var getSelectionRect = function (editor) { - var clientRect = editor.selection.getBoundingClientRect(); - return clientRect ? toAbsolute(Convert.fromClientRect(clientRect)) : null; + }; + var splitNoEmpty = function (str, delim) { + return str.split(delim).filter(function (item) { + return item.length > 0; + }); + }; + var itemsToArray = function (value, defaultValue) { + var stringToItemsArray = function (value) { + return typeof value === 'string' ? splitNoEmpty(value, /[ ,]/) : value; }; - - return { - getElementRect: getElementRect, - getPageAreaRect: getPageAreaRect, - getContentAreaRect: getContentAreaRect, - getSelectionRect: getSelectionRect + var boolToItemsArray = function (value, defaultValue) { + return value === false ? [] : defaultValue; }; - } -); - -/** - * ElementMatcher.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.inlite.core.ElementMatcher', - [ - 'tinymce.themes.inlite.core.Matcher', - 'tinymce.themes.inlite.core.Measure' - ], - function (Matcher, Measure) { - // element :: Element, [PredicateId] -> (Editor -> Matcher.result | Null) - var element = function (element, predicateIds) { - return function (editor) { - for (var i = 0; i < predicateIds.length; i++) { - if (predicateIds[i].predicate(element)) { - return Matcher.result(predicateIds[i].id, Measure.getElementRect(editor, element)); - } - } - - return null; - }; + if ($_8t6wb917ajfuw8wec.isArray(value)) { + return value; + } else if ($_8t6wb917ajfuw8wec.isString(value)) { + return stringToItemsArray(value); + } else if ($_8t6wb917ajfuw8wec.isBoolean(value)) { + return boolToItemsArray(value, defaultValue); + } + return defaultValue; + }; + var getToolbarItemsOr = function (predicate) { + return function (editor, name, defaultValue) { + var value = name in editor.settings ? editor.settings[name] : defaultValue; + validDefaultOrDie(defaultValue, predicate); + return itemsToArray(value, defaultValue); }; + }; + var $_r1zl2179jfuw8we9 = { + getStringOr: getByTypeOr($_8t6wb917ajfuw8wec.isString), + getBoolOr: getByTypeOr($_8t6wb917ajfuw8wec.isBoolean), + getNumberOr: getByTypeOr($_8t6wb917ajfuw8wec.isNumber), + getHandlerOr: getByTypeOr($_8t6wb917ajfuw8wec.isFunction), + getToolbarItemsOr: getToolbarItemsOr($_8t6wb917ajfuw8wec.isArray) + }; - // parent :: [Elements], [PredicateId] -> (Editor -> Matcher.result | Null) - var parent = function (elements, predicateIds) { - return function (editor) { - for (var i = 0; i < elements.length; i++) { - for (var x = 0; x < predicateIds.length; x++) { - if (predicateIds[x].predicate(elements[i])) { - return Matcher.result(predicateIds[x].id, Measure.getElementRect(editor, elements[i])); - } - } - } + var global$6 = tinymce.util.Tools.resolve('tinymce.geom.Rect'); - return null; - }; + var result$1 = function (rect, position) { + return { + rect: rect, + position: position }; - + }; + var moveTo = function (rect, toRect) { return { - element: element, - parent: parent + x: toRect.x, + y: toRect.y, + w: rect.w, + h: rect.h }; - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.util.Tools', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.util.Tools'); - } -); - -/** - * PredicateId.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.inlite.core.PredicateId', - [ - 'tinymce.core.util.Tools' - ], - function (Tools) { - var create = function (id, predicate) { - return { - id: id, - predicate: predicate - }; + }; + var calcByPositions = function (testPositions1, testPositions2, targetRect, contentAreaRect, panelRect) { + var relPos, relRect, outputPanelRect; + var paddedContentRect = { + x: contentAreaRect.x, + y: contentAreaRect.y, + w: contentAreaRect.w + (contentAreaRect.w < panelRect.w + targetRect.w ? panelRect.w : 0), + h: contentAreaRect.h + (contentAreaRect.h < panelRect.h + targetRect.h ? panelRect.h : 0) }; - - // fromContextToolbars :: [ContextToolbar] -> [PredicateId] - var fromContextToolbars = function (toolbars) { - return Tools.map(toolbars, function (toolbar) { - return create(toolbar.id, toolbar.predicate); + relPos = global$6.findBestRelativePosition(panelRect, targetRect, paddedContentRect, testPositions1); + targetRect = global$6.clamp(targetRect, paddedContentRect); + if (relPos) { + relRect = global$6.relativePosition(panelRect, targetRect, relPos); + outputPanelRect = moveTo(panelRect, relRect); + return result$1(outputPanelRect, relPos); + } + targetRect = global$6.intersect(paddedContentRect, targetRect); + if (targetRect) { + relPos = global$6.findBestRelativePosition(panelRect, targetRect, paddedContentRect, testPositions2); + if (relPos) { + relRect = global$6.relativePosition(panelRect, targetRect, relPos); + outputPanelRect = moveTo(panelRect, relRect); + return result$1(outputPanelRect, relPos); + } + outputPanelRect = moveTo(panelRect, targetRect); + return result$1(outputPanelRect, relPos); + } + return null; + }; + var calcInsert = function (targetRect, contentAreaRect, panelRect) { + return calcByPositions([ + 'cr-cl', + 'cl-cr' + ], [ + 'bc-tc', + 'bl-tl', + 'br-tr' + ], targetRect, contentAreaRect, panelRect); + }; + var calc = function (targetRect, contentAreaRect, panelRect) { + return calcByPositions([ + 'tc-bc', + 'bc-tc', + 'tl-bl', + 'bl-tl', + 'tr-br', + 'br-tr', + 'cr-cl', + 'cl-cr' + ], [ + 'bc-tc', + 'bl-tl', + 'br-tr', + 'cr-cl' + ], targetRect, contentAreaRect, panelRect); + }; + var userConstrain = function (handler, targetRect, contentAreaRect, panelRect) { + var userConstrainedPanelRect; + if (typeof handler === 'function') { + userConstrainedPanelRect = handler({ + elementRect: $_1tf7l3171jfuw8we0.toClientRect(targetRect), + contentAreaRect: $_1tf7l3171jfuw8we0.toClientRect(contentAreaRect), + panelRect: $_1tf7l3171jfuw8we0.toClientRect(panelRect) }); - }; + return $_1tf7l3171jfuw8we0.fromClientRect(userConstrainedPanelRect); + } + return panelRect; + }; + var defaultHandler = function (rects) { + return rects.panelRect; + }; + var $_4f0zwc17bjfuw8wee = { + calcInsert: calcInsert, + calc: calc, + userConstrain: userConstrain, + defaultHandler: defaultHandler + }; - return { - create: create, - fromContextToolbars: fromContextToolbars + var toAbsoluteUrl = function (editor, url) { + return editor.documentBaseURI.toAbsolute(url); + }; + var urlFromName = function (name) { + var prefix = global$5.baseURL + '/skins/'; + return name ? prefix + name : prefix + 'lightgray'; + }; + var getTextSelectionToolbarItems = function (editor) { + return $_r1zl2179jfuw8we9.getToolbarItemsOr(editor, 'selection_toolbar', [ + 'bold', + 'italic', + '|', + 'quicklink', + 'h2', + 'h3', + 'blockquote' + ]); + }; + var getInsertToolbarItems = function (editor) { + return $_r1zl2179jfuw8we9.getToolbarItemsOr(editor, 'insert_toolbar', [ + 'quickimage', + 'quicktable' + ]); + }; + var getPositionHandler = function (editor) { + return $_r1zl2179jfuw8we9.getHandlerOr(editor, 'inline_toolbar_position_handler', $_4f0zwc17bjfuw8wee.defaultHandler); + }; + var getSkinUrl = function (editor) { + var settings = editor.settings; + return settings.skin_url ? toAbsoluteUrl(editor, settings.skin_url) : urlFromName(settings.skin); + }; + var isSkinDisabled = function (editor) { + return editor.settings.skin === false; + }; + var $_44ho17177jfuw8we6 = { + getTextSelectionToolbarItems: getTextSelectionToolbarItems, + getInsertToolbarItems: getInsertToolbarItems, + getPositionHandler: getPositionHandler, + getSkinUrl: getSkinUrl, + isSkinDisabled: isSkinDisabled + }; + + var fireSkinLoaded$1 = function (editor, callback) { + var done = function () { + editor._skinLoaded = true; + $_5f627b176jfuw8we5.fireSkinLoaded(editor); + callback(); }; - } -); - -/** - * SelectionMatcher.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.inlite.core.SelectionMatcher', - [ - 'tinymce.themes.inlite.core.Matcher', - 'tinymce.themes.inlite.core.Measure' - ], - function (Matcher, Measure) { - // textSelection :: String -> (Editor -> Matcher.result | Null) - var textSelection = function (id) { - return function (editor) { - if (!editor.selection.isCollapsed()) { - return Matcher.result(id, Measure.getSelectionRect(editor)); - } - - return null; - }; + if (editor.initialized) { + done(); + } else { + editor.on('init', done); + } + }; + var load = function (editor, callback) { + var skinUrl = $_44ho17177jfuw8we6.getSkinUrl(editor); + var done = function () { + fireSkinLoaded$1(editor, callback); }; + if ($_44ho17177jfuw8we6.isSkinDisabled(editor)) { + done(); + } else { + global$2.DOM.styleSheetLoader.load(skinUrl + '/skin.min.css', done); + editor.contentCSS.push(skinUrl + '/content.inline.min.css'); + } + }; + var $_5qgx51175jfuw8we4 = { load: load }; - // emptyTextBlock :: [Elements], String -> (Editor -> Matcher.result | Null) - var emptyTextBlock = function (elements, id) { - return function (editor) { - var i, textBlockElementsMap = editor.schema.getTextBlockElements(); - - for (i = 0; i < elements.length; i++) { - if (elements[i].nodeName === 'TABLE') { - return null; - } - } - - for (i = 0; i < elements.length; i++) { - if (elements[i].nodeName in textBlockElementsMap) { - if (editor.dom.isEmpty(elements[i])) { - return Matcher.result(id, Measure.getSelectionRect(editor)); - } - - return null; - } - } - - return null; - }; + var getSelectionElements = function (editor) { + var node = editor.selection.getNode(); + var elms = editor.dom.getParents(node, '*'); + return elms; + }; + var createToolbar = function (editor, selector, id, items) { + var selectorPredicate = function (elm) { + return editor.dom.is(elm, selector); }; - return { - textSelection: textSelection, - emptyTextBlock: emptyTextBlock + predicate: selectorPredicate, + id: id, + items: items }; - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.EditorManager', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.EditorManager'); - } -); - -/** - * SkinLoader.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.inlite.core.SkinLoader', - [ - 'tinymce.core.EditorManager', - 'tinymce.core.dom.DOMUtils' - ], - function (EditorManager, DOMUtils) { - var fireSkinLoaded = function (editor, callback) { - var done = function () { - editor._skinLoaded = true; - editor.fire('SkinLoaded'); - callback(); - }; - - if (editor.initialized) { - done(); + }; + var getToolbars = function (editor) { + var contextToolbars = editor.contextToolbars; + return $_5c3vrp16xjfuw8wdu.flatten([ + contextToolbars ? contextToolbars : [], + createToolbar(editor, 'img', 'image', 'alignleft aligncenter alignright') + ]); + }; + var findMatchResult = function (editor, toolbars) { + var result, elements, contextToolbarsPredicateIds; + elements = getSelectionElements(editor); + contextToolbarsPredicateIds = $_g3lgux172jfuw8we1.fromContextToolbars(toolbars); + result = $_8rky1516zjfuw8wdx.match(editor, [ + $_9pht4216yjfuw8wdv.element(elements[0], contextToolbarsPredicateIds), + $_9xiw90174jfuw8we2.textSelection('text'), + $_9xiw90174jfuw8we2.emptyTextBlock(elements, 'insert'), + $_9pht4216yjfuw8wdv.parent(elements, contextToolbarsPredicateIds) + ]); + return result && result.rect ? result : null; + }; + var editorHasFocus = function (editor) { + return document.activeElement === editor.getBody(); + }; + var togglePanel = function (editor, panel) { + var toggle = function () { + var toolbars = getToolbars(editor); + var result = findMatchResult(editor, toolbars); + if (result) { + panel.show(editor, result.id, result.rect, toolbars); } else { - editor.on('init', done); + panel.hide(); } }; - - var urlFromName = function (name) { - var prefix = EditorManager.baseURL + '/skins/'; - return name ? prefix + name : prefix + 'lightgray'; - }; - - var toAbsoluteUrl = function (editor, url) { - return editor.documentBaseURI.toAbsolute(url); + return function () { + if (!editor.removed && editorHasFocus(editor)) { + toggle(); + } }; - - var load = function (editor, callback) { - var settings = editor.settings; - var skinUrl = settings.skin_url ? toAbsoluteUrl(editor, settings.skin_url) : urlFromName(settings.skin); - - var done = function () { - fireSkinLoaded(editor, callback); - }; - - DOMUtils.DOM.styleSheetLoader.load(skinUrl + '/skin.min.css', done); - editor.contentCSS.push(skinUrl + '/content.inline.min.css'); + }; + var repositionPanel = function (editor, panel) { + return function () { + var toolbars = getToolbars(editor); + var result = findMatchResult(editor, toolbars); + if (result) { + panel.reposition(editor, result.id, result.rect); + } }; - - return { - load: load + }; + var ignoreWhenFormIsVisible = function (editor, panel, f) { + return function () { + if (!editor.removed && !panel.inForm()) { + f(); + } }; - } -); - - - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.ui.Factory', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.ui.Factory'); - } -); - -/** - * Toolbar.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.inlite.ui.Toolbar', - [ - 'tinymce.core.util.Tools', - 'tinymce.core.ui.Factory', - 'tinymce.themes.inlite.alien.Type' - ], - function (Tools, Factory, Type) { - var getSelectorStateResult = function (itemName, item) { - var result = function (selector, handler) { - return { - selector: selector, - handler: handler - }; - }; - - var activeHandler = function (state) { - item.active(state); - }; - - var disabledHandler = function (state) { - item.disabled(state); - }; - - if (item.settings.stateSelector) { - return result(item.settings.stateSelector, activeHandler); + }; + var bindContextualToolbarsEvents = function (editor, panel) { + var throttledTogglePanel = global$3.throttle(togglePanel(editor, panel), 0); + var throttledTogglePanelWhenNotInForm = global$3.throttle(ignoreWhenFormIsVisible(editor, panel, togglePanel(editor, panel)), 0); + var reposition = repositionPanel(editor, panel); + editor.on('blur hide ObjectResizeStart', panel.hide); + editor.on('click', throttledTogglePanel); + editor.on('nodeChange mouseup', throttledTogglePanelWhenNotInForm); + editor.on('ResizeEditor keyup', throttledTogglePanel); + editor.on('ResizeWindow', reposition); + global$2.DOM.bind(global$1.container, 'scroll', reposition); + editor.on('remove', function () { + global$2.DOM.unbind(global$1.container, 'scroll', reposition); + panel.remove(); + }); + editor.shortcuts.add('Alt+F10,F10', '', panel.focus); + }; + var overrideLinkShortcut = function (editor, panel) { + editor.shortcuts.remove('meta+k'); + editor.shortcuts.add('meta+k', '', function () { + var toolbars = getToolbars(editor); + var result = $_8rky1516zjfuw8wdx.match(editor, [$_9xiw90174jfuw8we2.textSelection('quicklink')]); + if (result) { + panel.show(editor, result.id, result.rect, toolbars); } + }); + }; + var renderInlineUI = function (editor, panel) { + $_5qgx51175jfuw8we4.load(editor, function () { + bindContextualToolbarsEvents(editor, panel); + overrideLinkShortcut(editor, panel); + }); + return {}; + }; + var fail = function (message) { + throw new Error(message); + }; + var renderUI = function (editor, panel) { + return editor.inline ? renderInlineUI(editor, panel) : fail('inlite theme only supports inline mode.'); + }; + var $_gf138c16tjfuw8wdo = { renderUI: renderUI }; - if (item.settings.disabledStateSelector) { - return result(item.settings.disabledStateSelector, disabledHandler); + var noop = function () { + var x = []; + for (var _i = 0; _i < arguments.length; _i++) { + x[_i] = arguments[_i]; + } + }; + var noarg = function (f) { + return function () { + var x = []; + for (var _i = 0; _i < arguments.length; _i++) { + x[_i] = arguments[_i]; } - - return null; - }; - - var bindSelectorChanged = function (editor, itemName, item) { - return function () { - var result = getSelectorStateResult(itemName, item); - if (result !== null) { - editor.selection.selectorChanged(result.selector, result.handler); - } - }; + return f(); }; - - var itemsToArray = function (items) { - if (Type.isArray(items)) { - return items; - } else if (Type.isString(items)) { - return items.split(/[ ,]/); + }; + var compose = function (fa, fb) { + return function () { + var x = []; + for (var _i = 0; _i < arguments.length; _i++) { + x[_i] = arguments[_i]; } - - return []; + return fa(fb.apply(null, arguments)); }; - - var create = function (editor, name, items) { - var toolbarItems = [], buttonGroup; - - if (!items) { - return; + }; + var constant = function (value) { + return function () { + return value; + }; + }; + var identity = function (x) { + return x; + }; + var tripleEquals = function (a, b) { + return a === b; + }; + var curry = function (f) { + var x = []; + for (var _i = 1; _i < arguments.length; _i++) { + x[_i - 1] = arguments[_i]; + } + var args = new Array(arguments.length - 1); + for (var i = 1; i < arguments.length; i++) + args[i - 1] = arguments[i]; + return function () { + var x = []; + for (var _i = 0; _i < arguments.length; _i++) { + x[_i] = arguments[_i]; } - - Tools.each(itemsToArray(items), function (item) { - var itemName; - - if (item == '|') { - buttonGroup = null; - } else { - if (editor.buttons[item]) { - if (!buttonGroup) { - buttonGroup = { type: 'buttongroup', items: [] }; - toolbarItems.push(buttonGroup); - } - - itemName = item; - item = editor.buttons[itemName]; - - if (typeof item == 'function') { - item = item(); - } - - item.type = item.type || 'button'; - - item = Factory.create(item); - item.on('postRender', bindSelectorChanged(editor, itemName, item)); - buttonGroup.items.push(item); - } - } - }); - - return Factory.create({ - type: 'toolbar', - layout: 'flow', - name: name, - items: toolbarItems - }); - }; - - return { - create: create - }; - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.util.Promise', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.util.Promise'); - } -); - -/** - * Uuid.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -/** - * Generates unique ids this is the same as in core but since - * it's not exposed as a global we can't access it. - */ -define( - "tinymce.themes.inlite.alien.Uuid", - [ - ], - function () { - var count = 0; - - var seed = function () { - var rnd = function () { - return Math.round(Math.random() * 0xFFFFFFFF).toString(36); - }; - - return 's' + Date.now().toString(36) + rnd() + rnd() + rnd(); - }; - - var uuid = function (prefix) { - return prefix + (count++) + seed(); - }; - - return { - uuid: uuid - }; - } -); - -/** - * Bookmark.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.inlite.alien.Bookmark', - [ - ], - function () { - /** - * Returns a range bookmark. This will convert indexed bookmarks into temporary span elements with - * index 0 so that they can be restored properly after the DOM has been modified. Text bookmarks will not have spans - * added to them since they can be restored after a dom operation. - * - * So this: <p><b>|</b><b>|</b></p> - * becomes: <p><b><span data-mce-type="bookmark">|</span></b><b data-mce-type="bookmark">|</span></b></p> - * - * @param {DOMRange} rng DOM Range to get bookmark on. - * @return {Object} Bookmark object. - */ - var create = function (dom, rng) { - var bookmark = {}; - - function setupEndPoint(start) { - var offsetNode, container, offset; - - container = rng[start ? 'startContainer' : 'endContainer']; - offset = rng[start ? 'startOffset' : 'endOffset']; - - if (container.nodeType == 1) { - offsetNode = dom.create('span', { 'data-mce-type': 'bookmark' }); - - if (container.hasChildNodes()) { - offset = Math.min(offset, container.childNodes.length - 1); - - if (start) { - container.insertBefore(offsetNode, container.childNodes[offset]); - } else { - dom.insertAfter(offsetNode, container.childNodes[offset]); - } - } else { - container.appendChild(offsetNode); - } - - container = offsetNode; - offset = 0; - } - - bookmark[start ? 'startContainer' : 'endContainer'] = container; - bookmark[start ? 'startOffset' : 'endOffset'] = offset; - } - - setupEndPoint(true); - - if (!rng.collapsed) { - setupEndPoint(); - } - - return bookmark; - }; - - /** - * Moves the selection to the current bookmark and removes any selection container wrappers. - * - * @param {Object} bookmark Bookmark object to move selection to. - */ - var resolve = function (dom, bookmark) { - function restoreEndPoint(start) { - var container, offset, node; - - function nodeIndex(container) { - var node = container.parentNode.firstChild, idx = 0; - - while (node) { - if (node == container) { - return idx; - } - - // Skip data-mce-type=bookmark nodes - if (node.nodeType != 1 || node.getAttribute('data-mce-type') != 'bookmark') { - idx++; - } - - node = node.nextSibling; - } - - return -1; - } - - container = node = bookmark[start ? 'startContainer' : 'endContainer']; - offset = bookmark[start ? 'startOffset' : 'endOffset']; - - if (!container) { - return; - } - - if (container.nodeType == 1) { - offset = nodeIndex(container); - container = container.parentNode; - dom.remove(node); - } - - bookmark[start ? 'startContainer' : 'endContainer'] = container; - bookmark[start ? 'startOffset' : 'endOffset'] = offset; - } - - restoreEndPoint(true); - restoreEndPoint(); - - var rng = dom.createRng(); - - rng.setStart(bookmark.startContainer, bookmark.startOffset); - - if (bookmark.endContainer) { - rng.setEnd(bookmark.endContainer, bookmark.endOffset); - } - - return rng; - }; - - return { - create: create, - resolve: resolve + var newArgs = new Array(arguments.length); + for (var j = 0; j < newArgs.length; j++) + newArgs[j] = arguments[j]; + var all = args.concat(newArgs); + return f.apply(null, all); }; - } -); - - - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.dom.TreeWalker', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.dom.TreeWalker'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.dom.RangeUtils', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.dom.RangeUtils'); - } -); - -/** - * Unlink.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -/** - * Unlink implementation that doesn't leave partial links for example it would produce: - * a[b<a href="x">c]d</a>e -> a[bc]de - * instead of: - * a[b<a href="x">c]d</a>e -> a[bc]<a href="x">d</a>e - */ -define( - "tinymce.themes.inlite.alien.Unlink", - [ - 'tinymce.themes.inlite.alien.Bookmark', - 'tinymce.core.util.Tools', - 'tinymce.core.dom.TreeWalker', - 'tinymce.core.dom.RangeUtils' - ], - function (Bookmark, Tools, TreeWalker, RangeUtils) { - var getSelectedElements = function (rootElm, startNode, endNode) { - var walker, node, elms = []; - - walker = new TreeWalker(startNode, rootElm); - for (node = startNode; node; node = walker.next()) { - if (node.nodeType === 1) { - elms.push(node); - } - - if (node === endNode) { - break; - } + }; + var not = function (f) { + return function () { + var x = []; + for (var _i = 0; _i < arguments.length; _i++) { + x[_i] = arguments[_i]; } - - return elms; - }; - - var unwrapElements = function (editor, elms) { - var bookmark, dom, selection; - - dom = editor.dom; - selection = editor.selection; - bookmark = Bookmark.create(dom, selection.getRng()); - - Tools.each(elms, function (elm) { - editor.dom.remove(elm, true); - }); - - selection.setRng(Bookmark.resolve(dom, bookmark)); - }; - - var isLink = function (elm) { - return elm.nodeName === 'A' && elm.hasAttribute('href'); - }; - - var getParentAnchorOrSelf = function (dom, elm) { - var anchorElm = dom.getParent(elm, isLink); - return anchorElm ? anchorElm : elm; - }; - - var getSelectedAnchors = function (editor) { - var startElm, endElm, rootElm, anchorElms, selection, dom, rng; - - selection = editor.selection; - dom = editor.dom; - rng = selection.getRng(); - startElm = getParentAnchorOrSelf(dom, RangeUtils.getNode(rng.startContainer, rng.startOffset)); - endElm = RangeUtils.getNode(rng.endContainer, rng.endOffset); - rootElm = editor.getBody(); - anchorElms = Tools.grep(getSelectedElements(rootElm, startElm, endElm), isLink); - - return anchorElms; - }; - - var unlinkSelection = function (editor) { - unwrapElements(editor, getSelectedAnchors(editor)); + return !f.apply(null, arguments); }; - - return { - unlinkSelection: unlinkSelection - }; - } -); - -/** - * Actions.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.inlite.core.Actions', - [ - 'tinymce.themes.inlite.alien.Uuid', - 'tinymce.themes.inlite.alien.Unlink' - ], - function (Uuid, Unlink) { - var createTableHtml = function (cols, rows) { - var x, y, html; - - html = '<table data-mce-id="mce" style="width: 100%">'; - html += '<tbody>'; - - for (y = 0; y < rows; y++) { - html += '<tr>'; - - for (x = 0; x < cols; x++) { - html += '<td><br></td>'; - } - - html += '</tr>'; - } - - html += '</tbody>'; - html += '</table>'; - - return html; + }; + var die = function (msg) { + return function () { + throw new Error(msg); }; + }; + var apply = function (f) { + return f(); + }; + var call = function (f) { + f(); + }; + var never = constant(false); + var always = constant(true); + var $_d9fl1s17gjfuw8wew = { + noop: noop, + noarg: noarg, + compose: compose, + constant: constant, + identity: identity, + tripleEquals: tripleEquals, + curry: curry, + not: not, + die: die, + apply: apply, + call: call, + never: never, + always: always + }; - var getInsertedElement = function (editor) { - var elms = editor.dom.select('*[data-mce-id]'); - return elms[0]; + var never$1 = $_d9fl1s17gjfuw8wew.never; + var always$1 = $_d9fl1s17gjfuw8wew.always; + var none = function () { + return NONE; + }; + var NONE = function () { + var eq = function (o) { + return o.isNone(); }; - - var insertTable = function (editor, cols, rows) { - editor.undoManager.transact(function () { - var tableElm, cellElm; - - editor.insertContent(createTableHtml(cols, rows)); - - tableElm = getInsertedElement(editor); - tableElm.removeAttribute('data-mce-id'); - cellElm = editor.dom.select('td,th', tableElm); - editor.selection.setCursorLocation(cellElm[0], 0); - }); + var call = function (thunk) { + return thunk(); }; - - var formatBlock = function (editor, formatName) { - editor.execCommand('FormatBlock', false, formatName); + var id = function (n) { + return n; }; - - var insertBlob = function (editor, base64, blob) { - var blobCache, blobInfo; - - blobCache = editor.editorUpload.blobCache; - blobInfo = blobCache.create(Uuid.uuid('mceu'), blob, base64); - blobCache.add(blobInfo); - - editor.insertContent(editor.dom.createHTML('img', { src: blobInfo.blobUri() })); + var noop = function () { }; - - var collapseSelectionToEnd = function (editor) { - editor.selection.collapse(false); + var me = { + fold: function (n, s) { + return n(); + }, + is: never$1, + isSome: never$1, + isNone: always$1, + getOr: id, + getOrThunk: call, + getOrDie: function (msg) { + throw new Error(msg || 'error: getOrDie called on none.'); + }, + or: id, + orThunk: call, + map: none, + ap: none, + each: noop, + bind: none, + flatten: none, + exists: never$1, + forall: always$1, + filter: none, + equals: eq, + equals_: eq, + toArray: function () { + return []; + }, + toString: $_d9fl1s17gjfuw8wew.constant('none()') }; - - var unlink = function (editor) { - editor.focus(); - Unlink.unlinkSelection(editor); - collapseSelectionToEnd(editor); + if (Object.freeze) + Object.freeze(me); + return me; + }(); + var some = function (a) { + var constant_a = function () { + return a; }; - - var changeHref = function (editor, elm, url) { - editor.focus(); - editor.dom.setAttrib(elm, 'href', url); - collapseSelectionToEnd(editor); + var self = function () { + return me; }; - - var insertLink = function (editor, url) { - editor.execCommand('mceInsertLink', false, { href: url }); - collapseSelectionToEnd(editor); + var map = function (f) { + return some(f(a)); }; - - var updateOrInsertLink = function (editor, url) { - var elm = editor.dom.getParent(editor.selection.getStart(), 'a[href]'); - elm ? changeHref(editor, elm, url) : insertLink(editor, url); + var bind = function (f) { + return f(a); }; - - var createLink = function (editor, url) { - url.trim().length === 0 ? unlink(editor) : updateOrInsertLink(editor, url); + var me = { + fold: function (n, s) { + return s(a); + }, + is: function (v) { + return a === v; + }, + isSome: always$1, + isNone: never$1, + getOr: constant_a, + getOrThunk: constant_a, + getOrDie: constant_a, + or: self, + orThunk: self, + map: map, + ap: function (optfab) { + return optfab.fold(none, function (fab) { + return some(fab(a)); + }); + }, + each: function (f) { + f(a); + }, + bind: bind, + flatten: constant_a, + exists: bind, + forall: bind, + filter: function (f) { + return f(a) ? me : NONE; + }, + equals: function (o) { + return o.is(a); + }, + equals_: function (o, elementEq) { + return o.fold(never$1, function (b) { + return elementEq(a, b); + }); + }, + toArray: function () { + return [a]; + }, + toString: function () { + return 'some(' + a + ')'; + } }; + return me; + }; + var from = function (value) { + return value === null || value === undefined ? NONE : some(value); + }; + var Option = { + some: some, + none: none, + from: from + }; - return { - insertTable: insertTable, - formatBlock: formatBlock, - insertBlob: insertBlob, - createLink: createLink, - unlink: unlink + var typeOf = function (x) { + if (x === null) + return 'null'; + var t = typeof x; + if (t === 'object' && Array.prototype.isPrototypeOf(x)) + return 'array'; + if (t === 'object' && String.prototype.isPrototypeOf(x)) + return 'string'; + return t; + }; + var isType$1 = function (type) { + return function (value) { + return typeOf(value) === type; }; - } -); - -/** - * UrlType.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ + }; + var $_d02u5u17hjfuw8wey = { + isString: isType$1('string'), + isObject: isType$1('object'), + isArray: isType$1('array'), + isNull: isType$1('null'), + isBoolean: isType$1('boolean'), + isUndefined: isType$1('undefined'), + isFunction: isType$1('function'), + isNumber: isType$1('number') + }; -define( - 'tinymce.themes.inlite.core.UrlType', - [ - ], - function () { - var isDomainLike = function (href) { - return /^www\.|\.(com|org|edu|gov|uk|net|ca|de|jp|fr|au|us|ru|ch|it|nl|se|no|es|mil)$/i.test(href.trim()); + var rawIndexOf = function () { + var pIndexOf = Array.prototype.indexOf; + var fastIndex = function (xs, x) { + return pIndexOf.call(xs, x); }; - - var isAbsolute = function (href) { - return /^https?:\/\//.test(href.trim()); + var slowIndex = function (xs, x) { + return slowIndexOf(xs, x); }; - + return pIndexOf === undefined ? slowIndex : fastIndex; + }(); + var indexOf = function (xs, x) { + var r = rawIndexOf(xs, x); + return r === -1 ? Option.none() : Option.some(r); + }; + var contains = function (xs, x) { + return rawIndexOf(xs, x) > -1; + }; + var exists = function (xs, pred) { + return findIndex(xs, pred).isSome(); + }; + var range = function (num, f) { + var r = []; + for (var i = 0; i < num; i++) { + r.push(f(i)); + } + return r; + }; + var chunk = function (array, size) { + var r = []; + for (var i = 0; i < array.length; i += size) { + var s = array.slice(i, i + size); + r.push(s); + } + return r; + }; + var map = function (xs, f) { + var len = xs.length; + var r = new Array(len); + for (var i = 0; i < len; i++) { + var x = xs[i]; + r[i] = f(x, i, xs); + } + return r; + }; + var each = function (xs, f) { + for (var i = 0, len = xs.length; i < len; i++) { + var x = xs[i]; + f(x, i, xs); + } + }; + var eachr = function (xs, f) { + for (var i = xs.length - 1; i >= 0; i--) { + var x = xs[i]; + f(x, i, xs); + } + }; + var partition = function (xs, pred) { + var pass = []; + var fail = []; + for (var i = 0, len = xs.length; i < len; i++) { + var x = xs[i]; + var arr = pred(x, i, xs) ? pass : fail; + arr.push(x); + } return { - isDomainLike: isDomainLike, - isAbsolute: isAbsolute - }; - } -); - - - -/** - * Forms.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.inlite.ui.Forms', - [ - 'tinymce.core.util.Tools', - 'tinymce.core.ui.Factory', - 'tinymce.core.util.Promise', - 'tinymce.themes.inlite.core.Actions', - 'tinymce.themes.inlite.core.UrlType' - ], - function (Tools, Factory, Promise, Actions, UrlType) { - var focusFirstTextBox = function (form) { - form.find('textbox').eq(0).each(function (ctrl) { - ctrl.focus(); - }); - }; - - var createForm = function (name, spec) { - var form = Factory.create( - Tools.extend({ - type: 'form', - layout: 'flex', - direction: 'row', - padding: 5, - name: name, - spacing: 3 - }, spec) - ); - - form.on('show', function () { - focusFirstTextBox(form); - }); - - return form; - }; - - var toggleVisibility = function (ctrl, state) { - return state ? ctrl.show() : ctrl.hide(); + pass: pass, + fail: fail }; + }; + var filter = function (xs, pred) { + var r = []; + for (var i = 0, len = xs.length; i < len; i++) { + var x = xs[i]; + if (pred(x, i, xs)) { + r.push(x); + } + } + return r; + }; + var groupBy = function (xs, f) { + if (xs.length === 0) { + return []; + } else { + var wasType = f(xs[0]); + var r = []; + var group = []; + for (var i = 0, len = xs.length; i < len; i++) { + var x = xs[i]; + var type = f(x); + if (type !== wasType) { + r.push(group); + group = []; + } + wasType = type; + group.push(x); + } + if (group.length !== 0) { + r.push(group); + } + return r; + } + }; + var foldr = function (xs, f, acc) { + eachr(xs, function (x) { + acc = f(acc, x); + }); + return acc; + }; + var foldl = function (xs, f, acc) { + each(xs, function (x) { + acc = f(acc, x); + }); + return acc; + }; + var find = function (xs, pred) { + for (var i = 0, len = xs.length; i < len; i++) { + var x = xs[i]; + if (pred(x, i, xs)) { + return Option.some(x); + } + } + return Option.none(); + }; + var findIndex = function (xs, pred) { + for (var i = 0, len = xs.length; i < len; i++) { + var x = xs[i]; + if (pred(x, i, xs)) { + return Option.some(i); + } + } + return Option.none(); + }; + var slowIndexOf = function (xs, x) { + for (var i = 0, len = xs.length; i < len; ++i) { + if (xs[i] === x) { + return i; + } + } + return -1; + }; + var push = Array.prototype.push; + var flatten$1 = function (xs) { + var r = []; + for (var i = 0, len = xs.length; i < len; ++i) { + if (!Array.prototype.isPrototypeOf(xs[i])) + throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs); + push.apply(r, xs[i]); + } + return r; + }; + var bind = function (xs, f) { + var output = map(xs, f); + return flatten$1(output); + }; + var forall = function (xs, pred) { + for (var i = 0, len = xs.length; i < len; ++i) { + var x = xs[i]; + if (pred(x, i, xs) !== true) { + return false; + } + } + return true; + }; + var equal = function (a1, a2) { + return a1.length === a2.length && forall(a1, function (x, i) { + return x === a2[i]; + }); + }; + var slice = Array.prototype.slice; + var reverse = function (xs) { + var r = slice.call(xs, 0); + r.reverse(); + return r; + }; + var difference = function (a1, a2) { + return filter(a1, function (x) { + return !contains(a2, x); + }); + }; + var mapToObject = function (xs, f) { + var r = {}; + for (var i = 0, len = xs.length; i < len; i++) { + var x = xs[i]; + r[String(x)] = f(x, i); + } + return r; + }; + var pure = function (x) { + return [x]; + }; + var sort = function (xs, comparator) { + var copy = slice.call(xs, 0); + copy.sort(comparator); + return copy; + }; + var head = function (xs) { + return xs.length === 0 ? Option.none() : Option.some(xs[0]); + }; + var last = function (xs) { + return xs.length === 0 ? Option.none() : Option.some(xs[xs.length - 1]); + }; + var from$1 = $_d02u5u17hjfuw8wey.isFunction(Array.from) ? Array.from : function (x) { + return slice.call(x); + }; + var $_1doq1817ejfuw8wen = { + map: map, + each: each, + eachr: eachr, + partition: partition, + filter: filter, + groupBy: groupBy, + indexOf: indexOf, + foldr: foldr, + foldl: foldl, + find: find, + findIndex: findIndex, + flatten: flatten$1, + bind: bind, + forall: forall, + exists: exists, + contains: contains, + equal: equal, + reverse: reverse, + chunk: chunk, + difference: difference, + mapToObject: mapToObject, + pure: pure, + sort: sort, + range: range, + head: head, + last: last, + from: from$1 + }; - var askAboutPrefix = function (editor, href) { - return new Promise(function (resolve) { - editor.windowManager.confirm( - 'The URL you entered seems to be an external link. Do you want to add the required http:// prefix?', - function (result) { - var output = result === true ? 'http://' + href : href; - resolve(output); + var count = 0; + var funcs = { + id: function () { + return 'mceu_' + count++; + }, + create: function (name, attrs, children) { + var elm = document.createElement(name); + global$2.DOM.setAttribs(elm, attrs); + if (typeof children === 'string') { + elm.innerHTML = children; + } else { + global$4.each(children, function (child) { + if (child.nodeType) { + elm.appendChild(child); } - ); - }); - }; - - var convertLinkToAbsolute = function (editor, href) { - return !UrlType.isAbsolute(href) && UrlType.isDomainLike(href) ? askAboutPrefix(editor, href) : Promise.resolve(href); - }; - - var createQuickLinkForm = function (editor, hide) { - var attachState = {}; - - var unlink = function () { - editor.focus(); - Actions.unlink(editor); - hide(); + }); + } + return elm; + }, + createFragment: function (html) { + return global$2.DOM.createFragment(html); + }, + getWindowSize: function () { + return global$2.DOM.getViewPort(); + }, + getSize: function (elm) { + var width, height; + if (elm.getBoundingClientRect) { + var rect = elm.getBoundingClientRect(); + width = Math.max(rect.width || rect.right - rect.left, elm.offsetWidth); + height = Math.max(rect.height || rect.bottom - rect.bottom, elm.offsetHeight); + } else { + width = elm.offsetWidth; + height = elm.offsetHeight; + } + return { + width: width, + height: height }; + }, + getPos: function (elm, root) { + return global$2.DOM.getPos(elm, root || funcs.getContainer()); + }, + getContainer: function () { + return global$1.container ? global$1.container : document.body; + }, + getViewPort: function (win) { + return global$2.DOM.getViewPort(win); + }, + get: function (id) { + return document.getElementById(id); + }, + addClass: function (elm, cls) { + return global$2.DOM.addClass(elm, cls); + }, + removeClass: function (elm, cls) { + return global$2.DOM.removeClass(elm, cls); + }, + hasClass: function (elm, cls) { + return global$2.DOM.hasClass(elm, cls); + }, + toggleClass: function (elm, cls, state) { + return global$2.DOM.toggleClass(elm, cls, state); + }, + css: function (elm, name, value) { + return global$2.DOM.setStyle(elm, name, value); + }, + getRuntimeStyle: function (elm, name) { + return global$2.DOM.getStyle(elm, name, true); + }, + on: function (target, name, callback, scope) { + return global$2.DOM.bind(target, name, callback, scope); + }, + off: function (target, name, callback) { + return global$2.DOM.unbind(target, name, callback); + }, + fire: function (target, name, args) { + return global$2.DOM.fire(target, name, args); + }, + innerHtml: function (elm, html) { + global$2.DOM.setHTML(elm, html); + } + }; - var onChangeHandler = function (e) { - var meta = e.meta; + var global$7 = tinymce.util.Tools.resolve('tinymce.dom.DomQuery'); - if (meta && meta.attach) { - attachState = { - href: this.value(), - attach: meta.attach - }; - } - }; + var global$8 = tinymce.util.Tools.resolve('tinymce.util.Class'); - var onShowHandler = function (e) { - if (e.control === this) { - var elm, linkurl = ''; + var global$9 = tinymce.util.Tools.resolve('tinymce.util.EventDispatcher'); - elm = editor.dom.getParent(editor.selection.getStart(), 'a[href]'); - if (elm) { - linkurl = editor.dom.getAttrib(elm, 'href'); + var $_b17qji17ojfuw8wg0 = { + parseBox: function (value) { + var len; + var radix = 10; + if (!value) { + return; + } + if (typeof value === 'number') { + value = value || 0; + return { + top: value, + left: value, + bottom: value, + right: value + }; + } + value = value.split(' '); + len = value.length; + if (len === 1) { + value[1] = value[2] = value[3] = value[0]; + } else if (len === 2) { + value[2] = value[0]; + value[3] = value[1]; + } else if (len === 3) { + value[3] = value[1]; + } + return { + top: parseInt(value[0], radix) || 0, + right: parseInt(value[1], radix) || 0, + bottom: parseInt(value[2], radix) || 0, + left: parseInt(value[3], radix) || 0 + }; + }, + measureBox: function (elm, prefix) { + function getStyle(name) { + var defaultView = elm.ownerDocument.defaultView; + if (defaultView) { + var computedStyle = defaultView.getComputedStyle(elm, null); + if (computedStyle) { + name = name.replace(/[A-Z]/g, function (a) { + return '-' + a; + }); + return computedStyle.getPropertyValue(name); + } else { + return null; } - - this.fromJSON({ - linkurl: linkurl - }); - - toggleVisibility(this.find('#unlink'), elm); - this.find('#linkurl')[0].focus(); } + return elm.currentStyle[name]; + } + function getSide(name) { + var val = parseFloat(getStyle(name)); + return isNaN(val) ? 0 : val; + } + return { + top: getSide(prefix + 'TopWidth'), + right: getSide(prefix + 'RightWidth'), + bottom: getSide(prefix + 'BottomWidth'), + left: getSide(prefix + 'LeftWidth') }; + } + }; - return createForm('quicklink', { - items: [ - { type: 'button', name: 'unlink', icon: 'unlink', onclick: unlink, tooltip: 'Remove link' }, - { type: 'filepicker', name: 'linkurl', placeholder: 'Paste or type a link', filetype: 'file', onchange: onChangeHandler }, - { type: 'button', icon: 'checkmark', subtype: 'primary', tooltip: 'Ok', onclick: 'submit' } - ], - onshow: onShowHandler, - onsubmit: function (e) { - convertLinkToAbsolute(editor, e.data.linkurl).then(function (url) { - editor.undoManager.transact(function () { - if (url === attachState.href) { - attachState.attach(); - attachState = {}; - } - - Actions.createLink(editor, url); - }); - - hide(); + function noop$1() { + } + function ClassList(onchange) { + this.cls = []; + this.cls._map = {}; + this.onchange = onchange || noop$1; + this.prefix = ''; + } + global$4.extend(ClassList.prototype, { + add: function (cls) { + if (cls && !this.contains(cls)) { + this.cls._map[cls] = true; + this.cls.push(cls); + this._change(); + } + return this; + }, + remove: function (cls) { + if (this.contains(cls)) { + var i = void 0; + for (i = 0; i < this.cls.length; i++) { + if (this.cls[i] === cls) { + break; + } + } + this.cls.splice(i, 1); + delete this.cls._map[cls]; + this._change(); + } + return this; + }, + toggle: function (cls, state) { + var curState = this.contains(cls); + if (curState !== state) { + if (curState) { + this.remove(cls); + } else { + this.add(cls); + } + this._change(); + } + return this; + }, + contains: function (cls) { + return !!this.cls._map[cls]; + }, + _change: function () { + delete this.clsValue; + this.onchange.call(this); + } + }); + ClassList.prototype.toString = function () { + var value; + if (this.clsValue) { + return this.clsValue; + } + value = ''; + for (var i = 0; i < this.cls.length; i++) { + if (i > 0) { + value += ' '; + } + value += this.prefix + this.cls[i]; + } + return value; + }; + + function unique(array) { + var uniqueItems = []; + var i = array.length, item; + while (i--) { + item = array[i]; + if (!item.__checked) { + uniqueItems.push(item); + item.__checked = 1; + } + } + i = uniqueItems.length; + while (i--) { + delete uniqueItems[i].__checked; + } + return uniqueItems; + } + var expression = /^([\w\\*]+)?(?:#([\w\-\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i; + var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g; + var whiteSpace = /^\s*|\s*$/g; + var Collection; + var Selector = global$8.extend({ + init: function (selector) { + var match = this.match; + function compileNameFilter(name) { + if (name) { + name = name.toLowerCase(); + return function (item) { + return name === '*' || item.type === name; + }; + } + } + function compileIdFilter(id) { + if (id) { + return function (item) { + return item._name === id; + }; + } + } + function compileClassesFilter(classes) { + if (classes) { + classes = classes.split('.'); + return function (item) { + var i = classes.length; + while (i--) { + if (!item.classes.contains(classes[i])) { + return false; + } + } + return true; + }; + } + } + function compileAttrFilter(name, cmp, check) { + if (name) { + return function (item) { + var value = item[name] ? item[name]() : ''; + return !cmp ? !!check : cmp === '=' ? value === check : cmp === '*=' ? value.indexOf(check) >= 0 : cmp === '~=' ? (' ' + value + ' ').indexOf(' ' + check + ' ') >= 0 : cmp === '!=' ? value !== check : cmp === '^=' ? value.indexOf(check) === 0 : cmp === '$=' ? value.substr(value.length - check.length) === check : false; + }; + } + } + function compilePsuedoFilter(name) { + var notSelectors; + if (name) { + name = /(?:not\((.+)\))|(.+)/i.exec(name); + if (!name[1]) { + name = name[2]; + return function (item, index, length) { + return name === 'first' ? index === 0 : name === 'last' ? index === length - 1 : name === 'even' ? index % 2 === 0 : name === 'odd' ? index % 2 === 1 : item[name] ? item[name]() : false; + }; + } + notSelectors = parseChunks(name[1], []); + return function (item) { + return !match(item, notSelectors); + }; + } + } + function compile(selector, filters, direct) { + var parts; + function add(filter) { + if (filter) { + filters.push(filter); + } + } + parts = expression.exec(selector.replace(whiteSpace, '')); + add(compileNameFilter(parts[1])); + add(compileIdFilter(parts[2])); + add(compileClassesFilter(parts[3])); + add(compileAttrFilter(parts[4], parts[5], parts[6])); + add(compilePsuedoFilter(parts[7])); + filters.pseudo = !!parts[7]; + filters.direct = direct; + return filters; + } + function parseChunks(selector, selectors) { + var parts = []; + var extra, matches, i; + do { + chunker.exec(''); + matches = chunker.exec(selector); + if (matches) { + selector = matches[3]; + parts.push(matches[1]); + if (matches[2]) { + extra = matches[3]; + break; + } + } + } while (matches); + if (extra) { + parseChunks(extra, selectors); + } + selector = []; + for (i = 0; i < parts.length; i++) { + if (parts[i] !== '>') { + selector.push(compile(parts[i], [], parts[i - 1] === '>')); + } + } + selectors.push(selector); + return selectors; + } + this._selectors = parseChunks(selector, []); + }, + match: function (control, selectors) { + var i, l, si, sl, selector, fi, fl, filters, index, length, siblings, count, item; + selectors = selectors || this._selectors; + for (i = 0, l = selectors.length; i < l; i++) { + selector = selectors[i]; + sl = selector.length; + item = control; + count = 0; + for (si = sl - 1; si >= 0; si--) { + filters = selector[si]; + while (item) { + if (filters.pseudo) { + siblings = item.parent().items(); + index = length = siblings.length; + while (index--) { + if (siblings[index] === item) { + break; + } + } + } + for (fi = 0, fl = filters.length; fi < fl; fi++) { + if (!filters[fi](item, index, length)) { + fi = fl + 1; + break; + } + } + if (fi === fl) { + count++; + break; + } else { + if (si === sl - 1) { + break; + } + } + item = item.parent(); + } + } + if (count === sl) { + return true; + } + } + return false; + }, + find: function (container) { + var matches = [], i, l; + var selectors = this._selectors; + function collect(items, selector, index) { + var i, l, fi, fl, item; + var filters = selector[index]; + for (i = 0, l = items.length; i < l; i++) { + item = items[i]; + for (fi = 0, fl = filters.length; fi < fl; fi++) { + if (!filters[fi](item, i, l)) { + fi = fl + 1; + break; + } + } + if (fi === fl) { + if (index === selector.length - 1) { + matches.push(item); + } else { + if (item.items) { + collect(item.items(), selector, index + 1); + } + } + } else if (filters.direct) { + return; + } + if (item.items) { + collect(item.items(), selector, index); + } + } + } + if (container.items) { + for (i = 0, l = selectors.length; i < l; i++) { + collect(container.items(), selectors[i], 0); + } + if (l > 1) { + matches = unique(matches); + } + } + if (!Collection) { + Collection = Selector.Collection; + } + return new Collection(matches); + } + }); + + var Collection$1; + var proto; + var push$1 = Array.prototype.push; + var slice$1 = Array.prototype.slice; + proto = { + length: 0, + init: function (items) { + if (items) { + this.add(items); + } + }, + add: function (items) { + var self = this; + if (!global$4.isArray(items)) { + if (items instanceof Collection$1) { + self.add(items.toArray()); + } else { + push$1.call(self, items); + } + } else { + push$1.apply(self, items); + } + return self; + }, + set: function (items) { + var self = this; + var len = self.length; + var i; + self.length = 0; + self.add(items); + for (i = self.length; i < len; i++) { + delete self[i]; + } + return self; + }, + filter: function (selector) { + var self = this; + var i, l; + var matches = []; + var item, match; + if (typeof selector === 'string') { + selector = new Selector(selector); + match = function (item) { + return selector.match(item); + }; + } else { + match = selector; + } + for (i = 0, l = self.length; i < l; i++) { + item = self[i]; + if (match(item)) { + matches.push(item); + } + } + return new Collection$1(matches); + }, + slice: function () { + return new Collection$1(slice$1.apply(this, arguments)); + }, + eq: function (index) { + return index === -1 ? this.slice(index) : this.slice(index, +index + 1); + }, + each: function (callback) { + global$4.each(this, callback); + return this; + }, + toArray: function () { + return global$4.toArray(this); + }, + indexOf: function (ctrl) { + var self = this; + var i = self.length; + while (i--) { + if (self[i] === ctrl) { + break; + } + } + return i; + }, + reverse: function () { + return new Collection$1(global$4.toArray(this).reverse()); + }, + hasClass: function (cls) { + return this[0] ? this[0].classes.contains(cls) : false; + }, + prop: function (name, value) { + var self = this; + var item; + if (value !== undefined) { + self.each(function (item) { + if (item[name]) { + item[name](value); + } + }); + return self; + } + item = self[0]; + if (item && item[name]) { + return item[name](); + } + }, + exec: function (name) { + var self = this, args = global$4.toArray(arguments).slice(1); + self.each(function (item) { + if (item[name]) { + item[name].apply(item, args); + } + }); + return self; + }, + remove: function () { + var i = this.length; + while (i--) { + this[i].remove(); + } + return this; + }, + addClass: function (cls) { + return this.each(function (item) { + item.classes.add(cls); + }); + }, + removeClass: function (cls) { + return this.each(function (item) { + item.classes.remove(cls); + }); + } + }; + global$4.each('fire on off show hide append prepend before after reflow'.split(' '), function (name) { + proto[name] = function () { + var args = global$4.toArray(arguments); + this.each(function (ctrl) { + if (name in ctrl) { + ctrl[name].apply(ctrl, args); + } + }); + return this; + }; + }); + global$4.each('text name disabled active selected checked visible parent value data'.split(' '), function (name) { + proto[name] = function (value) { + return this.prop(name, value); + }; + }); + Collection$1 = global$8.extend(proto); + Selector.Collection = Collection$1; + var Collection$2 = Collection$1; + + var Binding = function (settings) { + this.create = settings.create; + }; + Binding.create = function (model, name) { + return new Binding({ + create: function (otherModel, otherName) { + var bindings; + var fromSelfToOther = function (e) { + otherModel.set(otherName, e.value); + }; + var fromOtherToSelf = function (e) { + model.set(name, e.value); + }; + otherModel.on('change:' + otherName, fromOtherToSelf); + model.on('change:' + name, fromSelfToOther); + bindings = otherModel._bindings; + if (!bindings) { + bindings = otherModel._bindings = []; + otherModel.on('destroy', function () { + var i = bindings.length; + while (i--) { + bindings[i](); + } + }); + } + bindings.push(function () { + model.off('change:' + name, fromSelfToOther); + }); + return model.get(name); + } + }); + }; + + var global$10 = tinymce.util.Tools.resolve('tinymce.util.Observable'); + + function isNode(node) { + return node.nodeType > 0; + } + function isEqual(a, b) { + var k, checked; + if (a === b) { + return true; + } + if (a === null || b === null) { + return a === b; + } + if (typeof a !== 'object' || typeof b !== 'object') { + return a === b; + } + if (global$4.isArray(b)) { + if (a.length !== b.length) { + return false; + } + k = a.length; + while (k--) { + if (!isEqual(a[k], b[k])) { + return false; + } + } + } + if (isNode(a) || isNode(b)) { + return a === b; + } + checked = {}; + for (k in b) { + if (!isEqual(a[k], b[k])) { + return false; + } + checked[k] = true; + } + for (k in a) { + if (!checked[k] && !isEqual(a[k], b[k])) { + return false; + } + } + return true; + } + var ObservableObject = global$8.extend({ + Mixins: [global$10], + init: function (data) { + var name, value; + data = data || {}; + for (name in data) { + value = data[name]; + if (value instanceof Binding) { + data[name] = value.create(this, name); + } + } + this.data = data; + }, + set: function (name, value) { + var key, args; + var oldValue = this.data[name]; + if (value instanceof Binding) { + value = value.create(this, name); + } + if (typeof name === 'object') { + for (key in name) { + this.set(key, name[key]); + } + return this; + } + if (!isEqual(oldValue, value)) { + this.data[name] = value; + args = { + target: this, + name: name, + value: value, + oldValue: oldValue + }; + this.fire('change:' + name, args); + this.fire('change', args); + } + return this; + }, + get: function (name) { + return this.data[name]; + }, + has: function (name) { + return name in this.data; + }, + bind: function (name) { + return Binding.create(this, name); + }, + destroy: function () { + this.fire('destroy'); + } + }); + + var dirtyCtrls = {}; + var animationFrameRequested; + var $_13g7tw17vjfuw8wgk = { + add: function (ctrl) { + var parent = ctrl.parent(); + if (parent) { + if (!parent._layout || parent._layout.isNative()) { + return; + } + if (!dirtyCtrls[parent._id]) { + dirtyCtrls[parent._id] = parent; + } + if (!animationFrameRequested) { + animationFrameRequested = true; + global$3.requestAnimationFrame(function () { + var id, ctrl; + animationFrameRequested = false; + for (id in dirtyCtrls) { + ctrl = dirtyCtrls[id]; + if (ctrl.state.get('rendered')) { + ctrl.reflow(); + } + } + dirtyCtrls = {}; + }, document.body); + } + } + }, + remove: function (ctrl) { + if (dirtyCtrls[ctrl._id]) { + delete dirtyCtrls[ctrl._id]; + } + } + }; + + var getUiContainerDelta = function (ctrl) { + var uiContainer = getUiContainer(ctrl); + if (uiContainer && global$2.DOM.getStyle(uiContainer, 'position', true) !== 'static') { + var containerPos = global$2.DOM.getPos(uiContainer); + var dx = uiContainer.scrollLeft - containerPos.x; + var dy = uiContainer.scrollTop - containerPos.y; + return Option.some({ + x: dx, + y: dy + }); + } else { + return Option.none(); + } + }; + var setUiContainer = function (editor, ctrl) { + var uiContainer = global$2.DOM.select(editor.settings.ui_container)[0]; + ctrl.getRoot().uiContainer = uiContainer; + }; + var getUiContainer = function (ctrl) { + return ctrl ? ctrl.getRoot().uiContainer : null; + }; + var inheritUiContainer = function (fromCtrl, toCtrl) { + return toCtrl.uiContainer = getUiContainer(fromCtrl); + }; + var $_dbjzo817wjfuw8wgl = { + getUiContainerDelta: getUiContainerDelta, + setUiContainer: setUiContainer, + getUiContainer: getUiContainer, + inheritUiContainer: inheritUiContainer + }; + + var hasMouseWheelEventSupport = 'onmousewheel' in document; + var hasWheelEventSupport = false; + var classPrefix = 'mce-'; + var Control; + var idCounter = 0; + var proto$1 = { + Statics: { classPrefix: classPrefix }, + isRtl: function () { + return Control.rtl; + }, + classPrefix: classPrefix, + init: function (settings) { + var self = this; + var classes, defaultClasses; + function applyClasses(classes) { + var i; + classes = classes.split(' '); + for (i = 0; i < classes.length; i++) { + self.classes.add(classes[i]); + } + } + self.settings = settings = global$4.extend({}, self.Defaults, settings); + self._id = settings.id || 'mceu_' + idCounter++; + self._aria = { role: settings.role }; + self._elmCache = {}; + self.$ = global$7; + self.state = new ObservableObject({ + visible: true, + active: false, + disabled: false, + value: '' + }); + self.data = new ObservableObject(settings.data); + self.classes = new ClassList(function () { + if (self.state.get('rendered')) { + self.getEl().className = this.toString(); + } + }); + self.classes.prefix = self.classPrefix; + classes = settings.classes; + if (classes) { + if (self.Defaults) { + defaultClasses = self.Defaults.classes; + if (defaultClasses && classes !== defaultClasses) { + applyClasses(defaultClasses); + } + } + applyClasses(classes); + } + global$4.each('title text name visible disabled active value'.split(' '), function (name) { + if (name in settings) { + self[name](settings[name]); + } + }); + self.on('click', function () { + if (self.disabled()) { + return false; + } + }); + self.settings = settings; + self.borderBox = $_b17qji17ojfuw8wg0.parseBox(settings.border); + self.paddingBox = $_b17qji17ojfuw8wg0.parseBox(settings.padding); + self.marginBox = $_b17qji17ojfuw8wg0.parseBox(settings.margin); + if (settings.hidden) { + self.hide(); + } + }, + Properties: 'parent,name', + getContainerElm: function () { + var uiContainer = $_dbjzo817wjfuw8wgl.getUiContainer(this); + return uiContainer ? uiContainer : funcs.getContainer(); + }, + getParentCtrl: function (elm) { + var ctrl; + var lookup = this.getRoot().controlIdLookup; + while (elm && lookup) { + ctrl = lookup[elm.id]; + if (ctrl) { + break; + } + elm = elm.parentNode; + } + return ctrl; + }, + initLayoutRect: function () { + var self = this; + var settings = self.settings; + var borderBox, layoutRect; + var elm = self.getEl(); + var width, height, minWidth, minHeight, autoResize; + var startMinWidth, startMinHeight, initialSize; + borderBox = self.borderBox = self.borderBox || $_b17qji17ojfuw8wg0.measureBox(elm, 'border'); + self.paddingBox = self.paddingBox || $_b17qji17ojfuw8wg0.measureBox(elm, 'padding'); + self.marginBox = self.marginBox || $_b17qji17ojfuw8wg0.measureBox(elm, 'margin'); + initialSize = funcs.getSize(elm); + startMinWidth = settings.minWidth; + startMinHeight = settings.minHeight; + minWidth = startMinWidth || initialSize.width; + minHeight = startMinHeight || initialSize.height; + width = settings.width; + height = settings.height; + autoResize = settings.autoResize; + autoResize = typeof autoResize !== 'undefined' ? autoResize : !width && !height; + width = width || minWidth; + height = height || minHeight; + var deltaW = borderBox.left + borderBox.right; + var deltaH = borderBox.top + borderBox.bottom; + var maxW = settings.maxWidth || 65535; + var maxH = settings.maxHeight || 65535; + self._layoutRect = layoutRect = { + x: settings.x || 0, + y: settings.y || 0, + w: width, + h: height, + deltaW: deltaW, + deltaH: deltaH, + contentW: width - deltaW, + contentH: height - deltaH, + innerW: width - deltaW, + innerH: height - deltaH, + startMinWidth: startMinWidth || 0, + startMinHeight: startMinHeight || 0, + minW: Math.min(minWidth, maxW), + minH: Math.min(minHeight, maxH), + maxW: maxW, + maxH: maxH, + autoResize: autoResize, + scrollW: 0 + }; + self._lastLayoutRect = {}; + return layoutRect; + }, + layoutRect: function (newRect) { + var self = this; + var curRect = self._layoutRect, lastLayoutRect, size, deltaWidth, deltaHeight, repaintControls; + if (!curRect) { + curRect = self.initLayoutRect(); + } + if (newRect) { + deltaWidth = curRect.deltaW; + deltaHeight = curRect.deltaH; + if (newRect.x !== undefined) { + curRect.x = newRect.x; + } + if (newRect.y !== undefined) { + curRect.y = newRect.y; + } + if (newRect.minW !== undefined) { + curRect.minW = newRect.minW; + } + if (newRect.minH !== undefined) { + curRect.minH = newRect.minH; + } + size = newRect.w; + if (size !== undefined) { + size = size < curRect.minW ? curRect.minW : size; + size = size > curRect.maxW ? curRect.maxW : size; + curRect.w = size; + curRect.innerW = size - deltaWidth; + } + size = newRect.h; + if (size !== undefined) { + size = size < curRect.minH ? curRect.minH : size; + size = size > curRect.maxH ? curRect.maxH : size; + curRect.h = size; + curRect.innerH = size - deltaHeight; + } + size = newRect.innerW; + if (size !== undefined) { + size = size < curRect.minW - deltaWidth ? curRect.minW - deltaWidth : size; + size = size > curRect.maxW - deltaWidth ? curRect.maxW - deltaWidth : size; + curRect.innerW = size; + curRect.w = size + deltaWidth; + } + size = newRect.innerH; + if (size !== undefined) { + size = size < curRect.minH - deltaHeight ? curRect.minH - deltaHeight : size; + size = size > curRect.maxH - deltaHeight ? curRect.maxH - deltaHeight : size; + curRect.innerH = size; + curRect.h = size + deltaHeight; + } + if (newRect.contentW !== undefined) { + curRect.contentW = newRect.contentW; + } + if (newRect.contentH !== undefined) { + curRect.contentH = newRect.contentH; + } + lastLayoutRect = self._lastLayoutRect; + if (lastLayoutRect.x !== curRect.x || lastLayoutRect.y !== curRect.y || lastLayoutRect.w !== curRect.w || lastLayoutRect.h !== curRect.h) { + repaintControls = Control.repaintControls; + if (repaintControls) { + if (repaintControls.map && !repaintControls.map[self._id]) { + repaintControls.push(self); + repaintControls.map[self._id] = true; + } + } + lastLayoutRect.x = curRect.x; + lastLayoutRect.y = curRect.y; + lastLayoutRect.w = curRect.w; + lastLayoutRect.h = curRect.h; + } + return self; + } + return curRect; + }, + repaint: function () { + var self = this; + var style, bodyStyle, bodyElm, rect, borderBox; + var borderW, borderH, lastRepaintRect, round, value; + round = !document.createRange ? Math.round : function (value) { + return value; + }; + style = self.getEl().style; + rect = self._layoutRect; + lastRepaintRect = self._lastRepaintRect || {}; + borderBox = self.borderBox; + borderW = borderBox.left + borderBox.right; + borderH = borderBox.top + borderBox.bottom; + if (rect.x !== lastRepaintRect.x) { + style.left = round(rect.x) + 'px'; + lastRepaintRect.x = rect.x; + } + if (rect.y !== lastRepaintRect.y) { + style.top = round(rect.y) + 'px'; + lastRepaintRect.y = rect.y; + } + if (rect.w !== lastRepaintRect.w) { + value = round(rect.w - borderW); + style.width = (value >= 0 ? value : 0) + 'px'; + lastRepaintRect.w = rect.w; + } + if (rect.h !== lastRepaintRect.h) { + value = round(rect.h - borderH); + style.height = (value >= 0 ? value : 0) + 'px'; + lastRepaintRect.h = rect.h; + } + if (self._hasBody && rect.innerW !== lastRepaintRect.innerW) { + value = round(rect.innerW); + bodyElm = self.getEl('body'); + if (bodyElm) { + bodyStyle = bodyElm.style; + bodyStyle.width = (value >= 0 ? value : 0) + 'px'; + } + lastRepaintRect.innerW = rect.innerW; + } + if (self._hasBody && rect.innerH !== lastRepaintRect.innerH) { + value = round(rect.innerH); + bodyElm = bodyElm || self.getEl('body'); + if (bodyElm) { + bodyStyle = bodyStyle || bodyElm.style; + bodyStyle.height = (value >= 0 ? value : 0) + 'px'; + } + lastRepaintRect.innerH = rect.innerH; + } + self._lastRepaintRect = lastRepaintRect; + self.fire('repaint', {}, false); + }, + updateLayoutRect: function () { + var self = this; + self.parent()._lastRect = null; + funcs.css(self.getEl(), { + width: '', + height: '' + }); + self._layoutRect = self._lastRepaintRect = self._lastLayoutRect = null; + self.initLayoutRect(); + }, + on: function (name, callback) { + var self = this; + function resolveCallbackName(name) { + var callback, scope; + if (typeof name !== 'string') { + return name; + } + return function (e) { + if (!callback) { + self.parentsAndSelf().each(function (ctrl) { + var callbacks = ctrl.settings.callbacks; + if (callbacks && (callback = callbacks[name])) { + scope = ctrl; + return false; + } + }); + } + if (!callback) { + e.action = name; + this.fire('execute', e); + return; + } + return callback.call(scope, e); + }; + } + getEventDispatcher(self).on(name, resolveCallbackName(callback)); + return self; + }, + off: function (name, callback) { + getEventDispatcher(this).off(name, callback); + return this; + }, + fire: function (name, args, bubble) { + var self = this; + args = args || {}; + if (!args.control) { + args.control = self; + } + args = getEventDispatcher(self).fire(name, args); + if (bubble !== false && self.parent) { + var parent_1 = self.parent(); + while (parent_1 && !args.isPropagationStopped()) { + parent_1.fire(name, args, false); + parent_1 = parent_1.parent(); + } + } + return args; + }, + hasEventListeners: function (name) { + return getEventDispatcher(this).has(name); + }, + parents: function (selector) { + var self = this; + var ctrl, parents = new Collection$2(); + for (ctrl = self.parent(); ctrl; ctrl = ctrl.parent()) { + parents.add(ctrl); + } + if (selector) { + parents = parents.filter(selector); + } + return parents; + }, + parentsAndSelf: function (selector) { + return new Collection$2(this).add(this.parents(selector)); + }, + next: function () { + var parentControls = this.parent().items(); + return parentControls[parentControls.indexOf(this) + 1]; + }, + prev: function () { + var parentControls = this.parent().items(); + return parentControls[parentControls.indexOf(this) - 1]; + }, + innerHtml: function (html) { + this.$el.html(html); + return this; + }, + getEl: function (suffix) { + var id = suffix ? this._id + '-' + suffix : this._id; + if (!this._elmCache[id]) { + this._elmCache[id] = global$7('#' + id)[0]; + } + return this._elmCache[id]; + }, + show: function () { + return this.visible(true); + }, + hide: function () { + return this.visible(false); + }, + focus: function () { + try { + this.getEl().focus(); + } catch (ex) { + } + return this; + }, + blur: function () { + this.getEl().blur(); + return this; + }, + aria: function (name, value) { + var self = this, elm = self.getEl(self.ariaTarget); + if (typeof value === 'undefined') { + return self._aria[name]; + } + self._aria[name] = value; + if (self.state.get('rendered')) { + elm.setAttribute(name === 'role' ? name : 'aria-' + name, value); + } + return self; + }, + encode: function (text, translate) { + if (translate !== false) { + text = this.translate(text); + } + return (text || '').replace(/[&<>"]/g, function (match) { + return '&#' + match.charCodeAt(0) + ';'; + }); + }, + translate: function (text) { + return Control.translate ? Control.translate(text) : text; + }, + before: function (items) { + var self = this, parent = self.parent(); + if (parent) { + parent.insert(items, parent.items().indexOf(self), true); + } + return self; + }, + after: function (items) { + var self = this, parent = self.parent(); + if (parent) { + parent.insert(items, parent.items().indexOf(self)); + } + return self; + }, + remove: function () { + var self = this; + var elm = self.getEl(); + var parent = self.parent(); + var newItems, i; + if (self.items) { + var controls = self.items().toArray(); + i = controls.length; + while (i--) { + controls[i].remove(); + } + } + if (parent && parent.items) { + newItems = []; + parent.items().each(function (item) { + if (item !== self) { + newItems.push(item); + } + }); + parent.items().set(newItems); + parent._lastRect = null; + } + if (self._eventsRoot && self._eventsRoot === self) { + global$7(elm).off(); + } + var lookup = self.getRoot().controlIdLookup; + if (lookup) { + delete lookup[self._id]; + } + if (elm && elm.parentNode) { + elm.parentNode.removeChild(elm); + } + self.state.set('rendered', false); + self.state.destroy(); + self.fire('remove'); + return self; + }, + renderBefore: function (elm) { + global$7(elm).before(this.renderHtml()); + this.postRender(); + return this; + }, + renderTo: function (elm) { + global$7(elm || this.getContainerElm()).append(this.renderHtml()); + this.postRender(); + return this; + }, + preRender: function () { + }, + render: function () { + }, + renderHtml: function () { + return '<div id="' + this._id + '" class="' + this.classes + '"></div>'; + }, + postRender: function () { + var self = this; + var settings = self.settings; + var elm, box, parent, name, parentEventsRoot; + self.$el = global$7(self.getEl()); + self.state.set('rendered', true); + for (name in settings) { + if (name.indexOf('on') === 0) { + self.on(name.substr(2), settings[name]); + } + } + if (self._eventsRoot) { + for (parent = self.parent(); !parentEventsRoot && parent; parent = parent.parent()) { + parentEventsRoot = parent._eventsRoot; + } + if (parentEventsRoot) { + for (name in parentEventsRoot._nativeEvents) { + self._nativeEvents[name] = true; + } + } + } + bindPendingEvents(self); + if (settings.style) { + elm = self.getEl(); + if (elm) { + elm.setAttribute('style', settings.style); + elm.style.cssText = settings.style; + } + } + if (self.settings.border) { + box = self.borderBox; + self.$el.css({ + 'border-top-width': box.top, + 'border-right-width': box.right, + 'border-bottom-width': box.bottom, + 'border-left-width': box.left + }); + } + var root = self.getRoot(); + if (!root.controlIdLookup) { + root.controlIdLookup = {}; + } + root.controlIdLookup[self._id] = self; + for (var key in self._aria) { + self.aria(key, self._aria[key]); + } + if (self.state.get('visible') === false) { + self.getEl().style.display = 'none'; + } + self.bindStates(); + self.state.on('change:visible', function (e) { + var state = e.value; + var parentCtrl; + if (self.state.get('rendered')) { + self.getEl().style.display = state === false ? 'none' : ''; + self.getEl().getBoundingClientRect(); + } + parentCtrl = self.parent(); + if (parentCtrl) { + parentCtrl._lastRect = null; + } + self.fire(state ? 'show' : 'hide'); + $_13g7tw17vjfuw8wgk.add(self); + }); + self.fire('postrender', {}, false); + }, + bindStates: function () { + }, + scrollIntoView: function (align) { + function getOffset(elm, rootElm) { + var x, y, parent = elm; + x = y = 0; + while (parent && parent !== rootElm && parent.nodeType) { + x += parent.offsetLeft || 0; + y += parent.offsetTop || 0; + parent = parent.offsetParent; + } + return { + x: x, + y: y + }; + } + var elm = this.getEl(), parentElm = elm.parentNode; + var x, y, width, height, parentWidth, parentHeight; + var pos = getOffset(elm, parentElm); + x = pos.x; + y = pos.y; + width = elm.offsetWidth; + height = elm.offsetHeight; + parentWidth = parentElm.clientWidth; + parentHeight = parentElm.clientHeight; + if (align === 'end') { + x -= parentWidth - width; + y -= parentHeight - height; + } else if (align === 'center') { + x -= parentWidth / 2 - width / 2; + y -= parentHeight / 2 - height / 2; + } + parentElm.scrollLeft = x; + parentElm.scrollTop = y; + return this; + }, + getRoot: function () { + var ctrl = this, rootControl; + var parents = []; + while (ctrl) { + if (ctrl.rootControl) { + rootControl = ctrl.rootControl; + break; + } + parents.push(ctrl); + rootControl = ctrl; + ctrl = ctrl.parent(); + } + if (!rootControl) { + rootControl = this; + } + var i = parents.length; + while (i--) { + parents[i].rootControl = rootControl; + } + return rootControl; + }, + reflow: function () { + $_13g7tw17vjfuw8wgk.remove(this); + var parent = this.parent(); + if (parent && parent._layout && !parent._layout.isNative()) { + parent.reflow(); + } + return this; + } + }; + global$4.each('text title visible disabled active value'.split(' '), function (name) { + proto$1[name] = function (value) { + if (arguments.length === 0) { + return this.state.get(name); + } + if (typeof value !== 'undefined') { + this.state.set(name, value); + } + return this; + }; + }); + Control = global$8.extend(proto$1); + function getEventDispatcher(obj) { + if (!obj._eventDispatcher) { + obj._eventDispatcher = new global$9({ + scope: obj, + toggleEvent: function (name, state) { + if (state && global$9.isNative(name)) { + if (!obj._nativeEvents) { + obj._nativeEvents = {}; + } + obj._nativeEvents[name] = true; + if (obj.state.get('rendered')) { + bindPendingEvents(obj); + } + } + } + }); + } + return obj._eventDispatcher; + } + function bindPendingEvents(eventCtrl) { + var i, l, parents, eventRootCtrl, nativeEvents, name; + function delegate(e) { + var control = eventCtrl.getParentCtrl(e.target); + if (control) { + control.fire(e.type, e); + } + } + function mouseLeaveHandler() { + var ctrl = eventRootCtrl._lastHoverCtrl; + if (ctrl) { + ctrl.fire('mouseleave', { target: ctrl.getEl() }); + ctrl.parents().each(function (ctrl) { + ctrl.fire('mouseleave', { target: ctrl.getEl() }); + }); + eventRootCtrl._lastHoverCtrl = null; + } + } + function mouseEnterHandler(e) { + var ctrl = eventCtrl.getParentCtrl(e.target), lastCtrl = eventRootCtrl._lastHoverCtrl, idx = 0, i, parents, lastParents; + if (ctrl !== lastCtrl) { + eventRootCtrl._lastHoverCtrl = ctrl; + parents = ctrl.parents().toArray().reverse(); + parents.push(ctrl); + if (lastCtrl) { + lastParents = lastCtrl.parents().toArray().reverse(); + lastParents.push(lastCtrl); + for (idx = 0; idx < lastParents.length; idx++) { + if (parents[idx] !== lastParents[idx]) { + break; + } + } + for (i = lastParents.length - 1; i >= idx; i--) { + lastCtrl = lastParents[i]; + lastCtrl.fire('mouseleave', { target: lastCtrl.getEl() }); + } + } + for (i = idx; i < parents.length; i++) { + ctrl = parents[i]; + ctrl.fire('mouseenter', { target: ctrl.getEl() }); + } + } + } + function fixWheelEvent(e) { + e.preventDefault(); + if (e.type === 'mousewheel') { + e.deltaY = -1 / 40 * e.wheelDelta; + if (e.wheelDeltaX) { + e.deltaX = -1 / 40 * e.wheelDeltaX; + } + } else { + e.deltaX = 0; + e.deltaY = e.detail; + } + e = eventCtrl.fire('wheel', e); + } + nativeEvents = eventCtrl._nativeEvents; + if (nativeEvents) { + parents = eventCtrl.parents().toArray(); + parents.unshift(eventCtrl); + for (i = 0, l = parents.length; !eventRootCtrl && i < l; i++) { + eventRootCtrl = parents[i]._eventsRoot; + } + if (!eventRootCtrl) { + eventRootCtrl = parents[parents.length - 1] || eventCtrl; + } + eventCtrl._eventsRoot = eventRootCtrl; + for (l = i, i = 0; i < l; i++) { + parents[i]._eventsRoot = eventRootCtrl; + } + var eventRootDelegates = eventRootCtrl._delegates; + if (!eventRootDelegates) { + eventRootDelegates = eventRootCtrl._delegates = {}; + } + for (name in nativeEvents) { + if (!nativeEvents) { + return false; + } + if (name === 'wheel' && !hasWheelEventSupport) { + if (hasMouseWheelEventSupport) { + global$7(eventCtrl.getEl()).on('mousewheel', fixWheelEvent); + } else { + global$7(eventCtrl.getEl()).on('DOMMouseScroll', fixWheelEvent); + } + continue; + } + if (name === 'mouseenter' || name === 'mouseleave') { + if (!eventRootCtrl._hasMouseEnter) { + global$7(eventRootCtrl.getEl()).on('mouseleave', mouseLeaveHandler).on('mouseover', mouseEnterHandler); + eventRootCtrl._hasMouseEnter = 1; + } + } else if (!eventRootDelegates[name]) { + global$7(eventRootCtrl.getEl()).on(name, delegate); + eventRootDelegates[name] = true; + } + nativeEvents[name] = false; + } + } + } + var Control$1 = Control; + + var isStatic = function (elm) { + return funcs.getRuntimeStyle(elm, 'position') === 'static'; + }; + var isFixed = function (ctrl) { + return ctrl.state.get('fixed'); + }; + function calculateRelativePosition(ctrl, targetElm, rel) { + var ctrlElm, pos, x, y, selfW, selfH, targetW, targetH, viewport, size; + viewport = getWindowViewPort(); + pos = funcs.getPos(targetElm, $_dbjzo817wjfuw8wgl.getUiContainer(ctrl)); + x = pos.x; + y = pos.y; + if (isFixed(ctrl) && isStatic(document.body)) { + x -= viewport.x; + y -= viewport.y; + } + ctrlElm = ctrl.getEl(); + size = funcs.getSize(ctrlElm); + selfW = size.width; + selfH = size.height; + size = funcs.getSize(targetElm); + targetW = size.width; + targetH = size.height; + rel = (rel || '').split(''); + if (rel[0] === 'b') { + y += targetH; + } + if (rel[1] === 'r') { + x += targetW; + } + if (rel[0] === 'c') { + y += Math.round(targetH / 2); + } + if (rel[1] === 'c') { + x += Math.round(targetW / 2); + } + if (rel[3] === 'b') { + y -= selfH; + } + if (rel[4] === 'r') { + x -= selfW; + } + if (rel[3] === 'c') { + y -= Math.round(selfH / 2); + } + if (rel[4] === 'c') { + x -= Math.round(selfW / 2); + } + return { + x: x, + y: y, + w: selfW, + h: selfH + }; + } + var getUiContainerViewPort = function (customUiContainer) { + return { + x: 0, + y: 0, + w: customUiContainer.scrollWidth - 1, + h: customUiContainer.scrollHeight - 1 + }; + }; + var getWindowViewPort = function () { + var win = window; + var x = Math.max(win.pageXOffset, document.body.scrollLeft, document.documentElement.scrollLeft); + var y = Math.max(win.pageYOffset, document.body.scrollTop, document.documentElement.scrollTop); + var w = win.innerWidth || document.documentElement.clientWidth; + var h = win.innerHeight || document.documentElement.clientHeight; + return { + x: x, + y: y, + w: x + w, + h: y + h + }; + }; + var getViewPortRect = function (ctrl) { + var customUiContainer = $_dbjzo817wjfuw8wgl.getUiContainer(ctrl); + return customUiContainer && !isFixed(ctrl) ? getUiContainerViewPort(customUiContainer) : getWindowViewPort(); + }; + var $_cn53y617xjfuw8wgp = { + testMoveRel: function (elm, rels) { + var viewPortRect = getViewPortRect(this); + for (var i = 0; i < rels.length; i++) { + var pos = calculateRelativePosition(this, elm, rels[i]); + if (isFixed(this)) { + if (pos.x > 0 && pos.x + pos.w < viewPortRect.w && pos.y > 0 && pos.y + pos.h < viewPortRect.h) { + return rels[i]; + } + } else { + if (pos.x > viewPortRect.x && pos.x + pos.w < viewPortRect.w && pos.y > viewPortRect.y && pos.y + pos.h < viewPortRect.h) { + return rels[i]; + } + } + } + return rels[0]; + }, + moveRel: function (elm, rel) { + if (typeof rel !== 'string') { + rel = this.testMoveRel(elm, rel); + } + var pos = calculateRelativePosition(this, elm, rel); + return this.moveTo(pos.x, pos.y); + }, + moveBy: function (dx, dy) { + var self = this, rect = self.layoutRect(); + self.moveTo(rect.x + dx, rect.y + dy); + return self; + }, + moveTo: function (x, y) { + var self = this; + function constrain(value, max, size) { + if (value < 0) { + return 0; + } + if (value + size > max) { + value = max - size; + return value < 0 ? 0 : value; + } + return value; + } + if (self.settings.constrainToViewport) { + var viewPortRect = getViewPortRect(this); + var layoutRect = self.layoutRect(); + x = constrain(x, viewPortRect.w, layoutRect.w); + y = constrain(y, viewPortRect.h, layoutRect.h); + } + var uiContainer = $_dbjzo817wjfuw8wgl.getUiContainer(self); + if (uiContainer && isStatic(uiContainer) && !isFixed(self)) { + x -= uiContainer.scrollLeft; + y -= uiContainer.scrollTop; + } + if (uiContainer) { + x += 1; + y += 1; + } + if (self.state.get('rendered')) { + self.layoutRect({ + x: x, + y: y + }).repaint(); + } else { + self.settings.x = x; + self.settings.y = y; + } + self.fire('move', { + x: x, + y: y + }); + return self; + } + }; + + var Tooltip = Control$1.extend({ + Mixins: [$_cn53y617xjfuw8wgp], + Defaults: { classes: 'widget tooltip tooltip-n' }, + renderHtml: function () { + var self = this, prefix = self.classPrefix; + return '<div id="' + self._id + '" class="' + self.classes + '" role="presentation">' + '<div class="' + prefix + 'tooltip-arrow"></div>' + '<div class="' + prefix + 'tooltip-inner">' + self.encode(self.state.get('text')) + '</div>' + '</div>'; + }, + bindStates: function () { + var self = this; + self.state.on('change:text', function (e) { + self.getEl().lastChild.innerHTML = self.encode(e.value); + }); + return self._super(); + }, + repaint: function () { + var self = this; + var style, rect; + style = self.getEl().style; + rect = self._layoutRect; + style.left = rect.x + 'px'; + style.top = rect.y + 'px'; + style.zIndex = 65535 + 65535; + } + }); + + var Widget = Control$1.extend({ + init: function (settings) { + var self = this; + self._super(settings); + settings = self.settings; + self.canFocus = true; + if (settings.tooltip && Widget.tooltips !== false) { + self.on('mouseenter', function (e) { + var tooltip = self.tooltip().moveTo(-65535); + if (e.control === self) { + var rel = tooltip.text(settings.tooltip).show().testMoveRel(self.getEl(), [ + 'bc-tc', + 'bc-tl', + 'bc-tr' + ]); + tooltip.classes.toggle('tooltip-n', rel === 'bc-tc'); + tooltip.classes.toggle('tooltip-nw', rel === 'bc-tl'); + tooltip.classes.toggle('tooltip-ne', rel === 'bc-tr'); + tooltip.moveRel(self.getEl(), rel); + } else { + tooltip.hide(); + } + }); + self.on('mouseleave mousedown click', function () { + self.tooltip().remove(); + self._tooltip = null; + }); + } + self.aria('label', settings.ariaLabel || settings.tooltip); + }, + tooltip: function () { + if (!this._tooltip) { + this._tooltip = new Tooltip({ type: 'tooltip' }); + $_dbjzo817wjfuw8wgl.inheritUiContainer(this, this._tooltip); + this._tooltip.renderTo(); + } + return this._tooltip; + }, + postRender: function () { + var self = this, settings = self.settings; + self._super(); + if (!self.parent() && (settings.width || settings.height)) { + self.initLayoutRect(); + self.repaint(); + } + if (settings.autofocus) { + self.focus(); + } + }, + bindStates: function () { + var self = this; + function disable(state) { + self.aria('disabled', state); + self.classes.toggle('disabled', state); + } + function active(state) { + self.aria('pressed', state); + self.classes.toggle('active', state); + } + self.state.on('change:disabled', function (e) { + disable(e.value); + }); + self.state.on('change:active', function (e) { + active(e.value); + }); + if (self.state.get('disabled')) { + disable(true); + } + if (self.state.get('active')) { + active(true); + } + return self._super(); + }, + remove: function () { + this._super(); + if (this._tooltip) { + this._tooltip.remove(); + this._tooltip = null; + } + } + }); + + var Progress = Widget.extend({ + Defaults: { value: 0 }, + init: function (settings) { + var self = this; + self._super(settings); + self.classes.add('progress'); + if (!self.settings.filter) { + self.settings.filter = function (value) { + return Math.round(value); + }; + } + }, + renderHtml: function () { + var self = this, id = self._id, prefix = this.classPrefix; + return '<div id="' + id + '" class="' + self.classes + '">' + '<div class="' + prefix + 'bar-container">' + '<div class="' + prefix + 'bar"></div>' + '</div>' + '<div class="' + prefix + 'text">0%</div>' + '</div>'; + }, + postRender: function () { + var self = this; + self._super(); + self.value(self.settings.value); + return self; + }, + bindStates: function () { + var self = this; + function setValue(value) { + value = self.settings.filter(value); + self.getEl().lastChild.innerHTML = value + '%'; + self.getEl().firstChild.firstChild.style.width = value + '%'; + } + self.state.on('change:value', function (e) { + setValue(e.value); + }); + setValue(self.state.get('value')); + return self._super(); + } + }); + + var updateLiveRegion = function (ctx, text) { + ctx.getEl().lastChild.textContent = text + (ctx.progressBar ? ' ' + ctx.progressBar.value() + '%' : ''); + }; + var Notification = Control$1.extend({ + Mixins: [$_cn53y617xjfuw8wgp], + Defaults: { classes: 'widget notification' }, + init: function (settings) { + var self = this; + self._super(settings); + self.maxWidth = settings.maxWidth; + if (settings.text) { + self.text(settings.text); + } + if (settings.icon) { + self.icon = settings.icon; + } + if (settings.color) { + self.color = settings.color; + } + if (settings.type) { + self.classes.add('notification-' + settings.type); + } + if (settings.timeout && (settings.timeout < 0 || settings.timeout > 0) && !settings.closeButton) { + self.closeButton = false; + } else { + self.classes.add('has-close'); + self.closeButton = true; + } + if (settings.progressBar) { + self.progressBar = new Progress(); + } + self.on('click', function (e) { + if (e.target.className.indexOf(self.classPrefix + 'close') !== -1) { + self.close(); + } + }); + }, + renderHtml: function () { + var self = this; + var prefix = self.classPrefix; + var icon = '', closeButton = '', progressBar = '', notificationStyle = ''; + if (self.icon) { + icon = '<i class="' + prefix + 'ico' + ' ' + prefix + 'i-' + self.icon + '"></i>'; + } + notificationStyle = ' style="max-width: ' + self.maxWidth + 'px;' + (self.color ? 'background-color: ' + self.color + ';"' : '"'); + if (self.closeButton) { + closeButton = '<button type="button" class="' + prefix + 'close" aria-hidden="true">\xD7</button>'; + } + if (self.progressBar) { + progressBar = self.progressBar.renderHtml(); + } + return '<div id="' + self._id + '" class="' + self.classes + '"' + notificationStyle + ' role="presentation">' + icon + '<div class="' + prefix + 'notification-inner">' + self.state.get('text') + '</div>' + progressBar + closeButton + '<div style="clip: rect(1px, 1px, 1px, 1px);height: 1px;overflow: hidden;position: absolute;width: 1px;"' + ' aria-live="assertive" aria-relevant="additions" aria-atomic="true"></div>' + '</div>'; + }, + postRender: function () { + var self = this; + global$3.setTimeout(function () { + self.$el.addClass(self.classPrefix + 'in'); + updateLiveRegion(self, self.state.get('text')); + }, 100); + return self._super(); + }, + bindStates: function () { + var self = this; + self.state.on('change:text', function (e) { + self.getEl().firstChild.innerHTML = e.value; + updateLiveRegion(self, e.value); + }); + if (self.progressBar) { + self.progressBar.bindStates(); + self.progressBar.state.on('change:value', function (e) { + updateLiveRegion(self, self.state.get('text')); + }); + } + return self._super(); + }, + close: function () { + var self = this; + if (!self.fire('close').isDefaultPrevented()) { + self.remove(); + } + return self; + }, + repaint: function () { + var self = this; + var style, rect; + style = self.getEl().style; + rect = self._layoutRect; + style.left = rect.x + 'px'; + style.top = rect.y + 'px'; + style.zIndex = 65535 - 1; + } + }); + + function NotificationManagerImpl (editor) { + var getEditorContainer = function (editor) { + return editor.inline ? editor.getElement() : editor.getContentAreaContainer(); + }; + var getContainerWidth = function () { + var container = getEditorContainer(editor); + return funcs.getSize(container).width; + }; + var prePositionNotifications = function (notifications) { + $_1doq1817ejfuw8wen.each(notifications, function (notification) { + notification.moveTo(0, 0); + }); + }; + var positionNotifications = function (notifications) { + if (notifications.length > 0) { + var firstItem = notifications.slice(0, 1)[0]; + var container = getEditorContainer(editor); + firstItem.moveRel(container, 'tc-tc'); + $_1doq1817ejfuw8wen.each(notifications, function (notification, index) { + if (index > 0) { + notification.moveRel(notifications[index - 1].getEl(), 'bc-tc'); + } + }); + } + }; + var reposition = function (notifications) { + prePositionNotifications(notifications); + positionNotifications(notifications); + }; + var open = function (args, closeCallback) { + var extendedArgs = global$4.extend(args, { maxWidth: getContainerWidth() }); + var notif = new Notification(extendedArgs); + notif.args = extendedArgs; + if (extendedArgs.timeout > 0) { + notif.timer = setTimeout(function () { + notif.close(); + closeCallback(); + }, extendedArgs.timeout); + } + notif.on('close', function () { + closeCallback(); + }); + notif.renderTo(); + return notif; + }; + var close = function (notification) { + notification.close(); + }; + var getArgs = function (notification) { + return notification.args; + }; + return { + open: open, + close: close, + reposition: reposition, + getArgs: getArgs + }; + } + + function getDocumentSize(doc) { + var documentElement, body, scrollWidth, clientWidth; + var offsetWidth, scrollHeight, clientHeight, offsetHeight; + var max = Math.max; + documentElement = doc.documentElement; + body = doc.body; + scrollWidth = max(documentElement.scrollWidth, body.scrollWidth); + clientWidth = max(documentElement.clientWidth, body.clientWidth); + offsetWidth = max(documentElement.offsetWidth, body.offsetWidth); + scrollHeight = max(documentElement.scrollHeight, body.scrollHeight); + clientHeight = max(documentElement.clientHeight, body.clientHeight); + offsetHeight = max(documentElement.offsetHeight, body.offsetHeight); + return { + width: scrollWidth < offsetWidth ? clientWidth : scrollWidth, + height: scrollHeight < offsetHeight ? clientHeight : scrollHeight + }; + } + function updateWithTouchData(e) { + var keys, i; + if (e.changedTouches) { + keys = 'screenX screenY pageX pageY clientX clientY'.split(' '); + for (i = 0; i < keys.length; i++) { + e[keys[i]] = e.changedTouches[0][keys[i]]; + } + } + } + function DragHelper (id, settings) { + var $eventOverlay; + var doc = settings.document || document; + var downButton; + var start, stop, drag, startX, startY; + settings = settings || {}; + var handleElement = doc.getElementById(settings.handle || id); + start = function (e) { + var docSize = getDocumentSize(doc); + var handleElm, cursor; + updateWithTouchData(e); + e.preventDefault(); + downButton = e.button; + handleElm = handleElement; + startX = e.screenX; + startY = e.screenY; + if (window.getComputedStyle) { + cursor = window.getComputedStyle(handleElm, null).getPropertyValue('cursor'); + } else { + cursor = handleElm.runtimeStyle.cursor; + } + $eventOverlay = global$7('<div></div>').css({ + position: 'absolute', + top: 0, + left: 0, + width: docSize.width, + height: docSize.height, + zIndex: 2147483647, + opacity: 0.0001, + cursor: cursor + }).appendTo(doc.body); + global$7(doc).on('mousemove touchmove', drag).on('mouseup touchend', stop); + settings.start(e); + }; + drag = function (e) { + updateWithTouchData(e); + if (e.button !== downButton) { + return stop(e); + } + e.deltaX = e.screenX - startX; + e.deltaY = e.screenY - startY; + e.preventDefault(); + settings.drag(e); + }; + stop = function (e) { + updateWithTouchData(e); + global$7(doc).off('mousemove touchmove', drag).off('mouseup touchend', stop); + $eventOverlay.remove(); + if (settings.stop) { + settings.stop(e); + } + }; + this.destroy = function () { + global$7(handleElement).off(); + }; + global$7(handleElement).on('mousedown touchstart', start); + } + + var global$11 = tinymce.util.Tools.resolve('tinymce.ui.Factory'); + + var hasTabstopData = function (elm) { + return elm.getAttribute('data-mce-tabstop') ? true : false; + }; + function KeyboardNavigation (settings) { + var root = settings.root; + var focusedElement, focusedControl; + function isElement(node) { + return node && node.nodeType === 1; + } + try { + focusedElement = document.activeElement; + } catch (ex) { + focusedElement = document.body; + } + focusedControl = root.getParentCtrl(focusedElement); + function getRole(elm) { + elm = elm || focusedElement; + if (isElement(elm)) { + return elm.getAttribute('role'); + } + return null; + } + function getParentRole(elm) { + var role, parent = elm || focusedElement; + while (parent = parent.parentNode) { + if (role = getRole(parent)) { + return role; + } + } + } + function getAriaProp(name) { + var elm = focusedElement; + if (isElement(elm)) { + return elm.getAttribute('aria-' + name); + } + } + function isTextInputElement(elm) { + var tagName = elm.tagName.toUpperCase(); + return tagName === 'INPUT' || tagName === 'TEXTAREA' || tagName === 'SELECT'; + } + function canFocus(elm) { + if (isTextInputElement(elm) && !elm.hidden) { + return true; + } + if (hasTabstopData(elm)) { + return true; + } + if (/^(button|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell|slider)$/.test(getRole(elm))) { + return true; + } + return false; + } + function getFocusElements(elm) { + var elements = []; + function collect(elm) { + if (elm.nodeType !== 1 || elm.style.display === 'none' || elm.disabled) { + return; + } + if (canFocus(elm)) { + elements.push(elm); + } + for (var i = 0; i < elm.childNodes.length; i++) { + collect(elm.childNodes[i]); + } + } + collect(elm || root.getEl()); + return elements; + } + function getNavigationRoot(targetControl) { + var navigationRoot, controls; + targetControl = targetControl || focusedControl; + controls = targetControl.parents().toArray(); + controls.unshift(targetControl); + for (var i = 0; i < controls.length; i++) { + navigationRoot = controls[i]; + if (navigationRoot.settings.ariaRoot) { + break; + } + } + return navigationRoot; + } + function focusFirst(targetControl) { + var navigationRoot = getNavigationRoot(targetControl); + var focusElements = getFocusElements(navigationRoot.getEl()); + if (navigationRoot.settings.ariaRemember && 'lastAriaIndex' in navigationRoot) { + moveFocusToIndex(navigationRoot.lastAriaIndex, focusElements); + } else { + moveFocusToIndex(0, focusElements); + } + } + function moveFocusToIndex(idx, elements) { + if (idx < 0) { + idx = elements.length - 1; + } else if (idx >= elements.length) { + idx = 0; + } + if (elements[idx]) { + elements[idx].focus(); + } + return idx; + } + function moveFocus(dir, elements) { + var idx = -1; + var navigationRoot = getNavigationRoot(); + elements = elements || getFocusElements(navigationRoot.getEl()); + for (var i = 0; i < elements.length; i++) { + if (elements[i] === focusedElement) { + idx = i; + } + } + idx += dir; + navigationRoot.lastAriaIndex = moveFocusToIndex(idx, elements); + } + function left() { + var parentRole = getParentRole(); + if (parentRole === 'tablist') { + moveFocus(-1, getFocusElements(focusedElement.parentNode)); + } else if (focusedControl.parent().submenu) { + cancel(); + } else { + moveFocus(-1); + } + } + function right() { + var role = getRole(), parentRole = getParentRole(); + if (parentRole === 'tablist') { + moveFocus(1, getFocusElements(focusedElement.parentNode)); + } else if (role === 'menuitem' && parentRole === 'menu' && getAriaProp('haspopup')) { + enter(); + } else { + moveFocus(1); + } + } + function up() { + moveFocus(-1); + } + function down() { + var role = getRole(), parentRole = getParentRole(); + if (role === 'menuitem' && parentRole === 'menubar') { + enter(); + } else if (role === 'button' && getAriaProp('haspopup')) { + enter({ key: 'down' }); + } else { + moveFocus(1); + } + } + function tab(e) { + var parentRole = getParentRole(); + if (parentRole === 'tablist') { + var elm = getFocusElements(focusedControl.getEl('body'))[0]; + if (elm) { + elm.focus(); + } + } else { + moveFocus(e.shiftKey ? -1 : 1); + } + } + function cancel() { + focusedControl.fire('cancel'); + } + function enter(aria) { + aria = aria || {}; + focusedControl.fire('click', { + target: focusedElement, + aria: aria + }); + } + root.on('keydown', function (e) { + function handleNonTabOrEscEvent(e, handler) { + if (isTextInputElement(focusedElement) || hasTabstopData(focusedElement)) { + return; + } + if (getRole(focusedElement) === 'slider') { + return; + } + if (handler(e) !== false) { + e.preventDefault(); + } + } + if (e.isDefaultPrevented()) { + return; + } + switch (e.keyCode) { + case 37: + handleNonTabOrEscEvent(e, left); + break; + case 39: + handleNonTabOrEscEvent(e, right); + break; + case 38: + handleNonTabOrEscEvent(e, up); + break; + case 40: + handleNonTabOrEscEvent(e, down); + break; + case 27: + cancel(); + break; + case 14: + case 13: + case 32: + handleNonTabOrEscEvent(e, enter); + break; + case 9: + tab(e); + e.preventDefault(); + break; + } + }); + root.on('focusin', function (e) { + focusedElement = e.target; + focusedControl = e.control; + }); + return { focusFirst: focusFirst }; + } + + var selectorCache = {}; + var Container = Control$1.extend({ + init: function (settings) { + var self = this; + self._super(settings); + settings = self.settings; + if (settings.fixed) { + self.state.set('fixed', true); + } + self._items = new Collection$2(); + if (self.isRtl()) { + self.classes.add('rtl'); + } + self.bodyClasses = new ClassList(function () { + if (self.state.get('rendered')) { + self.getEl('body').className = this.toString(); + } + }); + self.bodyClasses.prefix = self.classPrefix; + self.classes.add('container'); + self.bodyClasses.add('container-body'); + if (settings.containerCls) { + self.classes.add(settings.containerCls); + } + self._layout = global$11.create((settings.layout || '') + 'layout'); + if (self.settings.items) { + self.add(self.settings.items); + } else { + self.add(self.render()); + } + self._hasBody = true; + }, + items: function () { + return this._items; + }, + find: function (selector) { + selector = selectorCache[selector] = selectorCache[selector] || new Selector(selector); + return selector.find(this); + }, + add: function (items) { + var self = this; + self.items().add(self.create(items)).parent(self); + return self; + }, + focus: function (keyboard) { + var self = this; + var focusCtrl, keyboardNav, items; + if (keyboard) { + keyboardNav = self.keyboardNav || self.parents().eq(-1)[0].keyboardNav; + if (keyboardNav) { + keyboardNav.focusFirst(self); + return; + } + } + items = self.find('*'); + if (self.statusbar) { + items.add(self.statusbar.items()); + } + items.each(function (ctrl) { + if (ctrl.settings.autofocus) { + focusCtrl = null; + return false; + } + if (ctrl.canFocus) { + focusCtrl = focusCtrl || ctrl; + } + }); + if (focusCtrl) { + focusCtrl.focus(); + } + return self; + }, + replace: function (oldItem, newItem) { + var ctrlElm; + var items = this.items(); + var i = items.length; + while (i--) { + if (items[i] === oldItem) { + items[i] = newItem; + break; + } + } + if (i >= 0) { + ctrlElm = newItem.getEl(); + if (ctrlElm) { + ctrlElm.parentNode.removeChild(ctrlElm); + } + ctrlElm = oldItem.getEl(); + if (ctrlElm) { + ctrlElm.parentNode.removeChild(ctrlElm); + } + } + newItem.parent(this); + }, + create: function (items) { + var self = this; + var settings; + var ctrlItems = []; + if (!global$4.isArray(items)) { + items = [items]; + } + global$4.each(items, function (item) { + if (item) { + if (!(item instanceof Control$1)) { + if (typeof item === 'string') { + item = { type: item }; + } + settings = global$4.extend({}, self.settings.defaults, item); + item.type = settings.type = settings.type || item.type || self.settings.defaultType || (settings.defaults ? settings.defaults.type : null); + item = global$11.create(settings); + } + ctrlItems.push(item); + } + }); + return ctrlItems; + }, + renderNew: function () { + var self = this; + self.items().each(function (ctrl, index) { + var containerElm; + ctrl.parent(self); + if (!ctrl.state.get('rendered')) { + containerElm = self.getEl('body'); + if (containerElm.hasChildNodes() && index <= containerElm.childNodes.length - 1) { + global$7(containerElm.childNodes[index]).before(ctrl.renderHtml()); + } else { + global$7(containerElm).append(ctrl.renderHtml()); + } + ctrl.postRender(); + $_13g7tw17vjfuw8wgk.add(ctrl); + } + }); + self._layout.applyClasses(self.items().filter(':visible')); + self._lastRect = null; + return self; + }, + append: function (items) { + return this.add(items).renderNew(); + }, + prepend: function (items) { + var self = this; + self.items().set(self.create(items).concat(self.items().toArray())); + return self.renderNew(); + }, + insert: function (items, index, before) { + var self = this; + var curItems, beforeItems, afterItems; + items = self.create(items); + curItems = self.items(); + if (!before && index < curItems.length - 1) { + index += 1; + } + if (index >= 0 && index < curItems.length) { + beforeItems = curItems.slice(0, index).toArray(); + afterItems = curItems.slice(index).toArray(); + curItems.set(beforeItems.concat(items, afterItems)); + } + return self.renderNew(); + }, + fromJSON: function (data) { + var self = this; + for (var name_1 in data) { + self.find('#' + name_1).value(data[name_1]); + } + return self; + }, + toJSON: function () { + var self = this, data = {}; + self.find('*').each(function (ctrl) { + var name = ctrl.name(), value = ctrl.value(); + if (name && typeof value !== 'undefined') { + data[name] = value; + } + }); + return data; + }, + renderHtml: function () { + var self = this, layout = self._layout, role = this.settings.role; + self.preRender(); + layout.preRender(self); + return '<div id="' + self._id + '" class="' + self.classes + '"' + (role ? ' role="' + this.settings.role + '"' : '') + '>' + '<div id="' + self._id + '-body" class="' + self.bodyClasses + '">' + (self.settings.html || '') + layout.renderHtml(self) + '</div>' + '</div>'; + }, + postRender: function () { + var self = this; + var box; + self.items().exec('postRender'); + self._super(); + self._layout.postRender(self); + self.state.set('rendered', true); + if (self.settings.style) { + self.$el.css(self.settings.style); + } + if (self.settings.border) { + box = self.borderBox; + self.$el.css({ + 'border-top-width': box.top, + 'border-right-width': box.right, + 'border-bottom-width': box.bottom, + 'border-left-width': box.left + }); + } + if (!self.parent()) { + self.keyboardNav = KeyboardNavigation({ root: self }); + } + return self; + }, + initLayoutRect: function () { + var self = this, layoutRect = self._super(); + self._layout.recalc(self); + return layoutRect; + }, + recalc: function () { + var self = this; + var rect = self._layoutRect; + var lastRect = self._lastRect; + if (!lastRect || lastRect.w !== rect.w || lastRect.h !== rect.h) { + self._layout.recalc(self); + rect = self.layoutRect(); + self._lastRect = { + x: rect.x, + y: rect.y, + w: rect.w, + h: rect.h + }; + return true; + } + }, + reflow: function () { + var i; + $_13g7tw17vjfuw8wgk.remove(this); + if (this.visible()) { + Control$1.repaintControls = []; + Control$1.repaintControls.map = {}; + this.recalc(); + i = Control$1.repaintControls.length; + while (i--) { + Control$1.repaintControls[i].repaint(); + } + if (this.settings.layout !== 'flow' && this.settings.layout !== 'stack') { + this.repaint(); + } + Control$1.repaintControls = []; + } + return this; + } + }); + + var $_7kg51q189jfuw8wiq = { + init: function () { + var self = this; + self.on('repaint', self.renderScroll); + }, + renderScroll: function () { + var self = this, margin = 2; + function repaintScroll() { + var hasScrollH, hasScrollV, bodyElm; + function repaintAxis(axisName, posName, sizeName, contentSizeName, hasScroll, ax) { + var containerElm, scrollBarElm, scrollThumbElm; + var containerSize, scrollSize, ratio, rect; + var posNameLower, sizeNameLower; + scrollBarElm = self.getEl('scroll' + axisName); + if (scrollBarElm) { + posNameLower = posName.toLowerCase(); + sizeNameLower = sizeName.toLowerCase(); + global$7(self.getEl('absend')).css(posNameLower, self.layoutRect()[contentSizeName] - 1); + if (!hasScroll) { + global$7(scrollBarElm).css('display', 'none'); + return; + } + global$7(scrollBarElm).css('display', 'block'); + containerElm = self.getEl('body'); + scrollThumbElm = self.getEl('scroll' + axisName + 't'); + containerSize = containerElm['client' + sizeName] - margin * 2; + containerSize -= hasScrollH && hasScrollV ? scrollBarElm['client' + ax] : 0; + scrollSize = containerElm['scroll' + sizeName]; + ratio = containerSize / scrollSize; + rect = {}; + rect[posNameLower] = containerElm['offset' + posName] + margin; + rect[sizeNameLower] = containerSize; + global$7(scrollBarElm).css(rect); + rect = {}; + rect[posNameLower] = containerElm['scroll' + posName] * ratio; + rect[sizeNameLower] = containerSize * ratio; + global$7(scrollThumbElm).css(rect); + } + } + bodyElm = self.getEl('body'); + hasScrollH = bodyElm.scrollWidth > bodyElm.clientWidth; + hasScrollV = bodyElm.scrollHeight > bodyElm.clientHeight; + repaintAxis('h', 'Left', 'Width', 'contentW', hasScrollH, 'Height'); + repaintAxis('v', 'Top', 'Height', 'contentH', hasScrollV, 'Width'); + } + function addScroll() { + function addScrollAxis(axisName, posName, sizeName, deltaPosName, ax) { + var scrollStart; + var axisId = self._id + '-scroll' + axisName, prefix = self.classPrefix; + global$7(self.getEl()).append('<div id="' + axisId + '" class="' + prefix + 'scrollbar ' + prefix + 'scrollbar-' + axisName + '">' + '<div id="' + axisId + 't" class="' + prefix + 'scrollbar-thumb"></div>' + '</div>'); + self.draghelper = new DragHelper(axisId + 't', { + start: function () { + scrollStart = self.getEl('body')['scroll' + posName]; + global$7('#' + axisId).addClass(prefix + 'active'); + }, + drag: function (e) { + var ratio, hasScrollH, hasScrollV, containerSize; + var layoutRect = self.layoutRect(); + hasScrollH = layoutRect.contentW > layoutRect.innerW; + hasScrollV = layoutRect.contentH > layoutRect.innerH; + containerSize = self.getEl('body')['client' + sizeName] - margin * 2; + containerSize -= hasScrollH && hasScrollV ? self.getEl('scroll' + axisName)['client' + ax] : 0; + ratio = containerSize / self.getEl('body')['scroll' + sizeName]; + self.getEl('body')['scroll' + posName] = scrollStart + e['delta' + deltaPosName] / ratio; + }, + stop: function () { + global$7('#' + axisId).removeClass(prefix + 'active'); + } + }); + } + self.classes.add('scroll'); + addScrollAxis('v', 'Top', 'Height', 'Y', 'Width'); + addScrollAxis('h', 'Left', 'Width', 'X', 'Height'); + } + if (self.settings.autoScroll) { + if (!self._hasScroll) { + self._hasScroll = true; + addScroll(); + self.on('wheel', function (e) { + var bodyEl = self.getEl('body'); + bodyEl.scrollLeft += (e.deltaX || 0) * 10; + bodyEl.scrollTop += e.deltaY * 10; + repaintScroll(); + }); + global$7(self.getEl('body')).on('scroll', repaintScroll); + } + repaintScroll(); + } + } + }; + + var Panel = Container.extend({ + Defaults: { + layout: 'fit', + containerCls: 'panel' + }, + Mixins: [$_7kg51q189jfuw8wiq], + renderHtml: function () { + var self = this; + var layout = self._layout; + var innerHtml = self.settings.html; + self.preRender(); + layout.preRender(self); + if (typeof innerHtml === 'undefined') { + innerHtml = '<div id="' + self._id + '-body" class="' + self.bodyClasses + '">' + layout.renderHtml(self) + '</div>'; + } else { + if (typeof innerHtml === 'function') { + innerHtml = innerHtml.call(self); + } + self._hasBody = false; + } + return '<div id="' + self._id + '" class="' + self.classes + '" hidefocus="1" tabindex="-1" role="group">' + (self._preBodyHtml || '') + innerHtml + '</div>'; + } + }); + + var $_f8jegf18ajfuw8wit = { + resizeToContent: function () { + this._layoutRect.autoResize = true; + this._lastRect = null; + this.reflow(); + }, + resizeTo: function (w, h) { + if (w <= 1 || h <= 1) { + var rect = funcs.getWindowSize(); + w = w <= 1 ? w * rect.w : w; + h = h <= 1 ? h * rect.h : h; + } + this._layoutRect.autoResize = false; + return this.layoutRect({ + minW: w, + minH: h, + w: w, + h: h + }).reflow(); + }, + resizeBy: function (dw, dh) { + var self = this, rect = self.layoutRect(); + return self.resizeTo(rect.w + dw, rect.h + dh); + } + }; + + var documentClickHandler; + var documentScrollHandler; + var windowResizeHandler; + var visiblePanels = []; + var zOrder = []; + var hasModal; + function isChildOf(ctrl, parent) { + while (ctrl) { + if (ctrl === parent) { + return true; + } + ctrl = ctrl.parent(); + } + } + function skipOrHidePanels(e) { + var i = visiblePanels.length; + while (i--) { + var panel = visiblePanels[i], clickCtrl = panel.getParentCtrl(e.target); + if (panel.settings.autohide) { + if (clickCtrl) { + if (isChildOf(clickCtrl, panel) || panel.parent() === clickCtrl) { + continue; + } + } + e = panel.fire('autohide', { target: e.target }); + if (!e.isDefaultPrevented()) { + panel.hide(); + } + } + } + } + function bindDocumentClickHandler() { + if (!documentClickHandler) { + documentClickHandler = function (e) { + if (e.button === 2) { + return; + } + skipOrHidePanels(e); + }; + global$7(document).on('click touchstart', documentClickHandler); + } + } + function bindDocumentScrollHandler() { + if (!documentScrollHandler) { + documentScrollHandler = function () { + var i; + i = visiblePanels.length; + while (i--) { + repositionPanel$1(visiblePanels[i]); + } + }; + global$7(window).on('scroll', documentScrollHandler); + } + } + function bindWindowResizeHandler() { + if (!windowResizeHandler) { + var docElm_1 = document.documentElement; + var clientWidth_1 = docElm_1.clientWidth, clientHeight_1 = docElm_1.clientHeight; + windowResizeHandler = function () { + if (!document.all || clientWidth_1 !== docElm_1.clientWidth || clientHeight_1 !== docElm_1.clientHeight) { + clientWidth_1 = docElm_1.clientWidth; + clientHeight_1 = docElm_1.clientHeight; + FloatPanel.hideAll(); + } + }; + global$7(window).on('resize', windowResizeHandler); + } + } + function repositionPanel$1(panel) { + var scrollY = funcs.getViewPort().y; + function toggleFixedChildPanels(fixed, deltaY) { + var parent; + for (var i = 0; i < visiblePanels.length; i++) { + if (visiblePanels[i] !== panel) { + parent = visiblePanels[i].parent(); + while (parent && (parent = parent.parent())) { + if (parent === panel) { + visiblePanels[i].fixed(fixed).moveBy(0, deltaY).repaint(); + } + } + } + } + } + if (panel.settings.autofix) { + if (!panel.state.get('fixed')) { + panel._autoFixY = panel.layoutRect().y; + if (panel._autoFixY < scrollY) { + panel.fixed(true).layoutRect({ y: 0 }).repaint(); + toggleFixedChildPanels(true, scrollY - panel._autoFixY); + } + } else { + if (panel._autoFixY > scrollY) { + panel.fixed(false).layoutRect({ y: panel._autoFixY }).repaint(); + toggleFixedChildPanels(false, panel._autoFixY - scrollY); + } + } + } + } + function addRemove(add, ctrl) { + var i, zIndex = FloatPanel.zIndex || 65535, topModal; + if (add) { + zOrder.push(ctrl); + } else { + i = zOrder.length; + while (i--) { + if (zOrder[i] === ctrl) { + zOrder.splice(i, 1); + } + } + } + if (zOrder.length) { + for (i = 0; i < zOrder.length; i++) { + if (zOrder[i].modal) { + zIndex++; + topModal = zOrder[i]; + } + zOrder[i].getEl().style.zIndex = zIndex; + zOrder[i].zIndex = zIndex; + zIndex++; + } + } + var modalBlockEl = global$7('#' + ctrl.classPrefix + 'modal-block', ctrl.getContainerElm())[0]; + if (topModal) { + global$7(modalBlockEl).css('z-index', topModal.zIndex - 1); + } else if (modalBlockEl) { + modalBlockEl.parentNode.removeChild(modalBlockEl); + hasModal = false; + } + FloatPanel.currentZIndex = zIndex; + } + var FloatPanel = Panel.extend({ + Mixins: [ + $_cn53y617xjfuw8wgp, + $_f8jegf18ajfuw8wit + ], + init: function (settings) { + var self = this; + self._super(settings); + self._eventsRoot = self; + self.classes.add('floatpanel'); + if (settings.autohide) { + bindDocumentClickHandler(); + bindWindowResizeHandler(); + visiblePanels.push(self); + } + if (settings.autofix) { + bindDocumentScrollHandler(); + self.on('move', function () { + repositionPanel$1(this); + }); + } + self.on('postrender show', function (e) { + if (e.control === self) { + var $modalBlockEl_1; + var prefix_1 = self.classPrefix; + if (self.modal && !hasModal) { + $modalBlockEl_1 = global$7('#' + prefix_1 + 'modal-block', self.getContainerElm()); + if (!$modalBlockEl_1[0]) { + $modalBlockEl_1 = global$7('<div id="' + prefix_1 + 'modal-block" class="' + prefix_1 + 'reset ' + prefix_1 + 'fade"></div>').appendTo(self.getContainerElm()); + } + global$3.setTimeout(function () { + $modalBlockEl_1.addClass(prefix_1 + 'in'); + global$7(self.getEl()).addClass(prefix_1 + 'in'); + }); + hasModal = true; + } + addRemove(true, self); + } + }); + self.on('show', function () { + self.parents().each(function (ctrl) { + if (ctrl.state.get('fixed')) { + self.fixed(true); + return false; + } + }); + }); + if (settings.popover) { + self._preBodyHtml = '<div class="' + self.classPrefix + 'arrow"></div>'; + self.classes.add('popover').add('bottom').add(self.isRtl() ? 'end' : 'start'); + } + self.aria('label', settings.ariaLabel); + self.aria('labelledby', self._id); + self.aria('describedby', self.describedBy || self._id + '-none'); + }, + fixed: function (state) { + var self = this; + if (self.state.get('fixed') !== state) { + if (self.state.get('rendered')) { + var viewport = funcs.getViewPort(); + if (state) { + self.layoutRect().y -= viewport.y; + } else { + self.layoutRect().y += viewport.y; + } + } + self.classes.toggle('fixed', state); + self.state.set('fixed', state); + } + return self; + }, + show: function () { + var self = this; + var i; + var state = self._super(); + i = visiblePanels.length; + while (i--) { + if (visiblePanels[i] === self) { + break; + } + } + if (i === -1) { + visiblePanels.push(self); + } + return state; + }, + hide: function () { + removeVisiblePanel(this); + addRemove(false, this); + return this._super(); + }, + hideAll: function () { + FloatPanel.hideAll(); + }, + close: function () { + var self = this; + if (!self.fire('close').isDefaultPrevented()) { + self.remove(); + addRemove(false, self); + } + return self; + }, + remove: function () { + removeVisiblePanel(this); + this._super(); + }, + postRender: function () { + var self = this; + if (self.settings.bodyRole) { + this.getEl('body').setAttribute('role', self.settings.bodyRole); + } + return self._super(); + } + }); + FloatPanel.hideAll = function () { + var i = visiblePanels.length; + while (i--) { + var panel = visiblePanels[i]; + if (panel && panel.settings.autohide) { + panel.hide(); + visiblePanels.splice(i, 1); + } + } + }; + function removeVisiblePanel(panel) { + var i; + i = visiblePanels.length; + while (i--) { + if (visiblePanels[i] === panel) { + visiblePanels.splice(i, 1); + } + } + i = zOrder.length; + while (i--) { + if (zOrder[i] === panel) { + zOrder.splice(i, 1); + } + } + } + + var windows = []; + var oldMetaValue = ''; + function toggleFullScreenState(state) { + var noScaleMetaValue = 'width=device-width,initial-scale=1.0,user-scalable=0,minimum-scale=1.0,maximum-scale=1.0'; + var viewport = global$7('meta[name=viewport]')[0], contentValue; + if (global$1.overrideViewPort === false) { + return; + } + if (!viewport) { + viewport = document.createElement('meta'); + viewport.setAttribute('name', 'viewport'); + document.getElementsByTagName('head')[0].appendChild(viewport); + } + contentValue = viewport.getAttribute('content'); + if (contentValue && typeof oldMetaValue !== 'undefined') { + oldMetaValue = contentValue; + } + viewport.setAttribute('content', state ? noScaleMetaValue : oldMetaValue); + } + function toggleBodyFullScreenClasses(classPrefix, state) { + if (checkFullscreenWindows() && state === false) { + global$7([ + document.documentElement, + document.body + ]).removeClass(classPrefix + 'fullscreen'); + } + } + function checkFullscreenWindows() { + for (var i = 0; i < windows.length; i++) { + if (windows[i]._fullscreen) { + return true; + } + } + return false; + } + function handleWindowResize() { + if (!global$1.desktop) { + var lastSize_1 = { + w: window.innerWidth, + h: window.innerHeight + }; + global$3.setInterval(function () { + var w = window.innerWidth, h = window.innerHeight; + if (lastSize_1.w !== w || lastSize_1.h !== h) { + lastSize_1 = { + w: w, + h: h + }; + global$7(window).trigger('resize'); + } + }, 100); + } + function reposition() { + var i; + var rect = funcs.getWindowSize(); + var layoutRect; + for (i = 0; i < windows.length; i++) { + layoutRect = windows[i].layoutRect(); + windows[i].moveTo(windows[i].settings.x || Math.max(0, rect.w / 2 - layoutRect.w / 2), windows[i].settings.y || Math.max(0, rect.h / 2 - layoutRect.h / 2)); + } + } + global$7(window).on('resize', reposition); + } + var Window = FloatPanel.extend({ + modal: true, + Defaults: { + border: 1, + layout: 'flex', + containerCls: 'panel', + role: 'dialog', + callbacks: { + submit: function () { + this.fire('submit', { data: this.toJSON() }); + }, + close: function () { + this.close(); + } + } + }, + init: function (settings) { + var self = this; + self._super(settings); + if (self.isRtl()) { + self.classes.add('rtl'); + } + self.classes.add('window'); + self.bodyClasses.add('window-body'); + self.state.set('fixed', true); + if (settings.buttons) { + self.statusbar = new Panel({ + layout: 'flex', + border: '1 0 0 0', + spacing: 3, + padding: 10, + align: 'center', + pack: self.isRtl() ? 'start' : 'end', + defaults: { type: 'button' }, + items: settings.buttons + }); + self.statusbar.classes.add('foot'); + self.statusbar.parent(self); + } + self.on('click', function (e) { + var closeClass = self.classPrefix + 'close'; + if (funcs.hasClass(e.target, closeClass) || funcs.hasClass(e.target.parentNode, closeClass)) { + self.close(); + } + }); + self.on('cancel', function () { + self.close(); + }); + self.on('move', function (e) { + if (e.control === self) { + FloatPanel.hideAll(); + } + }); + self.aria('describedby', self.describedBy || self._id + '-none'); + self.aria('label', settings.title); + self._fullscreen = false; + }, + recalc: function () { + var self = this; + var statusbar = self.statusbar; + var layoutRect, width, x, needsRecalc; + if (self._fullscreen) { + self.layoutRect(funcs.getWindowSize()); + self.layoutRect().contentH = self.layoutRect().innerH; + } + self._super(); + layoutRect = self.layoutRect(); + if (self.settings.title && !self._fullscreen) { + width = layoutRect.headerW; + if (width > layoutRect.w) { + x = layoutRect.x - Math.max(0, width / 2); + self.layoutRect({ + w: width, + x: x + }); + needsRecalc = true; + } + } + if (statusbar) { + statusbar.layoutRect({ w: self.layoutRect().innerW }).recalc(); + width = statusbar.layoutRect().minW + layoutRect.deltaW; + if (width > layoutRect.w) { + x = layoutRect.x - Math.max(0, width - layoutRect.w); + self.layoutRect({ + w: width, + x: x + }); + needsRecalc = true; + } + } + if (needsRecalc) { + self.recalc(); + } + }, + initLayoutRect: function () { + var self = this; + var layoutRect = self._super(); + var deltaH = 0, headEl; + if (self.settings.title && !self._fullscreen) { + headEl = self.getEl('head'); + var size = funcs.getSize(headEl); + layoutRect.headerW = size.width; + layoutRect.headerH = size.height; + deltaH += layoutRect.headerH; + } + if (self.statusbar) { + deltaH += self.statusbar.layoutRect().h; + } + layoutRect.deltaH += deltaH; + layoutRect.minH += deltaH; + layoutRect.h += deltaH; + var rect = funcs.getWindowSize(); + layoutRect.x = self.settings.x || Math.max(0, rect.w / 2 - layoutRect.w / 2); + layoutRect.y = self.settings.y || Math.max(0, rect.h / 2 - layoutRect.h / 2); + return layoutRect; + }, + renderHtml: function () { + var self = this, layout = self._layout, id = self._id, prefix = self.classPrefix; + var settings = self.settings; + var headerHtml = '', footerHtml = '', html = settings.html; + self.preRender(); + layout.preRender(self); + if (settings.title) { + headerHtml = '<div id="' + id + '-head" class="' + prefix + 'window-head">' + '<div id="' + id + '-title" class="' + prefix + 'title">' + self.encode(settings.title) + '</div>' + '<div id="' + id + '-dragh" class="' + prefix + 'dragh"></div>' + '<button type="button" class="' + prefix + 'close" aria-hidden="true">' + '<i class="mce-ico mce-i-remove"></i>' + '</button>' + '</div>'; + } + if (settings.url) { + html = '<iframe src="' + settings.url + '" tabindex="-1"></iframe>'; + } + if (typeof html === 'undefined') { + html = layout.renderHtml(self); + } + if (self.statusbar) { + footerHtml = self.statusbar.renderHtml(); + } + return '<div id="' + id + '" class="' + self.classes + '" hidefocus="1">' + '<div class="' + self.classPrefix + 'reset" role="application">' + headerHtml + '<div id="' + id + '-body" class="' + self.bodyClasses + '">' + html + '</div>' + footerHtml + '</div>' + '</div>'; + }, + fullscreen: function (state) { + var self = this; + var documentElement = document.documentElement; + var slowRendering; + var prefix = self.classPrefix; + var layoutRect; + if (state !== self._fullscreen) { + global$7(window).on('resize', function () { + var time; + if (self._fullscreen) { + if (!slowRendering) { + time = new Date().getTime(); + var rect = funcs.getWindowSize(); + self.moveTo(0, 0).resizeTo(rect.w, rect.h); + if (new Date().getTime() - time > 50) { + slowRendering = true; + } + } else { + if (!self._timer) { + self._timer = global$3.setTimeout(function () { + var rect = funcs.getWindowSize(); + self.moveTo(0, 0).resizeTo(rect.w, rect.h); + self._timer = 0; + }, 50); + } + } + } + }); + layoutRect = self.layoutRect(); + self._fullscreen = state; + if (!state) { + self.borderBox = $_b17qji17ojfuw8wg0.parseBox(self.settings.border); + self.getEl('head').style.display = ''; + layoutRect.deltaH += layoutRect.headerH; + global$7([ + documentElement, + document.body + ]).removeClass(prefix + 'fullscreen'); + self.classes.remove('fullscreen'); + self.moveTo(self._initial.x, self._initial.y).resizeTo(self._initial.w, self._initial.h); + } else { + self._initial = { + x: layoutRect.x, + y: layoutRect.y, + w: layoutRect.w, + h: layoutRect.h + }; + self.borderBox = $_b17qji17ojfuw8wg0.parseBox('0'); + self.getEl('head').style.display = 'none'; + layoutRect.deltaH -= layoutRect.headerH + 2; + global$7([ + documentElement, + document.body + ]).addClass(prefix + 'fullscreen'); + self.classes.add('fullscreen'); + var rect = funcs.getWindowSize(); + self.moveTo(0, 0).resizeTo(rect.w, rect.h); + } + } + return self.reflow(); + }, + postRender: function () { + var self = this; + var startPos; + setTimeout(function () { + self.classes.add('in'); + self.fire('open'); + }, 0); + self._super(); + if (self.statusbar) { + self.statusbar.postRender(); + } + self.focus(); + this.dragHelper = new DragHelper(self._id + '-dragh', { + start: function () { + startPos = { + x: self.layoutRect().x, + y: self.layoutRect().y + }; + }, + drag: function (e) { + self.moveTo(startPos.x + e.deltaX, startPos.y + e.deltaY); + } + }); + self.on('submit', function (e) { + if (!e.isDefaultPrevented()) { + self.close(); + } + }); + windows.push(self); + toggleFullScreenState(true); + }, + submit: function () { + return this.fire('submit', { data: this.toJSON() }); + }, + remove: function () { + var self = this; + var i; + self.dragHelper.destroy(); + self._super(); + if (self.statusbar) { + this.statusbar.remove(); + } + toggleBodyFullScreenClasses(self.classPrefix, false); + i = windows.length; + while (i--) { + if (windows[i] === self) { + windows.splice(i, 1); + } + } + toggleFullScreenState(windows.length > 0); + }, + getContentWindow: function () { + var ifr = this.getEl().getElementsByTagName('iframe')[0]; + return ifr ? ifr.contentWindow : null; + } + }); + handleWindowResize(); + + var MessageBox = Window.extend({ + init: function (settings) { + settings = { + border: 1, + padding: 20, + layout: 'flex', + pack: 'center', + align: 'center', + containerCls: 'panel', + autoScroll: true, + buttons: { + type: 'button', + text: 'Ok', + action: 'ok' + }, + items: { + type: 'label', + multiline: true, + maxWidth: 500, + maxHeight: 200 + } + }; + this._super(settings); + }, + Statics: { + OK: 1, + OK_CANCEL: 2, + YES_NO: 3, + YES_NO_CANCEL: 4, + msgBox: function (settings) { + var buttons; + var callback = settings.callback || function () { + }; + function createButton(text, status, primary) { + return { + type: 'button', + text: text, + subtype: primary ? 'primary' : '', + onClick: function (e) { + e.control.parents()[1].close(); + callback(status); + } + }; + } + switch (settings.buttons) { + case MessageBox.OK_CANCEL: + buttons = [ + createButton('Ok', true, true), + createButton('Cancel', false) + ]; + break; + case MessageBox.YES_NO: + case MessageBox.YES_NO_CANCEL: + buttons = [ + createButton('Yes', 1, true), + createButton('No', 0) + ]; + if (settings.buttons === MessageBox.YES_NO_CANCEL) { + buttons.push(createButton('Cancel', -1)); + } + break; + default: + buttons = [createButton('Ok', true, true)]; + break; + } + return new Window({ + padding: 20, + x: settings.x, + y: settings.y, + minWidth: 300, + minHeight: 100, + layout: 'flex', + pack: 'center', + align: 'center', + buttons: buttons, + title: settings.title, + role: 'alertdialog', + items: { + type: 'label', + multiline: true, + maxWidth: 500, + maxHeight: 200, + text: settings.text + }, + onPostRender: function () { + this.aria('describedby', this.items()[0]._id); + }, + onClose: settings.onClose, + onCancel: function () { + callback(false); + } + }).renderTo(document.body).reflow(); + }, + alert: function (settings, callback) { + if (typeof settings === 'string') { + settings = { text: settings }; + } + settings.callback = callback; + return MessageBox.msgBox(settings); + }, + confirm: function (settings, callback) { + if (typeof settings === 'string') { + settings = { text: settings }; + } + settings.callback = callback; + settings.buttons = MessageBox.OK_CANCEL; + return MessageBox.msgBox(settings); + } + } + }); + + function WindowManagerImpl (editor) { + var open = function (args, params, closeCallback) { + var win; + args.title = args.title || ' '; + args.url = args.url || args.file; + if (args.url) { + args.width = parseInt(args.width || 320, 10); + args.height = parseInt(args.height || 240, 10); + } + if (args.body) { + args.items = { + defaults: args.defaults, + type: args.bodyType || 'form', + items: args.body, + data: args.data, + callbacks: args.commands + }; + } + if (!args.url && !args.buttons) { + args.buttons = [ + { + text: 'Ok', + subtype: 'primary', + onclick: function () { + win.find('form')[0].submit(); + } + }, + { + text: 'Cancel', + onclick: function () { + win.close(); + } + } + ]; + } + win = new Window(args); + win.on('close', function () { + closeCallback(win); + }); + if (args.data) { + win.on('postRender', function () { + this.find('*').each(function (ctrl) { + var name = ctrl.name(); + if (name in args.data) { + ctrl.value(args.data[name]); + } + }); + }); + } + win.features = args || {}; + win.params = params || {}; + win = win.renderTo(document.body).reflow(); + return win; + }; + var alert = function (message, choiceCallback, closeCallback) { + var win; + win = MessageBox.alert(message, function () { + choiceCallback(); + }); + win.on('close', function () { + closeCallback(win); + }); + return win; + }; + var confirm = function (message, choiceCallback, closeCallback) { + var win; + win = MessageBox.confirm(message, function (state) { + choiceCallback(state); + }); + win.on('close', function () { + closeCallback(win); + }); + return win; + }; + var close = function (window) { + window.close(); + }; + var getParams = function (window) { + return window.params; + }; + var setParams = function (window, params) { + window.params = params; + }; + return { + open: open, + alert: alert, + confirm: confirm, + close: close, + getParams: getParams, + setParams: setParams + }; + } + + var get = function (editor, panel) { + var renderUI = function () { + return $_gf138c16tjfuw8wdo.renderUI(editor, panel); + }; + return { + renderUI: renderUI, + getNotificationManagerImpl: function () { + return NotificationManagerImpl(editor); + }, + getWindowManagerImpl: function () { + return WindowManagerImpl(editor); + } + }; + }; + var $_5lg8ed16sjfuw8wdm = { get: get }; + + var global$12 = typeof window !== 'undefined' ? window : Function('return this;')(); + + var path = function (parts, scope) { + var o = scope !== undefined && scope !== null ? scope : global$12; + for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i) + o = o[parts[i]]; + return o; + }; + var resolve = function (p, scope) { + var parts = p.split('.'); + return path(parts, scope); + }; + var step = function (o, part) { + if (o[part] === undefined || o[part] === null) + o[part] = {}; + return o[part]; + }; + var forge = function (parts, target) { + var o = target !== undefined ? target : global$12; + for (var i = 0; i < parts.length; ++i) + o = step(o, parts[i]); + return o; + }; + var namespace = function (name, target) { + var parts = name.split('.'); + return forge(parts, target); + }; + var $_a30ijl18gjfuw8wjm = { + path: path, + resolve: resolve, + forge: forge, + namespace: namespace + }; + + var unsafe = function (name, scope) { + return $_a30ijl18gjfuw8wjm.resolve(name, scope); + }; + var getOrDie = function (name, scope) { + var actual = unsafe(name, scope); + if (actual === undefined || actual === null) + throw name + ' not available on this browser'; + return actual; + }; + var $_clbxy018fjfuw8wjj = { getOrDie: getOrDie }; + + function FileReader () { + var f = $_clbxy018fjfuw8wjj.getOrDie('FileReader'); + return new f(); + } + + var global$13 = tinymce.util.Tools.resolve('tinymce.util.Promise'); + + var blobToBase64 = function (blob) { + return new global$13(function (resolve) { + var reader = new FileReader(); + reader.onloadend = function () { + resolve(reader.result.split(',')[1]); + }; + reader.readAsDataURL(blob); + }); + }; + var $_ajs38u18djfuw8wjf = { blobToBase64: blobToBase64 }; + + var pickFile = function () { + return new global$13(function (resolve) { + var fileInput; + fileInput = document.createElement('input'); + fileInput.type = 'file'; + fileInput.style.position = 'fixed'; + fileInput.style.left = 0; + fileInput.style.top = 0; + fileInput.style.opacity = 0.001; + document.body.appendChild(fileInput); + fileInput.onchange = function (e) { + resolve(Array.prototype.slice.call(e.target.files)); + }; + fileInput.click(); + fileInput.parentNode.removeChild(fileInput); + }); + }; + var $_4b877v18jjfuw8wjp = { pickFile: pickFile }; + + var count$1 = 0; + var seed = function () { + var rnd = function () { + return Math.round(Math.random() * 4294967295).toString(36); + }; + return 's' + Date.now().toString(36) + rnd() + rnd() + rnd(); + }; + var uuid = function (prefix) { + return prefix + count$1++ + seed(); + }; + var $_ex7l8618ljfuw8wjt = { uuid: uuid }; + + var create$1 = function (dom, rng) { + var bookmark = {}; + function setupEndPoint(start) { + var offsetNode, container, offset; + container = rng[start ? 'startContainer' : 'endContainer']; + offset = rng[start ? 'startOffset' : 'endOffset']; + if (container.nodeType === 1) { + offsetNode = dom.create('span', { 'data-mce-type': 'bookmark' }); + if (container.hasChildNodes()) { + offset = Math.min(offset, container.childNodes.length - 1); + if (start) { + container.insertBefore(offsetNode, container.childNodes[offset]); + } else { + dom.insertAfter(offsetNode, container.childNodes[offset]); + } + } else { + container.appendChild(offsetNode); + } + container = offsetNode; + offset = 0; + } + bookmark[start ? 'startContainer' : 'endContainer'] = container; + bookmark[start ? 'startOffset' : 'endOffset'] = offset; + } + setupEndPoint(true); + if (!rng.collapsed) { + setupEndPoint(); + } + return bookmark; + }; + var resolve$1 = function (dom, bookmark) { + function restoreEndPoint(start) { + var container, offset, node; + function nodeIndex(container) { + var node = container.parentNode.firstChild, idx = 0; + while (node) { + if (node === container) { + return idx; + } + if (node.nodeType !== 1 || node.getAttribute('data-mce-type') !== 'bookmark') { + idx++; + } + node = node.nextSibling; + } + return -1; + } + container = node = bookmark[start ? 'startContainer' : 'endContainer']; + offset = bookmark[start ? 'startOffset' : 'endOffset']; + if (!container) { + return; + } + if (container.nodeType === 1) { + offset = nodeIndex(container); + container = container.parentNode; + dom.remove(node); + } + bookmark[start ? 'startContainer' : 'endContainer'] = container; + bookmark[start ? 'startOffset' : 'endOffset'] = offset; + } + restoreEndPoint(true); + restoreEndPoint(); + var rng = dom.createRng(); + rng.setStart(bookmark.startContainer, bookmark.startOffset); + if (bookmark.endContainer) { + rng.setEnd(bookmark.endContainer, bookmark.endOffset); + } + return rng; + }; + var $_8jsybd18njfuw8wjw = { + create: create$1, + resolve: resolve$1 + }; + + var global$14 = tinymce.util.Tools.resolve('tinymce.dom.TreeWalker'); + + var global$15 = tinymce.util.Tools.resolve('tinymce.dom.RangeUtils'); + + var getSelectedElements = function (rootElm, startNode, endNode) { + var walker, node; + var elms = []; + walker = new global$14(startNode, rootElm); + for (node = startNode; node; node = walker.next()) { + if (node.nodeType === 1) { + elms.push(node); + } + if (node === endNode) { + break; + } + } + return elms; + }; + var unwrapElements = function (editor, elms) { + var bookmark, dom, selection; + dom = editor.dom; + selection = editor.selection; + bookmark = $_8jsybd18njfuw8wjw.create(dom, selection.getRng()); + global$4.each(elms, function (elm) { + editor.dom.remove(elm, true); + }); + selection.setRng($_8jsybd18njfuw8wjw.resolve(dom, bookmark)); + }; + var isLink = function (elm) { + return elm.nodeName === 'A' && elm.hasAttribute('href'); + }; + var getParentAnchorOrSelf = function (dom, elm) { + var anchorElm = dom.getParent(elm, isLink); + return anchorElm ? anchorElm : elm; + }; + var getSelectedAnchors = function (editor) { + var startElm, endElm, rootElm, anchorElms, selection, dom, rng; + selection = editor.selection; + dom = editor.dom; + rng = selection.getRng(); + startElm = getParentAnchorOrSelf(dom, global$15.getNode(rng.startContainer, rng.startOffset)); + endElm = global$15.getNode(rng.endContainer, rng.endOffset); + rootElm = editor.getBody(); + anchorElms = global$4.grep(getSelectedElements(rootElm, startElm, endElm), isLink); + return anchorElms; + }; + var unlinkSelection = function (editor) { + unwrapElements(editor, getSelectedAnchors(editor)); + }; + var $_1tu4nv18mjfuw8wju = { unlinkSelection: unlinkSelection }; + + var createTableHtml = function (cols, rows) { + var x, y, html; + html = '<table data-mce-id="mce" style="width: 100%">'; + html += '<tbody>'; + for (y = 0; y < rows; y++) { + html += '<tr>'; + for (x = 0; x < cols; x++) { + html += '<td><br></td>'; + } + html += '</tr>'; + } + html += '</tbody>'; + html += '</table>'; + return html; + }; + var getInsertedElement = function (editor) { + var elms = editor.dom.select('*[data-mce-id]'); + return elms[0]; + }; + var insertTableHtml = function (editor, cols, rows) { + editor.undoManager.transact(function () { + var tableElm, cellElm; + editor.insertContent(createTableHtml(cols, rows)); + tableElm = getInsertedElement(editor); + tableElm.removeAttribute('data-mce-id'); + cellElm = editor.dom.select('td,th', tableElm); + editor.selection.setCursorLocation(cellElm[0], 0); + }); + }; + var insertTable = function (editor, cols, rows) { + editor.plugins.table ? editor.plugins.table.insertTable(cols, rows) : insertTableHtml(editor, cols, rows); + }; + var formatBlock = function (editor, formatName) { + editor.execCommand('FormatBlock', false, formatName); + }; + var insertBlob = function (editor, base64, blob) { + var blobCache, blobInfo; + blobCache = editor.editorUpload.blobCache; + blobInfo = blobCache.create($_ex7l8618ljfuw8wjt.uuid('mceu'), blob, base64); + blobCache.add(blobInfo); + editor.insertContent(editor.dom.createHTML('img', { src: blobInfo.blobUri() })); + }; + var collapseSelectionToEnd = function (editor) { + editor.selection.collapse(false); + }; + var unlink = function (editor) { + editor.focus(); + $_1tu4nv18mjfuw8wju.unlinkSelection(editor); + collapseSelectionToEnd(editor); + }; + var changeHref = function (editor, elm, url) { + editor.focus(); + editor.dom.setAttrib(elm, 'href', url); + collapseSelectionToEnd(editor); + }; + var insertLink = function (editor, url) { + editor.execCommand('mceInsertLink', false, { href: url }); + collapseSelectionToEnd(editor); + }; + var updateOrInsertLink = function (editor, url) { + var elm = editor.dom.getParent(editor.selection.getStart(), 'a[href]'); + elm ? changeHref(editor, elm, url) : insertLink(editor, url); + }; + var createLink = function (editor, url) { + url.trim().length === 0 ? unlink(editor) : updateOrInsertLink(editor, url); + }; + var $_bjueuw18kjfuw8wjq = { + insertTable: insertTable, + formatBlock: formatBlock, + insertBlob: insertBlob, + createLink: createLink, + unlink: unlink + }; + + var addHeaderButtons = function (editor) { + var formatBlock = function (name) { + return function () { + $_bjueuw18kjfuw8wjq.formatBlock(editor, name); + }; + }; + for (var i = 1; i < 6; i++) { + var name_1 = 'h' + i; + editor.addButton(name_1, { + text: name_1.toUpperCase(), + tooltip: 'Heading ' + i, + stateSelector: name_1, + onclick: formatBlock(name_1), + onPostRender: function () { + var span = this.getEl().firstChild.firstChild; + span.style.fontWeight = 'bold'; + } + }); + } + }; + var addToEditor = function (editor, panel) { + editor.addButton('quicklink', { + icon: 'link', + tooltip: 'Insert/Edit link', + stateSelector: 'a[href]', + onclick: function () { + panel.showForm(editor, 'quicklink'); + } + }); + editor.addButton('quickimage', { + icon: 'image', + tooltip: 'Insert image', + onclick: function () { + $_4b877v18jjfuw8wjp.pickFile().then(function (files) { + var blob = files[0]; + $_ajs38u18djfuw8wjf.blobToBase64(blob).then(function (base64) { + $_bjueuw18kjfuw8wjq.insertBlob(editor, base64, blob); + }); + }); + } + }); + editor.addButton('quicktable', { + icon: 'table', + tooltip: 'Insert table', + onclick: function () { + panel.hide(); + $_bjueuw18kjfuw8wjq.insertTable(editor, 2, 2); + } + }); + addHeaderButtons(editor); + }; + var $_cb0m4418cjfuw8wiy = { addToEditor: addToEditor }; + + var getUiContainerDelta$1 = function () { + var uiContainer = global$1.container; + if (uiContainer && global$2.DOM.getStyle(uiContainer, 'position', true) !== 'static') { + var containerPos = global$2.DOM.getPos(uiContainer); + var dx = containerPos.x - uiContainer.scrollLeft; + var dy = containerPos.y - uiContainer.scrollTop; + return Option.some({ + x: dx, + y: dy + }); + } else { + return Option.none(); + } + }; + var $_1lziwq18rjfuw8wk4 = { getUiContainerDelta: getUiContainerDelta$1 }; + + var isDomainLike = function (href) { + return /^www\.|\.(com|org|edu|gov|uk|net|ca|de|jp|fr|au|us|ru|ch|it|nl|se|no|es|mil)$/i.test(href.trim()); + }; + var isAbsolute = function (href) { + return /^https?:\/\//.test(href.trim()); + }; + var $_7ouuxp18tjfuw8wkn = { + isDomainLike: isDomainLike, + isAbsolute: isAbsolute + }; + + var focusFirstTextBox = function (form) { + form.find('textbox').eq(0).each(function (ctrl) { + ctrl.focus(); + }); + }; + var createForm = function (name, spec) { + var form = global$11.create(global$4.extend({ + type: 'form', + layout: 'flex', + direction: 'row', + padding: 5, + name: name, + spacing: 3 + }, spec)); + form.on('show', function () { + focusFirstTextBox(form); + }); + return form; + }; + var toggleVisibility = function (ctrl, state) { + return state ? ctrl.show() : ctrl.hide(); + }; + var askAboutPrefix = function (editor, href) { + return new global$13(function (resolve) { + editor.windowManager.confirm('The URL you entered seems to be an external link. Do you want to add the required http:// prefix?', function (result) { + var output = result === true ? 'http://' + href : href; + resolve(output); + }); + }); + }; + var convertLinkToAbsolute = function (editor, href) { + return !$_7ouuxp18tjfuw8wkn.isAbsolute(href) && $_7ouuxp18tjfuw8wkn.isDomainLike(href) ? askAboutPrefix(editor, href) : global$13.resolve(href); + }; + var createQuickLinkForm = function (editor, hide) { + var attachState = {}; + var unlink = function () { + editor.focus(); + $_bjueuw18kjfuw8wjq.unlink(editor); + hide(); + }; + var onChangeHandler = function (e) { + var meta = e.meta; + if (meta && meta.attach) { + attachState = { + href: this.value(), + attach: meta.attach + }; + } + }; + var onShowHandler = function (e) { + if (e.control === this) { + var elm = void 0, linkurl = ''; + elm = editor.dom.getParent(editor.selection.getStart(), 'a[href]'); + if (elm) { + linkurl = editor.dom.getAttrib(elm, 'href'); + } + this.fromJSON({ linkurl: linkurl }); + toggleVisibility(this.find('#unlink'), elm); + this.find('#linkurl')[0].focus(); + } + }; + return createForm('quicklink', { + items: [ + { + type: 'button', + name: 'unlink', + icon: 'unlink', + onclick: unlink, + tooltip: 'Remove link' + }, + { + type: 'filepicker', + name: 'linkurl', + placeholder: 'Paste or type a link', + filetype: 'file', + onchange: onChangeHandler + }, + { + type: 'button', + icon: 'checkmark', + subtype: 'primary', + tooltip: 'Ok', + onclick: 'submit' + } + ], + onshow: onShowHandler, + onsubmit: function (e) { + convertLinkToAbsolute(editor, e.data.linkurl).then(function (url) { + editor.undoManager.transact(function () { + if (url === attachState.href) { + attachState.attach(); + attachState = {}; + } + $_bjueuw18kjfuw8wjq.createLink(editor, url); + }); + hide(); + }); + } + }); + }; + var $_8xajew18sjfuw8wkl = { createQuickLinkForm: createQuickLinkForm }; + + var getSelectorStateResult = function (itemName, item) { + var result = function (selector, handler) { + return { + selector: selector, + handler: handler + }; + }; + var activeHandler = function (state) { + item.active(state); + }; + var disabledHandler = function (state) { + item.disabled(state); + }; + if (item.settings.stateSelector) { + return result(item.settings.stateSelector, activeHandler); + } + if (item.settings.disabledStateSelector) { + return result(item.settings.disabledStateSelector, disabledHandler); + } + return null; + }; + var bindSelectorChanged = function (editor, itemName, item) { + return function () { + var result = getSelectorStateResult(itemName, item); + if (result !== null) { + editor.selection.selectorChanged(result.selector, result.handler); + } + }; + }; + var itemsToArray$1 = function (items) { + if ($_8t6wb917ajfuw8wec.isArray(items)) { + return items; + } else if ($_8t6wb917ajfuw8wec.isString(items)) { + return items.split(/[ ,]/); + } + return []; + }; + var create$2 = function (editor, name, items) { + var toolbarItems = []; + var buttonGroup; + if (!items) { + return; + } + global$4.each(itemsToArray$1(items), function (item) { + if (item === '|') { + buttonGroup = null; + } else { + if (editor.buttons[item]) { + if (!buttonGroup) { + buttonGroup = { + type: 'buttongroup', + items: [] + }; + toolbarItems.push(buttonGroup); + } + var button = editor.buttons[item]; + if ($_8t6wb917ajfuw8wec.isFunction(button)) { + button = button(); + } + button.type = button.type || 'button'; + button = global$11.create(button); + button.on('postRender', bindSelectorChanged(editor, item, button)); + buttonGroup.items.push(button); + } + } + }); + return global$11.create({ + type: 'toolbar', + layout: 'flow', + name: name, + items: toolbarItems + }); + }; + var $_8elil818ujfuw8wko = { create: create$2 }; + + var create$3 = function () { + var panel, currentRect; + var createToolbars = function (editor, toolbars) { + return global$4.map(toolbars, function (toolbar) { + return $_8elil818ujfuw8wko.create(editor, toolbar.id, toolbar.items); + }); + }; + var hasToolbarItems = function (toolbar) { + return toolbar.items().length > 0; + }; + var create = function (editor, toolbars) { + var items = createToolbars(editor, toolbars).concat([ + $_8elil818ujfuw8wko.create(editor, 'text', $_44ho17177jfuw8we6.getTextSelectionToolbarItems(editor)), + $_8elil818ujfuw8wko.create(editor, 'insert', $_44ho17177jfuw8we6.getInsertToolbarItems(editor)), + $_8xajew18sjfuw8wkl.createQuickLinkForm(editor, hide) + ]); + return global$11.create({ + type: 'floatpanel', + role: 'dialog', + classes: 'tinymce tinymce-inline arrow', + ariaLabel: 'Inline toolbar', + layout: 'flex', + direction: 'column', + align: 'stretch', + autohide: false, + autofix: true, + fixed: true, + border: 1, + items: global$4.grep(items, hasToolbarItems), + oncancel: function () { + editor.focus(); + } + }); + }; + var showPanel = function (panel) { + if (panel) { + panel.show(); + } + }; + var movePanelTo = function (panel, pos) { + panel.moveTo(pos.x, pos.y); + }; + var togglePositionClass = function (panel, relPos) { + relPos = relPos ? relPos.substr(0, 2) : ''; + global$4.each({ + t: 'down', + b: 'up', + c: 'center' + }, function (cls, pos) { + panel.classes.toggle('arrow-' + cls, pos === relPos.substr(0, 1)); + }); + if (relPos === 'cr') { + panel.classes.toggle('arrow-left', true); + panel.classes.toggle('arrow-right', false); + } else if (relPos === 'cl') { + panel.classes.toggle('arrow-left', true); + panel.classes.toggle('arrow-right', true); + } else { + global$4.each({ + l: 'left', + r: 'right' + }, function (cls, pos) { + panel.classes.toggle('arrow-' + cls, pos === relPos.substr(1, 1)); + }); + } + }; + var showToolbar = function (panel, id) { + var toolbars = panel.items().filter('#' + id); + if (toolbars.length > 0) { + toolbars[0].show(); + panel.reflow(); + return true; + } + return false; + }; + var repositionPanelAt = function (panel, id, editor, targetRect) { + var contentAreaRect, panelRect, result, userConstainHandler; + userConstainHandler = $_44ho17177jfuw8we6.getPositionHandler(editor); + contentAreaRect = $_eiro29170jfuw8wdy.getContentAreaRect(editor); + panelRect = global$2.DOM.getRect(panel.getEl()); + if (id === 'insert') { + result = $_4f0zwc17bjfuw8wee.calcInsert(targetRect, contentAreaRect, panelRect); + } else { + result = $_4f0zwc17bjfuw8wee.calc(targetRect, contentAreaRect, panelRect); + } + if (result) { + var delta = $_1lziwq18rjfuw8wk4.getUiContainerDelta().getOr({ + x: 0, + y: 0 + }); + var transposedPanelRect = { + x: result.rect.x - delta.x, + y: result.rect.y - delta.y, + w: result.rect.w, + h: result.rect.h + }; + currentRect = targetRect; + movePanelTo(panel, $_4f0zwc17bjfuw8wee.userConstrain(userConstainHandler, targetRect, contentAreaRect, transposedPanelRect)); + togglePositionClass(panel, result.position); + return true; + } else { + return false; + } + }; + var showPanelAt = function (panel, id, editor, targetRect) { + showPanel(panel); + panel.items().hide(); + if (!showToolbar(panel, id)) { + hide(); + return; + } + if (repositionPanelAt(panel, id, editor, targetRect) === false) { + hide(); + } + }; + var hasFormVisible = function () { + return panel.items().filter('form:visible').length > 0; + }; + var showForm = function (editor, id) { + if (panel) { + panel.items().hide(); + if (!showToolbar(panel, id)) { + hide(); + return; + } + var contentAreaRect = void 0, panelRect = void 0, result = void 0, userConstainHandler = void 0; + showPanel(panel); + panel.items().hide(); + showToolbar(panel, id); + userConstainHandler = $_44ho17177jfuw8we6.getPositionHandler(editor); + contentAreaRect = $_eiro29170jfuw8wdy.getContentAreaRect(editor); + panelRect = global$2.DOM.getRect(panel.getEl()); + result = $_4f0zwc17bjfuw8wee.calc(currentRect, contentAreaRect, panelRect); + if (result) { + panelRect = result.rect; + movePanelTo(panel, $_4f0zwc17bjfuw8wee.userConstrain(userConstainHandler, currentRect, contentAreaRect, panelRect)); + togglePositionClass(panel, result.position); + } + } + }; + var show = function (editor, id, targetRect, toolbars) { + if (!panel) { + $_5f627b176jfuw8we5.fireBeforeRenderUI(editor); + panel = create(editor, toolbars); + panel.renderTo().reflow().moveTo(targetRect.x, targetRect.y); + editor.nodeChanged(); + } + showPanelAt(panel, id, editor, targetRect); + }; + var reposition = function (editor, id, targetRect) { + if (panel) { + repositionPanelAt(panel, id, editor, targetRect); + } + }; + var hide = function () { + if (panel) { + panel.hide(); + } + }; + var focus = function () { + if (panel) { + panel.find('toolbar:visible').eq(0).each(function (item) { + item.focus(true); + }); + } + }; + var remove = function () { + if (panel) { + panel.remove(); + panel = null; + } + }; + var inForm = function () { + return panel && panel.visible() && hasFormVisible(); + }; + return { + show: show, + showForm: showForm, + reposition: reposition, + inForm: inForm, + hide: hide, + focus: focus, + remove: remove + }; + }; + + var Layout$1 = global$8.extend({ + Defaults: { + firstControlClass: 'first', + lastControlClass: 'last' + }, + init: function (settings) { + this.settings = global$4.extend({}, this.Defaults, settings); + }, + preRender: function (container) { + container.bodyClasses.add(this.settings.containerClass); + }, + applyClasses: function (items) { + var self = this; + var settings = self.settings; + var firstClass, lastClass, firstItem, lastItem; + firstClass = settings.firstControlClass; + lastClass = settings.lastControlClass; + items.each(function (item) { + item.classes.remove(firstClass).remove(lastClass).add(settings.controlClass); + if (item.visible()) { + if (!firstItem) { + firstItem = item; + } + lastItem = item; + } + }); + if (firstItem) { + firstItem.classes.add(firstClass); + } + if (lastItem) { + lastItem.classes.add(lastClass); + } + }, + renderHtml: function (container) { + var self = this; + var html = ''; + self.applyClasses(container.items()); + container.items().each(function (item) { + html += item.renderHtml(); + }); + return html; + }, + recalc: function () { + }, + postRender: function () { + }, + isNative: function () { + return false; + } + }); + + var AbsoluteLayout = Layout$1.extend({ + Defaults: { + containerClass: 'abs-layout', + controlClass: 'abs-layout-item' + }, + recalc: function (container) { + container.items().filter(':visible').each(function (ctrl) { + var settings = ctrl.settings; + ctrl.layoutRect({ + x: settings.x, + y: settings.y, + w: settings.w, + h: settings.h + }); + if (ctrl.recalc) { + ctrl.recalc(); + } + }); + }, + renderHtml: function (container) { + return '<div id="' + container._id + '-absend" class="' + container.classPrefix + 'abs-end"></div>' + this._super(container); + } + }); + + var Button = Widget.extend({ + Defaults: { + classes: 'widget btn', + role: 'button' + }, + init: function (settings) { + var self = this; + var size; + self._super(settings); + settings = self.settings; + size = self.settings.size; + self.on('click mousedown', function (e) { + e.preventDefault(); + }); + self.on('touchstart', function (e) { + self.fire('click', e); + e.preventDefault(); + }); + if (settings.subtype) { + self.classes.add(settings.subtype); + } + if (size) { + self.classes.add('btn-' + size); + } + if (settings.icon) { + self.icon(settings.icon); + } + }, + icon: function (icon) { + if (!arguments.length) { + return this.state.get('icon'); + } + this.state.set('icon', icon); + return this; + }, + repaint: function () { + var btnElm = this.getEl().firstChild; + var btnStyle; + if (btnElm) { + btnStyle = btnElm.style; + btnStyle.width = btnStyle.height = '100%'; + } + this._super(); + }, + renderHtml: function () { + var self = this, id = self._id, prefix = self.classPrefix; + var icon = self.state.get('icon'), image; + var text = self.state.get('text'); + var textHtml = ''; + var ariaPressed; + var settings = self.settings; + image = settings.image; + if (image) { + icon = 'none'; + if (typeof image !== 'string') { + image = window.getSelection ? image[0] : image[1]; + } + image = ' style="background-image: url(\'' + image + '\')"'; + } else { + image = ''; + } + if (text) { + self.classes.add('btn-has-text'); + textHtml = '<span class="' + prefix + 'txt">' + self.encode(text) + '</span>'; + } + icon = icon ? prefix + 'ico ' + prefix + 'i-' + icon : ''; + ariaPressed = typeof settings.active === 'boolean' ? ' aria-pressed="' + settings.active + '"' : ''; + return '<div id="' + id + '" class="' + self.classes + '" tabindex="-1"' + ariaPressed + '>' + '<button id="' + id + '-button" role="presentation" type="button" tabindex="-1">' + (icon ? '<i class="' + icon + '"' + image + '></i>' : '') + textHtml + '</button>' + '</div>'; + }, + bindStates: function () { + var self = this, $ = self.$, textCls = self.classPrefix + 'txt'; + function setButtonText(text) { + var $span = $('span.' + textCls, self.getEl()); + if (text) { + if (!$span[0]) { + $('button:first', self.getEl()).append('<span class="' + textCls + '"></span>'); + $span = $('span.' + textCls, self.getEl()); + } + $span.html(self.encode(text)); + } else { + $span.remove(); + } + self.classes.toggle('btn-has-text', !!text); + } + self.state.on('change:text', function (e) { + setButtonText(e.value); + }); + self.state.on('change:icon', function (e) { + var icon = e.value; + var prefix = self.classPrefix; + self.settings.icon = icon; + icon = icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : ''; + var btnElm = self.getEl().firstChild; + var iconElm = btnElm.getElementsByTagName('i')[0]; + if (icon) { + if (!iconElm || iconElm !== btnElm.firstChild) { + iconElm = document.createElement('i'); + btnElm.insertBefore(iconElm, btnElm.firstChild); + } + iconElm.className = icon; + } else if (iconElm) { + btnElm.removeChild(iconElm); + } + setButtonText(self.state.get('text')); + }); + return self._super(); + } + }); + + var BrowseButton = Button.extend({ + init: function (settings) { + var self = this; + settings = global$4.extend({ + text: 'Browse...', + multiple: false, + accept: null + }, settings); + self._super(settings); + self.classes.add('browsebutton'); + if (settings.multiple) { + self.classes.add('multiple'); + } + }, + postRender: function () { + var self = this; + var input = funcs.create('input', { + type: 'file', + id: self._id + '-browse', + accept: self.settings.accept + }); + self._super(); + global$7(input).on('change', function (e) { + var files = e.target.files; + self.value = function () { + if (!files.length) { + return null; + } else if (self.settings.multiple) { + return files; + } else { + return files[0]; + } + }; + e.preventDefault(); + if (files.length) { + self.fire('change', e); + } + }); + global$7(input).on('click', function (e) { + e.stopPropagation(); + }); + global$7(self.getEl('button')).on('click', function (e) { + e.stopPropagation(); + input.click(); + }); + self.getEl().appendChild(input); + }, + remove: function () { + global$7(this.getEl('button')).off(); + global$7(this.getEl('input')).off(); + this._super(); + } + }); + + var ButtonGroup = Container.extend({ + Defaults: { + defaultType: 'button', + role: 'group' + }, + renderHtml: function () { + var self = this, layout = self._layout; + self.classes.add('btn-group'); + self.preRender(); + layout.preRender(self); + return '<div id="' + self._id + '" class="' + self.classes + '">' + '<div id="' + self._id + '-body">' + (self.settings.html || '') + layout.renderHtml(self) + '</div>' + '</div>'; + } + }); + + var Checkbox = Widget.extend({ + Defaults: { + classes: 'checkbox', + role: 'checkbox', + checked: false + }, + init: function (settings) { + var self = this; + self._super(settings); + self.on('click mousedown', function (e) { + e.preventDefault(); + }); + self.on('click', function (e) { + e.preventDefault(); + if (!self.disabled()) { + self.checked(!self.checked()); + } + }); + self.checked(self.settings.checked); + }, + checked: function (state) { + if (!arguments.length) { + return this.state.get('checked'); + } + this.state.set('checked', state); + return this; + }, + value: function (state) { + if (!arguments.length) { + return this.checked(); + } + return this.checked(state); + }, + renderHtml: function () { + var self = this, id = self._id, prefix = self.classPrefix; + return '<div id="' + id + '" class="' + self.classes + '" unselectable="on" aria-labelledby="' + id + '-al" tabindex="-1">' + '<i class="' + prefix + 'ico ' + prefix + 'i-checkbox"></i>' + '<span id="' + id + '-al" class="' + prefix + 'label">' + self.encode(self.state.get('text')) + '</span>' + '</div>'; + }, + bindStates: function () { + var self = this; + function checked(state) { + self.classes.toggle('checked', state); + self.aria('checked', state); + } + self.state.on('change:text', function (e) { + self.getEl('al').firstChild.data = self.translate(e.value); + }); + self.state.on('change:checked change:value', function (e) { + self.fire('change'); + checked(e.value); + }); + self.state.on('change:icon', function (e) { + var icon = e.value; + var prefix = self.classPrefix; + if (typeof icon === 'undefined') { + return self.settings.icon; + } + self.settings.icon = icon; + icon = icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : ''; + var btnElm = self.getEl().firstChild; + var iconElm = btnElm.getElementsByTagName('i')[0]; + if (icon) { + if (!iconElm || iconElm !== btnElm.firstChild) { + iconElm = document.createElement('i'); + btnElm.insertBefore(iconElm, btnElm.firstChild); + } + iconElm.className = icon; + } else if (iconElm) { + btnElm.removeChild(iconElm); + } + }); + if (self.state.get('checked')) { + checked(true); + } + return self._super(); + } + }); + + var global$16 = tinymce.util.Tools.resolve('tinymce.util.VK'); + + var ComboBox = Widget.extend({ + init: function (settings) { + var self = this; + self._super(settings); + settings = self.settings; + self.classes.add('combobox'); + self.subinput = true; + self.ariaTarget = 'inp'; + settings.menu = settings.menu || settings.values; + if (settings.menu) { + settings.icon = 'caret'; + } + self.on('click', function (e) { + var elm = e.target; + var root = self.getEl(); + if (!global$7.contains(root, elm) && elm !== root) { + return; + } + while (elm && elm !== root) { + if (elm.id && elm.id.indexOf('-open') !== -1) { + self.fire('action'); + if (settings.menu) { + self.showMenu(); + if (e.aria) { + self.menu.items()[0].focus(); + } + } + } + elm = elm.parentNode; + } + }); + self.on('keydown', function (e) { + var rootControl; + if (e.keyCode === 13 && e.target.nodeName === 'INPUT') { + e.preventDefault(); + self.parents().reverse().each(function (ctrl) { + if (ctrl.toJSON) { + rootControl = ctrl; + return false; + } + }); + self.fire('submit', { data: rootControl.toJSON() }); + } + }); + self.on('keyup', function (e) { + if (e.target.nodeName === 'INPUT') { + var oldValue = self.state.get('value'); + var newValue = e.target.value; + if (newValue !== oldValue) { + self.state.set('value', newValue); + self.fire('autocomplete', e); + } + } + }); + self.on('mouseover', function (e) { + var tooltip = self.tooltip().moveTo(-65535); + if (self.statusLevel() && e.target.className.indexOf(self.classPrefix + 'status') !== -1) { + var statusMessage = self.statusMessage() || 'Ok'; + var rel = tooltip.text(statusMessage).show().testMoveRel(e.target, [ + 'bc-tc', + 'bc-tl', + 'bc-tr' + ]); + tooltip.classes.toggle('tooltip-n', rel === 'bc-tc'); + tooltip.classes.toggle('tooltip-nw', rel === 'bc-tl'); + tooltip.classes.toggle('tooltip-ne', rel === 'bc-tr'); + tooltip.moveRel(e.target, rel); + } + }); + }, + statusLevel: function (value) { + if (arguments.length > 0) { + this.state.set('statusLevel', value); + } + return this.state.get('statusLevel'); + }, + statusMessage: function (value) { + if (arguments.length > 0) { + this.state.set('statusMessage', value); + } + return this.state.get('statusMessage'); + }, + showMenu: function () { + var self = this; + var settings = self.settings; + var menu; + if (!self.menu) { + menu = settings.menu || []; + if (menu.length) { + menu = { + type: 'menu', + items: menu + }; + } else { + menu.type = menu.type || 'menu'; + } + self.menu = global$11.create(menu).parent(self).renderTo(self.getContainerElm()); + self.fire('createmenu'); + self.menu.reflow(); + self.menu.on('cancel', function (e) { + if (e.control === self.menu) { + self.focus(); + } + }); + self.menu.on('show hide', function (e) { + e.control.items().each(function (ctrl) { + ctrl.active(ctrl.value() === self.value()); + }); + }).fire('show'); + self.menu.on('select', function (e) { + self.value(e.control.value()); + }); + self.on('focusin', function (e) { + if (e.target.tagName.toUpperCase() === 'INPUT') { + self.menu.hide(); + } + }); + self.aria('expanded', true); + } + self.menu.show(); + self.menu.layoutRect({ w: self.layoutRect().w }); + self.menu.moveRel(self.getEl(), self.isRtl() ? [ + 'br-tr', + 'tr-br' + ] : [ + 'bl-tl', + 'tl-bl' + ]); + }, + focus: function () { + this.getEl('inp').focus(); + }, + repaint: function () { + var self = this, elm = self.getEl(), openElm = self.getEl('open'), rect = self.layoutRect(); + var width, lineHeight, innerPadding = 0; + var inputElm = elm.firstChild; + if (self.statusLevel() && self.statusLevel() !== 'none') { + innerPadding = parseInt(funcs.getRuntimeStyle(inputElm, 'padding-right'), 10) - parseInt(funcs.getRuntimeStyle(inputElm, 'padding-left'), 10); + } + if (openElm) { + width = rect.w - funcs.getSize(openElm).width - 10; + } else { + width = rect.w - 10; + } + var doc = document; + if (doc.all && (!doc.documentMode || doc.documentMode <= 8)) { + lineHeight = self.layoutRect().h - 2 + 'px'; + } + global$7(inputElm).css({ + width: width - innerPadding, + lineHeight: lineHeight + }); + self._super(); + return self; + }, + postRender: function () { + var self = this; + global$7(this.getEl('inp')).on('change', function (e) { + self.state.set('value', e.target.value); + self.fire('change', e); + }); + return self._super(); + }, + renderHtml: function () { + var self = this, id = self._id, settings = self.settings, prefix = self.classPrefix; + var value = self.state.get('value') || ''; + var icon, text, openBtnHtml = '', extraAttrs = '', statusHtml = ''; + if ('spellcheck' in settings) { + extraAttrs += ' spellcheck="' + settings.spellcheck + '"'; + } + if (settings.maxLength) { + extraAttrs += ' maxlength="' + settings.maxLength + '"'; + } + if (settings.size) { + extraAttrs += ' size="' + settings.size + '"'; + } + if (settings.subtype) { + extraAttrs += ' type="' + settings.subtype + '"'; + } + statusHtml = '<i id="' + id + '-status" class="mce-status mce-ico" style="display: none"></i>'; + if (self.disabled()) { + extraAttrs += ' disabled="disabled"'; + } + icon = settings.icon; + if (icon && icon !== 'caret') { + icon = prefix + 'ico ' + prefix + 'i-' + settings.icon; + } + text = self.state.get('text'); + if (icon || text) { + openBtnHtml = '<div id="' + id + '-open" class="' + prefix + 'btn ' + prefix + 'open" tabIndex="-1" role="button">' + '<button id="' + id + '-action" type="button" hidefocus="1" tabindex="-1">' + (icon !== 'caret' ? '<i class="' + icon + '"></i>' : '<i class="' + prefix + 'caret"></i>') + (text ? (icon ? ' ' : '') + text : '') + '</button>' + '</div>'; + self.classes.add('has-open'); + } + return '<div id="' + id + '" class="' + self.classes + '">' + '<input id="' + id + '-inp" class="' + prefix + 'textbox" value="' + self.encode(value, false) + '" hidefocus="1"' + extraAttrs + ' placeholder="' + self.encode(settings.placeholder) + '" />' + statusHtml + openBtnHtml + '</div>'; + }, + value: function (value) { + if (arguments.length) { + this.state.set('value', value); + return this; + } + if (this.state.get('rendered')) { + this.state.set('value', this.getEl('inp').value); + } + return this.state.get('value'); + }, + showAutoComplete: function (items, term) { + var self = this; + if (items.length === 0) { + self.hideMenu(); + return; + } + var insert = function (value, title) { + return function () { + self.fire('selectitem', { + title: title, + value: value + }); + }; + }; + if (self.menu) { + self.menu.items().remove(); + } else { + self.menu = global$11.create({ + type: 'menu', + classes: 'combobox-menu', + layout: 'flow' + }).parent(self).renderTo(); + } + global$4.each(items, function (item) { + self.menu.add({ + text: item.title, + url: item.previewUrl, + match: term, + classes: 'menu-item-ellipsis', + onclick: insert(item.value, item.title) + }); + }); + self.menu.renderNew(); + self.hideMenu(); + self.menu.on('cancel', function (e) { + if (e.control.parent() === self.menu) { + e.stopPropagation(); + self.focus(); + self.hideMenu(); + } + }); + self.menu.on('select', function () { + self.focus(); + }); + var maxW = self.layoutRect().w; + self.menu.layoutRect({ + w: maxW, + minW: 0, + maxW: maxW + }); + self.menu.repaint(); + self.menu.reflow(); + self.menu.show(); + self.menu.moveRel(self.getEl(), self.isRtl() ? [ + 'br-tr', + 'tr-br' + ] : [ + 'bl-tl', + 'tl-bl' + ]); + }, + hideMenu: function () { + if (this.menu) { + this.menu.hide(); + } + }, + bindStates: function () { + var self = this; + self.state.on('change:value', function (e) { + if (self.getEl('inp').value !== e.value) { + self.getEl('inp').value = e.value; + } + }); + self.state.on('change:disabled', function (e) { + self.getEl('inp').disabled = e.value; + }); + self.state.on('change:statusLevel', function (e) { + var statusIconElm = self.getEl('status'); + var prefix = self.classPrefix, value = e.value; + funcs.css(statusIconElm, 'display', value === 'none' ? 'none' : ''); + funcs.toggleClass(statusIconElm, prefix + 'i-checkmark', value === 'ok'); + funcs.toggleClass(statusIconElm, prefix + 'i-warning', value === 'warn'); + funcs.toggleClass(statusIconElm, prefix + 'i-error', value === 'error'); + self.classes.toggle('has-status', value !== 'none'); + self.repaint(); + }); + funcs.on(self.getEl('status'), 'mouseleave', function () { + self.tooltip().hide(); + }); + self.on('cancel', function (e) { + if (self.menu && self.menu.visible()) { + e.stopPropagation(); + self.hideMenu(); + } + }); + var focusIdx = function (idx, menu) { + if (menu && menu.items().length > 0) { + menu.items().eq(idx)[0].focus(); + } + }; + self.on('keydown', function (e) { + var keyCode = e.keyCode; + if (e.target.nodeName === 'INPUT') { + if (keyCode === global$16.DOWN) { + e.preventDefault(); + self.fire('autocomplete'); + focusIdx(0, self.menu); + } else if (keyCode === global$16.UP) { + e.preventDefault(); + focusIdx(-1, self.menu); + } + } + }); + return self._super(); + }, + remove: function () { + global$7(this.getEl('inp')).off(); + if (this.menu) { + this.menu.remove(); + } + this._super(); + } + }); + + var ColorBox = ComboBox.extend({ + init: function (settings) { + var self = this; + settings.spellcheck = false; + if (settings.onaction) { + settings.icon = 'none'; + } + self._super(settings); + self.classes.add('colorbox'); + self.on('change keyup postrender', function () { + self.repaintColor(self.value()); + }); + }, + repaintColor: function (value) { + var openElm = this.getEl('open'); + var elm = openElm ? openElm.getElementsByTagName('i')[0] : null; + if (elm) { + try { + elm.style.background = value; + } catch (ex) { + } + } + }, + bindStates: function () { + var self = this; + self.state.on('change:value', function (e) { + if (self.state.get('rendered')) { + self.repaintColor(e.value); + } + }); + return self._super(); + } + }); + + var PanelButton = Button.extend({ + showPanel: function () { + var self = this, settings = self.settings; + self.classes.add('opened'); + if (!self.panel) { + var panelSettings = settings.panel; + if (panelSettings.type) { + panelSettings = { + layout: 'grid', + items: panelSettings + }; + } + panelSettings.role = panelSettings.role || 'dialog'; + panelSettings.popover = true; + panelSettings.autohide = true; + panelSettings.ariaRoot = true; + self.panel = new FloatPanel(panelSettings).on('hide', function () { + self.classes.remove('opened'); + }).on('cancel', function (e) { + e.stopPropagation(); + self.focus(); + self.hidePanel(); + }).parent(self).renderTo(self.getContainerElm()); + self.panel.fire('show'); + self.panel.reflow(); + } else { + self.panel.show(); + } + var rtlRels = [ + 'bc-tc', + 'bc-tl', + 'bc-tr' + ]; + var ltrRels = [ + 'bc-tc', + 'bc-tr', + 'bc-tl', + 'tc-bc', + 'tc-br', + 'tc-bl' + ]; + var rel = self.panel.testMoveRel(self.getEl(), settings.popoverAlign || (self.isRtl() ? rtlRels : ltrRels)); + self.panel.classes.toggle('start', rel.substr(-1) === 'l'); + self.panel.classes.toggle('end', rel.substr(-1) === 'r'); + var isTop = rel.substr(0, 1) === 't'; + self.panel.classes.toggle('bottom', !isTop); + self.panel.classes.toggle('top', isTop); + self.panel.moveRel(self.getEl(), rel); + }, + hidePanel: function () { + var self = this; + if (self.panel) { + self.panel.hide(); + } + }, + postRender: function () { + var self = this; + self.aria('haspopup', true); + self.on('click', function (e) { + if (e.control === self) { + if (self.panel && self.panel.visible()) { + self.hidePanel(); + } else { + self.showPanel(); + self.panel.focus(!!e.aria); + } + } + }); + return self._super(); + }, + remove: function () { + if (this.panel) { + this.panel.remove(); + this.panel = null; + } + return this._super(); + } + }); + + var DOM = global$2.DOM; + var ColorButton = PanelButton.extend({ + init: function (settings) { + this._super(settings); + this.classes.add('splitbtn'); + this.classes.add('colorbutton'); + }, + color: function (color) { + if (color) { + this._color = color; + this.getEl('preview').style.backgroundColor = color; + return this; + } + return this._color; + }, + resetColor: function () { + this._color = null; + this.getEl('preview').style.backgroundColor = null; + return this; + }, + renderHtml: function () { + var self = this, id = self._id, prefix = self.classPrefix, text = self.state.get('text'); + var icon = self.settings.icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : ''; + var image = self.settings.image ? ' style="background-image: url(\'' + self.settings.image + '\')"' : ''; + var textHtml = ''; + if (text) { + self.classes.add('btn-has-text'); + textHtml = '<span class="' + prefix + 'txt">' + self.encode(text) + '</span>'; + } + return '<div id="' + id + '" class="' + self.classes + '" role="button" tabindex="-1" aria-haspopup="true">' + '<button role="presentation" hidefocus="1" type="button" tabindex="-1">' + (icon ? '<i class="' + icon + '"' + image + '></i>' : '') + '<span id="' + id + '-preview" class="' + prefix + 'preview"></span>' + textHtml + '</button>' + '<button type="button" class="' + prefix + 'open" hidefocus="1" tabindex="-1">' + ' <i class="' + prefix + 'caret"></i>' + '</button>' + '</div>'; + }, + postRender: function () { + var self = this, onClickHandler = self.settings.onclick; + self.on('click', function (e) { + if (e.aria && e.aria.key === 'down') { + return; + } + if (e.control === self && !DOM.getParent(e.target, '.' + self.classPrefix + 'open')) { + e.stopImmediatePropagation(); + onClickHandler.call(self, e); + } + }); + delete self.settings.onclick; + return self._super(); + } + }); + + var global$17 = tinymce.util.Tools.resolve('tinymce.util.Color'); + + var ColorPicker = Widget.extend({ + Defaults: { classes: 'widget colorpicker' }, + init: function (settings) { + this._super(settings); + }, + postRender: function () { + var self = this; + var color = self.color(); + var hsv, hueRootElm, huePointElm, svRootElm, svPointElm; + hueRootElm = self.getEl('h'); + huePointElm = self.getEl('hp'); + svRootElm = self.getEl('sv'); + svPointElm = self.getEl('svp'); + function getPos(elm, event) { + var pos = funcs.getPos(elm); + var x, y; + x = event.pageX - pos.x; + y = event.pageY - pos.y; + x = Math.max(0, Math.min(x / elm.clientWidth, 1)); + y = Math.max(0, Math.min(y / elm.clientHeight, 1)); + return { + x: x, + y: y + }; + } + function updateColor(hsv, hueUpdate) { + var hue = (360 - hsv.h) / 360; + funcs.css(huePointElm, { top: hue * 100 + '%' }); + if (!hueUpdate) { + funcs.css(svPointElm, { + left: hsv.s + '%', + top: 100 - hsv.v + '%' + }); + } + svRootElm.style.background = global$17({ + s: 100, + v: 100, + h: hsv.h + }).toHex(); + self.color().parse({ + s: hsv.s, + v: hsv.v, + h: hsv.h + }); + } + function updateSaturationAndValue(e) { + var pos; + pos = getPos(svRootElm, e); + hsv.s = pos.x * 100; + hsv.v = (1 - pos.y) * 100; + updateColor(hsv); + self.fire('change'); + } + function updateHue(e) { + var pos; + pos = getPos(hueRootElm, e); + hsv = color.toHsv(); + hsv.h = (1 - pos.y) * 360; + updateColor(hsv, true); + self.fire('change'); + } + self._repaint = function () { + hsv = color.toHsv(); + updateColor(hsv); + }; + self._super(); + self._svdraghelper = new DragHelper(self._id + '-sv', { + start: updateSaturationAndValue, + drag: updateSaturationAndValue + }); + self._hdraghelper = new DragHelper(self._id + '-h', { + start: updateHue, + drag: updateHue + }); + self._repaint(); + }, + rgb: function () { + return this.color().toRgb(); + }, + value: function (value) { + var self = this; + if (arguments.length) { + self.color().parse(value); + if (self._rendered) { + self._repaint(); + } + } else { + return self.color().toHex(); + } + }, + color: function () { + if (!this._color) { + this._color = global$17(); + } + return this._color; + }, + renderHtml: function () { + var self = this; + var id = self._id; + var prefix = self.classPrefix; + var hueHtml; + var stops = '#ff0000,#ff0080,#ff00ff,#8000ff,#0000ff,#0080ff,#00ffff,#00ff80,#00ff00,#80ff00,#ffff00,#ff8000,#ff0000'; + function getOldIeFallbackHtml() { + var i, l, html = '', gradientPrefix, stopsList; + gradientPrefix = 'filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='; + stopsList = stops.split(','); + for (i = 0, l = stopsList.length - 1; i < l; i++) { + html += '<div class="' + prefix + 'colorpicker-h-chunk" style="' + 'height:' + 100 / l + '%;' + gradientPrefix + stopsList[i] + ',endColorstr=' + stopsList[i + 1] + ');' + '-ms-' + gradientPrefix + stopsList[i] + ',endColorstr=' + stopsList[i + 1] + ')' + '"></div>'; + } + return html; + } + var gradientCssText = 'background: -ms-linear-gradient(top,' + stops + ');' + 'background: linear-gradient(to bottom,' + stops + ');'; + hueHtml = '<div id="' + id + '-h" class="' + prefix + 'colorpicker-h" style="' + gradientCssText + '">' + getOldIeFallbackHtml() + '<div id="' + id + '-hp" class="' + prefix + 'colorpicker-h-marker"></div>' + '</div>'; + return '<div id="' + id + '" class="' + self.classes + '">' + '<div id="' + id + '-sv" class="' + prefix + 'colorpicker-sv">' + '<div class="' + prefix + 'colorpicker-overlay1">' + '<div class="' + prefix + 'colorpicker-overlay2">' + '<div id="' + id + '-svp" class="' + prefix + 'colorpicker-selector1">' + '<div class="' + prefix + 'colorpicker-selector2"></div>' + '</div>' + '</div>' + '</div>' + '</div>' + hueHtml + '</div>'; + } + }); + + var DropZone = Widget.extend({ + init: function (settings) { + var self = this; + settings = global$4.extend({ + height: 100, + text: 'Drop an image here', + multiple: false, + accept: null + }, settings); + self._super(settings); + self.classes.add('dropzone'); + if (settings.multiple) { + self.classes.add('multiple'); + } + }, + renderHtml: function () { + var self = this; + var attrs, elm; + var cfg = self.settings; + attrs = { + id: self._id, + hidefocus: '1' + }; + elm = funcs.create('div', attrs, '<span>' + this.translate(cfg.text) + '</span>'); + if (cfg.height) { + funcs.css(elm, 'height', cfg.height + 'px'); + } + if (cfg.width) { + funcs.css(elm, 'width', cfg.width + 'px'); + } + elm.className = self.classes; + return elm.outerHTML; + }, + postRender: function () { + var self = this; + var toggleDragClass = function (e) { + e.preventDefault(); + self.classes.toggle('dragenter'); + self.getEl().className = self.classes; + }; + var filter = function (files) { + var accept = self.settings.accept; + if (typeof accept !== 'string') { + return files; + } + var re = new RegExp('(' + accept.split(/\s*,\s*/).join('|') + ')$', 'i'); + return global$4.grep(files, function (file) { + return re.test(file.name); + }); + }; + self._super(); + self.$el.on('dragover', function (e) { + e.preventDefault(); + }); + self.$el.on('dragenter', toggleDragClass); + self.$el.on('dragleave', toggleDragClass); + self.$el.on('drop', function (e) { + e.preventDefault(); + if (self.state.get('disabled')) { + return; + } + var files = filter(e.dataTransfer.files); + self.value = function () { + if (!files.length) { + return null; + } else if (self.settings.multiple) { + return files; + } else { + return files[0]; + } + }; + if (files.length) { + self.fire('change', e); + } + }); + }, + remove: function () { + this.$el.off(); + this._super(); + } + }); + + var Path = Widget.extend({ + init: function (settings) { + var self = this; + if (!settings.delimiter) { + settings.delimiter = '\xBB'; + } + self._super(settings); + self.classes.add('path'); + self.canFocus = true; + self.on('click', function (e) { + var index; + var target = e.target; + if (index = target.getAttribute('data-index')) { + self.fire('select', { + value: self.row()[index], + index: index + }); + } + }); + self.row(self.settings.row); + }, + focus: function () { + var self = this; + self.getEl().firstChild.focus(); + return self; + }, + row: function (row) { + if (!arguments.length) { + return this.state.get('row'); + } + this.state.set('row', row); + return this; + }, + renderHtml: function () { + var self = this; + return '<div id="' + self._id + '" class="' + self.classes + '">' + self._getDataPathHtml(self.state.get('row')) + '</div>'; + }, + bindStates: function () { + var self = this; + self.state.on('change:row', function (e) { + self.innerHtml(self._getDataPathHtml(e.value)); + }); + return self._super(); + }, + _getDataPathHtml: function (data) { + var self = this; + var parts = data || []; + var i, l, html = ''; + var prefix = self.classPrefix; + for (i = 0, l = parts.length; i < l; i++) { + html += (i > 0 ? '<div class="' + prefix + 'divider" aria-hidden="true"> ' + self.settings.delimiter + ' </div>' : '') + '<div role="button" class="' + prefix + 'path-item' + (i === l - 1 ? ' ' + prefix + 'last' : '') + '" data-index="' + i + '" tabindex="-1" id="' + self._id + '-' + i + '" aria-level="' + (i + 1) + '">' + parts[i].name + '</div>'; + } + if (!html) { + html = '<div class="' + prefix + 'path-item">\xA0</div>'; + } + return html; + } + }); + + var ElementPath = Path.extend({ + postRender: function () { + var self = this, editor = self.settings.editor; + function isHidden(elm) { + if (elm.nodeType === 1) { + if (elm.nodeName === 'BR' || !!elm.getAttribute('data-mce-bogus')) { + return true; + } + if (elm.getAttribute('data-mce-type') === 'bookmark') { + return true; + } + } + return false; + } + if (editor.settings.elementpath !== false) { + self.on('select', function (e) { + editor.focus(); + editor.selection.select(this.row()[e.index].element); + editor.nodeChanged(); + }); + editor.on('nodeChange', function (e) { + var outParents = []; + var parents = e.parents; + var i = parents.length; + while (i--) { + if (parents[i].nodeType === 1 && !isHidden(parents[i])) { + var args = editor.fire('ResolveName', { + name: parents[i].nodeName.toLowerCase(), + target: parents[i] + }); + if (!args.isDefaultPrevented()) { + outParents.push({ + name: args.name, + element: parents[i] + }); + } + if (args.isPropagationStopped()) { + break; + } + } + } + self.row(outParents); + }); + } + return self._super(); + } + }); + + var FormItem = Container.extend({ + Defaults: { + layout: 'flex', + align: 'center', + defaults: { flex: 1 } + }, + renderHtml: function () { + var self = this, layout = self._layout, prefix = self.classPrefix; + self.classes.add('formitem'); + layout.preRender(self); + return '<div id="' + self._id + '" class="' + self.classes + '" hidefocus="1" tabindex="-1">' + (self.settings.title ? '<div id="' + self._id + '-title" class="' + prefix + 'title">' + self.settings.title + '</div>' : '') + '<div id="' + self._id + '-body" class="' + self.bodyClasses + '">' + (self.settings.html || '') + layout.renderHtml(self) + '</div>' + '</div>'; + } + }); + + var Form = Container.extend({ + Defaults: { + containerCls: 'form', + layout: 'flex', + direction: 'column', + align: 'stretch', + flex: 1, + padding: 15, + labelGap: 30, + spacing: 10, + callbacks: { + submit: function () { + this.submit(); + } + } + }, + preRender: function () { + var self = this, items = self.items(); + if (!self.settings.formItemDefaults) { + self.settings.formItemDefaults = { + layout: 'flex', + autoResize: 'overflow', + defaults: { flex: 1 } + }; + } + items.each(function (ctrl) { + var formItem; + var label = ctrl.settings.label; + if (label) { + formItem = new FormItem(global$4.extend({ + items: { + type: 'label', + id: ctrl._id + '-l', + text: label, + flex: 0, + forId: ctrl._id, + disabled: ctrl.disabled() + } + }, self.settings.formItemDefaults)); + formItem.type = 'formitem'; + ctrl.aria('labelledby', ctrl._id + '-l'); + if (typeof ctrl.settings.flex === 'undefined') { + ctrl.settings.flex = 1; + } + self.replace(ctrl, formItem); + formItem.add(ctrl); + } + }); + }, + submit: function () { + return this.fire('submit', { data: this.toJSON() }); + }, + postRender: function () { + var self = this; + self._super(); + self.fromJSON(self.settings.data); + }, + bindStates: function () { + var self = this; + self._super(); + function recalcLabels() { + var maxLabelWidth = 0; + var labels = []; + var i, labelGap, items; + if (self.settings.labelGapCalc === false) { + return; + } + if (self.settings.labelGapCalc === 'children') { + items = self.find('formitem'); + } else { + items = self.items(); + } + items.filter('formitem').each(function (item) { + var labelCtrl = item.items()[0], labelWidth = labelCtrl.getEl().clientWidth; + maxLabelWidth = labelWidth > maxLabelWidth ? labelWidth : maxLabelWidth; + labels.push(labelCtrl); + }); + labelGap = self.settings.labelGap || 0; + i = labels.length; + while (i--) { + labels[i].settings.minWidth = maxLabelWidth + labelGap; + } + } + self.on('show', recalcLabels); + recalcLabels(); + } + }); + + var FieldSet = Form.extend({ + Defaults: { + containerCls: 'fieldset', + layout: 'flex', + direction: 'column', + align: 'stretch', + flex: 1, + padding: '25 15 5 15', + labelGap: 30, + spacing: 10, + border: 1 + }, + renderHtml: function () { + var self = this, layout = self._layout, prefix = self.classPrefix; + self.preRender(); + layout.preRender(self); + return '<fieldset id="' + self._id + '" class="' + self.classes + '" hidefocus="1" tabindex="-1">' + (self.settings.title ? '<legend id="' + self._id + '-title" class="' + prefix + 'fieldset-title">' + self.settings.title + '</legend>' : '') + '<div id="' + self._id + '-body" class="' + self.bodyClasses + '">' + (self.settings.html || '') + layout.renderHtml(self) + '</div>' + '</fieldset>'; + } + }); + + var unique$1 = 0; + var generate = function (prefix) { + var date = new Date(); + var time = date.getTime(); + var random = Math.floor(Math.random() * 1000000000); + unique$1++; + return prefix + '_' + random + unique$1 + String(time); + }; + var $_2kv8f219hjfuw8wmw = { generate: generate }; + + var fromHtml = function (html, scope) { + var doc = scope || document; + var div = doc.createElement('div'); + div.innerHTML = html; + if (!div.hasChildNodes() || div.childNodes.length > 1) { + console.error('HTML does not have a single root node', html); + throw 'HTML must have a single root node'; + } + return fromDom(div.childNodes[0]); + }; + var fromTag = function (tag, scope) { + var doc = scope || document; + var node = doc.createElement(tag); + return fromDom(node); + }; + var fromText = function (text, scope) { + var doc = scope || document; + var node = doc.createTextNode(text); + return fromDom(node); + }; + var fromDom = function (node) { + if (node === null || node === undefined) + throw new Error('Node cannot be null or undefined'); + return { dom: $_d9fl1s17gjfuw8wew.constant(node) }; + }; + var fromPoint = function (doc, x, y) { + return Option.from(doc.dom().elementFromPoint(x, y)).map(fromDom); + }; + var $_fmubbj19ijfuw8wmy = { + fromHtml: fromHtml, + fromTag: fromTag, + fromText: fromText, + fromDom: fromDom, + fromPoint: fromPoint + }; + + var cached = function (f) { + var called = false; + var r; + return function () { + if (!called) { + called = true; + r = f.apply(null, arguments); + } + return r; + }; + }; + var $_7dlbos19mjfuw8wnb = { cached: cached }; + + var $_8v84g119ojfuw8wnd = { + ATTRIBUTE: 2, + CDATA_SECTION: 4, + COMMENT: 8, + DOCUMENT: 9, + DOCUMENT_TYPE: 10, + DOCUMENT_FRAGMENT: 11, + ELEMENT: 1, + TEXT: 3, + PROCESSING_INSTRUCTION: 7, + ENTITY_REFERENCE: 5, + ENTITY: 6, + NOTATION: 12 + }; + + var name = function (element) { + var r = element.dom().nodeName; + return r.toLowerCase(); + }; + var type = function (element) { + return element.dom().nodeType; + }; + var value = function (element) { + return element.dom().nodeValue; + }; + var isType$2 = function (t) { + return function (element) { + return type(element) === t; + }; + }; + var isComment = function (element) { + return type(element) === $_8v84g119ojfuw8wnd.COMMENT || name(element) === '#comment'; + }; + var isElement = isType$2($_8v84g119ojfuw8wnd.ELEMENT); + var isText = isType$2($_8v84g119ojfuw8wnd.TEXT); + var isDocument = isType$2($_8v84g119ojfuw8wnd.DOCUMENT); + var $_a06ojb19njfuw8wnc = { + name: name, + type: type, + value: value, + isElement: isElement, + isText: isText, + isDocument: isDocument, + isComment: isComment + }; + + var inBody = function (element) { + var dom = $_a06ojb19njfuw8wnc.isText(element) ? element.dom().parentNode : element.dom(); + return dom !== undefined && dom !== null && dom.ownerDocument.body.contains(dom); + }; + var body = $_7dlbos19mjfuw8wnb.cached(function () { + return getBody($_fmubbj19ijfuw8wmy.fromDom(document)); + }); + var getBody = function (doc) { + var body = doc.dom().body; + if (body === null || body === undefined) + throw 'Body is not available yet'; + return $_fmubbj19ijfuw8wmy.fromDom(body); + }; + var $_9dfew519ljfuw8wn8 = { + body: body, + getBody: getBody, + inBody: inBody + }; + + function Immutable () { + var fields = []; + for (var _i = 0; _i < arguments.length; _i++) { + fields[_i] = arguments[_i]; + } + return function () { + var values = []; + for (var _i = 0; _i < arguments.length; _i++) { + values[_i] = arguments[_i]; + } + if (fields.length !== values.length) { + throw new Error('Wrong number of arguments to struct. Expected "[' + fields.length + ']", got ' + values.length + ' arguments'); + } + var struct = {}; + $_1doq1817ejfuw8wen.each(fields, function (name, i) { + struct[name] = $_d9fl1s17gjfuw8wew.constant(values[i]); + }); + return struct; + }; + } + + var keys = function () { + var fastKeys = Object.keys; + var slowKeys = function (o) { + var r = []; + for (var i in o) { + if (o.hasOwnProperty(i)) { + r.push(i); + } + } + return r; + }; + return fastKeys === undefined ? slowKeys : fastKeys; + }(); + var each$1 = function (obj, f) { + var props = keys(obj); + for (var k = 0, len = props.length; k < len; k++) { + var i = props[k]; + var x = obj[i]; + f(x, i, obj); + } + }; + var objectMap = function (obj, f) { + return tupleMap(obj, function (x, i, obj) { + return { + k: i, + v: f(x, i, obj) + }; + }); + }; + var tupleMap = function (obj, f) { + var r = {}; + each$1(obj, function (x, i) { + var tuple = f(x, i, obj); + r[tuple.k] = tuple.v; + }); + return r; + }; + var bifilter = function (obj, pred) { + var t = {}; + var f = {}; + each$1(obj, function (x, i) { + var branch = pred(x, i) ? t : f; + branch[i] = x; + }); + return { + t: t, + f: f + }; + }; + var mapToArray = function (obj, f) { + var r = []; + each$1(obj, function (value, name) { + r.push(f(value, name)); + }); + return r; + }; + var find$1 = function (obj, pred) { + var props = keys(obj); + for (var k = 0, len = props.length; k < len; k++) { + var i = props[k]; + var x = obj[i]; + if (pred(x, i, obj)) { + return Option.some(x); + } + } + return Option.none(); + }; + var values = function (obj) { + return mapToArray(obj, function (v) { + return v; + }); + }; + var size = function (obj) { + return values(obj).length; + }; + var $_al3re919tjfuw8wo6 = { + bifilter: bifilter, + each: each$1, + map: objectMap, + mapToArray: mapToArray, + tupleMap: tupleMap, + find: find$1, + keys: keys, + values: values, + size: size + }; + + var sort$1 = function (arr) { + return arr.slice(0).sort(); + }; + var reqMessage = function (required, keys) { + throw new Error('All required keys (' + sort$1(required).join(', ') + ') were not specified. Specified keys were: ' + sort$1(keys).join(', ') + '.'); + }; + var unsuppMessage = function (unsupported) { + throw new Error('Unsupported keys for object: ' + sort$1(unsupported).join(', ')); + }; + var validateStrArr = function (label, array) { + if (!$_d02u5u17hjfuw8wey.isArray(array)) + throw new Error('The ' + label + ' fields must be an array. Was: ' + array + '.'); + $_1doq1817ejfuw8wen.each(array, function (a) { + if (!$_d02u5u17hjfuw8wey.isString(a)) + throw new Error('The value ' + a + ' in the ' + label + ' fields was not a string.'); + }); + }; + var invalidTypeMessage = function (incorrect, type) { + throw new Error('All values need to be of type: ' + type + '. Keys (' + sort$1(incorrect).join(', ') + ') were not.'); + }; + var checkDupes = function (everything) { + var sorted = sort$1(everything); + var dupe = $_1doq1817ejfuw8wen.find(sorted, function (s, i) { + return i < sorted.length - 1 && s === sorted[i + 1]; + }); + dupe.each(function (d) { + throw new Error('The field: ' + d + ' occurs more than once in the combined fields: [' + sorted.join(', ') + '].'); + }); + }; + var $_2f7evl19ujfuw8wo9 = { + sort: sort$1, + reqMessage: reqMessage, + unsuppMessage: unsuppMessage, + validateStrArr: validateStrArr, + invalidTypeMessage: invalidTypeMessage, + checkDupes: checkDupes + }; + + function MixedBag (required, optional) { + var everything = required.concat(optional); + if (everything.length === 0) + throw new Error('You must specify at least one required or optional field.'); + $_2f7evl19ujfuw8wo9.validateStrArr('required', required); + $_2f7evl19ujfuw8wo9.validateStrArr('optional', optional); + $_2f7evl19ujfuw8wo9.checkDupes(everything); + return function (obj) { + var keys = $_al3re919tjfuw8wo6.keys(obj); + var allReqd = $_1doq1817ejfuw8wen.forall(required, function (req) { + return $_1doq1817ejfuw8wen.contains(keys, req); + }); + if (!allReqd) + $_2f7evl19ujfuw8wo9.reqMessage(required, keys); + var unsupported = $_1doq1817ejfuw8wen.filter(keys, function (key) { + return !$_1doq1817ejfuw8wen.contains(everything, key); + }); + if (unsupported.length > 0) + $_2f7evl19ujfuw8wo9.unsuppMessage(unsupported); + var r = {}; + $_1doq1817ejfuw8wen.each(required, function (req) { + r[req] = $_d9fl1s17gjfuw8wew.constant(obj[req]); + }); + $_1doq1817ejfuw8wen.each(optional, function (opt) { + r[opt] = $_d9fl1s17gjfuw8wew.constant(Object.prototype.hasOwnProperty.call(obj, opt) ? Option.some(obj[opt]) : Option.none()); + }); + return r; + }; + } + + var $_f4h5y919qjfuw8wnr = { + immutable: Immutable, + immutableBag: MixedBag + }; + + var toArray = function (target, f) { + var r = []; + var recurse = function (e) { + r.push(e); + return f(e); + }; + var cur = f(target); + do { + cur = cur.bind(recurse); + } while (cur.isSome()); + return r; + }; + var $_alx4av19vjfuw8woa = { toArray: toArray }; + + var node = function () { + var f = $_clbxy018fjfuw8wjj.getOrDie('Node'); + return f; + }; + var compareDocumentPosition = function (a, b, match) { + return (a.compareDocumentPosition(b) & match) !== 0; + }; + var documentPositionPreceding = function (a, b) { + return compareDocumentPosition(a, b, node().DOCUMENT_POSITION_PRECEDING); + }; + var documentPositionContainedBy = function (a, b) { + return compareDocumentPosition(a, b, node().DOCUMENT_POSITION_CONTAINED_BY); + }; + var $_8mu6t19xjfuw8wol = { + documentPositionPreceding: documentPositionPreceding, + documentPositionContainedBy: documentPositionContainedBy + }; + + var firstMatch = function (regexes, s) { + for (var i = 0; i < regexes.length; i++) { + var x = regexes[i]; + if (x.test(s)) + return x; + } + return undefined; + }; + var find$2 = function (regexes, agent) { + var r = firstMatch(regexes, agent); + if (!r) + return { + major: 0, + minor: 0 + }; + var group = function (i) { + return Number(agent.replace(r, '$' + i)); + }; + return nu(group(1), group(2)); + }; + var detect = function (versionRegexes, agent) { + var cleanedAgent = String(agent).toLowerCase(); + if (versionRegexes.length === 0) + return unknown(); + return find$2(versionRegexes, cleanedAgent); + }; + var unknown = function () { + return nu(0, 0); + }; + var nu = function (major, minor) { + return { + major: major, + minor: minor + }; + }; + var $_g5cbf01a1jfuw8wou = { + nu: nu, + detect: detect, + unknown: unknown + }; + + var edge = 'Edge'; + var chrome = 'Chrome'; + var ie = 'IE'; + var opera = 'Opera'; + var firefox = 'Firefox'; + var safari = 'Safari'; + var isBrowser = function (name, current) { + return function () { + return current === name; + }; + }; + var unknown$1 = function () { + return nu$1({ + current: undefined, + version: $_g5cbf01a1jfuw8wou.unknown() + }); + }; + var nu$1 = function (info) { + var current = info.current; + var version = info.version; + return { + current: current, + version: version, + isEdge: isBrowser(edge, current), + isChrome: isBrowser(chrome, current), + isIE: isBrowser(ie, current), + isOpera: isBrowser(opera, current), + isFirefox: isBrowser(firefox, current), + isSafari: isBrowser(safari, current) + }; + }; + var $_ddjyrg1a0jfuw8wor = { + unknown: unknown$1, + nu: nu$1, + edge: $_d9fl1s17gjfuw8wew.constant(edge), + chrome: $_d9fl1s17gjfuw8wew.constant(chrome), + ie: $_d9fl1s17gjfuw8wew.constant(ie), + opera: $_d9fl1s17gjfuw8wew.constant(opera), + firefox: $_d9fl1s17gjfuw8wew.constant(firefox), + safari: $_d9fl1s17gjfuw8wew.constant(safari) + }; + + var windows$1 = 'Windows'; + var ios = 'iOS'; + var android = 'Android'; + var linux = 'Linux'; + var osx = 'OSX'; + var solaris = 'Solaris'; + var freebsd = 'FreeBSD'; + var isOS = function (name, current) { + return function () { + return current === name; + }; + }; + var unknown$2 = function () { + return nu$2({ + current: undefined, + version: $_g5cbf01a1jfuw8wou.unknown() + }); + }; + var nu$2 = function (info) { + var current = info.current; + var version = info.version; + return { + current: current, + version: version, + isWindows: isOS(windows$1, current), + isiOS: isOS(ios, current), + isAndroid: isOS(android, current), + isOSX: isOS(osx, current), + isLinux: isOS(linux, current), + isSolaris: isOS(solaris, current), + isFreeBSD: isOS(freebsd, current) + }; + }; + var $_2otgg1a2jfuw8wow = { + unknown: unknown$2, + nu: nu$2, + windows: $_d9fl1s17gjfuw8wew.constant(windows$1), + ios: $_d9fl1s17gjfuw8wew.constant(ios), + android: $_d9fl1s17gjfuw8wew.constant(android), + linux: $_d9fl1s17gjfuw8wew.constant(linux), + osx: $_d9fl1s17gjfuw8wew.constant(osx), + solaris: $_d9fl1s17gjfuw8wew.constant(solaris), + freebsd: $_d9fl1s17gjfuw8wew.constant(freebsd) + }; + + function DeviceType (os, browser, userAgent) { + var isiPad = os.isiOS() && /ipad/i.test(userAgent) === true; + var isiPhone = os.isiOS() && !isiPad; + var isAndroid3 = os.isAndroid() && os.version.major === 3; + var isAndroid4 = os.isAndroid() && os.version.major === 4; + var isTablet = isiPad || isAndroid3 || isAndroid4 && /mobile/i.test(userAgent) === true; + var isTouch = os.isiOS() || os.isAndroid(); + var isPhone = isTouch && !isTablet; + var iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false; + return { + isiPad: $_d9fl1s17gjfuw8wew.constant(isiPad), + isiPhone: $_d9fl1s17gjfuw8wew.constant(isiPhone), + isTablet: $_d9fl1s17gjfuw8wew.constant(isTablet), + isPhone: $_d9fl1s17gjfuw8wew.constant(isPhone), + isTouch: $_d9fl1s17gjfuw8wew.constant(isTouch), + isAndroid: os.isAndroid, + isiOS: os.isiOS, + isWebView: $_d9fl1s17gjfuw8wew.constant(iOSwebview) + }; + } + + var detect$1 = function (candidates, userAgent) { + var agent = String(userAgent).toLowerCase(); + return $_1doq1817ejfuw8wen.find(candidates, function (candidate) { + return candidate.search(agent); + }); + }; + var detectBrowser = function (browsers, userAgent) { + return detect$1(browsers, userAgent).map(function (browser) { + var version = $_g5cbf01a1jfuw8wou.detect(browser.versionRegexes, userAgent); + return { + current: browser.name, + version: version + }; + }); + }; + var detectOs = function (oses, userAgent) { + return detect$1(oses, userAgent).map(function (os) { + var version = $_g5cbf01a1jfuw8wou.detect(os.versionRegexes, userAgent); + return { + current: os.name, + version: version + }; + }); + }; + var $_kiexy1a4jfuw8wp2 = { + detectBrowser: detectBrowser, + detectOs: detectOs + }; + + var addToStart = function (str, prefix) { + return prefix + str; + }; + var addToEnd = function (str, suffix) { + return str + suffix; + }; + var removeFromStart = function (str, numChars) { + return str.substring(numChars); + }; + var removeFromEnd = function (str, numChars) { + return str.substring(0, str.length - numChars); + }; + var $_52l0y51a7jfuw8wpe = { + addToStart: addToStart, + addToEnd: addToEnd, + removeFromStart: removeFromStart, + removeFromEnd: removeFromEnd + }; + + var first = function (str, count) { + return str.substr(0, count); + }; + var last$1 = function (str, count) { + return str.substr(str.length - count, str.length); + }; + var head$1 = function (str) { + return str === '' ? Option.none() : Option.some(str.substr(0, 1)); + }; + var tail = function (str) { + return str === '' ? Option.none() : Option.some(str.substring(1)); + }; + var $_7llj9o1a8jfuw8wpf = { + first: first, + last: last$1, + head: head$1, + tail: tail + }; + + var checkRange = function (str, substr, start) { + if (substr === '') + return true; + if (str.length < substr.length) + return false; + var x = str.substr(start, start + substr.length); + return x === substr; + }; + var supplant = function (str, obj) { + var isStringOrNumber = function (a) { + var t = typeof a; + return t === 'string' || t === 'number'; + }; + return str.replace(/\${([^{}]*)}/g, function (a, b) { + var value = obj[b]; + return isStringOrNumber(value) ? value : a; + }); + }; + var removeLeading = function (str, prefix) { + return startsWith(str, prefix) ? $_52l0y51a7jfuw8wpe.removeFromStart(str, prefix.length) : str; + }; + var removeTrailing = function (str, prefix) { + return endsWith(str, prefix) ? $_52l0y51a7jfuw8wpe.removeFromEnd(str, prefix.length) : str; + }; + var ensureLeading = function (str, prefix) { + return startsWith(str, prefix) ? str : $_52l0y51a7jfuw8wpe.addToStart(str, prefix); + }; + var ensureTrailing = function (str, prefix) { + return endsWith(str, prefix) ? str : $_52l0y51a7jfuw8wpe.addToEnd(str, prefix); + }; + var contains$1 = function (str, substr) { + return str.indexOf(substr) !== -1; + }; + var capitalize = function (str) { + return $_7llj9o1a8jfuw8wpf.head(str).bind(function (head) { + return $_7llj9o1a8jfuw8wpf.tail(str).map(function (tail) { + return head.toUpperCase() + tail; + }); + }).getOr(str); + }; + var startsWith = function (str, prefix) { + return checkRange(str, prefix, 0); + }; + var endsWith = function (str, suffix) { + return checkRange(str, suffix, str.length - suffix.length); + }; + var trim = function (str) { + return str.replace(/^\s+|\s+$/g, ''); + }; + var lTrim = function (str) { + return str.replace(/^\s+/g, ''); + }; + var rTrim = function (str) { + return str.replace(/\s+$/g, ''); + }; + var $_1vh2q91a6jfuw8wpc = { + supplant: supplant, + startsWith: startsWith, + removeLeading: removeLeading, + removeTrailing: removeTrailing, + ensureLeading: ensureLeading, + ensureTrailing: ensureTrailing, + endsWith: endsWith, + contains: contains$1, + trim: trim, + lTrim: lTrim, + rTrim: rTrim, + capitalize: capitalize + }; + + var normalVersionRegex = /.*?version\/\ ?([0-9]+)\.([0-9]+).*/; + var checkContains = function (target) { + return function (uastring) { + return $_1vh2q91a6jfuw8wpc.contains(uastring, target); + }; + }; + var browsers = [ + { + name: 'Edge', + versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/], + search: function (uastring) { + var monstrosity = $_1vh2q91a6jfuw8wpc.contains(uastring, 'edge/') && $_1vh2q91a6jfuw8wpc.contains(uastring, 'chrome') && $_1vh2q91a6jfuw8wpc.contains(uastring, 'safari') && $_1vh2q91a6jfuw8wpc.contains(uastring, 'applewebkit'); + return monstrosity; + } + }, + { + name: 'Chrome', + versionRegexes: [ + /.*?chrome\/([0-9]+)\.([0-9]+).*/, + normalVersionRegex + ], + search: function (uastring) { + return $_1vh2q91a6jfuw8wpc.contains(uastring, 'chrome') && !$_1vh2q91a6jfuw8wpc.contains(uastring, 'chromeframe'); + } + }, + { + name: 'IE', + versionRegexes: [ + /.*?msie\ ?([0-9]+)\.([0-9]+).*/, + /.*?rv:([0-9]+)\.([0-9]+).*/ + ], + search: function (uastring) { + return $_1vh2q91a6jfuw8wpc.contains(uastring, 'msie') || $_1vh2q91a6jfuw8wpc.contains(uastring, 'trident'); + } + }, + { + name: 'Opera', + versionRegexes: [ + normalVersionRegex, + /.*?opera\/([0-9]+)\.([0-9]+).*/ + ], + search: checkContains('opera') + }, + { + name: 'Firefox', + versionRegexes: [/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/], + search: checkContains('firefox') + }, + { + name: 'Safari', + versionRegexes: [ + normalVersionRegex, + /.*?cpu os ([0-9]+)_([0-9]+).*/ + ], + search: function (uastring) { + return ($_1vh2q91a6jfuw8wpc.contains(uastring, 'safari') || $_1vh2q91a6jfuw8wpc.contains(uastring, 'mobile/')) && $_1vh2q91a6jfuw8wpc.contains(uastring, 'applewebkit'); + } + } + ]; + var oses = [ + { + name: 'Windows', + search: checkContains('win'), + versionRegexes: [/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/] + }, + { + name: 'iOS', + search: function (uastring) { + return $_1vh2q91a6jfuw8wpc.contains(uastring, 'iphone') || $_1vh2q91a6jfuw8wpc.contains(uastring, 'ipad'); + }, + versionRegexes: [ + /.*?version\/\ ?([0-9]+)\.([0-9]+).*/, + /.*cpu os ([0-9]+)_([0-9]+).*/, + /.*cpu iphone os ([0-9]+)_([0-9]+).*/ + ] + }, + { + name: 'Android', + search: checkContains('android'), + versionRegexes: [/.*?android\ ?([0-9]+)\.([0-9]+).*/] + }, + { + name: 'OSX', + search: checkContains('os x'), + versionRegexes: [/.*?os\ x\ ?([0-9]+)_([0-9]+).*/] + }, + { + name: 'Linux', + search: checkContains('linux'), + versionRegexes: [] + }, + { + name: 'Solaris', + search: checkContains('sunos'), + versionRegexes: [] + }, + { + name: 'FreeBSD', + search: checkContains('freebsd'), + versionRegexes: [] + } + ]; + var $_bavmlr1a5jfuw8wp6 = { + browsers: $_d9fl1s17gjfuw8wew.constant(browsers), + oses: $_d9fl1s17gjfuw8wew.constant(oses) + }; + + var detect$2 = function (userAgent) { + var browsers = $_bavmlr1a5jfuw8wp6.browsers(); + var oses = $_bavmlr1a5jfuw8wp6.oses(); + var browser = $_kiexy1a4jfuw8wp2.detectBrowser(browsers, userAgent).fold($_ddjyrg1a0jfuw8wor.unknown, $_ddjyrg1a0jfuw8wor.nu); + var os = $_kiexy1a4jfuw8wp2.detectOs(oses, userAgent).fold($_2otgg1a2jfuw8wow.unknown, $_2otgg1a2jfuw8wow.nu); + var deviceType = DeviceType(os, browser, userAgent); + return { + browser: browser, + os: os, + deviceType: deviceType + }; + }; + var $_5balgb19zjfuw8woq = { detect: detect$2 }; + + var detect$3 = $_7dlbos19mjfuw8wnb.cached(function () { + var userAgent = navigator.userAgent; + return $_5balgb19zjfuw8woq.detect(userAgent); + }); + var $_44fif19yjfuw8wom = { detect: detect$3 }; + + var ELEMENT = $_8v84g119ojfuw8wnd.ELEMENT; + var DOCUMENT = $_8v84g119ojfuw8wnd.DOCUMENT; + var is = function (element, selector) { + var elem = element.dom(); + if (elem.nodeType !== ELEMENT) + return false; + else if (elem.matches !== undefined) + return elem.matches(selector); + else if (elem.msMatchesSelector !== undefined) + return elem.msMatchesSelector(selector); + else if (elem.webkitMatchesSelector !== undefined) + return elem.webkitMatchesSelector(selector); + else if (elem.mozMatchesSelector !== undefined) + return elem.mozMatchesSelector(selector); + else + throw new Error('Browser lacks native selectors'); + }; + var bypassSelector = function (dom) { + return dom.nodeType !== ELEMENT && dom.nodeType !== DOCUMENT || dom.childElementCount === 0; + }; + var all = function (selector, scope) { + var base = scope === undefined ? document : scope.dom(); + return bypassSelector(base) ? [] : $_1doq1817ejfuw8wen.map(base.querySelectorAll(selector), $_fmubbj19ijfuw8wmy.fromDom); + }; + var one = function (selector, scope) { + var base = scope === undefined ? document : scope.dom(); + return bypassSelector(base) ? Option.none() : Option.from(base.querySelector(selector)).map($_fmubbj19ijfuw8wmy.fromDom); + }; + var $_9hz7rv1a9jfuw8wpg = { + all: all, + is: is, + one: one + }; + + var eq = function (e1, e2) { + return e1.dom() === e2.dom(); + }; + var isEqualNode = function (e1, e2) { + return e1.dom().isEqualNode(e2.dom()); + }; + var member = function (element, elements) { + return $_1doq1817ejfuw8wen.exists(elements, $_d9fl1s17gjfuw8wew.curry(eq, element)); + }; + var regularContains = function (e1, e2) { + var d1 = e1.dom(), d2 = e2.dom(); + return d1 === d2 ? false : d1.contains(d2); + }; + var ieContains = function (e1, e2) { + return $_8mu6t19xjfuw8wol.documentPositionContainedBy(e1.dom(), e2.dom()); + }; + var browser = $_44fif19yjfuw8wom.detect().browser; + var contains$2 = browser.isIE() ? ieContains : regularContains; + var $_ab91p919wjfuw8woc = { + eq: eq, + isEqualNode: isEqualNode, + member: member, + contains: contains$2, + is: $_9hz7rv1a9jfuw8wpg.is + }; + + var owner = function (element) { + return $_fmubbj19ijfuw8wmy.fromDom(element.dom().ownerDocument); + }; + var documentElement = function (element) { + var doc = owner(element); + return $_fmubbj19ijfuw8wmy.fromDom(doc.dom().documentElement); + }; + var defaultView = function (element) { + var el = element.dom(); + var defaultView = el.ownerDocument.defaultView; + return $_fmubbj19ijfuw8wmy.fromDom(defaultView); + }; + var parent$1 = function (element) { + var dom = element.dom(); + return Option.from(dom.parentNode).map($_fmubbj19ijfuw8wmy.fromDom); + }; + var findIndex$1 = function (element) { + return parent$1(element).bind(function (p) { + var kin = children(p); + return $_1doq1817ejfuw8wen.findIndex(kin, function (elem) { + return $_ab91p919wjfuw8woc.eq(element, elem); + }); + }); + }; + var parents = function (element, isRoot) { + var stop = $_d02u5u17hjfuw8wey.isFunction(isRoot) ? isRoot : $_d9fl1s17gjfuw8wew.constant(false); + var dom = element.dom(); + var ret = []; + while (dom.parentNode !== null && dom.parentNode !== undefined) { + var rawParent = dom.parentNode; + var parent = $_fmubbj19ijfuw8wmy.fromDom(rawParent); + ret.push(parent); + if (stop(parent) === true) + break; + else + dom = rawParent; + } + return ret; + }; + var siblings = function (element) { + var filterSelf = function (elements) { + return $_1doq1817ejfuw8wen.filter(elements, function (x) { + return !$_ab91p919wjfuw8woc.eq(element, x); + }); + }; + return parent$1(element).map(children).map(filterSelf).getOr([]); + }; + var offsetParent = function (element) { + var dom = element.dom(); + return Option.from(dom.offsetParent).map($_fmubbj19ijfuw8wmy.fromDom); + }; + var prevSibling = function (element) { + var dom = element.dom(); + return Option.from(dom.previousSibling).map($_fmubbj19ijfuw8wmy.fromDom); + }; + var nextSibling = function (element) { + var dom = element.dom(); + return Option.from(dom.nextSibling).map($_fmubbj19ijfuw8wmy.fromDom); + }; + var prevSiblings = function (element) { + return $_1doq1817ejfuw8wen.reverse($_alx4av19vjfuw8woa.toArray(element, prevSibling)); + }; + var nextSiblings = function (element) { + return $_alx4av19vjfuw8woa.toArray(element, nextSibling); + }; + var children = function (element) { + var dom = element.dom(); + return $_1doq1817ejfuw8wen.map(dom.childNodes, $_fmubbj19ijfuw8wmy.fromDom); + }; + var child = function (element, index) { + var children = element.dom().childNodes; + return Option.from(children[index]).map($_fmubbj19ijfuw8wmy.fromDom); + }; + var firstChild = function (element) { + return child(element, 0); + }; + var lastChild = function (element) { + return child(element, element.dom().childNodes.length - 1); + }; + var childNodesCount = function (element) { + return element.dom().childNodes.length; + }; + var hasChildNodes = function (element) { + return element.dom().hasChildNodes(); + }; + var spot = $_f4h5y919qjfuw8wnr.immutable('element', 'offset'); + var leaf = function (element, offset) { + var cs = children(element); + return cs.length > 0 && offset < cs.length ? spot(cs[offset], 0) : spot(element, offset); + }; + var $_g7tj5v19pjfuw8wnf = { + owner: owner, + defaultView: defaultView, + documentElement: documentElement, + parent: parent$1, + findIndex: findIndex$1, + parents: parents, + siblings: siblings, + prevSibling: prevSibling, + offsetParent: offsetParent, + prevSiblings: prevSiblings, + nextSibling: nextSibling, + nextSiblings: nextSiblings, + children: children, + child: child, + firstChild: firstChild, + lastChild: lastChild, + childNodesCount: childNodesCount, + hasChildNodes: hasChildNodes, + leaf: leaf + }; + + var all$1 = function (predicate) { + return descendants($_9dfew519ljfuw8wn8.body(), predicate); + }; + var ancestors = function (scope, predicate, isRoot) { + return $_1doq1817ejfuw8wen.filter($_g7tj5v19pjfuw8wnf.parents(scope, isRoot), predicate); + }; + var siblings$1 = function (scope, predicate) { + return $_1doq1817ejfuw8wen.filter($_g7tj5v19pjfuw8wnf.siblings(scope), predicate); + }; + var children$1 = function (scope, predicate) { + return $_1doq1817ejfuw8wen.filter($_g7tj5v19pjfuw8wnf.children(scope), predicate); + }; + var descendants = function (scope, predicate) { + var result = []; + $_1doq1817ejfuw8wen.each($_g7tj5v19pjfuw8wnf.children(scope), function (x) { + if (predicate(x)) { + result = result.concat([x]); + } + result = result.concat(descendants(x, predicate)); + }); + return result; + }; + var $_bavy9s19kjfuw8wn5 = { + all: all$1, + ancestors: ancestors, + siblings: siblings$1, + children: children$1, + descendants: descendants + }; + + var all$2 = function (selector) { + return $_9hz7rv1a9jfuw8wpg.all(selector); + }; + var ancestors$1 = function (scope, selector, isRoot) { + return $_bavy9s19kjfuw8wn5.ancestors(scope, function (e) { + return $_9hz7rv1a9jfuw8wpg.is(e, selector); + }, isRoot); + }; + var siblings$2 = function (scope, selector) { + return $_bavy9s19kjfuw8wn5.siblings(scope, function (e) { + return $_9hz7rv1a9jfuw8wpg.is(e, selector); + }); + }; + var children$2 = function (scope, selector) { + return $_bavy9s19kjfuw8wn5.children(scope, function (e) { + return $_9hz7rv1a9jfuw8wpg.is(e, selector); + }); + }; + var descendants$1 = function (scope, selector) { + return $_9hz7rv1a9jfuw8wpg.all(selector, scope); + }; + var $_b2no8419jjfuw8wn4 = { + all: all$2, + ancestors: ancestors$1, + siblings: siblings$2, + children: children$2, + descendants: descendants$1 + }; + + var trim$1 = global$4.trim; + var hasContentEditableState = function (value) { + return function (node) { + if (node && node.nodeType === 1) { + if (node.contentEditable === value) { + return true; + } + if (node.getAttribute('data-mce-contenteditable') === value) { + return true; + } + } + return false; + }; + }; + var isContentEditableTrue = hasContentEditableState('true'); + var isContentEditableFalse = hasContentEditableState('false'); + var create$4 = function (type, title, url, level, attach) { + return { + type: type, + title: title, + url: url, + level: level, + attach: attach + }; + }; + var isChildOfContentEditableTrue = function (node) { + while (node = node.parentNode) { + var value = node.contentEditable; + if (value && value !== 'inherit') { + return isContentEditableTrue(node); + } + } + return false; + }; + var select = function (selector, root) { + return $_1doq1817ejfuw8wen.map($_b2no8419jjfuw8wn4.descendants($_fmubbj19ijfuw8wmy.fromDom(root), selector), function (element) { + return element.dom(); + }); + }; + var getElementText = function (elm) { + return elm.innerText || elm.textContent; + }; + var getOrGenerateId = function (elm) { + return elm.id ? elm.id : $_2kv8f219hjfuw8wmw.generate('h'); + }; + var isAnchor = function (elm) { + return elm && elm.nodeName === 'A' && (elm.id || elm.name); + }; + var isValidAnchor = function (elm) { + return isAnchor(elm) && isEditable(elm); + }; + var isHeader = function (elm) { + return elm && /^(H[1-6])$/.test(elm.nodeName); + }; + var isEditable = function (elm) { + return isChildOfContentEditableTrue(elm) && !isContentEditableFalse(elm); + }; + var isValidHeader = function (elm) { + return isHeader(elm) && isEditable(elm); + }; + var getLevel = function (elm) { + return isHeader(elm) ? parseInt(elm.nodeName.substr(1), 10) : 0; + }; + var headerTarget = function (elm) { + var headerId = getOrGenerateId(elm); + var attach = function () { + elm.id = headerId; + }; + return create$4('header', getElementText(elm), '#' + headerId, getLevel(elm), attach); + }; + var anchorTarget = function (elm) { + var anchorId = elm.id || elm.name; + var anchorText = getElementText(elm); + return create$4('anchor', anchorText ? anchorText : '#' + anchorId, '#' + anchorId, 0, $_d9fl1s17gjfuw8wew.noop); + }; + var getHeaderTargets = function (elms) { + return $_1doq1817ejfuw8wen.map($_1doq1817ejfuw8wen.filter(elms, isValidHeader), headerTarget); + }; + var getAnchorTargets = function (elms) { + return $_1doq1817ejfuw8wen.map($_1doq1817ejfuw8wen.filter(elms, isValidAnchor), anchorTarget); + }; + var getTargetElements = function (elm) { + var elms = select('h1,h2,h3,h4,h5,h6,a:not([href])', elm); + return elms; + }; + var hasTitle = function (target) { + return trim$1(target.title).length > 0; + }; + var find$3 = function (elm) { + var elms = getTargetElements(elm); + return $_1doq1817ejfuw8wen.filter(getHeaderTargets(elms).concat(getAnchorTargets(elms)), hasTitle); + }; + var $_bmqeu519gjfuw8wmn = { find: find$3 }; + + var getActiveEditor = function () { + return window.tinymce ? window.tinymce.activeEditor : global$5.activeEditor; + }; + var history = {}; + var HISTORY_LENGTH = 5; + var clearHistory = function () { + history = {}; + }; + var toMenuItem = function (target) { + return { + title: target.title, + value: { + title: { raw: target.title }, + url: target.url, + attach: target.attach + } + }; + }; + var toMenuItems = function (targets) { + return global$4.map(targets, toMenuItem); + }; + var staticMenuItem = function (title, url) { + return { + title: title, + value: { + title: title, + url: url, + attach: $_d9fl1s17gjfuw8wew.noop + } + }; + }; + var isUniqueUrl = function (url, targets) { + var foundTarget = $_1doq1817ejfuw8wen.exists(targets, function (target) { + return target.url === url; + }); + return !foundTarget; + }; + var getSetting = function (editorSettings, name, defaultValue) { + var value = name in editorSettings ? editorSettings[name] : defaultValue; + return value === false ? null : value; + }; + var createMenuItems = function (term, targets, fileType, editorSettings) { + var separator = { title: '-' }; + var fromHistoryMenuItems = function (history) { + var historyItems = history.hasOwnProperty(fileType) ? history[fileType] : []; + var uniqueHistory = $_1doq1817ejfuw8wen.filter(historyItems, function (url) { + return isUniqueUrl(url, targets); + }); + return global$4.map(uniqueHistory, function (url) { + return { + title: url, + value: { + title: url, + url: url, + attach: $_d9fl1s17gjfuw8wew.noop + } + }; + }); + }; + var fromMenuItems = function (type) { + var filteredTargets = $_1doq1817ejfuw8wen.filter(targets, function (target) { + return target.type === type; + }); + return toMenuItems(filteredTargets); + }; + var anchorMenuItems = function () { + var anchorMenuItems = fromMenuItems('anchor'); + var topAnchor = getSetting(editorSettings, 'anchor_top', '#top'); + var bottomAchor = getSetting(editorSettings, 'anchor_bottom', '#bottom'); + if (topAnchor !== null) { + anchorMenuItems.unshift(staticMenuItem('<top>', topAnchor)); + } + if (bottomAchor !== null) { + anchorMenuItems.push(staticMenuItem('<bottom>', bottomAchor)); + } + return anchorMenuItems; + }; + var join = function (items) { + return $_1doq1817ejfuw8wen.foldl(items, function (a, b) { + var bothEmpty = a.length === 0 || b.length === 0; + return bothEmpty ? a.concat(b) : a.concat(separator, b); + }, []); + }; + if (editorSettings.typeahead_urls === false) { + return []; + } + return fileType === 'file' ? join([ + filterByQuery(term, fromHistoryMenuItems(history)), + filterByQuery(term, fromMenuItems('header')), + filterByQuery(term, anchorMenuItems()) + ]) : filterByQuery(term, fromHistoryMenuItems(history)); + }; + var addToHistory = function (url, fileType) { + var items = history[fileType]; + if (!/^https?/.test(url)) { + return; + } + if (items) { + if ($_1doq1817ejfuw8wen.indexOf(items, url).isNone()) { + history[fileType] = items.slice(0, HISTORY_LENGTH).concat(url); + } + } else { + history[fileType] = [url]; + } + }; + var filterByQuery = function (term, menuItems) { + var lowerCaseTerm = term.toLowerCase(); + var result = global$4.grep(menuItems, function (item) { + return item.title.toLowerCase().indexOf(lowerCaseTerm) !== -1; + }); + return result.length === 1 && result[0].title === term ? [] : result; + }; + var getTitle = function (linkDetails) { + var title = linkDetails.title; + return title.raw ? title.raw : title; + }; + var setupAutoCompleteHandler = function (ctrl, editorSettings, bodyElm, fileType) { + var autocomplete = function (term) { + var linkTargets = $_bmqeu519gjfuw8wmn.find(bodyElm); + var menuItems = createMenuItems(term, linkTargets, fileType, editorSettings); + ctrl.showAutoComplete(menuItems, term); + }; + ctrl.on('autocomplete', function () { + autocomplete(ctrl.value()); + }); + ctrl.on('selectitem', function (e) { + var linkDetails = e.value; + ctrl.value(linkDetails.url); + var title = getTitle(linkDetails); + if (fileType === 'image') { + ctrl.fire('change', { + meta: { + alt: title, + attach: linkDetails.attach + } + }); + } else { + ctrl.fire('change', { + meta: { + text: title, + attach: linkDetails.attach + } + }); + } + ctrl.focus(); + }); + ctrl.on('click', function (e) { + if (ctrl.value().length === 0 && e.target.nodeName === 'INPUT') { + autocomplete(''); + } + }); + ctrl.on('PostRender', function () { + ctrl.getRoot().on('submit', function (e) { + if (!e.isDefaultPrevented()) { + addToHistory(ctrl.value(), fileType); + } + }); + }); + }; + var statusToUiState = function (result) { + var status = result.status, message = result.message; + if (status === 'valid') { + return { + status: 'ok', + message: message + }; + } else if (status === 'unknown') { + return { + status: 'warn', + message: message + }; + } else if (status === 'invalid') { + return { + status: 'warn', + message: message + }; + } else { + return { + status: 'none', + message: '' + }; + } + }; + var setupLinkValidatorHandler = function (ctrl, editorSettings, fileType) { + var validatorHandler = editorSettings.filepicker_validator_handler; + if (validatorHandler) { + var validateUrl_1 = function (url) { + if (url.length === 0) { + ctrl.statusLevel('none'); + return; + } + validatorHandler({ + url: url, + type: fileType + }, function (result) { + var uiState = statusToUiState(result); + ctrl.statusMessage(uiState.message); + ctrl.statusLevel(uiState.status); + }); + }; + ctrl.state.on('change:value', function (e) { + validateUrl_1(e.value); + }); + } + }; + var FilePicker = ComboBox.extend({ + Statics: { clearHistory: clearHistory }, + init: function (settings) { + var self = this, editor = getActiveEditor(), editorSettings = editor.settings; + var actionCallback, fileBrowserCallback, fileBrowserCallbackTypes; + var fileType = settings.filetype; + settings.spellcheck = false; + fileBrowserCallbackTypes = editorSettings.file_picker_types || editorSettings.file_browser_callback_types; + if (fileBrowserCallbackTypes) { + fileBrowserCallbackTypes = global$4.makeMap(fileBrowserCallbackTypes, /[, ]/); + } + if (!fileBrowserCallbackTypes || fileBrowserCallbackTypes[fileType]) { + fileBrowserCallback = editorSettings.file_picker_callback; + if (fileBrowserCallback && (!fileBrowserCallbackTypes || fileBrowserCallbackTypes[fileType])) { + actionCallback = function () { + var meta = self.fire('beforecall').meta; + meta = global$4.extend({ filetype: fileType }, meta); + fileBrowserCallback.call(editor, function (value, meta) { + self.value(value).fire('change', { meta: meta }); + }, self.value(), meta); + }; + } else { + fileBrowserCallback = editorSettings.file_browser_callback; + if (fileBrowserCallback && (!fileBrowserCallbackTypes || fileBrowserCallbackTypes[fileType])) { + actionCallback = function () { + fileBrowserCallback(self.getEl('inp').id, self.value(), fileType, window); + }; + } + } + } + if (actionCallback) { + settings.icon = 'browse'; + settings.onaction = actionCallback; + } + self._super(settings); + self.classes.add('filepicker'); + setupAutoCompleteHandler(self, editorSettings, editor.getBody(), fileType); + setupLinkValidatorHandler(self, editorSettings, fileType); + } + }); + + var FitLayout = AbsoluteLayout.extend({ + recalc: function (container) { + var contLayoutRect = container.layoutRect(), paddingBox = container.paddingBox; + container.items().filter(':visible').each(function (ctrl) { + ctrl.layoutRect({ + x: paddingBox.left, + y: paddingBox.top, + w: contLayoutRect.innerW - paddingBox.right - paddingBox.left, + h: contLayoutRect.innerH - paddingBox.top - paddingBox.bottom + }); + if (ctrl.recalc) { + ctrl.recalc(); + } + }); + } + }); + + var FlexLayout = AbsoluteLayout.extend({ + recalc: function (container) { + var i, l, items, contLayoutRect, contPaddingBox, contSettings, align, pack, spacing, totalFlex, availableSpace, direction; + var ctrl, ctrlLayoutRect, ctrlSettings, flex; + var maxSizeItems = []; + var size, maxSize, ratio, rect, pos, maxAlignEndPos; + var sizeName, minSizeName, posName, maxSizeName, beforeName, innerSizeName, deltaSizeName, contentSizeName; + var alignAxisName, alignInnerSizeName, alignSizeName, alignMinSizeName, alignBeforeName, alignAfterName; + var alignDeltaSizeName, alignContentSizeName; + var max = Math.max, min = Math.min; + items = container.items().filter(':visible'); + contLayoutRect = container.layoutRect(); + contPaddingBox = container.paddingBox; + contSettings = container.settings; + direction = container.isRtl() ? contSettings.direction || 'row-reversed' : contSettings.direction; + align = contSettings.align; + pack = container.isRtl() ? contSettings.pack || 'end' : contSettings.pack; + spacing = contSettings.spacing || 0; + if (direction === 'row-reversed' || direction === 'column-reverse') { + items = items.set(items.toArray().reverse()); + direction = direction.split('-')[0]; + } + if (direction === 'column') { + posName = 'y'; + sizeName = 'h'; + minSizeName = 'minH'; + maxSizeName = 'maxH'; + innerSizeName = 'innerH'; + beforeName = 'top'; + deltaSizeName = 'deltaH'; + contentSizeName = 'contentH'; + alignBeforeName = 'left'; + alignSizeName = 'w'; + alignAxisName = 'x'; + alignInnerSizeName = 'innerW'; + alignMinSizeName = 'minW'; + alignAfterName = 'right'; + alignDeltaSizeName = 'deltaW'; + alignContentSizeName = 'contentW'; + } else { + posName = 'x'; + sizeName = 'w'; + minSizeName = 'minW'; + maxSizeName = 'maxW'; + innerSizeName = 'innerW'; + beforeName = 'left'; + deltaSizeName = 'deltaW'; + contentSizeName = 'contentW'; + alignBeforeName = 'top'; + alignSizeName = 'h'; + alignAxisName = 'y'; + alignInnerSizeName = 'innerH'; + alignMinSizeName = 'minH'; + alignAfterName = 'bottom'; + alignDeltaSizeName = 'deltaH'; + alignContentSizeName = 'contentH'; + } + availableSpace = contLayoutRect[innerSizeName] - contPaddingBox[beforeName] - contPaddingBox[beforeName]; + maxAlignEndPos = totalFlex = 0; + for (i = 0, l = items.length; i < l; i++) { + ctrl = items[i]; + ctrlLayoutRect = ctrl.layoutRect(); + ctrlSettings = ctrl.settings; + flex = ctrlSettings.flex; + availableSpace -= i < l - 1 ? spacing : 0; + if (flex > 0) { + totalFlex += flex; + if (ctrlLayoutRect[maxSizeName]) { + maxSizeItems.push(ctrl); + } + ctrlLayoutRect.flex = flex; + } + availableSpace -= ctrlLayoutRect[minSizeName]; + size = contPaddingBox[alignBeforeName] + ctrlLayoutRect[alignMinSizeName] + contPaddingBox[alignAfterName]; + if (size > maxAlignEndPos) { + maxAlignEndPos = size; + } + } + rect = {}; + if (availableSpace < 0) { + rect[minSizeName] = contLayoutRect[minSizeName] - availableSpace + contLayoutRect[deltaSizeName]; + } else { + rect[minSizeName] = contLayoutRect[innerSizeName] - availableSpace + contLayoutRect[deltaSizeName]; + } + rect[alignMinSizeName] = maxAlignEndPos + contLayoutRect[alignDeltaSizeName]; + rect[contentSizeName] = contLayoutRect[innerSizeName] - availableSpace; + rect[alignContentSizeName] = maxAlignEndPos; + rect.minW = min(rect.minW, contLayoutRect.maxW); + rect.minH = min(rect.minH, contLayoutRect.maxH); + rect.minW = max(rect.minW, contLayoutRect.startMinWidth); + rect.minH = max(rect.minH, contLayoutRect.startMinHeight); + if (contLayoutRect.autoResize && (rect.minW !== contLayoutRect.minW || rect.minH !== contLayoutRect.minH)) { + rect.w = rect.minW; + rect.h = rect.minH; + container.layoutRect(rect); + this.recalc(container); + if (container._lastRect === null) { + var parentCtrl = container.parent(); + if (parentCtrl) { + parentCtrl._lastRect = null; + parentCtrl.recalc(); + } + } + return; + } + ratio = availableSpace / totalFlex; + for (i = 0, l = maxSizeItems.length; i < l; i++) { + ctrl = maxSizeItems[i]; + ctrlLayoutRect = ctrl.layoutRect(); + maxSize = ctrlLayoutRect[maxSizeName]; + size = ctrlLayoutRect[minSizeName] + ctrlLayoutRect.flex * ratio; + if (size > maxSize) { + availableSpace -= ctrlLayoutRect[maxSizeName] - ctrlLayoutRect[minSizeName]; + totalFlex -= ctrlLayoutRect.flex; + ctrlLayoutRect.flex = 0; + ctrlLayoutRect.maxFlexSize = maxSize; + } else { + ctrlLayoutRect.maxFlexSize = 0; + } + } + ratio = availableSpace / totalFlex; + pos = contPaddingBox[beforeName]; + rect = {}; + if (totalFlex === 0) { + if (pack === 'end') { + pos = availableSpace + contPaddingBox[beforeName]; + } else if (pack === 'center') { + pos = Math.round(contLayoutRect[innerSizeName] / 2 - (contLayoutRect[innerSizeName] - availableSpace) / 2) + contPaddingBox[beforeName]; + if (pos < 0) { + pos = contPaddingBox[beforeName]; + } + } else if (pack === 'justify') { + pos = contPaddingBox[beforeName]; + spacing = Math.floor(availableSpace / (items.length - 1)); + } + } + rect[alignAxisName] = contPaddingBox[alignBeforeName]; + for (i = 0, l = items.length; i < l; i++) { + ctrl = items[i]; + ctrlLayoutRect = ctrl.layoutRect(); + size = ctrlLayoutRect.maxFlexSize || ctrlLayoutRect[minSizeName]; + if (align === 'center') { + rect[alignAxisName] = Math.round(contLayoutRect[alignInnerSizeName] / 2 - ctrlLayoutRect[alignSizeName] / 2); + } else if (align === 'stretch') { + rect[alignSizeName] = max(ctrlLayoutRect[alignMinSizeName] || 0, contLayoutRect[alignInnerSizeName] - contPaddingBox[alignBeforeName] - contPaddingBox[alignAfterName]); + rect[alignAxisName] = contPaddingBox[alignBeforeName]; + } else if (align === 'end') { + rect[alignAxisName] = contLayoutRect[alignInnerSizeName] - ctrlLayoutRect[alignSizeName] - contPaddingBox.top; + } + if (ctrlLayoutRect.flex > 0) { + size += ctrlLayoutRect.flex * ratio; + } + rect[sizeName] = size; + rect[posName] = pos; + ctrl.layoutRect(rect); + if (ctrl.recalc) { + ctrl.recalc(); + } + pos += size + spacing; + } + } + }); + + var FlowLayout = Layout$1.extend({ + Defaults: { + containerClass: 'flow-layout', + controlClass: 'flow-layout-item', + endClass: 'break' + }, + recalc: function (container) { + container.items().filter(':visible').each(function (ctrl) { + if (ctrl.recalc) { + ctrl.recalc(); + } + }); + }, + isNative: function () { + return true; + } + }); + + function ClosestOrAncestor (is, ancestor, scope, a, isRoot) { + return is(scope, a) ? Option.some(scope) : $_d02u5u17hjfuw8wey.isFunction(isRoot) && isRoot(scope) ? Option.none() : ancestor(scope, a, isRoot); + } + + var first$1 = function (predicate) { + return descendant($_9dfew519ljfuw8wn8.body(), predicate); + }; + var ancestor = function (scope, predicate, isRoot) { + var element = scope.dom(); + var stop = $_d02u5u17hjfuw8wey.isFunction(isRoot) ? isRoot : $_d9fl1s17gjfuw8wew.constant(false); + while (element.parentNode) { + element = element.parentNode; + var el = $_fmubbj19ijfuw8wmy.fromDom(element); + if (predicate(el)) + return Option.some(el); + else if (stop(el)) + break; + } + return Option.none(); + }; + var closest = function (scope, predicate, isRoot) { + var is = function (scope) { + return predicate(scope); + }; + return ClosestOrAncestor(is, ancestor, scope, predicate, isRoot); + }; + var sibling = function (scope, predicate) { + var element = scope.dom(); + if (!element.parentNode) + return Option.none(); + return child$1($_fmubbj19ijfuw8wmy.fromDom(element.parentNode), function (x) { + return !$_ab91p919wjfuw8woc.eq(scope, x) && predicate(x); + }); + }; + var child$1 = function (scope, predicate) { + var result = $_1doq1817ejfuw8wen.find(scope.dom().childNodes, $_d9fl1s17gjfuw8wew.compose(predicate, $_fmubbj19ijfuw8wmy.fromDom)); + return result.map($_fmubbj19ijfuw8wmy.fromDom); + }; + var descendant = function (scope, predicate) { + var descend = function (element) { + for (var i = 0; i < element.childNodes.length; i++) { + if (predicate($_fmubbj19ijfuw8wmy.fromDom(element.childNodes[i]))) + return Option.some($_fmubbj19ijfuw8wmy.fromDom(element.childNodes[i])); + var res = descend(element.childNodes[i]); + if (res.isSome()) + return res; + } + return Option.none(); + }; + return descend(scope.dom()); + }; + var $_7vqge21afjfuw8wq8 = { + first: first$1, + ancestor: ancestor, + closest: closest, + sibling: sibling, + child: child$1, + descendant: descendant + }; + + var first$2 = function (selector) { + return $_9hz7rv1a9jfuw8wpg.one(selector); + }; + var ancestor$1 = function (scope, selector, isRoot) { + return $_7vqge21afjfuw8wq8.ancestor(scope, function (e) { + return $_9hz7rv1a9jfuw8wpg.is(e, selector); + }, isRoot); + }; + var sibling$1 = function (scope, selector) { + return $_7vqge21afjfuw8wq8.sibling(scope, function (e) { + return $_9hz7rv1a9jfuw8wpg.is(e, selector); + }); + }; + var child$2 = function (scope, selector) { + return $_7vqge21afjfuw8wq8.child(scope, function (e) { + return $_9hz7rv1a9jfuw8wpg.is(e, selector); + }); + }; + var descendant$1 = function (scope, selector) { + return $_9hz7rv1a9jfuw8wpg.one(selector, scope); + }; + var closest$1 = function (scope, selector, isRoot) { + return ClosestOrAncestor($_9hz7rv1a9jfuw8wpg.is, ancestor$1, scope, selector, isRoot); + }; + var $_fms31h1aejfuw8wq6 = { + first: first$2, + ancestor: ancestor$1, + sibling: sibling$1, + child: child$2, + descendant: descendant$1, + closest: closest$1 + }; + + var toggleFormat = function (editor, fmt) { + return function () { + editor.execCommand('mceToggleFormat', false, fmt); + }; + }; + var postRenderFormat = function (editor, name) { + return function () { + var self = this; + if (editor.formatter) { + editor.formatter.formatChanged(name, function (state) { + self.active(state); + }); + } else { + editor.on('init', function () { + editor.formatter.formatChanged(name, function (state) { + self.active(state); + }); + }); + } + }; + }; + var $_ihu3w1aijfuw8wqo = { + toggleFormat: toggleFormat, + postRenderFormat: postRenderFormat + }; + + var register = function (editor) { + editor.addMenuItem('align', { + text: 'Align', + menu: [ + { + text: 'Left', + icon: 'alignleft', + onclick: $_ihu3w1aijfuw8wqo.toggleFormat(editor, 'alignleft') + }, + { + text: 'Center', + icon: 'aligncenter', + onclick: $_ihu3w1aijfuw8wqo.toggleFormat(editor, 'aligncenter') + }, + { + text: 'Right', + icon: 'alignright', + onclick: $_ihu3w1aijfuw8wqo.toggleFormat(editor, 'alignright') + }, + { + text: 'Justify', + icon: 'alignjustify', + onclick: $_ihu3w1aijfuw8wqo.toggleFormat(editor, 'alignjustify') + } + ] + }); + global$4.each({ + alignleft: [ + 'Align left', + 'JustifyLeft' + ], + aligncenter: [ + 'Align center', + 'JustifyCenter' + ], + alignright: [ + 'Align right', + 'JustifyRight' + ], + alignjustify: [ + 'Justify', + 'JustifyFull' + ], + alignnone: [ + 'No alignment', + 'JustifyNone' + ] + }, function (item, name) { + editor.addButton(name, { + active: false, + tooltip: item[0], + cmd: item[1], + onPostRender: $_ihu3w1aijfuw8wqo.postRenderFormat(editor, name) + }); + }); + }; + var $_ezm9hv1ahjfuw8wqn = { register: register }; + + var getFirstFont = function (fontFamily) { + return fontFamily ? fontFamily.split(',')[0] : ''; + }; + var findMatchingValue = function (items, fontFamily) { + var value; + global$4.each(items, function (item) { + if (item.value.toLowerCase() === fontFamily.toLowerCase()) { + value = item.value; + } + }); + global$4.each(items, function (item) { + if (!value && getFirstFont(item.value).toLowerCase() === getFirstFont(fontFamily).toLowerCase()) { + value = item.value; + } + }); + return value; + }; + var createFontNameListBoxChangeHandler = function (editor, items) { + return function () { + var self = this; + editor.on('init nodeChange', function (e) { + var fontFamily = editor.queryCommandValue('FontName'); + var match = findMatchingValue(items, fontFamily); + self.value(match ? match : null); + if (!match && fontFamily) { + self.text(getFirstFont(fontFamily)); + } + }); + }; + }; + var createFormats = function (formats) { + formats = formats.replace(/;$/, '').split(';'); + var i = formats.length; + while (i--) { + formats[i] = formats[i].split('='); + } + return formats; + }; + var getFontItems = function (editor) { + var defaultFontsFormats = 'Andale Mono=andale mono,monospace;' + 'Arial=arial,helvetica,sans-serif;' + 'Arial Black=arial black,sans-serif;' + 'Book Antiqua=book antiqua,palatino,serif;' + 'Comic Sans MS=comic sans ms,sans-serif;' + 'Courier New=courier new,courier,monospace;' + 'Georgia=georgia,palatino,serif;' + 'Helvetica=helvetica,arial,sans-serif;' + 'Impact=impact,sans-serif;' + 'Symbol=symbol;' + 'Tahoma=tahoma,arial,helvetica,sans-serif;' + 'Terminal=terminal,monaco,monospace;' + 'Times New Roman=times new roman,times,serif;' + 'Trebuchet MS=trebuchet ms,geneva,sans-serif;' + 'Verdana=verdana,geneva,sans-serif;' + 'Webdings=webdings;' + 'Wingdings=wingdings,zapf dingbats'; + var fonts = createFormats(editor.settings.font_formats || defaultFontsFormats); + return global$4.map(fonts, function (font) { + return { + text: { raw: font[0] }, + value: font[1], + textStyle: font[1].indexOf('dings') === -1 ? 'font-family:' + font[1] : '' + }; + }); + }; + var registerButtons = function (editor) { + editor.addButton('fontselect', function () { + var items = getFontItems(editor); + return { + type: 'listbox', + text: 'Font Family', + tooltip: 'Font Family', + values: items, + fixedWidth: true, + onPostRender: createFontNameListBoxChangeHandler(editor, items), + onselect: function (e) { + if (e.control.settings.value) { + editor.execCommand('FontName', false, e.control.settings.value); + } + } + }; + }); + }; + var register$1 = function (editor) { + registerButtons(editor); + }; + var $_1fynbv1ajjfuw8wqp = { register: register$1 }; + + var round = function (number, precision) { + var factor = Math.pow(10, precision); + return Math.round(number * factor) / factor; + }; + var toPt = function (fontSize, precision) { + if (/[0-9.]+px$/.test(fontSize)) { + return round(parseInt(fontSize, 10) * 72 / 96, precision || 0) + 'pt'; + } + return fontSize; + }; + var findMatchingValue$1 = function (items, pt, px) { + var value; + global$4.each(items, function (item) { + if (item.value === px) { + value = px; + } else if (item.value === pt) { + value = pt; + } + }); + return value; + }; + var createFontSizeListBoxChangeHandler = function (editor, items) { + return function () { + var self = this; + editor.on('init nodeChange', function (e) { + var px, pt, precision, match; + px = editor.queryCommandValue('FontSize'); + if (px) { + for (precision = 3; !match && precision >= 0; precision--) { + pt = toPt(px, precision); + match = findMatchingValue$1(items, pt, px); + } + } + self.value(match ? match : null); + if (!match) { + self.text(pt); + } + }); + }; + }; + var getFontSizeItems = function (editor) { + var defaultFontsizeFormats = '8pt 10pt 12pt 14pt 18pt 24pt 36pt'; + var fontsizeFormats = editor.settings.fontsize_formats || defaultFontsizeFormats; + return global$4.map(fontsizeFormats.split(' '), function (item) { + var text = item, value = item; + var values = item.split('='); + if (values.length > 1) { + text = values[0]; + value = values[1]; + } + return { + text: text, + value: value + }; + }); + }; + var registerButtons$1 = function (editor) { + editor.addButton('fontsizeselect', function () { + var items = getFontSizeItems(editor); + return { + type: 'listbox', + text: 'Font Sizes', + tooltip: 'Font Sizes', + values: items, + fixedWidth: true, + onPostRender: createFontSizeListBoxChangeHandler(editor, items), + onclick: function (e) { + if (e.control.settings.value) { + editor.execCommand('FontSize', false, e.control.settings.value); + } + } + }; + }); + }; + var register$2 = function (editor) { + registerButtons$1(editor); + }; + var $_4s7fmc1akjfuw8wqs = { register: register$2 }; + + var hideMenuObjects = function (editor, menu) { + var count = menu.length; + global$4.each(menu, function (item) { + if (item.menu) { + item.hidden = hideMenuObjects(editor, item.menu) === 0; + } + var formatName = item.format; + if (formatName) { + item.hidden = !editor.formatter.canApply(formatName); + } + if (item.hidden) { + count--; + } + }); + return count; + }; + var hideFormatMenuItems = function (editor, menu) { + var count = menu.items().length; + menu.items().each(function (item) { + if (item.menu) { + item.visible(hideFormatMenuItems(editor, item.menu) > 0); + } + if (!item.menu && item.settings.menu) { + item.visible(hideMenuObjects(editor, item.settings.menu) > 0); + } + var formatName = item.settings.format; + if (formatName) { + item.visible(editor.formatter.canApply(formatName)); + } + if (!item.visible()) { + count--; + } + }); + return count; + }; + var createFormatMenu = function (editor) { + var count = 0; + var newFormats = []; + var defaultStyleFormats = [ + { + title: 'Headings', + items: [ + { + title: 'Heading 1', + format: 'h1' + }, + { + title: 'Heading 2', + format: 'h2' + }, + { + title: 'Heading 3', + format: 'h3' + }, + { + title: 'Heading 4', + format: 'h4' + }, + { + title: 'Heading 5', + format: 'h5' + }, + { + title: 'Heading 6', + format: 'h6' + } + ] + }, + { + title: 'Inline', + items: [ + { + title: 'Bold', + icon: 'bold', + format: 'bold' + }, + { + title: 'Italic', + icon: 'italic', + format: 'italic' + }, + { + title: 'Underline', + icon: 'underline', + format: 'underline' + }, + { + title: 'Strikethrough', + icon: 'strikethrough', + format: 'strikethrough' + }, + { + title: 'Superscript', + icon: 'superscript', + format: 'superscript' + }, + { + title: 'Subscript', + icon: 'subscript', + format: 'subscript' + }, + { + title: 'Code', + icon: 'code', + format: 'code' + } + ] + }, + { + title: 'Blocks', + items: [ + { + title: 'Paragraph', + format: 'p' + }, + { + title: 'Blockquote', + format: 'blockquote' + }, + { + title: 'Div', + format: 'div' + }, + { + title: 'Pre', + format: 'pre' + } + ] + }, + { + title: 'Alignment', + items: [ + { + title: 'Left', + icon: 'alignleft', + format: 'alignleft' + }, + { + title: 'Center', + icon: 'aligncenter', + format: 'aligncenter' + }, + { + title: 'Right', + icon: 'alignright', + format: 'alignright' + }, + { + title: 'Justify', + icon: 'alignjustify', + format: 'alignjustify' + } + ] + } + ]; + var createMenu = function (formats) { + var menu = []; + if (!formats) { + return; + } + global$4.each(formats, function (format) { + var menuItem = { + text: format.title, + icon: format.icon + }; + if (format.items) { + menuItem.menu = createMenu(format.items); + } else { + var formatName = format.format || 'custom' + count++; + if (!format.format) { + format.name = formatName; + newFormats.push(format); + } + menuItem.format = formatName; + menuItem.cmd = format.cmd; + } + menu.push(menuItem); + }); + return menu; + }; + var createStylesMenu = function () { + var menu; + if (editor.settings.style_formats_merge) { + if (editor.settings.style_formats) { + menu = createMenu(defaultStyleFormats.concat(editor.settings.style_formats)); + } else { + menu = createMenu(defaultStyleFormats); + } + } else { + menu = createMenu(editor.settings.style_formats || defaultStyleFormats); + } + return menu; + }; + editor.on('init', function () { + global$4.each(newFormats, function (format) { + editor.formatter.register(format.name, format); + }); + }); + return { + type: 'menu', + items: createStylesMenu(), + onPostRender: function (e) { + editor.fire('renderFormatsMenu', { control: e.control }); + }, + itemDefaults: { + preview: true, + textStyle: function () { + if (this.settings.format) { + return editor.formatter.getCssText(this.settings.format); + } + }, + onPostRender: function () { + var self = this; + self.parent().on('show', function () { + var formatName, command; + formatName = self.settings.format; + if (formatName) { + self.disabled(!editor.formatter.canApply(formatName)); + self.active(editor.formatter.match(formatName)); + } + command = self.settings.cmd; + if (command) { + self.active(editor.queryCommandState(command)); + } + }); + }, + onclick: function () { + if (this.settings.format) { + $_ihu3w1aijfuw8wqo.toggleFormat(editor, this.settings.format)(); + } + if (this.settings.cmd) { + editor.execCommand(this.settings.cmd); + } + } + } + }; + }; + var registerMenuItems = function (editor, formatMenu) { + editor.addMenuItem('formats', { + text: 'Formats', + menu: formatMenu + }); + }; + var registerButtons$2 = function (editor, formatMenu) { + editor.addButton('styleselect', { + type: 'menubutton', + text: 'Formats', + menu: formatMenu, + onShowMenu: function () { + if (editor.settings.style_formats_autohide) { + hideFormatMenuItems(editor, this.menu); + } + } + }); + }; + var register$3 = function (editor) { + var formatMenu = createFormatMenu(editor); + registerMenuItems(editor, formatMenu); + registerButtons$2(editor, formatMenu); + }; + var $_2dqx6v1aljfuw8wqv = { register: register$3 }; + + var defaultBlocks = 'Paragraph=p;' + 'Heading 1=h1;' + 'Heading 2=h2;' + 'Heading 3=h3;' + 'Heading 4=h4;' + 'Heading 5=h5;' + 'Heading 6=h6;' + 'Preformatted=pre'; + var createFormats$1 = function (formats) { + formats = formats.replace(/;$/, '').split(';'); + var i = formats.length; + while (i--) { + formats[i] = formats[i].split('='); + } + return formats; + }; + var createListBoxChangeHandler = function (editor, items, formatName) { + return function () { + var self = this; + editor.on('nodeChange', function (e) { + var formatter = editor.formatter; + var value = null; + global$4.each(e.parents, function (node) { + global$4.each(items, function (item) { + if (formatName) { + if (formatter.matchNode(node, formatName, { value: item.value })) { + value = item.value; + } + } else { + if (formatter.matchNode(node, item.value)) { + value = item.value; + } + } + if (value) { + return false; + } }); + if (value) { + return false; + } + }); + self.value(value); + }); + }; + }; + var lazyFormatSelectBoxItems = function (editor, blocks) { + return function () { + var items = []; + global$4.each(blocks, function (block) { + items.push({ + text: block[0], + value: block[1], + textStyle: function () { + return editor.formatter.getCssText(block[1]); + } + }); + }); + return { + type: 'listbox', + text: blocks[0][0], + values: items, + fixedWidth: true, + onselect: function (e) { + if (e.control) { + var fmt = e.control.value(); + $_ihu3w1aijfuw8wqo.toggleFormat(editor, fmt)(); + } + }, + onPostRender: createListBoxChangeHandler(editor, items) + }; + }; + }; + var buildMenuItems = function (editor, blocks) { + return global$4.map(blocks, function (block) { + return { + text: block[0], + onclick: $_ihu3w1aijfuw8wqo.toggleFormat(editor, block[1]), + textStyle: function () { + return editor.formatter.getCssText(block[1]); } + }; + }); + }; + var register$4 = function (editor) { + var blocks = createFormats$1(editor.settings.block_formats || defaultBlocks); + editor.addMenuItem('blockformats', { + text: 'Blocks', + menu: buildMenuItems(editor, blocks) + }); + editor.addButton('formatselect', lazyFormatSelectBoxItems(editor, blocks)); + }; + var $_8bezlh1amjfuw8wqz = { register: register$4 }; + + var createCustomMenuItems = function (editor, names) { + var items, nameList; + if (typeof names === 'string') { + nameList = names.split(' '); + } else if (global$4.isArray(names)) { + return $_1doq1817ejfuw8wen.flatten(global$4.map(names, function (names) { + return createCustomMenuItems(editor, names); + })); + } + items = global$4.grep(nameList, function (name) { + return name === '|' || name in editor.menuItems; + }); + return global$4.map(items, function (name) { + return name === '|' ? { text: '-' } : editor.menuItems[name]; + }); + }; + var isSeparator = function (menuItem) { + return menuItem && menuItem.text === '-'; + }; + var trimMenuItems = function (menuItems) { + var menuItems2 = $_1doq1817ejfuw8wen.filter(menuItems, function (menuItem, i, menuItems) { + return !isSeparator(menuItem) || !isSeparator(menuItems[i - 1]); + }); + return $_1doq1817ejfuw8wen.filter(menuItems2, function (menuItem, i, menuItems) { + return !isSeparator(menuItem) || i > 0 && i < menuItems.length - 1; + }); + }; + var createContextMenuItems = function (editor, context) { + var outputMenuItems = [{ text: '-' }]; + var menuItems = global$4.grep(editor.menuItems, function (menuItem) { + return menuItem.context === context; + }); + global$4.each(menuItems, function (menuItem) { + if (menuItem.separator === 'before') { + outputMenuItems.push({ text: '|' }); + } + if (menuItem.prependToContext) { + outputMenuItems.unshift(menuItem); + } else { + outputMenuItems.push(menuItem); + } + if (menuItem.separator === 'after') { + outputMenuItems.push({ text: '|' }); + } + }); + return outputMenuItems; + }; + var createInsertMenu = function (editor) { + var insertButtonItems = editor.settings.insert_button_items; + if (insertButtonItems) { + return trimMenuItems(createCustomMenuItems(editor, insertButtonItems)); + } else { + return trimMenuItems(createContextMenuItems(editor, 'insert')); + } + }; + var registerButtons$3 = function (editor) { + editor.addButton('insert', { + type: 'menubutton', + icon: 'insert', + menu: [], + oncreatemenu: function () { + this.menu.add(createInsertMenu(editor)); + this.menu.renderNew(); + } + }); + }; + var register$5 = function (editor) { + registerButtons$3(editor); + }; + var $_46740k1anjfuw8wr1 = { register: register$5 }; + + var registerFormatButtons = function (editor) { + global$4.each({ + bold: 'Bold', + italic: 'Italic', + underline: 'Underline', + strikethrough: 'Strikethrough', + subscript: 'Subscript', + superscript: 'Superscript' + }, function (text, name) { + editor.addButton(name, { + active: false, + tooltip: text, + onPostRender: $_ihu3w1aijfuw8wqo.postRenderFormat(editor, name), + onclick: $_ihu3w1aijfuw8wqo.toggleFormat(editor, name) + }); + }); + }; + var registerCommandButtons = function (editor) { + global$4.each({ + outdent: [ + 'Decrease indent', + 'Outdent' + ], + indent: [ + 'Increase indent', + 'Indent' + ], + cut: [ + 'Cut', + 'Cut' + ], + copy: [ + 'Copy', + 'Copy' + ], + paste: [ + 'Paste', + 'Paste' + ], + help: [ + 'Help', + 'mceHelp' + ], + selectall: [ + 'Select all', + 'SelectAll' + ], + visualaid: [ + 'Visual aids', + 'mceToggleVisualAid' + ], + newdocument: [ + 'New document', + 'mceNewDocument' + ], + removeformat: [ + 'Clear formatting', + 'RemoveFormat' + ], + remove: [ + 'Remove', + 'Delete' + ] + }, function (item, name) { + editor.addButton(name, { + tooltip: item[0], + cmd: item[1] + }); + }); + }; + var registerCommandToggleButtons = function (editor) { + global$4.each({ + blockquote: [ + 'Blockquote', + 'mceBlockQuote' + ], + subscript: [ + 'Subscript', + 'Subscript' + ], + superscript: [ + 'Superscript', + 'Superscript' + ] + }, function (item, name) { + editor.addButton(name, { + active: false, + tooltip: item[0], + cmd: item[1], + onPostRender: $_ihu3w1aijfuw8wqo.postRenderFormat(editor, name) }); - }; + }); + }; + var registerButtons$4 = function (editor) { + registerFormatButtons(editor); + registerCommandButtons(editor); + registerCommandToggleButtons(editor); + }; + var registerMenuItems$1 = function (editor) { + global$4.each({ + bold: [ + 'Bold', + 'Bold', + 'Meta+B' + ], + italic: [ + 'Italic', + 'Italic', + 'Meta+I' + ], + underline: [ + 'Underline', + 'Underline', + 'Meta+U' + ], + strikethrough: [ + 'Strikethrough', + 'Strikethrough' + ], + subscript: [ + 'Subscript', + 'Subscript' + ], + superscript: [ + 'Superscript', + 'Superscript' + ], + removeformat: [ + 'Clear formatting', + 'RemoveFormat' + ], + newdocument: [ + 'New document', + 'mceNewDocument' + ], + cut: [ + 'Cut', + 'Cut', + 'Meta+X' + ], + copy: [ + 'Copy', + 'Copy', + 'Meta+C' + ], + paste: [ + 'Paste', + 'Paste', + 'Meta+V' + ], + selectall: [ + 'Select all', + 'SelectAll', + 'Meta+A' + ] + }, function (item, name) { + editor.addMenuItem(name, { + text: item[0], + icon: name, + shortcut: item[2], + cmd: item[1] + }); + }); + editor.addMenuItem('codeformat', { + text: 'Code', + icon: 'code', + onclick: $_ihu3w1aijfuw8wqo.toggleFormat(editor, 'code') + }); + }; + var register$6 = function (editor) { + registerButtons$4(editor); + registerMenuItems$1(editor); + }; + var $_bith3p1aojfuw8wr6 = { register: register$6 }; - return { - createQuickLinkForm: createQuickLinkForm - }; - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.geom.Rect', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.geom.Rect'); - } -); - -/** - * Layout.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.inlite.core.Layout', - [ - 'tinymce.core.geom.Rect', - 'tinymce.themes.inlite.core.Convert' - ], - function (Rect, Convert) { - var result = function (rect, position) { - return { - rect: rect, - position: position + var toggleUndoRedoState = function (editor, type) { + return function () { + var self = this; + var checkState = function () { + var typeFn = type === 'redo' ? 'hasRedo' : 'hasUndo'; + return editor.undoManager ? editor.undoManager[typeFn]() : false; }; + self.disabled(!checkState()); + editor.on('Undo Redo AddUndo TypingUndo ClearUndos SwitchMode', function () { + self.disabled(editor.readonly || !checkState()); + }); }; + }; + var registerMenuItems$2 = function (editor) { + editor.addMenuItem('undo', { + text: 'Undo', + icon: 'undo', + shortcut: 'Meta+Z', + onPostRender: toggleUndoRedoState(editor, 'undo'), + cmd: 'undo' + }); + editor.addMenuItem('redo', { + text: 'Redo', + icon: 'redo', + shortcut: 'Meta+Y', + onPostRender: toggleUndoRedoState(editor, 'redo'), + cmd: 'redo' + }); + }; + var registerButtons$5 = function (editor) { + editor.addButton('undo', { + tooltip: 'Undo', + onPostRender: toggleUndoRedoState(editor, 'undo'), + cmd: 'undo' + }); + editor.addButton('redo', { + tooltip: 'Redo', + onPostRender: toggleUndoRedoState(editor, 'redo'), + cmd: 'redo' + }); + }; + var register$7 = function (editor) { + registerMenuItems$2(editor); + registerButtons$5(editor); + }; + var $_2t0cyf1apjfuw8wr8 = { register: register$7 }; - var moveTo = function (rect, toRect) { - return { x: toRect.x, y: toRect.y, w: rect.w, h: rect.h }; + var toggleVisualAidState = function (editor) { + return function () { + var self = this; + editor.on('VisualAid', function (e) { + self.active(e.hasVisual); + }); + self.active(editor.hasVisual); }; + }; + var registerMenuItems$3 = function (editor) { + editor.addMenuItem('visualaid', { + text: 'Visual aids', + selectable: true, + onPostRender: toggleVisualAidState(editor), + cmd: 'mceToggleVisualAid' + }); + }; + var register$8 = function (editor) { + registerMenuItems$3(editor); + }; + var $_7bn4in1aqjfuw8wra = { register: register$8 }; - var calcByPositions = function (testPositions1, testPositions2, targetRect, contentAreaRect, panelRect) { - var relPos, relRect, outputPanelRect; - - var paddedContentRect = { - x: contentAreaRect.x, - y: contentAreaRect.y, - w: contentAreaRect.w + (contentAreaRect.w < (panelRect.w + targetRect.w) ? panelRect.w : 0), - h: contentAreaRect.h + (contentAreaRect.h < (panelRect.h + targetRect.h) ? panelRect.h : 0) - }; - - relPos = Rect.findBestRelativePosition(panelRect, targetRect, paddedContentRect, testPositions1); - targetRect = Rect.clamp(targetRect, paddedContentRect); - - if (relPos) { - relRect = Rect.relativePosition(panelRect, targetRect, relPos); - outputPanelRect = moveTo(panelRect, relRect); - return result(outputPanelRect, relPos); + var setupEnvironment = function () { + Widget.tooltips = !global$1.iOS; + Control$1.translate = function (text) { + return global$5.translate(text); + }; + }; + var setupUiContainer = function (editor) { + if (editor.settings.ui_container) { + global$1.container = $_fms31h1aejfuw8wq6.descendant($_fmubbj19ijfuw8wmy.fromDom(document.body), editor.settings.ui_container).fold($_d9fl1s17gjfuw8wew.constant(null), function (elm) { + return elm.dom(); + }); + } + }; + var setupRtlMode = function (editor) { + if (editor.rtl) { + Control$1.rtl = true; + } + }; + var setupHideFloatPanels = function (editor) { + editor.on('mousedown', function () { + FloatPanel.hideAll(); + }); + }; + var setup = function (editor) { + setupRtlMode(editor); + setupHideFloatPanels(editor); + setupUiContainer(editor); + setupEnvironment(); + $_8bezlh1amjfuw8wqz.register(editor); + $_ezm9hv1ahjfuw8wqn.register(editor); + $_bith3p1aojfuw8wr6.register(editor); + $_2t0cyf1apjfuw8wr8.register(editor); + $_4s7fmc1akjfuw8wqs.register(editor); + $_1fynbv1ajjfuw8wqp.register(editor); + $_2dqx6v1aljfuw8wqv.register(editor); + $_7bn4in1aqjfuw8wra.register(editor); + $_46740k1anjfuw8wr1.register(editor); + }; + var $_5jc0r41adjfuw8wpt = { setup: setup }; + + var GridLayout = AbsoluteLayout.extend({ + recalc: function (container) { + var settings, rows, cols, items, contLayoutRect, width, height, rect, ctrlLayoutRect, ctrl, x, y, posX, posY, ctrlSettings, contPaddingBox, align, spacingH, spacingV, alignH, alignV, maxX, maxY; + var colWidths = []; + var rowHeights = []; + var ctrlMinWidth, ctrlMinHeight, availableWidth, availableHeight, reverseRows, idx; + settings = container.settings; + items = container.items().filter(':visible'); + contLayoutRect = container.layoutRect(); + cols = settings.columns || Math.ceil(Math.sqrt(items.length)); + rows = Math.ceil(items.length / cols); + spacingH = settings.spacingH || settings.spacing || 0; + spacingV = settings.spacingV || settings.spacing || 0; + alignH = settings.alignH || settings.align; + alignV = settings.alignV || settings.align; + contPaddingBox = container.paddingBox; + reverseRows = 'reverseRows' in settings ? settings.reverseRows : container.isRtl(); + if (alignH && typeof alignH === 'string') { + alignH = [alignH]; } - - targetRect = Rect.intersect(paddedContentRect, targetRect); - if (targetRect) { - relPos = Rect.findBestRelativePosition(panelRect, targetRect, paddedContentRect, testPositions2); - - if (relPos) { - relRect = Rect.relativePosition(panelRect, targetRect, relPos); - outputPanelRect = moveTo(panelRect, relRect); - return result(outputPanelRect, relPos); + if (alignV && typeof alignV === 'string') { + alignV = [alignV]; + } + for (x = 0; x < cols; x++) { + colWidths.push(0); + } + for (y = 0; y < rows; y++) { + rowHeights.push(0); + } + for (y = 0; y < rows; y++) { + for (x = 0; x < cols; x++) { + ctrl = items[y * cols + x]; + if (!ctrl) { + break; + } + ctrlLayoutRect = ctrl.layoutRect(); + ctrlMinWidth = ctrlLayoutRect.minW; + ctrlMinHeight = ctrlLayoutRect.minH; + colWidths[x] = ctrlMinWidth > colWidths[x] ? ctrlMinWidth : colWidths[x]; + rowHeights[y] = ctrlMinHeight > rowHeights[y] ? ctrlMinHeight : rowHeights[y]; } - - outputPanelRect = moveTo(panelRect, targetRect); - return result(outputPanelRect, relPos); } - - return null; - }; - - var calcInsert = function (targetRect, contentAreaRect, panelRect) { - return calcByPositions( - ['cr-cl', 'cl-cr'], - ['bc-tc', 'bl-tl', 'br-tr'], - targetRect, - contentAreaRect, - panelRect - ); - }; - - var calc = function (targetRect, contentAreaRect, panelRect) { - return calcByPositions( - ['tc-bc', 'bc-tc', 'tl-bl', 'bl-tl', 'tr-br', 'br-tr', 'cr-cl', 'cl-cr'], - ['bc-tc', 'bl-tl', 'br-tr', 'cr-cl'], - targetRect, - contentAreaRect, - panelRect - ); - }; - - var userConstrain = function (handler, targetRect, contentAreaRect, panelRect) { - var userConstrainedPanelRect; - - if (typeof handler === 'function') { - userConstrainedPanelRect = handler({ - elementRect: Convert.toClientRect(targetRect), - contentAreaRect: Convert.toClientRect(contentAreaRect), - panelRect: Convert.toClientRect(panelRect) + availableWidth = contLayoutRect.innerW - contPaddingBox.left - contPaddingBox.right; + for (maxX = 0, x = 0; x < cols; x++) { + maxX += colWidths[x] + (x > 0 ? spacingH : 0); + availableWidth -= (x > 0 ? spacingH : 0) + colWidths[x]; + } + availableHeight = contLayoutRect.innerH - contPaddingBox.top - contPaddingBox.bottom; + for (maxY = 0, y = 0; y < rows; y++) { + maxY += rowHeights[y] + (y > 0 ? spacingV : 0); + availableHeight -= (y > 0 ? spacingV : 0) + rowHeights[y]; + } + maxX += contPaddingBox.left + contPaddingBox.right; + maxY += contPaddingBox.top + contPaddingBox.bottom; + rect = {}; + rect.minW = maxX + (contLayoutRect.w - contLayoutRect.innerW); + rect.minH = maxY + (contLayoutRect.h - contLayoutRect.innerH); + rect.contentW = rect.minW - contLayoutRect.deltaW; + rect.contentH = rect.minH - contLayoutRect.deltaH; + rect.minW = Math.min(rect.minW, contLayoutRect.maxW); + rect.minH = Math.min(rect.minH, contLayoutRect.maxH); + rect.minW = Math.max(rect.minW, contLayoutRect.startMinWidth); + rect.minH = Math.max(rect.minH, contLayoutRect.startMinHeight); + if (contLayoutRect.autoResize && (rect.minW !== contLayoutRect.minW || rect.minH !== contLayoutRect.minH)) { + rect.w = rect.minW; + rect.h = rect.minH; + container.layoutRect(rect); + this.recalc(container); + if (container._lastRect === null) { + var parentCtrl = container.parent(); + if (parentCtrl) { + parentCtrl._lastRect = null; + parentCtrl.recalc(); + } + } + return; + } + if (contLayoutRect.autoResize) { + rect = container.layoutRect(rect); + rect.contentW = rect.minW - contLayoutRect.deltaW; + rect.contentH = rect.minH - contLayoutRect.deltaH; + } + var flexV; + if (settings.packV === 'start') { + flexV = 0; + } else { + flexV = availableHeight > 0 ? Math.floor(availableHeight / rows) : 0; + } + var totalFlex = 0; + var flexWidths = settings.flexWidths; + if (flexWidths) { + for (x = 0; x < flexWidths.length; x++) { + totalFlex += flexWidths[x]; + } + } else { + totalFlex = cols; + } + var ratio = availableWidth / totalFlex; + for (x = 0; x < cols; x++) { + colWidths[x] += flexWidths ? flexWidths[x] * ratio : ratio; + } + posY = contPaddingBox.top; + for (y = 0; y < rows; y++) { + posX = contPaddingBox.left; + height = rowHeights[y] + flexV; + for (x = 0; x < cols; x++) { + if (reverseRows) { + idx = y * cols + cols - 1 - x; + } else { + idx = y * cols + x; + } + ctrl = items[idx]; + if (!ctrl) { + break; + } + ctrlSettings = ctrl.settings; + ctrlLayoutRect = ctrl.layoutRect(); + width = Math.max(colWidths[x], ctrlLayoutRect.startMinWidth); + ctrlLayoutRect.x = posX; + ctrlLayoutRect.y = posY; + align = ctrlSettings.alignH || (alignH ? alignH[x] || alignH[0] : null); + if (align === 'center') { + ctrlLayoutRect.x = posX + width / 2 - ctrlLayoutRect.w / 2; + } else if (align === 'right') { + ctrlLayoutRect.x = posX + width - ctrlLayoutRect.w; + } else if (align === 'stretch') { + ctrlLayoutRect.w = width; + } + align = ctrlSettings.alignV || (alignV ? alignV[x] || alignV[0] : null); + if (align === 'center') { + ctrlLayoutRect.y = posY + height / 2 - ctrlLayoutRect.h / 2; + } else if (align === 'bottom') { + ctrlLayoutRect.y = posY + height - ctrlLayoutRect.h; + } else if (align === 'stretch') { + ctrlLayoutRect.h = height; + } + ctrl.layoutRect(ctrlLayoutRect); + posX += width + spacingH; + if (ctrl.recalc) { + ctrl.recalc(); + } + } + posY += height + spacingV; + } + } + }); + + var Iframe = Widget.extend({ + renderHtml: function () { + var self = this; + self.classes.add('iframe'); + self.canFocus = false; + return '<iframe id="' + self._id + '" class="' + self.classes + '" tabindex="-1" src="' + (self.settings.url || 'javascript:\'\'') + '" frameborder="0"></iframe>'; + }, + src: function (src) { + this.getEl().src = src; + }, + html: function (html, callback) { + var self = this, body = this.getEl().contentWindow.document.body; + if (!body) { + global$3.setTimeout(function () { + self.html(html); }); - - return Convert.fromClientRect(userConstrainedPanelRect); + } else { + body.innerHTML = html; + if (callback) { + callback(); + } } + return this; + } + }); + + var InfoBox = Widget.extend({ + init: function (settings) { + var self = this; + self._super(settings); + self.classes.add('widget').add('infobox'); + self.canFocus = false; + }, + severity: function (level) { + this.classes.remove('error'); + this.classes.remove('warning'); + this.classes.remove('success'); + this.classes.add(level); + }, + help: function (state) { + this.state.set('help', state); + }, + renderHtml: function () { + var self = this, prefix = self.classPrefix; + return '<div id="' + self._id + '" class="' + self.classes + '">' + '<div id="' + self._id + '-body">' + self.encode(self.state.get('text')) + '<button role="button" tabindex="-1">' + '<i class="' + prefix + 'ico ' + prefix + 'i-help"></i>' + '</button>' + '</div>' + '</div>'; + }, + bindStates: function () { + var self = this; + self.state.on('change:text', function (e) { + self.getEl('body').firstChild.data = self.encode(e.value); + if (self.state.get('rendered')) { + self.updateLayoutRect(); + } + }); + self.state.on('change:help', function (e) { + self.classes.toggle('has-help', e.value); + if (self.state.get('rendered')) { + self.updateLayoutRect(); + } + }); + return self._super(); + } + }); + + var Label = Widget.extend({ + init: function (settings) { + var self = this; + self._super(settings); + self.classes.add('widget').add('label'); + self.canFocus = false; + if (settings.multiline) { + self.classes.add('autoscroll'); + } + if (settings.strong) { + self.classes.add('strong'); + } + }, + initLayoutRect: function () { + var self = this, layoutRect = self._super(); + if (self.settings.multiline) { + var size = funcs.getSize(self.getEl()); + if (size.width > layoutRect.maxW) { + layoutRect.minW = layoutRect.maxW; + self.classes.add('multiline'); + } + self.getEl().style.width = layoutRect.minW + 'px'; + layoutRect.startMinH = layoutRect.h = layoutRect.minH = Math.min(layoutRect.maxH, funcs.getSize(self.getEl()).height); + } + return layoutRect; + }, + repaint: function () { + var self = this; + if (!self.settings.multiline) { + self.getEl().style.lineHeight = self.layoutRect().h + 'px'; + } + return self._super(); + }, + severity: function (level) { + this.classes.remove('error'); + this.classes.remove('warning'); + this.classes.remove('success'); + this.classes.add(level); + }, + renderHtml: function () { + var self = this; + var targetCtrl, forName, forId = self.settings.forId; + var text = self.settings.html ? self.settings.html : self.encode(self.state.get('text')); + if (!forId && (forName = self.settings.forName)) { + targetCtrl = self.getRoot().find('#' + forName)[0]; + if (targetCtrl) { + forId = targetCtrl._id; + } + } + if (forId) { + return '<label id="' + self._id + '" class="' + self.classes + '"' + (forId ? ' for="' + forId + '"' : '') + '>' + text + '</label>'; + } + return '<span id="' + self._id + '" class="' + self.classes + '">' + text + '</span>'; + }, + bindStates: function () { + var self = this; + self.state.on('change:text', function (e) { + self.innerHtml(self.encode(e.value)); + if (self.state.get('rendered')) { + self.updateLayoutRect(); + } + }); + return self._super(); + } + }); + + var Toolbar$1 = Container.extend({ + Defaults: { + role: 'toolbar', + layout: 'flow' + }, + init: function (settings) { + var self = this; + self._super(settings); + self.classes.add('toolbar'); + }, + postRender: function () { + var self = this; + self.items().each(function (ctrl) { + ctrl.classes.add('toolbar-item'); + }); + return self._super(); + } + }); + + var MenuBar = Toolbar$1.extend({ + Defaults: { + role: 'menubar', + containerCls: 'menubar', + ariaRoot: true, + defaults: { type: 'menubutton' } + } + }); - return panelRect; - }; - - var defaultHandler = function (rects) { - return rects.panelRect; + function isChildOf$1(node, parent) { + while (node) { + if (parent === node) { + return true; + } + node = node.parentNode; + } + return false; + } + var MenuButton = Button.extend({ + init: function (settings) { + var self = this; + self._renderOpen = true; + self._super(settings); + settings = self.settings; + self.classes.add('menubtn'); + if (settings.fixedWidth) { + self.classes.add('fixed-width'); + } + self.aria('haspopup', true); + self.state.set('menu', settings.menu || self.render()); + }, + showMenu: function (toggle) { + var self = this; + var menu; + if (self.menu && self.menu.visible() && toggle !== false) { + return self.hideMenu(); + } + if (!self.menu) { + menu = self.state.get('menu') || []; + self.classes.add('opened'); + if (menu.length) { + menu = { + type: 'menu', + animate: true, + items: menu + }; + } else { + menu.type = menu.type || 'menu'; + menu.animate = true; + } + if (!menu.renderTo) { + self.menu = global$11.create(menu).parent(self).renderTo(); + } else { + self.menu = menu.parent(self).show().renderTo(); + } + self.fire('createmenu'); + self.menu.reflow(); + self.menu.on('cancel', function (e) { + if (e.control.parent() === self.menu) { + e.stopPropagation(); + self.focus(); + self.hideMenu(); + } + }); + self.menu.on('select', function () { + self.focus(); + }); + self.menu.on('show hide', function (e) { + if (e.control === self.menu) { + self.activeMenu(e.type === 'show'); + self.classes.toggle('opened', e.type === 'show'); + } + self.aria('expanded', e.type === 'show'); + }).fire('show'); + } + self.menu.show(); + self.menu.layoutRect({ w: self.layoutRect().w }); + self.menu.repaint(); + self.menu.moveRel(self.getEl(), self.isRtl() ? [ + 'br-tr', + 'tr-br' + ] : [ + 'bl-tl', + 'tl-bl' + ]); + self.fire('showmenu'); + }, + hideMenu: function () { + var self = this; + if (self.menu) { + self.menu.items().each(function (item) { + if (item.hideMenu) { + item.hideMenu(); + } + }); + self.menu.hide(); + } + }, + activeMenu: function (state) { + this.classes.toggle('active', state); + }, + renderHtml: function () { + var self = this, id = self._id, prefix = self.classPrefix; + var icon = self.settings.icon, image; + var text = self.state.get('text'); + var textHtml = ''; + image = self.settings.image; + if (image) { + icon = 'none'; + if (typeof image !== 'string') { + image = window.getSelection ? image[0] : image[1]; + } + image = ' style="background-image: url(\'' + image + '\')"'; + } else { + image = ''; + } + if (text) { + self.classes.add('btn-has-text'); + textHtml = '<span class="' + prefix + 'txt">' + self.encode(text) + '</span>'; + } + icon = self.settings.icon ? prefix + 'ico ' + prefix + 'i-' + icon : ''; + self.aria('role', self.parent() instanceof MenuBar ? 'menuitem' : 'button'); + return '<div id="' + id + '" class="' + self.classes + '" tabindex="-1" aria-labelledby="' + id + '">' + '<button id="' + id + '-open" role="presentation" type="button" tabindex="-1">' + (icon ? '<i class="' + icon + '"' + image + '></i>' : '') + textHtml + ' <i class="' + prefix + 'caret"></i>' + '</button>' + '</div>'; + }, + postRender: function () { + var self = this; + self.on('click', function (e) { + if (e.control === self && isChildOf$1(e.target, self.getEl())) { + self.focus(); + self.showMenu(!e.aria); + if (e.aria) { + self.menu.items().filter(':visible')[0].focus(); + } + } + }); + self.on('mouseenter', function (e) { + var overCtrl = e.control; + var parent = self.parent(); + var hasVisibleSiblingMenu; + if (overCtrl && parent && overCtrl instanceof MenuButton && overCtrl.parent() === parent) { + parent.items().filter('MenuButton').each(function (ctrl) { + if (ctrl.hideMenu && ctrl !== overCtrl) { + if (ctrl.menu && ctrl.menu.visible()) { + hasVisibleSiblingMenu = true; + } + ctrl.hideMenu(); + } + }); + if (hasVisibleSiblingMenu) { + overCtrl.focus(); + overCtrl.showMenu(); + } + } + }); + return self._super(); + }, + bindStates: function () { + var self = this; + self.state.on('change:menu', function () { + if (self.menu) { + self.menu.remove(); + } + self.menu = null; + }); + return self._super(); + }, + remove: function () { + this._super(); + if (this.menu) { + this.menu.remove(); + } + } + }); + + function Throbber (elm, inline) { + var self = this; + var state; + var classPrefix = Control$1.classPrefix; + var timer; + self.show = function (time, callback) { + function render() { + if (state) { + global$7(elm).append('<div class="' + classPrefix + 'throbber' + (inline ? ' ' + classPrefix + 'throbber-inline' : '') + '"></div>'); + if (callback) { + callback(); + } + } + } + self.hide(); + state = true; + if (time) { + timer = global$3.setTimeout(render, time); + } else { + render(); + } + return self; }; - - return { - calcInsert: calcInsert, - calc: calc, - userConstrain: userConstrain, - defaultHandler: defaultHandler + self.hide = function () { + var child = elm.lastChild; + global$3.clearTimeout(timer); + if (child && child.className.indexOf('throbber') !== -1) { + child.parentNode.removeChild(child); + } + state = false; + return self; }; } -); - -/** - * Panel.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.inlite.ui.Panel', - [ - 'tinymce.core.util.Tools', - 'tinymce.core.ui.Factory', - 'tinymce.core.dom.DOMUtils', - 'tinymce.themes.inlite.ui.Toolbar', - 'tinymce.themes.inlite.ui.Forms', - 'tinymce.themes.inlite.core.Measure', - 'tinymce.themes.inlite.core.Layout', - 'tinymce.themes.inlite.alien.EditorSettings' - ], - function (Tools, Factory, DOMUtils, Toolbar, Forms, Measure, Layout, EditorSettings) { - return function () { - var DEFAULT_TEXT_SELECTION_ITEMS = ['bold', 'italic', '|', 'quicklink', 'h2', 'h3', 'blockquote']; - var DEFAULT_INSERT_TOOLBAR_ITEMS = ['quickimage', 'quicktable']; - var panel, currentRect; - var createToolbars = function (editor, toolbars) { - return Tools.map(toolbars, function (toolbar) { - return Toolbar.create(editor, toolbar.id, toolbar.items); - }); - }; - - var getTextSelectionToolbarItems = function (editor) { - return EditorSettings.getToolbarItemsOr(editor, 'selection_toolbar', DEFAULT_TEXT_SELECTION_ITEMS); - }; - - var getInsertToolbarItems = function (editor) { - return EditorSettings.getToolbarItemsOr(editor, 'insert_toolbar', DEFAULT_INSERT_TOOLBAR_ITEMS); - }; - - var hasToolbarItems = function (toolbar) { - return toolbar.items().length > 0; - }; - - var create = function (editor, toolbars) { - var items = createToolbars(editor, toolbars).concat([ - Toolbar.create(editor, 'text', getTextSelectionToolbarItems(editor)), - Toolbar.create(editor, 'insert', getInsertToolbarItems(editor)), - Forms.createQuickLinkForm(editor, hide) - ]); - - return Factory.create({ - type: 'floatpanel', - role: 'dialog', - classes: 'tinymce tinymce-inline arrow', - ariaLabel: 'Inline toolbar', - layout: 'flex', - direction: 'column', - align: 'stretch', - autohide: false, - autofix: true, - fixed: true, - border: 1, - items: Tools.grep(items, hasToolbarItems), - oncancel: function () { - editor.focus(); + var Menu = FloatPanel.extend({ + Defaults: { + defaultType: 'menuitem', + border: 1, + layout: 'stack', + role: 'application', + bodyRole: 'menu', + ariaRoot: true + }, + init: function (settings) { + var self = this; + settings.autohide = true; + settings.constrainToViewport = true; + if (typeof settings.items === 'function') { + settings.itemsFactory = settings.items; + settings.items = []; + } + if (settings.itemDefaults) { + var items = settings.items; + var i = items.length; + while (i--) { + items[i] = global$4.extend({}, settings.itemDefaults, items[i]); + } + } + self._super(settings); + self.classes.add('menu'); + if (settings.animate && global$1.ie !== 11) { + self.classes.add('animate'); + } + }, + repaint: function () { + this.classes.toggle('menu-align', true); + this._super(); + this.getEl().style.height = ''; + this.getEl('body').style.height = ''; + return this; + }, + cancel: function () { + var self = this; + self.hideAll(); + self.fire('select'); + }, + load: function () { + var self = this; + var time, factory; + function hideThrobber() { + if (self.throbber) { + self.throbber.hide(); + self.throbber = null; + } + } + factory = self.settings.itemsFactory; + if (!factory) { + return; + } + if (!self.throbber) { + self.throbber = new Throbber(self.getEl('body'), true); + if (self.items().length === 0) { + self.throbber.show(); + self.fire('loading'); + } else { + self.throbber.show(100, function () { + self.items().remove(); + self.fire('loading'); + }); + } + self.on('hide close', hideThrobber); + } + self.requestTime = time = new Date().getTime(); + self.settings.itemsFactory(function (items) { + if (items.length === 0) { + self.hide(); + return; + } + if (self.requestTime !== time) { + return; + } + self.getEl().style.width = ''; + self.getEl('body').style.width = ''; + hideThrobber(); + self.items().remove(); + self.getEl('body').innerHTML = ''; + self.add(items); + self.renderNew(); + self.fire('loaded'); + }); + }, + hideAll: function () { + var self = this; + this.find('menuitem').exec('hideMenu'); + return self._super(); + }, + preRender: function () { + var self = this; + self.items().each(function (ctrl) { + var settings = ctrl.settings; + if (settings.icon || settings.image || settings.selectable) { + self._hasIcons = true; + return false; + } + }); + if (self.settings.itemsFactory) { + self.on('postrender', function () { + if (self.settings.itemsFactory) { + self.load(); } }); - }; - - var showPanel = function (panel) { - if (panel) { - panel.show(); + } + self.on('show hide', function (e) { + if (e.control === self) { + if (e.type === 'show') { + global$3.setTimeout(function () { + self.classes.add('in'); + }, 0); + } else { + self.classes.remove('in'); + } } - }; - - var movePanelTo = function (panel, pos) { - panel.moveTo(pos.x, pos.y); - }; - - var togglePositionClass = function (panel, relPos) { - relPos = relPos ? relPos.substr(0, 2) : ''; - - Tools.each({ - t: 'down', - b: 'up', - c: 'center' - }, function (cls, pos) { - panel.classes.toggle('arrow-' + cls, pos === relPos.substr(0, 1)); + }); + return self._super(); + } + }); + + var ListBox = MenuButton.extend({ + init: function (settings) { + var self = this; + var values, selected, selectedText, lastItemCtrl; + function setSelected(menuValues) { + for (var i = 0; i < menuValues.length; i++) { + selected = menuValues[i].selected || settings.value === menuValues[i].value; + if (selected) { + selectedText = selectedText || menuValues[i].text; + self.state.set('value', menuValues[i].value); + return true; + } + if (menuValues[i].menu) { + if (setSelected(menuValues[i].menu)) { + return true; + } + } + } + } + self._super(settings); + settings = self.settings; + self._values = values = settings.values; + if (values) { + if (typeof settings.value !== 'undefined') { + setSelected(values); + } + if (!selected && values.length > 0) { + selectedText = values[0].text; + self.state.set('value', values[0].value); + } + self.state.set('menu', values); + } + self.state.set('text', settings.text || selectedText); + self.classes.add('listbox'); + self.on('select', function (e) { + var ctrl = e.control; + if (lastItemCtrl) { + e.lastControl = lastItemCtrl; + } + if (settings.multiple) { + ctrl.active(!ctrl.active()); + } else { + self.value(e.control.value()); + } + lastItemCtrl = ctrl; + }); + }, + value: function (value) { + if (arguments.length === 0) { + return this.state.get('value'); + } + if (typeof value === 'undefined') { + return this; + } + if (this.settings.values) { + var matchingValues = global$4.grep(this.settings.values, function (a) { + return a.value === value; }); - - if (relPos === 'cr') { - panel.classes.toggle('arrow-left', true); - panel.classes.toggle('arrow-right', false); - } else if (relPos === 'cl') { - panel.classes.toggle('arrow-left', true); - panel.classes.toggle('arrow-right', true); + if (matchingValues.length > 0) { + this.state.set('value', value); + } else if (value === null) { + this.state.set('value', null); + } + } else { + this.state.set('value', value); + } + return this; + }, + bindStates: function () { + var self = this; + function activateMenuItemsByValue(menu, value) { + if (menu instanceof Menu) { + menu.items().each(function (ctrl) { + if (!ctrl.hasMenus()) { + ctrl.active(ctrl.value() === value); + } + }); + } + } + function getSelectedItem(menuValues, value) { + var selectedItem; + if (!menuValues) { + return; + } + for (var i = 0; i < menuValues.length; i++) { + if (menuValues[i].value === value) { + return menuValues[i]; + } + if (menuValues[i].menu) { + selectedItem = getSelectedItem(menuValues[i].menu, value); + if (selectedItem) { + return selectedItem; + } + } + } + } + self.on('show', function (e) { + activateMenuItemsByValue(e.control, self.value()); + }); + self.state.on('change:value', function (e) { + var selectedItem = getSelectedItem(self.state.get('menu'), e.value); + if (selectedItem) { + self.text(selectedItem.text); } else { - Tools.each({ - l: 'left', - r: 'right' - }, function (cls, pos) { - panel.classes.toggle('arrow-' + cls, pos === relPos.substr(1, 1)); + self.text(self.settings.text); + } + }); + return self._super(); + } + }); + + var toggleTextStyle = function (ctrl, state) { + var textStyle = ctrl._textStyle; + if (textStyle) { + var textElm = ctrl.getEl('text'); + textElm.setAttribute('style', textStyle); + if (state) { + textElm.style.color = ''; + textElm.style.backgroundColor = ''; + } + } + }; + var MenuItem = Widget.extend({ + Defaults: { + border: 0, + role: 'menuitem' + }, + init: function (settings) { + var self = this; + var text; + self._super(settings); + settings = self.settings; + self.classes.add('menu-item'); + if (settings.menu) { + self.classes.add('menu-item-expand'); + } + if (settings.preview) { + self.classes.add('menu-item-preview'); + } + text = self.state.get('text'); + if (text === '-' || text === '|') { + self.classes.add('menu-item-sep'); + self.aria('role', 'separator'); + self.state.set('text', '-'); + } + if (settings.selectable) { + self.aria('role', 'menuitemcheckbox'); + self.classes.add('menu-item-checkbox'); + settings.icon = 'selected'; + } + if (!settings.preview && !settings.selectable) { + self.classes.add('menu-item-normal'); + } + self.on('mousedown', function (e) { + e.preventDefault(); + }); + if (settings.menu && !settings.ariaHideMenu) { + self.aria('haspopup', true); + } + }, + hasMenus: function () { + return !!this.settings.menu; + }, + showMenu: function () { + var self = this; + var settings = self.settings; + var menu; + var parent = self.parent(); + parent.items().each(function (ctrl) { + if (ctrl !== self) { + ctrl.hideMenu(); + } + }); + if (settings.menu) { + menu = self.menu; + if (!menu) { + menu = settings.menu; + if (menu.length) { + menu = { + type: 'menu', + items: menu + }; + } else { + menu.type = menu.type || 'menu'; + } + if (parent.settings.itemDefaults) { + menu.itemDefaults = parent.settings.itemDefaults; + } + menu = self.menu = global$11.create(menu).parent(self).renderTo(); + menu.reflow(); + menu.on('cancel', function (e) { + e.stopPropagation(); + self.focus(); + menu.hide(); + }); + menu.on('show hide', function (e) { + if (e.control.items) { + e.control.items().each(function (ctrl) { + ctrl.active(ctrl.settings.selected); + }); + } + }).fire('show'); + menu.on('hide', function (e) { + if (e.control === menu) { + self.classes.remove('selected'); + } }); - } - }; - - var showToolbar = function (panel, id) { - var toolbars = panel.items().filter('#' + id); - - if (toolbars.length > 0) { - toolbars[0].show(); - panel.reflow(); - return true; - } - - return false; - }; - - var repositionPanelAt = function (panel, id, editor, targetRect) { - var contentAreaRect, panelRect, result, userConstainHandler; - - userConstainHandler = EditorSettings.getHandlerOr(editor, 'inline_toolbar_position_handler', Layout.defaultHandler); - contentAreaRect = Measure.getContentAreaRect(editor); - panelRect = DOMUtils.DOM.getRect(panel.getEl()); - - if (id === 'insert') { - result = Layout.calcInsert(targetRect, contentAreaRect, panelRect); + menu.submenu = true; } else { - result = Layout.calc(targetRect, contentAreaRect, panelRect); + menu.show(); } - - if (result) { - panelRect = result.rect; - currentRect = targetRect; - movePanelTo(panel, Layout.userConstrain(userConstainHandler, targetRect, contentAreaRect, panelRect)); - togglePositionClass(panel, result.position); - return true; + menu._parentMenu = parent; + menu.classes.add('menu-sub'); + var rel = menu.testMoveRel(self.getEl(), self.isRtl() ? [ + 'tl-tr', + 'bl-br', + 'tr-tl', + 'br-bl' + ] : [ + 'tr-tl', + 'br-bl', + 'tl-tr', + 'bl-br' + ]); + menu.moveRel(self.getEl(), rel); + menu.rel = rel; + rel = 'menu-sub-' + rel; + menu.classes.remove(menu._lastRel).add(rel); + menu._lastRel = rel; + self.classes.add('selected'); + self.aria('expanded', true); + } + }, + hideMenu: function () { + var self = this; + if (self.menu) { + self.menu.items().each(function (item) { + if (item.hideMenu) { + item.hideMenu(); + } + }); + self.menu.hide(); + self.aria('expanded', false); + } + return self; + }, + renderHtml: function () { + var self = this; + var id = self._id; + var settings = self.settings; + var prefix = self.classPrefix; + var text = self.state.get('text'); + var icon = self.settings.icon, image = '', shortcut = settings.shortcut; + var url = self.encode(settings.url), iconHtml = ''; + function convertShortcut(shortcut) { + var i, value, replace = {}; + if (global$1.mac) { + replace = { + alt: '⌥', + ctrl: '⌘', + shift: '⇧', + meta: '⌘' + }; } else { - return false; - } - }; - - var showPanelAt = function (panel, id, editor, targetRect) { - showPanel(panel); - panel.items().hide(); - - if (!showToolbar(panel, id)) { - hide(panel); - return; + replace = { meta: 'Ctrl' }; } - - if (repositionPanelAt(panel, id, editor, targetRect) === false) { - hide(panel); - } - }; - - var hasFormVisible = function () { - return panel.items().filter('form:visible').length > 0; - }; - - var showForm = function (editor, id) { - if (panel) { - panel.items().hide(); - - if (!showToolbar(panel, id)) { - hide(panel); - return; - } - - var contentAreaRect, panelRect, result, userConstainHandler; - - showPanel(panel); - panel.items().hide(); - showToolbar(panel, id); - - userConstainHandler = EditorSettings.getHandlerOr(editor, 'inline_toolbar_position_handler', Layout.defaultHandler); - contentAreaRect = Measure.getContentAreaRect(editor); - panelRect = DOMUtils.DOM.getRect(panel.getEl()); - - result = Layout.calc(currentRect, contentAreaRect, panelRect); - - if (result) { - panelRect = result.rect; - movePanelTo(panel, Layout.userConstrain(userConstainHandler, currentRect, contentAreaRect, panelRect)); - togglePositionClass(panel, result.position); + shortcut = shortcut.split('+'); + for (i = 0; i < shortcut.length; i++) { + value = replace[shortcut[i].toLowerCase()]; + if (value) { + shortcut[i] = value; } } - }; - - var show = function (editor, id, targetRect, toolbars) { - if (!panel) { - panel = create(editor, toolbars); - panel.renderTo(document.body).reflow().moveTo(targetRect.x, targetRect.y); - editor.nodeChanged(); + return shortcut.join('+'); + } + function escapeRegExp(str) { + return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); + } + function markMatches(text) { + var match = settings.match || ''; + return match ? text.replace(new RegExp(escapeRegExp(match), 'gi'), function (match) { + return '!mce~match[' + match + ']mce~match!'; + }) : text; + } + function boldMatches(text) { + return text.replace(new RegExp(escapeRegExp('!mce~match['), 'g'), '<b>').replace(new RegExp(escapeRegExp(']mce~match!'), 'g'), '</b>'); + } + if (icon) { + self.parent().classes.add('menu-has-icons'); + } + if (settings.image) { + image = ' style="background-image: url(\'' + settings.image + '\')"'; + } + if (shortcut) { + shortcut = convertShortcut(shortcut); + } + icon = prefix + 'ico ' + prefix + 'i-' + (self.settings.icon || 'none'); + iconHtml = text !== '-' ? '<i class="' + icon + '"' + image + '></i>\xA0' : ''; + text = boldMatches(self.encode(markMatches(text))); + url = boldMatches(self.encode(markMatches(url))); + return '<div id="' + id + '" class="' + self.classes + '" tabindex="-1">' + iconHtml + (text !== '-' ? '<span id="' + id + '-text" class="' + prefix + 'text">' + text + '</span>' : '') + (shortcut ? '<div id="' + id + '-shortcut" class="' + prefix + 'menu-shortcut">' + shortcut + '</div>' : '') + (settings.menu ? '<div class="' + prefix + 'caret"></div>' : '') + (url ? '<div class="' + prefix + 'menu-item-link">' + url + '</div>' : '') + '</div>'; + }, + postRender: function () { + var self = this, settings = self.settings; + var textStyle = settings.textStyle; + if (typeof textStyle === 'function') { + textStyle = textStyle.call(this); + } + if (textStyle) { + var textElm = self.getEl('text'); + if (textElm) { + textElm.setAttribute('style', textStyle); + self._textStyle = textStyle; } - - showPanelAt(panel, id, editor, targetRect); - }; - - var reposition = function (editor, id, targetRect) { - if (panel) { - repositionPanelAt(panel, id, editor, targetRect); + } + self.on('mouseenter click', function (e) { + if (e.control === self) { + if (!settings.menu && e.type === 'click') { + self.fire('select'); + global$3.requestAnimationFrame(function () { + self.parent().hideAll(); + }); + } else { + self.showMenu(); + if (e.aria) { + self.menu.focus(true); + } + } } - }; + }); + self._super(); + return self; + }, + hover: function () { + var self = this; + self.parent().items().each(function (ctrl) { + ctrl.classes.remove('selected'); + }); + self.classes.toggle('selected', true); + return self; + }, + active: function (state) { + toggleTextStyle(this, state); + if (typeof state !== 'undefined') { + this.aria('checked', state); + } + return this._super(state); + }, + remove: function () { + this._super(); + if (this.menu) { + this.menu.remove(); + } + } + }); - var hide = function () { - if (panel) { - panel.hide(); + var Radio = Checkbox.extend({ + Defaults: { + classes: 'radio', + role: 'radio' + } + }); + + var ResizeHandle = Widget.extend({ + renderHtml: function () { + var self = this, prefix = self.classPrefix; + self.classes.add('resizehandle'); + if (self.settings.direction === 'both') { + self.classes.add('resizehandle-both'); + } + self.canFocus = false; + return '<div id="' + self._id + '" class="' + self.classes + '">' + '<i class="' + prefix + 'ico ' + prefix + 'i-resize"></i>' + '</div>'; + }, + postRender: function () { + var self = this; + self._super(); + self.resizeDragHelper = new DragHelper(this._id, { + start: function () { + self.fire('ResizeStart'); + }, + drag: function (e) { + if (self.settings.direction !== 'both') { + e.deltaX = 0; + } + self.fire('Resize', e); + }, + stop: function () { + self.fire('ResizeEnd'); } - }; + }); + }, + remove: function () { + if (this.resizeDragHelper) { + this.resizeDragHelper.destroy(); + } + return this._super(); + } + }); - var focus = function () { - if (panel) { - panel.find('toolbar:visible').eq(0).each(function (item) { - item.focus(true); + function createOptions(options) { + var strOptions = ''; + if (options) { + for (var i = 0; i < options.length; i++) { + strOptions += '<option value="' + options[i] + '">' + options[i] + '</option>'; + } + } + return strOptions; + } + var SelectBox = Widget.extend({ + Defaults: { + classes: 'selectbox', + role: 'selectbox', + options: [] + }, + init: function (settings) { + var self = this; + self._super(settings); + if (self.settings.size) { + self.size = self.settings.size; + } + if (self.settings.options) { + self._options = self.settings.options; + } + self.on('keydown', function (e) { + var rootControl; + if (e.keyCode === 13) { + e.preventDefault(); + self.parents().reverse().each(function (ctrl) { + if (ctrl.toJSON) { + rootControl = ctrl; + return false; + } }); + self.fire('submit', { data: rootControl.toJSON() }); } - }; - - var remove = function () { - if (panel) { - panel.remove(); - panel = null; - } - }; - - var inForm = function () { - return panel && panel.visible() && hasFormVisible(); - }; - - return { - show: show, - showForm: showForm, - reposition: reposition, - inForm: inForm, - hide: hide, - focus: focus, - remove: remove - }; - }; - } -); - -/** - * Conversions.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.inlite.file.Conversions', - [ - 'tinymce.core.util.Promise' - ], - function (Promise) { - var blobToBase64 = function (blob) { - return new Promise(function (resolve) { - var reader = new FileReader(); - - reader.onloadend = function () { - resolve(reader.result.split(',')[1]); - }; - - reader.readAsDataURL(blob); }); - }; - - return { - blobToBase64: blobToBase64 - }; - } -); - - - -/** - * Picker.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.inlite.file.Picker', - [ - 'tinymce.core.util.Promise' - ], - function (Promise) { - var pickFile = function () { - return new Promise(function (resolve) { - var fileInput; - - fileInput = document.createElement("input"); - fileInput.type = "file"; - fileInput.style.position = 'fixed'; - fileInput.style.left = 0; - fileInput.style.top = 0; - fileInput.style.opacity = 0.001; - document.body.appendChild(fileInput); - - fileInput.onchange = function (e) { - resolve(Array.prototype.slice.call(e.target.files)); - }; - - fileInput.click(); - fileInput.parentNode.removeChild(fileInput); + }, + options: function (state) { + if (!arguments.length) { + return this.state.get('options'); + } + this.state.set('options', state); + return this; + }, + renderHtml: function () { + var self = this; + var options, size = ''; + options = createOptions(self._options); + if (self.size) { + size = ' size = "' + self.size + '"'; + } + return '<select id="' + self._id + '" class="' + self.classes + '"' + size + '>' + options + '</select>'; + }, + bindStates: function () { + var self = this; + self.state.on('change:options', function (e) { + self.getEl().innerHTML = createOptions(e.value); }); - }; + return self._super(); + } + }); - return { - pickFile: pickFile - }; + function constrain(value, minVal, maxVal) { + if (value < minVal) { + value = minVal; + } + if (value > maxVal) { + value = maxVal; + } + return value; } -); - - - -/** - * Buttons.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.inlite.ui.Buttons', - [ - 'tinymce.themes.inlite.ui.Panel', - 'tinymce.themes.inlite.file.Conversions', - 'tinymce.themes.inlite.file.Picker', - 'tinymce.themes.inlite.core.Actions' - ], - function (Panel, Conversions, Picker, Actions) { - var addHeaderButtons = function (editor) { - var formatBlock = function (name) { - return function () { - Actions.formatBlock(editor, name); + function setAriaProp(el, name, value) { + el.setAttribute('aria-' + name, value); + } + function updateSliderHandle(ctrl, value) { + var maxHandlePos, shortSizeName, sizeName, stylePosName, styleValue, handleEl; + if (ctrl.settings.orientation === 'v') { + stylePosName = 'top'; + sizeName = 'height'; + shortSizeName = 'h'; + } else { + stylePosName = 'left'; + sizeName = 'width'; + shortSizeName = 'w'; + } + handleEl = ctrl.getEl('handle'); + maxHandlePos = (ctrl.layoutRect()[shortSizeName] || 100) - funcs.getSize(handleEl)[sizeName]; + styleValue = maxHandlePos * ((value - ctrl._minValue) / (ctrl._maxValue - ctrl._minValue)) + 'px'; + handleEl.style[stylePosName] = styleValue; + handleEl.style.height = ctrl.layoutRect().h + 'px'; + setAriaProp(handleEl, 'valuenow', value); + setAriaProp(handleEl, 'valuetext', '' + ctrl.settings.previewFilter(value)); + setAriaProp(handleEl, 'valuemin', ctrl._minValue); + setAriaProp(handleEl, 'valuemax', ctrl._maxValue); + } + var Slider = Widget.extend({ + init: function (settings) { + var self = this; + if (!settings.previewFilter) { + settings.previewFilter = function (value) { + return Math.round(value * 100) / 100; }; - }; - - for (var i = 1; i < 6; i++) { - var name = 'h' + i; - - editor.addButton(name, { - text: name.toUpperCase(), - tooltip: 'Heading ' + i, - stateSelector: name, - onclick: formatBlock(name), - onPostRender: function () { - // TODO: Remove this hack that produces bold H1-H6 when we have proper icons - var span = this.getEl().firstChild.firstChild; - span.style.fontWeight = 'bold'; + } + self._super(settings); + self.classes.add('slider'); + if (settings.orientation === 'v') { + self.classes.add('vertical'); + } + self._minValue = $_d02u5u17hjfuw8wey.isNumber(settings.minValue) ? settings.minValue : 0; + self._maxValue = $_d02u5u17hjfuw8wey.isNumber(settings.maxValue) ? settings.maxValue : 100; + self._initValue = self.state.get('value'); + }, + renderHtml: function () { + var self = this, id = self._id, prefix = self.classPrefix; + return '<div id="' + id + '" class="' + self.classes + '">' + '<div id="' + id + '-handle" class="' + prefix + 'slider-handle" role="slider" tabindex="-1"></div>' + '</div>'; + }, + reset: function () { + this.value(this._initValue).repaint(); + }, + postRender: function () { + var self = this; + var minValue, maxValue, screenCordName, stylePosName, sizeName, shortSizeName; + function toFraction(min, max, val) { + return (val + min) / (max - min); + } + function fromFraction(min, max, val) { + return val * (max - min) - min; + } + function handleKeyboard(minValue, maxValue) { + function alter(delta) { + var value; + value = self.value(); + value = fromFraction(minValue, maxValue, toFraction(minValue, maxValue, value) + delta * 0.05); + value = constrain(value, minValue, maxValue); + self.value(value); + self.fire('dragstart', { value: value }); + self.fire('drag', { value: value }); + self.fire('dragend', { value: value }); + } + self.on('keydown', function (e) { + switch (e.keyCode) { + case 37: + case 38: + alter(-1); + break; + case 39: + case 40: + alter(1); + break; } }); } - }; - - var addToEditor = function (editor, panel) { - editor.addButton('quicklink', { - icon: 'link', - tooltip: 'Insert/Edit link', - stateSelector: 'a[href]', - onclick: function () { - panel.showForm(editor, 'quicklink'); - } - }); - - editor.addButton('quickimage', { - icon: 'image', - tooltip: 'Insert image', - onclick: function () { - Picker.pickFile().then(function (files) { - var blob = files[0]; - - Conversions.blobToBase64(blob).then(function (base64) { - Actions.insertBlob(editor, base64, blob); - }); - }); - } + function handleDrag(minValue, maxValue, handleEl) { + var startPos, startHandlePos, maxHandlePos, handlePos, value; + self._dragHelper = new DragHelper(self._id, { + handle: self._id + '-handle', + start: function (e) { + startPos = e[screenCordName]; + startHandlePos = parseInt(self.getEl('handle').style[stylePosName], 10); + maxHandlePos = (self.layoutRect()[shortSizeName] || 100) - funcs.getSize(handleEl)[sizeName]; + self.fire('dragstart', { value: value }); + }, + drag: function (e) { + var delta = e[screenCordName] - startPos; + handlePos = constrain(startHandlePos + delta, 0, maxHandlePos); + handleEl.style[stylePosName] = handlePos + 'px'; + value = minValue + handlePos / maxHandlePos * (maxValue - minValue); + self.value(value); + self.tooltip().text('' + self.settings.previewFilter(value)).show().moveRel(handleEl, 'bc tc'); + self.fire('drag', { value: value }); + }, + stop: function () { + self.tooltip().hide(); + self.fire('dragend', { value: value }); + } + }); + } + minValue = self._minValue; + maxValue = self._maxValue; + if (self.settings.orientation === 'v') { + screenCordName = 'screenY'; + stylePosName = 'top'; + sizeName = 'height'; + shortSizeName = 'h'; + } else { + screenCordName = 'screenX'; + stylePosName = 'left'; + sizeName = 'width'; + shortSizeName = 'w'; + } + self._super(); + handleKeyboard(minValue, maxValue); + handleDrag(minValue, maxValue, self.getEl('handle')); + }, + repaint: function () { + this._super(); + updateSliderHandle(this, this.value()); + }, + bindStates: function () { + var self = this; + self.state.on('change:value', function (e) { + updateSliderHandle(self, e.value); }); - - editor.addButton('quicktable', { - icon: 'table', - tooltip: 'Insert table', - onclick: function () { - panel.hide(); - Actions.insertTable(editor, 2, 2); - } + return self._super(); + } + }); + + var Spacer = Widget.extend({ + renderHtml: function () { + var self = this; + self.classes.add('spacer'); + self.canFocus = false; + return '<div id="' + self._id + '" class="' + self.classes + '"></div>'; + } + }); + + var SplitButton = MenuButton.extend({ + Defaults: { + classes: 'widget btn splitbtn', + role: 'button' + }, + repaint: function () { + var self = this; + var elm = self.getEl(); + var rect = self.layoutRect(); + var mainButtonElm, menuButtonElm; + self._super(); + mainButtonElm = elm.firstChild; + menuButtonElm = elm.lastChild; + global$7(mainButtonElm).css({ + width: rect.w - funcs.getSize(menuButtonElm).width, + height: rect.h - 2 }); - - addHeaderButtons(editor); - }; - - return { - addToEditor: addToEditor - }; - } -); - -/** - * Theme.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.inlite.Theme', - [ - 'tinymce.core.ThemeManager', - 'tinymce.core.ui.Api', - 'tinymce.core.util.Delay', - 'tinymce.themes.inlite.alien.Arr', - 'tinymce.themes.inlite.alien.EditorSettings', - 'tinymce.themes.inlite.core.ElementMatcher', - 'tinymce.themes.inlite.core.Matcher', - 'tinymce.themes.inlite.core.PredicateId', - 'tinymce.themes.inlite.core.SelectionMatcher', - 'tinymce.themes.inlite.core.SkinLoader', - 'tinymce.themes.inlite.ui.Buttons', - 'tinymce.themes.inlite.ui.Panel' - ], - function ( - ThemeManager, Api, Delay, Arr, EditorSettings, ElementMatcher, Matcher, - PredicateId, SelectionMatcher, SkinLoader, Buttons, Panel - ) { - var getSelectionElements = function (editor) { - var node = editor.selection.getNode(); - var elms = editor.dom.getParents(node); - return elms; - }; - - var createToolbar = function (editor, selector, id, items) { - var selectorPredicate = function (elm) { - return editor.dom.is(elm, selector); - }; - - return { - predicate: selectorPredicate, - id: id, - items: items - }; - }; - - var getToolbars = function (editor) { - var contextToolbars = editor.contextToolbars; - - return Arr.flatten([ - contextToolbars ? contextToolbars : [], - createToolbar(editor, 'img', 'image', 'alignleft aligncenter alignright') - ]); - }; - - var findMatchResult = function (editor, toolbars) { - var result, elements, contextToolbarsPredicateIds; - - elements = getSelectionElements(editor); - contextToolbarsPredicateIds = PredicateId.fromContextToolbars(toolbars); - - result = Matcher.match(editor, [ - ElementMatcher.element(elements[0], contextToolbarsPredicateIds), - SelectionMatcher.textSelection('text'), - SelectionMatcher.emptyTextBlock(elements, 'insert'), - ElementMatcher.parent(elements, contextToolbarsPredicateIds) - ]); - - return result && result.rect ? result : null; - }; - - var togglePanel = function (editor, panel) { - var toggle = function () { - var toolbars = getToolbars(editor); - var result = findMatchResult(editor, toolbars); - - if (result) { - panel.show(editor, result.id, result.rect, toolbars); - } else { - panel.hide(); + global$7(menuButtonElm).css({ height: rect.h - 2 }); + return self; + }, + activeMenu: function (state) { + var self = this; + global$7(self.getEl().lastChild).toggleClass(self.classPrefix + 'active', state); + }, + renderHtml: function () { + var self = this; + var id = self._id; + var prefix = self.classPrefix; + var image; + var icon = self.state.get('icon'); + var text = self.state.get('text'); + var settings = self.settings; + var textHtml = '', ariaPressed; + image = settings.image; + if (image) { + icon = 'none'; + if (typeof image !== 'string') { + image = window.getSelection ? image[0] : image[1]; } - }; - - return function () { - if (!editor.removed) { - toggle(); + image = ' style="background-image: url(\'' + image + '\')"'; + } else { + image = ''; + } + icon = settings.icon ? prefix + 'ico ' + prefix + 'i-' + icon : ''; + if (text) { + self.classes.add('btn-has-text'); + textHtml = '<span class="' + prefix + 'txt">' + self.encode(text) + '</span>'; + } + ariaPressed = typeof settings.active === 'boolean' ? ' aria-pressed="' + settings.active + '"' : ''; + return '<div id="' + id + '" class="' + self.classes + '" role="button"' + ariaPressed + ' tabindex="-1">' + '<button type="button" hidefocus="1" tabindex="-1">' + (icon ? '<i class="' + icon + '"' + image + '></i>' : '') + textHtml + '</button>' + '<button type="button" class="' + prefix + 'open" hidefocus="1" tabindex="-1">' + (self._menuBtnText ? (icon ? '\xA0' : '') + self._menuBtnText : '') + ' <i class="' + prefix + 'caret"></i>' + '</button>' + '</div>'; + }, + postRender: function () { + var self = this, onClickHandler = self.settings.onclick; + self.on('click', function (e) { + var node = e.target; + if (e.control === this) { + while (node) { + if (e.aria && e.aria.key !== 'down' || node.nodeName === 'BUTTON' && node.className.indexOf('open') === -1) { + e.stopImmediatePropagation(); + if (onClickHandler) { + onClickHandler.call(this, e); + } + return; + } + node = node.parentNode; + } } - }; - }; - - var repositionPanel = function (editor, panel) { - return function () { - var toolbars = getToolbars(editor); - var result = findMatchResult(editor, toolbars); - - if (result) { - panel.reposition(editor, result.id, result.rect); + }); + delete self.settings.onclick; + return self._super(); + } + }); + + var StackLayout = FlowLayout.extend({ + Defaults: { + containerClass: 'stack-layout', + controlClass: 'stack-layout-item', + endClass: 'break' + }, + isNative: function () { + return true; + } + }); + + var TabPanel = Panel.extend({ + Defaults: { + layout: 'absolute', + defaults: { type: 'panel' } + }, + activateTab: function (idx) { + var activeTabElm; + if (this.activeTabId) { + activeTabElm = this.getEl(this.activeTabId); + global$7(activeTabElm).removeClass(this.classPrefix + 'active'); + activeTabElm.setAttribute('aria-selected', 'false'); + } + this.activeTabId = 't' + idx; + activeTabElm = this.getEl('t' + idx); + activeTabElm.setAttribute('aria-selected', 'true'); + global$7(activeTabElm).addClass(this.classPrefix + 'active'); + this.items()[idx].show().fire('showtab'); + this.reflow(); + this.items().each(function (item, i) { + if (idx !== i) { + item.hide(); } - }; - }; - - var ignoreWhenFormIsVisible = function (editor, panel, f) { - return function () { - if (!editor.removed && !panel.inForm()) { - f(); + }); + }, + renderHtml: function () { + var self = this; + var layout = self._layout; + var tabsHtml = ''; + var prefix = self.classPrefix; + self.preRender(); + layout.preRender(self); + self.items().each(function (ctrl, i) { + var id = self._id + '-t' + i; + ctrl.aria('role', 'tabpanel'); + ctrl.aria('labelledby', id); + tabsHtml += '<div id="' + id + '" class="' + prefix + 'tab" ' + 'unselectable="on" role="tab" aria-controls="' + ctrl._id + '" aria-selected="false" tabIndex="-1">' + self.encode(ctrl.settings.title) + '</div>'; + }); + return '<div id="' + self._id + '" class="' + self.classes + '" hidefocus="1" tabindex="-1">' + '<div id="' + self._id + '-head" class="' + prefix + 'tabs" role="tablist">' + tabsHtml + '</div>' + '<div id="' + self._id + '-body" class="' + self.bodyClasses + '">' + layout.renderHtml(self) + '</div>' + '</div>'; + }, + postRender: function () { + var self = this; + self._super(); + self.settings.activeTab = self.settings.activeTab || 0; + self.activateTab(self.settings.activeTab); + this.on('click', function (e) { + var targetParent = e.target.parentNode; + if (targetParent && targetParent.id === self._id + '-head') { + var i = targetParent.childNodes.length; + while (i--) { + if (targetParent.childNodes[i] === e.target) { + self.activateTab(i); + } + } } + }); + }, + initLayoutRect: function () { + var self = this; + var rect, minW, minH; + minW = funcs.getSize(self.getEl('head')).width; + minW = minW < 0 ? 0 : minW; + minH = 0; + self.items().each(function (item) { + minW = Math.max(minW, item.layoutRect().minW); + minH = Math.max(minH, item.layoutRect().minH); + }); + self.items().each(function (ctrl) { + ctrl.settings.x = 0; + ctrl.settings.y = 0; + ctrl.settings.w = minW; + ctrl.settings.h = minH; + ctrl.layoutRect({ + x: 0, + y: 0, + w: minW, + h: minH + }); + }); + var headH = funcs.getSize(self.getEl('head')).height; + self.settings.minWidth = minW; + self.settings.minHeight = minH + headH; + rect = self._super(); + rect.deltaH += headH; + rect.innerH = rect.h - rect.deltaH; + return rect; + } + }); + + var TextBox = Widget.extend({ + init: function (settings) { + var self = this; + self._super(settings); + self.classes.add('textbox'); + if (settings.multiline) { + self.classes.add('multiline'); + } else { + self.on('keydown', function (e) { + var rootControl; + if (e.keyCode === 13) { + e.preventDefault(); + self.parents().reverse().each(function (ctrl) { + if (ctrl.toJSON) { + rootControl = ctrl; + return false; + } + }); + self.fire('submit', { data: rootControl.toJSON() }); + } + }); + self.on('keyup', function (e) { + self.state.set('value', e.target.value); + }); + } + }, + repaint: function () { + var self = this; + var style, rect, borderBox, borderW, borderH = 0, lastRepaintRect; + style = self.getEl().style; + rect = self._layoutRect; + lastRepaintRect = self._lastRepaintRect || {}; + var doc = document; + if (!self.settings.multiline && doc.all && (!doc.documentMode || doc.documentMode <= 8)) { + style.lineHeight = rect.h - borderH + 'px'; + } + borderBox = self.borderBox; + borderW = borderBox.left + borderBox.right + 8; + borderH = borderBox.top + borderBox.bottom + (self.settings.multiline ? 8 : 0); + if (rect.x !== lastRepaintRect.x) { + style.left = rect.x + 'px'; + lastRepaintRect.x = rect.x; + } + if (rect.y !== lastRepaintRect.y) { + style.top = rect.y + 'px'; + lastRepaintRect.y = rect.y; + } + if (rect.w !== lastRepaintRect.w) { + style.width = rect.w - borderW + 'px'; + lastRepaintRect.w = rect.w; + } + if (rect.h !== lastRepaintRect.h) { + style.height = rect.h - borderH + 'px'; + lastRepaintRect.h = rect.h; + } + self._lastRepaintRect = lastRepaintRect; + self.fire('repaint', {}, false); + return self; + }, + renderHtml: function () { + var self = this; + var settings = self.settings; + var attrs, elm; + attrs = { + id: self._id, + hidefocus: '1' }; - }; - - var bindContextualToolbarsEvents = function (editor, panel) { - var throttledTogglePanel = Delay.throttle(togglePanel(editor, panel), 0); - var throttledTogglePanelWhenNotInForm = Delay.throttle(ignoreWhenFormIsVisible(editor, panel, togglePanel(editor, panel)), 0); - - editor.on('blur hide ObjectResizeStart', panel.hide); - editor.on('click', throttledTogglePanel); - editor.on('nodeChange mouseup', throttledTogglePanelWhenNotInForm); - editor.on('ResizeEditor keyup', throttledTogglePanel); - editor.on('ResizeWindow', repositionPanel(editor, panel)); - editor.on('remove', panel.remove); - - editor.shortcuts.add('Alt+F10', '', panel.focus); - }; - - var overrideLinkShortcut = function (editor, panel) { - editor.shortcuts.remove('meta+k'); - editor.shortcuts.add('meta+k', '', function () { - var toolbars = getToolbars(editor); - var result = result = Matcher.match(editor, [ - SelectionMatcher.textSelection('quicklink') - ]); - - if (result) { - panel.show(editor, result.id, result.rect, toolbars); + global$4.each([ + 'rows', + 'spellcheck', + 'maxLength', + 'size', + 'readonly', + 'min', + 'max', + 'step', + 'list', + 'pattern', + 'placeholder', + 'required', + 'multiple' + ], function (name) { + attrs[name] = settings[name]; + }); + if (self.disabled()) { + attrs.disabled = 'disabled'; + } + if (settings.subtype) { + attrs.type = settings.subtype; + } + elm = funcs.create(settings.multiline ? 'textarea' : 'input', attrs); + elm.value = self.state.get('value'); + elm.className = self.classes; + return elm.outerHTML; + }, + value: function (value) { + if (arguments.length) { + this.state.set('value', value); + return this; + } + if (this.state.get('rendered')) { + this.state.set('value', this.getEl().value); + } + return this.state.get('value'); + }, + postRender: function () { + var self = this; + self.getEl().value = self.state.get('value'); + self._super(); + self.$el.on('change', function (e) { + self.state.set('value', e.target.value); + self.fire('change', e); + }); + }, + bindStates: function () { + var self = this; + self.state.on('change:value', function (e) { + if (self.getEl().value !== e.value) { + self.getEl().value = e.value; } }); - }; - - var renderInlineUI = function (editor, panel) { - SkinLoader.load(editor, function () { - bindContextualToolbarsEvents(editor, panel); - overrideLinkShortcut(editor, panel); + self.state.on('change:disabled', function (e) { + self.getEl().disabled = e.value; }); + return self._super(); + }, + remove: function () { + this.$el.off(); + this._super(); + } + }); - return {}; - }; - - var fail = function (message) { - throw new Error(message); + var getApi = function () { + return { + Selector: Selector, + Collection: Collection$2, + ReflowQueue: $_13g7tw17vjfuw8wgk, + Control: Control$1, + Factory: global$11, + KeyboardNavigation: KeyboardNavigation, + Container: Container, + DragHelper: DragHelper, + Scrollable: $_7kg51q189jfuw8wiq, + Panel: Panel, + Movable: $_cn53y617xjfuw8wgp, + Resizable: $_f8jegf18ajfuw8wit, + FloatPanel: FloatPanel, + Window: Window, + MessageBox: MessageBox, + Tooltip: Tooltip, + Widget: Widget, + Progress: Progress, + Notification: Notification, + Layout: Layout$1, + AbsoluteLayout: AbsoluteLayout, + Button: Button, + ButtonGroup: ButtonGroup, + Checkbox: Checkbox, + ComboBox: ComboBox, + ColorBox: ColorBox, + PanelButton: PanelButton, + ColorButton: ColorButton, + ColorPicker: ColorPicker, + Path: Path, + ElementPath: ElementPath, + FormItem: FormItem, + Form: Form, + FieldSet: FieldSet, + FilePicker: FilePicker, + FitLayout: FitLayout, + FlexLayout: FlexLayout, + FlowLayout: FlowLayout, + FormatControls: $_5jc0r41adjfuw8wpt, + GridLayout: GridLayout, + Iframe: Iframe, + InfoBox: InfoBox, + Label: Label, + Toolbar: Toolbar$1, + MenuBar: MenuBar, + MenuButton: MenuButton, + MenuItem: MenuItem, + Throbber: Throbber, + Menu: Menu, + ListBox: ListBox, + Radio: Radio, + ResizeHandle: ResizeHandle, + SelectBox: SelectBox, + Slider: Slider, + Spacer: Spacer, + SplitButton: SplitButton, + StackLayout: StackLayout, + TabPanel: TabPanel, + TextBox: TextBox, + DropZone: DropZone, + BrowseButton: BrowseButton }; - - ThemeManager.add('inlite', function (editor) { - var panel = new Panel(); - - Buttons.addToEditor(editor, panel); - - var renderUI = function () { - return editor.inline ? renderInlineUI(editor, panel) : fail('inlite theme only supports inline mode.'); - }; - - return { - renderUI: renderUI - }; + }; + var appendTo = function (target) { + if (target.ui) { + global$4.each(getApi(), function (ref, key) { + target.ui[key] = ref; + }); + } else { + target.ui = getApi(); + } + }; + var registerToFactory = function () { + global$4.each(getApi(), function (ref, key) { + global$11.add(key, ref); }); + }; + var Api = { + appendTo: appendTo, + registerToFactory: registerToFactory + }; - Api.appendTo(window.tinymce ? window.tinymce : {}); - - return function () { }; + Api.registerToFactory(); + Api.appendTo(window.tinymce ? window.tinymce : {}); + global.add('inlite', function (editor) { + var panel = create$3(); + $_5jc0r41adjfuw8wpt.setup(editor); + $_cb0m4418cjfuw8wiy.addToEditor(editor, panel); + return $_5lg8ed16sjfuw8wdm.get(editor, panel); + }); + function Theme () { } -); -dem('tinymce.themes.inlite.Theme')(); + return Theme; + +}()); })(); diff --git a/wp-includes/js/tinymce/themes/inlite/theme.min.js b/wp-includes/js/tinymce/themes/inlite/theme.min.js index 86a50514e..9a22f5c3b 100644 --- a/wp-includes/js/tinymce/themes/inlite/theme.min.js +++ b/wp-includes/js/tinymce/themes/inlite/theme.min.js @@ -1 +1 @@ -!function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("d",tinymce.util.Tools.resolve),g("1",["d"],function(a){return a("tinymce.ThemeManager")}),g("2",["d"],function(a){return a("tinymce.ui.Api")}),g("3",["d"],function(a){return a("tinymce.util.Delay")}),g("4",[],function(){var a=function(b){return b.reduce(function(b,c){return Array.isArray(c)?b.concat(a(c)):b.concat(c)},[])};return{flatten:a}}),g("e",[],function(){var a=function(a){return function(b){return typeof b===a}},b=function(a){return Array.isArray(a)},c=function(a){return null===a},d=function(a){return function(d){return!c(d)&&!b(d)&&a(d)}};return{isString:a("string"),isNumber:a("number"),isBoolean:a("boolean"),isFunction:a("function"),isObject:d(a("object")),isNull:c,isArray:b}}),g("5",["e"],function(a){var b=function(a,b){if(b(a))return!0;throw new Error("Default value doesn't match requested type.")},c=function(a){return function(c,d,e){var f=c.settings;return b(e,a),d in f&&a(f[d])?f[d]:e}},d=function(a,b){return a.split(b).filter(function(a){return a.length>0})},e=function(b,c){var e=function(a){return"string"==typeof a?d(a,/[ ,]/):a},f=function(a,b){return a===!1?[]:b};return a.isArray(b)?b:a.isString(b)?e(b):a.isBoolean(b)?f(b,c):c},f=function(a){return function(c,d,f){var g=d in c.settings?c.settings[d]:f;return b(f,a),e(g,f)}};return{getStringOr:c(a.isString),getBoolOr:c(a.isBoolean),getNumberOr:c(a.isNumber),getHandlerOr:c(a.isFunction),getToolbarItemsOr:f(a.isArray)}}),g("7",[],function(){var a=function(a,b){return{id:a,rect:b}},b=function(a,b){for(var c=0;c<b.length;c++){var d=b[c],e=d(a);if(e)return e}return null};return{match:b,result:a}}),g("i",["d"],function(a){return a("tinymce.dom.DOMUtils")}),g("q",[],function(){var a=function(a){return{x:a.left,y:a.top,w:a.width,h:a.height}},b=function(a){return{left:a.x,top:a.y,width:a.w,height:a.h,right:a.x+a.w,bottom:a.y+a.h}};return{fromClientRect:a,toClientRect:b}}),g("f",["i","q"],function(a,b){var c=function(b){var c=a.DOM.getViewPort();return{x:b.x+c.x,y:b.y+c.y,w:b.w,h:b.h}},d=function(a){var b=a.getBoundingClientRect();return c({x:b.left,y:b.top,w:Math.max(a.clientWidth,a.offsetWidth),h:Math.max(a.clientHeight,a.offsetHeight)})},e=function(a,b){return d(b)},f=function(a){return d(a.getElement().ownerDocument.body)},g=function(a){return d(a.getContentAreaContainer()||a.getBody())},h=function(a){var d=a.selection.getBoundingClientRect();return d?c(b.fromClientRect(d)):null};return{getElementRect:e,getPageAreaRect:f,getContentAreaRect:g,getSelectionRect:h}}),g("6",["7","f"],function(a,b){var c=function(c,d){return function(e){for(var f=0;f<d.length;f++)if(d[f].predicate(c))return a.result(d[f].id,b.getElementRect(e,c));return null}},d=function(c,d){return function(e){for(var f=0;f<c.length;f++)for(var g=0;g<d.length;g++)if(d[g].predicate(c[f]))return a.result(d[g].id,b.getElementRect(e,c[f]));return null}};return{element:c,parent:d}}),g("g",["d"],function(a){return a("tinymce.util.Tools")}),g("8",["g"],function(a){var b=function(a,b){return{id:a,predicate:b}},c=function(c){return a.map(c,function(a){return b(a.id,a.predicate)})};return{create:b,fromContextToolbars:c}}),g("9",["7","f"],function(a,b){var c=function(c){return function(d){return d.selection.isCollapsed()?null:a.result(c,b.getSelectionRect(d))}},d=function(c,d){return function(e){var f,g=e.schema.getTextBlockElements();for(f=0;f<c.length;f++)if("TABLE"===c[f].nodeName)return null;for(f=0;f<c.length;f++)if(c[f].nodeName in g)return e.dom.isEmpty(c[f])?a.result(d,b.getSelectionRect(e)):null;return null}};return{textSelection:c,emptyTextBlock:d}}),g("h",["d"],function(a){return a("tinymce.EditorManager")}),g("a",["h","i"],function(a,b){var c=function(a,b){var c=function(){a._skinLoaded=!0,a.fire("SkinLoaded"),b()};a.initialized?c():a.on("init",c)},d=function(b){var c=a.baseURL+"/skins/";return b?c+b:c+"lightgray"},e=function(a,b){return a.documentBaseURI.toAbsolute(b)},f=function(a,f){var g=a.settings,h=g.skin_url?e(a,g.skin_url):d(g.skin),i=function(){c(a,f)};b.DOM.styleSheetLoader.load(h+"/skin.min.css",i),a.contentCSS.push(h+"/content.inline.min.css")};return{load:f}}),g("j",["d"],function(a){return a("tinymce.ui.Factory")}),g("k",["g","j","e"],function(a,b,c){var d=function(a,b){var c=function(a,b){return{selector:a,handler:b}},d=function(a){b.active(a)},e=function(a){b.disabled(a)};return b.settings.stateSelector?c(b.settings.stateSelector,d):b.settings.disabledStateSelector?c(b.settings.disabledStateSelector,e):null},e=function(a,b,c){return function(){var e=d(b,c);null!==e&&a.selection.selectorChanged(e.selector,e.handler)}},f=function(a){return c.isArray(a)?a:c.isString(a)?a.split(/[ ,]/):[]},g=function(c,d,g){var h,i=[];if(g)return a.each(f(g),function(a){var d;"|"==a?h=null:c.buttons[a]&&(h||(h={type:"buttongroup",items:[]},i.push(h)),d=a,a=c.buttons[d],"function"==typeof a&&(a=a()),a.type=a.type||"button",a=b.create(a),a.on("postRender",e(c,d,a)),h.items.push(a))}),b.create({type:"toolbar",layout:"flow",name:d,items:i})};return{create:g}}),g("r",["d"],function(a){return a("tinymce.util.Promise")}),g("s",[],function(){var a=0,b=function(){var a=function(){return Math.round(4294967295*Math.random()).toString(36)};return"s"+Date.now().toString(36)+a()+a()+a()},c=function(c){return c+a++ +b()};return{uuid:c}}),g("w",[],function(){var a=function(a,b){function c(c){var e,f,g;f=b[c?"startContainer":"endContainer"],g=b[c?"startOffset":"endOffset"],1==f.nodeType&&(e=a.create("span",{"data-mce-type":"bookmark"}),f.hasChildNodes()?(g=Math.min(g,f.childNodes.length-1),c?f.insertBefore(e,f.childNodes[g]):a.insertAfter(e,f.childNodes[g])):f.appendChild(e),f=e,g=0),d[c?"startContainer":"endContainer"]=f,d[c?"startOffset":"endOffset"]=g}var d={};return c(!0),b.collapsed||c(),d},b=function(a,b){function c(c){function d(a){for(var b=a.parentNode.firstChild,c=0;b;){if(b==a)return c;1==b.nodeType&&"bookmark"==b.getAttribute("data-mce-type")||c++,b=b.nextSibling}return-1}var e,f,g;e=g=b[c?"startContainer":"endContainer"],f=b[c?"startOffset":"endOffset"],e&&(1==e.nodeType&&(f=d(e),e=e.parentNode,a.remove(g)),b[c?"startContainer":"endContainer"]=e,b[c?"startOffset":"endOffset"]=f)}c(!0),c();var d=a.createRng();return d.setStart(b.startContainer,b.startOffset),b.endContainer&&d.setEnd(b.endContainer,b.endOffset),d};return{create:a,resolve:b}}),g("x",["d"],function(a){return a("tinymce.dom.TreeWalker")}),g("y",["d"],function(a){return a("tinymce.dom.RangeUtils")}),g("t",["w","g","x","y"],function(a,b,c,d){var e=function(a,b,d){var e,f,g=[];for(e=new c(b,a),f=b;f&&(1===f.nodeType&&g.push(f),f!==d);f=e.next());return g},f=function(c,d){var e,f,g;f=c.dom,g=c.selection,e=a.create(f,g.getRng()),b.each(d,function(a){c.dom.remove(a,!0)}),g.setRng(a.resolve(f,e))},g=function(a){return"A"===a.nodeName&&a.hasAttribute("href")},h=function(a,b){var c=a.getParent(b,g);return c?c:b},i=function(a){var c,f,i,j,k,l,m;return k=a.selection,l=a.dom,m=k.getRng(),c=h(l,d.getNode(m.startContainer,m.startOffset)),f=d.getNode(m.endContainer,m.endOffset),i=a.getBody(),j=b.grep(e(i,c,f),g)},j=function(a){f(a,i(a))};return{unlinkSelection:j}}),g("p",["s","t"],function(a,b){var c=function(a,b){var c,d,e;for(e='<table data-mce-id="mce" style="width: 100%">',e+="<tbody>",d=0;d<b;d++){for(e+="<tr>",c=0;c<a;c++)e+="<td><br></td>";e+="</tr>"}return e+="</tbody>",e+="</table>"},d=function(a){var b=a.dom.select("*[data-mce-id]");return b[0]},e=function(a,b,e){a.undoManager.transact(function(){var f,g;a.insertContent(c(b,e)),f=d(a),f.removeAttribute("data-mce-id"),g=a.dom.select("td,th",f),a.selection.setCursorLocation(g[0],0)})},f=function(a,b){a.execCommand("FormatBlock",!1,b)},g=function(b,c,d){var e,f;e=b.editorUpload.blobCache,f=e.create(a.uuid("mceu"),d,c),e.add(f),b.insertContent(b.dom.createHTML("img",{src:f.blobUri()}))},h=function(a){a.selection.collapse(!1)},i=function(a){a.focus(),b.unlinkSelection(a),h(a)},j=function(a,b,c){a.focus(),a.dom.setAttrib(b,"href",c),h(a)},k=function(a,b){a.execCommand("mceInsertLink",!1,{href:b}),h(a)},l=function(a,b){var c=a.dom.getParent(a.selection.getStart(),"a[href]");c?j(a,c,b):k(a,b)},m=function(a,b){0===b.trim().length?i(a):l(a,b)};return{insertTable:e,formatBlock:f,insertBlob:g,createLink:m,unlink:i}}),g("u",[],function(){var a=function(a){return/^www\.|\.(com|org|edu|gov|uk|net|ca|de|jp|fr|au|us|ru|ch|it|nl|se|no|es|mil)$/i.test(a.trim())},b=function(a){return/^https?:\/\//.test(a.trim())};return{isDomainLike:a,isAbsolute:b}}),g("l",["g","j","r","p","u"],function(a,b,c,d,e){var f=function(a){a.find("textbox").eq(0).each(function(a){a.focus()})},g=function(c,d){var e=b.create(a.extend({type:"form",layout:"flex",direction:"row",padding:5,name:c,spacing:3},d));return e.on("show",function(){f(e)}),e},h=function(a,b){return b?a.show():a.hide()},i=function(a,b){return new c(function(c){a.windowManager.confirm("The URL you entered seems to be an external link. Do you want to add the required http:// prefix?",function(a){var d=a===!0?"http://"+b:b;c(d)})})},j=function(a,b){return!e.isAbsolute(b)&&e.isDomainLike(b)?i(a,b):c.resolve(b)},k=function(a,b){var c={},e=function(){a.focus(),d.unlink(a),b()},f=function(a){var b=a.meta;b&&b.attach&&(c={href:this.value(),attach:b.attach})},i=function(b){if(b.control===this){var c,d="";c=a.dom.getParent(a.selection.getStart(),"a[href]"),c&&(d=a.dom.getAttrib(c,"href")),this.fromJSON({linkurl:d}),h(this.find("#unlink"),c),this.find("#linkurl")[0].focus()}};return g("quicklink",{items:[{type:"button",name:"unlink",icon:"unlink",onclick:e,tooltip:"Remove link"},{type:"filepicker",name:"linkurl",placeholder:"Paste or type a link",filetype:"file",onchange:f},{type:"button",icon:"checkmark",subtype:"primary",tooltip:"Ok",onclick:"submit"}],onshow:i,onsubmit:function(e){j(a,e.data.linkurl).then(function(e){a.undoManager.transact(function(){e===c.href&&(c.attach(),c={}),d.createLink(a,e)}),b()})}})};return{createQuickLinkForm:k}}),g("v",["d"],function(a){return a("tinymce.geom.Rect")}),g("m",["v","q"],function(a,b){var c=function(a,b){return{rect:a,position:b}},d=function(a,b){return{x:b.x,y:b.y,w:a.w,h:a.h}},e=function(b,e,f,g,h){var i,j,k,l={x:g.x,y:g.y,w:g.w+(g.w<h.w+f.w?h.w:0),h:g.h+(g.h<h.h+f.h?h.h:0)};return i=a.findBestRelativePosition(h,f,l,b),f=a.clamp(f,l),i?(j=a.relativePosition(h,f,i),k=d(h,j),c(k,i)):(f=a.intersect(l,f),f?(i=a.findBestRelativePosition(h,f,l,e))?(j=a.relativePosition(h,f,i),k=d(h,j),c(k,i)):(k=d(h,f),c(k,i)):null)},f=function(a,b,c){return e(["cr-cl","cl-cr"],["bc-tc","bl-tl","br-tr"],a,b,c)},g=function(a,b,c){return e(["tc-bc","bc-tc","tl-bl","bl-tl","tr-br","br-tr","cr-cl","cl-cr"],["bc-tc","bl-tl","br-tr","cr-cl"],a,b,c)},h=function(a,c,d,e){var f;return"function"==typeof a?(f=a({elementRect:b.toClientRect(c),contentAreaRect:b.toClientRect(d),panelRect:b.toClientRect(e)}),b.fromClientRect(f)):e},i=function(a){return a.panelRect};return{calcInsert:f,calc:g,userConstrain:h,defaultHandler:i}}),g("c",["g","j","i","k","l","f","m","5"],function(a,b,c,d,e,f,g,h){return function(){var i,j,k=["bold","italic","|","quicklink","h2","h3","blockquote"],l=["quickimage","quicktable"],m=function(b,c){return a.map(c,function(a){return d.create(b,a.id,a.items)})},n=function(a){return h.getToolbarItemsOr(a,"selection_toolbar",k)},o=function(a){return h.getToolbarItemsOr(a,"insert_toolbar",l)},p=function(a){return a.items().length>0},q=function(c,f){var g=m(c,f).concat([d.create(c,"text",n(c)),d.create(c,"insert",o(c)),e.createQuickLinkForm(c,B)]);return b.create({type:"floatpanel",role:"dialog",classes:"tinymce tinymce-inline arrow",ariaLabel:"Inline toolbar",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:!0,border:1,items:a.grep(g,p),oncancel:function(){c.focus()}})},r=function(a){a&&a.show()},s=function(a,b){a.moveTo(b.x,b.y)},t=function(b,c){c=c?c.substr(0,2):"",a.each({t:"down",b:"up",c:"center"},function(a,d){b.classes.toggle("arrow-"+a,d===c.substr(0,1))}),"cr"===c?(b.classes.toggle("arrow-left",!0),b.classes.toggle("arrow-right",!1)):"cl"===c?(b.classes.toggle("arrow-left",!0),b.classes.toggle("arrow-right",!0)):a.each({l:"left",r:"right"},function(a,d){b.classes.toggle("arrow-"+a,d===c.substr(1,1))})},u=function(a,b){var c=a.items().filter("#"+b);return c.length>0&&(c[0].show(),a.reflow(),!0)},v=function(a,b,d,e){var i,k,l,m;return m=h.getHandlerOr(d,"inline_toolbar_position_handler",g.defaultHandler),i=f.getContentAreaRect(d),k=c.DOM.getRect(a.getEl()),l="insert"===b?g.calcInsert(e,i,k):g.calc(e,i,k),!!l&&(k=l.rect,j=e,s(a,g.userConstrain(m,e,i,k)),t(a,l.position),!0)},w=function(a,b,c,d){return r(a),a.items().hide(),u(a,b)?void(v(a,b,c,d)===!1&&B(a)):void B(a)},x=function(){return i.items().filter("form:visible").length>0},y=function(a,b){if(i){if(i.items().hide(),!u(i,b))return void B(i);var d,e,k,l;r(i),i.items().hide(),u(i,b),l=h.getHandlerOr(a,"inline_toolbar_position_handler",g.defaultHandler),d=f.getContentAreaRect(a),e=c.DOM.getRect(i.getEl()),k=g.calc(j,d,e),k&&(e=k.rect,s(i,g.userConstrain(l,j,d,e)),t(i,k.position))}},z=function(a,b,c,d){i||(i=q(a,d),i.renderTo(document.body).reflow().moveTo(c.x,c.y),a.nodeChanged()),w(i,b,a,c)},A=function(a,b,c){i&&v(i,b,a,c)},B=function(){i&&i.hide()},C=function(){i&&i.find("toolbar:visible").eq(0).each(function(a){a.focus(!0)})},D=function(){i&&(i.remove(),i=null)},E=function(){return i&&i.visible()&&x()};return{show:z,showForm:y,reposition:A,inForm:E,hide:B,focus:C,remove:D}}}),g("n",["r"],function(a){var b=function(b){return new a(function(a){var c=new FileReader;c.onloadend=function(){a(c.result.split(",")[1])},c.readAsDataURL(b)})};return{blobToBase64:b}}),g("o",["r"],function(a){var b=function(){return new a(function(a){var b;b=document.createElement("input"),b.type="file",b.style.position="fixed",b.style.left=0,b.style.top=0,b.style.opacity=.001,document.body.appendChild(b),b.onchange=function(b){a(Array.prototype.slice.call(b.target.files))},b.click(),b.parentNode.removeChild(b)})};return{pickFile:b}}),g("b",["c","n","o","p"],function(a,b,c,d){var e=function(a){for(var b=function(b){return function(){d.formatBlock(a,b)}},c=1;c<6;c++){var e="h"+c;a.addButton(e,{text:e.toUpperCase(),tooltip:"Heading "+c,stateSelector:e,onclick:b(e),onPostRender:function(){var a=this.getEl().firstChild.firstChild;a.style.fontWeight="bold"}})}},f=function(a,f){a.addButton("quicklink",{icon:"link",tooltip:"Insert/Edit link",stateSelector:"a[href]",onclick:function(){f.showForm(a,"quicklink")}}),a.addButton("quickimage",{icon:"image",tooltip:"Insert image",onclick:function(){c.pickFile().then(function(c){var e=c[0];b.blobToBase64(e).then(function(b){d.insertBlob(a,b,e)})})}}),a.addButton("quicktable",{icon:"table",tooltip:"Insert table",onclick:function(){f.hide(),d.insertTable(a,2,2)}}),e(a)};return{addToEditor:f}}),g("0",["1","2","3","4","5","6","7","8","9","a","b","c"],function(a,b,c,d,e,f,g,h,i,j,k,l){var m=function(a){var b=a.selection.getNode(),c=a.dom.getParents(b);return c},n=function(a,b,c,d){var e=function(c){return a.dom.is(c,b)};return{predicate:e,id:c,items:d}},o=function(a){var b=a.contextToolbars;return d.flatten([b?b:[],n(a,"img","image","alignleft aligncenter alignright")])},p=function(a,b){var c,d,e;return d=m(a),e=h.fromContextToolbars(b),c=g.match(a,[f.element(d[0],e),i.textSelection("text"),i.emptyTextBlock(d,"insert"),f.parent(d,e)]),c&&c.rect?c:null},q=function(a,b){var c=function(){var c=o(a),d=p(a,c);d?b.show(a,d.id,d.rect,c):b.hide()};return function(){a.removed||c()}},r=function(a,b){return function(){var c=o(a),d=p(a,c);d&&b.reposition(a,d.id,d.rect)}},s=function(a,b,c){return function(){a.removed||b.inForm()||c()}},t=function(a,b){var d=c.throttle(q(a,b),0),e=c.throttle(s(a,b,q(a,b)),0);a.on("blur hide ObjectResizeStart",b.hide),a.on("click",d),a.on("nodeChange mouseup",e),a.on("ResizeEditor keyup",d),a.on("ResizeWindow",r(a,b)),a.on("remove",b.remove),a.shortcuts.add("Alt+F10","",b.focus)},u=function(a,b){a.shortcuts.remove("meta+k"),a.shortcuts.add("meta+k","",function(){var c=o(a),d=d=g.match(a,[i.textSelection("quicklink")]);d&&b.show(a,d.id,d.rect,c)})},v=function(a,b){return j.load(a,function(){t(a,b),u(a,b)}),{}},w=function(a){throw new Error(a)};return a.add("inlite",function(a){var b=new l;k.addToEditor(a,b);var c=function(){return a.inline?v(a,b):w("inlite theme only supports inline mode.")};return{renderUI:c}}),b.appendTo(window.tinymce?window.tinymce:{}),function(){}}),d("0")()}(); \ No newline at end of file +!function(){"use strict";var u,t,e,n,i,r,o=tinymce.util.Tools.resolve("tinymce.ThemeManager"),h=tinymce.util.Tools.resolve("tinymce.Env"),v=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),c=tinymce.util.Tools.resolve("tinymce.util.Delay"),s=function(t){return t.reduce(function(t,e){return Array.isArray(e)?t.concat(s(e)):t.concat(e)},[])},a={flatten:s},l=function(t,e){for(var n=0;n<e.length;n++){var i=(0,e[n])(t);if(i)return i}return null},d=function(t,e){return{id:t,rect:e}},f=function(t){return{x:t.left,y:t.top,w:t.width,h:t.height}},m=function(t){return{left:t.x,top:t.y,width:t.w,height:t.h,right:t.x+t.w,bottom:t.y+t.h}},g=function(t){var e=v.DOM.getViewPort();return{x:t.x+e.x,y:t.y+e.y,w:t.w,h:t.h}},p=function(t){var e=t.getBoundingClientRect();return g({x:e.left,y:e.top,w:Math.max(t.clientWidth,t.offsetWidth),h:Math.max(t.clientHeight,t.offsetHeight)})},y=function(t,e){return p(e)},b=function(t){return p(t.getContentAreaContainer()||t.getBody())},x=function(t){var e=t.selection.getBoundingClientRect();return e?g(f(e)):null},w=function(n,i){return function(t){for(var e=0;e<i.length;e++)if(i[e].predicate(n))return d(i[e].id,y(t,n));return null}},_=function(i,r){return function(t){for(var e=0;e<i.length;e++)for(var n=0;n<r.length;n++)if(r[n].predicate(i[e]))return d(r[n].id,y(t,i[e]));return null}},R=tinymce.util.Tools.resolve("tinymce.util.Tools"),C=function(t,e){return{id:t,predicate:e}},k=function(t){return R.map(t,function(t){return C(t.id,t.predicate)})},E=function(e){return function(t){return t.selection.isCollapsed()?null:d(e,x(t))}},H=function(i,r){return function(t){var e,n=t.schema.getTextBlockElements();for(e=0;e<i.length;e++)if("TABLE"===i[e].nodeName)return null;for(e=0;e<i.length;e++)if(i[e].nodeName in n)return t.dom.isEmpty(i[e])?d(r,x(t)):null;return null}},S=function(t){t.fire("SkinLoaded")},M=function(t){return t.fire("BeforeRenderUI")},T=tinymce.util.Tools.resolve("tinymce.EditorManager"),W=function(e){return function(t){return typeof t===e}},P=function(t){return Array.isArray(t)},N=function(t){return W("string")(t)},O=function(t){return W("number")(t)},D=function(t){return W("boolean")(t)},A=function(t){return W("function")(t)},B=(W("object"),P),L=function(t,e){if(e(t))return!0;throw new Error("Default value doesn't match requested type.")},I=function(r){return function(t,e,n){var i=t.settings;return L(n,r),e in i&&r(i[e])?i[e]:n}},z={getStringOr:I(N),getBoolOr:I(D),getNumberOr:I(O),getHandlerOr:I(A),getToolbarItemsOr:(u=B,function(t,e,n){var i,r,o,s,a,l=e in t.settings?t.settings[e]:n;return L(n,u),r=n,B(i=l)?i:N(i)?"string"==typeof(s=i)?(a=/[ ,]/,s.split(a).filter(function(t){return 0<t.length})):s:D(i)?(o=r,!1===i?[]:o):r})},F=tinymce.util.Tools.resolve("tinymce.geom.Rect"),V=function(t,e){return{rect:t,position:e}},q=function(t,e){return{x:e.x,y:e.y,w:t.w,h:t.h}},U=function(t,e,n,i,r){var o,s,a,l={x:i.x,y:i.y,w:i.w+(i.w<r.w+n.w?r.w:0),h:i.h+(i.h<r.h+n.h?r.h:0)};return o=F.findBestRelativePosition(r,n,l,t),n=F.clamp(n,l),o?(s=F.relativePosition(r,n,o),a=q(r,s),V(a,o)):(n=F.intersect(l,n))?((o=F.findBestRelativePosition(r,n,l,e))?(s=F.relativePosition(r,n,o),a=q(r,s)):a=q(r,n),V(a,o)):null},j=function(t,e,n){return U(["cr-cl","cl-cr"],["bc-tc","bl-tl","br-tr"],t,e,n)},$=function(t,e,n){return U(["tc-bc","bc-tc","tl-bl","bl-tl","tr-br","br-tr","cr-cl","cl-cr"],["bc-tc","bl-tl","br-tr","cr-cl"],t,e,n)},Y=function(t,e,n,i){var r;return"function"==typeof t?(r=t({elementRect:m(e),contentAreaRect:m(n),panelRect:m(i)}),f(r)):i},X=function(t){return t.panelRect},J=function(t){return z.getToolbarItemsOr(t,"selection_toolbar",["bold","italic","|","quicklink","h2","h3","blockquote"])},G=function(t){return z.getToolbarItemsOr(t,"insert_toolbar",["quickimage","quicktable"])},K=function(t){return z.getHandlerOr(t,"inline_toolbar_position_handler",X)},Z=function(t){var e,n,i,r,o=t.settings;return o.skin_url?(i=t,r=o.skin_url,i.documentBaseURI.toAbsolute(r)):(e=o.skin,n=T.baseURL+"/skins/",e?n+e:n+"lightgray")},Q=function(t){return!1===t.settings.skin},tt=function(i,r){var t=Z(i),e=function(){var t,e,n;e=r,n=function(){t._skinLoaded=!0,S(t),e()},(t=i).initialized?n():t.on("init",n)};Q(i)?e():(v.DOM.styleSheetLoader.load(t+"/skin.min.css",e),i.contentCSS.push(t+"/content.inline.min.css"))},et=function(t){var e,n,i,r,o=t.contextToolbars;return a.flatten([o||[],(e=t,n="img",i="image",r="alignleft aligncenter alignright",{predicate:function(t){return e.dom.is(t,n)},id:i,items:r})])},nt=function(t,e){var n,i,r,o,s;return s=(o=t).selection.getNode(),i=o.dom.getParents(s,"*"),r=k(e),(n=l(t,[w(i[0],r),E("text"),H(i,"insert"),_(i,r)]))&&n.rect?n:null},it=function(i,r){return function(){var t,e,n;i.removed||(n=i,document.activeElement!==n.getBody())||(t=et(i),(e=nt(i,t))?r.show(i,e.id,e.rect,t):r.hide())}},rt=function(t,e){var n,i,r,o,s,a=c.throttle(it(t,e),0),l=c.throttle((r=it(n=t,i=e),function(){n.removed||i.inForm()||r()}),0),u=(o=t,s=e,function(){var t=et(o),e=nt(o,t);e&&s.reposition(o,e.id,e.rect)});t.on("blur hide ObjectResizeStart",e.hide),t.on("click",a),t.on("nodeChange mouseup",l),t.on("ResizeEditor keyup",a),t.on("ResizeWindow",u),v.DOM.bind(h.container,"scroll",u),t.on("remove",function(){v.DOM.unbind(h.container,"scroll",u),e.remove()}),t.shortcuts.add("Alt+F10,F10","",e.focus)},ot=function(t,e){return tt(t,function(){var n,i;rt(t,e),i=e,(n=t).shortcuts.remove("meta+k"),n.shortcuts.add("meta+k","",function(){var t=et(n),e=l(n,[E("quicklink")]);e&&i.show(n,e.id,e.rect,t)})}),{}},st=function(t,e){return t.inline?ot(t,e):function(t){throw new Error(t)}("inlite theme only supports inline mode.")},at=function(t){return function(){return t}},lt={noop:function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e]},noarg:function(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return n()}},compose:function(n,i){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return n(i.apply(null,arguments))}},constant:at,identity:function(t){return t},tripleEquals:function(t,e){return t===e},curry:function(o){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];for(var s=new Array(arguments.length-1),n=1;n<arguments.length;n++)s[n-1]=arguments[n];return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];for(var n=new Array(arguments.length),i=0;i<n.length;i++)n[i]=arguments[i];var r=s.concat(n);return o.apply(null,r)}},not:function(n){return function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return!n.apply(null,arguments)}},die:function(t){return function(){throw new Error(t)}},apply:function(t){return t()},call:function(t){t()},never:at(!1),always:at(!0)},ut=lt.never,ct=lt.always,dt=function(){return ft},ft=(i={fold:function(t,e){return t()},is:ut,isSome:ut,isNone:ct,getOr:n=function(t){return t},getOrThunk:e=function(t){return t()},getOrDie:function(t){throw new Error(t||"error: getOrDie called on none.")},or:n,orThunk:e,map:dt,ap:dt,each:function(){},bind:dt,flatten:dt,exists:ut,forall:ct,filter:dt,equals:t=function(t){return t.isNone()},equals_:t,toArray:function(){return[]},toString:lt.constant("none()")},Object.freeze&&Object.freeze(i),i),ht=function(n){var t=function(){return n},e=function(){return r},i=function(t){return t(n)},r={fold:function(t,e){return e(n)},is:function(t){return n===t},isSome:ct,isNone:ut,getOr:t,getOrThunk:t,getOrDie:t,or:e,orThunk:e,map:function(t){return ht(t(n))},ap:function(t){return t.fold(dt,function(t){return ht(t(n))})},each:function(t){t(n)},bind:i,flatten:t,exists:i,forall:i,filter:function(t){return t(n)?r:ft},equals:function(t){return t.is(n)},equals_:function(t,e){return t.fold(ut,function(t){return e(n,t)})},toArray:function(){return[n]},toString:function(){return"some("+n+")"}};return r},mt={some:ht,none:dt,from:function(t){return null===t||t===undefined?ft:ht(t)}},gt=function(e){return function(t){return function(t){if(null===t)return"null";var e=typeof t;return"object"===e&&Array.prototype.isPrototypeOf(t)?"array":"object"===e&&String.prototype.isPrototypeOf(t)?"string":e}(t)===e}},pt={isString:gt("string"),isObject:gt("object"),isArray:gt("array"),isNull:gt("null"),isBoolean:gt("boolean"),isUndefined:gt("undefined"),isFunction:gt("function"),isNumber:gt("number")},vt=(r=Array.prototype.indexOf)===undefined?function(t,e){return Ct(t,e)}:function(t,e){return r.call(t,e)},yt=function(t,e){return-1<vt(t,e)},bt=function(t,e){for(var n=t.length,i=new Array(n),r=0;r<n;r++){var o=t[r];i[r]=e(o,r,t)}return i},xt=function(t,e){for(var n=0,i=t.length;n<i;n++)e(t[n],n,t)},wt=function(t,e){for(var n=t.length-1;0<=n;n--)e(t[n],n,t)},_t=function(t,e){for(var n=[],i=0,r=t.length;i<r;i++){var o=t[i];e(o,i,t)&&n.push(o)}return n},Rt=function(t,e){for(var n=0,i=t.length;n<i;n++)if(e(t[n],n,t))return mt.some(n);return mt.none()},Ct=function(t,e){for(var n=0,i=t.length;n<i;++n)if(t[n]===e)return n;return-1},kt=Array.prototype.push,Et=function(t){for(var e=[],n=0,i=t.length;n<i;++n){if(!Array.prototype.isPrototypeOf(t[n]))throw new Error("Arr.flatten item "+n+" was not an array, input: "+t);kt.apply(e,t[n])}return e},Ht=function(t,e){for(var n=0,i=t.length;n<i;++n)if(!0!==e(t[n],n,t))return!1;return!0},St=Array.prototype.slice,Mt=pt.isFunction(Array.from)?Array.from:function(t){return St.call(t)},Tt={map:bt,each:xt,eachr:wt,partition:function(t,e){for(var n=[],i=[],r=0,o=t.length;r<o;r++){var s=t[r];(e(s,r,t)?n:i).push(s)}return{pass:n,fail:i}},filter:_t,groupBy:function(t,e){if(0===t.length)return[];for(var n=e(t[0]),i=[],r=[],o=0,s=t.length;o<s;o++){var a=t[o],l=e(a);l!==n&&(i.push(r),r=[]),n=l,r.push(a)}return 0!==r.length&&i.push(r),i},indexOf:function(t,e){var n=vt(t,e);return-1===n?mt.none():mt.some(n)},foldr:function(t,e,n){return wt(t,function(t){n=e(n,t)}),n},foldl:function(t,e,n){return xt(t,function(t){n=e(n,t)}),n},find:function(t,e){for(var n=0,i=t.length;n<i;n++){var r=t[n];if(e(r,n,t))return mt.some(r)}return mt.none()},findIndex:Rt,flatten:Et,bind:function(t,e){var n=bt(t,e);return Et(n)},forall:Ht,exists:function(t,e){return Rt(t,e).isSome()},contains:yt,equal:function(t,n){return t.length===n.length&&Ht(t,function(t,e){return t===n[e]})},reverse:function(t){var e=St.call(t,0);return e.reverse(),e},chunk:function(t,e){for(var n=[],i=0;i<t.length;i+=e){var r=t.slice(i,i+e);n.push(r)}return n},difference:function(t,e){return _t(t,function(t){return!yt(e,t)})},mapToObject:function(t,e){for(var n={},i=0,r=t.length;i<r;i++){var o=t[i];n[String(o)]=e(o,i)}return n},pure:function(t){return[t]},sort:function(t,e){var n=St.call(t,0);return n.sort(e),n},range:function(t,e){for(var n=[],i=0;i<t;i++)n.push(e(i));return n},head:function(t){return 0===t.length?mt.none():mt.some(t[0])},last:function(t){return 0===t.length?mt.none():mt.some(t[t.length-1])},from:Mt},Wt=0,Pt={id:function(){return"mceu_"+Wt++},create:function(t,e,n){var i=document.createElement(t);return v.DOM.setAttribs(i,e),"string"==typeof n?i.innerHTML=n:R.each(n,function(t){t.nodeType&&i.appendChild(t)}),i},createFragment:function(t){return v.DOM.createFragment(t)},getWindowSize:function(){return v.DOM.getViewPort()},getSize:function(t){var e,n;if(t.getBoundingClientRect){var i=t.getBoundingClientRect();e=Math.max(i.width||i.right-i.left,t.offsetWidth),n=Math.max(i.height||i.bottom-i.bottom,t.offsetHeight)}else e=t.offsetWidth,n=t.offsetHeight;return{width:e,height:n}},getPos:function(t,e){return v.DOM.getPos(t,e||Pt.getContainer())},getContainer:function(){return h.container?h.container:document.body},getViewPort:function(t){return v.DOM.getViewPort(t)},get:function(t){return document.getElementById(t)},addClass:function(t,e){return v.DOM.addClass(t,e)},removeClass:function(t,e){return v.DOM.removeClass(t,e)},hasClass:function(t,e){return v.DOM.hasClass(t,e)},toggleClass:function(t,e,n){return v.DOM.toggleClass(t,e,n)},css:function(t,e,n){return v.DOM.setStyle(t,e,n)},getRuntimeStyle:function(t,e){return v.DOM.getStyle(t,e,!0)},on:function(t,e,n,i){return v.DOM.bind(t,e,n,i)},off:function(t,e,n){return v.DOM.unbind(t,e,n)},fire:function(t,e,n){return v.DOM.fire(t,e,n)},innerHtml:function(t,e){v.DOM.setHTML(t,e)}},Nt=tinymce.util.Tools.resolve("tinymce.dom.DomQuery"),Ot=tinymce.util.Tools.resolve("tinymce.util.Class"),Dt=tinymce.util.Tools.resolve("tinymce.util.EventDispatcher"),At=function(t){var e;if(t)return"number"==typeof t?{top:t=t||0,left:t,bottom:t,right:t}:(1===(e=(t=t.split(" ")).length)?t[1]=t[2]=t[3]=t[0]:2===e?(t[2]=t[0],t[3]=t[1]):3===e&&(t[3]=t[1]),{top:parseInt(t[0],10)||0,right:parseInt(t[1],10)||0,bottom:parseInt(t[2],10)||0,left:parseInt(t[3],10)||0})},Bt=function(i,t){function e(t){var e=parseFloat(function(t){var e=i.ownerDocument.defaultView;if(e){var n=e.getComputedStyle(i,null);return n?(t=t.replace(/[A-Z]/g,function(t){return"-"+t}),n.getPropertyValue(t)):null}return i.currentStyle[t]}(t));return isNaN(e)?0:e}return{top:e(t+"TopWidth"),right:e(t+"RightWidth"),bottom:e(t+"BottomWidth"),left:e(t+"LeftWidth")}};function Lt(){}function It(t){this.cls=[],this.cls._map={},this.onchange=t||Lt,this.prefix=""}R.extend(It.prototype,{add:function(t){return t&&!this.contains(t)&&(this.cls._map[t]=!0,this.cls.push(t),this._change()),this},remove:function(t){if(this.contains(t)){var e=void 0;for(e=0;e<this.cls.length&&this.cls[e]!==t;e++);this.cls.splice(e,1),delete this.cls._map[t],this._change()}return this},toggle:function(t,e){var n=this.contains(t);return n!==e&&(n?this.remove(t):this.add(t),this._change()),this},contains:function(t){return!!this.cls._map[t]},_change:function(){delete this.clsValue,this.onchange.call(this)}}),It.prototype.toString=function(){var t;if(this.clsValue)return this.clsValue;t="";for(var e=0;e<this.cls.length;e++)0<e&&(t+=" "),t+=this.prefix+this.cls[e];return t};var zt,Ft,Vt,qt=/^([\w\\*]+)?(?:#([\w\-\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i,Ut=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,jt=/^\s*|\s*$/g,$t=Ot.extend({init:function(t){var o=this.match;function s(t,e,n){var i;function r(t){t&&e.push(t)}return r(function(e){if(e)return e=e.toLowerCase(),function(t){return"*"===e||t.type===e}}((i=qt.exec(t.replace(jt,"")))[1])),r(function(e){if(e)return function(t){return t._name===e}}(i[2])),r(function(n){if(n)return n=n.split("."),function(t){for(var e=n.length;e--;)if(!t.classes.contains(n[e]))return!1;return!0}}(i[3])),r(function(n,i,r){if(n)return function(t){var e=t[n]?t[n]():"";return i?"="===i?e===r:"*="===i?0<=e.indexOf(r):"~="===i?0<=(" "+e+" ").indexOf(" "+r+" "):"!="===i?e!==r:"^="===i?0===e.indexOf(r):"$="===i&&e.substr(e.length-r.length)===r:!!r}}(i[4],i[5],i[6])),r(function(i){var e;if(i)return(i=/(?:not\((.+)\))|(.+)/i.exec(i))[1]?(e=a(i[1],[]),function(t){return!o(t,e)}):(i=i[2],function(t,e,n){return"first"===i?0===e:"last"===i?e===n-1:"even"===i?e%2==0:"odd"===i?e%2==1:!!t[i]&&t[i]()})}(i[7])),e.pseudo=!!i[7],e.direct=n,e}function a(t,e){var n,i,r,o=[];do{if(Ut.exec(""),(i=Ut.exec(t))&&(t=i[3],o.push(i[1]),i[2])){n=i[3];break}}while(i);for(n&&a(n,e),t=[],r=0;r<o.length;r++)">"!==o[r]&&t.push(s(o[r],[],">"===o[r-1]));return e.push(t),e}this._selectors=a(t,[])},match:function(t,e){var n,i,r,o,s,a,l,u,c,d,f,h,m;for(n=0,i=(e=e||this._selectors).length;n<i;n++){for(m=t,h=0,r=(o=(s=e[n]).length)-1;0<=r;r--)for(u=s[r];m;){if(u.pseudo)for(c=d=(f=m.parent().items()).length;c--&&f[c]!==m;);for(a=0,l=u.length;a<l;a++)if(!u[a](m,c,d)){a=l+1;break}if(a===l){h++;break}if(r===o-1)break;m=m.parent()}if(h===o)return!0}return!1},find:function(t){var e,n,u=[],i=this._selectors;function c(t,e,n){var i,r,o,s,a,l=e[n];for(i=0,r=t.length;i<r;i++){for(a=t[i],o=0,s=l.length;o<s;o++)if(!l[o](a,i,r)){o=s+1;break}if(o===s)n===e.length-1?u.push(a):a.items&&c(a.items(),e,n+1);else if(l.direct)return;a.items&&c(a.items(),e,n)}}if(t.items){for(e=0,n=i.length;e<n;e++)c(t.items(),i[e],0);1<n&&(u=function(t){for(var e,n=[],i=t.length;i--;)(e=t[i]).__checked||(n.push(e),e.__checked=1);for(i=n.length;i--;)delete n[i].__checked;return n}(u))}return zt||(zt=$t.Collection),new zt(u)}}),Yt=Array.prototype.push,Xt=Array.prototype.slice;Vt={length:0,init:function(t){t&&this.add(t)},add:function(t){return R.isArray(t)?Yt.apply(this,t):t instanceof Ft?this.add(t.toArray()):Yt.call(this,t),this},set:function(t){var e,n=this,i=n.length;for(n.length=0,n.add(t),e=n.length;e<i;e++)delete n[e];return n},filter:function(e){var t,n,i,r,o=[];for("string"==typeof e?(e=new $t(e),r=function(t){return e.match(t)}):r=e,t=0,n=this.length;t<n;t++)r(i=this[t])&&o.push(i);return new Ft(o)},slice:function(){return new Ft(Xt.apply(this,arguments))},eq:function(t){return-1===t?this.slice(t):this.slice(t,+t+1)},each:function(t){return R.each(this,t),this},toArray:function(){return R.toArray(this)},indexOf:function(t){for(var e=this.length;e--&&this[e]!==t;);return e},reverse:function(){return new Ft(R.toArray(this).reverse())},hasClass:function(t){return!!this[0]&&this[0].classes.contains(t)},prop:function(e,n){var t;return n!==undefined?(this.each(function(t){t[e]&&t[e](n)}),this):(t=this[0])&&t[e]?t[e]():void 0},exec:function(e){var n=R.toArray(arguments).slice(1);return this.each(function(t){t[e]&&t[e].apply(t,n)}),this},remove:function(){for(var t=this.length;t--;)this[t].remove();return this},addClass:function(e){return this.each(function(t){t.classes.add(e)})},removeClass:function(e){return this.each(function(t){t.classes.remove(e)})}},R.each("fire on off show hide append prepend before after reflow".split(" "),function(n){Vt[n]=function(){var e=R.toArray(arguments);return this.each(function(t){n in t&&t[n].apply(t,e)}),this}}),R.each("text name disabled active selected checked visible parent value data".split(" "),function(e){Vt[e]=function(t){return this.prop(e,t)}}),Ft=Ot.extend(Vt);var Jt=$t.Collection=Ft,Gt=function(t){this.create=t.create};Gt.create=function(r,o){return new Gt({create:function(e,n){var i,t=function(t){e.set(n,t.value)};return e.on("change:"+n,function(t){r.set(o,t.value)}),r.on("change:"+o,t),(i=e._bindings)||(i=e._bindings=[],e.on("destroy",function(){for(var t=i.length;t--;)i[t]()})),i.push(function(){r.off("change:"+o,t)}),r.get(o)}})};var Kt=tinymce.util.Tools.resolve("tinymce.util.Observable");function Zt(t){return 0<t.nodeType}var Qt,te,ee=Ot.extend({Mixins:[Kt],init:function(t){var e,n;for(e in t=t||{})(n=t[e])instanceof Gt&&(t[e]=n.create(this,e));this.data=t},set:function(e,n){var i,r,o=this.data[e];if(n instanceof Gt&&(n=n.create(this,e)),"object"==typeof e){for(i in e)this.set(i,e[i]);return this}return function t(e,n){var i,r;if(e===n)return!0;if(null===e||null===n)return e===n;if("object"!=typeof e||"object"!=typeof n)return e===n;if(R.isArray(n)){if(e.length!==n.length)return!1;for(i=e.length;i--;)if(!t(e[i],n[i]))return!1}if(Zt(e)||Zt(n))return e===n;for(i in r={},n){if(!t(e[i],n[i]))return!1;r[i]=!0}for(i in e)if(!r[i]&&!t(e[i],n[i]))return!1;return!0}(o,n)||(this.data[e]=n,r={target:this,name:e,value:n,oldValue:o},this.fire("change:"+e,r),this.fire("change",r)),this},get:function(t){return this.data[t]},has:function(t){return t in this.data},bind:function(t){return Gt.create(this,t)},destroy:function(){this.fire("destroy")}}),ne={},ie={add:function(t){var e=t.parent();if(e){if(!e._layout||e._layout.isNative())return;ne[e._id]||(ne[e._id]=e),Qt||(Qt=!0,c.requestAnimationFrame(function(){var t,e;for(t in Qt=!1,ne)(e=ne[t]).state.get("rendered")&&e.reflow();ne={}},document.body))}},remove:function(t){ne[t._id]&&delete ne[t._id]}},re=function(t){return t?t.getRoot().uiContainer:null},oe={getUiContainerDelta:function(t){var e=re(t);if(e&&"static"!==v.DOM.getStyle(e,"position",!0)){var n=v.DOM.getPos(e),i=e.scrollLeft-n.x,r=e.scrollTop-n.y;return mt.some({x:i,y:r})}return mt.none()},setUiContainer:function(t,e){var n=v.DOM.select(t.settings.ui_container)[0];e.getRoot().uiContainer=n},getUiContainer:re,inheritUiContainer:function(t,e){return e.uiContainer=re(t)}},se="onmousewheel"in document,ae=!1,le=0,ue={Statics:{classPrefix:"mce-"},isRtl:function(){return te.rtl},classPrefix:"mce-",init:function(e){var t,n,i=this;function r(t){var e;for(t=t.split(" "),e=0;e<t.length;e++)i.classes.add(t[e])}i.settings=e=R.extend({},i.Defaults,e),i._id=e.id||"mceu_"+le++,i._aria={role:e.role},i._elmCache={},i.$=Nt,i.state=new ee({visible:!0,active:!1,disabled:!1,value:""}),i.data=new ee(e.data),i.classes=new It(function(){i.state.get("rendered")&&(i.getEl().className=this.toString())}),i.classes.prefix=i.classPrefix,(t=e.classes)&&(i.Defaults&&(n=i.Defaults.classes)&&t!==n&&r(n),r(t)),R.each("title text name visible disabled active value".split(" "),function(t){t in e&&i[t](e[t])}),i.on("click",function(){if(i.disabled())return!1}),i.settings=e,i.borderBox=At(e.border),i.paddingBox=At(e.padding),i.marginBox=At(e.margin),e.hidden&&i.hide()},Properties:"parent,name",getContainerElm:function(){var t=oe.getUiContainer(this);return t||Pt.getContainer()},getParentCtrl:function(t){for(var e,n=this.getRoot().controlIdLookup;t&&n&&!(e=n[t.id]);)t=t.parentNode;return e},initLayoutRect:function(){var t,e,n,i,r,o,s,a,l,u,c=this,d=c.settings,f=c.getEl();t=c.borderBox=c.borderBox||Bt(f,"border"),c.paddingBox=c.paddingBox||Bt(f,"padding"),c.marginBox=c.marginBox||Bt(f,"margin"),u=Pt.getSize(f),a=d.minWidth,l=d.minHeight,r=a||u.width,o=l||u.height,n=d.width,i=d.height,s=void 0!==(s=d.autoResize)?s:!n&&!i,n=n||r,i=i||o;var h=t.left+t.right,m=t.top+t.bottom,g=d.maxWidth||65535,p=d.maxHeight||65535;return c._layoutRect=e={x:d.x||0,y:d.y||0,w:n,h:i,deltaW:h,deltaH:m,contentW:n-h,contentH:i-m,innerW:n-h,innerH:i-m,startMinWidth:a||0,startMinHeight:l||0,minW:Math.min(r,g),minH:Math.min(o,p),maxW:g,maxH:p,autoResize:s,scrollW:0},c._lastLayoutRect={},e},layoutRect:function(t){var e,n,i,r,o,s=this,a=s._layoutRect;return a||(a=s.initLayoutRect()),t?(i=a.deltaW,r=a.deltaH,t.x!==undefined&&(a.x=t.x),t.y!==undefined&&(a.y=t.y),t.minW!==undefined&&(a.minW=t.minW),t.minH!==undefined&&(a.minH=t.minH),(n=t.w)!==undefined&&(n=(n=n<a.minW?a.minW:n)>a.maxW?a.maxW:n,a.w=n,a.innerW=n-i),(n=t.h)!==undefined&&(n=(n=n<a.minH?a.minH:n)>a.maxH?a.maxH:n,a.h=n,a.innerH=n-r),(n=t.innerW)!==undefined&&(n=(n=n<a.minW-i?a.minW-i:n)>a.maxW-i?a.maxW-i:n,a.innerW=n,a.w=n+i),(n=t.innerH)!==undefined&&(n=(n=n<a.minH-r?a.minH-r:n)>a.maxH-r?a.maxH-r:n,a.innerH=n,a.h=n+r),t.contentW!==undefined&&(a.contentW=t.contentW),t.contentH!==undefined&&(a.contentH=t.contentH),(e=s._lastLayoutRect).x===a.x&&e.y===a.y&&e.w===a.w&&e.h===a.h||((o=te.repaintControls)&&o.map&&!o.map[s._id]&&(o.push(s),o.map[s._id]=!0),e.x=a.x,e.y=a.y,e.w=a.w,e.h=a.h),s):a},repaint:function(){var t,e,n,i,r,o,s,a,l,u,c=this;l=document.createRange?function(t){return t}:Math.round,t=c.getEl().style,i=c._layoutRect,a=c._lastRepaintRect||{},o=(r=c.borderBox).left+r.right,s=r.top+r.bottom,i.x!==a.x&&(t.left=l(i.x)+"px",a.x=i.x),i.y!==a.y&&(t.top=l(i.y)+"px",a.y=i.y),i.w!==a.w&&(u=l(i.w-o),t.width=(0<=u?u:0)+"px",a.w=i.w),i.h!==a.h&&(u=l(i.h-s),t.height=(0<=u?u:0)+"px",a.h=i.h),c._hasBody&&i.innerW!==a.innerW&&(u=l(i.innerW),(n=c.getEl("body"))&&((e=n.style).width=(0<=u?u:0)+"px"),a.innerW=i.innerW),c._hasBody&&i.innerH!==a.innerH&&(u=l(i.innerH),(n=n||c.getEl("body"))&&((e=e||n.style).height=(0<=u?u:0)+"px"),a.innerH=i.innerH),c._lastRepaintRect=a,c.fire("repaint",{},!1)},updateLayoutRect:function(){var t=this;t.parent()._lastRect=null,Pt.css(t.getEl(),{width:"",height:""}),t._layoutRect=t._lastRepaintRect=t._lastLayoutRect=null,t.initLayoutRect()},on:function(t,e){var n,i,r,o=this;return ce(o).on(t,"string"!=typeof(n=e)?n:function(t){return i||o.parentsAndSelf().each(function(t){var e=t.settings.callbacks;if(e&&(i=e[n]))return r=t,!1}),i?i.call(r,t):(t.action=n,void this.fire("execute",t))}),o},off:function(t,e){return ce(this).off(t,e),this},fire:function(t,e,n){if((e=e||{}).control||(e.control=this),e=ce(this).fire(t,e),!1!==n&&this.parent)for(var i=this.parent();i&&!e.isPropagationStopped();)i.fire(t,e,!1),i=i.parent();return e},hasEventListeners:function(t){return ce(this).has(t)},parents:function(t){var e,n=new Jt;for(e=this.parent();e;e=e.parent())n.add(e);return t&&(n=n.filter(t)),n},parentsAndSelf:function(t){return new Jt(this).add(this.parents(t))},next:function(){var t=this.parent().items();return t[t.indexOf(this)+1]},prev:function(){var t=this.parent().items();return t[t.indexOf(this)-1]},innerHtml:function(t){return this.$el.html(t),this},getEl:function(t){var e=t?this._id+"-"+t:this._id;return this._elmCache[e]||(this._elmCache[e]=Nt("#"+e)[0]),this._elmCache[e]},show:function(){return this.visible(!0)},hide:function(){return this.visible(!1)},focus:function(){try{this.getEl().focus()}catch(t){}return this},blur:function(){return this.getEl().blur(),this},aria:function(t,e){var n=this,i=n.getEl(n.ariaTarget);return void 0===e?n._aria[t]:(n._aria[t]=e,n.state.get("rendered")&&i.setAttribute("role"===t?t:"aria-"+t,e),n)},encode:function(t,e){return!1!==e&&(t=this.translate(t)),(t||"").replace(/[&<>"]/g,function(t){return"&#"+t.charCodeAt(0)+";"})},translate:function(t){return te.translate?te.translate(t):t},before:function(t){var e=this.parent();return e&&e.insert(t,e.items().indexOf(this),!0),this},after:function(t){var e=this.parent();return e&&e.insert(t,e.items().indexOf(this)),this},remove:function(){var e,t,n=this,i=n.getEl(),r=n.parent();if(n.items){var o=n.items().toArray();for(t=o.length;t--;)o[t].remove()}r&&r.items&&(e=[],r.items().each(function(t){t!==n&&e.push(t)}),r.items().set(e),r._lastRect=null),n._eventsRoot&&n._eventsRoot===n&&Nt(i).off();var s=n.getRoot().controlIdLookup;return s&&delete s[n._id],i&&i.parentNode&&i.parentNode.removeChild(i),n.state.set("rendered",!1),n.state.destroy(),n.fire("remove"),n},renderBefore:function(t){return Nt(t).before(this.renderHtml()),this.postRender(),this},renderTo:function(t){return Nt(t||this.getContainerElm()).append(this.renderHtml()),this.postRender(),this},preRender:function(){},render:function(){},renderHtml:function(){return'<div id="'+this._id+'" class="'+this.classes+'"></div>'},postRender:function(){var t,e,n,i,r,o=this,s=o.settings;for(i in o.$el=Nt(o.getEl()),o.state.set("rendered",!0),s)0===i.indexOf("on")&&o.on(i.substr(2),s[i]);if(o._eventsRoot){for(n=o.parent();!r&&n;n=n.parent())r=n._eventsRoot;if(r)for(i in r._nativeEvents)o._nativeEvents[i]=!0}de(o),s.style&&(t=o.getEl())&&(t.setAttribute("style",s.style),t.style.cssText=s.style),o.settings.border&&(e=o.borderBox,o.$el.css({"border-top-width":e.top,"border-right-width":e.right,"border-bottom-width":e.bottom,"border-left-width":e.left}));var a=o.getRoot();for(var l in a.controlIdLookup||(a.controlIdLookup={}),(a.controlIdLookup[o._id]=o)._aria)o.aria(l,o._aria[l]);!1===o.state.get("visible")&&(o.getEl().style.display="none"),o.bindStates(),o.state.on("change:visible",function(t){var e,n=t.value;o.state.get("rendered")&&(o.getEl().style.display=!1===n?"none":"",o.getEl().getBoundingClientRect()),(e=o.parent())&&(e._lastRect=null),o.fire(n?"show":"hide"),ie.add(o)}),o.fire("postrender",{},!1)},bindStates:function(){},scrollIntoView:function(t){var e,n,i,r,o,s,a=this.getEl(),l=a.parentNode,u=function(t,e){var n,i,r=t;for(n=i=0;r&&r!==e&&r.nodeType;)n+=r.offsetLeft||0,i+=r.offsetTop||0,r=r.offsetParent;return{x:n,y:i}}(a,l);return e=u.x,n=u.y,i=a.offsetWidth,r=a.offsetHeight,o=l.clientWidth,s=l.clientHeight,"end"===t?(e-=o-i,n-=s-r):"center"===t&&(e-=o/2-i/2,n-=s/2-r/2),l.scrollLeft=e,l.scrollTop=n,this},getRoot:function(){for(var t,e=this,n=[];e;){if(e.rootControl){t=e.rootControl;break}n.push(e),e=(t=e).parent()}t||(t=this);for(var i=n.length;i--;)n[i].rootControl=t;return t},reflow:function(){ie.remove(this);var t=this.parent();return t&&t._layout&&!t._layout.isNative()&&t.reflow(),this}};function ce(n){return n._eventDispatcher||(n._eventDispatcher=new Dt({scope:n,toggleEvent:function(t,e){e&&Dt.isNative(t)&&(n._nativeEvents||(n._nativeEvents={}),n._nativeEvents[t]=!0,n.state.get("rendered")&&de(n))}})),n._eventDispatcher}function de(a){var t,e,n,l,i,r;function o(t){var e=a.getParentCtrl(t.target);e&&e.fire(t.type,t)}function s(){var t=l._lastHoverCtrl;t&&(t.fire("mouseleave",{target:t.getEl()}),t.parents().each(function(t){t.fire("mouseleave",{target:t.getEl()})}),l._lastHoverCtrl=null)}function u(t){var e,n,i,r=a.getParentCtrl(t.target),o=l._lastHoverCtrl,s=0;if(r!==o){if((n=(l._lastHoverCtrl=r).parents().toArray().reverse()).push(r),o){for((i=o.parents().toArray().reverse()).push(o),s=0;s<i.length&&n[s]===i[s];s++);for(e=i.length-1;s<=e;e--)(o=i[e]).fire("mouseleave",{target:o.getEl()})}for(e=s;e<n.length;e++)(r=n[e]).fire("mouseenter",{target:r.getEl()})}}function c(t){t.preventDefault(),"mousewheel"===t.type?(t.deltaY=-.025*t.wheelDelta,t.wheelDeltaX&&(t.deltaX=-.025*t.wheelDeltaX)):(t.deltaX=0,t.deltaY=t.detail),t=a.fire("wheel",t)}if(i=a._nativeEvents){for((n=a.parents().toArray()).unshift(a),t=0,e=n.length;!l&&t<e;t++)l=n[t]._eventsRoot;for(l||(l=n[n.length-1]||a),a._eventsRoot=l,e=t,t=0;t<e;t++)n[t]._eventsRoot=l;var d=l._delegates;for(r in d||(d=l._delegates={}),i){if(!i)return!1;"wheel"!==r||ae?("mouseenter"===r||"mouseleave"===r?l._hasMouseEnter||(Nt(l.getEl()).on("mouseleave",s).on("mouseover",u),l._hasMouseEnter=1):d[r]||(Nt(l.getEl()).on(r,o),d[r]=!0),i[r]=!1):se?Nt(a.getEl()).on("mousewheel",c):Nt(a.getEl()).on("DOMMouseScroll",c)}}}R.each("text title visible disabled active value".split(" "),function(e){ue[e]=function(t){return 0===arguments.length?this.state.get(e):(void 0!==t&&this.state.set(e,t),this)}});var fe=te=Ot.extend(ue),he=function(t){return"static"===Pt.getRuntimeStyle(t,"position")},me=function(t){return t.state.get("fixed")};function ge(t,e,n){var i,r,o,s,a,l,u,c,d,f;return d=pe(),o=(r=Pt.getPos(e,oe.getUiContainer(t))).x,s=r.y,me(t)&&he(document.body)&&(o-=d.x,s-=d.y),i=t.getEl(),a=(f=Pt.getSize(i)).width,l=f.height,u=(f=Pt.getSize(e)).width,c=f.height,"b"===(n=(n||"").split(""))[0]&&(s+=c),"r"===n[1]&&(o+=u),"c"===n[0]&&(s+=Math.round(c/2)),"c"===n[1]&&(o+=Math.round(u/2)),"b"===n[3]&&(s-=l),"r"===n[4]&&(o-=a),"c"===n[3]&&(s-=Math.round(l/2)),"c"===n[4]&&(o-=Math.round(a/2)),{x:o,y:s,w:a,h:l}}var pe=function(){var t=window,e=Math.max(t.pageXOffset,document.body.scrollLeft,document.documentElement.scrollLeft),n=Math.max(t.pageYOffset,document.body.scrollTop,document.documentElement.scrollTop);return{x:e,y:n,w:e+(t.innerWidth||document.documentElement.clientWidth),h:n+(t.innerHeight||document.documentElement.clientHeight)}},ve=function(t){var e,n=oe.getUiContainer(t);return n&&!me(t)?{x:0,y:0,w:(e=n).scrollWidth-1,h:e.scrollHeight-1}:pe()},ye={testMoveRel:function(t,e){for(var n=ve(this),i=0;i<e.length;i++){var r=ge(this,t,e[i]);if(me(this)){if(0<r.x&&r.x+r.w<n.w&&0<r.y&&r.y+r.h<n.h)return e[i]}else if(r.x>n.x&&r.x+r.w<n.w&&r.y>n.y&&r.y+r.h<n.h)return e[i]}return e[0]},moveRel:function(t,e){"string"!=typeof e&&(e=this.testMoveRel(t,e));var n=ge(this,t,e);return this.moveTo(n.x,n.y)},moveBy:function(t,e){var n=this.layoutRect();return this.moveTo(n.x+t,n.y+e),this},moveTo:function(t,e){var n=this;function i(t,e,n){return t<0?0:e<t+n&&(t=e-n)<0?0:t}if(n.settings.constrainToViewport){var r=ve(this),o=n.layoutRect();t=i(t,r.w,o.w),e=i(e,r.h,o.h)}var s=oe.getUiContainer(n);return s&&he(s)&&!me(n)&&(t-=s.scrollLeft,e-=s.scrollTop),s&&(t+=1,e+=1),n.state.get("rendered")?n.layoutRect({x:t,y:e}).repaint():(n.settings.x=t,n.settings.y=e),n.fire("move",{x:t,y:e}),n}},be=fe.extend({Mixins:[ye],Defaults:{classes:"widget tooltip tooltip-n"},renderHtml:function(){var t=this,e=t.classPrefix;return'<div id="'+t._id+'" class="'+t.classes+'" role="presentation"><div class="'+e+'tooltip-arrow"></div><div class="'+e+'tooltip-inner">'+t.encode(t.state.get("text"))+"</div></div>"},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.getEl().lastChild.innerHTML=e.encode(t.value)}),e._super()},repaint:function(){var t,e;t=this.getEl().style,e=this._layoutRect,t.left=e.x+"px",t.top=e.y+"px",t.zIndex=131070}}),xe=fe.extend({init:function(i){var r=this;r._super(i),i=r.settings,r.canFocus=!0,i.tooltip&&!1!==xe.tooltips&&(r.on("mouseenter",function(t){var e=r.tooltip().moveTo(-65535);if(t.control===r){var n=e.text(i.tooltip).show().testMoveRel(r.getEl(),["bc-tc","bc-tl","bc-tr"]);e.classes.toggle("tooltip-n","bc-tc"===n),e.classes.toggle("tooltip-nw","bc-tl"===n),e.classes.toggle("tooltip-ne","bc-tr"===n),e.moveRel(r.getEl(),n)}else e.hide()}),r.on("mouseleave mousedown click",function(){r.tooltip().remove(),r._tooltip=null})),r.aria("label",i.ariaLabel||i.tooltip)},tooltip:function(){return this._tooltip||(this._tooltip=new be({type:"tooltip"}),oe.inheritUiContainer(this,this._tooltip),this._tooltip.renderTo()),this._tooltip},postRender:function(){var t=this,e=t.settings;t._super(),t.parent()||!e.width&&!e.height||(t.initLayoutRect(),t.repaint()),e.autofocus&&t.focus()},bindStates:function(){var e=this;function n(t){e.aria("disabled",t),e.classes.toggle("disabled",t)}function i(t){e.aria("pressed",t),e.classes.toggle("active",t)}return e.state.on("change:disabled",function(t){n(t.value)}),e.state.on("change:active",function(t){i(t.value)}),e.state.get("disabled")&&n(!0),e.state.get("active")&&i(!0),e._super()},remove:function(){this._super(),this._tooltip&&(this._tooltip.remove(),this._tooltip=null)}}),we=xe.extend({Defaults:{value:0},init:function(t){this._super(t),this.classes.add("progress"),this.settings.filter||(this.settings.filter=function(t){return Math.round(t)})},renderHtml:function(){var t=this._id,e=this.classPrefix;return'<div id="'+t+'" class="'+this.classes+'"><div class="'+e+'bar-container"><div class="'+e+'bar"></div></div><div class="'+e+'text">0%</div></div>'},postRender:function(){return this._super(),this.value(this.settings.value),this},bindStates:function(){var e=this;function n(t){t=e.settings.filter(t),e.getEl().lastChild.innerHTML=t+"%",e.getEl().firstChild.firstChild.style.width=t+"%"}return e.state.on("change:value",function(t){n(t.value)}),n(e.state.get("value")),e._super()}}),_e=function(t,e){t.getEl().lastChild.textContent=e+(t.progressBar?" "+t.progressBar.value()+"%":"")},Re=fe.extend({Mixins:[ye],Defaults:{classes:"widget notification"},init:function(t){var e=this;e._super(t),e.maxWidth=t.maxWidth,t.text&&e.text(t.text),t.icon&&(e.icon=t.icon),t.color&&(e.color=t.color),t.type&&e.classes.add("notification-"+t.type),t.timeout&&(t.timeout<0||0<t.timeout)&&!t.closeButton?e.closeButton=!1:(e.classes.add("has-close"),e.closeButton=!0),t.progressBar&&(e.progressBar=new we),e.on("click",function(t){-1!==t.target.className.indexOf(e.classPrefix+"close")&&e.close()})},renderHtml:function(){var t,e=this,n=e.classPrefix,i="",r="",o="";return e.icon&&(i='<i class="'+n+"ico "+n+"i-"+e.icon+'"></i>'),t=' style="max-width: '+e.maxWidth+"px;"+(e.color?"background-color: "+e.color+';"':'"'),e.closeButton&&(r='<button type="button" class="'+n+'close" aria-hidden="true">\xd7</button>'),e.progressBar&&(o=e.progressBar.renderHtml()),'<div id="'+e._id+'" class="'+e.classes+'"'+t+' role="presentation">'+i+'<div class="'+n+'notification-inner">'+e.state.get("text")+"</div>"+o+r+'<div style="clip: rect(1px, 1px, 1px, 1px);height: 1px;overflow: hidden;position: absolute;width: 1px;" aria-live="assertive" aria-relevant="additions" aria-atomic="true"></div></div>'},postRender:function(){var t=this;return c.setTimeout(function(){t.$el.addClass(t.classPrefix+"in"),_e(t,t.state.get("text"))},100),t._super()},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.getEl().firstChild.innerHTML=t.value,_e(e,t.value)}),e.progressBar&&(e.progressBar.bindStates(),e.progressBar.state.on("change:value",function(t){_e(e,e.state.get("text"))})),e._super()},close:function(){return this.fire("close").isDefaultPrevented()||this.remove(),this},repaint:function(){var t,e;t=this.getEl().style,e=this._layoutRect,t.left=e.x+"px",t.top=e.y+"px",t.zIndex=65534}});function Ce(o){var s=function(t){return t.inline?t.getElement():t.getContentAreaContainer()};return{open:function(t,e){var n,i=R.extend(t,{maxWidth:(n=s(o),Pt.getSize(n).width)}),r=new Re(i);return 0<(r.args=i).timeout&&(r.timer=setTimeout(function(){r.close(),e()},i.timeout)),r.on("close",function(){e()}),r.renderTo(),r},close:function(t){t.close()},reposition:function(t){var e;e=t,Tt.each(e,function(t){t.moveTo(0,0)}),function(n){if(0<n.length){var t=n.slice(0,1)[0],e=s(o);t.moveRel(e,"tc-tc"),Tt.each(n,function(t,e){0<e&&t.moveRel(n[e-1].getEl(),"bc-tc")})}}(t)},getArgs:function(t){return t.args}}}function ke(t){var e,n;if(t.changedTouches)for(e="screenX screenY pageX pageY clientX clientY".split(" "),n=0;n<e.length;n++)t[e[n]]=t.changedTouches[0][e[n]]}function Ee(t,h){var m,g,e,p,v,y,b,x=h.document||document;h=h||{};var w=x.getElementById(h.handle||t);e=function(t){var e,n,i,r,o,s,a,l,u,c,d,f=(e=x,u=Math.max,n=e.documentElement,i=e.body,r=u(n.scrollWidth,i.scrollWidth),o=u(n.clientWidth,i.clientWidth),s=u(n.offsetWidth,i.offsetWidth),a=u(n.scrollHeight,i.scrollHeight),l=u(n.clientHeight,i.clientHeight),{width:r<s?o:r,height:a<u(n.offsetHeight,i.offsetHeight)?l:a});ke(t),t.preventDefault(),g=t.button,c=w,y=t.screenX,b=t.screenY,d=window.getComputedStyle?window.getComputedStyle(c,null).getPropertyValue("cursor"):c.runtimeStyle.cursor,m=Nt("<div></div>").css({position:"absolute",top:0,left:0,width:f.width,height:f.height,zIndex:2147483647,opacity:1e-4,cursor:d}).appendTo(x.body),Nt(x).on("mousemove touchmove",v).on("mouseup touchend",p),h.start(t)},v=function(t){if(ke(t),t.button!==g)return p(t);t.deltaX=t.screenX-y,t.deltaY=t.screenY-b,t.preventDefault(),h.drag(t)},p=function(t){ke(t),Nt(x).off("mousemove touchmove",v).off("mouseup touchend",p),m.remove(),h.stop&&h.stop(t)},this.destroy=function(){Nt(w).off()},Nt(w).on("mousedown touchstart",e)}var He=tinymce.util.Tools.resolve("tinymce.ui.Factory"),Se=function(t){return!!t.getAttribute("data-mce-tabstop")};function Me(t){var o,r,n=t.root;function i(t){return t&&1===t.nodeType}try{o=document.activeElement}catch(e){o=document.body}function s(t){return i(t=t||o)?t.getAttribute("role"):null}function a(t){for(var e,n=t||o;n=n.parentNode;)if(e=s(n))return e}function l(t){var e=o;if(i(e))return e.getAttribute("aria-"+t)}function u(t){var e=t.tagName.toUpperCase();return"INPUT"===e||"TEXTAREA"===e||"SELECT"===e}function c(e){var r=[];return function t(e){if(1===e.nodeType&&"none"!==e.style.display&&!e.disabled){var n;(u(n=e)&&!n.hidden||Se(n)||/^(button|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell|slider)$/.test(s(n)))&&r.push(e);for(var i=0;i<e.childNodes.length;i++)t(e.childNodes[i])}}(e||n.getEl()),r}function d(t){var e,n;(n=(t=t||r).parents().toArray()).unshift(t);for(var i=0;i<n.length&&!(e=n[i]).settings.ariaRoot;i++);return e}function f(t,e){return t<0?t=e.length-1:t>=e.length&&(t=0),e[t]&&e[t].focus(),t}function h(t,e){var n=-1,i=d();e=e||c(i.getEl());for(var r=0;r<e.length;r++)e[r]===o&&(n=r);n+=t,i.lastAriaIndex=f(n,e)}function m(){"tablist"===a()?h(-1,c(o.parentNode)):r.parent().submenu?y():h(-1)}function g(){var t=s(),e=a();"tablist"===e?h(1,c(o.parentNode)):"menuitem"===t&&"menu"===e&&l("haspopup")?b():h(1)}function p(){h(-1)}function v(){var t=s(),e=a();"menuitem"===t&&"menubar"===e?b():"button"===t&&l("haspopup")?b({key:"down"}):h(1)}function y(){r.fire("cancel")}function b(t){t=t||{},r.fire("click",{target:o,aria:t})}return r=n.getParentCtrl(o),n.on("keydown",function(t){function e(t,e){u(o)||Se(o)||"slider"!==s(o)&&!1!==e(t)&&t.preventDefault()}if(!t.isDefaultPrevented())switch(t.keyCode){case 37:e(t,m);break;case 39:e(t,g);break;case 38:e(t,p);break;case 40:e(t,v);break;case 27:y();break;case 14:case 13:case 32:e(t,b);break;case 9:!function(t){if("tablist"===a()){var e=c(r.getEl("body"))[0];e&&e.focus()}else h(t.shiftKey?-1:1)}(t),t.preventDefault()}}),n.on("focusin",function(t){o=t.target,r=t.control}),{focusFirst:function(t){var e=d(t),n=c(e.getEl());e.settings.ariaRemember&&"lastAriaIndex"in e?f(e.lastAriaIndex,n):f(0,n)}}}var Te,We,Pe,Ne,Oe={},De=fe.extend({init:function(t){var e=this;e._super(t),(t=e.settings).fixed&&e.state.set("fixed",!0),e._items=new Jt,e.isRtl()&&e.classes.add("rtl"),e.bodyClasses=new It(function(){e.state.get("rendered")&&(e.getEl("body").className=this.toString())}),e.bodyClasses.prefix=e.classPrefix,e.classes.add("container"),e.bodyClasses.add("container-body"),t.containerCls&&e.classes.add(t.containerCls),e._layout=He.create((t.layout||"")+"layout"),e.settings.items?e.add(e.settings.items):e.add(e.render()),e._hasBody=!0},items:function(){return this._items},find:function(t){return(t=Oe[t]=Oe[t]||new $t(t)).find(this)},add:function(t){return this.items().add(this.create(t)).parent(this),this},focus:function(t){var e,n,i,r=this;if(!t||!(n=r.keyboardNav||r.parents().eq(-1)[0].keyboardNav))return i=r.find("*"),r.statusbar&&i.add(r.statusbar.items()),i.each(function(t){if(t.settings.autofocus)return e=null,!1;t.canFocus&&(e=e||t)}),e&&e.focus(),r;n.focusFirst(r)},replace:function(t,e){for(var n,i=this.items(),r=i.length;r--;)if(i[r]===t){i[r]=e;break}0<=r&&((n=e.getEl())&&n.parentNode.removeChild(n),(n=t.getEl())&&n.parentNode.removeChild(n)),e.parent(this)},create:function(t){var e,n=this,i=[];return R.isArray(t)||(t=[t]),R.each(t,function(t){t&&(t instanceof fe||("string"==typeof t&&(t={type:t}),e=R.extend({},n.settings.defaults,t),t.type=e.type=e.type||t.type||n.settings.defaultType||(e.defaults?e.defaults.type:null),t=He.create(e)),i.push(t))}),i},renderNew:function(){var i=this;return i.items().each(function(t,e){var n;t.parent(i),t.state.get("rendered")||((n=i.getEl("body")).hasChildNodes()&&e<=n.childNodes.length-1?Nt(n.childNodes[e]).before(t.renderHtml()):Nt(n).append(t.renderHtml()),t.postRender(),ie.add(t))}),i._layout.applyClasses(i.items().filter(":visible")),i._lastRect=null,i},append:function(t){return this.add(t).renderNew()},prepend:function(t){return this.items().set(this.create(t).concat(this.items().toArray())),this.renderNew()},insert:function(t,e,n){var i,r,o;return t=this.create(t),i=this.items(),!n&&e<i.length-1&&(e+=1),0<=e&&e<i.length&&(r=i.slice(0,e).toArray(),o=i.slice(e).toArray(),i.set(r.concat(t,o))),this.renderNew()},fromJSON:function(t){for(var e in t)this.find("#"+e).value(t[e]);return this},toJSON:function(){var i={};return this.find("*").each(function(t){var e=t.name(),n=t.value();e&&void 0!==n&&(i[e]=n)}),i},renderHtml:function(){var t=this,e=t._layout,n=this.settings.role;return t.preRender(),e.preRender(t),'<div id="'+t._id+'" class="'+t.classes+'"'+(n?' role="'+this.settings.role+'"':"")+'><div id="'+t._id+'-body" class="'+t.bodyClasses+'">'+(t.settings.html||"")+e.renderHtml(t)+"</div></div>"},postRender:function(){var t,e=this;return e.items().exec("postRender"),e._super(),e._layout.postRender(e),e.state.set("rendered",!0),e.settings.style&&e.$el.css(e.settings.style),e.settings.border&&(t=e.borderBox,e.$el.css({"border-top-width":t.top,"border-right-width":t.right,"border-bottom-width":t.bottom,"border-left-width":t.left})),e.parent()||(e.keyboardNav=Me({root:e})),e},initLayoutRect:function(){var t=this._super();return this._layout.recalc(this),t},recalc:function(){var t=this,e=t._layoutRect,n=t._lastRect;if(!n||n.w!==e.w||n.h!==e.h)return t._layout.recalc(t),e=t.layoutRect(),t._lastRect={x:e.x,y:e.y,w:e.w,h:e.h},!0},reflow:function(){var t;if(ie.remove(this),this.visible()){for(fe.repaintControls=[],fe.repaintControls.map={},this.recalc(),t=fe.repaintControls.length;t--;)fe.repaintControls[t].repaint();"flow"!==this.settings.layout&&"stack"!==this.settings.layout&&this.repaint(),fe.repaintControls=[]}return this}}),Ae={init:function(){this.on("repaint",this.renderScroll)},renderScroll:function(){var p=this,v=2;function n(){var m,g,t;function e(t,e,n,i,r,o){var s,a,l,u,c,d,f,h;if(a=p.getEl("scroll"+t)){if(f=e.toLowerCase(),h=n.toLowerCase(),Nt(p.getEl("absend")).css(f,p.layoutRect()[i]-1),!r)return void Nt(a).css("display","none");Nt(a).css("display","block"),s=p.getEl("body"),l=p.getEl("scroll"+t+"t"),u=s["client"+n]-2*v,c=(u-=m&&g?a["client"+o]:0)/s["scroll"+n],(d={})[f]=s["offset"+e]+v,d[h]=u,Nt(a).css(d),(d={})[f]=s["scroll"+e]*c,d[h]=u*c,Nt(l).css(d)}}t=p.getEl("body"),m=t.scrollWidth>t.clientWidth,g=t.scrollHeight>t.clientHeight,e("h","Left","Width","contentW",m,"Height"),e("v","Top","Height","contentH",g,"Width")}p.settings.autoScroll&&(p._hasScroll||(p._hasScroll=!0,function(){function t(s,a,l,u,c){var d,t=p._id+"-scroll"+s,e=p.classPrefix;Nt(p.getEl()).append('<div id="'+t+'" class="'+e+"scrollbar "+e+"scrollbar-"+s+'"><div id="'+t+'t" class="'+e+'scrollbar-thumb"></div></div>'),p.draghelper=new Ee(t+"t",{start:function(){d=p.getEl("body")["scroll"+a],Nt("#"+t).addClass(e+"active")},drag:function(t){var e,n,i,r,o=p.layoutRect();n=o.contentW>o.innerW,i=o.contentH>o.innerH,r=p.getEl("body")["client"+l]-2*v,e=(r-=n&&i?p.getEl("scroll"+s)["client"+c]:0)/p.getEl("body")["scroll"+l],p.getEl("body")["scroll"+a]=d+t["delta"+u]/e},stop:function(){Nt("#"+t).removeClass(e+"active")}})}p.classes.add("scroll"),t("v","Top","Height","Y","Width"),t("h","Left","Width","X","Height")}(),p.on("wheel",function(t){var e=p.getEl("body");e.scrollLeft+=10*(t.deltaX||0),e.scrollTop+=10*t.deltaY,n()}),Nt(p.getEl("body")).on("scroll",n)),n())}},Be=De.extend({Defaults:{layout:"fit",containerCls:"panel"},Mixins:[Ae],renderHtml:function(){var t=this,e=t._layout,n=t.settings.html;return t.preRender(),e.preRender(t),void 0===n?n='<div id="'+t._id+'-body" class="'+t.bodyClasses+'">'+e.renderHtml(t)+"</div>":("function"==typeof n&&(n=n.call(t)),t._hasBody=!1),'<div id="'+t._id+'" class="'+t.classes+'" hidefocus="1" tabindex="-1" role="group">'+(t._preBodyHtml||"")+n+"</div>"}}),Le={resizeToContent:function(){this._layoutRect.autoResize=!0,this._lastRect=null,this.reflow()},resizeTo:function(t,e){if(t<=1||e<=1){var n=Pt.getWindowSize();t=t<=1?t*n.w:t,e=e<=1?e*n.h:e}return this._layoutRect.autoResize=!1,this.layoutRect({minW:t,minH:e,w:t,h:e}).reflow()},resizeBy:function(t,e){var n=this.layoutRect();return this.resizeTo(n.w+t,n.h+e)}},Ie=[],ze=[];function Fe(t,e){for(;t;){if(t===e)return!0;t=t.parent()}}function Ve(){Te||(Te=function(t){2!==t.button&&function(t){for(var e=Ie.length;e--;){var n=Ie[e],i=n.getParentCtrl(t.target);if(n.settings.autohide){if(i&&(Fe(i,n)||n.parent()===i))continue;(t=n.fire("autohide",{target:t.target})).isDefaultPrevented()||n.hide()}}}(t)},Nt(document).on("click touchstart",Te))}function qe(r){var t=Pt.getViewPort().y;function e(t,e){for(var n,i=0;i<Ie.length;i++)if(Ie[i]!==r)for(n=Ie[i].parent();n&&(n=n.parent());)n===r&&Ie[i].fixed(t).moveBy(0,e).repaint()}r.settings.autofix&&(r.state.get("fixed")?r._autoFixY>t&&(r.fixed(!1).layoutRect({y:r._autoFixY}).repaint(),e(!1,r._autoFixY-t)):(r._autoFixY=r.layoutRect().y,r._autoFixY<t&&(r.fixed(!0).layoutRect({y:0}).repaint(),e(!0,t-r._autoFixY))))}function Ue(t,e){var n,i,r=je.zIndex||65535;if(t)ze.push(e);else for(n=ze.length;n--;)ze[n]===e&&ze.splice(n,1);if(ze.length)for(n=0;n<ze.length;n++)ze[n].modal&&(r++,i=ze[n]),ze[n].getEl().style.zIndex=r,ze[n].zIndex=r,r++;var o=Nt("#"+e.classPrefix+"modal-block",e.getContainerElm())[0];i?Nt(o).css("z-index",i.zIndex-1):o&&(o.parentNode.removeChild(o),Ne=!1),je.currentZIndex=r}var je=Be.extend({Mixins:[ye,Le],init:function(t){var i=this;i._super(t),(i._eventsRoot=i).classes.add("floatpanel"),t.autohide&&(Ve(),function(){if(!Pe){var t=document.documentElement,e=t.clientWidth,n=t.clientHeight;Pe=function(){document.all&&e===t.clientWidth&&n===t.clientHeight||(e=t.clientWidth,n=t.clientHeight,je.hideAll())},Nt(window).on("resize",Pe)}}(),Ie.push(i)),t.autofix&&(We||(We=function(){var t;for(t=Ie.length;t--;)qe(Ie[t])},Nt(window).on("scroll",We)),i.on("move",function(){qe(this)})),i.on("postrender show",function(t){if(t.control===i){var e,n=i.classPrefix;i.modal&&!Ne&&((e=Nt("#"+n+"modal-block",i.getContainerElm()))[0]||(e=Nt('<div id="'+n+'modal-block" class="'+n+"reset "+n+'fade"></div>').appendTo(i.getContainerElm())),c.setTimeout(function(){e.addClass(n+"in"),Nt(i.getEl()).addClass(n+"in")}),Ne=!0),Ue(!0,i)}}),i.on("show",function(){i.parents().each(function(t){if(t.state.get("fixed"))return i.fixed(!0),!1})}),t.popover&&(i._preBodyHtml='<div class="'+i.classPrefix+'arrow"></div>',i.classes.add("popover").add("bottom").add(i.isRtl()?"end":"start")),i.aria("label",t.ariaLabel),i.aria("labelledby",i._id),i.aria("describedby",i.describedBy||i._id+"-none")},fixed:function(t){var e=this;if(e.state.get("fixed")!==t){if(e.state.get("rendered")){var n=Pt.getViewPort();t?e.layoutRect().y-=n.y:e.layoutRect().y+=n.y}e.classes.toggle("fixed",t),e.state.set("fixed",t)}return e},show:function(){var t,e=this._super();for(t=Ie.length;t--&&Ie[t]!==this;);return-1===t&&Ie.push(this),e},hide:function(){return $e(this),Ue(!1,this),this._super()},hideAll:function(){je.hideAll()},close:function(){return this.fire("close").isDefaultPrevented()||(this.remove(),Ue(!1,this)),this},remove:function(){$e(this),this._super()},postRender:function(){return this.settings.bodyRole&&this.getEl("body").setAttribute("role",this.settings.bodyRole),this._super()}});function $e(t){var e;for(e=Ie.length;e--;)Ie[e]===t&&Ie.splice(e,1);for(e=ze.length;e--;)ze[e]===t&&ze.splice(e,1)}je.hideAll=function(){for(var t=Ie.length;t--;){var e=Ie[t];e&&e.settings.autohide&&(e.hide(),Ie.splice(t,1))}};var Ye=[],Xe="";function Je(t){var e,n=Nt("meta[name=viewport]")[0];!1!==h.overrideViewPort&&(n||((n=document.createElement("meta")).setAttribute("name","viewport"),document.getElementsByTagName("head")[0].appendChild(n)),(e=n.getAttribute("content"))&&void 0!==Xe&&(Xe=e),n.setAttribute("content",t?"width=device-width,initial-scale=1.0,user-scalable=0,minimum-scale=1.0,maximum-scale=1.0":Xe))}function Ge(t,e){(function(){for(var t=0;t<Ye.length;t++)if(Ye[t]._fullscreen)return!0;return!1})()&&!1===e&&Nt([document.documentElement,document.body]).removeClass(t+"fullscreen")}var Ke=je.extend({modal:!0,Defaults:{border:1,layout:"flex",containerCls:"panel",role:"dialog",callbacks:{submit:function(){this.fire("submit",{data:this.toJSON()})},close:function(){this.close()}}},init:function(t){var n=this;n._super(t),n.isRtl()&&n.classes.add("rtl"),n.classes.add("window"),n.bodyClasses.add("window-body"),n.state.set("fixed",!0),t.buttons&&(n.statusbar=new Be({layout:"flex",border:"1 0 0 0",spacing:3,padding:10,align:"center",pack:n.isRtl()?"start":"end",defaults:{type:"button"},items:t.buttons}),n.statusbar.classes.add("foot"),n.statusbar.parent(n)),n.on("click",function(t){var e=n.classPrefix+"close";(Pt.hasClass(t.target,e)||Pt.hasClass(t.target.parentNode,e))&&n.close()}),n.on("cancel",function(){n.close()}),n.on("move",function(t){t.control===n&&je.hideAll()}),n.aria("describedby",n.describedBy||n._id+"-none"),n.aria("label",t.title),n._fullscreen=!1},recalc:function(){var t,e,n,i,r=this,o=r.statusbar;r._fullscreen&&(r.layoutRect(Pt.getWindowSize()),r.layoutRect().contentH=r.layoutRect().innerH),r._super(),t=r.layoutRect(),r.settings.title&&!r._fullscreen&&(e=t.headerW)>t.w&&(n=t.x-Math.max(0,e/2),r.layoutRect({w:e,x:n}),i=!0),o&&(o.layoutRect({w:r.layoutRect().innerW}).recalc(),(e=o.layoutRect().minW+t.deltaW)>t.w&&(n=t.x-Math.max(0,e-t.w),r.layoutRect({w:e,x:n}),i=!0)),i&&r.recalc()},initLayoutRect:function(){var t,e=this,n=e._super(),i=0;if(e.settings.title&&!e._fullscreen){t=e.getEl("head");var r=Pt.getSize(t);n.headerW=r.width,n.headerH=r.height,i+=n.headerH}e.statusbar&&(i+=e.statusbar.layoutRect().h),n.deltaH+=i,n.minH+=i,n.h+=i;var o=Pt.getWindowSize();return n.x=e.settings.x||Math.max(0,o.w/2-n.w/2),n.y=e.settings.y||Math.max(0,o.h/2-n.h/2),n},renderHtml:function(){var t=this,e=t._layout,n=t._id,i=t.classPrefix,r=t.settings,o="",s="",a=r.html;return t.preRender(),e.preRender(t),r.title&&(o='<div id="'+n+'-head" class="'+i+'window-head"><div id="'+n+'-title" class="'+i+'title">'+t.encode(r.title)+'</div><div id="'+n+'-dragh" class="'+i+'dragh"></div><button type="button" class="'+i+'close" aria-hidden="true"><i class="mce-ico mce-i-remove"></i></button></div>'),r.url&&(a='<iframe src="'+r.url+'" tabindex="-1"></iframe>'),void 0===a&&(a=e.renderHtml(t)),t.statusbar&&(s=t.statusbar.renderHtml()),'<div id="'+n+'" class="'+t.classes+'" hidefocus="1"><div class="'+t.classPrefix+'reset" role="application">'+o+'<div id="'+n+'-body" class="'+t.bodyClasses+'">'+a+"</div>"+s+"</div></div>"},fullscreen:function(t){var n,e,i=this,r=document.documentElement,o=i.classPrefix;if(t!==i._fullscreen)if(Nt(window).on("resize",function(){var t;if(i._fullscreen)if(n)i._timer||(i._timer=c.setTimeout(function(){var t=Pt.getWindowSize();i.moveTo(0,0).resizeTo(t.w,t.h),i._timer=0},50));else{t=(new Date).getTime();var e=Pt.getWindowSize();i.moveTo(0,0).resizeTo(e.w,e.h),50<(new Date).getTime()-t&&(n=!0)}}),e=i.layoutRect(),i._fullscreen=t){i._initial={x:e.x,y:e.y,w:e.w,h:e.h},i.borderBox=At("0"),i.getEl("head").style.display="none",e.deltaH-=e.headerH+2,Nt([r,document.body]).addClass(o+"fullscreen"),i.classes.add("fullscreen");var s=Pt.getWindowSize();i.moveTo(0,0).resizeTo(s.w,s.h)}else i.borderBox=At(i.settings.border),i.getEl("head").style.display="",e.deltaH+=e.headerH,Nt([r,document.body]).removeClass(o+"fullscreen"),i.classes.remove("fullscreen"),i.moveTo(i._initial.x,i._initial.y).resizeTo(i._initial.w,i._initial.h);return i.reflow()},postRender:function(){var e,n=this;setTimeout(function(){n.classes.add("in"),n.fire("open")},0),n._super(),n.statusbar&&n.statusbar.postRender(),n.focus(),this.dragHelper=new Ee(n._id+"-dragh",{start:function(){e={x:n.layoutRect().x,y:n.layoutRect().y}},drag:function(t){n.moveTo(e.x+t.deltaX,e.y+t.deltaY)}}),n.on("submit",function(t){t.isDefaultPrevented()||n.close()}),Ye.push(n),Je(!0)},submit:function(){return this.fire("submit",{data:this.toJSON()})},remove:function(){var t,e=this;for(e.dragHelper.destroy(),e._super(),e.statusbar&&this.statusbar.remove(),Ge(e.classPrefix,!1),t=Ye.length;t--;)Ye[t]===e&&Ye.splice(t,1);Je(0<Ye.length)},getContentWindow:function(){var t=this.getEl().getElementsByTagName("iframe")[0];return t?t.contentWindow:null}});!function(){if(!h.desktop){var n={w:window.innerWidth,h:window.innerHeight};c.setInterval(function(){var t=window.innerWidth,e=window.innerHeight;n.w===t&&n.h===e||(n={w:t,h:e},Nt(window).trigger("resize"))},100)}Nt(window).on("resize",function(){var t,e,n=Pt.getWindowSize();for(t=0;t<Ye.length;t++)e=Ye[t].layoutRect(),Ye[t].moveTo(Ye[t].settings.x||Math.max(0,n.w/2-e.w/2),Ye[t].settings.y||Math.max(0,n.h/2-e.h/2))})}();var Ze=Ke.extend({init:function(t){t={border:1,padding:20,layout:"flex",pack:"center",align:"center",containerCls:"panel",autoScroll:!0,buttons:{type:"button",text:"Ok",action:"ok"},items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200}},this._super(t)},Statics:{OK:1,OK_CANCEL:2,YES_NO:3,YES_NO_CANCEL:4,msgBox:function(t){var e,i=t.callback||function(){};function n(t,e,n){return{type:"button",text:t,subtype:n?"primary":"",onClick:function(t){t.control.parents()[1].close(),i(e)}}}switch(t.buttons){case Ze.OK_CANCEL:e=[n("Ok",!0,!0),n("Cancel",!1)];break;case Ze.YES_NO:case Ze.YES_NO_CANCEL:e=[n("Yes",1,!0),n("No",0)],t.buttons===Ze.YES_NO_CANCEL&&e.push(n("Cancel",-1));break;default:e=[n("Ok",!0,!0)]}return new Ke({padding:20,x:t.x,y:t.y,minWidth:300,minHeight:100,layout:"flex",pack:"center",align:"center",buttons:e,title:t.title,role:"alertdialog",items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200,text:t.text},onPostRender:function(){this.aria("describedby",this.items()[0]._id)},onClose:t.onClose,onCancel:function(){i(!1)}}).renderTo(document.body).reflow()},alert:function(t,e){return"string"==typeof t&&(t={text:t}),t.callback=e,Ze.msgBox(t)},confirm:function(t,e){return"string"==typeof t&&(t={text:t}),t.callback=e,t.buttons=Ze.OK_CANCEL,Ze.msgBox(t)}}}),Qe=function(t,e){return{renderUI:function(){return st(t,e)},getNotificationManagerImpl:function(){return Ce(t)},getWindowManagerImpl:function(){return{open:function(n,t,e){var i;return n.title=n.title||" ",n.url=n.url||n.file,n.url&&(n.width=parseInt(n.width||320,10),n.height=parseInt(n.height||240,10)),n.body&&(n.items={defaults:n.defaults,type:n.bodyType||"form",items:n.body,data:n.data,callbacks:n.commands}),n.url||n.buttons||(n.buttons=[{text:"Ok",subtype:"primary",onclick:function(){i.find("form")[0].submit()}},{text:"Cancel",onclick:function(){i.close()}}]),(i=new Ke(n)).on("close",function(){e(i)}),n.data&&i.on("postRender",function(){this.find("*").each(function(t){var e=t.name();e in n.data&&t.value(n.data[e])})}),i.features=n||{},i.params=t||{},i=i.renderTo(document.body).reflow()},alert:function(t,e,n){var i;return(i=Ze.alert(t,function(){e()})).on("close",function(){n(i)}),i},confirm:function(t,e,n){var i;return(i=Ze.confirm(t,function(t){e(t)})).on("close",function(){n(i)}),i},close:function(t){t.close()},getParams:function(t){return t.params},setParams:function(t,e){t.params=e}}}}},tn="undefined"!=typeof window?window:Function("return this;")(),en=function(t,e){for(var n=e!==undefined&&null!==e?e:tn,i=0;i<t.length&&n!==undefined&&null!==n;++i)n=n[t[i]];return n},nn=function(t,e){var n=t.split(".");return en(n,e)},rn={getOrDie:function(t,e){var n=nn(t,e);if(n===undefined||null===n)throw t+" not available on this browser";return n}};function on(){return new(rn.getOrDie("FileReader"))}var sn,an=tinymce.util.Tools.resolve("tinymce.util.Promise"),ln=function(n){return new an(function(t){var e=new on;e.onloadend=function(){t(e.result.split(",")[1])},e.readAsDataURL(n)})},un=function(){return new an(function(e){var t;(t=document.createElement("input")).type="file",t.style.position="fixed",t.style.left=0,t.style.top=0,t.style.opacity=.001,document.body.appendChild(t),t.onchange=function(t){e(Array.prototype.slice.call(t.target.files))},t.click(),t.parentNode.removeChild(t)})},cn=0,dn=function(t){return t+cn+++(e=function(){return Math.round(4294967295*Math.random()).toString(36)},"s"+Date.now().toString(36)+e()+e()+e());var e},fn=function(r,o){var s={};function t(t){var e,n,i;n=o[t?"startContainer":"endContainer"],i=o[t?"startOffset":"endOffset"],1===n.nodeType&&(e=r.create("span",{"data-mce-type":"bookmark"}),n.hasChildNodes()?(i=Math.min(i,n.childNodes.length-1),t?n.insertBefore(e,n.childNodes[i]):r.insertAfter(e,n.childNodes[i])):n.appendChild(e),n=e,i=0),s[t?"startContainer":"endContainer"]=n,s[t?"startOffset":"endOffset"]=i}return t(!0),o.collapsed||t(),s},hn=function(r,o){function t(t){var e,n,i;e=i=o[t?"startContainer":"endContainer"],n=o[t?"startOffset":"endOffset"],e&&(1===e.nodeType&&(n=function(t){for(var e=t.parentNode.firstChild,n=0;e;){if(e===t)return n;1===e.nodeType&&"bookmark"===e.getAttribute("data-mce-type")||n++,e=e.nextSibling}return-1}(e),e=e.parentNode,r.remove(i)),o[t?"startContainer":"endContainer"]=e,o[t?"startOffset":"endOffset"]=n)}t(!0),t();var e=r.createRng();return e.setStart(o.startContainer,o.startOffset),o.endContainer&&e.setEnd(o.endContainer,o.endOffset),e},mn=tinymce.util.Tools.resolve("tinymce.dom.TreeWalker"),gn=tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"),pn=function(t){return"A"===t.nodeName&&t.hasAttribute("href")},vn=function(t){var e,n,i,r,o,s,a,l;return r=t.selection,o=t.dom,s=r.getRng(),a=o,l=gn.getNode(s.startContainer,s.startOffset),e=a.getParent(l,pn)||l,n=gn.getNode(s.endContainer,s.endOffset),i=t.getBody(),R.grep(function(t,e,n){var i,r,o=[];for(i=new mn(e,t),r=e;r&&(1===r.nodeType&&o.push(r),r!==n);r=i.next());return o}(i,e,n),pn)},yn=function(t){var e,n,i,r,o;n=vn(e=t),r=e.dom,o=e.selection,i=fn(r,o.getRng()),R.each(n,function(t){e.dom.remove(t,!0)}),o.setRng(hn(r,i))},bn=function(t){t.selection.collapse(!1)},xn=function(t){t.focus(),yn(t),bn(t)},wn=function(t,e){var n,i,r,o,s,a=t.dom.getParent(t.selection.getStart(),"a[href]");a?(o=a,s=e,(r=t).focus(),r.dom.setAttrib(o,"href",s),bn(r)):(i=e,(n=t).execCommand("mceInsertLink",!1,{href:i}),bn(n))},_n=function(t,e,n){var i,r,o;t.plugins.table?t.plugins.table.insertTable(e,n):(r=e,o=n,(i=t).undoManager.transact(function(){var t,e;i.insertContent(function(t,e){var n,i,r;for(r='<table data-mce-id="mce" style="width: 100%">',r+="<tbody>",i=0;i<e;i++){for(r+="<tr>",n=0;n<t;n++)r+="<td><br></td>";r+="</tr>"}return r+="</tbody>",r+="</table>"}(r,o)),(t=i.dom.select("*[data-mce-id]")[0]).removeAttribute("data-mce-id"),e=i.dom.select("td,th",t),i.selection.setCursorLocation(e[0],0)}))},Rn=function(t,e){t.execCommand("FormatBlock",!1,e)},Cn=function(t,e,n){var i,r;r=(i=t.editorUpload.blobCache).create(dn("mceu"),n,e),i.add(r),t.insertContent(t.dom.createHTML("img",{src:r.blobUri()}))},kn=function(t,e){0===e.trim().length?xn(t):wn(t,e)},En=xn,Hn=function(n,t){n.addButton("quicklink",{icon:"link",tooltip:"Insert/Edit link",stateSelector:"a[href]",onclick:function(){t.showForm(n,"quicklink")}}),n.addButton("quickimage",{icon:"image",tooltip:"Insert image",onclick:function(){un().then(function(t){var e=t[0];ln(e).then(function(t){Cn(n,t,e)})})}}),n.addButton("quicktable",{icon:"table",tooltip:"Insert table",onclick:function(){t.hide(),_n(n,2,2)}}),function(e){for(var t=function(t){return function(){Rn(e,t)}},n=1;n<6;n++){var i="h"+n;e.addButton(i,{text:i.toUpperCase(),tooltip:"Heading "+n,stateSelector:i,onclick:t(i),onPostRender:function(){this.getEl().firstChild.firstChild.style.fontWeight="bold"}})}}(n)},Sn=function(){var t=h.container;if(t&&"static"!==v.DOM.getStyle(t,"position",!0)){var e=v.DOM.getPos(t),n=e.x-t.scrollLeft,i=e.y-t.scrollTop;return mt.some({x:n,y:i})}return mt.none()},Mn=function(t){return/^www\.|\.(com|org|edu|gov|uk|net|ca|de|jp|fr|au|us|ru|ch|it|nl|se|no|es|mil)$/i.test(t.trim())},Tn=function(t){return/^https?:\/\//.test(t.trim())},Wn=function(t,e){return!Tn(e)&&Mn(e)?(n=t,i=e,new an(function(e){n.windowManager.confirm("The URL you entered seems to be an external link. Do you want to add the required http:// prefix?",function(t){e(!0===t?"http://"+i:i)})})):an.resolve(e);var n,i},Pn=function(r,e){var t,n,i,o={};return t="quicklink",n={items:[{type:"button",name:"unlink",icon:"unlink",onclick:function(){r.focus(),En(r),e()},tooltip:"Remove link"},{type:"filepicker",name:"linkurl",placeholder:"Paste or type a link",filetype:"file",onchange:function(t){var e=t.meta;e&&e.attach&&(o={href:this.value(),attach:e.attach})}},{type:"button",icon:"checkmark",subtype:"primary",tooltip:"Ok",onclick:"submit"}],onshow:function(t){if(t.control===this){var e,n="";(e=r.dom.getParent(r.selection.getStart(),"a[href]"))&&(n=r.dom.getAttrib(e,"href")),this.fromJSON({linkurl:n}),i=this.find("#unlink"),e?i.show():i.hide(),this.find("#linkurl")[0].focus()}var i},onsubmit:function(t){Wn(r,t.data.linkurl).then(function(t){r.undoManager.transact(function(){t===o.href&&(o.attach(),o={}),kn(r,t)}),e()})}},(i=He.create(R.extend({type:"form",layout:"flex",direction:"row",padding:5,name:t,spacing:3},n))).on("show",function(){i.find("textbox").eq(0).each(function(t){t.focus()})}),i},Nn=function(n,t,e){var o,i,s=[];if(e)return R.each(B(i=e)?i:N(i)?i.split(/[ ,]/):[],function(t){if("|"===t)o=null;else if(n.buttons[t]){o||(o={type:"buttongroup",items:[]},s.push(o));var e=n.buttons[t];A(e)&&(e=e()),e.type=e.type||"button",(e=He.create(e)).on("postRender",(i=n,r=e,function(){var e,t,n=(t=function(t,e){return{selector:t,handler:e}},(e=r).settings.stateSelector?t(e.settings.stateSelector,function(t){e.active(t)}):e.settings.disabledStateSelector?t(e.settings.disabledStateSelector,function(t){e.disabled(t)}):null);null!==n&&i.selection.selectorChanged(n.selector,n.handler)})),o.items.push(e)}var i,r}),He.create({type:"toolbar",layout:"flow",name:t,items:s})},On=function(){var l,c,o=function(t){return 0<t.items().length},u=function(t,e){var n,i,r=(n=t,i=e,R.map(i,function(t){return Nn(n,t.id,t.items)})).concat([Nn(t,"text",J(t)),Nn(t,"insert",G(t)),Pn(t,p)]);return He.create({type:"floatpanel",role:"dialog",classes:"tinymce tinymce-inline arrow",ariaLabel:"Inline toolbar",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:!0,border:1,items:R.grep(r,o),oncancel:function(){t.focus()}})},d=function(t){t&&t.show()},f=function(t,e){t.moveTo(e.x,e.y)},h=function(n,i){i=i?i.substr(0,2):"",R.each({t:"down",b:"up",c:"center"},function(t,e){n.classes.toggle("arrow-"+t,e===i.substr(0,1))}),"cr"===i?(n.classes.toggle("arrow-left",!0),n.classes.toggle("arrow-right",!1)):"cl"===i?(n.classes.toggle("arrow-left",!0),n.classes.toggle("arrow-right",!0)):R.each({l:"left",r:"right"},function(t,e){n.classes.toggle("arrow-"+t,e===i.substr(1,1))})},m=function(t,e){var n=t.items().filter("#"+e);return 0<n.length&&(n[0].show(),t.reflow(),!0)},g=function(t,e,n,i){var r,o,s,a;if(a=K(n),r=b(n),o=v.DOM.getRect(t.getEl()),s="insert"===e?j(i,r,o):$(i,r,o)){var l=Sn().getOr({x:0,y:0}),u={x:s.rect.x-l.x,y:s.rect.y-l.y,w:s.rect.w,h:s.rect.h};return f(t,Y(a,c=i,r,u)),h(t,s.position),!0}return!1},p=function(){l&&l.hide()};return{show:function(t,e,n,i){var r,o,s,a;l||(M(t),(l=u(t,i)).renderTo().reflow().moveTo(n.x,n.y),t.nodeChanged()),o=e,s=t,a=n,d(r=l),r.items().hide(),m(r,o)?!1===g(r,o,s,a)&&p():p()},showForm:function(t,e){if(l){if(l.items().hide(),!m(l,e))return void p();var n,i,r,o=void 0;d(l),l.items().hide(),m(l,e),r=K(t),n=b(t),o=v.DOM.getRect(l.getEl()),(i=$(c,n,o))&&(o=i.rect,f(l,Y(r,c,n,o)),h(l,i.position))}},reposition:function(t,e,n){l&&g(l,e,t,n)},inForm:function(){return l&&l.visible()&&0<l.items().filter("form:visible").length},hide:p,focus:function(){l&&l.find("toolbar:visible").eq(0).each(function(t){t.focus(!0)})},remove:function(){l&&(l.remove(),l=null)}}},Dn=Ot.extend({Defaults:{firstControlClass:"first",lastControlClass:"last"},init:function(t){this.settings=R.extend({},this.Defaults,t)},preRender:function(t){t.bodyClasses.add(this.settings.containerClass)},applyClasses:function(t){var e,n,i,r,o=this.settings;e=o.firstControlClass,n=o.lastControlClass,t.each(function(t){t.classes.remove(e).remove(n).add(o.controlClass),t.visible()&&(i||(i=t),r=t)}),i&&i.classes.add(e),r&&r.classes.add(n)},renderHtml:function(t){var e="";return this.applyClasses(t.items()),t.items().each(function(t){e+=t.renderHtml()}),e},recalc:function(){},postRender:function(){},isNative:function(){return!1}}),An=Dn.extend({Defaults:{containerClass:"abs-layout",controlClass:"abs-layout-item"},recalc:function(t){t.items().filter(":visible").each(function(t){var e=t.settings;t.layoutRect({x:e.x,y:e.y,w:e.w,h:e.h}),t.recalc&&t.recalc()})},renderHtml:function(t){return'<div id="'+t._id+'-absend" class="'+t.classPrefix+'abs-end"></div>'+this._super(t)}}),Bn=xe.extend({Defaults:{classes:"widget btn",role:"button"},init:function(t){var e,n=this;n._super(t),t=n.settings,e=n.settings.size,n.on("click mousedown",function(t){t.preventDefault()}),n.on("touchstart",function(t){n.fire("click",t),t.preventDefault()}),t.subtype&&n.classes.add(t.subtype),e&&n.classes.add("btn-"+e),t.icon&&n.icon(t.icon)},icon:function(t){return arguments.length?(this.state.set("icon",t),this):this.state.get("icon")},repaint:function(){var t,e=this.getEl().firstChild;e&&((t=e.style).width=t.height="100%"),this._super()},renderHtml:function(){var t,e,n=this,i=n._id,r=n.classPrefix,o=n.state.get("icon"),s=n.state.get("text"),a="",l=n.settings;return(t=l.image)?(o="none","string"!=typeof t&&(t=window.getSelection?t[0]:t[1]),t=" style=\"background-image: url('"+t+"')\""):t="",s&&(n.classes.add("btn-has-text"),a='<span class="'+r+'txt">'+n.encode(s)+"</span>"),o=o?r+"ico "+r+"i-"+o:"",e="boolean"==typeof l.active?' aria-pressed="'+l.active+'"':"",'<div id="'+i+'" class="'+n.classes+'" tabindex="-1"'+e+'><button id="'+i+'-button" role="presentation" type="button" tabindex="-1">'+(o?'<i class="'+o+'"'+t+"></i>":"")+a+"</button></div>"},bindStates:function(){var o=this,n=o.$,i=o.classPrefix+"txt";function s(t){var e=n("span."+i,o.getEl());t?(e[0]||(n("button:first",o.getEl()).append('<span class="'+i+'"></span>'),e=n("span."+i,o.getEl())),e.html(o.encode(t))):e.remove(),o.classes.toggle("btn-has-text",!!t)}return o.state.on("change:text",function(t){s(t.value)}),o.state.on("change:icon",function(t){var e=t.value,n=o.classPrefix;e=(o.settings.icon=e)?n+"ico "+n+"i-"+o.settings.icon:"";var i=o.getEl().firstChild,r=i.getElementsByTagName("i")[0];e?(r&&r===i.firstChild||(r=document.createElement("i"),i.insertBefore(r,i.firstChild)),r.className=e):r&&i.removeChild(r),s(o.state.get("text"))}),o._super()}}),Ln=Bn.extend({init:function(t){t=R.extend({text:"Browse...",multiple:!1,accept:null},t),this._super(t),this.classes.add("browsebutton"),t.multiple&&this.classes.add("multiple")},postRender:function(){var n=this,e=Pt.create("input",{type:"file",id:n._id+"-browse",accept:n.settings.accept});n._super(),Nt(e).on("change",function(t){var e=t.target.files;n.value=function(){return e.length?n.settings.multiple?e:e[0]:null},t.preventDefault(),e.length&&n.fire("change",t)}),Nt(e).on("click",function(t){t.stopPropagation()}),Nt(n.getEl("button")).on("click",function(t){t.stopPropagation(),e.click()}),n.getEl().appendChild(e)},remove:function(){Nt(this.getEl("button")).off(),Nt(this.getEl("input")).off(),this._super()}}),In=De.extend({Defaults:{defaultType:"button",role:"group"},renderHtml:function(){var t=this,e=t._layout;return t.classes.add("btn-group"),t.preRender(),e.preRender(t),'<div id="'+t._id+'" class="'+t.classes+'"><div id="'+t._id+'-body">'+(t.settings.html||"")+e.renderHtml(t)+"</div></div>"}}),zn=xe.extend({Defaults:{classes:"checkbox",role:"checkbox",checked:!1},init:function(t){var e=this;e._super(t),e.on("click mousedown",function(t){t.preventDefault()}),e.on("click",function(t){t.preventDefault(),e.disabled()||e.checked(!e.checked())}),e.checked(e.settings.checked)},checked:function(t){return arguments.length?(this.state.set("checked",t),this):this.state.get("checked")},value:function(t){return arguments.length?this.checked(t):this.checked()},renderHtml:function(){var t=this,e=t._id,n=t.classPrefix;return'<div id="'+e+'" class="'+t.classes+'" unselectable="on" aria-labelledby="'+e+'-al" tabindex="-1"><i class="'+n+"ico "+n+'i-checkbox"></i><span id="'+e+'-al" class="'+n+'label">'+t.encode(t.state.get("text"))+"</span></div>"},bindStates:function(){var o=this;function e(t){o.classes.toggle("checked",t),o.aria("checked",t)}return o.state.on("change:text",function(t){o.getEl("al").firstChild.data=o.translate(t.value)}),o.state.on("change:checked change:value",function(t){o.fire("change"),e(t.value)}),o.state.on("change:icon",function(t){var e=t.value,n=o.classPrefix;if(void 0===e)return o.settings.icon;e=(o.settings.icon=e)?n+"ico "+n+"i-"+o.settings.icon:"";var i=o.getEl().firstChild,r=i.getElementsByTagName("i")[0];e?(r&&r===i.firstChild||(r=document.createElement("i"),i.insertBefore(r,i.firstChild)),r.className=e):r&&i.removeChild(r)}),o.state.get("checked")&&e(!0),o._super()}}),Fn=tinymce.util.Tools.resolve("tinymce.util.VK"),Vn=xe.extend({init:function(i){var r=this;r._super(i),i=r.settings,r.classes.add("combobox"),r.subinput=!0,r.ariaTarget="inp",i.menu=i.menu||i.values,i.menu&&(i.icon="caret"),r.on("click",function(t){var e=t.target,n=r.getEl();if(Nt.contains(n,e)||e===n)for(;e&&e!==n;)e.id&&-1!==e.id.indexOf("-open")&&(r.fire("action"),i.menu&&(r.showMenu(),t.aria&&r.menu.items()[0].focus())),e=e.parentNode}),r.on("keydown",function(t){var e;13===t.keyCode&&"INPUT"===t.target.nodeName&&(t.preventDefault(),r.parents().reverse().each(function(t){if(t.toJSON)return e=t,!1}),r.fire("submit",{data:e.toJSON()}))}),r.on("keyup",function(t){if("INPUT"===t.target.nodeName){var e=r.state.get("value"),n=t.target.value;n!==e&&(r.state.set("value",n),r.fire("autocomplete",t))}}),r.on("mouseover",function(t){var e=r.tooltip().moveTo(-65535);if(r.statusLevel()&&-1!==t.target.className.indexOf(r.classPrefix+"status")){var n=r.statusMessage()||"Ok",i=e.text(n).show().testMoveRel(t.target,["bc-tc","bc-tl","bc-tr"]);e.classes.toggle("tooltip-n","bc-tc"===i),e.classes.toggle("tooltip-nw","bc-tl"===i),e.classes.toggle("tooltip-ne","bc-tr"===i),e.moveRel(t.target,i)}})},statusLevel:function(t){return 0<arguments.length&&this.state.set("statusLevel",t),this.state.get("statusLevel")},statusMessage:function(t){return 0<arguments.length&&this.state.set("statusMessage",t),this.state.get("statusMessage")},showMenu:function(){var t,e=this,n=e.settings;e.menu||((t=n.menu||[]).length?t={type:"menu",items:t}:t.type=t.type||"menu",e.menu=He.create(t).parent(e).renderTo(e.getContainerElm()),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control===e.menu&&e.focus()}),e.menu.on("show hide",function(t){t.control.items().each(function(t){t.active(t.value()===e.value())})}).fire("show"),e.menu.on("select",function(t){e.value(t.control.value())}),e.on("focusin",function(t){"INPUT"===t.target.tagName.toUpperCase()&&e.menu.hide()}),e.aria("expanded",!0)),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])},focus:function(){this.getEl("inp").focus()},repaint:function(){var t,e,n=this,i=n.getEl(),r=n.getEl("open"),o=n.layoutRect(),s=0,a=i.firstChild;n.statusLevel()&&"none"!==n.statusLevel()&&(s=parseInt(Pt.getRuntimeStyle(a,"padding-right"),10)-parseInt(Pt.getRuntimeStyle(a,"padding-left"),10)),t=r?o.w-Pt.getSize(r).width-10:o.w-10;var l=document;return l.all&&(!l.documentMode||l.documentMode<=8)&&(e=n.layoutRect().h-2+"px"),Nt(a).css({width:t-s,lineHeight:e}),n._super(),n},postRender:function(){var e=this;return Nt(this.getEl("inp")).on("change",function(t){e.state.set("value",t.target.value),e.fire("change",t)}),e._super()},renderHtml:function(){var t,e,n,i=this,r=i._id,o=i.settings,s=i.classPrefix,a=i.state.get("value")||"",l="",u="";return"spellcheck"in o&&(u+=' spellcheck="'+o.spellcheck+'"'),o.maxLength&&(u+=' maxlength="'+o.maxLength+'"'),o.size&&(u+=' size="'+o.size+'"'),o.subtype&&(u+=' type="'+o.subtype+'"'),n='<i id="'+r+'-status" class="mce-status mce-ico" style="display: none"></i>',i.disabled()&&(u+=' disabled="disabled"'),(t=o.icon)&&"caret"!==t&&(t=s+"ico "+s+"i-"+o.icon),e=i.state.get("text"),(t||e)&&(l='<div id="'+r+'-open" class="'+s+"btn "+s+'open" tabIndex="-1" role="button"><button id="'+r+'-action" type="button" hidefocus="1" tabindex="-1">'+("caret"!==t?'<i class="'+t+'"></i>':'<i class="'+s+'caret"></i>')+(e?(t?" ":"")+e:"")+"</button></div>",i.classes.add("has-open")),'<div id="'+r+'" class="'+i.classes+'"><input id="'+r+'-inp" class="'+s+'textbox" value="'+i.encode(a,!1)+'" hidefocus="1"'+u+' placeholder="'+i.encode(o.placeholder)+'" />'+n+l+"</div>"},value:function(t){return arguments.length?(this.state.set("value",t),this):(this.state.get("rendered")&&this.state.set("value",this.getEl("inp").value),this.state.get("value"))},showAutoComplete:function(t,i){var r=this;if(0!==t.length){r.menu?r.menu.items().remove():r.menu=He.create({type:"menu",classes:"combobox-menu",layout:"flow"}).parent(r).renderTo(),R.each(t,function(t){var e,n;r.menu.add({text:t.title,url:t.previewUrl,match:i,classes:"menu-item-ellipsis",onclick:(e=t.value,n=t.title,function(){r.fire("selectitem",{title:n,value:e})})})}),r.menu.renderNew(),r.hideMenu(),r.menu.on("cancel",function(t){t.control.parent()===r.menu&&(t.stopPropagation(),r.focus(),r.hideMenu())}),r.menu.on("select",function(){r.focus()});var e=r.layoutRect().w;r.menu.layoutRect({w:e,minW:0,maxW:e}),r.menu.repaint(),r.menu.reflow(),r.menu.show(),r.menu.moveRel(r.getEl(),r.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])}else r.hideMenu()},hideMenu:function(){this.menu&&this.menu.hide()},bindStates:function(){var r=this;r.state.on("change:value",function(t){r.getEl("inp").value!==t.value&&(r.getEl("inp").value=t.value)}),r.state.on("change:disabled",function(t){r.getEl("inp").disabled=t.value}),r.state.on("change:statusLevel",function(t){var e=r.getEl("status"),n=r.classPrefix,i=t.value;Pt.css(e,"display","none"===i?"none":""),Pt.toggleClass(e,n+"i-checkmark","ok"===i),Pt.toggleClass(e,n+"i-warning","warn"===i),Pt.toggleClass(e,n+"i-error","error"===i),r.classes.toggle("has-status","none"!==i),r.repaint()}),Pt.on(r.getEl("status"),"mouseleave",function(){r.tooltip().hide()}),r.on("cancel",function(t){r.menu&&r.menu.visible()&&(t.stopPropagation(),r.hideMenu())});var n=function(t,e){e&&0<e.items().length&&e.items().eq(t)[0].focus()};return r.on("keydown",function(t){var e=t.keyCode;"INPUT"===t.target.nodeName&&(e===Fn.DOWN?(t.preventDefault(),r.fire("autocomplete"),n(0,r.menu)):e===Fn.UP&&(t.preventDefault(),n(-1,r.menu)))}),r._super()},remove:function(){Nt(this.getEl("inp")).off(),this.menu&&this.menu.remove(),this._super()}}),qn=Vn.extend({init:function(t){var e=this;t.spellcheck=!1,t.onaction&&(t.icon="none"),e._super(t),e.classes.add("colorbox"),e.on("change keyup postrender",function(){e.repaintColor(e.value())})},repaintColor:function(t){var e=this.getEl("open"),n=e?e.getElementsByTagName("i")[0]:null;if(n)try{n.style.background=t}catch(i){}},bindStates:function(){var e=this;return e.state.on("change:value",function(t){e.state.get("rendered")&&e.repaintColor(t.value)}),e._super()}}),Un=Bn.extend({showPanel:function(){var e=this,t=e.settings;if(e.classes.add("opened"),e.panel)e.panel.show();else{var n=t.panel;n.type&&(n={layout:"grid",items:n}),n.role=n.role||"dialog",n.popover=!0,n.autohide=!0,n.ariaRoot=!0,e.panel=new je(n).on("hide",function(){e.classes.remove("opened")}).on("cancel",function(t){t.stopPropagation(),e.focus(),e.hidePanel()}).parent(e).renderTo(e.getContainerElm()),e.panel.fire("show"),e.panel.reflow()}var i=e.panel.testMoveRel(e.getEl(),t.popoverAlign||(e.isRtl()?["bc-tc","bc-tl","bc-tr"]:["bc-tc","bc-tr","bc-tl","tc-bc","tc-br","tc-bl"]));e.panel.classes.toggle("start","l"===i.substr(-1)),e.panel.classes.toggle("end","r"===i.substr(-1));var r="t"===i.substr(0,1);e.panel.classes.toggle("bottom",!r),e.panel.classes.toggle("top",r),e.panel.moveRel(e.getEl(),i)},hidePanel:function(){this.panel&&this.panel.hide()},postRender:function(){var e=this;return e.aria("haspopup",!0),e.on("click",function(t){t.control===e&&(e.panel&&e.panel.visible()?e.hidePanel():(e.showPanel(),e.panel.focus(!!t.aria)))}),e._super()},remove:function(){return this.panel&&(this.panel.remove(),this.panel=null),this._super()}}),jn=v.DOM,$n=Un.extend({init:function(t){this._super(t),this.classes.add("splitbtn"),this.classes.add("colorbutton")},color:function(t){return t?(this._color=t,this.getEl("preview").style.backgroundColor=t,this):this._color},resetColor:function(){return this._color=null,this.getEl("preview").style.backgroundColor=null,this},renderHtml:function(){var t=this,e=t._id,n=t.classPrefix,i=t.state.get("text"),r=t.settings.icon?n+"ico "+n+"i-"+t.settings.icon:"",o=t.settings.image?" style=\"background-image: url('"+t.settings.image+"')\"":"",s="";return i&&(t.classes.add("btn-has-text"),s='<span class="'+n+'txt">'+t.encode(i)+"</span>"),'<div id="'+e+'" class="'+t.classes+'" role="button" tabindex="-1" aria-haspopup="true"><button role="presentation" hidefocus="1" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+o+"></i>":"")+'<span id="'+e+'-preview" class="'+n+'preview"></span>'+s+'</button><button type="button" class="'+n+'open" hidefocus="1" tabindex="-1"> <i class="'+n+'caret"></i></button></div>'},postRender:function(){var e=this,n=e.settings.onclick;return e.on("click",function(t){t.aria&&"down"===t.aria.key||t.control!==e||jn.getParent(t.target,"."+e.classPrefix+"open")||(t.stopImmediatePropagation(),n.call(e,t))}),delete e.settings.onclick,e._super()}}),Yn=tinymce.util.Tools.resolve("tinymce.util.Color"),Xn=xe.extend({Defaults:{classes:"widget colorpicker"},init:function(t){this._super(t)},postRender:function(){var n,i,r,o,s,a=this,l=a.color();function u(t,e){var n,i,r=Pt.getPos(t);return n=e.pageX-r.x,i=e.pageY-r.y,{x:n=Math.max(0,Math.min(n/t.clientWidth,1)),y:i=Math.max(0,Math.min(i/t.clientHeight,1))}}function c(t,e){var n=(360-t.h)/360;Pt.css(r,{top:100*n+"%"}),e||Pt.css(s,{left:t.s+"%",top:100-t.v+"%"}),o.style.background=Yn({s:100,v:100,h:t.h}).toHex(),a.color().parse({s:t.s,v:t.v,h:t.h})}function t(t){var e;e=u(o,t),n.s=100*e.x,n.v=100*(1-e.y),c(n),a.fire("change")}function e(t){var e;e=u(i,t),(n=l.toHsv()).h=360*(1-e.y),c(n,!0),a.fire("change")}i=a.getEl("h"),r=a.getEl("hp"),o=a.getEl("sv"),s=a.getEl("svp"),a._repaint=function(){c(n=l.toHsv())},a._super(),a._svdraghelper=new Ee(a._id+"-sv",{start:t,drag:t}),a._hdraghelper=new Ee(a._id+"-h",{start:e,drag:e}),a._repaint()},rgb:function(){return this.color().toRgb()},value:function(t){if(!arguments.length)return this.color().toHex();this.color().parse(t),this._rendered&&this._repaint()},color:function(){return this._color||(this._color=Yn()),this._color},renderHtml:function(){var t,e=this._id,o=this.classPrefix,s="#ff0000,#ff0080,#ff00ff,#8000ff,#0000ff,#0080ff,#00ffff,#00ff80,#00ff00,#80ff00,#ffff00,#ff8000,#ff0000";return t='<div id="'+e+'-h" class="'+o+'colorpicker-h" style="background: -ms-linear-gradient(top,'+s+");background: linear-gradient(to bottom,"+s+');">'+function(){var t,e,n,i,r="";for(n="filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=",t=0,e=(i=s.split(",")).length-1;t<e;t++)r+='<div class="'+o+'colorpicker-h-chunk" style="height:'+100/e+"%;"+n+i[t]+",endColorstr="+i[t+1]+");-ms-"+n+i[t]+",endColorstr="+i[t+1]+')"></div>';return r}()+'<div id="'+e+'-hp" class="'+o+'colorpicker-h-marker"></div></div>','<div id="'+e+'" class="'+this.classes+'"><div id="'+e+'-sv" class="'+o+'colorpicker-sv"><div class="'+o+'colorpicker-overlay1"><div class="'+o+'colorpicker-overlay2"><div id="'+e+'-svp" class="'+o+'colorpicker-selector1"><div class="'+o+'colorpicker-selector2"></div></div></div></div></div>'+t+"</div>"}}),Jn=xe.extend({init:function(t){t=R.extend({height:100,text:"Drop an image here",multiple:!1,accept:null},t),this._super(t),this.classes.add("dropzone"),t.multiple&&this.classes.add("multiple")},renderHtml:function(){var t,e,n=this.settings;return t={id:this._id,hidefocus:"1"},e=Pt.create("div",t,"<span>"+this.translate(n.text)+"</span>"),n.height&&Pt.css(e,"height",n.height+"px"),n.width&&Pt.css(e,"width",n.width+"px"),e.className=this.classes,e.outerHTML},postRender:function(){var i=this,t=function(t){t.preventDefault(),i.classes.toggle("dragenter"),i.getEl().className=i.classes};i._super(),i.$el.on("dragover",function(t){t.preventDefault()}),i.$el.on("dragenter",t),i.$el.on("dragleave",t),i.$el.on("drop",function(t){if(t.preventDefault(),!i.state.get("disabled")){var e=function(t){var e=i.settings.accept;if("string"!=typeof e)return t;var n=new RegExp("("+e.split(/\s*,\s*/).join("|")+")$","i");return R.grep(t,function(t){return n.test(t.name)})}(t.dataTransfer.files);i.value=function(){return e.length?i.settings.multiple?e:e[0]:null},e.length&&i.fire("change",t)}})},remove:function(){this.$el.off(),this._super()}}),Gn=xe.extend({init:function(t){var n=this;t.delimiter||(t.delimiter="\xbb"),n._super(t),n.classes.add("path"),n.canFocus=!0,n.on("click",function(t){var e;(e=t.target.getAttribute("data-index"))&&n.fire("select",{value:n.row()[e],index:e})}),n.row(n.settings.row)},focus:function(){return this.getEl().firstChild.focus(),this},row:function(t){return arguments.length?(this.state.set("row",t),this):this.state.get("row")},renderHtml:function(){return'<div id="'+this._id+'" class="'+this.classes+'">'+this._getDataPathHtml(this.state.get("row"))+"</div>"},bindStates:function(){var e=this;return e.state.on("change:row",function(t){e.innerHtml(e._getDataPathHtml(t.value))}),e._super()},_getDataPathHtml:function(t){var e,n,i=t||[],r="",o=this.classPrefix;for(e=0,n=i.length;e<n;e++)r+=(0<e?'<div class="'+o+'divider" aria-hidden="true"> '+this.settings.delimiter+" </div>":"")+'<div role="button" class="'+o+"path-item"+(e===n-1?" "+o+"last":"")+'" data-index="'+e+'" tabindex="-1" id="'+this._id+"-"+e+'" aria-level="'+(e+1)+'">'+i[e].name+"</div>";return r||(r='<div class="'+o+'path-item">\xa0</div>'),r}}),Kn=Gn.extend({postRender:function(){var o=this,s=o.settings.editor;function a(t){if(1===t.nodeType){if("BR"===t.nodeName||t.getAttribute("data-mce-bogus"))return!0;if("bookmark"===t.getAttribute("data-mce-type"))return!0}return!1}return!1!==s.settings.elementpath&&(o.on("select",function(t){s.focus(),s.selection.select(this.row()[t.index].element),s.nodeChanged()}),s.on("nodeChange",function(t){for(var e=[],n=t.parents,i=n.length;i--;)if(1===n[i].nodeType&&!a(n[i])){var r=s.fire("ResolveName",{name:n[i].nodeName.toLowerCase(),target:n[i]});if(r.isDefaultPrevented()||e.push({name:r.name,element:n[i]}),r.isPropagationStopped())break}o.row(e)})),o._super()}}),Zn=De.extend({Defaults:{layout:"flex",align:"center",defaults:{flex:1}},renderHtml:function(){var t=this,e=t._layout,n=t.classPrefix;return t.classes.add("formitem"),e.preRender(t),'<div id="'+t._id+'" class="'+t.classes+'" hidefocus="1" tabindex="-1">'+(t.settings.title?'<div id="'+t._id+'-title" class="'+n+'title">'+t.settings.title+"</div>":"")+'<div id="'+t._id+'-body" class="'+t.bodyClasses+'">'+(t.settings.html||"")+e.renderHtml(t)+"</div></div>"}}),Qn=De.extend({Defaults:{containerCls:"form",layout:"flex",direction:"column",align:"stretch",flex:1,padding:15,labelGap:30,spacing:10,callbacks:{submit:function(){this.submit()}}},preRender:function(){var i=this,t=i.items();i.settings.formItemDefaults||(i.settings.formItemDefaults={layout:"flex",autoResize:"overflow",defaults:{flex:1}}),t.each(function(t){var e,n=t.settings.label;n&&((e=new Zn(R.extend({items:{type:"label",id:t._id+"-l",text:n,flex:0,forId:t._id,disabled:t.disabled()}},i.settings.formItemDefaults))).type="formitem",t.aria("labelledby",t._id+"-l"),"undefined"==typeof t.settings.flex&&(t.settings.flex=1),i.replace(t,e),e.add(t))})},submit:function(){return this.fire("submit",{data:this.toJSON()})},postRender:function(){this._super(),this.fromJSON(this.settings.data)},bindStates:function(){var n=this;function t(){var t,e,i=0,r=[];if(!1!==n.settings.labelGapCalc)for(("children"===n.settings.labelGapCalc?n.find("formitem"):n.items()).filter("formitem").each(function(t){var e=t.items()[0],n=e.getEl().clientWidth;i=i<n?n:i,r.push(e)}),e=n.settings.labelGap||0,t=r.length;t--;)r[t].settings.minWidth=i+e}n._super(),n.on("show",t),t()}}),ti=Qn.extend({Defaults:{containerCls:"fieldset",layout:"flex",direction:"column",align:"stretch",flex:1,padding:"25 15 5 15",labelGap:30,spacing:10,border:1},renderHtml:function(){var t=this,e=t._layout,n=t.classPrefix;return t.preRender(),e.preRender(t),'<fieldset id="'+t._id+'" class="'+t.classes+'" hidefocus="1" tabindex="-1">'+(t.settings.title?'<legend id="'+t._id+'-title" class="'+n+'fieldset-title">'+t.settings.title+"</legend>":"")+'<div id="'+t._id+'-body" class="'+t.bodyClasses+'">'+(t.settings.html||"")+e.renderHtml(t)+"</div></fieldset>"}}),ei=0,ni=function(t){var e=(new Date).getTime();return t+"_"+Math.floor(1e9*Math.random())+ ++ei+String(e)},ii=function(t){if(null===t||t===undefined)throw new Error("Node cannot be null or undefined");return{dom:lt.constant(t)}},ri={fromHtml:function(t,e){var n=(e||document).createElement("div");if(n.innerHTML=t,!n.hasChildNodes()||1<n.childNodes.length)throw console.error("HTML does not have a single root node",t),"HTML must have a single root node";return ii(n.childNodes[0])},fromTag:function(t,e){var n=(e||document).createElement(t);return ii(n)},fromText:function(t,e){var n=(e||document).createTextNode(t);return ii(n)},fromDom:ii,fromPoint:function(t,e,n){return mt.from(t.dom().elementFromPoint(e,n)).map(ii)}},oi=function(t){var e,n=!1;return function(){return n||(n=!0,e=t.apply(null,arguments)),e}},si=9,ai=1,li=3,ui=function(t){return t.dom().nodeType},ci=function(e){return function(t){return ui(t)===e}},di=(ci(ai),ci(li),ci(si),oi(function(){return di(ri.fromDom(document))}),function(t){var e=t.dom().body;if(null===e||e===undefined)throw"Body is not available yet";return ri.fromDom(e)}),fi=(sn=Object.keys)===undefined?function(t){var e=[];for(var n in t)t.hasOwnProperty(n)&&e.push(n);return e}:sn,hi=function(t,e){for(var n=fi(t),i=0,r=n.length;i<r;i++){var o=n[i];e(t[o],o,t)}},mi=function(i,r){var o={};return hi(i,function(t,e){var n=r(t,e,i);o[n.k]=n.v}),o},gi=function(t,n){var i=[];return hi(t,function(t,e){i.push(n(t,e))}),i},pi=function(t){return gi(t,function(t){return t})},vi={bifilter:function(t,n){var i={},r={};return hi(t,function(t,e){(n(t,e)?i:r)[e]=t}),{t:i,f:r}},each:hi,map:function(t,i){return mi(t,function(t,e,n){return{k:e,v:i(t,e,n)}})},mapToArray:gi,tupleMap:mi,find:function(t,e){for(var n=fi(t),i=0,r=n.length;i<r;i++){var o=n[i],s=t[o];if(e(s,o,t))return mt.some(s)}return mt.none()},keys:fi,values:pi,size:function(t){return pi(t).length}},yi=function(t){return t.slice(0).sort()},bi={sort:yi,reqMessage:function(t,e){throw new Error("All required keys ("+yi(t).join(", ")+") were not specified. Specified keys were: "+yi(e).join(", ")+".")},unsuppMessage:function(t){throw new Error("Unsupported keys for object: "+yi(t).join(", "))},validateStrArr:function(e,t){if(!pt.isArray(t))throw new Error("The "+e+" fields must be an array. Was: "+t+".");Tt.each(t,function(t){if(!pt.isString(t))throw new Error("The value "+t+" in the "+e+" fields was not a string.")})},invalidTypeMessage:function(t,e){throw new Error("All values need to be of type: "+e+". Keys ("+yi(t).join(", ")+") were not.")},checkDupes:function(t){var n=yi(t);Tt.find(n,function(t,e){return e<n.length-1&&t===n[e+1]}).each(function(t){throw new Error("The field: "+t+" occurs more than once in the combined fields: ["+n.join(", ")+"].")})}},xi={immutable:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return function(){for(var n=[],t=0;t<arguments.length;t++)n[t]=arguments[t];if(e.length!==n.length)throw new Error('Wrong number of arguments to struct. Expected "['+e.length+']", got '+n.length+" arguments");var i={};return Tt.each(e,function(t,e){i[t]=lt.constant(n[e])}),i}},immutableBag:function(r,o){var s=r.concat(o);if(0===s.length)throw new Error("You must specify at least one required or optional field.");return bi.validateStrArr("required",r),bi.validateStrArr("optional",o),bi.checkDupes(s),function(e){var n=vi.keys(e);Tt.forall(r,function(t){return Tt.contains(n,t)})||bi.reqMessage(r,n);var t=Tt.filter(n,function(t){return!Tt.contains(s,t)});0<t.length&&bi.unsuppMessage(t);var i={};return Tt.each(r,function(t){i[t]=lt.constant(e[t])}),Tt.each(o,function(t){i[t]=lt.constant(Object.prototype.hasOwnProperty.call(e,t)?mt.some(e[t]):mt.none())}),i}}},wi=function(t,e){var n=function(t,e){for(var n=0;n<t.length;n++){var i=t[n];if(i.test(e))return i}return undefined}(t,e);if(!n)return{major:0,minor:0};var i=function(t){return Number(e.replace(n,"$"+t))};return Ri(i(1),i(2))},_i=function(){return Ri(0,0)},Ri=function(t,e){return{major:t,minor:e}},Ci={nu:Ri,detect:function(t,e){var n=String(e).toLowerCase();return 0===t.length?_i():wi(t,n)},unknown:_i},ki="Firefox",Ei=function(t,e){return function(){return e===t}},Hi=function(t){var e=t.current;return{current:e,version:t.version,isEdge:Ei("Edge",e),isChrome:Ei("Chrome",e),isIE:Ei("IE",e),isOpera:Ei("Opera",e),isFirefox:Ei(ki,e),isSafari:Ei("Safari",e)}},Si={unknown:function(){return Hi({current:undefined,version:Ci.unknown()})},nu:Hi,edge:lt.constant("Edge"),chrome:lt.constant("Chrome"),ie:lt.constant("IE"),opera:lt.constant("Opera"),firefox:lt.constant(ki),safari:lt.constant("Safari")},Mi="Windows",Ti="Android",Wi="Solaris",Pi="FreeBSD",Ni=function(t,e){return function(){return e===t}},Oi=function(t){var e=t.current;return{current:e,version:t.version,isWindows:Ni(Mi,e),isiOS:Ni("iOS",e),isAndroid:Ni(Ti,e),isOSX:Ni("OSX",e),isLinux:Ni("Linux",e),isSolaris:Ni(Wi,e),isFreeBSD:Ni(Pi,e)}},Di={unknown:function(){return Oi({current:undefined,version:Ci.unknown()})},nu:Oi,windows:lt.constant(Mi),ios:lt.constant("iOS"),android:lt.constant(Ti),linux:lt.constant("Linux"),osx:lt.constant("OSX"),solaris:lt.constant(Wi),freebsd:lt.constant(Pi)},Ai=function(t,e){var n=String(e).toLowerCase();return Tt.find(t,function(t){return t.search(n)})},Bi=function(t,n){return Ai(t,n).map(function(t){var e=Ci.detect(t.versionRegexes,n);return{current:t.name,version:e}})},Li=function(t,n){return Ai(t,n).map(function(t){var e=Ci.detect(t.versionRegexes,n);return{current:t.name,version:e}})},Ii=function(t,e){return-1!==t.indexOf(e)},zi=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,Fi=function(e){return function(t){return Ii(t,e)}},Vi=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(t){return Ii(t,"edge/")&&Ii(t,"chrome")&&Ii(t,"safari")&&Ii(t,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,zi],search:function(t){return Ii(t,"chrome")&&!Ii(t,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(t){return Ii(t,"msie")||Ii(t,"trident")}},{name:"Opera",versionRegexes:[zi,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:Fi("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:Fi("firefox")},{name:"Safari",versionRegexes:[zi,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(t){return(Ii(t,"safari")||Ii(t,"mobile/"))&&Ii(t,"applewebkit")}}],qi=[{name:"Windows",search:Fi("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:function(t){return Ii(t,"iphone")||Ii(t,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:Fi("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:Fi("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:Fi("linux"),versionRegexes:[]},{name:"Solaris",search:Fi("sunos"),versionRegexes:[]},{name:"FreeBSD",search:Fi("freebsd"),versionRegexes:[]}],Ui={browsers:lt.constant(Vi),oses:lt.constant(qi)},ji=function(t){var e,n,i,r,o,s,a,l,u,c,d,f=Ui.browsers(),h=Ui.oses(),m=Bi(f,t).fold(Si.unknown,Si.nu),g=Li(h,t).fold(Di.unknown,Di.nu);return{browser:m,os:g,deviceType:(n=m,i=t,r=(e=g).isiOS()&&!0===/ipad/i.test(i),o=e.isiOS()&&!r,s=e.isAndroid()&&3===e.version.major,a=e.isAndroid()&&4===e.version.major,l=r||s||a&&!0===/mobile/i.test(i),u=e.isiOS()||e.isAndroid(),c=u&&!l,d=n.isSafari()&&e.isiOS()&&!1===/safari/i.test(i),{isiPad:lt.constant(r),isiPhone:lt.constant(o),isTablet:lt.constant(l),isPhone:lt.constant(c),isTouch:lt.constant(u),isAndroid:e.isAndroid,isiOS:e.isiOS,isWebView:lt.constant(d)})}},$i=oi(function(){var t=navigator.userAgent;return ji(t)}),Yi=ai,Xi=si,Ji=function(t){return t.nodeType!==Yi&&t.nodeType!==Xi||0===t.childElementCount},Gi={all:function(t,e){var n=e===undefined?document:e.dom();return Ji(n)?[]:Tt.map(n.querySelectorAll(t),ri.fromDom)},is:function(t,e){var n=t.dom();if(n.nodeType!==Yi)return!1;if(n.matches!==undefined)return n.matches(e);if(n.msMatchesSelector!==undefined)return n.msMatchesSelector(e);if(n.webkitMatchesSelector!==undefined)return n.webkitMatchesSelector(e);if(n.mozMatchesSelector!==undefined)return n.mozMatchesSelector(e);throw new Error("Browser lacks native selectors")},one:function(t,e){var n=e===undefined?document:e.dom();return Ji(n)?mt.none():mt.from(n.querySelector(t)).map(ri.fromDom)}},Ki=($i().browser.isIE(),xi.immutable("element","offset"),function(t,e){return Gi.all(e,t)}),Zi=R.trim,Qi=function(e){return function(t){if(t&&1===t.nodeType){if(t.contentEditable===e)return!0;if(t.getAttribute("data-mce-contenteditable")===e)return!0}return!1}},tr=Qi("true"),er=Qi("false"),nr=function(t,e,n,i,r){return{type:t,title:e,url:n,level:i,attach:r}},ir=function(t){return t.innerText||t.textContent},rr=function(t){return(e=t)&&"A"===e.nodeName&&(e.id||e.name)&&sr(t);var e},or=function(t){return t&&/^(H[1-6])$/.test(t.nodeName)},sr=function(t){return function(t){for(;t=t.parentNode;){var e=t.contentEditable;if(e&&"inherit"!==e)return tr(t)}return!1}(t)&&!er(t)},ar=function(t){return or(t)&&sr(t)},lr=function(t){var e,n,i=(e=t).id?e.id:ni("h");return nr("header",ir(t),"#"+i,or(n=t)?parseInt(n.nodeName.substr(1),10):0,function(){t.id=i})},ur=function(t){var e=t.id||t.name,n=ir(t);return nr("anchor",n||"#"+e,"#"+e,0,lt.noop)},cr=function(t){var e,n;return e="h1,h2,h3,h4,h5,h6,a:not([href])",n=t,Tt.map(Ki(ri.fromDom(n),e),function(t){return t.dom()})},dr=function(t){return 0<Zi(t.title).length},fr=function(t){var e,n,i=cr(t);return Tt.filter((n=i,Tt.map(Tt.filter(n,ar),lr)).concat((e=i,Tt.map(Tt.filter(e,rr),ur))),dr)},hr={},mr=function(t){return{title:t.title,value:{title:{raw:t.title},url:t.url,attach:t.attach}}},gr=function(t,e){return{title:t,value:{title:t,url:e,attach:lt.noop}}},pr=function(t,e,n){var i=e in t?t[e]:n;return!1===i?null:i},vr=function(t,i,r,e){var n,o,s,a,l={title:"-"},u=function(t){var e=t.hasOwnProperty(r)?t[r]:[],n=Tt.filter(e,function(t){return e=t,n=i,!Tt.exists(n,function(t){return t.url===e});var e,n});return R.map(n,function(t){return{title:t,value:{title:t,url:t,attach:lt.noop}}})},c=function(e){var t,n=Tt.filter(i,function(t){return t.type===e});return t=n,R.map(t,mr)};return!1===e.typeahead_urls?[]:"file"===r?(n=[yr(t,u(hr)),yr(t,c("header")),yr(t,(o=c("anchor"),s=pr(e,"anchor_top","#top"),a=pr(e,"anchor_bottom","#bottom"),null!==s&&o.unshift(gr("<top>",s)),null!==a&&o.push(gr("<bottom>",a)),o))],Tt.foldl(n,function(t,e){return 0===t.length||0===e.length?t.concat(e):t.concat(l,e)},[])):yr(t,u(hr))},yr=function(t,e){var n=t.toLowerCase(),i=R.grep(e,function(t){return-1!==t.title.toLowerCase().indexOf(n)});return 1===i.length&&i[0].title===t?[]:i},br=function(r,i,o,s){var e=function(t){var e=fr(o),n=vr(t,e,s,i);r.showAutoComplete(n,t)};r.on("autocomplete",function(){e(r.value())}),r.on("selectitem",function(t){var e=t.value;r.value(e.url);var n,i=(n=e.title).raw?n.raw:n;"image"===s?r.fire("change",{meta:{alt:i,attach:e.attach}}):r.fire("change",{meta:{text:i,attach:e.attach}}),r.focus()}),r.on("click",function(t){0===r.value().length&&"INPUT"===t.target.nodeName&&e("")}),r.on("PostRender",function(){r.getRoot().on("submit",function(t){var e,n,i;t.isDefaultPrevented()||(e=r.value(),i=hr[n=s],/^https?/.test(e)&&(i?Tt.indexOf(i,e).isNone()&&(hr[n]=i.slice(0,5).concat(e)):hr[n]=[e]))})})},xr=function(o,t,n){var i=t.filepicker_validator_handler;i&&o.state.on("change:value",function(t){var e;0!==(e=t.value).length?i({url:e,type:n},function(t){var e,n,i,r=(n=(e=t).status,i=e.message,"valid"===n?{status:"ok",message:i}:"unknown"===n?{status:"warn",message:i}:"invalid"===n?{status:"warn",message:i}:{status:"none",message:""});o.statusMessage(r.message),o.statusLevel(r.status)}):o.statusLevel("none")})},wr=Vn.extend({Statics:{clearHistory:function(){hr={}}},init:function(t){var e,n,i,r=this,o=window.tinymce?window.tinymce.activeEditor:T.activeEditor,s=o.settings,a=t.filetype;t.spellcheck=!1,(i=s.file_picker_types||s.file_browser_callback_types)&&(i=R.makeMap(i,/[, ]/)),i&&!i[a]||(!(n=s.file_picker_callback)||i&&!i[a]?!(n=s.file_browser_callback)||i&&!i[a]||(e=function(){n(r.getEl("inp").id,r.value(),a,window)}):e=function(){var t=r.fire("beforecall").meta;t=R.extend({filetype:a},t),n.call(o,function(t,e){r.value(t).fire("change",{meta:e})},r.value(),t)}),e&&(t.icon="browse",t.onaction=e),r._super(t),r.classes.add("filepicker"),br(r,s,o.getBody(),a),xr(r,s,a)}}),_r=An.extend({recalc:function(t){var e=t.layoutRect(),n=t.paddingBox;t.items().filter(":visible").each(function(t){t.layoutRect({x:n.left,y:n.top,w:e.innerW-n.right-n.left,h:e.innerH-n.top-n.bottom}),t.recalc&&t.recalc()})}}),Rr=An.extend({recalc:function(t){var e,n,i,r,o,s,a,l,u,c,d,f,h,m,g,p,v,y,b,x,w,_,R,C,k,E,H,S,M,T,W,P,N,O,D,A,B,L=[],I=Math.max,z=Math.min;for(i=t.items().filter(":visible"),r=t.layoutRect(),o=t.paddingBox,s=t.settings,f=t.isRtl()?s.direction||"row-reversed":s.direction,a=s.align,l=t.isRtl()?s.pack||"end":s.pack,u=s.spacing||0,"row-reversed"!==f&&"column-reverse"!==f||(i=i.set(i.toArray().reverse()),f=f.split("-")[0]),"column"===f?(C="y",_="h",R="minH",k="maxH",H="innerH",E="top",S="deltaH",M="contentH",O="left",P="w",T="x",W="innerW",N="minW",D="right",A="deltaW",B="contentW"):(C="x",_="w",R="minW",k="maxW",H="innerW",E="left",S="deltaW",M="contentW",O="top",P="h",T="y",W="innerH",N="minH",D="bottom",A="deltaH",B="contentH"),d=r[H]-o[E]-o[E],w=c=0,e=0,n=i.length;e<n;e++)m=(h=i[e]).layoutRect(),d-=e<n-1?u:0,0<(g=h.settings.flex)&&(c+=g,m[k]&&L.push(h),m.flex=g),d-=m[R],w<(p=o[O]+m[N]+o[D])&&(w=p);if((b={})[R]=d<0?r[R]-d+r[S]:r[H]-d+r[S],b[N]=w+r[A],b[M]=r[H]-d,b[B]=w,b.minW=z(b.minW,r.maxW),b.minH=z(b.minH,r.maxH),b.minW=I(b.minW,r.startMinWidth),b.minH=I(b.minH,r.startMinHeight),!r.autoResize||b.minW===r.minW&&b.minH===r.minH){for(y=d/c,e=0,n=L.length;e<n;e++)(v=(m=(h=L[e]).layoutRect())[k])<(p=m[R]+m.flex*y)?(d-=m[k]-m[R],c-=m.flex,m.flex=0,m.maxFlexSize=v):m.maxFlexSize=0;for(y=d/c,x=o[E],b={},0===c&&("end"===l?x=d+o[E]:"center"===l?(x=Math.round(r[H]/2-(r[H]-d)/2)+o[E])<0&&(x=o[E]):"justify"===l&&(x=o[E],u=Math.floor(d/(i.length-1)))),b[T]=o[O],e=0,n=i.length;e<n;e++)p=(m=(h=i[e]).layoutRect()).maxFlexSize||m[R],"center"===a?b[T]=Math.round(r[W]/2-m[P]/2):"stretch"===a?(b[P]=I(m[N]||0,r[W]-o[O]-o[D]),b[T]=o[O]):"end"===a&&(b[T]=r[W]-m[P]-o.top),0<m.flex&&(p+=m.flex*y),b[_]=p,b[C]=x,h.layoutRect(b),h.recalc&&h.recalc(),x+=p+u}else if(b.w=b.minW,b.h=b.minH,t.layoutRect(b),this.recalc(t),null===t._lastRect){var F=t.parent();F&&(F._lastRect=null,F.recalc())}}}),Cr=Dn.extend({Defaults:{containerClass:"flow-layout",controlClass:"flow-layout-item",endClass:"break"},recalc:function(t){t.items().filter(":visible").each(function(t){t.recalc&&t.recalc()})},isNative:function(){return!0}}),kr=function(t,e){return Gi.one(e,t)},Er=function(t,e){return function(){t.execCommand("mceToggleFormat",!1,e)}},Hr=function(t,n){return function(){var e=this;t.formatter?t.formatter.formatChanged(n,function(t){e.active(t)}):t.on("init",function(){t.formatter.formatChanged(n,function(t){e.active(t)})})}},Sr=function(n){n.addMenuItem("align",{text:"Align",menu:[{text:"Left",icon:"alignleft",onclick:Er(n,"alignleft")},{text:"Center",icon:"aligncenter",onclick:Er(n,"aligncenter")},{text:"Right",icon:"alignright",onclick:Er(n,"alignright")},{text:"Justify",icon:"alignjustify",onclick:Er(n,"alignjustify")}]}),R.each({alignleft:["Align left","JustifyLeft"],aligncenter:["Align center","JustifyCenter"],alignright:["Align right","JustifyRight"],alignjustify:["Justify","JustifyFull"],alignnone:["No alignment","JustifyNone"]},function(t,e){n.addButton(e,{active:!1,tooltip:t[0],cmd:t[1],onPostRender:Hr(n,e)})})},Mr=function(t){return t?t.split(",")[0]:""},Tr=function(a,l){return function(){var s=this;a.on("init nodeChange",function(t){var e,n,i,r=a.queryCommandValue("FontName"),o=(e=l,n=r,R.each(e,function(t){t.value.toLowerCase()===n.toLowerCase()&&(i=t.value)}),R.each(e,function(t){i||Mr(t.value).toLowerCase()!==Mr(n).toLowerCase()||(i=t.value)}),i);s.value(o||null),!o&&r&&s.text(Mr(r))})}},Wr=function(n){n.addButton("fontselect",function(){var t,e=(t=function(t){for(var e=(t=t.replace(/;$/,"").split(";")).length;e--;)t[e]=t[e].split("=");return t}(n.settings.font_formats||"Andale Mono=andale mono,monospace;Arial=arial,helvetica,sans-serif;Arial Black=arial black,sans-serif;Book Antiqua=book antiqua,palatino,serif;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,palatino,serif;Helvetica=helvetica,arial,sans-serif;Impact=impact,sans-serif;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco,monospace;Times New Roman=times new roman,times,serif;Trebuchet MS=trebuchet ms,geneva,sans-serif;Verdana=verdana,geneva,sans-serif;Webdings=webdings;Wingdings=wingdings,zapf dingbats"),R.map(t,function(t){return{text:{raw:t[0]},value:t[1],textStyle:-1===t[1].indexOf("dings")?"font-family:"+t[1]:""}}));return{type:"listbox",text:"Font Family",tooltip:"Font Family",values:e,fixedWidth:!0,onPostRender:Tr(n,e),onselect:function(t){t.control.settings.value&&n.execCommand("FontName",!1,t.control.settings.value)}}})},Pr=function(t){Wr(t)},Nr=function(t,e){return/[0-9.]+px$/.test(t)?(n=72*parseInt(t,10)/96,i=e||0,r=Math.pow(10,i),Math.round(n*r)/r+"pt"):t;var n,i,r},Or=function(t,e,n){var i;return R.each(t,function(t){t.value===n?i=n:t.value===e&&(i=e)}),i},Dr=function(n){n.addButton("fontsizeselect",function(){var t,s,a,e=(t=n.settings.fontsize_formats||"8pt 10pt 12pt 14pt 18pt 24pt 36pt",R.map(t.split(" "),function(t){var e=t,n=t,i=t.split("=");return 1<i.length&&(e=i[0],n=i[1]),{text:e,value:n}}));return{type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:e,fixedWidth:!0,onPostRender:(s=n,a=e,function(){var o=this;s.on("init nodeChange",function(t){var e,n,i,r;if(e=s.queryCommandValue("FontSize"))for(i=3;!r&&0<=i;i--)n=Nr(e,i),r=Or(a,n,e);o.value(r||null),r||o.text(n)})}),onclick:function(t){t.control.settings.value&&n.execCommand("FontSize",!1,t.control.settings.value)}}})},Ar=function(t){Dr(t)},Br=function(n,t){var i=t.length;return R.each(t,function(t){t.menu&&(t.hidden=0===Br(n,t.menu));var e=t.format;e&&(t.hidden=!n.formatter.canApply(e)),t.hidden&&i--}),i},Lr=function(n,t){var i=t.items().length;return t.items().each(function(t){t.menu&&t.visible(0<Lr(n,t.menu)),!t.menu&&t.settings.menu&&t.visible(0<Br(n,t.settings.menu));var e=t.settings.format;e&&t.visible(n.formatter.canApply(e)),t.visible()||i--}),i},Ir=function(t){var i,r,o,e,s,n,a,l,u=(r=0,o=[],e=[{title:"Headings",items:[{title:"Heading 1",format:"h1"},{title:"Heading 2",format:"h2"},{title:"Heading 3",format:"h3"},{title:"Heading 4",format:"h4"},{title:"Heading 5",format:"h5"},{title:"Heading 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}],s=function(t){var i=[];if(t)return R.each(t,function(t){var e={text:t.title,icon:t.icon};if(t.items)e.menu=s(t.items);else{var n=t.format||"custom"+r++;t.format||(t.name=n,o.push(t)),e.format=n,e.cmd=t.cmd}i.push(e)}),i},(i=t).on("init",function(){R.each(o,function(t){i.formatter.register(t.name,t)})}),{type:"menu",items:i.settings.style_formats_merge?i.settings.style_formats?s(e.concat(i.settings.style_formats)):s(e):s(i.settings.style_formats||e),onPostRender:function(t){i.fire("renderFormatsMenu",{control:t.control})},itemDefaults:{preview:!0,textStyle:function(){if(this.settings.format)return i.formatter.getCssText(this.settings.format)},onPostRender:function(){var n=this;n.parent().on("show",function(){var t,e;(t=n.settings.format)&&(n.disabled(!i.formatter.canApply(t)),n.active(i.formatter.match(t))),(e=n.settings.cmd)&&n.active(i.queryCommandState(e))})},onclick:function(){this.settings.format&&Er(i,this.settings.format)(),this.settings.cmd&&i.execCommand(this.settings.cmd)}}});n=u,t.addMenuItem("formats",{text:"Formats",menu:n}),l=u,(a=t).addButton("styleselect",{type:"menubutton",text:"Formats",menu:l,onShowMenu:function(){a.settings.style_formats_autohide&&Lr(a,this.menu)}})},zr=function(n,t){return function(){var r,o,s,e=[];return R.each(t,function(t){e.push({text:t[0],value:t[1],textStyle:function(){return n.formatter.getCssText(t[1])}})}),{type:"listbox",text:t[0][0],values:e,fixedWidth:!0,onselect:function(t){if(t.control){var e=t.control.value();Er(n,e)()}},onPostRender:(r=n,o=e,function(){var e=this;r.on("nodeChange",function(t){var n=r.formatter,i=null;R.each(t.parents,function(e){if(R.each(o,function(t){if(s?n.matchNode(e,s,{value:t.value})&&(i=t.value):n.matchNode(e,t.value)&&(i=t.value),i)return!1}),i)return!1}),e.value(i)})})}}},Fr=function(t){var e,n,i=function(t){for(var e=(t=t.replace(/;$/,"").split(";")).length;e--;)t[e]=t[e].split("=");return t}(t.settings.block_formats||"Paragraph=p;Heading 1=h1;Heading 2=h2;Heading 3=h3;Heading 4=h4;Heading 5=h5;Heading 6=h6;Preformatted=pre");t.addMenuItem("blockformats",{text:"Blocks",menu:(e=t,n=i,R.map(n,function(t){return{text:t[0],onclick:Er(e,t[1]),textStyle:function(){return e.formatter.getCssText(t[1])}}}))}),t.addButton("formatselect",zr(t,i))},Vr=function(e,t){var n,i;if("string"==typeof t)i=t.split(" ");else if(R.isArray(t))return Tt.flatten(R.map(t,function(t){return Vr(e,t)}));return n=R.grep(i,function(t){return"|"===t||t in e.menuItems}),R.map(n,function(t){return"|"===t?{text:"-"}:e.menuItems[t]})},qr=function(t){return t&&"-"===t.text},Ur=function(t){var e=Tt.filter(t,function(t,e,n){return!qr(t)||!qr(n[e-1])});return Tt.filter(e,function(t,e,n){return!qr(t)||0<e&&e<n.length-1})},jr=function(t){var e,n,i,r,o=t.settings.insert_button_items;return Ur(o?Vr(t,o):(e=t,n="insert",i=[{text:"-"}],r=R.grep(e.menuItems,function(t){return t.context===n}),R.each(r,function(t){"before"===t.separator&&i.push({text:"|"}),t.prependToContext?i.unshift(t):i.push(t),"after"===t.separator&&i.push({text:"|"})}),i))},$r=function(t){var e;(e=t).addButton("insert",{type:"menubutton",icon:"insert",menu:[],oncreatemenu:function(){this.menu.add(jr(e)),this.menu.renderNew()}})},Yr=function(t){var n,i,r;n=t,R.each({bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript"},function(t,e){n.addButton(e,{active:!1,tooltip:t,onPostRender:Hr(n,e),onclick:Er(n,e)})}),i=t,R.each({outdent:["Decrease indent","Outdent"],indent:["Increase indent","Indent"],cut:["Cut","Cut"],copy:["Copy","Copy"],paste:["Paste","Paste"],help:["Help","mceHelp"],selectall:["Select all","SelectAll"],visualaid:["Visual aids","mceToggleVisualAid"],newdocument:["New document","mceNewDocument"],removeformat:["Clear formatting","RemoveFormat"],remove:["Remove","Delete"]},function(t,e){i.addButton(e,{tooltip:t[0],cmd:t[1]})}),r=t,R.each({blockquote:["Blockquote","mceBlockQuote"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"]},function(t,e){r.addButton(e,{active:!1,tooltip:t[0],cmd:t[1],onPostRender:Hr(r,e)})})},Xr=function(t){var n;Yr(t),n=t,R.each({bold:["Bold","Bold","Meta+B"],italic:["Italic","Italic","Meta+I"],underline:["Underline","Underline","Meta+U"],strikethrough:["Strikethrough","Strikethrough"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],removeformat:["Clear formatting","RemoveFormat"],newdocument:["New document","mceNewDocument"],cut:["Cut","Cut","Meta+X"],copy:["Copy","Copy","Meta+C"],paste:["Paste","Paste","Meta+V"],selectall:["Select all","SelectAll","Meta+A"]},function(t,e){n.addMenuItem(e,{text:t[0],icon:e,shortcut:t[2],cmd:t[1]})}),n.addMenuItem("codeformat",{text:"Code",icon:"code",onclick:Er(n,"code")})},Jr=function(n,i){return function(){var t=this,e=function(){var t="redo"===i?"hasRedo":"hasUndo";return!!n.undoManager&&n.undoManager[t]()};t.disabled(!e()),n.on("Undo Redo AddUndo TypingUndo ClearUndos SwitchMode",function(){t.disabled(n.readonly||!e())})}},Gr=function(t){var e,n;(e=t).addMenuItem("undo",{text:"Undo",icon:"undo",shortcut:"Meta+Z",onPostRender:Jr(e,"undo"),cmd:"undo"}),e.addMenuItem("redo",{text:"Redo",icon:"redo",shortcut:"Meta+Y",onPostRender:Jr(e,"redo"),cmd:"redo"}),(n=t).addButton("undo",{tooltip:"Undo",onPostRender:Jr(n,"undo"),cmd:"undo"}),n.addButton("redo",{tooltip:"Redo",onPostRender:Jr(n,"redo"),cmd:"redo"})},Kr=function(t){var e,n;(e=t).addMenuItem("visualaid",{text:"Visual aids",selectable:!0,onPostRender:(n=e,function(){var e=this;n.on("VisualAid",function(t){e.active(t.hasVisual)}),e.active(n.hasVisual)}),cmd:"mceToggleVisualAid"})},Zr={setup:function(t){var e;t.rtl&&(fe.rtl=!0),t.on("mousedown",function(){je.hideAll()}),(e=t).settings.ui_container&&(h.container=kr(ri.fromDom(document.body),e.settings.ui_container).fold(lt.constant(null),function(t){return t.dom()})),xe.tooltips=!h.iOS,fe.translate=function(t){return T.translate(t)},Fr(t),Sr(t),Xr(t),Gr(t),Ar(t),Pr(t),Ir(t),Kr(t),$r(t)}},Qr=An.extend({recalc:function(t){var e,n,i,r,o,s,a,l,u,c,d,f,h,m,g,p,v,y,b,x,w,_,R,C,k,E,H,S,M=[],T=[];e=t.settings,r=t.items().filter(":visible"),o=t.layoutRect(),i=e.columns||Math.ceil(Math.sqrt(r.length)),n=Math.ceil(r.length/i),y=e.spacingH||e.spacing||0,b=e.spacingV||e.spacing||0,x=e.alignH||e.align,w=e.alignV||e.align,p=t.paddingBox,S="reverseRows"in e?e.reverseRows:t.isRtl(),x&&"string"==typeof x&&(x=[x]),w&&"string"==typeof w&&(w=[w]);for(d=0;d<i;d++)M.push(0);for(f=0;f<n;f++)T.push(0);for(f=0;f<n;f++)for(d=0;d<i&&(c=r[f*i+d]);d++)C=(u=c.layoutRect()).minW,k=u.minH,M[d]=C>M[d]?C:M[d],T[f]=k>T[f]?k:T[f];for(E=o.innerW-p.left-p.right,d=_=0;d<i;d++)_+=M[d]+(0<d?y:0),E-=(0<d?y:0)+M[d];for(H=o.innerH-p.top-p.bottom,f=R=0;f<n;f++)R+=T[f]+(0<f?b:0),H-=(0<f?b:0)+T[f];if(_+=p.left+p.right,R+=p.top+p.bottom,(l={}).minW=_+(o.w-o.innerW),l.minH=R+(o.h-o.innerH),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH,l.minW=Math.min(l.minW,o.maxW),l.minH=Math.min(l.minH,o.maxH),l.minW=Math.max(l.minW,o.startMinWidth),l.minH=Math.max(l.minH,o.startMinHeight),!o.autoResize||l.minW===o.minW&&l.minH===o.minH){var W;o.autoResize&&((l=t.layoutRect(l)).contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH),W="start"===e.packV?0:0<H?Math.floor(H/n):0;var P=0,N=e.flexWidths;if(N)for(d=0;d<N.length;d++)P+=N[d];else P=i;var O=E/P;for(d=0;d<i;d++)M[d]+=N?N[d]*O:O;for(m=p.top,f=0;f<n;f++){for(h=p.left,a=T[f]+W,d=0;d<i&&(c=r[S?f*i+i-1-d:f*i+d]);d++)g=c.settings,u=c.layoutRect(),s=Math.max(M[d],u.startMinWidth),u.x=h,u.y=m,"center"===(v=g.alignH||(x?x[d]||x[0]:null))?u.x=h+s/2-u.w/2:"right"===v?u.x=h+s-u.w:"stretch"===v&&(u.w=s),"center"===(v=g.alignV||(w?w[d]||w[0]:null))?u.y=m+a/2-u.h/2:"bottom"===v?u.y=m+a-u.h:"stretch"===v&&(u.h=a),c.layoutRect(u),h+=s+y,c.recalc&&c.recalc();m+=a+b}}else if(l.w=l.minW,l.h=l.minH,t.layoutRect(l),this.recalc(t),null===t._lastRect){var D=t.parent();D&&(D._lastRect=null,D.recalc())}}}),to=xe.extend({renderHtml:function(){var t=this;return t.classes.add("iframe"),t.canFocus=!1,'<iframe id="'+t._id+'" class="'+t.classes+'" tabindex="-1" src="'+(t.settings.url||"javascript:''")+'" frameborder="0"></iframe>'},src:function(t){this.getEl().src=t},html:function(t,e){var n=this,i=this.getEl().contentWindow.document.body;return i?(i.innerHTML=t,e&&e()):c.setTimeout(function(){n.html(t)}),this}}),eo=xe.extend({init:function(t){this._super(t),this.classes.add("widget").add("infobox"),this.canFocus=!1},severity:function(t){this.classes.remove("error"),this.classes.remove("warning"),this.classes.remove("success"),this.classes.add(t)},help:function(t){this.state.set("help",t)},renderHtml:function(){var t=this,e=t.classPrefix;return'<div id="'+t._id+'" class="'+t.classes+'"><div id="'+t._id+'-body">'+t.encode(t.state.get("text"))+'<button role="button" tabindex="-1"><i class="'+e+"ico "+e+'i-help"></i></button></div></div>'},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.getEl("body").firstChild.data=e.encode(t.value),e.state.get("rendered")&&e.updateLayoutRect()}),e.state.on("change:help",function(t){e.classes.toggle("has-help",t.value),e.state.get("rendered")&&e.updateLayoutRect()}),e._super()}}),no=xe.extend({init:function(t){var e=this;e._super(t),e.classes.add("widget").add("label"),e.canFocus=!1,t.multiline&&e.classes.add("autoscroll"),t.strong&&e.classes.add("strong")},initLayoutRect:function(){var t=this,e=t._super();return t.settings.multiline&&(Pt.getSize(t.getEl()).width>e.maxW&&(e.minW=e.maxW,t.classes.add("multiline")),t.getEl().style.width=e.minW+"px",e.startMinH=e.h=e.minH=Math.min(e.maxH,Pt.getSize(t.getEl()).height)),e},repaint:function(){return this.settings.multiline||(this.getEl().style.lineHeight=this.layoutRect().h+"px"),this._super()},severity:function(t){this.classes.remove("error"),this.classes.remove("warning"),this.classes.remove("success"),this.classes.add(t)},renderHtml:function(){var t,e,n=this,i=n.settings.forId,r=n.settings.html?n.settings.html:n.encode(n.state.get("text"));return!i&&(e=n.settings.forName)&&(t=n.getRoot().find("#"+e)[0])&&(i=t._id),i?'<label id="'+n._id+'" class="'+n.classes+'"'+(i?' for="'+i+'"':"")+">"+r+"</label>":'<span id="'+n._id+'" class="'+n.classes+'">'+r+"</span>"},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.innerHtml(e.encode(t.value)),e.state.get("rendered")&&e.updateLayoutRect()}),e._super()}}),io=De.extend({Defaults:{role:"toolbar",layout:"flow"},init:function(t){this._super(t),this.classes.add("toolbar")},postRender:function(){return this.items().each(function(t){t.classes.add("toolbar-item")}),this._super()}}),ro=io.extend({Defaults:{role:"menubar",containerCls:"menubar",ariaRoot:!0,defaults:{type:"menubutton"}}}),oo=Bn.extend({init:function(t){var e=this;e._renderOpen=!0,e._super(t),t=e.settings,e.classes.add("menubtn"),t.fixedWidth&&e.classes.add("fixed-width"),e.aria("haspopup",!0),e.state.set("menu",t.menu||e.render())},showMenu:function(t){var e,n=this;if(n.menu&&n.menu.visible()&&!1!==t)return n.hideMenu();n.menu||(e=n.state.get("menu")||[],n.classes.add("opened"),e.length?e={type:"menu",animate:!0,items:e}:(e.type=e.type||"menu",e.animate=!0),e.renderTo?n.menu=e.parent(n).show().renderTo():n.menu=He.create(e).parent(n).renderTo(),n.fire("createmenu"),n.menu.reflow(),n.menu.on("cancel",function(t){t.control.parent()===n.menu&&(t.stopPropagation(),n.focus(),n.hideMenu())}),n.menu.on("select",function(){n.focus()}),n.menu.on("show hide",function(t){t.control===n.menu&&(n.activeMenu("show"===t.type),n.classes.toggle("opened","show"===t.type)),n.aria("expanded","show"===t.type)}).fire("show")),n.menu.show(),n.menu.layoutRect({w:n.layoutRect().w}),n.menu.repaint(),n.menu.moveRel(n.getEl(),n.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"]),n.fire("showmenu")},hideMenu:function(){this.menu&&(this.menu.items().each(function(t){t.hideMenu&&t.hideMenu()}),this.menu.hide())},activeMenu:function(t){this.classes.toggle("active",t)},renderHtml:function(){var t,e=this,n=e._id,i=e.classPrefix,r=e.settings.icon,o=e.state.get("text"),s="";return(t=e.settings.image)?(r="none","string"!=typeof t&&(t=window.getSelection?t[0]:t[1]),t=" style=\"background-image: url('"+t+"')\""):t="",o&&(e.classes.add("btn-has-text"),s='<span class="'+i+'txt">'+e.encode(o)+"</span>"),r=e.settings.icon?i+"ico "+i+"i-"+r:"",e.aria("role",e.parent()instanceof ro?"menuitem":"button"),'<div id="'+n+'" class="'+e.classes+'" tabindex="-1" aria-labelledby="'+n+'"><button id="'+n+'-open" role="presentation" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+t+"></i>":"")+s+' <i class="'+i+'caret"></i></button></div>'},postRender:function(){var r=this;return r.on("click",function(t){t.control===r&&function(t,e){for(;t;){if(e===t)return!0;t=t.parentNode}return!1}(t.target,r.getEl())&&(r.focus(),r.showMenu(!t.aria),t.aria&&r.menu.items().filter(":visible")[0].focus())}),r.on("mouseenter",function(t){var e,n=t.control,i=r.parent();n&&i&&n instanceof oo&&n.parent()===i&&(i.items().filter("MenuButton").each(function(t){t.hideMenu&&t!==n&&(t.menu&&t.menu.visible()&&(e=!0),t.hideMenu())}),e&&(n.focus(),n.showMenu()))}),r._super()},bindStates:function(){var t=this;return t.state.on("change:menu",function(){t.menu&&t.menu.remove(),t.menu=null}),t._super()},remove:function(){this._super(),this.menu&&this.menu.remove()}});function so(i,r){var o,s,a=this,l=fe.classPrefix;a.show=function(t,e){function n(){o&&(Nt(i).append('<div class="'+l+"throbber"+(r?" "+l+"throbber-inline":"")+'"></div>'),e&&e())}return a.hide(),o=!0,t?s=c.setTimeout(n,t):n(),a},a.hide=function(){var t=i.lastChild;return c.clearTimeout(s),t&&-1!==t.className.indexOf("throbber")&&t.parentNode.removeChild(t),o=!1,a}}var ao=je.extend({Defaults:{defaultType:"menuitem",border:1,layout:"stack",role:"application",bodyRole:"menu",ariaRoot:!0},init:function(t){if(t.autohide=!0,t.constrainToViewport=!0,"function"==typeof t.items&&(t.itemsFactory=t.items,t.items=[]),t.itemDefaults)for(var e=t.items,n=e.length;n--;)e[n]=R.extend({},t.itemDefaults,e[n]);this._super(t),this.classes.add("menu"),t.animate&&11!==h.ie&&this.classes.add("animate")},repaint:function(){return this.classes.toggle("menu-align",!0),this._super(),this.getEl().style.height="",this.getEl("body").style.height="",this},cancel:function(){this.hideAll(),this.fire("select")},load:function(){var e,n=this;function i(){n.throbber&&(n.throbber.hide(),n.throbber=null)}n.settings.itemsFactory&&(n.throbber||(n.throbber=new so(n.getEl("body"),!0),0===n.items().length?(n.throbber.show(),n.fire("loading")):n.throbber.show(100,function(){n.items().remove(),n.fire("loading")}),n.on("hide close",i)),n.requestTime=e=(new Date).getTime(),n.settings.itemsFactory(function(t){0!==t.length?n.requestTime===e&&(n.getEl().style.width="",n.getEl("body").style.width="",i(),n.items().remove(),n.getEl("body").innerHTML="",n.add(t),n.renderNew(),n.fire("loaded")):n.hide()}))},hideAll:function(){return this.find("menuitem").exec("hideMenu"),this._super()},preRender:function(){var n=this;return n.items().each(function(t){var e=t.settings;if(e.icon||e.image||e.selectable)return!(n._hasIcons=!0)}),n.settings.itemsFactory&&n.on("postrender",function(){n.settings.itemsFactory&&n.load()}),n.on("show hide",function(t){t.control===n&&("show"===t.type?c.setTimeout(function(){n.classes.add("in")},0):n.classes.remove("in"))}),n._super()}}),lo=oo.extend({init:function(i){var e,r,o,n,s=this;s._super(i),i=s.settings,s._values=e=i.values,e&&("undefined"!=typeof i.value&&function t(e){for(var n=0;n<e.length;n++){if(r=e[n].selected||i.value===e[n].value)return o=o||e[n].text,s.state.set("value",e[n].value),!0;if(e[n].menu&&t(e[n].menu))return!0}}(e),!r&&0<e.length&&(o=e[0].text,s.state.set("value",e[0].value)),s.state.set("menu",e)),s.state.set("text",i.text||o),s.classes.add("listbox"),s.on("select",function(t){var e=t.control;n&&(t.lastControl=n),i.multiple?e.active(!e.active()):s.value(t.control.value()),n=e})},value:function(e){return 0===arguments.length?this.state.get("value"):(void 0===e||(this.settings.values?0<R.grep(this.settings.values,function(t){return t.value===e}).length?this.state.set("value",e):null===e&&this.state.set("value",null):this.state.set("value",e)),this)},bindStates:function(){var i=this;return i.on("show",function(t){var e,n;e=t.control,n=i.value(),e instanceof ao&&e.items().each(function(t){t.hasMenus()||t.active(t.value()===n)})}),i.state.on("change:value",function(e){var n=function t(e,n){var i;if(e)for(var r=0;r<e.length;r++){if(e[r].value===n)return e[r];if(e[r].menu&&(i=t(e[r].menu,n)))return i}}(i.state.get("menu"),e.value);n?i.text(n.text):i.text(i.settings.text)}),i._super()}}),uo=xe.extend({Defaults:{border:0,role:"menuitem"},init:function(t){var e,n=this;n._super(t),t=n.settings,n.classes.add("menu-item"),t.menu&&n.classes.add("menu-item-expand"),t.preview&&n.classes.add("menu-item-preview"),"-"!==(e=n.state.get("text"))&&"|"!==e||(n.classes.add("menu-item-sep"),n.aria("role","separator"),n.state.set("text","-")),t.selectable&&(n.aria("role","menuitemcheckbox"),n.classes.add("menu-item-checkbox"),t.icon="selected"),t.preview||t.selectable||n.classes.add("menu-item-normal"),n.on("mousedown",function(t){t.preventDefault()}),t.menu&&!t.ariaHideMenu&&n.aria("haspopup",!0)},hasMenus:function(){return!!this.settings.menu},showMenu:function(){var e,n=this,t=n.settings,i=n.parent();if(i.items().each(function(t){t!==n&&t.hideMenu()}),t.menu){(e=n.menu)?e.show():((e=t.menu).length?e={type:"menu",items:e}:e.type=e.type||"menu",i.settings.itemDefaults&&(e.itemDefaults=i.settings.itemDefaults),(e=n.menu=He.create(e).parent(n).renderTo()).reflow(),e.on("cancel",function(t){t.stopPropagation(),n.focus(),e.hide()}),e.on("show hide",function(t){t.control.items&&t.control.items().each(function(t){t.active(t.settings.selected)})}).fire("show"),e.on("hide",function(t){t.control===e&&n.classes.remove("selected")}),e.submenu=!0),e._parentMenu=i,e.classes.add("menu-sub");var r=e.testMoveRel(n.getEl(),n.isRtl()?["tl-tr","bl-br","tr-tl","br-bl"]:["tr-tl","br-bl","tl-tr","bl-br"]);e.moveRel(n.getEl(),r),r="menu-sub-"+(e.rel=r),e.classes.remove(e._lastRel).add(r),e._lastRel=r,n.classes.add("selected"),n.aria("expanded",!0)}},hideMenu:function(){var t=this;return t.menu&&(t.menu.items().each(function(t){t.hideMenu&&t.hideMenu()}),t.menu.hide(),t.aria("expanded",!1)),t},renderHtml:function(){var t,e=this,n=e._id,i=e.settings,r=e.classPrefix,o=e.state.get("text"),s=e.settings.icon,a="",l=i.shortcut,u=e.encode(i.url);function c(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function d(t){var e=i.match||"";return e?t.replace(new RegExp(c(e),"gi"),function(t){return"!mce~match["+t+"]mce~match!"}):t}function f(t){return t.replace(new RegExp(c("!mce~match["),"g"),"<b>").replace(new RegExp(c("]mce~match!"),"g"),"</b>")}return s&&e.parent().classes.add("menu-has-icons"),i.image&&(a=" style=\"background-image: url('"+i.image+"')\""),l&&(l=function(t){var e,n,i={};for(i=h.mac?{alt:"⌥",ctrl:"⌘",shift:"⇧",meta:"⌘"}:{meta:"Ctrl"},t=t.split("+"),e=0;e<t.length;e++)(n=i[t[e].toLowerCase()])&&(t[e]=n);return t.join("+")}(l)),s=r+"ico "+r+"i-"+(e.settings.icon||"none"),t="-"!==o?'<i class="'+s+'"'+a+"></i>\xa0":"",o=f(e.encode(d(o))),u=f(e.encode(d(u))),'<div id="'+n+'" class="'+e.classes+'" tabindex="-1">'+t+("-"!==o?'<span id="'+n+'-text" class="'+r+'text">'+o+"</span>":"")+(l?'<div id="'+n+'-shortcut" class="'+r+'menu-shortcut">'+l+"</div>":"")+(i.menu?'<div class="'+r+'caret"></div>':"")+(u?'<div class="'+r+'menu-item-link">'+u+"</div>":"")+"</div>"},postRender:function(){var e=this,n=e.settings,t=n.textStyle;if("function"==typeof t&&(t=t.call(this)),t){var i=e.getEl("text");i&&(i.setAttribute("style",t),e._textStyle=t)}return e.on("mouseenter click",function(t){t.control===e&&(n.menu||"click"!==t.type?(e.showMenu(),t.aria&&e.menu.focus(!0)):(e.fire("select"),c.requestAnimationFrame(function(){e.parent().hideAll()})))}),e._super(),e},hover:function(){return this.parent().items().each(function(t){t.classes.remove("selected")}),this.classes.toggle("selected",!0),this},active:function(t){return function(t,e){var n=t._textStyle;if(n){var i=t.getEl("text");i.setAttribute("style",n),e&&(i.style.color="",i.style.backgroundColor="")}}(this,t),void 0!==t&&this.aria("checked",t),this._super(t)},remove:function(){this._super(),this.menu&&this.menu.remove()}}),co=zn.extend({Defaults:{classes:"radio",role:"radio"}}),fo=xe.extend({renderHtml:function(){var t=this,e=t.classPrefix;return t.classes.add("resizehandle"),"both"===t.settings.direction&&t.classes.add("resizehandle-both"),t.canFocus=!1,'<div id="'+t._id+'" class="'+t.classes+'"><i class="'+e+"ico "+e+'i-resize"></i></div>'},postRender:function(){var e=this;e._super(),e.resizeDragHelper=new Ee(this._id,{start:function(){e.fire("ResizeStart")},drag:function(t){"both"!==e.settings.direction&&(t.deltaX=0),e.fire("Resize",t)},stop:function(){e.fire("ResizeEnd")}})},remove:function(){return this.resizeDragHelper&&this.resizeDragHelper.destroy(),this._super()}});function ho(t){var e="";if(t)for(var n=0;n<t.length;n++)e+='<option value="'+t[n]+'">'+t[n]+"</option>";return e}var mo=xe.extend({Defaults:{classes:"selectbox",role:"selectbox",options:[]},init:function(t){var n=this;n._super(t),n.settings.size&&(n.size=n.settings.size),n.settings.options&&(n._options=n.settings.options),n.on("keydown",function(t){var e;13===t.keyCode&&(t.preventDefault(),n.parents().reverse().each(function(t){if(t.toJSON)return e=t,!1}),n.fire("submit",{data:e.toJSON()}))})},options:function(t){return arguments.length?(this.state.set("options",t),this):this.state.get("options")},renderHtml:function(){var t,e=this,n="";return t=ho(e._options),e.size&&(n=' size = "'+e.size+'"'),'<select id="'+e._id+'" class="'+e.classes+'"'+n+">"+t+"</select>"},bindStates:function(){var e=this;return e.state.on("change:options",function(t){e.getEl().innerHTML=ho(t.value)}),e._super()}});function go(t,e,n){return t<e&&(t=e),n<t&&(t=n),t}function po(t,e,n){t.setAttribute("aria-"+e,n)}function vo(t,e){var n,i,r,o,s;"v"===t.settings.orientation?(r="top",i="height",n="h"):(r="left",i="width",n="w"),s=t.getEl("handle"),o=((t.layoutRect()[n]||100)-Pt.getSize(s)[i])*((e-t._minValue)/(t._maxValue-t._minValue))+"px",s.style[r]=o,s.style.height=t.layoutRect().h+"px",po(s,"valuenow",e),po(s,"valuetext",""+t.settings.previewFilter(e)),po(s,"valuemin",t._minValue),po(s,"valuemax",t._maxValue)}var yo=xe.extend({init:function(t){var e=this;t.previewFilter||(t.previewFilter=function(t){return Math.round(100*t)/100}),e._super(t),e.classes.add("slider"),"v"===t.orientation&&e.classes.add("vertical"),e._minValue=pt.isNumber(t.minValue)?t.minValue:0,e._maxValue=pt.isNumber(t.maxValue)?t.maxValue:100,e._initValue=e.state.get("value")},renderHtml:function(){var t=this._id,e=this.classPrefix;return'<div id="'+t+'" class="'+this.classes+'"><div id="'+t+'-handle" class="'+e+'slider-handle" role="slider" tabindex="-1"></div></div>'},reset:function(){this.value(this._initValue).repaint()},postRender:function(){var t,e,n,i,r,o,s,a,l,u,c,d,f,h,m=this;t=m._minValue,e=m._maxValue,"v"===m.settings.orientation?(n="screenY",i="top",r="height",o="h"):(n="screenX",i="left",r="width",o="w"),m._super(),function(o,s){function e(t){var e,n,i,r;e=go(e=(((e=m.value())+(r=n=o))/((i=s)-r)+.05*t)*(i-n)-n,o,s),m.value(e),m.fire("dragstart",{value:e}),m.fire("drag",{value:e}),m.fire("dragend",{value:e})}m.on("keydown",function(t){switch(t.keyCode){case 37:case 38:e(-1);break;case 39:case 40:e(1)}})}(t,e),s=t,a=e,l=m.getEl("handle"),m._dragHelper=new Ee(m._id,{handle:m._id+"-handle",start:function(t){u=t[n],c=parseInt(m.getEl("handle").style[i],10),d=(m.layoutRect()[o]||100)-Pt.getSize(l)[r],m.fire("dragstart",{value:h})},drag:function(t){var e=t[n]-u;f=go(c+e,0,d),l.style[i]=f+"px",h=s+f/d*(a-s),m.value(h),m.tooltip().text(""+m.settings.previewFilter(h)).show().moveRel(l,"bc tc"),m.fire("drag",{value:h})},stop:function(){m.tooltip().hide(),m.fire("dragend",{value:h})}})},repaint:function(){this._super(),vo(this,this.value())},bindStates:function(){var e=this;return e.state.on("change:value",function(t){vo(e,t.value)}),e._super()}}),bo=xe.extend({renderHtml:function(){return this.classes.add("spacer"),this.canFocus=!1,'<div id="'+this._id+'" class="'+this.classes+'"></div>'}}),xo=oo.extend({Defaults:{classes:"widget btn splitbtn",role:"button"},repaint:function(){var t,e,n=this.getEl(),i=this.layoutRect();return this._super(),t=n.firstChild,e=n.lastChild,Nt(t).css({width:i.w-Pt.getSize(e).width,height:i.h-2}),Nt(e).css({height:i.h-2}),this},activeMenu:function(t){Nt(this.getEl().lastChild).toggleClass(this.classPrefix+"active",t)},renderHtml:function(){var t,e,n=this,i=n._id,r=n.classPrefix,o=n.state.get("icon"),s=n.state.get("text"),a=n.settings,l="";return(t=a.image)?(o="none","string"!=typeof t&&(t=window.getSelection?t[0]:t[1]),t=" style=\"background-image: url('"+t+"')\""):t="",o=a.icon?r+"ico "+r+"i-"+o:"",s&&(n.classes.add("btn-has-text"),l='<span class="'+r+'txt">'+n.encode(s)+"</span>"),e="boolean"==typeof a.active?' aria-pressed="'+a.active+'"':"",'<div id="'+i+'" class="'+n.classes+'" role="button"'+e+' tabindex="-1"><button type="button" hidefocus="1" tabindex="-1">'+(o?'<i class="'+o+'"'+t+"></i>":"")+l+'</button><button type="button" class="'+r+'open" hidefocus="1" tabindex="-1">'+(n._menuBtnText?(o?"\xa0":"")+n._menuBtnText:"")+' <i class="'+r+'caret"></i></button></div>'},postRender:function(){var n=this.settings.onclick;return this.on("click",function(t){var e=t.target;if(t.control===this)for(;e;){if(t.aria&&"down"!==t.aria.key||"BUTTON"===e.nodeName&&-1===e.className.indexOf("open"))return t.stopImmediatePropagation(),void(n&&n.call(this,t));e=e.parentNode}}),delete this.settings.onclick,this._super()}}),wo=Cr.extend({Defaults:{containerClass:"stack-layout",controlClass:"stack-layout-item",endClass:"break"},isNative:function(){return!0}}),_o=Be.extend({Defaults:{layout:"absolute",defaults:{type:"panel"}},activateTab:function(n){var t;this.activeTabId&&(t=this.getEl(this.activeTabId),Nt(t).removeClass(this.classPrefix+"active"),t.setAttribute("aria-selected","false")),this.activeTabId="t"+n,(t=this.getEl("t"+n)).setAttribute("aria-selected","true"),Nt(t).addClass(this.classPrefix+"active"),this.items()[n].show().fire("showtab"),this.reflow(),this.items().each(function(t,e){n!==e&&t.hide()})},renderHtml:function(){var i=this,t=i._layout,r="",o=i.classPrefix;return i.preRender(),t.preRender(i),i.items().each(function(t,e){var n=i._id+"-t"+e;t.aria("role","tabpanel"),t.aria("labelledby",n),r+='<div id="'+n+'" class="'+o+'tab" unselectable="on" role="tab" aria-controls="'+t._id+'" aria-selected="false" tabIndex="-1">'+i.encode(t.settings.title)+"</div>"}),'<div id="'+i._id+'" class="'+i.classes+'" hidefocus="1" tabindex="-1"><div id="'+i._id+'-head" class="'+o+'tabs" role="tablist">'+r+'</div><div id="'+i._id+'-body" class="'+i.bodyClasses+'">'+t.renderHtml(i)+"</div></div>"},postRender:function(){var i=this;i._super(),i.settings.activeTab=i.settings.activeTab||0,i.activateTab(i.settings.activeTab),this.on("click",function(t){var e=t.target.parentNode;if(e&&e.id===i._id+"-head")for(var n=e.childNodes.length;n--;)e.childNodes[n]===t.target&&i.activateTab(n)})},initLayoutRect:function(){var t,e,n,i=this;e=(e=Pt.getSize(i.getEl("head")).width)<0?0:e,n=0,i.items().each(function(t){e=Math.max(e,t.layoutRect().minW),n=Math.max(n,t.layoutRect().minH)}),i.items().each(function(t){t.settings.x=0,t.settings.y=0,t.settings.w=e,t.settings.h=n,t.layoutRect({x:0,y:0,w:e,h:n})});var r=Pt.getSize(i.getEl("head")).height;return i.settings.minWidth=e,i.settings.minHeight=n+r,(t=i._super()).deltaH+=r,t.innerH=t.h-t.deltaH,t}}),Ro=xe.extend({init:function(t){var n=this;n._super(t),n.classes.add("textbox"),t.multiline?n.classes.add("multiline"):(n.on("keydown",function(t){var e;13===t.keyCode&&(t.preventDefault(),n.parents().reverse().each(function(t){if(t.toJSON)return e=t,!1}),n.fire("submit",{data:e.toJSON()}))}),n.on("keyup",function(t){n.state.set("value",t.target.value)}))},repaint:function(){var t,e,n,i,r,o=this,s=0;t=o.getEl().style,e=o._layoutRect,r=o._lastRepaintRect||{};var a=document;return!o.settings.multiline&&a.all&&(!a.documentMode||a.documentMode<=8)&&(t.lineHeight=e.h-s+"px"),i=(n=o.borderBox).left+n.right+8,s=n.top+n.bottom+(o.settings.multiline?8:0),e.x!==r.x&&(t.left=e.x+"px",r.x=e.x),e.y!==r.y&&(t.top=e.y+"px",r.y=e.y),e.w!==r.w&&(t.width=e.w-i+"px",r.w=e.w),e.h!==r.h&&(t.height=e.h-s+"px",r.h=e.h),o._lastRepaintRect=r,o.fire("repaint",{},!1),o},renderHtml:function(){var e,t,n=this,i=n.settings;return e={id:n._id,hidefocus:"1"},R.each(["rows","spellcheck","maxLength","size","readonly","min","max","step","list","pattern","placeholder","required","multiple"],function(t){e[t]=i[t]}),n.disabled()&&(e.disabled="disabled"),i.subtype&&(e.type=i.subtype),(t=Pt.create(i.multiline?"textarea":"input",e)).value=n.state.get("value"),t.className=n.classes,t.outerHTML},value:function(t){return arguments.length?(this.state.set("value",t),this):(this.state.get("rendered")&&this.state.set("value",this.getEl().value),this.state.get("value"))},postRender:function(){var e=this;e.getEl().value=e.state.get("value"),e._super(),e.$el.on("change",function(t){e.state.set("value",t.target.value),e.fire("change",t)})},bindStates:function(){var e=this;return e.state.on("change:value",function(t){e.getEl().value!==t.value&&(e.getEl().value=t.value)}),e.state.on("change:disabled",function(t){e.getEl().disabled=t.value}),e._super()},remove:function(){this.$el.off(),this._super()}}),Co=function(){return{Selector:$t,Collection:Jt,ReflowQueue:ie,Control:fe,Factory:He,KeyboardNavigation:Me,Container:De,DragHelper:Ee,Scrollable:Ae,Panel:Be,Movable:ye,Resizable:Le,FloatPanel:je,Window:Ke,MessageBox:Ze,Tooltip:be,Widget:xe,Progress:we,Notification:Re,Layout:Dn,AbsoluteLayout:An,Button:Bn,ButtonGroup:In,Checkbox:zn,ComboBox:Vn,ColorBox:qn,PanelButton:Un,ColorButton:$n,ColorPicker:Xn,Path:Gn,ElementPath:Kn,FormItem:Zn,Form:Qn,FieldSet:ti,FilePicker:wr,FitLayout:_r,FlexLayout:Rr,FlowLayout:Cr,FormatControls:Zr,GridLayout:Qr,Iframe:to,InfoBox:eo,Label:no,Toolbar:io,MenuBar:ro,MenuButton:oo,MenuItem:uo,Throbber:so,Menu:ao,ListBox:lo,Radio:co,ResizeHandle:fo,SelectBox:mo,Slider:yo,Spacer:bo,SplitButton:xo,StackLayout:wo,TabPanel:_o,TextBox:Ro,DropZone:Jn,BrowseButton:Ln}},ko=function(n){n.ui?R.each(Co(),function(t,e){n.ui[e]=t}):n.ui=Co()};R.each(Co(),function(t,e){He.add(e,t)}),ko(window.tinymce?window.tinymce:{}),o.add("inlite",function(t){var e=On();return Zr.setup(t),Hn(t,e),Qe(t,e)})}(); \ No newline at end of file diff --git a/wp-includes/js/tinymce/themes/modern/theme.js b/wp-includes/js/tinymce/themes/modern/theme.js index dca03c85b..a46ef6b2f 100644 --- a/wp-includes/js/tinymce/themes/modern/theme.js +++ b/wp-includes/js/tinymce/themes/modern/theme.js @@ -1,1681 +1,10450 @@ (function () { +var modern = (function () { + 'use strict'; -var defs = {}; // id -> {dependencies, definition, instance (possibly undefined)} - -// Used when there is no 'main' module. -// The name is probably (hopefully) unique so minification removes for releases. -var register_3795 = function (id) { - var module = dem(id); - var fragments = id.split('.'); - var target = Function('return this;')(); - for (var i = 0; i < fragments.length - 1; ++i) { - if (target[fragments[i]] === undefined) - target[fragments[i]] = {}; - target = target[fragments[i]]; - } - target[fragments[fragments.length - 1]] = module; -}; - -var instantiate = function (id) { - var actual = defs[id]; - var dependencies = actual.deps; - var definition = actual.defn; - var len = dependencies.length; - var instances = new Array(len); - for (var i = 0; i < len; ++i) - instances[i] = dem(dependencies[i]); - var defResult = definition.apply(null, instances); - if (defResult === undefined) - throw 'module [' + id + '] returned undefined'; - actual.instance = defResult; -}; - -var def = function (id, dependencies, definition) { - if (typeof id !== 'string') - throw 'module id must be a string'; - else if (dependencies === undefined) - throw 'no dependencies for ' + id; - else if (definition === undefined) - throw 'no definition function for ' + id; - defs[id] = { - deps: dependencies, - defn: definition, - instance: undefined - }; -}; - -var dem = function (id) { - var actual = defs[id]; - if (actual === undefined) - throw 'module [' + id + '] was undefined'; - else if (actual.instance === undefined) - instantiate(id); - return actual.instance; -}; - -var req = function (ids, callback) { - var len = ids.length; - var instances = new Array(len); - for (var i = 0; i < len; ++i) - instances.push(dem(ids[i])); - callback.apply(null, callback); -}; - -var ephox = {}; - -ephox.bolt = { - module: { - api: { - define: def, - require: req, - demand: dem - } - } -}; - -var define = def; -var require = req; -var demand = dem; -// this helps with minificiation when using a lot of global references -var defineGlobal = function (id, ref) { - define(id, [], function () { return ref; }); -}; -/*jsc -["tinymce.themes.modern.Theme","global!window","tinymce.core.AddOnManager","tinymce.core.EditorManager","tinymce.core.Env","tinymce.core.ui.Api","tinymce.themes.modern.modes.Iframe","tinymce.themes.modern.modes.Inline","tinymce.themes.modern.ui.ProgressState","tinymce.themes.modern.ui.Resize","global!tinymce.util.Tools.resolve","tinymce.core.dom.DOMUtils","tinymce.core.ui.Factory","tinymce.core.util.Tools","tinymce.themes.modern.ui.A11y","tinymce.themes.modern.ui.Branding","tinymce.themes.modern.ui.ContextToolbars","tinymce.themes.modern.ui.Menubar","tinymce.themes.modern.ui.Sidebar","tinymce.themes.modern.ui.SkinLoaded","tinymce.themes.modern.ui.Toolbar","tinymce.core.ui.FloatPanel","tinymce.core.ui.Throbber","tinymce.core.util.Delay","tinymce.core.geom.Rect"] -jsc*/ -defineGlobal("global!window", window); -defineGlobal("global!tinymce.util.Tools.resolve", tinymce.util.Tools.resolve); -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.AddOnManager', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.AddOnManager'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.EditorManager', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.EditorManager'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.Env', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.Env'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.ui.Api', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.ui.Api'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.dom.DOMUtils', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.dom.DOMUtils'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.ui.Factory', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.ui.Factory'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.util.Tools', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.util.Tools'); - } -); - -/** - * A11y.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.modern.ui.A11y', - [ - ], - function () { - var focus = function (panel, type) { - return function () { - var item = panel.find(type)[0]; + var global = tinymce.util.Tools.resolve('tinymce.ThemeManager'); - if (item) { - item.focus(true); - } - }; - }; + var global$1 = tinymce.util.Tools.resolve('tinymce.EditorManager'); - var addKeys = function (editor, panel) { - editor.shortcuts.add('Alt+F9', '', focus(panel, 'menubar')); - editor.shortcuts.add('Alt+F10,F10', '', focus(panel, 'toolbar')); - editor.shortcuts.add('Alt+F11', '', focus(panel, 'elementpath')); - panel.on('cancel', function () { - editor.focus(); - }); - }; + var global$2 = tinymce.util.Tools.resolve('tinymce.util.Tools'); - return { - addKeys: addKeys - }; - } -); - -/** - * Branding.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.modern.ui.Branding', - [ - 'tinymce.core.dom.DOMUtils' - ], - function (DOMUtils) { - var DOM = DOMUtils.DOM; - - var reposition = function (editor, poweredByElm, hasStatusbar) { - return function () { - var iframeWidth = editor.getContentAreaContainer().querySelector('iframe').offsetWidth; - var scrollbarWidth = Math.max(iframeWidth - editor.getDoc().documentElement.offsetWidth, 0); + var isBrandingEnabled = function (editor) { + return editor.getParam('branding', true, 'boolean'); + }; + var hasMenubar = function (editor) { + return getMenubar(editor) !== false; + }; + var getMenubar = function (editor) { + return editor.getParam('menubar'); + }; + var hasStatusbar = function (editor) { + return editor.getParam('statusbar', true, 'boolean'); + }; + var getToolbarSize = function (editor) { + return editor.getParam('toolbar_items_size'); + }; + var isReadOnly = function (editor) { + return editor.getParam('readonly', false, 'boolean'); + }; + var getFixedToolbarContainer = function (editor) { + return editor.getParam('fixed_toolbar_container'); + }; + var getInlineToolbarPositionHandler = function (editor) { + return editor.getParam('inline_toolbar_position_handler'); + }; + var getMenu = function (editor) { + return editor.getParam('menu'); + }; + var getRemovedMenuItems = function (editor) { + return editor.getParam('removed_menuitems', ''); + }; + var getMinWidth = function (editor) { + return editor.getParam('min_width', 100, 'number'); + }; + var getMinHeight = function (editor) { + return editor.getParam('min_height', 100, 'number'); + }; + var getMaxWidth = function (editor) { + return editor.getParam('max_width', 65535, 'number'); + }; + var getMaxHeight = function (editor) { + return editor.getParam('max_height', 65535, 'number'); + }; + var isSkinDisabled = function (editor) { + return editor.settings.skin === false; + }; + var isInline = function (editor) { + return editor.getParam('inline', false, 'boolean'); + }; + var getResize = function (editor) { + var resize = editor.getParam('resize', 'vertical'); + if (resize === false) { + return 'none'; + } else if (resize === 'both') { + return 'both'; + } else { + return 'vertical'; + } + }; + var getSkinUrl = function (editor) { + var settings = editor.settings; + var skin = settings.skin; + var skinUrl = settings.skin_url; + if (skin !== false) { + var skinName = skin ? skin : 'lightgray'; + if (skinUrl) { + skinUrl = editor.documentBaseURI.toAbsolute(skinUrl); + } else { + skinUrl = global$1.baseURL + '/skins/' + skinName; + } + } + return skinUrl; + }; + var getIndexedToolbars = function (settings, defaultToolbar) { + var toolbars = []; + for (var i = 1; i < 10; i++) { + var toolbar_1 = settings['toolbar' + i]; + if (!toolbar_1) { + break; + } + toolbars.push(toolbar_1); + } + var mainToolbar = settings.toolbar ? [settings.toolbar] : [defaultToolbar]; + return toolbars.length > 0 ? toolbars : mainToolbar; + }; + var getToolbars = function (editor) { + var toolbar = editor.getParam('toolbar'); + var defaultToolbar = 'undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image'; + if (toolbar === false) { + return []; + } else if (global$2.isArray(toolbar)) { + return global$2.grep(toolbar, function (toolbar) { + return toolbar.length > 0; + }); + } else { + return getIndexedToolbars(editor.settings, defaultToolbar); + } + }; - DOM.setStyle(poweredByElm, 'right', scrollbarWidth + 'px'); - if (hasStatusbar) { - DOM.setStyle(poweredByElm, 'top', '-16px'); - } else { - DOM.setStyle(poweredByElm, 'bottom', '1px'); - } - }; - }; + var global$3 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils'); - var hide = function (poweredByElm) { - return function () { - DOM.hide(poweredByElm); - }; - }; + var global$4 = tinymce.util.Tools.resolve('tinymce.ui.Factory'); - var setupReposition = function (editor, poweredByElm, hasStatusbar) { - reposition(editor, poweredByElm, hasStatusbar)(); - editor.on('NodeChange ResizeEditor', reposition(editor, poweredByElm, hasStatusbar)); - }; + var global$5 = tinymce.util.Tools.resolve('tinymce.util.I18n'); - var appendToStatusbar = function (editor, poweredByElm, statusbarElm) { - statusbarElm.appendChild(poweredByElm); - setupReposition(editor, poweredByElm, true); - }; + var fireSkinLoaded = function (editor) { + return editor.fire('SkinLoaded'); + }; + var fireResizeEditor = function (editor) { + return editor.fire('ResizeEditor'); + }; + var fireBeforeRenderUI = function (editor) { + return editor.fire('BeforeRenderUI'); + }; + var $_b6da16t0jfuw8sbv = { + fireSkinLoaded: fireSkinLoaded, + fireResizeEditor: fireResizeEditor, + fireBeforeRenderUI: fireBeforeRenderUI + }; - var appendToContainer = function (editor, poweredByElm) { - editor.getContainer().appendChild(poweredByElm); - setupReposition(editor, poweredByElm, false); + var focus = function (panel, type) { + return function () { + var item = panel.find(type)[0]; + if (item) { + item.focus(true); + } }; + }; + var addKeys = function (editor, panel) { + editor.shortcuts.add('Alt+F9', '', focus(panel, 'menubar')); + editor.shortcuts.add('Alt+F10,F10', '', focus(panel, 'toolbar')); + editor.shortcuts.add('Alt+F11', '', focus(panel, 'elementpath')); + panel.on('cancel', function () { + editor.focus(); + }); + }; + var $_gaf3jet1jfuw8sbw = { addKeys: addKeys }; - var setupEventListeners = function (editor) { - editor.on('SkinLoaded', function () { - var poweredByElm = DOM.create('div', { 'class': 'mce-branding-powered-by' }); - var statusbarElm = editor.getContainer().querySelector('.mce-statusbar'); + var global$6 = tinymce.util.Tools.resolve('tinymce.geom.Rect'); - if (statusbarElm) { - appendToStatusbar(editor, poweredByElm, statusbarElm); - } else { - appendToContainer(editor, poweredByElm); - } + var global$7 = tinymce.util.Tools.resolve('tinymce.util.Delay'); - DOM.bind(poweredByElm, 'click', hide(poweredByElm)); - }); + var noop = function () { + var x = []; + for (var _i = 0; _i < arguments.length; _i++) { + x[_i] = arguments[_i]; + } + }; + var noarg = function (f) { + return function () { + var x = []; + for (var _i = 0; _i < arguments.length; _i++) { + x[_i] = arguments[_i]; + } + return f(); }; - - var setup = function (editor) { - if (editor.settings.branding !== false) { - setupEventListeners(editor); + }; + var compose = function (fa, fb) { + return function () { + var x = []; + for (var _i = 0; _i < arguments.length; _i++) { + x[_i] = arguments[_i]; } + return fa(fb.apply(null, arguments)); }; - - return { - setup: setup + }; + var constant = function (value) { + return function () { + return value; }; - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.util.Delay', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.util.Delay'); - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.geom.Rect', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.geom.Rect'); - } -); - -/** - * Toolbar.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.modern.ui.Toolbar', - [ - 'tinymce.core.util.Tools', - 'tinymce.core.ui.Factory' - ], - function (Tools, Factory) { - var defaultToolbar = "undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | " + - "bullist numlist outdent indent | link image"; - - var createToolbar = function (editor, items, size) { - var toolbarItems = [], buttonGroup; - - if (!items) { - return; + }; + var identity = function (x) { + return x; + }; + var tripleEquals = function (a, b) { + return a === b; + }; + var curry = function (f) { + var x = []; + for (var _i = 1; _i < arguments.length; _i++) { + x[_i - 1] = arguments[_i]; + } + var args = new Array(arguments.length - 1); + for (var i = 1; i < arguments.length; i++) + args[i - 1] = arguments[i]; + return function () { + var x = []; + for (var _i = 0; _i < arguments.length; _i++) { + x[_i] = arguments[_i]; } + var newArgs = new Array(arguments.length); + for (var j = 0; j < newArgs.length; j++) + newArgs[j] = arguments[j]; + var all = args.concat(newArgs); + return f.apply(null, all); + }; + }; + var not = function (f) { + return function () { + var x = []; + for (var _i = 0; _i < arguments.length; _i++) { + x[_i] = arguments[_i]; + } + return !f.apply(null, arguments); + }; + }; + var die = function (msg) { + return function () { + throw new Error(msg); + }; + }; + var apply = function (f) { + return f(); + }; + var call = function (f) { + f(); + }; + var never = constant(false); + var always = constant(true); + var $_cun2p5t7jfuw8scg = { + noop: noop, + noarg: noarg, + compose: compose, + constant: constant, + identity: identity, + tripleEquals: tripleEquals, + curry: curry, + not: not, + die: die, + apply: apply, + call: call, + never: never, + always: always + }; - Tools.each(items.split(/[ ,]/), function (item) { - var itemName; - - var bindSelectorChanged = function () { - var selection = editor.selection; - - if (item.settings.stateSelector) { - selection.selectorChanged(item.settings.stateSelector, function (state) { - item.active(state); - }, true); - } - - if (item.settings.disabledStateSelector) { - selection.selectorChanged(item.settings.disabledStateSelector, function (state) { - item.disabled(state); - }); - } - }; - - if (item == "|") { - buttonGroup = null; - } else { - if (!buttonGroup) { - buttonGroup = { type: 'buttongroup', items: [] }; - toolbarItems.push(buttonGroup); - } - - if (editor.buttons[item]) { - // TODO: Move control creation to some UI class - itemName = item; - item = editor.buttons[itemName]; - - if (typeof item == "function") { - item = item(); - } - - item.type = item.type || 'button'; - item.size = size; - - item = Factory.create(item); - buttonGroup.items.push(item); - - if (editor.initialized) { - bindSelectorChanged(); - } else { - editor.on('init', bindSelectorChanged); - } - } - } - }); - - return { - type: 'toolbar', - layout: 'flow', - items: toolbarItems - }; + var never$1 = $_cun2p5t7jfuw8scg.never; + var always$1 = $_cun2p5t7jfuw8scg.always; + var none = function () { + return NONE; + }; + var NONE = function () { + var eq = function (o) { + return o.isNone(); }; + var call = function (thunk) { + return thunk(); + }; + var id = function (n) { + return n; + }; + var noop = function () { + }; + var me = { + fold: function (n, s) { + return n(); + }, + is: never$1, + isSome: never$1, + isNone: always$1, + getOr: id, + getOrThunk: call, + getOrDie: function (msg) { + throw new Error(msg || 'error: getOrDie called on none.'); + }, + or: id, + orThunk: call, + map: none, + ap: none, + each: noop, + bind: none, + flatten: none, + exists: never$1, + forall: always$1, + filter: none, + equals: eq, + equals_: eq, + toArray: function () { + return []; + }, + toString: $_cun2p5t7jfuw8scg.constant('none()') + }; + if (Object.freeze) + Object.freeze(me); + return me; + }(); + var some = function (a) { + var constant_a = function () { + return a; + }; + var self = function () { + return me; + }; + var map = function (f) { + return some(f(a)); + }; + var bind = function (f) { + return f(a); + }; + var me = { + fold: function (n, s) { + return s(a); + }, + is: function (v) { + return a === v; + }, + isSome: always$1, + isNone: never$1, + getOr: constant_a, + getOrThunk: constant_a, + getOrDie: constant_a, + or: self, + orThunk: self, + map: map, + ap: function (optfab) { + return optfab.fold(none, function (fab) { + return some(fab(a)); + }); + }, + each: function (f) { + f(a); + }, + bind: bind, + flatten: constant_a, + exists: bind, + forall: bind, + filter: function (f) { + return f(a) ? me : NONE; + }, + equals: function (o) { + return o.is(a); + }, + equals_: function (o, elementEq) { + return o.fold(never$1, function (b) { + return elementEq(a, b); + }); + }, + toArray: function () { + return [a]; + }, + toString: function () { + return 'some(' + a + ')'; + } + }; + return me; + }; + var from = function (value) { + return value === null || value === undefined ? NONE : some(value); + }; + var Option = { + some: some, + none: none, + from: from + }; - /** - * Creates the toolbars from config and returns a toolbar array. - * - * @param {String} size Optional toolbar item size. - * @return {Array} Array with toolbars. - */ - var createToolbars = function (editor, size) { - var toolbars = [], settings = editor.settings; + var getUiContainerDelta = function (ctrl) { + var uiContainer = getUiContainer(ctrl); + if (uiContainer && global$3.DOM.getStyle(uiContainer, 'position', true) !== 'static') { + var containerPos = global$3.DOM.getPos(uiContainer); + var dx = uiContainer.scrollLeft - containerPos.x; + var dy = uiContainer.scrollTop - containerPos.y; + return Option.some({ + x: dx, + y: dy + }); + } else { + return Option.none(); + } + }; + var setUiContainer = function (editor, ctrl) { + var uiContainer = global$3.DOM.select(editor.settings.ui_container)[0]; + ctrl.getRoot().uiContainer = uiContainer; + }; + var getUiContainer = function (ctrl) { + return ctrl ? ctrl.getRoot().uiContainer : null; + }; + var inheritUiContainer = function (fromCtrl, toCtrl) { + return toCtrl.uiContainer = getUiContainer(fromCtrl); + }; + var $_435hnxt5jfuw8sc9 = { + getUiContainerDelta: getUiContainerDelta, + setUiContainer: setUiContainer, + getUiContainer: getUiContainer, + inheritUiContainer: inheritUiContainer + }; - var addToolbar = function (items) { - if (items) { - toolbars.push(createToolbar(editor, items, size)); - return true; + var createToolbar = function (editor, items, size) { + var toolbarItems = []; + var buttonGroup; + if (!items) { + return; + } + global$2.each(items.split(/[ ,]/), function (item) { + var itemName; + var bindSelectorChanged = function () { + var selection = editor.selection; + if (item.settings.stateSelector) { + selection.selectorChanged(item.settings.stateSelector, function (state) { + item.active(state); + }, true); + } + if (item.settings.disabledStateSelector) { + selection.selectorChanged(item.settings.disabledStateSelector, function (state) { + item.disabled(state); + }); } }; - - // Convert toolbar array to multiple options - if (Tools.isArray(settings.toolbar)) { - // Empty toolbar array is the same as a disabled toolbar - if (settings.toolbar.length === 0) { - return; + if (item === '|') { + buttonGroup = null; + } else { + if (!buttonGroup) { + buttonGroup = { + type: 'buttongroup', + items: [] + }; + toolbarItems.push(buttonGroup); } - - Tools.each(settings.toolbar, function (toolbar, i) { - settings["toolbar" + (i + 1)] = toolbar; - }); - - delete settings.toolbar; - } - - // Generate toolbar<n> - for (var i = 1; i < 10; i++) { - if (!addToolbar(settings["toolbar" + i])) { - break; + if (editor.buttons[item]) { + itemName = item; + item = editor.buttons[itemName]; + if (typeof item === 'function') { + item = item(); + } + item.type = item.type || 'button'; + item.size = size; + item = global$4.create(item); + buttonGroup.items.push(item); + if (editor.initialized) { + bindSelectorChanged(); + } else { + editor.on('init', bindSelectorChanged); + } } } - - // Generate toolbar or default toolbar unless it's disabled - if (!toolbars.length && settings.toolbar !== false) { - addToolbar(settings.toolbar || defaultToolbar); - } - - if (toolbars.length) { - return { - type: 'panel', - layout: 'stack', - classes: "toolbar-grp", - ariaRoot: true, - ariaRemember: true, - items: toolbars - }; - } - }; - + }); return { - createToolbar: createToolbar, - createToolbars: createToolbars + type: 'toolbar', + layout: 'flow', + items: toolbarItems }; - } -); - -/** - * ContextToolbars.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.modern.ui.ContextToolbars', - [ - 'tinymce.core.dom.DOMUtils', - 'tinymce.core.util.Tools', - 'tinymce.core.util.Delay', - 'tinymce.core.ui.Factory', - 'tinymce.core.geom.Rect', - 'tinymce.themes.modern.ui.Toolbar' - ], - function (DOMUtils, Tools, Delay, Factory, Rect, Toolbar) { - var DOM = DOMUtils.DOM; - - var toClientRect = function (geomRect) { + }; + var createToolbars = function (editor, size) { + var toolbars = []; + var addToolbar = function (items) { + if (items) { + toolbars.push(createToolbar(editor, items, size)); + } + }; + global$2.each(getToolbars(editor), function (toolbar) { + addToolbar(toolbar); + }); + if (toolbars.length) { return { - left: geomRect.x, - top: geomRect.y, - width: geomRect.w, - height: geomRect.h, - right: geomRect.x + geomRect.w, - bottom: geomRect.y + geomRect.h + type: 'panel', + layout: 'stack', + classes: 'toolbar-grp', + ariaRoot: true, + ariaRemember: true, + items: toolbars }; - }; + } + }; + var $_457dd7t8jfuw8scj = { + createToolbar: createToolbar, + createToolbars: createToolbars + }; - var hideAllFloatingPanels = function (editor) { - Tools.each(editor.contextToolbars, function (toolbar) { - if (toolbar.panel) { - toolbar.panel.hide(); - } + var DOM = global$3.DOM; + var toClientRect = function (geomRect) { + return { + left: geomRect.x, + top: geomRect.y, + width: geomRect.w, + height: geomRect.h, + right: geomRect.x + geomRect.w, + bottom: geomRect.y + geomRect.h + }; + }; + var hideAllFloatingPanels = function (editor) { + global$2.each(editor.contextToolbars, function (toolbar) { + if (toolbar.panel) { + toolbar.panel.hide(); + } + }); + }; + var movePanelTo = function (panel, pos) { + panel.moveTo(pos.left, pos.top); + }; + var togglePositionClass = function (panel, relPos, predicate) { + relPos = relPos ? relPos.substr(0, 2) : ''; + global$2.each({ + t: 'down', + b: 'up' + }, function (cls, pos) { + panel.classes.toggle('arrow-' + cls, predicate(pos, relPos.substr(0, 1))); + }); + global$2.each({ + l: 'left', + r: 'right' + }, function (cls, pos) { + panel.classes.toggle('arrow-' + cls, predicate(pos, relPos.substr(1, 1))); + }); + }; + var userConstrain = function (handler, x, y, elementRect, contentAreaRect, panelRect) { + panelRect = toClientRect({ + x: x, + y: y, + w: panelRect.w, + h: panelRect.h + }); + if (handler) { + panelRect = handler({ + elementRect: toClientRect(elementRect), + contentAreaRect: toClientRect(contentAreaRect), + panelRect: panelRect }); + } + return panelRect; + }; + var addContextualToolbars = function (editor) { + var scrollContainer; + var getContextToolbars = function () { + return editor.contextToolbars || []; }; - - var movePanelTo = function (panel, pos) { - panel.moveTo(pos.left, pos.top); + var getElementRect = function (elm) { + var pos, targetRect, root; + pos = DOM.getPos(editor.getContentAreaContainer()); + targetRect = editor.dom.getRect(elm); + root = editor.dom.getRoot(); + if (root.nodeName === 'BODY') { + targetRect.x -= root.ownerDocument.documentElement.scrollLeft || root.scrollLeft; + targetRect.y -= root.ownerDocument.documentElement.scrollTop || root.scrollTop; + } + targetRect.x += pos.x; + targetRect.y += pos.y; + return targetRect; }; - - var togglePositionClass = function (panel, relPos, predicate) { - relPos = relPos ? relPos.substr(0, 2) : ''; - - Tools.each({ - t: 'down', - b: 'up' - }, function (cls, pos) { - panel.classes.toggle('arrow-' + cls, predicate(pos, relPos.substr(0, 1))); + var reposition = function (match, shouldShow) { + var relPos, panelRect, elementRect, contentAreaRect, panel, relRect, testPositions, smallElementWidthThreshold; + var handler = getInlineToolbarPositionHandler(editor); + if (editor.removed) { + return; + } + if (!match || !match.toolbar.panel) { + hideAllFloatingPanels(editor); + return; + } + testPositions = [ + 'bc-tc', + 'tc-bc', + 'tl-bl', + 'bl-tl', + 'tr-br', + 'br-tr' + ]; + panel = match.toolbar.panel; + if (shouldShow) { + panel.show(); + } + elementRect = getElementRect(match.element); + panelRect = DOM.getRect(panel.getEl()); + contentAreaRect = DOM.getRect(editor.getContentAreaContainer() || editor.getBody()); + var delta = $_435hnxt5jfuw8sc9.getUiContainerDelta(panel).getOr({ + x: 0, + y: 0 }); - - Tools.each({ - l: 'left', - r: 'right' - }, function (cls, pos) { - panel.classes.toggle('arrow-' + cls, predicate(pos, relPos.substr(1, 1))); + elementRect.x += delta.x; + elementRect.y += delta.y; + panelRect.x += delta.x; + panelRect.y += delta.y; + contentAreaRect.x += delta.x; + contentAreaRect.y += delta.y; + smallElementWidthThreshold = 25; + if (DOM.getStyle(match.element, 'display', true) !== 'inline') { + var clientRect = match.element.getBoundingClientRect(); + elementRect.w = clientRect.width; + elementRect.h = clientRect.height; + } + if (!editor.inline) { + contentAreaRect.w = editor.getDoc().documentElement.offsetWidth; + } + if (editor.selection.controlSelection.isResizable(match.element) && elementRect.w < smallElementWidthThreshold) { + elementRect = global$6.inflate(elementRect, 0, 8); + } + relPos = global$6.findBestRelativePosition(panelRect, elementRect, contentAreaRect, testPositions); + elementRect = global$6.clamp(elementRect, contentAreaRect); + if (relPos) { + relRect = global$6.relativePosition(panelRect, elementRect, relPos); + movePanelTo(panel, userConstrain(handler, relRect.x, relRect.y, elementRect, contentAreaRect, panelRect)); + } else { + contentAreaRect.h += panelRect.h; + elementRect = global$6.intersect(contentAreaRect, elementRect); + if (elementRect) { + relPos = global$6.findBestRelativePosition(panelRect, elementRect, contentAreaRect, [ + 'bc-tc', + 'bl-tl', + 'br-tr' + ]); + if (relPos) { + relRect = global$6.relativePosition(panelRect, elementRect, relPos); + movePanelTo(panel, userConstrain(handler, relRect.x, relRect.y, elementRect, contentAreaRect, panelRect)); + } else { + movePanelTo(panel, userConstrain(handler, elementRect.x, elementRect.y, elementRect, contentAreaRect, panelRect)); + } + } else { + panel.hide(); + } + } + togglePositionClass(panel, relPos, function (pos1, pos2) { + return pos1 === pos2; }); }; - - var userConstrain = function (handler, x, y, elementRect, contentAreaRect, panelRect) { - panelRect = toClientRect({ x: x, y: y, w: panelRect.w, h: panelRect.h }); - - if (handler) { - panelRect = handler({ - elementRect: toClientRect(elementRect), - contentAreaRect: toClientRect(contentAreaRect), - panelRect: panelRect + var repositionHandler = function (show) { + return function () { + var execute = function () { + if (editor.selection) { + reposition(findFrontMostMatch(editor.selection.getNode()), show); + } + }; + global$7.requestAnimationFrame(execute); + }; + }; + var bindScrollEvent = function (panel) { + if (!scrollContainer) { + var reposition_1 = repositionHandler(true); + var uiContainer_1 = $_435hnxt5jfuw8sc9.getUiContainer(panel); + scrollContainer = editor.selection.getScrollContainer() || editor.getWin(); + DOM.bind(scrollContainer, 'scroll', reposition_1); + DOM.bind(uiContainer_1, 'scroll', reposition_1); + editor.on('remove', function () { + DOM.unbind(scrollContainer, 'scroll', reposition_1); + DOM.unbind(uiContainer_1, 'scroll', reposition_1); }); } - - return panelRect; }; - - var addContextualToolbars = function (editor) { - var scrollContainer, settings = editor.settings; - - var getContextToolbars = function () { - return editor.contextToolbars || []; - }; - - var getElementRect = function (elm) { - var pos, targetRect, root; - - pos = DOM.getPos(editor.getContentAreaContainer()); - targetRect = editor.dom.getRect(elm); - root = editor.dom.getRoot(); - - // Adjust targetPos for scrolling in the editor - if (root.nodeName === 'BODY') { - targetRect.x -= root.ownerDocument.documentElement.scrollLeft || root.scrollLeft; - targetRect.y -= root.ownerDocument.documentElement.scrollTop || root.scrollTop; - } - - targetRect.x += pos.x; - targetRect.y += pos.y; - - return targetRect; - }; - - var reposition = function (match, shouldShow) { - var relPos, panelRect, elementRect, contentAreaRect, panel, relRect, testPositions, smallElementWidthThreshold; - var handler = settings.inline_toolbar_position_handler; - - if (editor.removed) { - return; + var showContextToolbar = function (match) { + var panel; + if (match.toolbar.panel) { + match.toolbar.panel.show(); + reposition(match); + return; + } + panel = global$4.create({ + type: 'floatpanel', + role: 'dialog', + classes: 'tinymce tinymce-inline arrow', + ariaLabel: 'Inline toolbar', + layout: 'flex', + direction: 'column', + align: 'stretch', + autohide: false, + autofix: true, + fixed: true, + border: 1, + items: $_457dd7t8jfuw8scj.createToolbar(editor, match.toolbar.items), + oncancel: function () { + editor.focus(); } - - if (!match || !match.toolbar.panel) { - hideAllFloatingPanels(editor); - return; + }); + $_435hnxt5jfuw8sc9.setUiContainer(editor, panel); + bindScrollEvent(panel); + match.toolbar.panel = panel; + panel.renderTo().reflow(); + reposition(match); + }; + var hideAllContextToolbars = function () { + global$2.each(getContextToolbars(), function (toolbar) { + if (toolbar.panel) { + toolbar.panel.hide(); } + }); + }; + var findFrontMostMatch = function (targetElm) { + var i, y, parentsAndSelf; + var toolbars = getContextToolbars(); + parentsAndSelf = editor.$(targetElm).parents().add(targetElm); + for (i = parentsAndSelf.length - 1; i >= 0; i--) { + for (y = toolbars.length - 1; y >= 0; y--) { + if (toolbars[y].predicate(parentsAndSelf[i])) { + return { + toolbar: toolbars[y], + element: parentsAndSelf[i] + }; + } + } + } + return null; + }; + editor.on('click keyup setContent ObjectResized', function (e) { + if (e.type === 'setcontent' && !e.selection) { + return; + } + global$7.setEditorTimeout(editor, function () { + var match; + match = findFrontMostMatch(editor.selection.getNode()); + if (match) { + hideAllContextToolbars(); + showContextToolbar(match); + } else { + hideAllContextToolbars(); + } + }); + }); + editor.on('blur hide contextmenu', hideAllContextToolbars); + editor.on('ObjectResizeStart', function () { + var match = findFrontMostMatch(editor.selection.getNode()); + if (match && match.toolbar.panel) { + match.toolbar.panel.hide(); + } + }); + editor.on('ResizeEditor ResizeWindow', repositionHandler(true)); + editor.on('nodeChange', repositionHandler(false)); + editor.on('remove', function () { + global$2.each(getContextToolbars(), function (toolbar) { + if (toolbar.panel) { + toolbar.panel.remove(); + } + }); + editor.contextToolbars = {}; + }); + editor.shortcuts.add('ctrl+shift+e > ctrl+shift+p', '', function () { + var match = findFrontMostMatch(editor.selection.getNode()); + if (match && match.toolbar.panel) { + match.toolbar.panel.items()[0].focus(); + } + }); + }; + var $_v47mpt2jfuw8sc3 = { addContextualToolbars: addContextualToolbars }; + + var typeOf = function (x) { + if (x === null) + return 'null'; + var t = typeof x; + if (t === 'object' && Array.prototype.isPrototypeOf(x)) + return 'array'; + if (t === 'object' && String.prototype.isPrototypeOf(x)) + return 'string'; + return t; + }; + var isType = function (type) { + return function (value) { + return typeOf(value) === type; + }; + }; + var $_e8diihtbjfuw8scy = { + isString: isType('string'), + isObject: isType('object'), + isArray: isType('array'), + isNull: isType('null'), + isBoolean: isType('boolean'), + isUndefined: isType('undefined'), + isFunction: isType('function'), + isNumber: isType('number') + }; + + var rawIndexOf = function () { + var pIndexOf = Array.prototype.indexOf; + var fastIndex = function (xs, x) { + return pIndexOf.call(xs, x); + }; + var slowIndex = function (xs, x) { + return slowIndexOf(xs, x); + }; + return pIndexOf === undefined ? slowIndex : fastIndex; + }(); + var indexOf = function (xs, x) { + var r = rawIndexOf(xs, x); + return r === -1 ? Option.none() : Option.some(r); + }; + var contains = function (xs, x) { + return rawIndexOf(xs, x) > -1; + }; + var exists = function (xs, pred) { + return findIndex(xs, pred).isSome(); + }; + var range = function (num, f) { + var r = []; + for (var i = 0; i < num; i++) { + r.push(f(i)); + } + return r; + }; + var chunk = function (array, size) { + var r = []; + for (var i = 0; i < array.length; i += size) { + var s = array.slice(i, i + size); + r.push(s); + } + return r; + }; + var map = function (xs, f) { + var len = xs.length; + var r = new Array(len); + for (var i = 0; i < len; i++) { + var x = xs[i]; + r[i] = f(x, i, xs); + } + return r; + }; + var each = function (xs, f) { + for (var i = 0, len = xs.length; i < len; i++) { + var x = xs[i]; + f(x, i, xs); + } + }; + var eachr = function (xs, f) { + for (var i = xs.length - 1; i >= 0; i--) { + var x = xs[i]; + f(x, i, xs); + } + }; + var partition = function (xs, pred) { + var pass = []; + var fail = []; + for (var i = 0, len = xs.length; i < len; i++) { + var x = xs[i]; + var arr = pred(x, i, xs) ? pass : fail; + arr.push(x); + } + return { + pass: pass, + fail: fail + }; + }; + var filter = function (xs, pred) { + var r = []; + for (var i = 0, len = xs.length; i < len; i++) { + var x = xs[i]; + if (pred(x, i, xs)) { + r.push(x); + } + } + return r; + }; + var groupBy = function (xs, f) { + if (xs.length === 0) { + return []; + } else { + var wasType = f(xs[0]); + var r = []; + var group = []; + for (var i = 0, len = xs.length; i < len; i++) { + var x = xs[i]; + var type = f(x); + if (type !== wasType) { + r.push(group); + group = []; + } + wasType = type; + group.push(x); + } + if (group.length !== 0) { + r.push(group); + } + return r; + } + }; + var foldr = function (xs, f, acc) { + eachr(xs, function (x) { + acc = f(acc, x); + }); + return acc; + }; + var foldl = function (xs, f, acc) { + each(xs, function (x) { + acc = f(acc, x); + }); + return acc; + }; + var find = function (xs, pred) { + for (var i = 0, len = xs.length; i < len; i++) { + var x = xs[i]; + if (pred(x, i, xs)) { + return Option.some(x); + } + } + return Option.none(); + }; + var findIndex = function (xs, pred) { + for (var i = 0, len = xs.length; i < len; i++) { + var x = xs[i]; + if (pred(x, i, xs)) { + return Option.some(i); + } + } + return Option.none(); + }; + var slowIndexOf = function (xs, x) { + for (var i = 0, len = xs.length; i < len; ++i) { + if (xs[i] === x) { + return i; + } + } + return -1; + }; + var push = Array.prototype.push; + var flatten = function (xs) { + var r = []; + for (var i = 0, len = xs.length; i < len; ++i) { + if (!Array.prototype.isPrototypeOf(xs[i])) + throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs); + push.apply(r, xs[i]); + } + return r; + }; + var bind = function (xs, f) { + var output = map(xs, f); + return flatten(output); + }; + var forall = function (xs, pred) { + for (var i = 0, len = xs.length; i < len; ++i) { + var x = xs[i]; + if (pred(x, i, xs) !== true) { + return false; + } + } + return true; + }; + var equal = function (a1, a2) { + return a1.length === a2.length && forall(a1, function (x, i) { + return x === a2[i]; + }); + }; + var slice = Array.prototype.slice; + var reverse = function (xs) { + var r = slice.call(xs, 0); + r.reverse(); + return r; + }; + var difference = function (a1, a2) { + return filter(a1, function (x) { + return !contains(a2, x); + }); + }; + var mapToObject = function (xs, f) { + var r = {}; + for (var i = 0, len = xs.length; i < len; i++) { + var x = xs[i]; + r[String(x)] = f(x, i); + } + return r; + }; + var pure = function (x) { + return [x]; + }; + var sort = function (xs, comparator) { + var copy = slice.call(xs, 0); + copy.sort(comparator); + return copy; + }; + var head = function (xs) { + return xs.length === 0 ? Option.none() : Option.some(xs[0]); + }; + var last = function (xs) { + return xs.length === 0 ? Option.none() : Option.some(xs[xs.length - 1]); + }; + var from$1 = $_e8diihtbjfuw8scy.isFunction(Array.from) ? Array.from : function (x) { + return slice.call(x); + }; + var $_anxm1mtajfuw8sct = { + map: map, + each: each, + eachr: eachr, + partition: partition, + filter: filter, + groupBy: groupBy, + indexOf: indexOf, + foldr: foldr, + foldl: foldl, + find: find, + findIndex: findIndex, + flatten: flatten, + bind: bind, + forall: forall, + exists: exists, + contains: contains, + equal: equal, + reverse: reverse, + chunk: chunk, + difference: difference, + mapToObject: mapToObject, + pure: pure, + sort: sort, + range: range, + head: head, + last: last, + from: from$1 + }; + + var defaultMenus = { + file: { + title: 'File', + items: 'newdocument restoredraft | preview | print' + }, + edit: { + title: 'Edit', + items: 'undo redo | cut copy paste pastetext | selectall' + }, + view: { + title: 'View', + items: 'code | visualaid visualchars visualblocks | spellchecker | preview fullscreen' + }, + insert: { + title: 'Insert', + items: 'image link media template codesample inserttable | charmap hr | pagebreak nonbreaking anchor toc | insertdatetime' + }, + format: { + title: 'Format', + items: 'bold italic underline strikethrough superscript subscript codeformat | blockformats align | removeformat' + }, + tools: { + title: 'Tools', + items: 'spellchecker spellcheckerlanguage | a11ycheck' + }, + table: { title: 'Table' }, + help: { title: 'Help' } + }; + var delimiterMenuNamePair = function () { + return { + name: '|', + item: { text: '|' } + }; + }; + var createMenuNameItemPair = function (name, item) { + var menuItem = item ? { + name: name, + item: item + } : null; + return name === '|' ? delimiterMenuNamePair() : menuItem; + }; + var hasItemName = function (namedMenuItems, name) { + return $_anxm1mtajfuw8sct.findIndex(namedMenuItems, function (namedMenuItem) { + return namedMenuItem.name === name; + }).isSome(); + }; + var isSeparator = function (namedMenuItem) { + return namedMenuItem && namedMenuItem.item.text === '|'; + }; + var cleanupMenu = function (namedMenuItems, removedMenuItems) { + var menuItemsPass1 = $_anxm1mtajfuw8sct.filter(namedMenuItems, function (namedMenuItem) { + return removedMenuItems.hasOwnProperty(namedMenuItem.name) === false; + }); + var menuItemsPass2 = $_anxm1mtajfuw8sct.filter(menuItemsPass1, function (namedMenuItem, i, namedMenuItems) { + return !isSeparator(namedMenuItem) || !isSeparator(namedMenuItems[i - 1]); + }); + return $_anxm1mtajfuw8sct.filter(menuItemsPass2, function (namedMenuItem, i, namedMenuItems) { + return !isSeparator(namedMenuItem) || i > 0 && i < namedMenuItems.length - 1; + }); + }; + var createMenu = function (editorMenuItems, menus, removedMenuItems, context) { + var menuButton, menu, namedMenuItems, isUserDefined; + if (menus) { + menu = menus[context]; + isUserDefined = true; + } else { + menu = defaultMenus[context]; + } + if (menu) { + menuButton = { text: menu.title }; + namedMenuItems = []; + global$2.each((menu.items || '').split(/[ ,]/), function (name) { + var namedMenuItem = createMenuNameItemPair(name, editorMenuItems[name]); + if (namedMenuItem) { + namedMenuItems.push(namedMenuItem); + } + }); + if (!isUserDefined) { + global$2.each(editorMenuItems, function (item, name) { + if (item.context === context && !hasItemName(namedMenuItems, name)) { + if (item.separator === 'before') { + namedMenuItems.push(delimiterMenuNamePair()); + } + if (item.prependToContext) { + namedMenuItems.unshift(createMenuNameItemPair(name, item)); + } else { + namedMenuItems.push(createMenuNameItemPair(name, item)); + } + if (item.separator === 'after') { + namedMenuItems.push(delimiterMenuNamePair()); + } + } + }); + } + menuButton.menu = $_anxm1mtajfuw8sct.map(cleanupMenu(namedMenuItems, removedMenuItems), function (menuItem) { + return menuItem.item; + }); + if (!menuButton.menu.length) { + return null; + } + } + return menuButton; + }; + var getDefaultMenubar = function (editor) { + var name; + var defaultMenuBar = []; + var menu = getMenu(editor); + if (menu) { + for (name in menu) { + defaultMenuBar.push(name); + } + } else { + for (name in defaultMenus) { + defaultMenuBar.push(name); + } + } + return defaultMenuBar; + }; + var createMenuButtons = function (editor) { + var menuButtons = []; + var defaultMenuBar = getDefaultMenubar(editor); + var removedMenuItems = global$2.makeMap(getRemovedMenuItems(editor).split(/[ ,]/)); + var menubar = getMenubar(editor); + var enabledMenuNames = typeof menubar === 'string' ? menubar.split(/[ ,]/) : defaultMenuBar; + for (var i = 0; i < enabledMenuNames.length; i++) { + var menuItems = enabledMenuNames[i]; + var menu = createMenu(editor.menuItems, getMenu(editor), removedMenuItems, menuItems); + if (menu) { + menuButtons.push(menu); + } + } + return menuButtons; + }; + var $_armr7nt9jfuw8scm = { createMenuButtons: createMenuButtons }; + + var DOM$1 = global$3.DOM; + var getSize = function (elm) { + return { + width: elm.clientWidth, + height: elm.clientHeight + }; + }; + var resizeTo = function (editor, width, height) { + var containerElm, iframeElm, containerSize, iframeSize; + containerElm = editor.getContainer(); + iframeElm = editor.getContentAreaContainer().firstChild; + containerSize = getSize(containerElm); + iframeSize = getSize(iframeElm); + if (width !== null) { + width = Math.max(getMinWidth(editor), width); + width = Math.min(getMaxWidth(editor), width); + DOM$1.setStyle(containerElm, 'width', width + (containerSize.width - iframeSize.width)); + DOM$1.setStyle(iframeElm, 'width', width); + } + height = Math.max(getMinHeight(editor), height); + height = Math.min(getMaxHeight(editor), height); + DOM$1.setStyle(iframeElm, 'height', height); + $_b6da16t0jfuw8sbv.fireResizeEditor(editor); + }; + var resizeBy = function (editor, dw, dh) { + var elm = editor.getContentAreaContainer(); + resizeTo(editor, elm.clientWidth + dw, elm.clientHeight + dh); + }; + var $_4yyb9xtcjfuw8scz = { + resizeTo: resizeTo, + resizeBy: resizeBy + }; - testPositions = [ - 'bc-tc', 'tc-bc', - 'tl-bl', 'bl-tl', - 'tr-br', 'br-tr' - ]; - - panel = match.toolbar.panel; + var global$8 = tinymce.util.Tools.resolve('tinymce.Env'); - // Only show the panel on some events not for example nodeChange since that fires when context menu is opened - if (shouldShow) { + var api = function (elm) { + return { + element: function () { + return elm; + } + }; + }; + var trigger = function (sidebar, panel, callbackName) { + var callback = sidebar.settings[callbackName]; + if (callback) { + callback(api(panel.getEl('body'))); + } + }; + var hidePanels = function (name, container, sidebars) { + global$2.each(sidebars, function (sidebar) { + var panel = container.items().filter('#' + sidebar.name)[0]; + if (panel && panel.visible() && sidebar.name !== name) { + trigger(sidebar, panel, 'onhide'); + panel.visible(false); + } + }); + }; + var deactivateButtons = function (toolbar) { + toolbar.items().each(function (ctrl) { + ctrl.active(false); + }); + }; + var findSidebar = function (sidebars, name) { + return global$2.grep(sidebars, function (sidebar) { + return sidebar.name === name; + })[0]; + }; + var showPanel = function (editor, name, sidebars) { + return function (e) { + var btnCtrl = e.control; + var container = btnCtrl.parents().filter('panel')[0]; + var panel = container.find('#' + name)[0]; + var sidebar = findSidebar(sidebars, name); + hidePanels(name, container, sidebars); + deactivateButtons(btnCtrl.parent()); + if (panel && panel.visible()) { + trigger(sidebar, panel, 'onhide'); + panel.hide(); + btnCtrl.active(false); + } else { + if (panel) { panel.show(); + trigger(sidebar, panel, 'onshow'); + } else { + panel = global$4.create({ + type: 'container', + name: name, + layout: 'stack', + classes: 'sidebar-panel', + html: '' + }); + container.prepend(panel); + trigger(sidebar, panel, 'onrender'); + trigger(sidebar, panel, 'onshow'); + } + btnCtrl.active(true); + } + $_b6da16t0jfuw8sbv.fireResizeEditor(editor); + }; + }; + var isModernBrowser = function () { + return !global$8.ie || global$8.ie >= 11; + }; + var hasSidebar = function (editor) { + return isModernBrowser() && editor.sidebars ? editor.sidebars.length > 0 : false; + }; + var createSidebar = function (editor) { + var buttons = global$2.map(editor.sidebars, function (sidebar) { + var settings = sidebar.settings; + return { + type: 'button', + icon: settings.icon, + image: settings.image, + tooltip: settings.tooltip, + onclick: showPanel(editor, sidebar.name, editor.sidebars) + }; + }); + return { + type: 'panel', + name: 'sidebar', + layout: 'stack', + classes: 'sidebar', + items: [{ + type: 'toolbar', + layout: 'stack', + classes: 'sidebar-toolbar', + items: buttons + }] + }; + }; + var $_g06972tdjfuw8sd2 = { + hasSidebar: hasSidebar, + createSidebar: createSidebar + }; + + var fireSkinLoaded$1 = function (editor) { + var done = function () { + editor._skinLoaded = true; + $_b6da16t0jfuw8sbv.fireSkinLoaded(editor); + }; + return function () { + if (editor.initialized) { + done(); + } else { + editor.on('init', done); + } + }; + }; + var $_g47gistfjfuw8sd5 = { fireSkinLoaded: fireSkinLoaded$1 }; + + var DOM$2 = global$3.DOM; + var switchMode = function (panel) { + return function (e) { + panel.find('*').disabled(e.mode === 'readonly'); + }; + }; + var editArea = function (border) { + return { + type: 'panel', + name: 'iframe', + layout: 'stack', + classes: 'edit-area', + border: border, + html: '' + }; + }; + var editAreaContainer = function (editor) { + return { + type: 'panel', + layout: 'stack', + classes: 'edit-aria-container', + border: '1 0 0 0', + items: [ + editArea('0'), + $_g06972tdjfuw8sd2.createSidebar(editor) + ] + }; + }; + var render = function (editor, theme, args) { + var panel, resizeHandleCtrl, startSize; + if (isSkinDisabled(editor) === false && args.skinUiCss) { + DOM$2.styleSheetLoader.load(args.skinUiCss, $_g47gistfjfuw8sd5.fireSkinLoaded(editor)); + } else { + $_g47gistfjfuw8sd5.fireSkinLoaded(editor)(); + } + panel = theme.panel = global$4.create({ + type: 'panel', + role: 'application', + classes: 'tinymce', + style: 'visibility: hidden', + layout: 'stack', + border: 1, + items: [ + { + type: 'container', + classes: 'top-part', + items: [ + hasMenubar(editor) === false ? null : { + type: 'menubar', + border: '0 0 1 0', + items: $_armr7nt9jfuw8scm.createMenuButtons(editor) + }, + $_457dd7t8jfuw8scj.createToolbars(editor, getToolbarSize(editor)) + ] + }, + $_g06972tdjfuw8sd2.hasSidebar(editor) ? editAreaContainer(editor) : editArea('1 0 0 0') + ] + }); + $_435hnxt5jfuw8sc9.setUiContainer(editor, panel); + if (getResize(editor) !== 'none') { + resizeHandleCtrl = { + type: 'resizehandle', + direction: getResize(editor), + onResizeStart: function () { + var elm = editor.getContentAreaContainer().firstChild; + startSize = { + width: elm.clientWidth, + height: elm.clientHeight + }; + }, + onResize: function (e) { + if (getResize(editor) === 'both') { + $_4yyb9xtcjfuw8scz.resizeTo(editor, startSize.width + e.deltaX, startSize.height + e.deltaY); + } else { + $_4yyb9xtcjfuw8scz.resizeTo(editor, null, startSize.height + e.deltaY); + } + } + }; + } + if (hasStatusbar(editor)) { + var linkHtml = '<a href="https://www.tinymce.com/?utm_campaign=editor_referral&utm_medium=poweredby&utm_source=tinymce" rel="noopener" target="_blank" role="presentation" tabindex="-1">tinymce</a>'; + var html = global$5.translate([ + 'Powered by {0}', + linkHtml + ]); + var brandingLabel = isBrandingEnabled(editor) ? { + type: 'label', + classes: 'branding', + html: ' ' + html + } : null; + panel.add({ + type: 'panel', + name: 'statusbar', + classes: 'statusbar', + layout: 'flow', + border: '1 0 0 0', + ariaRoot: true, + items: [ + { + type: 'elementpath', + editor: editor + }, + resizeHandleCtrl, + brandingLabel + ] + }); + } + $_b6da16t0jfuw8sbv.fireBeforeRenderUI(editor); + editor.on('SwitchMode', switchMode(panel)); + panel.renderBefore(args.targetNode).reflow(); + if (isReadOnly(editor)) { + editor.setMode('readonly'); + } + if (args.width) { + DOM$2.setStyle(panel.getEl(), 'width', args.width); + } + editor.on('remove', function () { + panel.remove(); + panel = null; + }); + $_gaf3jet1jfuw8sbw.addKeys(editor, panel); + $_v47mpt2jfuw8sc3.addContextualToolbars(editor); + return { + iframeContainer: panel.find('#iframe')[0].getEl(), + editorContainer: panel.getEl() + }; + }; + var $_6amrhfswjfuw8sbr = { render: render }; + + var global$9 = tinymce.util.Tools.resolve('tinymce.dom.DomQuery'); + + var count = 0; + var funcs = { + id: function () { + return 'mceu_' + count++; + }, + create: function (name, attrs, children) { + var elm = document.createElement(name); + global$3.DOM.setAttribs(elm, attrs); + if (typeof children === 'string') { + elm.innerHTML = children; + } else { + global$2.each(children, function (child) { + if (child.nodeType) { + elm.appendChild(child); + } + }); + } + return elm; + }, + createFragment: function (html) { + return global$3.DOM.createFragment(html); + }, + getWindowSize: function () { + return global$3.DOM.getViewPort(); + }, + getSize: function (elm) { + var width, height; + if (elm.getBoundingClientRect) { + var rect = elm.getBoundingClientRect(); + width = Math.max(rect.width || rect.right - rect.left, elm.offsetWidth); + height = Math.max(rect.height || rect.bottom - rect.bottom, elm.offsetHeight); + } else { + width = elm.offsetWidth; + height = elm.offsetHeight; + } + return { + width: width, + height: height + }; + }, + getPos: function (elm, root) { + return global$3.DOM.getPos(elm, root || funcs.getContainer()); + }, + getContainer: function () { + return global$8.container ? global$8.container : document.body; + }, + getViewPort: function (win) { + return global$3.DOM.getViewPort(win); + }, + get: function (id) { + return document.getElementById(id); + }, + addClass: function (elm, cls) { + return global$3.DOM.addClass(elm, cls); + }, + removeClass: function (elm, cls) { + return global$3.DOM.removeClass(elm, cls); + }, + hasClass: function (elm, cls) { + return global$3.DOM.hasClass(elm, cls); + }, + toggleClass: function (elm, cls, state) { + return global$3.DOM.toggleClass(elm, cls, state); + }, + css: function (elm, name, value) { + return global$3.DOM.setStyle(elm, name, value); + }, + getRuntimeStyle: function (elm, name) { + return global$3.DOM.getStyle(elm, name, true); + }, + on: function (target, name, callback, scope) { + return global$3.DOM.bind(target, name, callback, scope); + }, + off: function (target, name, callback) { + return global$3.DOM.unbind(target, name, callback); + }, + fire: function (target, name, args) { + return global$3.DOM.fire(target, name, args); + }, + innerHtml: function (elm, html) { + global$3.DOM.setHTML(elm, html); + } + }; + + var isStatic = function (elm) { + return funcs.getRuntimeStyle(elm, 'position') === 'static'; + }; + var isFixed = function (ctrl) { + return ctrl.state.get('fixed'); + }; + function calculateRelativePosition(ctrl, targetElm, rel) { + var ctrlElm, pos, x, y, selfW, selfH, targetW, targetH, viewport, size; + viewport = getWindowViewPort(); + pos = funcs.getPos(targetElm, $_435hnxt5jfuw8sc9.getUiContainer(ctrl)); + x = pos.x; + y = pos.y; + if (isFixed(ctrl) && isStatic(document.body)) { + x -= viewport.x; + y -= viewport.y; + } + ctrlElm = ctrl.getEl(); + size = funcs.getSize(ctrlElm); + selfW = size.width; + selfH = size.height; + size = funcs.getSize(targetElm); + targetW = size.width; + targetH = size.height; + rel = (rel || '').split(''); + if (rel[0] === 'b') { + y += targetH; + } + if (rel[1] === 'r') { + x += targetW; + } + if (rel[0] === 'c') { + y += Math.round(targetH / 2); + } + if (rel[1] === 'c') { + x += Math.round(targetW / 2); + } + if (rel[3] === 'b') { + y -= selfH; + } + if (rel[4] === 'r') { + x -= selfW; + } + if (rel[3] === 'c') { + y -= Math.round(selfH / 2); + } + if (rel[4] === 'c') { + x -= Math.round(selfW / 2); + } + return { + x: x, + y: y, + w: selfW, + h: selfH + }; + } + var getUiContainerViewPort = function (customUiContainer) { + return { + x: 0, + y: 0, + w: customUiContainer.scrollWidth - 1, + h: customUiContainer.scrollHeight - 1 + }; + }; + var getWindowViewPort = function () { + var win = window; + var x = Math.max(win.pageXOffset, document.body.scrollLeft, document.documentElement.scrollLeft); + var y = Math.max(win.pageYOffset, document.body.scrollTop, document.documentElement.scrollTop); + var w = win.innerWidth || document.documentElement.clientWidth; + var h = win.innerHeight || document.documentElement.clientHeight; + return { + x: x, + y: y, + w: x + w, + h: y + h + }; + }; + var getViewPortRect = function (ctrl) { + var customUiContainer = $_435hnxt5jfuw8sc9.getUiContainer(ctrl); + return customUiContainer && !isFixed(ctrl) ? getUiContainerViewPort(customUiContainer) : getWindowViewPort(); + }; + var $_831wnjtkjfuw8sdt = { + testMoveRel: function (elm, rels) { + var viewPortRect = getViewPortRect(this); + for (var i = 0; i < rels.length; i++) { + var pos = calculateRelativePosition(this, elm, rels[i]); + if (isFixed(this)) { + if (pos.x > 0 && pos.x + pos.w < viewPortRect.w && pos.y > 0 && pos.y + pos.h < viewPortRect.h) { + return rels[i]; + } + } else { + if (pos.x > viewPortRect.x && pos.x + pos.w < viewPortRect.w && pos.y > viewPortRect.y && pos.y + pos.h < viewPortRect.h) { + return rels[i]; + } + } + } + return rels[0]; + }, + moveRel: function (elm, rel) { + if (typeof rel !== 'string') { + rel = this.testMoveRel(elm, rel); + } + var pos = calculateRelativePosition(this, elm, rel); + return this.moveTo(pos.x, pos.y); + }, + moveBy: function (dx, dy) { + var self = this, rect = self.layoutRect(); + self.moveTo(rect.x + dx, rect.y + dy); + return self; + }, + moveTo: function (x, y) { + var self = this; + function constrain(value, max, size) { + if (value < 0) { + return 0; } + if (value + size > max) { + value = max - size; + return value < 0 ? 0 : value; + } + return value; + } + if (self.settings.constrainToViewport) { + var viewPortRect = getViewPortRect(this); + var layoutRect = self.layoutRect(); + x = constrain(x, viewPortRect.w, layoutRect.w); + y = constrain(y, viewPortRect.h, layoutRect.h); + } + var uiContainer = $_435hnxt5jfuw8sc9.getUiContainer(self); + if (uiContainer && isStatic(uiContainer) && !isFixed(self)) { + x -= uiContainer.scrollLeft; + y -= uiContainer.scrollTop; + } + if (uiContainer) { + x += 1; + y += 1; + } + if (self.state.get('rendered')) { + self.layoutRect({ + x: x, + y: y + }).repaint(); + } else { + self.settings.x = x; + self.settings.y = y; + } + self.fire('move', { + x: x, + y: y + }); + return self; + } + }; - elementRect = getElementRect(match.element); - panelRect = DOM.getRect(panel.getEl()); - contentAreaRect = DOM.getRect(editor.getContentAreaContainer() || editor.getBody()); - smallElementWidthThreshold = 25; + var global$10 = tinymce.util.Tools.resolve('tinymce.util.Class'); - if (DOM.getStyle(match.element, 'display', true) !== 'inline') { - // We need to use these instead of the rect values since the style - // size properites might not be the same as the real size for a table - elementRect.w = match.element.clientWidth; - elementRect.h = match.element.clientHeight; + var global$11 = tinymce.util.Tools.resolve('tinymce.util.EventDispatcher'); + + var $_xw61vtqjfuw8sep = { + parseBox: function (value) { + var len; + var radix = 10; + if (!value) { + return; + } + if (typeof value === 'number') { + value = value || 0; + return { + top: value, + left: value, + bottom: value, + right: value + }; + } + value = value.split(' '); + len = value.length; + if (len === 1) { + value[1] = value[2] = value[3] = value[0]; + } else if (len === 2) { + value[2] = value[0]; + value[3] = value[1]; + } else if (len === 3) { + value[3] = value[1]; + } + return { + top: parseInt(value[0], radix) || 0, + right: parseInt(value[1], radix) || 0, + bottom: parseInt(value[2], radix) || 0, + left: parseInt(value[3], radix) || 0 + }; + }, + measureBox: function (elm, prefix) { + function getStyle(name) { + var defaultView = elm.ownerDocument.defaultView; + if (defaultView) { + var computedStyle = defaultView.getComputedStyle(elm, null); + if (computedStyle) { + name = name.replace(/[A-Z]/g, function (a) { + return '-' + a; + }); + return computedStyle.getPropertyValue(name); + } else { + return null; + } + } + return elm.currentStyle[name]; + } + function getSide(name) { + var val = parseFloat(getStyle(name)); + return isNaN(val) ? 0 : val; + } + return { + top: getSide(prefix + 'TopWidth'), + right: getSide(prefix + 'RightWidth'), + bottom: getSide(prefix + 'BottomWidth'), + left: getSide(prefix + 'LeftWidth') + }; + } + }; + + function noop$1() { + } + function ClassList(onchange) { + this.cls = []; + this.cls._map = {}; + this.onchange = onchange || noop$1; + this.prefix = ''; + } + global$2.extend(ClassList.prototype, { + add: function (cls) { + if (cls && !this.contains(cls)) { + this.cls._map[cls] = true; + this.cls.push(cls); + this._change(); + } + return this; + }, + remove: function (cls) { + if (this.contains(cls)) { + var i = void 0; + for (i = 0; i < this.cls.length; i++) { + if (this.cls[i] === cls) { + break; + } + } + this.cls.splice(i, 1); + delete this.cls._map[cls]; + this._change(); + } + return this; + }, + toggle: function (cls, state) { + var curState = this.contains(cls); + if (curState !== state) { + if (curState) { + this.remove(cls); + } else { + this.add(cls); + } + this._change(); + } + return this; + }, + contains: function (cls) { + return !!this.cls._map[cls]; + }, + _change: function () { + delete this.clsValue; + this.onchange.call(this); + } + }); + ClassList.prototype.toString = function () { + var value; + if (this.clsValue) { + return this.clsValue; + } + value = ''; + for (var i = 0; i < this.cls.length; i++) { + if (i > 0) { + value += ' '; + } + value += this.prefix + this.cls[i]; + } + return value; + }; + + function unique(array) { + var uniqueItems = []; + var i = array.length, item; + while (i--) { + item = array[i]; + if (!item.__checked) { + uniqueItems.push(item); + item.__checked = 1; + } + } + i = uniqueItems.length; + while (i--) { + delete uniqueItems[i].__checked; + } + return uniqueItems; + } + var expression = /^([\w\\*]+)?(?:#([\w\-\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i; + var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g; + var whiteSpace = /^\s*|\s*$/g; + var Collection; + var Selector = global$10.extend({ + init: function (selector) { + var match = this.match; + function compileNameFilter(name) { + if (name) { + name = name.toLowerCase(); + return function (item) { + return name === '*' || item.type === name; + }; + } + } + function compileIdFilter(id) { + if (id) { + return function (item) { + return item._name === id; + }; + } + } + function compileClassesFilter(classes) { + if (classes) { + classes = classes.split('.'); + return function (item) { + var i = classes.length; + while (i--) { + if (!item.classes.contains(classes[i])) { + return false; + } + } + return true; + }; + } + } + function compileAttrFilter(name, cmp, check) { + if (name) { + return function (item) { + var value = item[name] ? item[name]() : ''; + return !cmp ? !!check : cmp === '=' ? value === check : cmp === '*=' ? value.indexOf(check) >= 0 : cmp === '~=' ? (' ' + value + ' ').indexOf(' ' + check + ' ') >= 0 : cmp === '!=' ? value !== check : cmp === '^=' ? value.indexOf(check) === 0 : cmp === '$=' ? value.substr(value.length - check.length) === check : false; + }; + } + } + function compilePsuedoFilter(name) { + var notSelectors; + if (name) { + name = /(?:not\((.+)\))|(.+)/i.exec(name); + if (!name[1]) { + name = name[2]; + return function (item, index, length) { + return name === 'first' ? index === 0 : name === 'last' ? index === length - 1 : name === 'even' ? index % 2 === 0 : name === 'odd' ? index % 2 === 1 : item[name] ? item[name]() : false; + }; + } + notSelectors = parseChunks(name[1], []); + return function (item) { + return !match(item, notSelectors); + }; + } + } + function compile(selector, filters, direct) { + var parts; + function add(filter) { + if (filter) { + filters.push(filter); + } + } + parts = expression.exec(selector.replace(whiteSpace, '')); + add(compileNameFilter(parts[1])); + add(compileIdFilter(parts[2])); + add(compileClassesFilter(parts[3])); + add(compileAttrFilter(parts[4], parts[5], parts[6])); + add(compilePsuedoFilter(parts[7])); + filters.pseudo = !!parts[7]; + filters.direct = direct; + return filters; + } + function parseChunks(selector, selectors) { + var parts = []; + var extra, matches, i; + do { + chunker.exec(''); + matches = chunker.exec(selector); + if (matches) { + selector = matches[3]; + parts.push(matches[1]); + if (matches[2]) { + extra = matches[3]; + break; + } + } + } while (matches); + if (extra) { + parseChunks(extra, selectors); + } + selector = []; + for (i = 0; i < parts.length; i++) { + if (parts[i] !== '>') { + selector.push(compile(parts[i], [], parts[i - 1] === '>')); + } + } + selectors.push(selector); + return selectors; + } + this._selectors = parseChunks(selector, []); + }, + match: function (control, selectors) { + var i, l, si, sl, selector, fi, fl, filters, index, length, siblings, count, item; + selectors = selectors || this._selectors; + for (i = 0, l = selectors.length; i < l; i++) { + selector = selectors[i]; + sl = selector.length; + item = control; + count = 0; + for (si = sl - 1; si >= 0; si--) { + filters = selector[si]; + while (item) { + if (filters.pseudo) { + siblings = item.parent().items(); + index = length = siblings.length; + while (index--) { + if (siblings[index] === item) { + break; + } + } + } + for (fi = 0, fl = filters.length; fi < fl; fi++) { + if (!filters[fi](item, index, length)) { + fi = fl + 1; + break; + } + } + if (fi === fl) { + count++; + break; + } else { + if (si === sl - 1) { + break; + } + } + item = item.parent(); + } + } + if (count === sl) { + return true; + } + } + return false; + }, + find: function (container) { + var matches = [], i, l; + var selectors = this._selectors; + function collect(items, selector, index) { + var i, l, fi, fl, item; + var filters = selector[index]; + for (i = 0, l = items.length; i < l; i++) { + item = items[i]; + for (fi = 0, fl = filters.length; fi < fl; fi++) { + if (!filters[fi](item, i, l)) { + fi = fl + 1; + break; + } + } + if (fi === fl) { + if (index === selector.length - 1) { + matches.push(item); + } else { + if (item.items) { + collect(item.items(), selector, index + 1); + } + } + } else if (filters.direct) { + return; + } + if (item.items) { + collect(item.items(), selector, index); + } + } + } + if (container.items) { + for (i = 0, l = selectors.length; i < l; i++) { + collect(container.items(), selectors[i], 0); + } + if (l > 1) { + matches = unique(matches); + } + } + if (!Collection) { + Collection = Selector.Collection; + } + return new Collection(matches); + } + }); + + var Collection$1; + var proto; + var push$1 = Array.prototype.push; + var slice$1 = Array.prototype.slice; + proto = { + length: 0, + init: function (items) { + if (items) { + this.add(items); + } + }, + add: function (items) { + var self = this; + if (!global$2.isArray(items)) { + if (items instanceof Collection$1) { + self.add(items.toArray()); + } else { + push$1.call(self, items); + } + } else { + push$1.apply(self, items); + } + return self; + }, + set: function (items) { + var self = this; + var len = self.length; + var i; + self.length = 0; + self.add(items); + for (i = self.length; i < len; i++) { + delete self[i]; + } + return self; + }, + filter: function (selector) { + var self = this; + var i, l; + var matches = []; + var item, match; + if (typeof selector === 'string') { + selector = new Selector(selector); + match = function (item) { + return selector.match(item); + }; + } else { + match = selector; + } + for (i = 0, l = self.length; i < l; i++) { + item = self[i]; + if (match(item)) { + matches.push(item); + } + } + return new Collection$1(matches); + }, + slice: function () { + return new Collection$1(slice$1.apply(this, arguments)); + }, + eq: function (index) { + return index === -1 ? this.slice(index) : this.slice(index, +index + 1); + }, + each: function (callback) { + global$2.each(this, callback); + return this; + }, + toArray: function () { + return global$2.toArray(this); + }, + indexOf: function (ctrl) { + var self = this; + var i = self.length; + while (i--) { + if (self[i] === ctrl) { + break; + } + } + return i; + }, + reverse: function () { + return new Collection$1(global$2.toArray(this).reverse()); + }, + hasClass: function (cls) { + return this[0] ? this[0].classes.contains(cls) : false; + }, + prop: function (name, value) { + var self = this; + var item; + if (value !== undefined) { + self.each(function (item) { + if (item[name]) { + item[name](value); + } + }); + return self; + } + item = self[0]; + if (item && item[name]) { + return item[name](); + } + }, + exec: function (name) { + var self = this, args = global$2.toArray(arguments).slice(1); + self.each(function (item) { + if (item[name]) { + item[name].apply(item, args); + } + }); + return self; + }, + remove: function () { + var i = this.length; + while (i--) { + this[i].remove(); + } + return this; + }, + addClass: function (cls) { + return this.each(function (item) { + item.classes.add(cls); + }); + }, + removeClass: function (cls) { + return this.each(function (item) { + item.classes.remove(cls); + }); + } + }; + global$2.each('fire on off show hide append prepend before after reflow'.split(' '), function (name) { + proto[name] = function () { + var args = global$2.toArray(arguments); + this.each(function (ctrl) { + if (name in ctrl) { + ctrl[name].apply(ctrl, args); + } + }); + return this; + }; + }); + global$2.each('text name disabled active selected checked visible parent value data'.split(' '), function (name) { + proto[name] = function (value) { + return this.prop(name, value); + }; + }); + Collection$1 = global$10.extend(proto); + Selector.Collection = Collection$1; + var Collection$2 = Collection$1; + + var Binding = function (settings) { + this.create = settings.create; + }; + Binding.create = function (model, name) { + return new Binding({ + create: function (otherModel, otherName) { + var bindings; + var fromSelfToOther = function (e) { + otherModel.set(otherName, e.value); + }; + var fromOtherToSelf = function (e) { + model.set(name, e.value); + }; + otherModel.on('change:' + otherName, fromOtherToSelf); + model.on('change:' + name, fromSelfToOther); + bindings = otherModel._bindings; + if (!bindings) { + bindings = otherModel._bindings = []; + otherModel.on('destroy', function () { + var i = bindings.length; + while (i--) { + bindings[i](); + } + }); + } + bindings.push(function () { + model.off('change:' + name, fromSelfToOther); + }); + return model.get(name); + } + }); + }; + + var global$12 = tinymce.util.Tools.resolve('tinymce.util.Observable'); + + function isNode(node) { + return node.nodeType > 0; + } + function isEqual(a, b) { + var k, checked; + if (a === b) { + return true; + } + if (a === null || b === null) { + return a === b; + } + if (typeof a !== 'object' || typeof b !== 'object') { + return a === b; + } + if (global$2.isArray(b)) { + if (a.length !== b.length) { + return false; + } + k = a.length; + while (k--) { + if (!isEqual(a[k], b[k])) { + return false; + } + } + } + if (isNode(a) || isNode(b)) { + return a === b; + } + checked = {}; + for (k in b) { + if (!isEqual(a[k], b[k])) { + return false; + } + checked[k] = true; + } + for (k in a) { + if (!checked[k] && !isEqual(a[k], b[k])) { + return false; + } + } + return true; + } + var ObservableObject = global$10.extend({ + Mixins: [global$12], + init: function (data) { + var name, value; + data = data || {}; + for (name in data) { + value = data[name]; + if (value instanceof Binding) { + data[name] = value.create(this, name); + } + } + this.data = data; + }, + set: function (name, value) { + var key, args; + var oldValue = this.data[name]; + if (value instanceof Binding) { + value = value.create(this, name); + } + if (typeof name === 'object') { + for (key in name) { + this.set(key, name[key]); + } + return this; + } + if (!isEqual(oldValue, value)) { + this.data[name] = value; + args = { + target: this, + name: name, + value: value, + oldValue: oldValue + }; + this.fire('change:' + name, args); + this.fire('change', args); + } + return this; + }, + get: function (name) { + return this.data[name]; + }, + has: function (name) { + return name in this.data; + }, + bind: function (name) { + return Binding.create(this, name); + }, + destroy: function () { + this.fire('destroy'); + } + }); + + var dirtyCtrls = {}; + var animationFrameRequested; + var $_5c4g75txjfuw8sfo = { + add: function (ctrl) { + var parent = ctrl.parent(); + if (parent) { + if (!parent._layout || parent._layout.isNative()) { + return; + } + if (!dirtyCtrls[parent._id]) { + dirtyCtrls[parent._id] = parent; + } + if (!animationFrameRequested) { + animationFrameRequested = true; + global$7.requestAnimationFrame(function () { + var id, ctrl; + animationFrameRequested = false; + for (id in dirtyCtrls) { + ctrl = dirtyCtrls[id]; + if (ctrl.state.get('rendered')) { + ctrl.reflow(); + } + } + dirtyCtrls = {}; + }, document.body); + } + } + }, + remove: function (ctrl) { + if (dirtyCtrls[ctrl._id]) { + delete dirtyCtrls[ctrl._id]; + } + } + }; + + var hasMouseWheelEventSupport = 'onmousewheel' in document; + var hasWheelEventSupport = false; + var classPrefix = 'mce-'; + var Control; + var idCounter = 0; + var proto$1 = { + Statics: { classPrefix: classPrefix }, + isRtl: function () { + return Control.rtl; + }, + classPrefix: classPrefix, + init: function (settings) { + var self = this; + var classes, defaultClasses; + function applyClasses(classes) { + var i; + classes = classes.split(' '); + for (i = 0; i < classes.length; i++) { + self.classes.add(classes[i]); + } + } + self.settings = settings = global$2.extend({}, self.Defaults, settings); + self._id = settings.id || 'mceu_' + idCounter++; + self._aria = { role: settings.role }; + self._elmCache = {}; + self.$ = global$9; + self.state = new ObservableObject({ + visible: true, + active: false, + disabled: false, + value: '' + }); + self.data = new ObservableObject(settings.data); + self.classes = new ClassList(function () { + if (self.state.get('rendered')) { + self.getEl().className = this.toString(); + } + }); + self.classes.prefix = self.classPrefix; + classes = settings.classes; + if (classes) { + if (self.Defaults) { + defaultClasses = self.Defaults.classes; + if (defaultClasses && classes !== defaultClasses) { + applyClasses(defaultClasses); + } + } + applyClasses(classes); + } + global$2.each('title text name visible disabled active value'.split(' '), function (name) { + if (name in settings) { + self[name](settings[name]); + } + }); + self.on('click', function () { + if (self.disabled()) { + return false; + } + }); + self.settings = settings; + self.borderBox = $_xw61vtqjfuw8sep.parseBox(settings.border); + self.paddingBox = $_xw61vtqjfuw8sep.parseBox(settings.padding); + self.marginBox = $_xw61vtqjfuw8sep.parseBox(settings.margin); + if (settings.hidden) { + self.hide(); + } + }, + Properties: 'parent,name', + getContainerElm: function () { + var uiContainer = $_435hnxt5jfuw8sc9.getUiContainer(this); + return uiContainer ? uiContainer : funcs.getContainer(); + }, + getParentCtrl: function (elm) { + var ctrl; + var lookup = this.getRoot().controlIdLookup; + while (elm && lookup) { + ctrl = lookup[elm.id]; + if (ctrl) { + break; + } + elm = elm.parentNode; + } + return ctrl; + }, + initLayoutRect: function () { + var self = this; + var settings = self.settings; + var borderBox, layoutRect; + var elm = self.getEl(); + var width, height, minWidth, minHeight, autoResize; + var startMinWidth, startMinHeight, initialSize; + borderBox = self.borderBox = self.borderBox || $_xw61vtqjfuw8sep.measureBox(elm, 'border'); + self.paddingBox = self.paddingBox || $_xw61vtqjfuw8sep.measureBox(elm, 'padding'); + self.marginBox = self.marginBox || $_xw61vtqjfuw8sep.measureBox(elm, 'margin'); + initialSize = funcs.getSize(elm); + startMinWidth = settings.minWidth; + startMinHeight = settings.minHeight; + minWidth = startMinWidth || initialSize.width; + minHeight = startMinHeight || initialSize.height; + width = settings.width; + height = settings.height; + autoResize = settings.autoResize; + autoResize = typeof autoResize !== 'undefined' ? autoResize : !width && !height; + width = width || minWidth; + height = height || minHeight; + var deltaW = borderBox.left + borderBox.right; + var deltaH = borderBox.top + borderBox.bottom; + var maxW = settings.maxWidth || 65535; + var maxH = settings.maxHeight || 65535; + self._layoutRect = layoutRect = { + x: settings.x || 0, + y: settings.y || 0, + w: width, + h: height, + deltaW: deltaW, + deltaH: deltaH, + contentW: width - deltaW, + contentH: height - deltaH, + innerW: width - deltaW, + innerH: height - deltaH, + startMinWidth: startMinWidth || 0, + startMinHeight: startMinHeight || 0, + minW: Math.min(minWidth, maxW), + minH: Math.min(minHeight, maxH), + maxW: maxW, + maxH: maxH, + autoResize: autoResize, + scrollW: 0 + }; + self._lastLayoutRect = {}; + return layoutRect; + }, + layoutRect: function (newRect) { + var self = this; + var curRect = self._layoutRect, lastLayoutRect, size, deltaWidth, deltaHeight, repaintControls; + if (!curRect) { + curRect = self.initLayoutRect(); + } + if (newRect) { + deltaWidth = curRect.deltaW; + deltaHeight = curRect.deltaH; + if (newRect.x !== undefined) { + curRect.x = newRect.x; + } + if (newRect.y !== undefined) { + curRect.y = newRect.y; + } + if (newRect.minW !== undefined) { + curRect.minW = newRect.minW; + } + if (newRect.minH !== undefined) { + curRect.minH = newRect.minH; + } + size = newRect.w; + if (size !== undefined) { + size = size < curRect.minW ? curRect.minW : size; + size = size > curRect.maxW ? curRect.maxW : size; + curRect.w = size; + curRect.innerW = size - deltaWidth; + } + size = newRect.h; + if (size !== undefined) { + size = size < curRect.minH ? curRect.minH : size; + size = size > curRect.maxH ? curRect.maxH : size; + curRect.h = size; + curRect.innerH = size - deltaHeight; + } + size = newRect.innerW; + if (size !== undefined) { + size = size < curRect.minW - deltaWidth ? curRect.minW - deltaWidth : size; + size = size > curRect.maxW - deltaWidth ? curRect.maxW - deltaWidth : size; + curRect.innerW = size; + curRect.w = size + deltaWidth; + } + size = newRect.innerH; + if (size !== undefined) { + size = size < curRect.minH - deltaHeight ? curRect.minH - deltaHeight : size; + size = size > curRect.maxH - deltaHeight ? curRect.maxH - deltaHeight : size; + curRect.innerH = size; + curRect.h = size + deltaHeight; + } + if (newRect.contentW !== undefined) { + curRect.contentW = newRect.contentW; + } + if (newRect.contentH !== undefined) { + curRect.contentH = newRect.contentH; + } + lastLayoutRect = self._lastLayoutRect; + if (lastLayoutRect.x !== curRect.x || lastLayoutRect.y !== curRect.y || lastLayoutRect.w !== curRect.w || lastLayoutRect.h !== curRect.h) { + repaintControls = Control.repaintControls; + if (repaintControls) { + if (repaintControls.map && !repaintControls.map[self._id]) { + repaintControls.push(self); + repaintControls.map[self._id] = true; + } + } + lastLayoutRect.x = curRect.x; + lastLayoutRect.y = curRect.y; + lastLayoutRect.w = curRect.w; + lastLayoutRect.h = curRect.h; + } + return self; + } + return curRect; + }, + repaint: function () { + var self = this; + var style, bodyStyle, bodyElm, rect, borderBox; + var borderW, borderH, lastRepaintRect, round, value; + round = !document.createRange ? Math.round : function (value) { + return value; + }; + style = self.getEl().style; + rect = self._layoutRect; + lastRepaintRect = self._lastRepaintRect || {}; + borderBox = self.borderBox; + borderW = borderBox.left + borderBox.right; + borderH = borderBox.top + borderBox.bottom; + if (rect.x !== lastRepaintRect.x) { + style.left = round(rect.x) + 'px'; + lastRepaintRect.x = rect.x; + } + if (rect.y !== lastRepaintRect.y) { + style.top = round(rect.y) + 'px'; + lastRepaintRect.y = rect.y; + } + if (rect.w !== lastRepaintRect.w) { + value = round(rect.w - borderW); + style.width = (value >= 0 ? value : 0) + 'px'; + lastRepaintRect.w = rect.w; + } + if (rect.h !== lastRepaintRect.h) { + value = round(rect.h - borderH); + style.height = (value >= 0 ? value : 0) + 'px'; + lastRepaintRect.h = rect.h; + } + if (self._hasBody && rect.innerW !== lastRepaintRect.innerW) { + value = round(rect.innerW); + bodyElm = self.getEl('body'); + if (bodyElm) { + bodyStyle = bodyElm.style; + bodyStyle.width = (value >= 0 ? value : 0) + 'px'; + } + lastRepaintRect.innerW = rect.innerW; + } + if (self._hasBody && rect.innerH !== lastRepaintRect.innerH) { + value = round(rect.innerH); + bodyElm = bodyElm || self.getEl('body'); + if (bodyElm) { + bodyStyle = bodyStyle || bodyElm.style; + bodyStyle.height = (value >= 0 ? value : 0) + 'px'; + } + lastRepaintRect.innerH = rect.innerH; + } + self._lastRepaintRect = lastRepaintRect; + self.fire('repaint', {}, false); + }, + updateLayoutRect: function () { + var self = this; + self.parent()._lastRect = null; + funcs.css(self.getEl(), { + width: '', + height: '' + }); + self._layoutRect = self._lastRepaintRect = self._lastLayoutRect = null; + self.initLayoutRect(); + }, + on: function (name, callback) { + var self = this; + function resolveCallbackName(name) { + var callback, scope; + if (typeof name !== 'string') { + return name; + } + return function (e) { + if (!callback) { + self.parentsAndSelf().each(function (ctrl) { + var callbacks = ctrl.settings.callbacks; + if (callbacks && (callback = callbacks[name])) { + scope = ctrl; + return false; + } + }); + } + if (!callback) { + e.action = name; + this.fire('execute', e); + return; + } + return callback.call(scope, e); + }; + } + getEventDispatcher(self).on(name, resolveCallbackName(callback)); + return self; + }, + off: function (name, callback) { + getEventDispatcher(this).off(name, callback); + return this; + }, + fire: function (name, args, bubble) { + var self = this; + args = args || {}; + if (!args.control) { + args.control = self; + } + args = getEventDispatcher(self).fire(name, args); + if (bubble !== false && self.parent) { + var parent_1 = self.parent(); + while (parent_1 && !args.isPropagationStopped()) { + parent_1.fire(name, args, false); + parent_1 = parent_1.parent(); + } + } + return args; + }, + hasEventListeners: function (name) { + return getEventDispatcher(this).has(name); + }, + parents: function (selector) { + var self = this; + var ctrl, parents = new Collection$2(); + for (ctrl = self.parent(); ctrl; ctrl = ctrl.parent()) { + parents.add(ctrl); + } + if (selector) { + parents = parents.filter(selector); + } + return parents; + }, + parentsAndSelf: function (selector) { + return new Collection$2(this).add(this.parents(selector)); + }, + next: function () { + var parentControls = this.parent().items(); + return parentControls[parentControls.indexOf(this) + 1]; + }, + prev: function () { + var parentControls = this.parent().items(); + return parentControls[parentControls.indexOf(this) - 1]; + }, + innerHtml: function (html) { + this.$el.html(html); + return this; + }, + getEl: function (suffix) { + var id = suffix ? this._id + '-' + suffix : this._id; + if (!this._elmCache[id]) { + this._elmCache[id] = global$9('#' + id)[0]; + } + return this._elmCache[id]; + }, + show: function () { + return this.visible(true); + }, + hide: function () { + return this.visible(false); + }, + focus: function () { + try { + this.getEl().focus(); + } catch (ex) { + } + return this; + }, + blur: function () { + this.getEl().blur(); + return this; + }, + aria: function (name, value) { + var self = this, elm = self.getEl(self.ariaTarget); + if (typeof value === 'undefined') { + return self._aria[name]; + } + self._aria[name] = value; + if (self.state.get('rendered')) { + elm.setAttribute(name === 'role' ? name : 'aria-' + name, value); + } + return self; + }, + encode: function (text, translate) { + if (translate !== false) { + text = this.translate(text); + } + return (text || '').replace(/[&<>"]/g, function (match) { + return '&#' + match.charCodeAt(0) + ';'; + }); + }, + translate: function (text) { + return Control.translate ? Control.translate(text) : text; + }, + before: function (items) { + var self = this, parent = self.parent(); + if (parent) { + parent.insert(items, parent.items().indexOf(self), true); + } + return self; + }, + after: function (items) { + var self = this, parent = self.parent(); + if (parent) { + parent.insert(items, parent.items().indexOf(self)); + } + return self; + }, + remove: function () { + var self = this; + var elm = self.getEl(); + var parent = self.parent(); + var newItems, i; + if (self.items) { + var controls = self.items().toArray(); + i = controls.length; + while (i--) { + controls[i].remove(); + } + } + if (parent && parent.items) { + newItems = []; + parent.items().each(function (item) { + if (item !== self) { + newItems.push(item); + } + }); + parent.items().set(newItems); + parent._lastRect = null; + } + if (self._eventsRoot && self._eventsRoot === self) { + global$9(elm).off(); + } + var lookup = self.getRoot().controlIdLookup; + if (lookup) { + delete lookup[self._id]; + } + if (elm && elm.parentNode) { + elm.parentNode.removeChild(elm); + } + self.state.set('rendered', false); + self.state.destroy(); + self.fire('remove'); + return self; + }, + renderBefore: function (elm) { + global$9(elm).before(this.renderHtml()); + this.postRender(); + return this; + }, + renderTo: function (elm) { + global$9(elm || this.getContainerElm()).append(this.renderHtml()); + this.postRender(); + return this; + }, + preRender: function () { + }, + render: function () { + }, + renderHtml: function () { + return '<div id="' + this._id + '" class="' + this.classes + '"></div>'; + }, + postRender: function () { + var self = this; + var settings = self.settings; + var elm, box, parent, name, parentEventsRoot; + self.$el = global$9(self.getEl()); + self.state.set('rendered', true); + for (name in settings) { + if (name.indexOf('on') === 0) { + self.on(name.substr(2), settings[name]); + } + } + if (self._eventsRoot) { + for (parent = self.parent(); !parentEventsRoot && parent; parent = parent.parent()) { + parentEventsRoot = parent._eventsRoot; + } + if (parentEventsRoot) { + for (name in parentEventsRoot._nativeEvents) { + self._nativeEvents[name] = true; + } + } + } + bindPendingEvents(self); + if (settings.style) { + elm = self.getEl(); + if (elm) { + elm.setAttribute('style', settings.style); + elm.style.cssText = settings.style; + } + } + if (self.settings.border) { + box = self.borderBox; + self.$el.css({ + 'border-top-width': box.top, + 'border-right-width': box.right, + 'border-bottom-width': box.bottom, + 'border-left-width': box.left + }); + } + var root = self.getRoot(); + if (!root.controlIdLookup) { + root.controlIdLookup = {}; + } + root.controlIdLookup[self._id] = self; + for (var key in self._aria) { + self.aria(key, self._aria[key]); + } + if (self.state.get('visible') === false) { + self.getEl().style.display = 'none'; + } + self.bindStates(); + self.state.on('change:visible', function (e) { + var state = e.value; + var parentCtrl; + if (self.state.get('rendered')) { + self.getEl().style.display = state === false ? 'none' : ''; + self.getEl().getBoundingClientRect(); + } + parentCtrl = self.parent(); + if (parentCtrl) { + parentCtrl._lastRect = null; + } + self.fire(state ? 'show' : 'hide'); + $_5c4g75txjfuw8sfo.add(self); + }); + self.fire('postrender', {}, false); + }, + bindStates: function () { + }, + scrollIntoView: function (align) { + function getOffset(elm, rootElm) { + var x, y, parent = elm; + x = y = 0; + while (parent && parent !== rootElm && parent.nodeType) { + x += parent.offsetLeft || 0; + y += parent.offsetTop || 0; + parent = parent.offsetParent; + } + return { + x: x, + y: y + }; + } + var elm = this.getEl(), parentElm = elm.parentNode; + var x, y, width, height, parentWidth, parentHeight; + var pos = getOffset(elm, parentElm); + x = pos.x; + y = pos.y; + width = elm.offsetWidth; + height = elm.offsetHeight; + parentWidth = parentElm.clientWidth; + parentHeight = parentElm.clientHeight; + if (align === 'end') { + x -= parentWidth - width; + y -= parentHeight - height; + } else if (align === 'center') { + x -= parentWidth / 2 - width / 2; + y -= parentHeight / 2 - height / 2; + } + parentElm.scrollLeft = x; + parentElm.scrollTop = y; + return this; + }, + getRoot: function () { + var ctrl = this, rootControl; + var parents = []; + while (ctrl) { + if (ctrl.rootControl) { + rootControl = ctrl.rootControl; + break; + } + parents.push(ctrl); + rootControl = ctrl; + ctrl = ctrl.parent(); + } + if (!rootControl) { + rootControl = this; + } + var i = parents.length; + while (i--) { + parents[i].rootControl = rootControl; + } + return rootControl; + }, + reflow: function () { + $_5c4g75txjfuw8sfo.remove(this); + var parent = this.parent(); + if (parent && parent._layout && !parent._layout.isNative()) { + parent.reflow(); + } + return this; + } + }; + global$2.each('text title visible disabled active value'.split(' '), function (name) { + proto$1[name] = function (value) { + if (arguments.length === 0) { + return this.state.get(name); + } + if (typeof value !== 'undefined') { + this.state.set(name, value); + } + return this; + }; + }); + Control = global$10.extend(proto$1); + function getEventDispatcher(obj) { + if (!obj._eventDispatcher) { + obj._eventDispatcher = new global$11({ + scope: obj, + toggleEvent: function (name, state) { + if (state && global$11.isNative(name)) { + if (!obj._nativeEvents) { + obj._nativeEvents = {}; + } + obj._nativeEvents[name] = true; + if (obj.state.get('rendered')) { + bindPendingEvents(obj); + } + } + } + }); + } + return obj._eventDispatcher; + } + function bindPendingEvents(eventCtrl) { + var i, l, parents, eventRootCtrl, nativeEvents, name; + function delegate(e) { + var control = eventCtrl.getParentCtrl(e.target); + if (control) { + control.fire(e.type, e); + } + } + function mouseLeaveHandler() { + var ctrl = eventRootCtrl._lastHoverCtrl; + if (ctrl) { + ctrl.fire('mouseleave', { target: ctrl.getEl() }); + ctrl.parents().each(function (ctrl) { + ctrl.fire('mouseleave', { target: ctrl.getEl() }); + }); + eventRootCtrl._lastHoverCtrl = null; + } + } + function mouseEnterHandler(e) { + var ctrl = eventCtrl.getParentCtrl(e.target), lastCtrl = eventRootCtrl._lastHoverCtrl, idx = 0, i, parents, lastParents; + if (ctrl !== lastCtrl) { + eventRootCtrl._lastHoverCtrl = ctrl; + parents = ctrl.parents().toArray().reverse(); + parents.push(ctrl); + if (lastCtrl) { + lastParents = lastCtrl.parents().toArray().reverse(); + lastParents.push(lastCtrl); + for (idx = 0; idx < lastParents.length; idx++) { + if (parents[idx] !== lastParents[idx]) { + break; + } + } + for (i = lastParents.length - 1; i >= idx; i--) { + lastCtrl = lastParents[i]; + lastCtrl.fire('mouseleave', { target: lastCtrl.getEl() }); + } + } + for (i = idx; i < parents.length; i++) { + ctrl = parents[i]; + ctrl.fire('mouseenter', { target: ctrl.getEl() }); + } + } + } + function fixWheelEvent(e) { + e.preventDefault(); + if (e.type === 'mousewheel') { + e.deltaY = -1 / 40 * e.wheelDelta; + if (e.wheelDeltaX) { + e.deltaX = -1 / 40 * e.wheelDeltaX; + } + } else { + e.deltaX = 0; + e.deltaY = e.detail; + } + e = eventCtrl.fire('wheel', e); + } + nativeEvents = eventCtrl._nativeEvents; + if (nativeEvents) { + parents = eventCtrl.parents().toArray(); + parents.unshift(eventCtrl); + for (i = 0, l = parents.length; !eventRootCtrl && i < l; i++) { + eventRootCtrl = parents[i]._eventsRoot; + } + if (!eventRootCtrl) { + eventRootCtrl = parents[parents.length - 1] || eventCtrl; + } + eventCtrl._eventsRoot = eventRootCtrl; + for (l = i, i = 0; i < l; i++) { + parents[i]._eventsRoot = eventRootCtrl; + } + var eventRootDelegates = eventRootCtrl._delegates; + if (!eventRootDelegates) { + eventRootDelegates = eventRootCtrl._delegates = {}; + } + for (name in nativeEvents) { + if (!nativeEvents) { + return false; + } + if (name === 'wheel' && !hasWheelEventSupport) { + if (hasMouseWheelEventSupport) { + global$9(eventCtrl.getEl()).on('mousewheel', fixWheelEvent); + } else { + global$9(eventCtrl.getEl()).on('DOMMouseScroll', fixWheelEvent); + } + continue; + } + if (name === 'mouseenter' || name === 'mouseleave') { + if (!eventRootCtrl._hasMouseEnter) { + global$9(eventRootCtrl.getEl()).on('mouseleave', mouseLeaveHandler).on('mouseover', mouseEnterHandler); + eventRootCtrl._hasMouseEnter = 1; + } + } else if (!eventRootDelegates[name]) { + global$9(eventRootCtrl.getEl()).on(name, delegate); + eventRootDelegates[name] = true; + } + nativeEvents[name] = false; + } + } + } + var Control$1 = Control; + + var hasTabstopData = function (elm) { + return elm.getAttribute('data-mce-tabstop') ? true : false; + }; + function KeyboardNavigation (settings) { + var root = settings.root; + var focusedElement, focusedControl; + function isElement(node) { + return node && node.nodeType === 1; + } + try { + focusedElement = document.activeElement; + } catch (ex) { + focusedElement = document.body; + } + focusedControl = root.getParentCtrl(focusedElement); + function getRole(elm) { + elm = elm || focusedElement; + if (isElement(elm)) { + return elm.getAttribute('role'); + } + return null; + } + function getParentRole(elm) { + var role, parent = elm || focusedElement; + while (parent = parent.parentNode) { + if (role = getRole(parent)) { + return role; + } + } + } + function getAriaProp(name) { + var elm = focusedElement; + if (isElement(elm)) { + return elm.getAttribute('aria-' + name); + } + } + function isTextInputElement(elm) { + var tagName = elm.tagName.toUpperCase(); + return tagName === 'INPUT' || tagName === 'TEXTAREA' || tagName === 'SELECT'; + } + function canFocus(elm) { + if (isTextInputElement(elm) && !elm.hidden) { + return true; + } + if (hasTabstopData(elm)) { + return true; + } + if (/^(button|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell|slider)$/.test(getRole(elm))) { + return true; + } + return false; + } + function getFocusElements(elm) { + var elements = []; + function collect(elm) { + if (elm.nodeType !== 1 || elm.style.display === 'none' || elm.disabled) { + return; + } + if (canFocus(elm)) { + elements.push(elm); + } + for (var i = 0; i < elm.childNodes.length; i++) { + collect(elm.childNodes[i]); + } + } + collect(elm || root.getEl()); + return elements; + } + function getNavigationRoot(targetControl) { + var navigationRoot, controls; + targetControl = targetControl || focusedControl; + controls = targetControl.parents().toArray(); + controls.unshift(targetControl); + for (var i = 0; i < controls.length; i++) { + navigationRoot = controls[i]; + if (navigationRoot.settings.ariaRoot) { + break; + } + } + return navigationRoot; + } + function focusFirst(targetControl) { + var navigationRoot = getNavigationRoot(targetControl); + var focusElements = getFocusElements(navigationRoot.getEl()); + if (navigationRoot.settings.ariaRemember && 'lastAriaIndex' in navigationRoot) { + moveFocusToIndex(navigationRoot.lastAriaIndex, focusElements); + } else { + moveFocusToIndex(0, focusElements); + } + } + function moveFocusToIndex(idx, elements) { + if (idx < 0) { + idx = elements.length - 1; + } else if (idx >= elements.length) { + idx = 0; + } + if (elements[idx]) { + elements[idx].focus(); + } + return idx; + } + function moveFocus(dir, elements) { + var idx = -1; + var navigationRoot = getNavigationRoot(); + elements = elements || getFocusElements(navigationRoot.getEl()); + for (var i = 0; i < elements.length; i++) { + if (elements[i] === focusedElement) { + idx = i; + } + } + idx += dir; + navigationRoot.lastAriaIndex = moveFocusToIndex(idx, elements); + } + function left() { + var parentRole = getParentRole(); + if (parentRole === 'tablist') { + moveFocus(-1, getFocusElements(focusedElement.parentNode)); + } else if (focusedControl.parent().submenu) { + cancel(); + } else { + moveFocus(-1); + } + } + function right() { + var role = getRole(), parentRole = getParentRole(); + if (parentRole === 'tablist') { + moveFocus(1, getFocusElements(focusedElement.parentNode)); + } else if (role === 'menuitem' && parentRole === 'menu' && getAriaProp('haspopup')) { + enter(); + } else { + moveFocus(1); + } + } + function up() { + moveFocus(-1); + } + function down() { + var role = getRole(), parentRole = getParentRole(); + if (role === 'menuitem' && parentRole === 'menubar') { + enter(); + } else if (role === 'button' && getAriaProp('haspopup')) { + enter({ key: 'down' }); + } else { + moveFocus(1); + } + } + function tab(e) { + var parentRole = getParentRole(); + if (parentRole === 'tablist') { + var elm = getFocusElements(focusedControl.getEl('body'))[0]; + if (elm) { + elm.focus(); + } + } else { + moveFocus(e.shiftKey ? -1 : 1); + } + } + function cancel() { + focusedControl.fire('cancel'); + } + function enter(aria) { + aria = aria || {}; + focusedControl.fire('click', { + target: focusedElement, + aria: aria + }); + } + root.on('keydown', function (e) { + function handleNonTabOrEscEvent(e, handler) { + if (isTextInputElement(focusedElement) || hasTabstopData(focusedElement)) { + return; + } + if (getRole(focusedElement) === 'slider') { + return; + } + if (handler(e) !== false) { + e.preventDefault(); + } + } + if (e.isDefaultPrevented()) { + return; + } + switch (e.keyCode) { + case 37: + handleNonTabOrEscEvent(e, left); + break; + case 39: + handleNonTabOrEscEvent(e, right); + break; + case 38: + handleNonTabOrEscEvent(e, up); + break; + case 40: + handleNonTabOrEscEvent(e, down); + break; + case 27: + cancel(); + break; + case 14: + case 13: + case 32: + handleNonTabOrEscEvent(e, enter); + break; + case 9: + tab(e); + e.preventDefault(); + break; + } + }); + root.on('focusin', function (e) { + focusedElement = e.target; + focusedControl = e.control; + }); + return { focusFirst: focusFirst }; + } + + var selectorCache = {}; + var Container = Control$1.extend({ + init: function (settings) { + var self = this; + self._super(settings); + settings = self.settings; + if (settings.fixed) { + self.state.set('fixed', true); + } + self._items = new Collection$2(); + if (self.isRtl()) { + self.classes.add('rtl'); + } + self.bodyClasses = new ClassList(function () { + if (self.state.get('rendered')) { + self.getEl('body').className = this.toString(); + } + }); + self.bodyClasses.prefix = self.classPrefix; + self.classes.add('container'); + self.bodyClasses.add('container-body'); + if (settings.containerCls) { + self.classes.add(settings.containerCls); + } + self._layout = global$4.create((settings.layout || '') + 'layout'); + if (self.settings.items) { + self.add(self.settings.items); + } else { + self.add(self.render()); + } + self._hasBody = true; + }, + items: function () { + return this._items; + }, + find: function (selector) { + selector = selectorCache[selector] = selectorCache[selector] || new Selector(selector); + return selector.find(this); + }, + add: function (items) { + var self = this; + self.items().add(self.create(items)).parent(self); + return self; + }, + focus: function (keyboard) { + var self = this; + var focusCtrl, keyboardNav, items; + if (keyboard) { + keyboardNav = self.keyboardNav || self.parents().eq(-1)[0].keyboardNav; + if (keyboardNav) { + keyboardNav.focusFirst(self); + return; + } + } + items = self.find('*'); + if (self.statusbar) { + items.add(self.statusbar.items()); + } + items.each(function (ctrl) { + if (ctrl.settings.autofocus) { + focusCtrl = null; + return false; + } + if (ctrl.canFocus) { + focusCtrl = focusCtrl || ctrl; + } + }); + if (focusCtrl) { + focusCtrl.focus(); + } + return self; + }, + replace: function (oldItem, newItem) { + var ctrlElm; + var items = this.items(); + var i = items.length; + while (i--) { + if (items[i] === oldItem) { + items[i] = newItem; + break; + } + } + if (i >= 0) { + ctrlElm = newItem.getEl(); + if (ctrlElm) { + ctrlElm.parentNode.removeChild(ctrlElm); + } + ctrlElm = oldItem.getEl(); + if (ctrlElm) { + ctrlElm.parentNode.removeChild(ctrlElm); + } + } + newItem.parent(this); + }, + create: function (items) { + var self = this; + var settings; + var ctrlItems = []; + if (!global$2.isArray(items)) { + items = [items]; + } + global$2.each(items, function (item) { + if (item) { + if (!(item instanceof Control$1)) { + if (typeof item === 'string') { + item = { type: item }; + } + settings = global$2.extend({}, self.settings.defaults, item); + item.type = settings.type = settings.type || item.type || self.settings.defaultType || (settings.defaults ? settings.defaults.type : null); + item = global$4.create(settings); + } + ctrlItems.push(item); + } + }); + return ctrlItems; + }, + renderNew: function () { + var self = this; + self.items().each(function (ctrl, index) { + var containerElm; + ctrl.parent(self); + if (!ctrl.state.get('rendered')) { + containerElm = self.getEl('body'); + if (containerElm.hasChildNodes() && index <= containerElm.childNodes.length - 1) { + global$9(containerElm.childNodes[index]).before(ctrl.renderHtml()); + } else { + global$9(containerElm).append(ctrl.renderHtml()); + } + ctrl.postRender(); + $_5c4g75txjfuw8sfo.add(ctrl); + } + }); + self._layout.applyClasses(self.items().filter(':visible')); + self._lastRect = null; + return self; + }, + append: function (items) { + return this.add(items).renderNew(); + }, + prepend: function (items) { + var self = this; + self.items().set(self.create(items).concat(self.items().toArray())); + return self.renderNew(); + }, + insert: function (items, index, before) { + var self = this; + var curItems, beforeItems, afterItems; + items = self.create(items); + curItems = self.items(); + if (!before && index < curItems.length - 1) { + index += 1; + } + if (index >= 0 && index < curItems.length) { + beforeItems = curItems.slice(0, index).toArray(); + afterItems = curItems.slice(index).toArray(); + curItems.set(beforeItems.concat(items, afterItems)); + } + return self.renderNew(); + }, + fromJSON: function (data) { + var self = this; + for (var name_1 in data) { + self.find('#' + name_1).value(data[name_1]); + } + return self; + }, + toJSON: function () { + var self = this, data = {}; + self.find('*').each(function (ctrl) { + var name = ctrl.name(), value = ctrl.value(); + if (name && typeof value !== 'undefined') { + data[name] = value; + } + }); + return data; + }, + renderHtml: function () { + var self = this, layout = self._layout, role = this.settings.role; + self.preRender(); + layout.preRender(self); + return '<div id="' + self._id + '" class="' + self.classes + '"' + (role ? ' role="' + this.settings.role + '"' : '') + '>' + '<div id="' + self._id + '-body" class="' + self.bodyClasses + '">' + (self.settings.html || '') + layout.renderHtml(self) + '</div>' + '</div>'; + }, + postRender: function () { + var self = this; + var box; + self.items().exec('postRender'); + self._super(); + self._layout.postRender(self); + self.state.set('rendered', true); + if (self.settings.style) { + self.$el.css(self.settings.style); + } + if (self.settings.border) { + box = self.borderBox; + self.$el.css({ + 'border-top-width': box.top, + 'border-right-width': box.right, + 'border-bottom-width': box.bottom, + 'border-left-width': box.left + }); + } + if (!self.parent()) { + self.keyboardNav = KeyboardNavigation({ root: self }); + } + return self; + }, + initLayoutRect: function () { + var self = this, layoutRect = self._super(); + self._layout.recalc(self); + return layoutRect; + }, + recalc: function () { + var self = this; + var rect = self._layoutRect; + var lastRect = self._lastRect; + if (!lastRect || lastRect.w !== rect.w || lastRect.h !== rect.h) { + self._layout.recalc(self); + rect = self.layoutRect(); + self._lastRect = { + x: rect.x, + y: rect.y, + w: rect.w, + h: rect.h + }; + return true; + } + }, + reflow: function () { + var i; + $_5c4g75txjfuw8sfo.remove(this); + if (this.visible()) { + Control$1.repaintControls = []; + Control$1.repaintControls.map = {}; + this.recalc(); + i = Control$1.repaintControls.length; + while (i--) { + Control$1.repaintControls[i].repaint(); + } + if (this.settings.layout !== 'flow' && this.settings.layout !== 'stack') { + this.repaint(); + } + Control$1.repaintControls = []; + } + return this; + } + }); + + function getDocumentSize(doc) { + var documentElement, body, scrollWidth, clientWidth; + var offsetWidth, scrollHeight, clientHeight, offsetHeight; + var max = Math.max; + documentElement = doc.documentElement; + body = doc.body; + scrollWidth = max(documentElement.scrollWidth, body.scrollWidth); + clientWidth = max(documentElement.clientWidth, body.clientWidth); + offsetWidth = max(documentElement.offsetWidth, body.offsetWidth); + scrollHeight = max(documentElement.scrollHeight, body.scrollHeight); + clientHeight = max(documentElement.clientHeight, body.clientHeight); + offsetHeight = max(documentElement.offsetHeight, body.offsetHeight); + return { + width: scrollWidth < offsetWidth ? clientWidth : scrollWidth, + height: scrollHeight < offsetHeight ? clientHeight : scrollHeight + }; + } + function updateWithTouchData(e) { + var keys, i; + if (e.changedTouches) { + keys = 'screenX screenY pageX pageY clientX clientY'.split(' '); + for (i = 0; i < keys.length; i++) { + e[keys[i]] = e.changedTouches[0][keys[i]]; + } + } + } + function DragHelper (id, settings) { + var $eventOverlay; + var doc = settings.document || document; + var downButton; + var start, stop, drag, startX, startY; + settings = settings || {}; + var handleElement = doc.getElementById(settings.handle || id); + start = function (e) { + var docSize = getDocumentSize(doc); + var handleElm, cursor; + updateWithTouchData(e); + e.preventDefault(); + downButton = e.button; + handleElm = handleElement; + startX = e.screenX; + startY = e.screenY; + if (window.getComputedStyle) { + cursor = window.getComputedStyle(handleElm, null).getPropertyValue('cursor'); + } else { + cursor = handleElm.runtimeStyle.cursor; + } + $eventOverlay = global$9('<div></div>').css({ + position: 'absolute', + top: 0, + left: 0, + width: docSize.width, + height: docSize.height, + zIndex: 2147483647, + opacity: 0.0001, + cursor: cursor + }).appendTo(doc.body); + global$9(doc).on('mousemove touchmove', drag).on('mouseup touchend', stop); + settings.start(e); + }; + drag = function (e) { + updateWithTouchData(e); + if (e.button !== downButton) { + return stop(e); + } + e.deltaX = e.screenX - startX; + e.deltaY = e.screenY - startY; + e.preventDefault(); + settings.drag(e); + }; + stop = function (e) { + updateWithTouchData(e); + global$9(doc).off('mousemove touchmove', drag).off('mouseup touchend', stop); + $eventOverlay.remove(); + if (settings.stop) { + settings.stop(e); + } + }; + this.destroy = function () { + global$9(handleElement).off(); + }; + global$9(handleElement).on('mousedown touchstart', start); + } + + var $_8d5ltqtzjfuw8sfw = { + init: function () { + var self = this; + self.on('repaint', self.renderScroll); + }, + renderScroll: function () { + var self = this, margin = 2; + function repaintScroll() { + var hasScrollH, hasScrollV, bodyElm; + function repaintAxis(axisName, posName, sizeName, contentSizeName, hasScroll, ax) { + var containerElm, scrollBarElm, scrollThumbElm; + var containerSize, scrollSize, ratio, rect; + var posNameLower, sizeNameLower; + scrollBarElm = self.getEl('scroll' + axisName); + if (scrollBarElm) { + posNameLower = posName.toLowerCase(); + sizeNameLower = sizeName.toLowerCase(); + global$9(self.getEl('absend')).css(posNameLower, self.layoutRect()[contentSizeName] - 1); + if (!hasScroll) { + global$9(scrollBarElm).css('display', 'none'); + return; + } + global$9(scrollBarElm).css('display', 'block'); + containerElm = self.getEl('body'); + scrollThumbElm = self.getEl('scroll' + axisName + 't'); + containerSize = containerElm['client' + sizeName] - margin * 2; + containerSize -= hasScrollH && hasScrollV ? scrollBarElm['client' + ax] : 0; + scrollSize = containerElm['scroll' + sizeName]; + ratio = containerSize / scrollSize; + rect = {}; + rect[posNameLower] = containerElm['offset' + posName] + margin; + rect[sizeNameLower] = containerSize; + global$9(scrollBarElm).css(rect); + rect = {}; + rect[posNameLower] = containerElm['scroll' + posName] * ratio; + rect[sizeNameLower] = containerSize * ratio; + global$9(scrollThumbElm).css(rect); + } + } + bodyElm = self.getEl('body'); + hasScrollH = bodyElm.scrollWidth > bodyElm.clientWidth; + hasScrollV = bodyElm.scrollHeight > bodyElm.clientHeight; + repaintAxis('h', 'Left', 'Width', 'contentW', hasScrollH, 'Height'); + repaintAxis('v', 'Top', 'Height', 'contentH', hasScrollV, 'Width'); + } + function addScroll() { + function addScrollAxis(axisName, posName, sizeName, deltaPosName, ax) { + var scrollStart; + var axisId = self._id + '-scroll' + axisName, prefix = self.classPrefix; + global$9(self.getEl()).append('<div id="' + axisId + '" class="' + prefix + 'scrollbar ' + prefix + 'scrollbar-' + axisName + '">' + '<div id="' + axisId + 't" class="' + prefix + 'scrollbar-thumb"></div>' + '</div>'); + self.draghelper = new DragHelper(axisId + 't', { + start: function () { + scrollStart = self.getEl('body')['scroll' + posName]; + global$9('#' + axisId).addClass(prefix + 'active'); + }, + drag: function (e) { + var ratio, hasScrollH, hasScrollV, containerSize; + var layoutRect = self.layoutRect(); + hasScrollH = layoutRect.contentW > layoutRect.innerW; + hasScrollV = layoutRect.contentH > layoutRect.innerH; + containerSize = self.getEl('body')['client' + sizeName] - margin * 2; + containerSize -= hasScrollH && hasScrollV ? self.getEl('scroll' + axisName)['client' + ax] : 0; + ratio = containerSize / self.getEl('body')['scroll' + sizeName]; + self.getEl('body')['scroll' + posName] = scrollStart + e['delta' + deltaPosName] / ratio; + }, + stop: function () { + global$9('#' + axisId).removeClass(prefix + 'active'); + } + }); + } + self.classes.add('scroll'); + addScrollAxis('v', 'Top', 'Height', 'Y', 'Width'); + addScrollAxis('h', 'Left', 'Width', 'X', 'Height'); + } + if (self.settings.autoScroll) { + if (!self._hasScroll) { + self._hasScroll = true; + addScroll(); + self.on('wheel', function (e) { + var bodyEl = self.getEl('body'); + bodyEl.scrollLeft += (e.deltaX || 0) * 10; + bodyEl.scrollTop += e.deltaY * 10; + repaintScroll(); + }); + global$9(self.getEl('body')).on('scroll', repaintScroll); + } + repaintScroll(); + } + } + }; + + var Panel = Container.extend({ + Defaults: { + layout: 'fit', + containerCls: 'panel' + }, + Mixins: [$_8d5ltqtzjfuw8sfw], + renderHtml: function () { + var self = this; + var layout = self._layout; + var innerHtml = self.settings.html; + self.preRender(); + layout.preRender(self); + if (typeof innerHtml === 'undefined') { + innerHtml = '<div id="' + self._id + '-body" class="' + self.bodyClasses + '">' + layout.renderHtml(self) + '</div>'; + } else { + if (typeof innerHtml === 'function') { + innerHtml = innerHtml.call(self); + } + self._hasBody = false; + } + return '<div id="' + self._id + '" class="' + self.classes + '" hidefocus="1" tabindex="-1" role="group">' + (self._preBodyHtml || '') + innerHtml + '</div>'; + } + }); + + var $_4ucwx9u1jfuw8sg2 = { + resizeToContent: function () { + this._layoutRect.autoResize = true; + this._lastRect = null; + this.reflow(); + }, + resizeTo: function (w, h) { + if (w <= 1 || h <= 1) { + var rect = funcs.getWindowSize(); + w = w <= 1 ? w * rect.w : w; + h = h <= 1 ? h * rect.h : h; + } + this._layoutRect.autoResize = false; + return this.layoutRect({ + minW: w, + minH: h, + w: w, + h: h + }).reflow(); + }, + resizeBy: function (dw, dh) { + var self = this, rect = self.layoutRect(); + return self.resizeTo(rect.w + dw, rect.h + dh); + } + }; + + var documentClickHandler; + var documentScrollHandler; + var windowResizeHandler; + var visiblePanels = []; + var zOrder = []; + var hasModal; + function isChildOf(ctrl, parent) { + while (ctrl) { + if (ctrl === parent) { + return true; + } + ctrl = ctrl.parent(); + } + } + function skipOrHidePanels(e) { + var i = visiblePanels.length; + while (i--) { + var panel = visiblePanels[i], clickCtrl = panel.getParentCtrl(e.target); + if (panel.settings.autohide) { + if (clickCtrl) { + if (isChildOf(clickCtrl, panel) || panel.parent() === clickCtrl) { + continue; + } + } + e = panel.fire('autohide', { target: e.target }); + if (!e.isDefaultPrevented()) { + panel.hide(); + } + } + } + } + function bindDocumentClickHandler() { + if (!documentClickHandler) { + documentClickHandler = function (e) { + if (e.button === 2) { + return; + } + skipOrHidePanels(e); + }; + global$9(document).on('click touchstart', documentClickHandler); + } + } + function bindDocumentScrollHandler() { + if (!documentScrollHandler) { + documentScrollHandler = function () { + var i; + i = visiblePanels.length; + while (i--) { + repositionPanel(visiblePanels[i]); + } + }; + global$9(window).on('scroll', documentScrollHandler); + } + } + function bindWindowResizeHandler() { + if (!windowResizeHandler) { + var docElm_1 = document.documentElement; + var clientWidth_1 = docElm_1.clientWidth, clientHeight_1 = docElm_1.clientHeight; + windowResizeHandler = function () { + if (!document.all || clientWidth_1 !== docElm_1.clientWidth || clientHeight_1 !== docElm_1.clientHeight) { + clientWidth_1 = docElm_1.clientWidth; + clientHeight_1 = docElm_1.clientHeight; + FloatPanel.hideAll(); + } + }; + global$9(window).on('resize', windowResizeHandler); + } + } + function repositionPanel(panel) { + var scrollY = funcs.getViewPort().y; + function toggleFixedChildPanels(fixed, deltaY) { + var parent; + for (var i = 0; i < visiblePanels.length; i++) { + if (visiblePanels[i] !== panel) { + parent = visiblePanels[i].parent(); + while (parent && (parent = parent.parent())) { + if (parent === panel) { + visiblePanels[i].fixed(fixed).moveBy(0, deltaY).repaint(); + } + } + } + } + } + if (panel.settings.autofix) { + if (!panel.state.get('fixed')) { + panel._autoFixY = panel.layoutRect().y; + if (panel._autoFixY < scrollY) { + panel.fixed(true).layoutRect({ y: 0 }).repaint(); + toggleFixedChildPanels(true, scrollY - panel._autoFixY); + } + } else { + if (panel._autoFixY > scrollY) { + panel.fixed(false).layoutRect({ y: panel._autoFixY }).repaint(); + toggleFixedChildPanels(false, panel._autoFixY - scrollY); + } + } + } + } + function addRemove(add, ctrl) { + var i, zIndex = FloatPanel.zIndex || 65535, topModal; + if (add) { + zOrder.push(ctrl); + } else { + i = zOrder.length; + while (i--) { + if (zOrder[i] === ctrl) { + zOrder.splice(i, 1); + } + } + } + if (zOrder.length) { + for (i = 0; i < zOrder.length; i++) { + if (zOrder[i].modal) { + zIndex++; + topModal = zOrder[i]; + } + zOrder[i].getEl().style.zIndex = zIndex; + zOrder[i].zIndex = zIndex; + zIndex++; + } + } + var modalBlockEl = global$9('#' + ctrl.classPrefix + 'modal-block', ctrl.getContainerElm())[0]; + if (topModal) { + global$9(modalBlockEl).css('z-index', topModal.zIndex - 1); + } else if (modalBlockEl) { + modalBlockEl.parentNode.removeChild(modalBlockEl); + hasModal = false; + } + FloatPanel.currentZIndex = zIndex; + } + var FloatPanel = Panel.extend({ + Mixins: [ + $_831wnjtkjfuw8sdt, + $_4ucwx9u1jfuw8sg2 + ], + init: function (settings) { + var self = this; + self._super(settings); + self._eventsRoot = self; + self.classes.add('floatpanel'); + if (settings.autohide) { + bindDocumentClickHandler(); + bindWindowResizeHandler(); + visiblePanels.push(self); + } + if (settings.autofix) { + bindDocumentScrollHandler(); + self.on('move', function () { + repositionPanel(this); + }); + } + self.on('postrender show', function (e) { + if (e.control === self) { + var $modalBlockEl_1; + var prefix_1 = self.classPrefix; + if (self.modal && !hasModal) { + $modalBlockEl_1 = global$9('#' + prefix_1 + 'modal-block', self.getContainerElm()); + if (!$modalBlockEl_1[0]) { + $modalBlockEl_1 = global$9('<div id="' + prefix_1 + 'modal-block" class="' + prefix_1 + 'reset ' + prefix_1 + 'fade"></div>').appendTo(self.getContainerElm()); + } + global$7.setTimeout(function () { + $modalBlockEl_1.addClass(prefix_1 + 'in'); + global$9(self.getEl()).addClass(prefix_1 + 'in'); + }); + hasModal = true; + } + addRemove(true, self); + } + }); + self.on('show', function () { + self.parents().each(function (ctrl) { + if (ctrl.state.get('fixed')) { + self.fixed(true); + return false; + } + }); + }); + if (settings.popover) { + self._preBodyHtml = '<div class="' + self.classPrefix + 'arrow"></div>'; + self.classes.add('popover').add('bottom').add(self.isRtl() ? 'end' : 'start'); + } + self.aria('label', settings.ariaLabel); + self.aria('labelledby', self._id); + self.aria('describedby', self.describedBy || self._id + '-none'); + }, + fixed: function (state) { + var self = this; + if (self.state.get('fixed') !== state) { + if (self.state.get('rendered')) { + var viewport = funcs.getViewPort(); + if (state) { + self.layoutRect().y -= viewport.y; + } else { + self.layoutRect().y += viewport.y; + } + } + self.classes.toggle('fixed', state); + self.state.set('fixed', state); + } + return self; + }, + show: function () { + var self = this; + var i; + var state = self._super(); + i = visiblePanels.length; + while (i--) { + if (visiblePanels[i] === self) { + break; + } + } + if (i === -1) { + visiblePanels.push(self); + } + return state; + }, + hide: function () { + removeVisiblePanel(this); + addRemove(false, this); + return this._super(); + }, + hideAll: function () { + FloatPanel.hideAll(); + }, + close: function () { + var self = this; + if (!self.fire('close').isDefaultPrevented()) { + self.remove(); + addRemove(false, self); + } + return self; + }, + remove: function () { + removeVisiblePanel(this); + this._super(); + }, + postRender: function () { + var self = this; + if (self.settings.bodyRole) { + this.getEl('body').setAttribute('role', self.settings.bodyRole); + } + return self._super(); + } + }); + FloatPanel.hideAll = function () { + var i = visiblePanels.length; + while (i--) { + var panel = visiblePanels[i]; + if (panel && panel.settings.autohide) { + panel.hide(); + visiblePanels.splice(i, 1); + } + } + }; + function removeVisiblePanel(panel) { + var i; + i = visiblePanels.length; + while (i--) { + if (visiblePanels[i] === panel) { + visiblePanels.splice(i, 1); + } + } + i = zOrder.length; + while (i--) { + if (zOrder[i] === panel) { + zOrder.splice(i, 1); + } + } + } + + var isFixed$1 = function (inlineToolbarContainer, editor) { + return !!(inlineToolbarContainer && !editor.settings.ui_container); + }; + var render$1 = function (editor, theme, args) { + var panel, inlineToolbarContainer; + var DOM = global$3.DOM; + var fixedToolbarContainer = getFixedToolbarContainer(editor); + if (fixedToolbarContainer) { + inlineToolbarContainer = DOM.select(fixedToolbarContainer)[0]; + } + var reposition = function () { + if (panel && panel.moveRel && panel.visible() && !panel._fixed) { + var scrollContainer = editor.selection.getScrollContainer(), body = editor.getBody(); + var deltaX = 0, deltaY = 0; + if (scrollContainer) { + var bodyPos = DOM.getPos(body), scrollContainerPos = DOM.getPos(scrollContainer); + deltaX = Math.max(0, scrollContainerPos.x - bodyPos.x); + deltaY = Math.max(0, scrollContainerPos.y - bodyPos.y); + } + panel.fixed(false).moveRel(body, editor.rtl ? [ + 'tr-br', + 'br-tr' + ] : [ + 'tl-bl', + 'bl-tl', + 'tr-br' + ]).moveBy(deltaX, deltaY); + } + }; + var show = function () { + if (panel) { + panel.show(); + reposition(); + DOM.addClass(editor.getBody(), 'mce-edit-focus'); + } + }; + var hide = function () { + if (panel) { + panel.hide(); + FloatPanel.hideAll(); + DOM.removeClass(editor.getBody(), 'mce-edit-focus'); + } + }; + var render = function () { + if (panel) { + if (!panel.visible()) { + show(); + } + return; + } + panel = theme.panel = global$4.create({ + type: inlineToolbarContainer ? 'panel' : 'floatpanel', + role: 'application', + classes: 'tinymce tinymce-inline', + layout: 'flex', + direction: 'column', + align: 'stretch', + autohide: false, + autofix: isFixed$1(inlineToolbarContainer, editor), + fixed: isFixed$1(inlineToolbarContainer, editor), + border: 1, + items: [ + hasMenubar(editor) === false ? null : { + type: 'menubar', + border: '0 0 1 0', + items: $_armr7nt9jfuw8scm.createMenuButtons(editor) + }, + $_457dd7t8jfuw8scj.createToolbars(editor, getToolbarSize(editor)) + ] + }); + $_435hnxt5jfuw8sc9.setUiContainer(editor, panel); + $_b6da16t0jfuw8sbv.fireBeforeRenderUI(editor); + if (inlineToolbarContainer) { + panel.renderTo(inlineToolbarContainer).reflow(); + } else { + panel.renderTo().reflow(); + } + $_gaf3jet1jfuw8sbw.addKeys(editor, panel); + show(); + $_v47mpt2jfuw8sc3.addContextualToolbars(editor); + editor.on('nodeChange', reposition); + editor.on('ResizeWindow', reposition); + editor.on('activate', show); + editor.on('deactivate', hide); + editor.nodeChanged(); + }; + editor.settings.content_editable = true; + editor.on('focus', function () { + if (isSkinDisabled(editor) === false && args.skinUiCss) { + DOM.styleSheetLoader.load(args.skinUiCss, render, render); + } else { + render(); + } + }); + editor.on('blur hide', hide); + editor.on('remove', function () { + if (panel) { + panel.remove(); + panel = null; + } + }); + if (isSkinDisabled(editor) === false && args.skinUiCss) { + DOM.styleSheetLoader.load(args.skinUiCss, $_g47gistfjfuw8sd5.fireSkinLoaded(editor)); + } else { + $_g47gistfjfuw8sd5.fireSkinLoaded(editor)(); + } + return {}; + }; + var $_g6zuymtgjfuw8sd6 = { render: render$1 }; + + function Throbber (elm, inline) { + var self = this; + var state; + var classPrefix = Control$1.classPrefix; + var timer; + self.show = function (time, callback) { + function render() { + if (state) { + global$9(elm).append('<div class="' + classPrefix + 'throbber' + (inline ? ' ' + classPrefix + 'throbber-inline' : '') + '"></div>'); + if (callback) { + callback(); + } + } + } + self.hide(); + state = true; + if (time) { + timer = global$7.setTimeout(render, time); + } else { + render(); + } + return self; + }; + self.hide = function () { + var child = elm.lastChild; + global$7.clearTimeout(timer); + if (child && child.className.indexOf('throbber') !== -1) { + child.parentNode.removeChild(child); + } + state = false; + return self; + }; + } + + var setup = function (editor, theme) { + var throbber; + editor.on('ProgressState', function (e) { + throbber = throbber || new Throbber(theme.panel.getEl('body')); + if (e.state) { + throbber.show(e.time); + } else { + throbber.hide(); + } + }); + }; + var $_bm31cfu2jfuw8sg3 = { setup: setup }; + + var renderUI = function (editor, theme, args) { + var skinUrl = getSkinUrl(editor); + if (skinUrl) { + args.skinUiCss = skinUrl + '/skin.min.css'; + editor.contentCSS.push(skinUrl + '/content' + (editor.inline ? '.inline' : '') + '.min.css'); + } + $_bm31cfu2jfuw8sg3.setup(editor, theme); + return isInline(editor) ? $_g6zuymtgjfuw8sd6.render(editor, theme, args) : $_6amrhfswjfuw8sbr.render(editor, theme, args); + }; + var $_5dgseussjfuw8sbh = { renderUI: renderUI }; + + var Tooltip = Control$1.extend({ + Mixins: [$_831wnjtkjfuw8sdt], + Defaults: { classes: 'widget tooltip tooltip-n' }, + renderHtml: function () { + var self = this, prefix = self.classPrefix; + return '<div id="' + self._id + '" class="' + self.classes + '" role="presentation">' + '<div class="' + prefix + 'tooltip-arrow"></div>' + '<div class="' + prefix + 'tooltip-inner">' + self.encode(self.state.get('text')) + '</div>' + '</div>'; + }, + bindStates: function () { + var self = this; + self.state.on('change:text', function (e) { + self.getEl().lastChild.innerHTML = self.encode(e.value); + }); + return self._super(); + }, + repaint: function () { + var self = this; + var style, rect; + style = self.getEl().style; + rect = self._layoutRect; + style.left = rect.x + 'px'; + style.top = rect.y + 'px'; + style.zIndex = 65535 + 65535; + } + }); + + var Widget = Control$1.extend({ + init: function (settings) { + var self = this; + self._super(settings); + settings = self.settings; + self.canFocus = true; + if (settings.tooltip && Widget.tooltips !== false) { + self.on('mouseenter', function (e) { + var tooltip = self.tooltip().moveTo(-65535); + if (e.control === self) { + var rel = tooltip.text(settings.tooltip).show().testMoveRel(self.getEl(), [ + 'bc-tc', + 'bc-tl', + 'bc-tr' + ]); + tooltip.classes.toggle('tooltip-n', rel === 'bc-tc'); + tooltip.classes.toggle('tooltip-nw', rel === 'bc-tl'); + tooltip.classes.toggle('tooltip-ne', rel === 'bc-tr'); + tooltip.moveRel(self.getEl(), rel); + } else { + tooltip.hide(); + } + }); + self.on('mouseleave mousedown click', function () { + self.tooltip().remove(); + self._tooltip = null; + }); + } + self.aria('label', settings.ariaLabel || settings.tooltip); + }, + tooltip: function () { + if (!this._tooltip) { + this._tooltip = new Tooltip({ type: 'tooltip' }); + $_435hnxt5jfuw8sc9.inheritUiContainer(this, this._tooltip); + this._tooltip.renderTo(); + } + return this._tooltip; + }, + postRender: function () { + var self = this, settings = self.settings; + self._super(); + if (!self.parent() && (settings.width || settings.height)) { + self.initLayoutRect(); + self.repaint(); + } + if (settings.autofocus) { + self.focus(); + } + }, + bindStates: function () { + var self = this; + function disable(state) { + self.aria('disabled', state); + self.classes.toggle('disabled', state); + } + function active(state) { + self.aria('pressed', state); + self.classes.toggle('active', state); + } + self.state.on('change:disabled', function (e) { + disable(e.value); + }); + self.state.on('change:active', function (e) { + active(e.value); + }); + if (self.state.get('disabled')) { + disable(true); + } + if (self.state.get('active')) { + active(true); + } + return self._super(); + }, + remove: function () { + this._super(); + if (this._tooltip) { + this._tooltip.remove(); + this._tooltip = null; + } + } + }); + + var Progress = Widget.extend({ + Defaults: { value: 0 }, + init: function (settings) { + var self = this; + self._super(settings); + self.classes.add('progress'); + if (!self.settings.filter) { + self.settings.filter = function (value) { + return Math.round(value); + }; + } + }, + renderHtml: function () { + var self = this, id = self._id, prefix = this.classPrefix; + return '<div id="' + id + '" class="' + self.classes + '">' + '<div class="' + prefix + 'bar-container">' + '<div class="' + prefix + 'bar"></div>' + '</div>' + '<div class="' + prefix + 'text">0%</div>' + '</div>'; + }, + postRender: function () { + var self = this; + self._super(); + self.value(self.settings.value); + return self; + }, + bindStates: function () { + var self = this; + function setValue(value) { + value = self.settings.filter(value); + self.getEl().lastChild.innerHTML = value + '%'; + self.getEl().firstChild.firstChild.style.width = value + '%'; + } + self.state.on('change:value', function (e) { + setValue(e.value); + }); + setValue(self.state.get('value')); + return self._super(); + } + }); + + var updateLiveRegion = function (ctx, text) { + ctx.getEl().lastChild.textContent = text + (ctx.progressBar ? ' ' + ctx.progressBar.value() + '%' : ''); + }; + var Notification = Control$1.extend({ + Mixins: [$_831wnjtkjfuw8sdt], + Defaults: { classes: 'widget notification' }, + init: function (settings) { + var self = this; + self._super(settings); + self.maxWidth = settings.maxWidth; + if (settings.text) { + self.text(settings.text); + } + if (settings.icon) { + self.icon = settings.icon; + } + if (settings.color) { + self.color = settings.color; + } + if (settings.type) { + self.classes.add('notification-' + settings.type); + } + if (settings.timeout && (settings.timeout < 0 || settings.timeout > 0) && !settings.closeButton) { + self.closeButton = false; + } else { + self.classes.add('has-close'); + self.closeButton = true; + } + if (settings.progressBar) { + self.progressBar = new Progress(); + } + self.on('click', function (e) { + if (e.target.className.indexOf(self.classPrefix + 'close') !== -1) { + self.close(); + } + }); + }, + renderHtml: function () { + var self = this; + var prefix = self.classPrefix; + var icon = '', closeButton = '', progressBar = '', notificationStyle = ''; + if (self.icon) { + icon = '<i class="' + prefix + 'ico' + ' ' + prefix + 'i-' + self.icon + '"></i>'; + } + notificationStyle = ' style="max-width: ' + self.maxWidth + 'px;' + (self.color ? 'background-color: ' + self.color + ';"' : '"'); + if (self.closeButton) { + closeButton = '<button type="button" class="' + prefix + 'close" aria-hidden="true">\xD7</button>'; + } + if (self.progressBar) { + progressBar = self.progressBar.renderHtml(); + } + return '<div id="' + self._id + '" class="' + self.classes + '"' + notificationStyle + ' role="presentation">' + icon + '<div class="' + prefix + 'notification-inner">' + self.state.get('text') + '</div>' + progressBar + closeButton + '<div style="clip: rect(1px, 1px, 1px, 1px);height: 1px;overflow: hidden;position: absolute;width: 1px;"' + ' aria-live="assertive" aria-relevant="additions" aria-atomic="true"></div>' + '</div>'; + }, + postRender: function () { + var self = this; + global$7.setTimeout(function () { + self.$el.addClass(self.classPrefix + 'in'); + updateLiveRegion(self, self.state.get('text')); + }, 100); + return self._super(); + }, + bindStates: function () { + var self = this; + self.state.on('change:text', function (e) { + self.getEl().firstChild.innerHTML = e.value; + updateLiveRegion(self, e.value); + }); + if (self.progressBar) { + self.progressBar.bindStates(); + self.progressBar.state.on('change:value', function (e) { + updateLiveRegion(self, self.state.get('text')); + }); + } + return self._super(); + }, + close: function () { + var self = this; + if (!self.fire('close').isDefaultPrevented()) { + self.remove(); + } + return self; + }, + repaint: function () { + var self = this; + var style, rect; + style = self.getEl().style; + rect = self._layoutRect; + style.left = rect.x + 'px'; + style.top = rect.y + 'px'; + style.zIndex = 65535 - 1; + } + }); + + function NotificationManagerImpl (editor) { + var getEditorContainer = function (editor) { + return editor.inline ? editor.getElement() : editor.getContentAreaContainer(); + }; + var getContainerWidth = function () { + var container = getEditorContainer(editor); + return funcs.getSize(container).width; + }; + var prePositionNotifications = function (notifications) { + $_anxm1mtajfuw8sct.each(notifications, function (notification) { + notification.moveTo(0, 0); + }); + }; + var positionNotifications = function (notifications) { + if (notifications.length > 0) { + var firstItem = notifications.slice(0, 1)[0]; + var container = getEditorContainer(editor); + firstItem.moveRel(container, 'tc-tc'); + $_anxm1mtajfuw8sct.each(notifications, function (notification, index) { + if (index > 0) { + notification.moveRel(notifications[index - 1].getEl(), 'bc-tc'); + } + }); + } + }; + var reposition = function (notifications) { + prePositionNotifications(notifications); + positionNotifications(notifications); + }; + var open = function (args, closeCallback) { + var extendedArgs = global$2.extend(args, { maxWidth: getContainerWidth() }); + var notif = new Notification(extendedArgs); + notif.args = extendedArgs; + if (extendedArgs.timeout > 0) { + notif.timer = setTimeout(function () { + notif.close(); + closeCallback(); + }, extendedArgs.timeout); + } + notif.on('close', function () { + closeCallback(); + }); + notif.renderTo(); + return notif; + }; + var close = function (notification) { + notification.close(); + }; + var getArgs = function (notification) { + return notification.args; + }; + return { + open: open, + close: close, + reposition: reposition, + getArgs: getArgs + }; + } + + var windows = []; + var oldMetaValue = ''; + function toggleFullScreenState(state) { + var noScaleMetaValue = 'width=device-width,initial-scale=1.0,user-scalable=0,minimum-scale=1.0,maximum-scale=1.0'; + var viewport = global$9('meta[name=viewport]')[0], contentValue; + if (global$8.overrideViewPort === false) { + return; + } + if (!viewport) { + viewport = document.createElement('meta'); + viewport.setAttribute('name', 'viewport'); + document.getElementsByTagName('head')[0].appendChild(viewport); + } + contentValue = viewport.getAttribute('content'); + if (contentValue && typeof oldMetaValue !== 'undefined') { + oldMetaValue = contentValue; + } + viewport.setAttribute('content', state ? noScaleMetaValue : oldMetaValue); + } + function toggleBodyFullScreenClasses(classPrefix, state) { + if (checkFullscreenWindows() && state === false) { + global$9([ + document.documentElement, + document.body + ]).removeClass(classPrefix + 'fullscreen'); + } + } + function checkFullscreenWindows() { + for (var i = 0; i < windows.length; i++) { + if (windows[i]._fullscreen) { + return true; + } + } + return false; + } + function handleWindowResize() { + if (!global$8.desktop) { + var lastSize_1 = { + w: window.innerWidth, + h: window.innerHeight + }; + global$7.setInterval(function () { + var w = window.innerWidth, h = window.innerHeight; + if (lastSize_1.w !== w || lastSize_1.h !== h) { + lastSize_1 = { + w: w, + h: h + }; + global$9(window).trigger('resize'); + } + }, 100); + } + function reposition() { + var i; + var rect = funcs.getWindowSize(); + var layoutRect; + for (i = 0; i < windows.length; i++) { + layoutRect = windows[i].layoutRect(); + windows[i].moveTo(windows[i].settings.x || Math.max(0, rect.w / 2 - layoutRect.w / 2), windows[i].settings.y || Math.max(0, rect.h / 2 - layoutRect.h / 2)); + } + } + global$9(window).on('resize', reposition); + } + var Window = FloatPanel.extend({ + modal: true, + Defaults: { + border: 1, + layout: 'flex', + containerCls: 'panel', + role: 'dialog', + callbacks: { + submit: function () { + this.fire('submit', { data: this.toJSON() }); + }, + close: function () { + this.close(); + } + } + }, + init: function (settings) { + var self = this; + self._super(settings); + if (self.isRtl()) { + self.classes.add('rtl'); + } + self.classes.add('window'); + self.bodyClasses.add('window-body'); + self.state.set('fixed', true); + if (settings.buttons) { + self.statusbar = new Panel({ + layout: 'flex', + border: '1 0 0 0', + spacing: 3, + padding: 10, + align: 'center', + pack: self.isRtl() ? 'start' : 'end', + defaults: { type: 'button' }, + items: settings.buttons + }); + self.statusbar.classes.add('foot'); + self.statusbar.parent(self); + } + self.on('click', function (e) { + var closeClass = self.classPrefix + 'close'; + if (funcs.hasClass(e.target, closeClass) || funcs.hasClass(e.target.parentNode, closeClass)) { + self.close(); + } + }); + self.on('cancel', function () { + self.close(); + }); + self.on('move', function (e) { + if (e.control === self) { + FloatPanel.hideAll(); + } + }); + self.aria('describedby', self.describedBy || self._id + '-none'); + self.aria('label', settings.title); + self._fullscreen = false; + }, + recalc: function () { + var self = this; + var statusbar = self.statusbar; + var layoutRect, width, x, needsRecalc; + if (self._fullscreen) { + self.layoutRect(funcs.getWindowSize()); + self.layoutRect().contentH = self.layoutRect().innerH; + } + self._super(); + layoutRect = self.layoutRect(); + if (self.settings.title && !self._fullscreen) { + width = layoutRect.headerW; + if (width > layoutRect.w) { + x = layoutRect.x - Math.max(0, width / 2); + self.layoutRect({ + w: width, + x: x + }); + needsRecalc = true; + } + } + if (statusbar) { + statusbar.layoutRect({ w: self.layoutRect().innerW }).recalc(); + width = statusbar.layoutRect().minW + layoutRect.deltaW; + if (width > layoutRect.w) { + x = layoutRect.x - Math.max(0, width - layoutRect.w); + self.layoutRect({ + w: width, + x: x + }); + needsRecalc = true; + } + } + if (needsRecalc) { + self.recalc(); + } + }, + initLayoutRect: function () { + var self = this; + var layoutRect = self._super(); + var deltaH = 0, headEl; + if (self.settings.title && !self._fullscreen) { + headEl = self.getEl('head'); + var size = funcs.getSize(headEl); + layoutRect.headerW = size.width; + layoutRect.headerH = size.height; + deltaH += layoutRect.headerH; + } + if (self.statusbar) { + deltaH += self.statusbar.layoutRect().h; + } + layoutRect.deltaH += deltaH; + layoutRect.minH += deltaH; + layoutRect.h += deltaH; + var rect = funcs.getWindowSize(); + layoutRect.x = self.settings.x || Math.max(0, rect.w / 2 - layoutRect.w / 2); + layoutRect.y = self.settings.y || Math.max(0, rect.h / 2 - layoutRect.h / 2); + return layoutRect; + }, + renderHtml: function () { + var self = this, layout = self._layout, id = self._id, prefix = self.classPrefix; + var settings = self.settings; + var headerHtml = '', footerHtml = '', html = settings.html; + self.preRender(); + layout.preRender(self); + if (settings.title) { + headerHtml = '<div id="' + id + '-head" class="' + prefix + 'window-head">' + '<div id="' + id + '-title" class="' + prefix + 'title">' + self.encode(settings.title) + '</div>' + '<div id="' + id + '-dragh" class="' + prefix + 'dragh"></div>' + '<button type="button" class="' + prefix + 'close" aria-hidden="true">' + '<i class="mce-ico mce-i-remove"></i>' + '</button>' + '</div>'; + } + if (settings.url) { + html = '<iframe src="' + settings.url + '" tabindex="-1"></iframe>'; + } + if (typeof html === 'undefined') { + html = layout.renderHtml(self); + } + if (self.statusbar) { + footerHtml = self.statusbar.renderHtml(); + } + return '<div id="' + id + '" class="' + self.classes + '" hidefocus="1">' + '<div class="' + self.classPrefix + 'reset" role="application">' + headerHtml + '<div id="' + id + '-body" class="' + self.bodyClasses + '">' + html + '</div>' + footerHtml + '</div>' + '</div>'; + }, + fullscreen: function (state) { + var self = this; + var documentElement = document.documentElement; + var slowRendering; + var prefix = self.classPrefix; + var layoutRect; + if (state !== self._fullscreen) { + global$9(window).on('resize', function () { + var time; + if (self._fullscreen) { + if (!slowRendering) { + time = new Date().getTime(); + var rect = funcs.getWindowSize(); + self.moveTo(0, 0).resizeTo(rect.w, rect.h); + if (new Date().getTime() - time > 50) { + slowRendering = true; + } + } else { + if (!self._timer) { + self._timer = global$7.setTimeout(function () { + var rect = funcs.getWindowSize(); + self.moveTo(0, 0).resizeTo(rect.w, rect.h); + self._timer = 0; + }, 50); + } + } + } + }); + layoutRect = self.layoutRect(); + self._fullscreen = state; + if (!state) { + self.borderBox = $_xw61vtqjfuw8sep.parseBox(self.settings.border); + self.getEl('head').style.display = ''; + layoutRect.deltaH += layoutRect.headerH; + global$9([ + documentElement, + document.body + ]).removeClass(prefix + 'fullscreen'); + self.classes.remove('fullscreen'); + self.moveTo(self._initial.x, self._initial.y).resizeTo(self._initial.w, self._initial.h); + } else { + self._initial = { + x: layoutRect.x, + y: layoutRect.y, + w: layoutRect.w, + h: layoutRect.h + }; + self.borderBox = $_xw61vtqjfuw8sep.parseBox('0'); + self.getEl('head').style.display = 'none'; + layoutRect.deltaH -= layoutRect.headerH + 2; + global$9([ + documentElement, + document.body + ]).addClass(prefix + 'fullscreen'); + self.classes.add('fullscreen'); + var rect = funcs.getWindowSize(); + self.moveTo(0, 0).resizeTo(rect.w, rect.h); + } + } + return self.reflow(); + }, + postRender: function () { + var self = this; + var startPos; + setTimeout(function () { + self.classes.add('in'); + self.fire('open'); + }, 0); + self._super(); + if (self.statusbar) { + self.statusbar.postRender(); + } + self.focus(); + this.dragHelper = new DragHelper(self._id + '-dragh', { + start: function () { + startPos = { + x: self.layoutRect().x, + y: self.layoutRect().y + }; + }, + drag: function (e) { + self.moveTo(startPos.x + e.deltaX, startPos.y + e.deltaY); + } + }); + self.on('submit', function (e) { + if (!e.isDefaultPrevented()) { + self.close(); + } + }); + windows.push(self); + toggleFullScreenState(true); + }, + submit: function () { + return this.fire('submit', { data: this.toJSON() }); + }, + remove: function () { + var self = this; + var i; + self.dragHelper.destroy(); + self._super(); + if (self.statusbar) { + this.statusbar.remove(); + } + toggleBodyFullScreenClasses(self.classPrefix, false); + i = windows.length; + while (i--) { + if (windows[i] === self) { + windows.splice(i, 1); + } + } + toggleFullScreenState(windows.length > 0); + }, + getContentWindow: function () { + var ifr = this.getEl().getElementsByTagName('iframe')[0]; + return ifr ? ifr.contentWindow : null; + } + }); + handleWindowResize(); + + var MessageBox = Window.extend({ + init: function (settings) { + settings = { + border: 1, + padding: 20, + layout: 'flex', + pack: 'center', + align: 'center', + containerCls: 'panel', + autoScroll: true, + buttons: { + type: 'button', + text: 'Ok', + action: 'ok' + }, + items: { + type: 'label', + multiline: true, + maxWidth: 500, + maxHeight: 200 + } + }; + this._super(settings); + }, + Statics: { + OK: 1, + OK_CANCEL: 2, + YES_NO: 3, + YES_NO_CANCEL: 4, + msgBox: function (settings) { + var buttons; + var callback = settings.callback || function () { + }; + function createButton(text, status, primary) { + return { + type: 'button', + text: text, + subtype: primary ? 'primary' : '', + onClick: function (e) { + e.control.parents()[1].close(); + callback(status); + } + }; + } + switch (settings.buttons) { + case MessageBox.OK_CANCEL: + buttons = [ + createButton('Ok', true, true), + createButton('Cancel', false) + ]; + break; + case MessageBox.YES_NO: + case MessageBox.YES_NO_CANCEL: + buttons = [ + createButton('Yes', 1, true), + createButton('No', 0) + ]; + if (settings.buttons === MessageBox.YES_NO_CANCEL) { + buttons.push(createButton('Cancel', -1)); + } + break; + default: + buttons = [createButton('Ok', true, true)]; + break; + } + return new Window({ + padding: 20, + x: settings.x, + y: settings.y, + minWidth: 300, + minHeight: 100, + layout: 'flex', + pack: 'center', + align: 'center', + buttons: buttons, + title: settings.title, + role: 'alertdialog', + items: { + type: 'label', + multiline: true, + maxWidth: 500, + maxHeight: 200, + text: settings.text + }, + onPostRender: function () { + this.aria('describedby', this.items()[0]._id); + }, + onClose: settings.onClose, + onCancel: function () { + callback(false); + } + }).renderTo(document.body).reflow(); + }, + alert: function (settings, callback) { + if (typeof settings === 'string') { + settings = { text: settings }; + } + settings.callback = callback; + return MessageBox.msgBox(settings); + }, + confirm: function (settings, callback) { + if (typeof settings === 'string') { + settings = { text: settings }; + } + settings.callback = callback; + settings.buttons = MessageBox.OK_CANCEL; + return MessageBox.msgBox(settings); + } + } + }); + + function WindowManagerImpl (editor) { + var open = function (args, params, closeCallback) { + var win; + args.title = args.title || ' '; + args.url = args.url || args.file; + if (args.url) { + args.width = parseInt(args.width || 320, 10); + args.height = parseInt(args.height || 240, 10); + } + if (args.body) { + args.items = { + defaults: args.defaults, + type: args.bodyType || 'form', + items: args.body, + data: args.data, + callbacks: args.commands + }; + } + if (!args.url && !args.buttons) { + args.buttons = [ + { + text: 'Ok', + subtype: 'primary', + onclick: function () { + win.find('form')[0].submit(); + } + }, + { + text: 'Cancel', + onclick: function () { + win.close(); + } + } + ]; + } + win = new Window(args); + win.on('close', function () { + closeCallback(win); + }); + if (args.data) { + win.on('postRender', function () { + this.find('*').each(function (ctrl) { + var name = ctrl.name(); + if (name in args.data) { + ctrl.value(args.data[name]); + } + }); + }); + } + win.features = args || {}; + win.params = params || {}; + win = win.renderTo(document.body).reflow(); + return win; + }; + var alert = function (message, choiceCallback, closeCallback) { + var win; + win = MessageBox.alert(message, function () { + choiceCallback(); + }); + win.on('close', function () { + closeCallback(win); + }); + return win; + }; + var confirm = function (message, choiceCallback, closeCallback) { + var win; + win = MessageBox.confirm(message, function (state) { + choiceCallback(state); + }); + win.on('close', function () { + closeCallback(win); + }); + return win; + }; + var close = function (window) { + window.close(); + }; + var getParams = function (window) { + return window.params; + }; + var setParams = function (window, params) { + window.params = params; + }; + return { + open: open, + alert: alert, + confirm: confirm, + close: close, + getParams: getParams, + setParams: setParams + }; + } + + var get = function (editor) { + var renderUI = function (args) { + return $_5dgseussjfuw8sbh.renderUI(editor, this, args); + }; + var resizeTo = function (w, h) { + return $_4yyb9xtcjfuw8scz.resizeTo(editor, w, h); + }; + var resizeBy = function (dw, dh) { + return $_4yyb9xtcjfuw8scz.resizeBy(editor, dw, dh); + }; + var getNotificationManagerImpl = function () { + return NotificationManagerImpl(editor); + }; + var getWindowManagerImpl = function () { + return WindowManagerImpl(editor); + }; + return { + renderUI: renderUI, + resizeTo: resizeTo, + resizeBy: resizeBy, + getNotificationManagerImpl: getNotificationManagerImpl, + getWindowManagerImpl: getWindowManagerImpl + }; + }; + var $_cf5qtqsrjfuw8sbf = { get: get }; + + var Layout = global$10.extend({ + Defaults: { + firstControlClass: 'first', + lastControlClass: 'last' + }, + init: function (settings) { + this.settings = global$2.extend({}, this.Defaults, settings); + }, + preRender: function (container) { + container.bodyClasses.add(this.settings.containerClass); + }, + applyClasses: function (items) { + var self = this; + var settings = self.settings; + var firstClass, lastClass, firstItem, lastItem; + firstClass = settings.firstControlClass; + lastClass = settings.lastControlClass; + items.each(function (item) { + item.classes.remove(firstClass).remove(lastClass).add(settings.controlClass); + if (item.visible()) { + if (!firstItem) { + firstItem = item; + } + lastItem = item; + } + }); + if (firstItem) { + firstItem.classes.add(firstClass); + } + if (lastItem) { + lastItem.classes.add(lastClass); + } + }, + renderHtml: function (container) { + var self = this; + var html = ''; + self.applyClasses(container.items()); + container.items().each(function (item) { + html += item.renderHtml(); + }); + return html; + }, + recalc: function () { + }, + postRender: function () { + }, + isNative: function () { + return false; + } + }); + + var AbsoluteLayout = Layout.extend({ + Defaults: { + containerClass: 'abs-layout', + controlClass: 'abs-layout-item' + }, + recalc: function (container) { + container.items().filter(':visible').each(function (ctrl) { + var settings = ctrl.settings; + ctrl.layoutRect({ + x: settings.x, + y: settings.y, + w: settings.w, + h: settings.h + }); + if (ctrl.recalc) { + ctrl.recalc(); + } + }); + }, + renderHtml: function (container) { + return '<div id="' + container._id + '-absend" class="' + container.classPrefix + 'abs-end"></div>' + this._super(container); + } + }); + + var Button = Widget.extend({ + Defaults: { + classes: 'widget btn', + role: 'button' + }, + init: function (settings) { + var self = this; + var size; + self._super(settings); + settings = self.settings; + size = self.settings.size; + self.on('click mousedown', function (e) { + e.preventDefault(); + }); + self.on('touchstart', function (e) { + self.fire('click', e); + e.preventDefault(); + }); + if (settings.subtype) { + self.classes.add(settings.subtype); + } + if (size) { + self.classes.add('btn-' + size); + } + if (settings.icon) { + self.icon(settings.icon); + } + }, + icon: function (icon) { + if (!arguments.length) { + return this.state.get('icon'); + } + this.state.set('icon', icon); + return this; + }, + repaint: function () { + var btnElm = this.getEl().firstChild; + var btnStyle; + if (btnElm) { + btnStyle = btnElm.style; + btnStyle.width = btnStyle.height = '100%'; + } + this._super(); + }, + renderHtml: function () { + var self = this, id = self._id, prefix = self.classPrefix; + var icon = self.state.get('icon'), image; + var text = self.state.get('text'); + var textHtml = ''; + var ariaPressed; + var settings = self.settings; + image = settings.image; + if (image) { + icon = 'none'; + if (typeof image !== 'string') { + image = window.getSelection ? image[0] : image[1]; + } + image = ' style="background-image: url(\'' + image + '\')"'; + } else { + image = ''; + } + if (text) { + self.classes.add('btn-has-text'); + textHtml = '<span class="' + prefix + 'txt">' + self.encode(text) + '</span>'; + } + icon = icon ? prefix + 'ico ' + prefix + 'i-' + icon : ''; + ariaPressed = typeof settings.active === 'boolean' ? ' aria-pressed="' + settings.active + '"' : ''; + return '<div id="' + id + '" class="' + self.classes + '" tabindex="-1"' + ariaPressed + '>' + '<button id="' + id + '-button" role="presentation" type="button" tabindex="-1">' + (icon ? '<i class="' + icon + '"' + image + '></i>' : '') + textHtml + '</button>' + '</div>'; + }, + bindStates: function () { + var self = this, $ = self.$, textCls = self.classPrefix + 'txt'; + function setButtonText(text) { + var $span = $('span.' + textCls, self.getEl()); + if (text) { + if (!$span[0]) { + $('button:first', self.getEl()).append('<span class="' + textCls + '"></span>'); + $span = $('span.' + textCls, self.getEl()); + } + $span.html(self.encode(text)); + } else { + $span.remove(); + } + self.classes.toggle('btn-has-text', !!text); + } + self.state.on('change:text', function (e) { + setButtonText(e.value); + }); + self.state.on('change:icon', function (e) { + var icon = e.value; + var prefix = self.classPrefix; + self.settings.icon = icon; + icon = icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : ''; + var btnElm = self.getEl().firstChild; + var iconElm = btnElm.getElementsByTagName('i')[0]; + if (icon) { + if (!iconElm || iconElm !== btnElm.firstChild) { + iconElm = document.createElement('i'); + btnElm.insertBefore(iconElm, btnElm.firstChild); + } + iconElm.className = icon; + } else if (iconElm) { + btnElm.removeChild(iconElm); + } + setButtonText(self.state.get('text')); + }); + return self._super(); + } + }); + + var BrowseButton = Button.extend({ + init: function (settings) { + var self = this; + settings = global$2.extend({ + text: 'Browse...', + multiple: false, + accept: null + }, settings); + self._super(settings); + self.classes.add('browsebutton'); + if (settings.multiple) { + self.classes.add('multiple'); + } + }, + postRender: function () { + var self = this; + var input = funcs.create('input', { + type: 'file', + id: self._id + '-browse', + accept: self.settings.accept + }); + self._super(); + global$9(input).on('change', function (e) { + var files = e.target.files; + self.value = function () { + if (!files.length) { + return null; + } else if (self.settings.multiple) { + return files; + } else { + return files[0]; + } + }; + e.preventDefault(); + if (files.length) { + self.fire('change', e); + } + }); + global$9(input).on('click', function (e) { + e.stopPropagation(); + }); + global$9(self.getEl('button')).on('click', function (e) { + e.stopPropagation(); + input.click(); + }); + self.getEl().appendChild(input); + }, + remove: function () { + global$9(this.getEl('button')).off(); + global$9(this.getEl('input')).off(); + this._super(); + } + }); + + var ButtonGroup = Container.extend({ + Defaults: { + defaultType: 'button', + role: 'group' + }, + renderHtml: function () { + var self = this, layout = self._layout; + self.classes.add('btn-group'); + self.preRender(); + layout.preRender(self); + return '<div id="' + self._id + '" class="' + self.classes + '">' + '<div id="' + self._id + '-body">' + (self.settings.html || '') + layout.renderHtml(self) + '</div>' + '</div>'; + } + }); + + var Checkbox = Widget.extend({ + Defaults: { + classes: 'checkbox', + role: 'checkbox', + checked: false + }, + init: function (settings) { + var self = this; + self._super(settings); + self.on('click mousedown', function (e) { + e.preventDefault(); + }); + self.on('click', function (e) { + e.preventDefault(); + if (!self.disabled()) { + self.checked(!self.checked()); + } + }); + self.checked(self.settings.checked); + }, + checked: function (state) { + if (!arguments.length) { + return this.state.get('checked'); + } + this.state.set('checked', state); + return this; + }, + value: function (state) { + if (!arguments.length) { + return this.checked(); + } + return this.checked(state); + }, + renderHtml: function () { + var self = this, id = self._id, prefix = self.classPrefix; + return '<div id="' + id + '" class="' + self.classes + '" unselectable="on" aria-labelledby="' + id + '-al" tabindex="-1">' + '<i class="' + prefix + 'ico ' + prefix + 'i-checkbox"></i>' + '<span id="' + id + '-al" class="' + prefix + 'label">' + self.encode(self.state.get('text')) + '</span>' + '</div>'; + }, + bindStates: function () { + var self = this; + function checked(state) { + self.classes.toggle('checked', state); + self.aria('checked', state); + } + self.state.on('change:text', function (e) { + self.getEl('al').firstChild.data = self.translate(e.value); + }); + self.state.on('change:checked change:value', function (e) { + self.fire('change'); + checked(e.value); + }); + self.state.on('change:icon', function (e) { + var icon = e.value; + var prefix = self.classPrefix; + if (typeof icon === 'undefined') { + return self.settings.icon; + } + self.settings.icon = icon; + icon = icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : ''; + var btnElm = self.getEl().firstChild; + var iconElm = btnElm.getElementsByTagName('i')[0]; + if (icon) { + if (!iconElm || iconElm !== btnElm.firstChild) { + iconElm = document.createElement('i'); + btnElm.insertBefore(iconElm, btnElm.firstChild); + } + iconElm.className = icon; + } else if (iconElm) { + btnElm.removeChild(iconElm); + } + }); + if (self.state.get('checked')) { + checked(true); + } + return self._super(); + } + }); + + var global$13 = tinymce.util.Tools.resolve('tinymce.util.VK'); + + var ComboBox = Widget.extend({ + init: function (settings) { + var self = this; + self._super(settings); + settings = self.settings; + self.classes.add('combobox'); + self.subinput = true; + self.ariaTarget = 'inp'; + settings.menu = settings.menu || settings.values; + if (settings.menu) { + settings.icon = 'caret'; + } + self.on('click', function (e) { + var elm = e.target; + var root = self.getEl(); + if (!global$9.contains(root, elm) && elm !== root) { + return; + } + while (elm && elm !== root) { + if (elm.id && elm.id.indexOf('-open') !== -1) { + self.fire('action'); + if (settings.menu) { + self.showMenu(); + if (e.aria) { + self.menu.items()[0].focus(); + } + } + } + elm = elm.parentNode; + } + }); + self.on('keydown', function (e) { + var rootControl; + if (e.keyCode === 13 && e.target.nodeName === 'INPUT') { + e.preventDefault(); + self.parents().reverse().each(function (ctrl) { + if (ctrl.toJSON) { + rootControl = ctrl; + return false; + } + }); + self.fire('submit', { data: rootControl.toJSON() }); + } + }); + self.on('keyup', function (e) { + if (e.target.nodeName === 'INPUT') { + var oldValue = self.state.get('value'); + var newValue = e.target.value; + if (newValue !== oldValue) { + self.state.set('value', newValue); + self.fire('autocomplete', e); + } + } + }); + self.on('mouseover', function (e) { + var tooltip = self.tooltip().moveTo(-65535); + if (self.statusLevel() && e.target.className.indexOf(self.classPrefix + 'status') !== -1) { + var statusMessage = self.statusMessage() || 'Ok'; + var rel = tooltip.text(statusMessage).show().testMoveRel(e.target, [ + 'bc-tc', + 'bc-tl', + 'bc-tr' + ]); + tooltip.classes.toggle('tooltip-n', rel === 'bc-tc'); + tooltip.classes.toggle('tooltip-nw', rel === 'bc-tl'); + tooltip.classes.toggle('tooltip-ne', rel === 'bc-tr'); + tooltip.moveRel(e.target, rel); + } + }); + }, + statusLevel: function (value) { + if (arguments.length > 0) { + this.state.set('statusLevel', value); + } + return this.state.get('statusLevel'); + }, + statusMessage: function (value) { + if (arguments.length > 0) { + this.state.set('statusMessage', value); + } + return this.state.get('statusMessage'); + }, + showMenu: function () { + var self = this; + var settings = self.settings; + var menu; + if (!self.menu) { + menu = settings.menu || []; + if (menu.length) { + menu = { + type: 'menu', + items: menu + }; + } else { + menu.type = menu.type || 'menu'; + } + self.menu = global$4.create(menu).parent(self).renderTo(self.getContainerElm()); + self.fire('createmenu'); + self.menu.reflow(); + self.menu.on('cancel', function (e) { + if (e.control === self.menu) { + self.focus(); + } + }); + self.menu.on('show hide', function (e) { + e.control.items().each(function (ctrl) { + ctrl.active(ctrl.value() === self.value()); + }); + }).fire('show'); + self.menu.on('select', function (e) { + self.value(e.control.value()); + }); + self.on('focusin', function (e) { + if (e.target.tagName.toUpperCase() === 'INPUT') { + self.menu.hide(); + } + }); + self.aria('expanded', true); + } + self.menu.show(); + self.menu.layoutRect({ w: self.layoutRect().w }); + self.menu.moveRel(self.getEl(), self.isRtl() ? [ + 'br-tr', + 'tr-br' + ] : [ + 'bl-tl', + 'tl-bl' + ]); + }, + focus: function () { + this.getEl('inp').focus(); + }, + repaint: function () { + var self = this, elm = self.getEl(), openElm = self.getEl('open'), rect = self.layoutRect(); + var width, lineHeight, innerPadding = 0; + var inputElm = elm.firstChild; + if (self.statusLevel() && self.statusLevel() !== 'none') { + innerPadding = parseInt(funcs.getRuntimeStyle(inputElm, 'padding-right'), 10) - parseInt(funcs.getRuntimeStyle(inputElm, 'padding-left'), 10); + } + if (openElm) { + width = rect.w - funcs.getSize(openElm).width - 10; + } else { + width = rect.w - 10; + } + var doc = document; + if (doc.all && (!doc.documentMode || doc.documentMode <= 8)) { + lineHeight = self.layoutRect().h - 2 + 'px'; + } + global$9(inputElm).css({ + width: width - innerPadding, + lineHeight: lineHeight + }); + self._super(); + return self; + }, + postRender: function () { + var self = this; + global$9(this.getEl('inp')).on('change', function (e) { + self.state.set('value', e.target.value); + self.fire('change', e); + }); + return self._super(); + }, + renderHtml: function () { + var self = this, id = self._id, settings = self.settings, prefix = self.classPrefix; + var value = self.state.get('value') || ''; + var icon, text, openBtnHtml = '', extraAttrs = '', statusHtml = ''; + if ('spellcheck' in settings) { + extraAttrs += ' spellcheck="' + settings.spellcheck + '"'; + } + if (settings.maxLength) { + extraAttrs += ' maxlength="' + settings.maxLength + '"'; + } + if (settings.size) { + extraAttrs += ' size="' + settings.size + '"'; + } + if (settings.subtype) { + extraAttrs += ' type="' + settings.subtype + '"'; + } + statusHtml = '<i id="' + id + '-status" class="mce-status mce-ico" style="display: none"></i>'; + if (self.disabled()) { + extraAttrs += ' disabled="disabled"'; + } + icon = settings.icon; + if (icon && icon !== 'caret') { + icon = prefix + 'ico ' + prefix + 'i-' + settings.icon; + } + text = self.state.get('text'); + if (icon || text) { + openBtnHtml = '<div id="' + id + '-open" class="' + prefix + 'btn ' + prefix + 'open" tabIndex="-1" role="button">' + '<button id="' + id + '-action" type="button" hidefocus="1" tabindex="-1">' + (icon !== 'caret' ? '<i class="' + icon + '"></i>' : '<i class="' + prefix + 'caret"></i>') + (text ? (icon ? ' ' : '') + text : '') + '</button>' + '</div>'; + self.classes.add('has-open'); + } + return '<div id="' + id + '" class="' + self.classes + '">' + '<input id="' + id + '-inp" class="' + prefix + 'textbox" value="' + self.encode(value, false) + '" hidefocus="1"' + extraAttrs + ' placeholder="' + self.encode(settings.placeholder) + '" />' + statusHtml + openBtnHtml + '</div>'; + }, + value: function (value) { + if (arguments.length) { + this.state.set('value', value); + return this; + } + if (this.state.get('rendered')) { + this.state.set('value', this.getEl('inp').value); + } + return this.state.get('value'); + }, + showAutoComplete: function (items, term) { + var self = this; + if (items.length === 0) { + self.hideMenu(); + return; + } + var insert = function (value, title) { + return function () { + self.fire('selectitem', { + title: title, + value: value + }); + }; + }; + if (self.menu) { + self.menu.items().remove(); + } else { + self.menu = global$4.create({ + type: 'menu', + classes: 'combobox-menu', + layout: 'flow' + }).parent(self).renderTo(); + } + global$2.each(items, function (item) { + self.menu.add({ + text: item.title, + url: item.previewUrl, + match: term, + classes: 'menu-item-ellipsis', + onclick: insert(item.value, item.title) + }); + }); + self.menu.renderNew(); + self.hideMenu(); + self.menu.on('cancel', function (e) { + if (e.control.parent() === self.menu) { + e.stopPropagation(); + self.focus(); + self.hideMenu(); + } + }); + self.menu.on('select', function () { + self.focus(); + }); + var maxW = self.layoutRect().w; + self.menu.layoutRect({ + w: maxW, + minW: 0, + maxW: maxW + }); + self.menu.repaint(); + self.menu.reflow(); + self.menu.show(); + self.menu.moveRel(self.getEl(), self.isRtl() ? [ + 'br-tr', + 'tr-br' + ] : [ + 'bl-tl', + 'tl-bl' + ]); + }, + hideMenu: function () { + if (this.menu) { + this.menu.hide(); + } + }, + bindStates: function () { + var self = this; + self.state.on('change:value', function (e) { + if (self.getEl('inp').value !== e.value) { + self.getEl('inp').value = e.value; + } + }); + self.state.on('change:disabled', function (e) { + self.getEl('inp').disabled = e.value; + }); + self.state.on('change:statusLevel', function (e) { + var statusIconElm = self.getEl('status'); + var prefix = self.classPrefix, value = e.value; + funcs.css(statusIconElm, 'display', value === 'none' ? 'none' : ''); + funcs.toggleClass(statusIconElm, prefix + 'i-checkmark', value === 'ok'); + funcs.toggleClass(statusIconElm, prefix + 'i-warning', value === 'warn'); + funcs.toggleClass(statusIconElm, prefix + 'i-error', value === 'error'); + self.classes.toggle('has-status', value !== 'none'); + self.repaint(); + }); + funcs.on(self.getEl('status'), 'mouseleave', function () { + self.tooltip().hide(); + }); + self.on('cancel', function (e) { + if (self.menu && self.menu.visible()) { + e.stopPropagation(); + self.hideMenu(); + } + }); + var focusIdx = function (idx, menu) { + if (menu && menu.items().length > 0) { + menu.items().eq(idx)[0].focus(); + } + }; + self.on('keydown', function (e) { + var keyCode = e.keyCode; + if (e.target.nodeName === 'INPUT') { + if (keyCode === global$13.DOWN) { + e.preventDefault(); + self.fire('autocomplete'); + focusIdx(0, self.menu); + } else if (keyCode === global$13.UP) { + e.preventDefault(); + focusIdx(-1, self.menu); + } + } + }); + return self._super(); + }, + remove: function () { + global$9(this.getEl('inp')).off(); + if (this.menu) { + this.menu.remove(); + } + this._super(); + } + }); + + var ColorBox = ComboBox.extend({ + init: function (settings) { + var self = this; + settings.spellcheck = false; + if (settings.onaction) { + settings.icon = 'none'; + } + self._super(settings); + self.classes.add('colorbox'); + self.on('change keyup postrender', function () { + self.repaintColor(self.value()); + }); + }, + repaintColor: function (value) { + var openElm = this.getEl('open'); + var elm = openElm ? openElm.getElementsByTagName('i')[0] : null; + if (elm) { + try { + elm.style.background = value; + } catch (ex) { + } + } + }, + bindStates: function () { + var self = this; + self.state.on('change:value', function (e) { + if (self.state.get('rendered')) { + self.repaintColor(e.value); + } + }); + return self._super(); + } + }); + + var PanelButton = Button.extend({ + showPanel: function () { + var self = this, settings = self.settings; + self.classes.add('opened'); + if (!self.panel) { + var panelSettings = settings.panel; + if (panelSettings.type) { + panelSettings = { + layout: 'grid', + items: panelSettings + }; + } + panelSettings.role = panelSettings.role || 'dialog'; + panelSettings.popover = true; + panelSettings.autohide = true; + panelSettings.ariaRoot = true; + self.panel = new FloatPanel(panelSettings).on('hide', function () { + self.classes.remove('opened'); + }).on('cancel', function (e) { + e.stopPropagation(); + self.focus(); + self.hidePanel(); + }).parent(self).renderTo(self.getContainerElm()); + self.panel.fire('show'); + self.panel.reflow(); + } else { + self.panel.show(); + } + var rtlRels = [ + 'bc-tc', + 'bc-tl', + 'bc-tr' + ]; + var ltrRels = [ + 'bc-tc', + 'bc-tr', + 'bc-tl', + 'tc-bc', + 'tc-br', + 'tc-bl' + ]; + var rel = self.panel.testMoveRel(self.getEl(), settings.popoverAlign || (self.isRtl() ? rtlRels : ltrRels)); + self.panel.classes.toggle('start', rel.substr(-1) === 'l'); + self.panel.classes.toggle('end', rel.substr(-1) === 'r'); + var isTop = rel.substr(0, 1) === 't'; + self.panel.classes.toggle('bottom', !isTop); + self.panel.classes.toggle('top', isTop); + self.panel.moveRel(self.getEl(), rel); + }, + hidePanel: function () { + var self = this; + if (self.panel) { + self.panel.hide(); + } + }, + postRender: function () { + var self = this; + self.aria('haspopup', true); + self.on('click', function (e) { + if (e.control === self) { + if (self.panel && self.panel.visible()) { + self.hidePanel(); + } else { + self.showPanel(); + self.panel.focus(!!e.aria); + } + } + }); + return self._super(); + }, + remove: function () { + if (this.panel) { + this.panel.remove(); + this.panel = null; + } + return this._super(); + } + }); + + var DOM$3 = global$3.DOM; + var ColorButton = PanelButton.extend({ + init: function (settings) { + this._super(settings); + this.classes.add('splitbtn'); + this.classes.add('colorbutton'); + }, + color: function (color) { + if (color) { + this._color = color; + this.getEl('preview').style.backgroundColor = color; + return this; + } + return this._color; + }, + resetColor: function () { + this._color = null; + this.getEl('preview').style.backgroundColor = null; + return this; + }, + renderHtml: function () { + var self = this, id = self._id, prefix = self.classPrefix, text = self.state.get('text'); + var icon = self.settings.icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : ''; + var image = self.settings.image ? ' style="background-image: url(\'' + self.settings.image + '\')"' : ''; + var textHtml = ''; + if (text) { + self.classes.add('btn-has-text'); + textHtml = '<span class="' + prefix + 'txt">' + self.encode(text) + '</span>'; + } + return '<div id="' + id + '" class="' + self.classes + '" role="button" tabindex="-1" aria-haspopup="true">' + '<button role="presentation" hidefocus="1" type="button" tabindex="-1">' + (icon ? '<i class="' + icon + '"' + image + '></i>' : '') + '<span id="' + id + '-preview" class="' + prefix + 'preview"></span>' + textHtml + '</button>' + '<button type="button" class="' + prefix + 'open" hidefocus="1" tabindex="-1">' + ' <i class="' + prefix + 'caret"></i>' + '</button>' + '</div>'; + }, + postRender: function () { + var self = this, onClickHandler = self.settings.onclick; + self.on('click', function (e) { + if (e.aria && e.aria.key === 'down') { + return; + } + if (e.control === self && !DOM$3.getParent(e.target, '.' + self.classPrefix + 'open')) { + e.stopImmediatePropagation(); + onClickHandler.call(self, e); + } + }); + delete self.settings.onclick; + return self._super(); + } + }); + + var global$14 = tinymce.util.Tools.resolve('tinymce.util.Color'); + + var ColorPicker = Widget.extend({ + Defaults: { classes: 'widget colorpicker' }, + init: function (settings) { + this._super(settings); + }, + postRender: function () { + var self = this; + var color = self.color(); + var hsv, hueRootElm, huePointElm, svRootElm, svPointElm; + hueRootElm = self.getEl('h'); + huePointElm = self.getEl('hp'); + svRootElm = self.getEl('sv'); + svPointElm = self.getEl('svp'); + function getPos(elm, event) { + var pos = funcs.getPos(elm); + var x, y; + x = event.pageX - pos.x; + y = event.pageY - pos.y; + x = Math.max(0, Math.min(x / elm.clientWidth, 1)); + y = Math.max(0, Math.min(y / elm.clientHeight, 1)); + return { + x: x, + y: y + }; + } + function updateColor(hsv, hueUpdate) { + var hue = (360 - hsv.h) / 360; + funcs.css(huePointElm, { top: hue * 100 + '%' }); + if (!hueUpdate) { + funcs.css(svPointElm, { + left: hsv.s + '%', + top: 100 - hsv.v + '%' + }); + } + svRootElm.style.background = global$14({ + s: 100, + v: 100, + h: hsv.h + }).toHex(); + self.color().parse({ + s: hsv.s, + v: hsv.v, + h: hsv.h + }); + } + function updateSaturationAndValue(e) { + var pos; + pos = getPos(svRootElm, e); + hsv.s = pos.x * 100; + hsv.v = (1 - pos.y) * 100; + updateColor(hsv); + self.fire('change'); + } + function updateHue(e) { + var pos; + pos = getPos(hueRootElm, e); + hsv = color.toHsv(); + hsv.h = (1 - pos.y) * 360; + updateColor(hsv, true); + self.fire('change'); + } + self._repaint = function () { + hsv = color.toHsv(); + updateColor(hsv); + }; + self._super(); + self._svdraghelper = new DragHelper(self._id + '-sv', { + start: updateSaturationAndValue, + drag: updateSaturationAndValue + }); + self._hdraghelper = new DragHelper(self._id + '-h', { + start: updateHue, + drag: updateHue + }); + self._repaint(); + }, + rgb: function () { + return this.color().toRgb(); + }, + value: function (value) { + var self = this; + if (arguments.length) { + self.color().parse(value); + if (self._rendered) { + self._repaint(); + } + } else { + return self.color().toHex(); + } + }, + color: function () { + if (!this._color) { + this._color = global$14(); + } + return this._color; + }, + renderHtml: function () { + var self = this; + var id = self._id; + var prefix = self.classPrefix; + var hueHtml; + var stops = '#ff0000,#ff0080,#ff00ff,#8000ff,#0000ff,#0080ff,#00ffff,#00ff80,#00ff00,#80ff00,#ffff00,#ff8000,#ff0000'; + function getOldIeFallbackHtml() { + var i, l, html = '', gradientPrefix, stopsList; + gradientPrefix = 'filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='; + stopsList = stops.split(','); + for (i = 0, l = stopsList.length - 1; i < l; i++) { + html += '<div class="' + prefix + 'colorpicker-h-chunk" style="' + 'height:' + 100 / l + '%;' + gradientPrefix + stopsList[i] + ',endColorstr=' + stopsList[i + 1] + ');' + '-ms-' + gradientPrefix + stopsList[i] + ',endColorstr=' + stopsList[i + 1] + ')' + '"></div>'; + } + return html; + } + var gradientCssText = 'background: -ms-linear-gradient(top,' + stops + ');' + 'background: linear-gradient(to bottom,' + stops + ');'; + hueHtml = '<div id="' + id + '-h" class="' + prefix + 'colorpicker-h" style="' + gradientCssText + '">' + getOldIeFallbackHtml() + '<div id="' + id + '-hp" class="' + prefix + 'colorpicker-h-marker"></div>' + '</div>'; + return '<div id="' + id + '" class="' + self.classes + '">' + '<div id="' + id + '-sv" class="' + prefix + 'colorpicker-sv">' + '<div class="' + prefix + 'colorpicker-overlay1">' + '<div class="' + prefix + 'colorpicker-overlay2">' + '<div id="' + id + '-svp" class="' + prefix + 'colorpicker-selector1">' + '<div class="' + prefix + 'colorpicker-selector2"></div>' + '</div>' + '</div>' + '</div>' + '</div>' + hueHtml + '</div>'; + } + }); + + var DropZone = Widget.extend({ + init: function (settings) { + var self = this; + settings = global$2.extend({ + height: 100, + text: 'Drop an image here', + multiple: false, + accept: null + }, settings); + self._super(settings); + self.classes.add('dropzone'); + if (settings.multiple) { + self.classes.add('multiple'); + } + }, + renderHtml: function () { + var self = this; + var attrs, elm; + var cfg = self.settings; + attrs = { + id: self._id, + hidefocus: '1' + }; + elm = funcs.create('div', attrs, '<span>' + this.translate(cfg.text) + '</span>'); + if (cfg.height) { + funcs.css(elm, 'height', cfg.height + 'px'); + } + if (cfg.width) { + funcs.css(elm, 'width', cfg.width + 'px'); + } + elm.className = self.classes; + return elm.outerHTML; + }, + postRender: function () { + var self = this; + var toggleDragClass = function (e) { + e.preventDefault(); + self.classes.toggle('dragenter'); + self.getEl().className = self.classes; + }; + var filter = function (files) { + var accept = self.settings.accept; + if (typeof accept !== 'string') { + return files; + } + var re = new RegExp('(' + accept.split(/\s*,\s*/).join('|') + ')$', 'i'); + return global$2.grep(files, function (file) { + return re.test(file.name); + }); + }; + self._super(); + self.$el.on('dragover', function (e) { + e.preventDefault(); + }); + self.$el.on('dragenter', toggleDragClass); + self.$el.on('dragleave', toggleDragClass); + self.$el.on('drop', function (e) { + e.preventDefault(); + if (self.state.get('disabled')) { + return; + } + var files = filter(e.dataTransfer.files); + self.value = function () { + if (!files.length) { + return null; + } else if (self.settings.multiple) { + return files; + } else { + return files[0]; + } + }; + if (files.length) { + self.fire('change', e); + } + }); + }, + remove: function () { + this.$el.off(); + this._super(); + } + }); + + var Path = Widget.extend({ + init: function (settings) { + var self = this; + if (!settings.delimiter) { + settings.delimiter = '\xBB'; + } + self._super(settings); + self.classes.add('path'); + self.canFocus = true; + self.on('click', function (e) { + var index; + var target = e.target; + if (index = target.getAttribute('data-index')) { + self.fire('select', { + value: self.row()[index], + index: index + }); + } + }); + self.row(self.settings.row); + }, + focus: function () { + var self = this; + self.getEl().firstChild.focus(); + return self; + }, + row: function (row) { + if (!arguments.length) { + return this.state.get('row'); + } + this.state.set('row', row); + return this; + }, + renderHtml: function () { + var self = this; + return '<div id="' + self._id + '" class="' + self.classes + '">' + self._getDataPathHtml(self.state.get('row')) + '</div>'; + }, + bindStates: function () { + var self = this; + self.state.on('change:row', function (e) { + self.innerHtml(self._getDataPathHtml(e.value)); + }); + return self._super(); + }, + _getDataPathHtml: function (data) { + var self = this; + var parts = data || []; + var i, l, html = ''; + var prefix = self.classPrefix; + for (i = 0, l = parts.length; i < l; i++) { + html += (i > 0 ? '<div class="' + prefix + 'divider" aria-hidden="true"> ' + self.settings.delimiter + ' </div>' : '') + '<div role="button" class="' + prefix + 'path-item' + (i === l - 1 ? ' ' + prefix + 'last' : '') + '" data-index="' + i + '" tabindex="-1" id="' + self._id + '-' + i + '" aria-level="' + (i + 1) + '">' + parts[i].name + '</div>'; + } + if (!html) { + html = '<div class="' + prefix + 'path-item">\xA0</div>'; + } + return html; + } + }); + + var ElementPath = Path.extend({ + postRender: function () { + var self = this, editor = self.settings.editor; + function isHidden(elm) { + if (elm.nodeType === 1) { + if (elm.nodeName === 'BR' || !!elm.getAttribute('data-mce-bogus')) { + return true; + } + if (elm.getAttribute('data-mce-type') === 'bookmark') { + return true; + } + } + return false; + } + if (editor.settings.elementpath !== false) { + self.on('select', function (e) { + editor.focus(); + editor.selection.select(this.row()[e.index].element); + editor.nodeChanged(); + }); + editor.on('nodeChange', function (e) { + var outParents = []; + var parents = e.parents; + var i = parents.length; + while (i--) { + if (parents[i].nodeType === 1 && !isHidden(parents[i])) { + var args = editor.fire('ResolveName', { + name: parents[i].nodeName.toLowerCase(), + target: parents[i] + }); + if (!args.isDefaultPrevented()) { + outParents.push({ + name: args.name, + element: parents[i] + }); + } + if (args.isPropagationStopped()) { + break; + } + } + } + self.row(outParents); + }); + } + return self._super(); + } + }); + + var FormItem = Container.extend({ + Defaults: { + layout: 'flex', + align: 'center', + defaults: { flex: 1 } + }, + renderHtml: function () { + var self = this, layout = self._layout, prefix = self.classPrefix; + self.classes.add('formitem'); + layout.preRender(self); + return '<div id="' + self._id + '" class="' + self.classes + '" hidefocus="1" tabindex="-1">' + (self.settings.title ? '<div id="' + self._id + '-title" class="' + prefix + 'title">' + self.settings.title + '</div>' : '') + '<div id="' + self._id + '-body" class="' + self.bodyClasses + '">' + (self.settings.html || '') + layout.renderHtml(self) + '</div>' + '</div>'; + } + }); + + var Form = Container.extend({ + Defaults: { + containerCls: 'form', + layout: 'flex', + direction: 'column', + align: 'stretch', + flex: 1, + padding: 15, + labelGap: 30, + spacing: 10, + callbacks: { + submit: function () { + this.submit(); + } + } + }, + preRender: function () { + var self = this, items = self.items(); + if (!self.settings.formItemDefaults) { + self.settings.formItemDefaults = { + layout: 'flex', + autoResize: 'overflow', + defaults: { flex: 1 } + }; + } + items.each(function (ctrl) { + var formItem; + var label = ctrl.settings.label; + if (label) { + formItem = new FormItem(global$2.extend({ + items: { + type: 'label', + id: ctrl._id + '-l', + text: label, + flex: 0, + forId: ctrl._id, + disabled: ctrl.disabled() + } + }, self.settings.formItemDefaults)); + formItem.type = 'formitem'; + ctrl.aria('labelledby', ctrl._id + '-l'); + if (typeof ctrl.settings.flex === 'undefined') { + ctrl.settings.flex = 1; + } + self.replace(ctrl, formItem); + formItem.add(ctrl); + } + }); + }, + submit: function () { + return this.fire('submit', { data: this.toJSON() }); + }, + postRender: function () { + var self = this; + self._super(); + self.fromJSON(self.settings.data); + }, + bindStates: function () { + var self = this; + self._super(); + function recalcLabels() { + var maxLabelWidth = 0; + var labels = []; + var i, labelGap, items; + if (self.settings.labelGapCalc === false) { + return; + } + if (self.settings.labelGapCalc === 'children') { + items = self.find('formitem'); + } else { + items = self.items(); + } + items.filter('formitem').each(function (item) { + var labelCtrl = item.items()[0], labelWidth = labelCtrl.getEl().clientWidth; + maxLabelWidth = labelWidth > maxLabelWidth ? labelWidth : maxLabelWidth; + labels.push(labelCtrl); + }); + labelGap = self.settings.labelGap || 0; + i = labels.length; + while (i--) { + labels[i].settings.minWidth = maxLabelWidth + labelGap; + } + } + self.on('show', recalcLabels); + recalcLabels(); + } + }); + + var FieldSet = Form.extend({ + Defaults: { + containerCls: 'fieldset', + layout: 'flex', + direction: 'column', + align: 'stretch', + flex: 1, + padding: '25 15 5 15', + labelGap: 30, + spacing: 10, + border: 1 + }, + renderHtml: function () { + var self = this, layout = self._layout, prefix = self.classPrefix; + self.preRender(); + layout.preRender(self); + return '<fieldset id="' + self._id + '" class="' + self.classes + '" hidefocus="1" tabindex="-1">' + (self.settings.title ? '<legend id="' + self._id + '-title" class="' + prefix + 'fieldset-title">' + self.settings.title + '</legend>' : '') + '<div id="' + self._id + '-body" class="' + self.bodyClasses + '">' + (self.settings.html || '') + layout.renderHtml(self) + '</div>' + '</fieldset>'; + } + }); + + var unique$1 = 0; + var generate = function (prefix) { + var date = new Date(); + var time = date.getTime(); + var random = Math.floor(Math.random() * 1000000000); + unique$1++; + return prefix + '_' + random + unique$1 + String(time); + }; + var $_8smsfouyjfuw8sjg = { generate: generate }; + + var fromHtml = function (html, scope) { + var doc = scope || document; + var div = doc.createElement('div'); + div.innerHTML = html; + if (!div.hasChildNodes() || div.childNodes.length > 1) { + console.error('HTML does not have a single root node', html); + throw 'HTML must have a single root node'; + } + return fromDom(div.childNodes[0]); + }; + var fromTag = function (tag, scope) { + var doc = scope || document; + var node = doc.createElement(tag); + return fromDom(node); + }; + var fromText = function (text, scope) { + var doc = scope || document; + var node = doc.createTextNode(text); + return fromDom(node); + }; + var fromDom = function (node) { + if (node === null || node === undefined) + throw new Error('Node cannot be null or undefined'); + return { dom: $_cun2p5t7jfuw8scg.constant(node) }; + }; + var fromPoint = function (doc, x, y) { + return Option.from(doc.dom().elementFromPoint(x, y)).map(fromDom); + }; + var $_5ny1kxuzjfuw8sjh = { + fromHtml: fromHtml, + fromTag: fromTag, + fromText: fromText, + fromDom: fromDom, + fromPoint: fromPoint + }; + + var cached = function (f) { + var called = false; + var r; + return function () { + if (!called) { + called = true; + r = f.apply(null, arguments); + } + return r; + }; + }; + var $_bbc6ssv3jfuw8sjw = { cached: cached }; + + var $_4uam9lv5jfuw8sjy = { + ATTRIBUTE: 2, + CDATA_SECTION: 4, + COMMENT: 8, + DOCUMENT: 9, + DOCUMENT_TYPE: 10, + DOCUMENT_FRAGMENT: 11, + ELEMENT: 1, + TEXT: 3, + PROCESSING_INSTRUCTION: 7, + ENTITY_REFERENCE: 5, + ENTITY: 6, + NOTATION: 12 + }; + + var name = function (element) { + var r = element.dom().nodeName; + return r.toLowerCase(); + }; + var type = function (element) { + return element.dom().nodeType; + }; + var value = function (element) { + return element.dom().nodeValue; + }; + var isType$1 = function (t) { + return function (element) { + return type(element) === t; + }; + }; + var isComment = function (element) { + return type(element) === $_4uam9lv5jfuw8sjy.COMMENT || name(element) === '#comment'; + }; + var isElement = isType$1($_4uam9lv5jfuw8sjy.ELEMENT); + var isText = isType$1($_4uam9lv5jfuw8sjy.TEXT); + var isDocument = isType$1($_4uam9lv5jfuw8sjy.DOCUMENT); + var $_a011ldv4jfuw8sjx = { + name: name, + type: type, + value: value, + isElement: isElement, + isText: isText, + isDocument: isDocument, + isComment: isComment + }; + + var inBody = function (element) { + var dom = $_a011ldv4jfuw8sjx.isText(element) ? element.dom().parentNode : element.dom(); + return dom !== undefined && dom !== null && dom.ownerDocument.body.contains(dom); + }; + var body = $_bbc6ssv3jfuw8sjw.cached(function () { + return getBody($_5ny1kxuzjfuw8sjh.fromDom(document)); + }); + var getBody = function (doc) { + var body = doc.dom().body; + if (body === null || body === undefined) + throw 'Body is not available yet'; + return $_5ny1kxuzjfuw8sjh.fromDom(body); + }; + var $_c59f72v2jfuw8sjt = { + body: body, + getBody: getBody, + inBody: inBody + }; + + function Immutable () { + var fields = []; + for (var _i = 0; _i < arguments.length; _i++) { + fields[_i] = arguments[_i]; + } + return function () { + var values = []; + for (var _i = 0; _i < arguments.length; _i++) { + values[_i] = arguments[_i]; + } + if (fields.length !== values.length) { + throw new Error('Wrong number of arguments to struct. Expected "[' + fields.length + ']", got ' + values.length + ' arguments'); + } + var struct = {}; + $_anxm1mtajfuw8sct.each(fields, function (name, i) { + struct[name] = $_cun2p5t7jfuw8scg.constant(values[i]); + }); + return struct; + }; + } + + var keys = function () { + var fastKeys = Object.keys; + var slowKeys = function (o) { + var r = []; + for (var i in o) { + if (o.hasOwnProperty(i)) { + r.push(i); + } + } + return r; + }; + return fastKeys === undefined ? slowKeys : fastKeys; + }(); + var each$1 = function (obj, f) { + var props = keys(obj); + for (var k = 0, len = props.length; k < len; k++) { + var i = props[k]; + var x = obj[i]; + f(x, i, obj); + } + }; + var objectMap = function (obj, f) { + return tupleMap(obj, function (x, i, obj) { + return { + k: i, + v: f(x, i, obj) + }; + }); + }; + var tupleMap = function (obj, f) { + var r = {}; + each$1(obj, function (x, i) { + var tuple = f(x, i, obj); + r[tuple.k] = tuple.v; + }); + return r; + }; + var bifilter = function (obj, pred) { + var t = {}; + var f = {}; + each$1(obj, function (x, i) { + var branch = pred(x, i) ? t : f; + branch[i] = x; + }); + return { + t: t, + f: f + }; + }; + var mapToArray = function (obj, f) { + var r = []; + each$1(obj, function (value, name) { + r.push(f(value, name)); + }); + return r; + }; + var find$1 = function (obj, pred) { + var props = keys(obj); + for (var k = 0, len = props.length; k < len; k++) { + var i = props[k]; + var x = obj[i]; + if (pred(x, i, obj)) { + return Option.some(x); + } + } + return Option.none(); + }; + var values = function (obj) { + return mapToArray(obj, function (v) { + return v; + }); + }; + var size = function (obj) { + return values(obj).length; + }; + var $_5cwil8vajfuw8skk = { + bifilter: bifilter, + each: each$1, + map: objectMap, + mapToArray: mapToArray, + tupleMap: tupleMap, + find: find$1, + keys: keys, + values: values, + size: size + }; + + var sort$1 = function (arr) { + return arr.slice(0).sort(); + }; + var reqMessage = function (required, keys) { + throw new Error('All required keys (' + sort$1(required).join(', ') + ') were not specified. Specified keys were: ' + sort$1(keys).join(', ') + '.'); + }; + var unsuppMessage = function (unsupported) { + throw new Error('Unsupported keys for object: ' + sort$1(unsupported).join(', ')); + }; + var validateStrArr = function (label, array) { + if (!$_e8diihtbjfuw8scy.isArray(array)) + throw new Error('The ' + label + ' fields must be an array. Was: ' + array + '.'); + $_anxm1mtajfuw8sct.each(array, function (a) { + if (!$_e8diihtbjfuw8scy.isString(a)) + throw new Error('The value ' + a + ' in the ' + label + ' fields was not a string.'); + }); + }; + var invalidTypeMessage = function (incorrect, type) { + throw new Error('All values need to be of type: ' + type + '. Keys (' + sort$1(incorrect).join(', ') + ') were not.'); + }; + var checkDupes = function (everything) { + var sorted = sort$1(everything); + var dupe = $_anxm1mtajfuw8sct.find(sorted, function (s, i) { + return i < sorted.length - 1 && s === sorted[i + 1]; + }); + dupe.each(function (d) { + throw new Error('The field: ' + d + ' occurs more than once in the combined fields: [' + sorted.join(', ') + '].'); + }); + }; + var $_2epjibvbjfuw8skm = { + sort: sort$1, + reqMessage: reqMessage, + unsuppMessage: unsuppMessage, + validateStrArr: validateStrArr, + invalidTypeMessage: invalidTypeMessage, + checkDupes: checkDupes + }; + + function MixedBag (required, optional) { + var everything = required.concat(optional); + if (everything.length === 0) + throw new Error('You must specify at least one required or optional field.'); + $_2epjibvbjfuw8skm.validateStrArr('required', required); + $_2epjibvbjfuw8skm.validateStrArr('optional', optional); + $_2epjibvbjfuw8skm.checkDupes(everything); + return function (obj) { + var keys = $_5cwil8vajfuw8skk.keys(obj); + var allReqd = $_anxm1mtajfuw8sct.forall(required, function (req) { + return $_anxm1mtajfuw8sct.contains(keys, req); + }); + if (!allReqd) + $_2epjibvbjfuw8skm.reqMessage(required, keys); + var unsupported = $_anxm1mtajfuw8sct.filter(keys, function (key) { + return !$_anxm1mtajfuw8sct.contains(everything, key); + }); + if (unsupported.length > 0) + $_2epjibvbjfuw8skm.unsuppMessage(unsupported); + var r = {}; + $_anxm1mtajfuw8sct.each(required, function (req) { + r[req] = $_cun2p5t7jfuw8scg.constant(obj[req]); + }); + $_anxm1mtajfuw8sct.each(optional, function (opt) { + r[opt] = $_cun2p5t7jfuw8scg.constant(Object.prototype.hasOwnProperty.call(obj, opt) ? Option.some(obj[opt]) : Option.none()); + }); + return r; + }; + } + + var $_1qtvc5v7jfuw8ske = { + immutable: Immutable, + immutableBag: MixedBag + }; + + var toArray = function (target, f) { + var r = []; + var recurse = function (e) { + r.push(e); + return f(e); + }; + var cur = f(target); + do { + cur = cur.bind(recurse); + } while (cur.isSome()); + return r; + }; + var $_ds6cwivcjfuw8sko = { toArray: toArray }; + + var global$15 = typeof window !== 'undefined' ? window : Function('return this;')(); + + var path = function (parts, scope) { + var o = scope !== undefined && scope !== null ? scope : global$15; + for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i) + o = o[parts[i]]; + return o; + }; + var resolve = function (p, scope) { + var parts = p.split('.'); + return path(parts, scope); + }; + var step = function (o, part) { + if (o[part] === undefined || o[part] === null) + o[part] = {}; + return o[part]; + }; + var forge = function (parts, target) { + var o = target !== undefined ? target : global$15; + for (var i = 0; i < parts.length; ++i) + o = step(o, parts[i]); + return o; + }; + var namespace = function (name, target) { + var parts = name.split('.'); + return forge(parts, target); + }; + var $_3zodh3vgjfuw8slc = { + path: path, + resolve: resolve, + forge: forge, + namespace: namespace + }; + + var unsafe = function (name, scope) { + return $_3zodh3vgjfuw8slc.resolve(name, scope); + }; + var getOrDie = function (name, scope) { + var actual = unsafe(name, scope); + if (actual === undefined || actual === null) + throw name + ' not available on this browser'; + return actual; + }; + var $_b2mlbvvfjfuw8sl9 = { getOrDie: getOrDie }; + + var node = function () { + var f = $_b2mlbvvfjfuw8sl9.getOrDie('Node'); + return f; + }; + var compareDocumentPosition = function (a, b, match) { + return (a.compareDocumentPosition(b) & match) !== 0; + }; + var documentPositionPreceding = function (a, b) { + return compareDocumentPosition(a, b, node().DOCUMENT_POSITION_PRECEDING); + }; + var documentPositionContainedBy = function (a, b) { + return compareDocumentPosition(a, b, node().DOCUMENT_POSITION_CONTAINED_BY); + }; + var $_9ssw9yvejfuw8sl8 = { + documentPositionPreceding: documentPositionPreceding, + documentPositionContainedBy: documentPositionContainedBy + }; + + var firstMatch = function (regexes, s) { + for (var i = 0; i < regexes.length; i++) { + var x = regexes[i]; + if (x.test(s)) + return x; + } + return undefined; + }; + var find$2 = function (regexes, agent) { + var r = firstMatch(regexes, agent); + if (!r) + return { + major: 0, + minor: 0 + }; + var group = function (i) { + return Number(agent.replace(r, '$' + i)); + }; + return nu(group(1), group(2)); + }; + var detect = function (versionRegexes, agent) { + var cleanedAgent = String(agent).toLowerCase(); + if (versionRegexes.length === 0) + return unknown(); + return find$2(versionRegexes, cleanedAgent); + }; + var unknown = function () { + return nu(0, 0); + }; + var nu = function (major, minor) { + return { + major: major, + minor: minor + }; + }; + var $_cb8wvsvljfuw8slm = { + nu: nu, + detect: detect, + unknown: unknown + }; + + var edge = 'Edge'; + var chrome = 'Chrome'; + var ie = 'IE'; + var opera = 'Opera'; + var firefox = 'Firefox'; + var safari = 'Safari'; + var isBrowser = function (name, current) { + return function () { + return current === name; + }; + }; + var unknown$1 = function () { + return nu$1({ + current: undefined, + version: $_cb8wvsvljfuw8slm.unknown() + }); + }; + var nu$1 = function (info) { + var current = info.current; + var version = info.version; + return { + current: current, + version: version, + isEdge: isBrowser(edge, current), + isChrome: isBrowser(chrome, current), + isIE: isBrowser(ie, current), + isOpera: isBrowser(opera, current), + isFirefox: isBrowser(firefox, current), + isSafari: isBrowser(safari, current) + }; + }; + var $_5l1g9dvkjfuw8slj = { + unknown: unknown$1, + nu: nu$1, + edge: $_cun2p5t7jfuw8scg.constant(edge), + chrome: $_cun2p5t7jfuw8scg.constant(chrome), + ie: $_cun2p5t7jfuw8scg.constant(ie), + opera: $_cun2p5t7jfuw8scg.constant(opera), + firefox: $_cun2p5t7jfuw8scg.constant(firefox), + safari: $_cun2p5t7jfuw8scg.constant(safari) + }; + + var windows$1 = 'Windows'; + var ios = 'iOS'; + var android = 'Android'; + var linux = 'Linux'; + var osx = 'OSX'; + var solaris = 'Solaris'; + var freebsd = 'FreeBSD'; + var isOS = function (name, current) { + return function () { + return current === name; + }; + }; + var unknown$2 = function () { + return nu$2({ + current: undefined, + version: $_cb8wvsvljfuw8slm.unknown() + }); + }; + var nu$2 = function (info) { + var current = info.current; + var version = info.version; + return { + current: current, + version: version, + isWindows: isOS(windows$1, current), + isiOS: isOS(ios, current), + isAndroid: isOS(android, current), + isOSX: isOS(osx, current), + isLinux: isOS(linux, current), + isSolaris: isOS(solaris, current), + isFreeBSD: isOS(freebsd, current) + }; + }; + var $_ej30zjvmjfuw8sln = { + unknown: unknown$2, + nu: nu$2, + windows: $_cun2p5t7jfuw8scg.constant(windows$1), + ios: $_cun2p5t7jfuw8scg.constant(ios), + android: $_cun2p5t7jfuw8scg.constant(android), + linux: $_cun2p5t7jfuw8scg.constant(linux), + osx: $_cun2p5t7jfuw8scg.constant(osx), + solaris: $_cun2p5t7jfuw8scg.constant(solaris), + freebsd: $_cun2p5t7jfuw8scg.constant(freebsd) + }; + + function DeviceType (os, browser, userAgent) { + var isiPad = os.isiOS() && /ipad/i.test(userAgent) === true; + var isiPhone = os.isiOS() && !isiPad; + var isAndroid3 = os.isAndroid() && os.version.major === 3; + var isAndroid4 = os.isAndroid() && os.version.major === 4; + var isTablet = isiPad || isAndroid3 || isAndroid4 && /mobile/i.test(userAgent) === true; + var isTouch = os.isiOS() || os.isAndroid(); + var isPhone = isTouch && !isTablet; + var iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false; + return { + isiPad: $_cun2p5t7jfuw8scg.constant(isiPad), + isiPhone: $_cun2p5t7jfuw8scg.constant(isiPhone), + isTablet: $_cun2p5t7jfuw8scg.constant(isTablet), + isPhone: $_cun2p5t7jfuw8scg.constant(isPhone), + isTouch: $_cun2p5t7jfuw8scg.constant(isTouch), + isAndroid: os.isAndroid, + isiOS: os.isiOS, + isWebView: $_cun2p5t7jfuw8scg.constant(iOSwebview) + }; + } + + var detect$1 = function (candidates, userAgent) { + var agent = String(userAgent).toLowerCase(); + return $_anxm1mtajfuw8sct.find(candidates, function (candidate) { + return candidate.search(agent); + }); + }; + var detectBrowser = function (browsers, userAgent) { + return detect$1(browsers, userAgent).map(function (browser) { + var version = $_cb8wvsvljfuw8slm.detect(browser.versionRegexes, userAgent); + return { + current: browser.name, + version: version + }; + }); + }; + var detectOs = function (oses, userAgent) { + return detect$1(oses, userAgent).map(function (os) { + var version = $_cb8wvsvljfuw8slm.detect(os.versionRegexes, userAgent); + return { + current: os.name, + version: version + }; + }); + }; + var $_1rd3rvvojfuw8slu = { + detectBrowser: detectBrowser, + detectOs: detectOs + }; + + var addToStart = function (str, prefix) { + return prefix + str; + }; + var addToEnd = function (str, suffix) { + return str + suffix; + }; + var removeFromStart = function (str, numChars) { + return str.substring(numChars); + }; + var removeFromEnd = function (str, numChars) { + return str.substring(0, str.length - numChars); + }; + var $_56mt3mvrjfuw8sm6 = { + addToStart: addToStart, + addToEnd: addToEnd, + removeFromStart: removeFromStart, + removeFromEnd: removeFromEnd + }; + + var first = function (str, count) { + return str.substr(0, count); + }; + var last$1 = function (str, count) { + return str.substr(str.length - count, str.length); + }; + var head$1 = function (str) { + return str === '' ? Option.none() : Option.some(str.substr(0, 1)); + }; + var tail = function (str) { + return str === '' ? Option.none() : Option.some(str.substring(1)); + }; + var $_7bobc1vsjfuw8sm7 = { + first: first, + last: last$1, + head: head$1, + tail: tail + }; + + var checkRange = function (str, substr, start) { + if (substr === '') + return true; + if (str.length < substr.length) + return false; + var x = str.substr(start, start + substr.length); + return x === substr; + }; + var supplant = function (str, obj) { + var isStringOrNumber = function (a) { + var t = typeof a; + return t === 'string' || t === 'number'; + }; + return str.replace(/\${([^{}]*)}/g, function (a, b) { + var value = obj[b]; + return isStringOrNumber(value) ? value : a; + }); + }; + var removeLeading = function (str, prefix) { + return startsWith(str, prefix) ? $_56mt3mvrjfuw8sm6.removeFromStart(str, prefix.length) : str; + }; + var removeTrailing = function (str, prefix) { + return endsWith(str, prefix) ? $_56mt3mvrjfuw8sm6.removeFromEnd(str, prefix.length) : str; + }; + var ensureLeading = function (str, prefix) { + return startsWith(str, prefix) ? str : $_56mt3mvrjfuw8sm6.addToStart(str, prefix); + }; + var ensureTrailing = function (str, prefix) { + return endsWith(str, prefix) ? str : $_56mt3mvrjfuw8sm6.addToEnd(str, prefix); + }; + var contains$1 = function (str, substr) { + return str.indexOf(substr) !== -1; + }; + var capitalize = function (str) { + return $_7bobc1vsjfuw8sm7.head(str).bind(function (head) { + return $_7bobc1vsjfuw8sm7.tail(str).map(function (tail) { + return head.toUpperCase() + tail; + }); + }).getOr(str); + }; + var startsWith = function (str, prefix) { + return checkRange(str, prefix, 0); + }; + var endsWith = function (str, suffix) { + return checkRange(str, suffix, str.length - suffix.length); + }; + var trim = function (str) { + return str.replace(/^\s+|\s+$/g, ''); + }; + var lTrim = function (str) { + return str.replace(/^\s+/g, ''); + }; + var rTrim = function (str) { + return str.replace(/\s+$/g, ''); + }; + var $_8evc57vqjfuw8sm4 = { + supplant: supplant, + startsWith: startsWith, + removeLeading: removeLeading, + removeTrailing: removeTrailing, + ensureLeading: ensureLeading, + ensureTrailing: ensureTrailing, + endsWith: endsWith, + contains: contains$1, + trim: trim, + lTrim: lTrim, + rTrim: rTrim, + capitalize: capitalize + }; + + var normalVersionRegex = /.*?version\/\ ?([0-9]+)\.([0-9]+).*/; + var checkContains = function (target) { + return function (uastring) { + return $_8evc57vqjfuw8sm4.contains(uastring, target); + }; + }; + var browsers = [ + { + name: 'Edge', + versionRegexes: [/.*?edge\/ ?([0-9]+)\.([0-9]+)$/], + search: function (uastring) { + var monstrosity = $_8evc57vqjfuw8sm4.contains(uastring, 'edge/') && $_8evc57vqjfuw8sm4.contains(uastring, 'chrome') && $_8evc57vqjfuw8sm4.contains(uastring, 'safari') && $_8evc57vqjfuw8sm4.contains(uastring, 'applewebkit'); + return monstrosity; + } + }, + { + name: 'Chrome', + versionRegexes: [ + /.*?chrome\/([0-9]+)\.([0-9]+).*/, + normalVersionRegex + ], + search: function (uastring) { + return $_8evc57vqjfuw8sm4.contains(uastring, 'chrome') && !$_8evc57vqjfuw8sm4.contains(uastring, 'chromeframe'); + } + }, + { + name: 'IE', + versionRegexes: [ + /.*?msie\ ?([0-9]+)\.([0-9]+).*/, + /.*?rv:([0-9]+)\.([0-9]+).*/ + ], + search: function (uastring) { + return $_8evc57vqjfuw8sm4.contains(uastring, 'msie') || $_8evc57vqjfuw8sm4.contains(uastring, 'trident'); + } + }, + { + name: 'Opera', + versionRegexes: [ + normalVersionRegex, + /.*?opera\/([0-9]+)\.([0-9]+).*/ + ], + search: checkContains('opera') + }, + { + name: 'Firefox', + versionRegexes: [/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/], + search: checkContains('firefox') + }, + { + name: 'Safari', + versionRegexes: [ + normalVersionRegex, + /.*?cpu os ([0-9]+)_([0-9]+).*/ + ], + search: function (uastring) { + return ($_8evc57vqjfuw8sm4.contains(uastring, 'safari') || $_8evc57vqjfuw8sm4.contains(uastring, 'mobile/')) && $_8evc57vqjfuw8sm4.contains(uastring, 'applewebkit'); + } + } + ]; + var oses = [ + { + name: 'Windows', + search: checkContains('win'), + versionRegexes: [/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/] + }, + { + name: 'iOS', + search: function (uastring) { + return $_8evc57vqjfuw8sm4.contains(uastring, 'iphone') || $_8evc57vqjfuw8sm4.contains(uastring, 'ipad'); + }, + versionRegexes: [ + /.*?version\/\ ?([0-9]+)\.([0-9]+).*/, + /.*cpu os ([0-9]+)_([0-9]+).*/, + /.*cpu iphone os ([0-9]+)_([0-9]+).*/ + ] + }, + { + name: 'Android', + search: checkContains('android'), + versionRegexes: [/.*?android\ ?([0-9]+)\.([0-9]+).*/] + }, + { + name: 'OSX', + search: checkContains('os x'), + versionRegexes: [/.*?os\ x\ ?([0-9]+)_([0-9]+).*/] + }, + { + name: 'Linux', + search: checkContains('linux'), + versionRegexes: [] + }, + { + name: 'Solaris', + search: checkContains('sunos'), + versionRegexes: [] + }, + { + name: 'FreeBSD', + search: checkContains('freebsd'), + versionRegexes: [] + } + ]; + var $_60mzbrvpjfuw8sly = { + browsers: $_cun2p5t7jfuw8scg.constant(browsers), + oses: $_cun2p5t7jfuw8scg.constant(oses) + }; + + var detect$2 = function (userAgent) { + var browsers = $_60mzbrvpjfuw8sly.browsers(); + var oses = $_60mzbrvpjfuw8sly.oses(); + var browser = $_1rd3rvvojfuw8slu.detectBrowser(browsers, userAgent).fold($_5l1g9dvkjfuw8slj.unknown, $_5l1g9dvkjfuw8slj.nu); + var os = $_1rd3rvvojfuw8slu.detectOs(oses, userAgent).fold($_ej30zjvmjfuw8sln.unknown, $_ej30zjvmjfuw8sln.nu); + var deviceType = DeviceType(os, browser, userAgent); + return { + browser: browser, + os: os, + deviceType: deviceType + }; + }; + var $_486hpkvjjfuw8slh = { detect: detect$2 }; + + var detect$3 = $_bbc6ssv3jfuw8sjw.cached(function () { + var userAgent = navigator.userAgent; + return $_486hpkvjjfuw8slh.detect(userAgent); + }); + var $_cnts0hvijfuw8sle = { detect: detect$3 }; + + var ELEMENT = $_4uam9lv5jfuw8sjy.ELEMENT; + var DOCUMENT = $_4uam9lv5jfuw8sjy.DOCUMENT; + var is = function (element, selector) { + var elem = element.dom(); + if (elem.nodeType !== ELEMENT) + return false; + else if (elem.matches !== undefined) + return elem.matches(selector); + else if (elem.msMatchesSelector !== undefined) + return elem.msMatchesSelector(selector); + else if (elem.webkitMatchesSelector !== undefined) + return elem.webkitMatchesSelector(selector); + else if (elem.mozMatchesSelector !== undefined) + return elem.mozMatchesSelector(selector); + else + throw new Error('Browser lacks native selectors'); + }; + var bypassSelector = function (dom) { + return dom.nodeType !== ELEMENT && dom.nodeType !== DOCUMENT || dom.childElementCount === 0; + }; + var all = function (selector, scope) { + var base = scope === undefined ? document : scope.dom(); + return bypassSelector(base) ? [] : $_anxm1mtajfuw8sct.map(base.querySelectorAll(selector), $_5ny1kxuzjfuw8sjh.fromDom); + }; + var one = function (selector, scope) { + var base = scope === undefined ? document : scope.dom(); + return bypassSelector(base) ? Option.none() : Option.from(base.querySelector(selector)).map($_5ny1kxuzjfuw8sjh.fromDom); + }; + var $_cy5apxvtjfuw8sm8 = { + all: all, + is: is, + one: one + }; + + var eq = function (e1, e2) { + return e1.dom() === e2.dom(); + }; + var isEqualNode = function (e1, e2) { + return e1.dom().isEqualNode(e2.dom()); + }; + var member = function (element, elements) { + return $_anxm1mtajfuw8sct.exists(elements, $_cun2p5t7jfuw8scg.curry(eq, element)); + }; + var regularContains = function (e1, e2) { + var d1 = e1.dom(), d2 = e2.dom(); + return d1 === d2 ? false : d1.contains(d2); + }; + var ieContains = function (e1, e2) { + return $_9ssw9yvejfuw8sl8.documentPositionContainedBy(e1.dom(), e2.dom()); + }; + var browser = $_cnts0hvijfuw8sle.detect().browser; + var contains$2 = browser.isIE() ? ieContains : regularContains; + var $_22fg4zvdjfuw8skq = { + eq: eq, + isEqualNode: isEqualNode, + member: member, + contains: contains$2, + is: $_cy5apxvtjfuw8sm8.is + }; + + var owner = function (element) { + return $_5ny1kxuzjfuw8sjh.fromDom(element.dom().ownerDocument); + }; + var documentElement = function (element) { + var doc = owner(element); + return $_5ny1kxuzjfuw8sjh.fromDom(doc.dom().documentElement); + }; + var defaultView = function (element) { + var el = element.dom(); + var defaultView = el.ownerDocument.defaultView; + return $_5ny1kxuzjfuw8sjh.fromDom(defaultView); + }; + var parent = function (element) { + var dom = element.dom(); + return Option.from(dom.parentNode).map($_5ny1kxuzjfuw8sjh.fromDom); + }; + var findIndex$1 = function (element) { + return parent(element).bind(function (p) { + var kin = children(p); + return $_anxm1mtajfuw8sct.findIndex(kin, function (elem) { + return $_22fg4zvdjfuw8skq.eq(element, elem); + }); + }); + }; + var parents = function (element, isRoot) { + var stop = $_e8diihtbjfuw8scy.isFunction(isRoot) ? isRoot : $_cun2p5t7jfuw8scg.constant(false); + var dom = element.dom(); + var ret = []; + while (dom.parentNode !== null && dom.parentNode !== undefined) { + var rawParent = dom.parentNode; + var parent = $_5ny1kxuzjfuw8sjh.fromDom(rawParent); + ret.push(parent); + if (stop(parent) === true) + break; + else + dom = rawParent; + } + return ret; + }; + var siblings = function (element) { + var filterSelf = function (elements) { + return $_anxm1mtajfuw8sct.filter(elements, function (x) { + return !$_22fg4zvdjfuw8skq.eq(element, x); + }); + }; + return parent(element).map(children).map(filterSelf).getOr([]); + }; + var offsetParent = function (element) { + var dom = element.dom(); + return Option.from(dom.offsetParent).map($_5ny1kxuzjfuw8sjh.fromDom); + }; + var prevSibling = function (element) { + var dom = element.dom(); + return Option.from(dom.previousSibling).map($_5ny1kxuzjfuw8sjh.fromDom); + }; + var nextSibling = function (element) { + var dom = element.dom(); + return Option.from(dom.nextSibling).map($_5ny1kxuzjfuw8sjh.fromDom); + }; + var prevSiblings = function (element) { + return $_anxm1mtajfuw8sct.reverse($_ds6cwivcjfuw8sko.toArray(element, prevSibling)); + }; + var nextSiblings = function (element) { + return $_ds6cwivcjfuw8sko.toArray(element, nextSibling); + }; + var children = function (element) { + var dom = element.dom(); + return $_anxm1mtajfuw8sct.map(dom.childNodes, $_5ny1kxuzjfuw8sjh.fromDom); + }; + var child = function (element, index) { + var children = element.dom().childNodes; + return Option.from(children[index]).map($_5ny1kxuzjfuw8sjh.fromDom); + }; + var firstChild = function (element) { + return child(element, 0); + }; + var lastChild = function (element) { + return child(element, element.dom().childNodes.length - 1); + }; + var childNodesCount = function (element) { + return element.dom().childNodes.length; + }; + var hasChildNodes = function (element) { + return element.dom().hasChildNodes(); + }; + var spot = $_1qtvc5v7jfuw8ske.immutable('element', 'offset'); + var leaf = function (element, offset) { + var cs = children(element); + return cs.length > 0 && offset < cs.length ? spot(cs[offset], 0) : spot(element, offset); + }; + var $_3pu8ohv6jfuw8sk0 = { + owner: owner, + defaultView: defaultView, + documentElement: documentElement, + parent: parent, + findIndex: findIndex$1, + parents: parents, + siblings: siblings, + prevSibling: prevSibling, + offsetParent: offsetParent, + prevSiblings: prevSiblings, + nextSibling: nextSibling, + nextSiblings: nextSiblings, + children: children, + child: child, + firstChild: firstChild, + lastChild: lastChild, + childNodesCount: childNodesCount, + hasChildNodes: hasChildNodes, + leaf: leaf + }; + + var all$1 = function (predicate) { + return descendants($_c59f72v2jfuw8sjt.body(), predicate); + }; + var ancestors = function (scope, predicate, isRoot) { + return $_anxm1mtajfuw8sct.filter($_3pu8ohv6jfuw8sk0.parents(scope, isRoot), predicate); + }; + var siblings$1 = function (scope, predicate) { + return $_anxm1mtajfuw8sct.filter($_3pu8ohv6jfuw8sk0.siblings(scope), predicate); + }; + var children$1 = function (scope, predicate) { + return $_anxm1mtajfuw8sct.filter($_3pu8ohv6jfuw8sk0.children(scope), predicate); + }; + var descendants = function (scope, predicate) { + var result = []; + $_anxm1mtajfuw8sct.each($_3pu8ohv6jfuw8sk0.children(scope), function (x) { + if (predicate(x)) { + result = result.concat([x]); + } + result = result.concat(descendants(x, predicate)); + }); + return result; + }; + var $_32ojrxv1jfuw8sjp = { + all: all$1, + ancestors: ancestors, + siblings: siblings$1, + children: children$1, + descendants: descendants + }; + + var all$2 = function (selector) { + return $_cy5apxvtjfuw8sm8.all(selector); + }; + var ancestors$1 = function (scope, selector, isRoot) { + return $_32ojrxv1jfuw8sjp.ancestors(scope, function (e) { + return $_cy5apxvtjfuw8sm8.is(e, selector); + }, isRoot); + }; + var siblings$2 = function (scope, selector) { + return $_32ojrxv1jfuw8sjp.siblings(scope, function (e) { + return $_cy5apxvtjfuw8sm8.is(e, selector); + }); + }; + var children$2 = function (scope, selector) { + return $_32ojrxv1jfuw8sjp.children(scope, function (e) { + return $_cy5apxvtjfuw8sm8.is(e, selector); + }); + }; + var descendants$1 = function (scope, selector) { + return $_cy5apxvtjfuw8sm8.all(selector, scope); + }; + var $_d07cf8v0jfuw8sjn = { + all: all$2, + ancestors: ancestors$1, + siblings: siblings$2, + children: children$2, + descendants: descendants$1 + }; + + var trim$1 = global$2.trim; + var hasContentEditableState = function (value) { + return function (node) { + if (node && node.nodeType === 1) { + if (node.contentEditable === value) { + return true; + } + if (node.getAttribute('data-mce-contenteditable') === value) { + return true; + } + } + return false; + }; + }; + var isContentEditableTrue = hasContentEditableState('true'); + var isContentEditableFalse = hasContentEditableState('false'); + var create = function (type, title, url, level, attach) { + return { + type: type, + title: title, + url: url, + level: level, + attach: attach + }; + }; + var isChildOfContentEditableTrue = function (node) { + while (node = node.parentNode) { + var value = node.contentEditable; + if (value && value !== 'inherit') { + return isContentEditableTrue(node); + } + } + return false; + }; + var select = function (selector, root) { + return $_anxm1mtajfuw8sct.map($_d07cf8v0jfuw8sjn.descendants($_5ny1kxuzjfuw8sjh.fromDom(root), selector), function (element) { + return element.dom(); + }); + }; + var getElementText = function (elm) { + return elm.innerText || elm.textContent; + }; + var getOrGenerateId = function (elm) { + return elm.id ? elm.id : $_8smsfouyjfuw8sjg.generate('h'); + }; + var isAnchor = function (elm) { + return elm && elm.nodeName === 'A' && (elm.id || elm.name); + }; + var isValidAnchor = function (elm) { + return isAnchor(elm) && isEditable(elm); + }; + var isHeader = function (elm) { + return elm && /^(H[1-6])$/.test(elm.nodeName); + }; + var isEditable = function (elm) { + return isChildOfContentEditableTrue(elm) && !isContentEditableFalse(elm); + }; + var isValidHeader = function (elm) { + return isHeader(elm) && isEditable(elm); + }; + var getLevel = function (elm) { + return isHeader(elm) ? parseInt(elm.nodeName.substr(1), 10) : 0; + }; + var headerTarget = function (elm) { + var headerId = getOrGenerateId(elm); + var attach = function () { + elm.id = headerId; + }; + return create('header', getElementText(elm), '#' + headerId, getLevel(elm), attach); + }; + var anchorTarget = function (elm) { + var anchorId = elm.id || elm.name; + var anchorText = getElementText(elm); + return create('anchor', anchorText ? anchorText : '#' + anchorId, '#' + anchorId, 0, $_cun2p5t7jfuw8scg.noop); + }; + var getHeaderTargets = function (elms) { + return $_anxm1mtajfuw8sct.map($_anxm1mtajfuw8sct.filter(elms, isValidHeader), headerTarget); + }; + var getAnchorTargets = function (elms) { + return $_anxm1mtajfuw8sct.map($_anxm1mtajfuw8sct.filter(elms, isValidAnchor), anchorTarget); + }; + var getTargetElements = function (elm) { + var elms = select('h1,h2,h3,h4,h5,h6,a:not([href])', elm); + return elms; + }; + var hasTitle = function (target) { + return trim$1(target.title).length > 0; + }; + var find$3 = function (elm) { + var elms = getTargetElements(elm); + return $_anxm1mtajfuw8sct.filter(getHeaderTargets(elms).concat(getAnchorTargets(elms)), hasTitle); + }; + var $_eb3struxjfuw8sj6 = { find: find$3 }; + + var getActiveEditor = function () { + return window.tinymce ? window.tinymce.activeEditor : global$1.activeEditor; + }; + var history = {}; + var HISTORY_LENGTH = 5; + var clearHistory = function () { + history = {}; + }; + var toMenuItem = function (target) { + return { + title: target.title, + value: { + title: { raw: target.title }, + url: target.url, + attach: target.attach + } + }; + }; + var toMenuItems = function (targets) { + return global$2.map(targets, toMenuItem); + }; + var staticMenuItem = function (title, url) { + return { + title: title, + value: { + title: title, + url: url, + attach: $_cun2p5t7jfuw8scg.noop + } + }; + }; + var isUniqueUrl = function (url, targets) { + var foundTarget = $_anxm1mtajfuw8sct.exists(targets, function (target) { + return target.url === url; + }); + return !foundTarget; + }; + var getSetting = function (editorSettings, name, defaultValue) { + var value = name in editorSettings ? editorSettings[name] : defaultValue; + return value === false ? null : value; + }; + var createMenuItems = function (term, targets, fileType, editorSettings) { + var separator = { title: '-' }; + var fromHistoryMenuItems = function (history) { + var historyItems = history.hasOwnProperty(fileType) ? history[fileType] : []; + var uniqueHistory = $_anxm1mtajfuw8sct.filter(historyItems, function (url) { + return isUniqueUrl(url, targets); + }); + return global$2.map(uniqueHistory, function (url) { + return { + title: url, + value: { + title: url, + url: url, + attach: $_cun2p5t7jfuw8scg.noop + } + }; + }); + }; + var fromMenuItems = function (type) { + var filteredTargets = $_anxm1mtajfuw8sct.filter(targets, function (target) { + return target.type === type; + }); + return toMenuItems(filteredTargets); + }; + var anchorMenuItems = function () { + var anchorMenuItems = fromMenuItems('anchor'); + var topAnchor = getSetting(editorSettings, 'anchor_top', '#top'); + var bottomAchor = getSetting(editorSettings, 'anchor_bottom', '#bottom'); + if (topAnchor !== null) { + anchorMenuItems.unshift(staticMenuItem('<top>', topAnchor)); + } + if (bottomAchor !== null) { + anchorMenuItems.push(staticMenuItem('<bottom>', bottomAchor)); + } + return anchorMenuItems; + }; + var join = function (items) { + return $_anxm1mtajfuw8sct.foldl(items, function (a, b) { + var bothEmpty = a.length === 0 || b.length === 0; + return bothEmpty ? a.concat(b) : a.concat(separator, b); + }, []); + }; + if (editorSettings.typeahead_urls === false) { + return []; + } + return fileType === 'file' ? join([ + filterByQuery(term, fromHistoryMenuItems(history)), + filterByQuery(term, fromMenuItems('header')), + filterByQuery(term, anchorMenuItems()) + ]) : filterByQuery(term, fromHistoryMenuItems(history)); + }; + var addToHistory = function (url, fileType) { + var items = history[fileType]; + if (!/^https?/.test(url)) { + return; + } + if (items) { + if ($_anxm1mtajfuw8sct.indexOf(items, url).isNone()) { + history[fileType] = items.slice(0, HISTORY_LENGTH).concat(url); + } + } else { + history[fileType] = [url]; + } + }; + var filterByQuery = function (term, menuItems) { + var lowerCaseTerm = term.toLowerCase(); + var result = global$2.grep(menuItems, function (item) { + return item.title.toLowerCase().indexOf(lowerCaseTerm) !== -1; + }); + return result.length === 1 && result[0].title === term ? [] : result; + }; + var getTitle = function (linkDetails) { + var title = linkDetails.title; + return title.raw ? title.raw : title; + }; + var setupAutoCompleteHandler = function (ctrl, editorSettings, bodyElm, fileType) { + var autocomplete = function (term) { + var linkTargets = $_eb3struxjfuw8sj6.find(bodyElm); + var menuItems = createMenuItems(term, linkTargets, fileType, editorSettings); + ctrl.showAutoComplete(menuItems, term); + }; + ctrl.on('autocomplete', function () { + autocomplete(ctrl.value()); + }); + ctrl.on('selectitem', function (e) { + var linkDetails = e.value; + ctrl.value(linkDetails.url); + var title = getTitle(linkDetails); + if (fileType === 'image') { + ctrl.fire('change', { + meta: { + alt: title, + attach: linkDetails.attach + } + }); + } else { + ctrl.fire('change', { + meta: { + text: title, + attach: linkDetails.attach + } + }); + } + ctrl.focus(); + }); + ctrl.on('click', function (e) { + if (ctrl.value().length === 0 && e.target.nodeName === 'INPUT') { + autocomplete(''); + } + }); + ctrl.on('PostRender', function () { + ctrl.getRoot().on('submit', function (e) { + if (!e.isDefaultPrevented()) { + addToHistory(ctrl.value(), fileType); + } + }); + }); + }; + var statusToUiState = function (result) { + var status = result.status, message = result.message; + if (status === 'valid') { + return { + status: 'ok', + message: message + }; + } else if (status === 'unknown') { + return { + status: 'warn', + message: message + }; + } else if (status === 'invalid') { + return { + status: 'warn', + message: message + }; + } else { + return { + status: 'none', + message: '' + }; + } + }; + var setupLinkValidatorHandler = function (ctrl, editorSettings, fileType) { + var validatorHandler = editorSettings.filepicker_validator_handler; + if (validatorHandler) { + var validateUrl_1 = function (url) { + if (url.length === 0) { + ctrl.statusLevel('none'); + return; + } + validatorHandler({ + url: url, + type: fileType + }, function (result) { + var uiState = statusToUiState(result); + ctrl.statusMessage(uiState.message); + ctrl.statusLevel(uiState.status); + }); + }; + ctrl.state.on('change:value', function (e) { + validateUrl_1(e.value); + }); + } + }; + var FilePicker = ComboBox.extend({ + Statics: { clearHistory: clearHistory }, + init: function (settings) { + var self = this, editor = getActiveEditor(), editorSettings = editor.settings; + var actionCallback, fileBrowserCallback, fileBrowserCallbackTypes; + var fileType = settings.filetype; + settings.spellcheck = false; + fileBrowserCallbackTypes = editorSettings.file_picker_types || editorSettings.file_browser_callback_types; + if (fileBrowserCallbackTypes) { + fileBrowserCallbackTypes = global$2.makeMap(fileBrowserCallbackTypes, /[, ]/); + } + if (!fileBrowserCallbackTypes || fileBrowserCallbackTypes[fileType]) { + fileBrowserCallback = editorSettings.file_picker_callback; + if (fileBrowserCallback && (!fileBrowserCallbackTypes || fileBrowserCallbackTypes[fileType])) { + actionCallback = function () { + var meta = self.fire('beforecall').meta; + meta = global$2.extend({ filetype: fileType }, meta); + fileBrowserCallback.call(editor, function (value, meta) { + self.value(value).fire('change', { meta: meta }); + }, self.value(), meta); + }; + } else { + fileBrowserCallback = editorSettings.file_browser_callback; + if (fileBrowserCallback && (!fileBrowserCallbackTypes || fileBrowserCallbackTypes[fileType])) { + actionCallback = function () { + fileBrowserCallback(self.getEl('inp').id, self.value(), fileType, window); + }; + } + } + } + if (actionCallback) { + settings.icon = 'browse'; + settings.onaction = actionCallback; + } + self._super(settings); + self.classes.add('filepicker'); + setupAutoCompleteHandler(self, editorSettings, editor.getBody(), fileType); + setupLinkValidatorHandler(self, editorSettings, fileType); + } + }); + + var FitLayout = AbsoluteLayout.extend({ + recalc: function (container) { + var contLayoutRect = container.layoutRect(), paddingBox = container.paddingBox; + container.items().filter(':visible').each(function (ctrl) { + ctrl.layoutRect({ + x: paddingBox.left, + y: paddingBox.top, + w: contLayoutRect.innerW - paddingBox.right - paddingBox.left, + h: contLayoutRect.innerH - paddingBox.top - paddingBox.bottom + }); + if (ctrl.recalc) { + ctrl.recalc(); + } + }); + } + }); + + var FlexLayout = AbsoluteLayout.extend({ + recalc: function (container) { + var i, l, items, contLayoutRect, contPaddingBox, contSettings, align, pack, spacing, totalFlex, availableSpace, direction; + var ctrl, ctrlLayoutRect, ctrlSettings, flex; + var maxSizeItems = []; + var size, maxSize, ratio, rect, pos, maxAlignEndPos; + var sizeName, minSizeName, posName, maxSizeName, beforeName, innerSizeName, deltaSizeName, contentSizeName; + var alignAxisName, alignInnerSizeName, alignSizeName, alignMinSizeName, alignBeforeName, alignAfterName; + var alignDeltaSizeName, alignContentSizeName; + var max = Math.max, min = Math.min; + items = container.items().filter(':visible'); + contLayoutRect = container.layoutRect(); + contPaddingBox = container.paddingBox; + contSettings = container.settings; + direction = container.isRtl() ? contSettings.direction || 'row-reversed' : contSettings.direction; + align = contSettings.align; + pack = container.isRtl() ? contSettings.pack || 'end' : contSettings.pack; + spacing = contSettings.spacing || 0; + if (direction === 'row-reversed' || direction === 'column-reverse') { + items = items.set(items.toArray().reverse()); + direction = direction.split('-')[0]; + } + if (direction === 'column') { + posName = 'y'; + sizeName = 'h'; + minSizeName = 'minH'; + maxSizeName = 'maxH'; + innerSizeName = 'innerH'; + beforeName = 'top'; + deltaSizeName = 'deltaH'; + contentSizeName = 'contentH'; + alignBeforeName = 'left'; + alignSizeName = 'w'; + alignAxisName = 'x'; + alignInnerSizeName = 'innerW'; + alignMinSizeName = 'minW'; + alignAfterName = 'right'; + alignDeltaSizeName = 'deltaW'; + alignContentSizeName = 'contentW'; + } else { + posName = 'x'; + sizeName = 'w'; + minSizeName = 'minW'; + maxSizeName = 'maxW'; + innerSizeName = 'innerW'; + beforeName = 'left'; + deltaSizeName = 'deltaW'; + contentSizeName = 'contentW'; + alignBeforeName = 'top'; + alignSizeName = 'h'; + alignAxisName = 'y'; + alignInnerSizeName = 'innerH'; + alignMinSizeName = 'minH'; + alignAfterName = 'bottom'; + alignDeltaSizeName = 'deltaH'; + alignContentSizeName = 'contentH'; + } + availableSpace = contLayoutRect[innerSizeName] - contPaddingBox[beforeName] - contPaddingBox[beforeName]; + maxAlignEndPos = totalFlex = 0; + for (i = 0, l = items.length; i < l; i++) { + ctrl = items[i]; + ctrlLayoutRect = ctrl.layoutRect(); + ctrlSettings = ctrl.settings; + flex = ctrlSettings.flex; + availableSpace -= i < l - 1 ? spacing : 0; + if (flex > 0) { + totalFlex += flex; + if (ctrlLayoutRect[maxSizeName]) { + maxSizeItems.push(ctrl); + } + ctrlLayoutRect.flex = flex; + } + availableSpace -= ctrlLayoutRect[minSizeName]; + size = contPaddingBox[alignBeforeName] + ctrlLayoutRect[alignMinSizeName] + contPaddingBox[alignAfterName]; + if (size > maxAlignEndPos) { + maxAlignEndPos = size; + } + } + rect = {}; + if (availableSpace < 0) { + rect[minSizeName] = contLayoutRect[minSizeName] - availableSpace + contLayoutRect[deltaSizeName]; + } else { + rect[minSizeName] = contLayoutRect[innerSizeName] - availableSpace + contLayoutRect[deltaSizeName]; + } + rect[alignMinSizeName] = maxAlignEndPos + contLayoutRect[alignDeltaSizeName]; + rect[contentSizeName] = contLayoutRect[innerSizeName] - availableSpace; + rect[alignContentSizeName] = maxAlignEndPos; + rect.minW = min(rect.minW, contLayoutRect.maxW); + rect.minH = min(rect.minH, contLayoutRect.maxH); + rect.minW = max(rect.minW, contLayoutRect.startMinWidth); + rect.minH = max(rect.minH, contLayoutRect.startMinHeight); + if (contLayoutRect.autoResize && (rect.minW !== contLayoutRect.minW || rect.minH !== contLayoutRect.minH)) { + rect.w = rect.minW; + rect.h = rect.minH; + container.layoutRect(rect); + this.recalc(container); + if (container._lastRect === null) { + var parentCtrl = container.parent(); + if (parentCtrl) { + parentCtrl._lastRect = null; + parentCtrl.recalc(); + } + } + return; + } + ratio = availableSpace / totalFlex; + for (i = 0, l = maxSizeItems.length; i < l; i++) { + ctrl = maxSizeItems[i]; + ctrlLayoutRect = ctrl.layoutRect(); + maxSize = ctrlLayoutRect[maxSizeName]; + size = ctrlLayoutRect[minSizeName] + ctrlLayoutRect.flex * ratio; + if (size > maxSize) { + availableSpace -= ctrlLayoutRect[maxSizeName] - ctrlLayoutRect[minSizeName]; + totalFlex -= ctrlLayoutRect.flex; + ctrlLayoutRect.flex = 0; + ctrlLayoutRect.maxFlexSize = maxSize; + } else { + ctrlLayoutRect.maxFlexSize = 0; + } + } + ratio = availableSpace / totalFlex; + pos = contPaddingBox[beforeName]; + rect = {}; + if (totalFlex === 0) { + if (pack === 'end') { + pos = availableSpace + contPaddingBox[beforeName]; + } else if (pack === 'center') { + pos = Math.round(contLayoutRect[innerSizeName] / 2 - (contLayoutRect[innerSizeName] - availableSpace) / 2) + contPaddingBox[beforeName]; + if (pos < 0) { + pos = contPaddingBox[beforeName]; + } + } else if (pack === 'justify') { + pos = contPaddingBox[beforeName]; + spacing = Math.floor(availableSpace / (items.length - 1)); + } + } + rect[alignAxisName] = contPaddingBox[alignBeforeName]; + for (i = 0, l = items.length; i < l; i++) { + ctrl = items[i]; + ctrlLayoutRect = ctrl.layoutRect(); + size = ctrlLayoutRect.maxFlexSize || ctrlLayoutRect[minSizeName]; + if (align === 'center') { + rect[alignAxisName] = Math.round(contLayoutRect[alignInnerSizeName] / 2 - ctrlLayoutRect[alignSizeName] / 2); + } else if (align === 'stretch') { + rect[alignSizeName] = max(ctrlLayoutRect[alignMinSizeName] || 0, contLayoutRect[alignInnerSizeName] - contPaddingBox[alignBeforeName] - contPaddingBox[alignAfterName]); + rect[alignAxisName] = contPaddingBox[alignBeforeName]; + } else if (align === 'end') { + rect[alignAxisName] = contLayoutRect[alignInnerSizeName] - ctrlLayoutRect[alignSizeName] - contPaddingBox.top; + } + if (ctrlLayoutRect.flex > 0) { + size += ctrlLayoutRect.flex * ratio; + } + rect[sizeName] = size; + rect[posName] = pos; + ctrl.layoutRect(rect); + if (ctrl.recalc) { + ctrl.recalc(); + } + pos += size + spacing; + } + } + }); + + var FlowLayout = Layout.extend({ + Defaults: { + containerClass: 'flow-layout', + controlClass: 'flow-layout-item', + endClass: 'break' + }, + recalc: function (container) { + container.items().filter(':visible').each(function (ctrl) { + if (ctrl.recalc) { + ctrl.recalc(); + } + }); + }, + isNative: function () { + return true; + } + }); + + function ClosestOrAncestor (is, ancestor, scope, a, isRoot) { + return is(scope, a) ? Option.some(scope) : $_e8diihtbjfuw8scy.isFunction(isRoot) && isRoot(scope) ? Option.none() : ancestor(scope, a, isRoot); + } + + var first$1 = function (predicate) { + return descendant($_c59f72v2jfuw8sjt.body(), predicate); + }; + var ancestor = function (scope, predicate, isRoot) { + var element = scope.dom(); + var stop = $_e8diihtbjfuw8scy.isFunction(isRoot) ? isRoot : $_cun2p5t7jfuw8scg.constant(false); + while (element.parentNode) { + element = element.parentNode; + var el = $_5ny1kxuzjfuw8sjh.fromDom(element); + if (predicate(el)) + return Option.some(el); + else if (stop(el)) + break; + } + return Option.none(); + }; + var closest = function (scope, predicate, isRoot) { + var is = function (scope) { + return predicate(scope); + }; + return ClosestOrAncestor(is, ancestor, scope, predicate, isRoot); + }; + var sibling = function (scope, predicate) { + var element = scope.dom(); + if (!element.parentNode) + return Option.none(); + return child$1($_5ny1kxuzjfuw8sjh.fromDom(element.parentNode), function (x) { + return !$_22fg4zvdjfuw8skq.eq(scope, x) && predicate(x); + }); + }; + var child$1 = function (scope, predicate) { + var result = $_anxm1mtajfuw8sct.find(scope.dom().childNodes, $_cun2p5t7jfuw8scg.compose(predicate, $_5ny1kxuzjfuw8sjh.fromDom)); + return result.map($_5ny1kxuzjfuw8sjh.fromDom); + }; + var descendant = function (scope, predicate) { + var descend = function (element) { + for (var i = 0; i < element.childNodes.length; i++) { + if (predicate($_5ny1kxuzjfuw8sjh.fromDom(element.childNodes[i]))) + return Option.some($_5ny1kxuzjfuw8sjh.fromDom(element.childNodes[i])); + var res = descend(element.childNodes[i]); + if (res.isSome()) + return res; + } + return Option.none(); + }; + return descend(scope.dom()); + }; + var $_7wnjcvzjfuw8sn7 = { + first: first$1, + ancestor: ancestor, + closest: closest, + sibling: sibling, + child: child$1, + descendant: descendant + }; + + var first$2 = function (selector) { + return $_cy5apxvtjfuw8sm8.one(selector); + }; + var ancestor$1 = function (scope, selector, isRoot) { + return $_7wnjcvzjfuw8sn7.ancestor(scope, function (e) { + return $_cy5apxvtjfuw8sm8.is(e, selector); + }, isRoot); + }; + var sibling$1 = function (scope, selector) { + return $_7wnjcvzjfuw8sn7.sibling(scope, function (e) { + return $_cy5apxvtjfuw8sm8.is(e, selector); + }); + }; + var child$2 = function (scope, selector) { + return $_7wnjcvzjfuw8sn7.child(scope, function (e) { + return $_cy5apxvtjfuw8sm8.is(e, selector); + }); + }; + var descendant$1 = function (scope, selector) { + return $_cy5apxvtjfuw8sm8.one(selector, scope); + }; + var closest$1 = function (scope, selector, isRoot) { + return ClosestOrAncestor($_cy5apxvtjfuw8sm8.is, ancestor$1, scope, selector, isRoot); + }; + var $_279ymavyjfuw8sn6 = { + first: first$2, + ancestor: ancestor$1, + sibling: sibling$1, + child: child$2, + descendant: descendant$1, + closest: closest$1 + }; + + var toggleFormat = function (editor, fmt) { + return function () { + editor.execCommand('mceToggleFormat', false, fmt); + }; + }; + var postRenderFormat = function (editor, name) { + return function () { + var self = this; + if (editor.formatter) { + editor.formatter.formatChanged(name, function (state) { + self.active(state); + }); + } else { + editor.on('init', function () { + editor.formatter.formatChanged(name, function (state) { + self.active(state); + }); + }); + } + }; + }; + var $_e045hpw2jfuw8snu = { + toggleFormat: toggleFormat, + postRenderFormat: postRenderFormat + }; + + var register = function (editor) { + editor.addMenuItem('align', { + text: 'Align', + menu: [ + { + text: 'Left', + icon: 'alignleft', + onclick: $_e045hpw2jfuw8snu.toggleFormat(editor, 'alignleft') + }, + { + text: 'Center', + icon: 'aligncenter', + onclick: $_e045hpw2jfuw8snu.toggleFormat(editor, 'aligncenter') + }, + { + text: 'Right', + icon: 'alignright', + onclick: $_e045hpw2jfuw8snu.toggleFormat(editor, 'alignright') + }, + { + text: 'Justify', + icon: 'alignjustify', + onclick: $_e045hpw2jfuw8snu.toggleFormat(editor, 'alignjustify') + } + ] + }); + global$2.each({ + alignleft: [ + 'Align left', + 'JustifyLeft' + ], + aligncenter: [ + 'Align center', + 'JustifyCenter' + ], + alignright: [ + 'Align right', + 'JustifyRight' + ], + alignjustify: [ + 'Justify', + 'JustifyFull' + ], + alignnone: [ + 'No alignment', + 'JustifyNone' + ] + }, function (item, name) { + editor.addButton(name, { + active: false, + tooltip: item[0], + cmd: item[1], + onPostRender: $_e045hpw2jfuw8snu.postRenderFormat(editor, name) + }); + }); + }; + var $_bfu7knw1jfuw8sns = { register: register }; + + var getFirstFont = function (fontFamily) { + return fontFamily ? fontFamily.split(',')[0] : ''; + }; + var findMatchingValue = function (items, fontFamily) { + var value; + global$2.each(items, function (item) { + if (item.value.toLowerCase() === fontFamily.toLowerCase()) { + value = item.value; + } + }); + global$2.each(items, function (item) { + if (!value && getFirstFont(item.value).toLowerCase() === getFirstFont(fontFamily).toLowerCase()) { + value = item.value; + } + }); + return value; + }; + var createFontNameListBoxChangeHandler = function (editor, items) { + return function () { + var self = this; + editor.on('init nodeChange', function (e) { + var fontFamily = editor.queryCommandValue('FontName'); + var match = findMatchingValue(items, fontFamily); + self.value(match ? match : null); + if (!match && fontFamily) { + self.text(getFirstFont(fontFamily)); + } + }); + }; + }; + var createFormats = function (formats) { + formats = formats.replace(/;$/, '').split(';'); + var i = formats.length; + while (i--) { + formats[i] = formats[i].split('='); + } + return formats; + }; + var getFontItems = function (editor) { + var defaultFontsFormats = 'Andale Mono=andale mono,monospace;' + 'Arial=arial,helvetica,sans-serif;' + 'Arial Black=arial black,sans-serif;' + 'Book Antiqua=book antiqua,palatino,serif;' + 'Comic Sans MS=comic sans ms,sans-serif;' + 'Courier New=courier new,courier,monospace;' + 'Georgia=georgia,palatino,serif;' + 'Helvetica=helvetica,arial,sans-serif;' + 'Impact=impact,sans-serif;' + 'Symbol=symbol;' + 'Tahoma=tahoma,arial,helvetica,sans-serif;' + 'Terminal=terminal,monaco,monospace;' + 'Times New Roman=times new roman,times,serif;' + 'Trebuchet MS=trebuchet ms,geneva,sans-serif;' + 'Verdana=verdana,geneva,sans-serif;' + 'Webdings=webdings;' + 'Wingdings=wingdings,zapf dingbats'; + var fonts = createFormats(editor.settings.font_formats || defaultFontsFormats); + return global$2.map(fonts, function (font) { + return { + text: { raw: font[0] }, + value: font[1], + textStyle: font[1].indexOf('dings') === -1 ? 'font-family:' + font[1] : '' + }; + }); + }; + var registerButtons = function (editor) { + editor.addButton('fontselect', function () { + var items = getFontItems(editor); + return { + type: 'listbox', + text: 'Font Family', + tooltip: 'Font Family', + values: items, + fixedWidth: true, + onPostRender: createFontNameListBoxChangeHandler(editor, items), + onselect: function (e) { + if (e.control.settings.value) { + editor.execCommand('FontName', false, e.control.settings.value); + } + } + }; + }); + }; + var register$1 = function (editor) { + registerButtons(editor); + }; + var $_evwt60w3jfuw8snv = { register: register$1 }; + + var round = function (number, precision) { + var factor = Math.pow(10, precision); + return Math.round(number * factor) / factor; + }; + var toPt = function (fontSize, precision) { + if (/[0-9.]+px$/.test(fontSize)) { + return round(parseInt(fontSize, 10) * 72 / 96, precision || 0) + 'pt'; + } + return fontSize; + }; + var findMatchingValue$1 = function (items, pt, px) { + var value; + global$2.each(items, function (item) { + if (item.value === px) { + value = px; + } else if (item.value === pt) { + value = pt; + } + }); + return value; + }; + var createFontSizeListBoxChangeHandler = function (editor, items) { + return function () { + var self = this; + editor.on('init nodeChange', function (e) { + var px, pt, precision, match; + px = editor.queryCommandValue('FontSize'); + if (px) { + for (precision = 3; !match && precision >= 0; precision--) { + pt = toPt(px, precision); + match = findMatchingValue$1(items, pt, px); + } + } + self.value(match ? match : null); + if (!match) { + self.text(pt); + } + }); + }; + }; + var getFontSizeItems = function (editor) { + var defaultFontsizeFormats = '8pt 10pt 12pt 14pt 18pt 24pt 36pt'; + var fontsizeFormats = editor.settings.fontsize_formats || defaultFontsizeFormats; + return global$2.map(fontsizeFormats.split(' '), function (item) { + var text = item, value = item; + var values = item.split('='); + if (values.length > 1) { + text = values[0]; + value = values[1]; + } + return { + text: text, + value: value + }; + }); + }; + var registerButtons$1 = function (editor) { + editor.addButton('fontsizeselect', function () { + var items = getFontSizeItems(editor); + return { + type: 'listbox', + text: 'Font Sizes', + tooltip: 'Font Sizes', + values: items, + fixedWidth: true, + onPostRender: createFontSizeListBoxChangeHandler(editor, items), + onclick: function (e) { + if (e.control.settings.value) { + editor.execCommand('FontSize', false, e.control.settings.value); + } + } + }; + }); + }; + var register$2 = function (editor) { + registerButtons$1(editor); + }; + var $_cv0tb2w4jfuw8sny = { register: register$2 }; + + var hideMenuObjects = function (editor, menu) { + var count = menu.length; + global$2.each(menu, function (item) { + if (item.menu) { + item.hidden = hideMenuObjects(editor, item.menu) === 0; + } + var formatName = item.format; + if (formatName) { + item.hidden = !editor.formatter.canApply(formatName); + } + if (item.hidden) { + count--; + } + }); + return count; + }; + var hideFormatMenuItems = function (editor, menu) { + var count = menu.items().length; + menu.items().each(function (item) { + if (item.menu) { + item.visible(hideFormatMenuItems(editor, item.menu) > 0); + } + if (!item.menu && item.settings.menu) { + item.visible(hideMenuObjects(editor, item.settings.menu) > 0); + } + var formatName = item.settings.format; + if (formatName) { + item.visible(editor.formatter.canApply(formatName)); + } + if (!item.visible()) { + count--; + } + }); + return count; + }; + var createFormatMenu = function (editor) { + var count = 0; + var newFormats = []; + var defaultStyleFormats = [ + { + title: 'Headings', + items: [ + { + title: 'Heading 1', + format: 'h1' + }, + { + title: 'Heading 2', + format: 'h2' + }, + { + title: 'Heading 3', + format: 'h3' + }, + { + title: 'Heading 4', + format: 'h4' + }, + { + title: 'Heading 5', + format: 'h5' + }, + { + title: 'Heading 6', + format: 'h6' + } + ] + }, + { + title: 'Inline', + items: [ + { + title: 'Bold', + icon: 'bold', + format: 'bold' + }, + { + title: 'Italic', + icon: 'italic', + format: 'italic' + }, + { + title: 'Underline', + icon: 'underline', + format: 'underline' + }, + { + title: 'Strikethrough', + icon: 'strikethrough', + format: 'strikethrough' + }, + { + title: 'Superscript', + icon: 'superscript', + format: 'superscript' + }, + { + title: 'Subscript', + icon: 'subscript', + format: 'subscript' + }, + { + title: 'Code', + icon: 'code', + format: 'code' + } + ] + }, + { + title: 'Blocks', + items: [ + { + title: 'Paragraph', + format: 'p' + }, + { + title: 'Blockquote', + format: 'blockquote' + }, + { + title: 'Div', + format: 'div' + }, + { + title: 'Pre', + format: 'pre' + } + ] + }, + { + title: 'Alignment', + items: [ + { + title: 'Left', + icon: 'alignleft', + format: 'alignleft' + }, + { + title: 'Center', + icon: 'aligncenter', + format: 'aligncenter' + }, + { + title: 'Right', + icon: 'alignright', + format: 'alignright' + }, + { + title: 'Justify', + icon: 'alignjustify', + format: 'alignjustify' + } + ] + } + ]; + var createMenu = function (formats) { + var menu = []; + if (!formats) { + return; + } + global$2.each(formats, function (format) { + var menuItem = { + text: format.title, + icon: format.icon + }; + if (format.items) { + menuItem.menu = createMenu(format.items); + } else { + var formatName = format.format || 'custom' + count++; + if (!format.format) { + format.name = formatName; + newFormats.push(format); + } + menuItem.format = formatName; + menuItem.cmd = format.cmd; + } + menu.push(menuItem); + }); + return menu; + }; + var createStylesMenu = function () { + var menu; + if (editor.settings.style_formats_merge) { + if (editor.settings.style_formats) { + menu = createMenu(defaultStyleFormats.concat(editor.settings.style_formats)); + } else { + menu = createMenu(defaultStyleFormats); + } + } else { + menu = createMenu(editor.settings.style_formats || defaultStyleFormats); + } + return menu; + }; + editor.on('init', function () { + global$2.each(newFormats, function (format) { + editor.formatter.register(format.name, format); + }); + }); + return { + type: 'menu', + items: createStylesMenu(), + onPostRender: function (e) { + editor.fire('renderFormatsMenu', { control: e.control }); + }, + itemDefaults: { + preview: true, + textStyle: function () { + if (this.settings.format) { + return editor.formatter.getCssText(this.settings.format); + } + }, + onPostRender: function () { + var self = this; + self.parent().on('show', function () { + var formatName, command; + formatName = self.settings.format; + if (formatName) { + self.disabled(!editor.formatter.canApply(formatName)); + self.active(editor.formatter.match(formatName)); + } + command = self.settings.cmd; + if (command) { + self.active(editor.queryCommandState(command)); + } + }); + }, + onclick: function () { + if (this.settings.format) { + $_e045hpw2jfuw8snu.toggleFormat(editor, this.settings.format)(); + } + if (this.settings.cmd) { + editor.execCommand(this.settings.cmd); + } + } + } + }; + }; + var registerMenuItems = function (editor, formatMenu) { + editor.addMenuItem('formats', { + text: 'Formats', + menu: formatMenu + }); + }; + var registerButtons$2 = function (editor, formatMenu) { + editor.addButton('styleselect', { + type: 'menubutton', + text: 'Formats', + menu: formatMenu, + onShowMenu: function () { + if (editor.settings.style_formats_autohide) { + hideFormatMenuItems(editor, this.menu); + } + } + }); + }; + var register$3 = function (editor) { + var formatMenu = createFormatMenu(editor); + registerMenuItems(editor, formatMenu); + registerButtons$2(editor, formatMenu); + }; + var $_g2376dw5jfuw8so1 = { register: register$3 }; + + var defaultBlocks = 'Paragraph=p;' + 'Heading 1=h1;' + 'Heading 2=h2;' + 'Heading 3=h3;' + 'Heading 4=h4;' + 'Heading 5=h5;' + 'Heading 6=h6;' + 'Preformatted=pre'; + var createFormats$1 = function (formats) { + formats = formats.replace(/;$/, '').split(';'); + var i = formats.length; + while (i--) { + formats[i] = formats[i].split('='); + } + return formats; + }; + var createListBoxChangeHandler = function (editor, items, formatName) { + return function () { + var self = this; + editor.on('nodeChange', function (e) { + var formatter = editor.formatter; + var value = null; + global$2.each(e.parents, function (node) { + global$2.each(items, function (item) { + if (formatName) { + if (formatter.matchNode(node, formatName, { value: item.value })) { + value = item.value; + } + } else { + if (formatter.matchNode(node, item.value)) { + value = item.value; + } + } + if (value) { + return false; + } + }); + if (value) { + return false; + } + }); + self.value(value); + }); + }; + }; + var lazyFormatSelectBoxItems = function (editor, blocks) { + return function () { + var items = []; + global$2.each(blocks, function (block) { + items.push({ + text: block[0], + value: block[1], + textStyle: function () { + return editor.formatter.getCssText(block[1]); + } + }); + }); + return { + type: 'listbox', + text: blocks[0][0], + values: items, + fixedWidth: true, + onselect: function (e) { + if (e.control) { + var fmt = e.control.value(); + $_e045hpw2jfuw8snu.toggleFormat(editor, fmt)(); + } + }, + onPostRender: createListBoxChangeHandler(editor, items) + }; + }; + }; + var buildMenuItems = function (editor, blocks) { + return global$2.map(blocks, function (block) { + return { + text: block[0], + onclick: $_e045hpw2jfuw8snu.toggleFormat(editor, block[1]), + textStyle: function () { + return editor.formatter.getCssText(block[1]); + } + }; + }); + }; + var register$4 = function (editor) { + var blocks = createFormats$1(editor.settings.block_formats || defaultBlocks); + editor.addMenuItem('blockformats', { + text: 'Blocks', + menu: buildMenuItems(editor, blocks) + }); + editor.addButton('formatselect', lazyFormatSelectBoxItems(editor, blocks)); + }; + var $_6ddb2xw6jfuw8so5 = { register: register$4 }; + + var createCustomMenuItems = function (editor, names) { + var items, nameList; + if (typeof names === 'string') { + nameList = names.split(' '); + } else if (global$2.isArray(names)) { + return $_anxm1mtajfuw8sct.flatten(global$2.map(names, function (names) { + return createCustomMenuItems(editor, names); + })); + } + items = global$2.grep(nameList, function (name) { + return name === '|' || name in editor.menuItems; + }); + return global$2.map(items, function (name) { + return name === '|' ? { text: '-' } : editor.menuItems[name]; + }); + }; + var isSeparator$1 = function (menuItem) { + return menuItem && menuItem.text === '-'; + }; + var trimMenuItems = function (menuItems) { + var menuItems2 = $_anxm1mtajfuw8sct.filter(menuItems, function (menuItem, i, menuItems) { + return !isSeparator$1(menuItem) || !isSeparator$1(menuItems[i - 1]); + }); + return $_anxm1mtajfuw8sct.filter(menuItems2, function (menuItem, i, menuItems) { + return !isSeparator$1(menuItem) || i > 0 && i < menuItems.length - 1; + }); + }; + var createContextMenuItems = function (editor, context) { + var outputMenuItems = [{ text: '-' }]; + var menuItems = global$2.grep(editor.menuItems, function (menuItem) { + return menuItem.context === context; + }); + global$2.each(menuItems, function (menuItem) { + if (menuItem.separator === 'before') { + outputMenuItems.push({ text: '|' }); + } + if (menuItem.prependToContext) { + outputMenuItems.unshift(menuItem); + } else { + outputMenuItems.push(menuItem); + } + if (menuItem.separator === 'after') { + outputMenuItems.push({ text: '|' }); + } + }); + return outputMenuItems; + }; + var createInsertMenu = function (editor) { + var insertButtonItems = editor.settings.insert_button_items; + if (insertButtonItems) { + return trimMenuItems(createCustomMenuItems(editor, insertButtonItems)); + } else { + return trimMenuItems(createContextMenuItems(editor, 'insert')); + } + }; + var registerButtons$3 = function (editor) { + editor.addButton('insert', { + type: 'menubutton', + icon: 'insert', + menu: [], + oncreatemenu: function () { + this.menu.add(createInsertMenu(editor)); + this.menu.renderNew(); + } + }); + }; + var register$5 = function (editor) { + registerButtons$3(editor); + }; + var $_1dv5z9w7jfuw8so8 = { register: register$5 }; + + var registerFormatButtons = function (editor) { + global$2.each({ + bold: 'Bold', + italic: 'Italic', + underline: 'Underline', + strikethrough: 'Strikethrough', + subscript: 'Subscript', + superscript: 'Superscript' + }, function (text, name) { + editor.addButton(name, { + active: false, + tooltip: text, + onPostRender: $_e045hpw2jfuw8snu.postRenderFormat(editor, name), + onclick: $_e045hpw2jfuw8snu.toggleFormat(editor, name) + }); + }); + }; + var registerCommandButtons = function (editor) { + global$2.each({ + outdent: [ + 'Decrease indent', + 'Outdent' + ], + indent: [ + 'Increase indent', + 'Indent' + ], + cut: [ + 'Cut', + 'Cut' + ], + copy: [ + 'Copy', + 'Copy' + ], + paste: [ + 'Paste', + 'Paste' + ], + help: [ + 'Help', + 'mceHelp' + ], + selectall: [ + 'Select all', + 'SelectAll' + ], + visualaid: [ + 'Visual aids', + 'mceToggleVisualAid' + ], + newdocument: [ + 'New document', + 'mceNewDocument' + ], + removeformat: [ + 'Clear formatting', + 'RemoveFormat' + ], + remove: [ + 'Remove', + 'Delete' + ] + }, function (item, name) { + editor.addButton(name, { + tooltip: item[0], + cmd: item[1] + }); + }); + }; + var registerCommandToggleButtons = function (editor) { + global$2.each({ + blockquote: [ + 'Blockquote', + 'mceBlockQuote' + ], + subscript: [ + 'Subscript', + 'Subscript' + ], + superscript: [ + 'Superscript', + 'Superscript' + ] + }, function (item, name) { + editor.addButton(name, { + active: false, + tooltip: item[0], + cmd: item[1], + onPostRender: $_e045hpw2jfuw8snu.postRenderFormat(editor, name) + }); + }); + }; + var registerButtons$4 = function (editor) { + registerFormatButtons(editor); + registerCommandButtons(editor); + registerCommandToggleButtons(editor); + }; + var registerMenuItems$1 = function (editor) { + global$2.each({ + bold: [ + 'Bold', + 'Bold', + 'Meta+B' + ], + italic: [ + 'Italic', + 'Italic', + 'Meta+I' + ], + underline: [ + 'Underline', + 'Underline', + 'Meta+U' + ], + strikethrough: [ + 'Strikethrough', + 'Strikethrough' + ], + subscript: [ + 'Subscript', + 'Subscript' + ], + superscript: [ + 'Superscript', + 'Superscript' + ], + removeformat: [ + 'Clear formatting', + 'RemoveFormat' + ], + newdocument: [ + 'New document', + 'mceNewDocument' + ], + cut: [ + 'Cut', + 'Cut', + 'Meta+X' + ], + copy: [ + 'Copy', + 'Copy', + 'Meta+C' + ], + paste: [ + 'Paste', + 'Paste', + 'Meta+V' + ], + selectall: [ + 'Select all', + 'SelectAll', + 'Meta+A' + ] + }, function (item, name) { + editor.addMenuItem(name, { + text: item[0], + icon: name, + shortcut: item[2], + cmd: item[1] + }); + }); + editor.addMenuItem('codeformat', { + text: 'Code', + icon: 'code', + onclick: $_e045hpw2jfuw8snu.toggleFormat(editor, 'code') + }); + }; + var register$6 = function (editor) { + registerButtons$4(editor); + registerMenuItems$1(editor); + }; + var $_fssja4w8jfuw8soc = { register: register$6 }; + + var toggleUndoRedoState = function (editor, type) { + return function () { + var self = this; + var checkState = function () { + var typeFn = type === 'redo' ? 'hasRedo' : 'hasUndo'; + return editor.undoManager ? editor.undoManager[typeFn]() : false; + }; + self.disabled(!checkState()); + editor.on('Undo Redo AddUndo TypingUndo ClearUndos SwitchMode', function () { + self.disabled(editor.readonly || !checkState()); + }); + }; + }; + var registerMenuItems$2 = function (editor) { + editor.addMenuItem('undo', { + text: 'Undo', + icon: 'undo', + shortcut: 'Meta+Z', + onPostRender: toggleUndoRedoState(editor, 'undo'), + cmd: 'undo' + }); + editor.addMenuItem('redo', { + text: 'Redo', + icon: 'redo', + shortcut: 'Meta+Y', + onPostRender: toggleUndoRedoState(editor, 'redo'), + cmd: 'redo' + }); + }; + var registerButtons$5 = function (editor) { + editor.addButton('undo', { + tooltip: 'Undo', + onPostRender: toggleUndoRedoState(editor, 'undo'), + cmd: 'undo' + }); + editor.addButton('redo', { + tooltip: 'Redo', + onPostRender: toggleUndoRedoState(editor, 'redo'), + cmd: 'redo' + }); + }; + var register$7 = function (editor) { + registerMenuItems$2(editor); + registerButtons$5(editor); + }; + var $_fy8pn1w9jfuw8soe = { register: register$7 }; + + var toggleVisualAidState = function (editor) { + return function () { + var self = this; + editor.on('VisualAid', function (e) { + self.active(e.hasVisual); + }); + self.active(editor.hasVisual); + }; + }; + var registerMenuItems$3 = function (editor) { + editor.addMenuItem('visualaid', { + text: 'Visual aids', + selectable: true, + onPostRender: toggleVisualAidState(editor), + cmd: 'mceToggleVisualAid' + }); + }; + var register$8 = function (editor) { + registerMenuItems$3(editor); + }; + var $_5fcf2jwajfuw8sof = { register: register$8 }; + + var setupEnvironment = function () { + Widget.tooltips = !global$8.iOS; + Control$1.translate = function (text) { + return global$1.translate(text); + }; + }; + var setupUiContainer = function (editor) { + if (editor.settings.ui_container) { + global$8.container = $_279ymavyjfuw8sn6.descendant($_5ny1kxuzjfuw8sjh.fromDom(document.body), editor.settings.ui_container).fold($_cun2p5t7jfuw8scg.constant(null), function (elm) { + return elm.dom(); + }); + } + }; + var setupRtlMode = function (editor) { + if (editor.rtl) { + Control$1.rtl = true; + } + }; + var setupHideFloatPanels = function (editor) { + editor.on('mousedown', function () { + FloatPanel.hideAll(); + }); + }; + var setup$1 = function (editor) { + setupRtlMode(editor); + setupHideFloatPanels(editor); + setupUiContainer(editor); + setupEnvironment(); + $_6ddb2xw6jfuw8so5.register(editor); + $_bfu7knw1jfuw8sns.register(editor); + $_fssja4w8jfuw8soc.register(editor); + $_fy8pn1w9jfuw8soe.register(editor); + $_cv0tb2w4jfuw8sny.register(editor); + $_evwt60w3jfuw8snv.register(editor); + $_g2376dw5jfuw8so1.register(editor); + $_5fcf2jwajfuw8sof.register(editor); + $_1dv5z9w7jfuw8so8.register(editor); + }; + var $_94fs8fvxjfuw8sn0 = { setup: setup$1 }; + + var GridLayout = AbsoluteLayout.extend({ + recalc: function (container) { + var settings, rows, cols, items, contLayoutRect, width, height, rect, ctrlLayoutRect, ctrl, x, y, posX, posY, ctrlSettings, contPaddingBox, align, spacingH, spacingV, alignH, alignV, maxX, maxY; + var colWidths = []; + var rowHeights = []; + var ctrlMinWidth, ctrlMinHeight, availableWidth, availableHeight, reverseRows, idx; + settings = container.settings; + items = container.items().filter(':visible'); + contLayoutRect = container.layoutRect(); + cols = settings.columns || Math.ceil(Math.sqrt(items.length)); + rows = Math.ceil(items.length / cols); + spacingH = settings.spacingH || settings.spacing || 0; + spacingV = settings.spacingV || settings.spacing || 0; + alignH = settings.alignH || settings.align; + alignV = settings.alignV || settings.align; + contPaddingBox = container.paddingBox; + reverseRows = 'reverseRows' in settings ? settings.reverseRows : container.isRtl(); + if (alignH && typeof alignH === 'string') { + alignH = [alignH]; + } + if (alignV && typeof alignV === 'string') { + alignV = [alignV]; + } + for (x = 0; x < cols; x++) { + colWidths.push(0); + } + for (y = 0; y < rows; y++) { + rowHeights.push(0); + } + for (y = 0; y < rows; y++) { + for (x = 0; x < cols; x++) { + ctrl = items[y * cols + x]; + if (!ctrl) { + break; + } + ctrlLayoutRect = ctrl.layoutRect(); + ctrlMinWidth = ctrlLayoutRect.minW; + ctrlMinHeight = ctrlLayoutRect.minH; + colWidths[x] = ctrlMinWidth > colWidths[x] ? ctrlMinWidth : colWidths[x]; + rowHeights[y] = ctrlMinHeight > rowHeights[y] ? ctrlMinHeight : rowHeights[y]; } - - if (!editor.inline) { - contentAreaRect.w = editor.getDoc().documentElement.offsetWidth; + } + availableWidth = contLayoutRect.innerW - contPaddingBox.left - contPaddingBox.right; + for (maxX = 0, x = 0; x < cols; x++) { + maxX += colWidths[x] + (x > 0 ? spacingH : 0); + availableWidth -= (x > 0 ? spacingH : 0) + colWidths[x]; + } + availableHeight = contLayoutRect.innerH - contPaddingBox.top - contPaddingBox.bottom; + for (maxY = 0, y = 0; y < rows; y++) { + maxY += rowHeights[y] + (y > 0 ? spacingV : 0); + availableHeight -= (y > 0 ? spacingV : 0) + rowHeights[y]; + } + maxX += contPaddingBox.left + contPaddingBox.right; + maxY += contPaddingBox.top + contPaddingBox.bottom; + rect = {}; + rect.minW = maxX + (contLayoutRect.w - contLayoutRect.innerW); + rect.minH = maxY + (contLayoutRect.h - contLayoutRect.innerH); + rect.contentW = rect.minW - contLayoutRect.deltaW; + rect.contentH = rect.minH - contLayoutRect.deltaH; + rect.minW = Math.min(rect.minW, contLayoutRect.maxW); + rect.minH = Math.min(rect.minH, contLayoutRect.maxH); + rect.minW = Math.max(rect.minW, contLayoutRect.startMinWidth); + rect.minH = Math.max(rect.minH, contLayoutRect.startMinHeight); + if (contLayoutRect.autoResize && (rect.minW !== contLayoutRect.minW || rect.minH !== contLayoutRect.minH)) { + rect.w = rect.minW; + rect.h = rect.minH; + container.layoutRect(rect); + this.recalc(container); + if (container._lastRect === null) { + var parentCtrl = container.parent(); + if (parentCtrl) { + parentCtrl._lastRect = null; + parentCtrl.recalc(); + } } - - // Inflate the elementRect so it doesn't get placed above resize handles - if (editor.selection.controlSelection.isResizable(match.element) && elementRect.w < smallElementWidthThreshold) { - elementRect = Rect.inflate(elementRect, 0, 8); + return; + } + if (contLayoutRect.autoResize) { + rect = container.layoutRect(rect); + rect.contentW = rect.minW - contLayoutRect.deltaW; + rect.contentH = rect.minH - contLayoutRect.deltaH; + } + var flexV; + if (settings.packV === 'start') { + flexV = 0; + } else { + flexV = availableHeight > 0 ? Math.floor(availableHeight / rows) : 0; + } + var totalFlex = 0; + var flexWidths = settings.flexWidths; + if (flexWidths) { + for (x = 0; x < flexWidths.length; x++) { + totalFlex += flexWidths[x]; } - - relPos = Rect.findBestRelativePosition(panelRect, elementRect, contentAreaRect, testPositions); - elementRect = Rect.clamp(elementRect, contentAreaRect); - - if (relPos) { - relRect = Rect.relativePosition(panelRect, elementRect, relPos); - movePanelTo(panel, userConstrain(handler, relRect.x, relRect.y, elementRect, contentAreaRect, panelRect)); - } else { - // Allow overflow below the editor to avoid placing toolbars ontop of tables - contentAreaRect.h += panelRect.h; - - elementRect = Rect.intersect(contentAreaRect, elementRect); - if (elementRect) { - relPos = Rect.findBestRelativePosition(panelRect, elementRect, contentAreaRect, [ - 'bc-tc', 'bl-tl', 'br-tr' - ]); - - if (relPos) { - relRect = Rect.relativePosition(panelRect, elementRect, relPos); - movePanelTo(panel, userConstrain(handler, relRect.x, relRect.y, elementRect, contentAreaRect, panelRect)); - } else { - movePanelTo(panel, userConstrain(handler, elementRect.x, elementRect.y, elementRect, contentAreaRect, panelRect)); - } + } else { + totalFlex = cols; + } + var ratio = availableWidth / totalFlex; + for (x = 0; x < cols; x++) { + colWidths[x] += flexWidths ? flexWidths[x] * ratio : ratio; + } + posY = contPaddingBox.top; + for (y = 0; y < rows; y++) { + posX = contPaddingBox.left; + height = rowHeights[y] + flexV; + for (x = 0; x < cols; x++) { + if (reverseRows) { + idx = y * cols + cols - 1 - x; } else { - panel.hide(); + idx = y * cols + x; + } + ctrl = items[idx]; + if (!ctrl) { + break; + } + ctrlSettings = ctrl.settings; + ctrlLayoutRect = ctrl.layoutRect(); + width = Math.max(colWidths[x], ctrlLayoutRect.startMinWidth); + ctrlLayoutRect.x = posX; + ctrlLayoutRect.y = posY; + align = ctrlSettings.alignH || (alignH ? alignH[x] || alignH[0] : null); + if (align === 'center') { + ctrlLayoutRect.x = posX + width / 2 - ctrlLayoutRect.w / 2; + } else if (align === 'right') { + ctrlLayoutRect.x = posX + width - ctrlLayoutRect.w; + } else if (align === 'stretch') { + ctrlLayoutRect.w = width; + } + align = ctrlSettings.alignV || (alignV ? alignV[x] || alignV[0] : null); + if (align === 'center') { + ctrlLayoutRect.y = posY + height / 2 - ctrlLayoutRect.h / 2; + } else if (align === 'bottom') { + ctrlLayoutRect.y = posY + height - ctrlLayoutRect.h; + } else if (align === 'stretch') { + ctrlLayoutRect.h = height; + } + ctrl.layoutRect(ctrlLayoutRect); + posX += width + spacingH; + if (ctrl.recalc) { + ctrl.recalc(); } } - - togglePositionClass(panel, relPos, function (pos1, pos2) { - return pos1 === pos2; + posY += height + spacingV; + } + } + }); + + var Iframe$1 = Widget.extend({ + renderHtml: function () { + var self = this; + self.classes.add('iframe'); + self.canFocus = false; + return '<iframe id="' + self._id + '" class="' + self.classes + '" tabindex="-1" src="' + (self.settings.url || 'javascript:\'\'') + '" frameborder="0"></iframe>'; + }, + src: function (src) { + this.getEl().src = src; + }, + html: function (html, callback) { + var self = this, body = this.getEl().contentWindow.document.body; + if (!body) { + global$7.setTimeout(function () { + self.html(html); }); + } else { + body.innerHTML = html; + if (callback) { + callback(); + } + } + return this; + } + }); + + var InfoBox = Widget.extend({ + init: function (settings) { + var self = this; + self._super(settings); + self.classes.add('widget').add('infobox'); + self.canFocus = false; + }, + severity: function (level) { + this.classes.remove('error'); + this.classes.remove('warning'); + this.classes.remove('success'); + this.classes.add(level); + }, + help: function (state) { + this.state.set('help', state); + }, + renderHtml: function () { + var self = this, prefix = self.classPrefix; + return '<div id="' + self._id + '" class="' + self.classes + '">' + '<div id="' + self._id + '-body">' + self.encode(self.state.get('text')) + '<button role="button" tabindex="-1">' + '<i class="' + prefix + 'ico ' + prefix + 'i-help"></i>' + '</button>' + '</div>' + '</div>'; + }, + bindStates: function () { + var self = this; + self.state.on('change:text', function (e) { + self.getEl('body').firstChild.data = self.encode(e.value); + if (self.state.get('rendered')) { + self.updateLayoutRect(); + } + }); + self.state.on('change:help', function (e) { + self.classes.toggle('has-help', e.value); + if (self.state.get('rendered')) { + self.updateLayoutRect(); + } + }); + return self._super(); + } + }); + + var Label = Widget.extend({ + init: function (settings) { + var self = this; + self._super(settings); + self.classes.add('widget').add('label'); + self.canFocus = false; + if (settings.multiline) { + self.classes.add('autoscroll'); + } + if (settings.strong) { + self.classes.add('strong'); + } + }, + initLayoutRect: function () { + var self = this, layoutRect = self._super(); + if (self.settings.multiline) { + var size = funcs.getSize(self.getEl()); + if (size.width > layoutRect.maxW) { + layoutRect.minW = layoutRect.maxW; + self.classes.add('multiline'); + } + self.getEl().style.width = layoutRect.minW + 'px'; + layoutRect.startMinH = layoutRect.h = layoutRect.minH = Math.min(layoutRect.maxH, funcs.getSize(self.getEl()).height); + } + return layoutRect; + }, + repaint: function () { + var self = this; + if (!self.settings.multiline) { + self.getEl().style.lineHeight = self.layoutRect().h + 'px'; + } + return self._super(); + }, + severity: function (level) { + this.classes.remove('error'); + this.classes.remove('warning'); + this.classes.remove('success'); + this.classes.add(level); + }, + renderHtml: function () { + var self = this; + var targetCtrl, forName, forId = self.settings.forId; + var text = self.settings.html ? self.settings.html : self.encode(self.state.get('text')); + if (!forId && (forName = self.settings.forName)) { + targetCtrl = self.getRoot().find('#' + forName)[0]; + if (targetCtrl) { + forId = targetCtrl._id; + } + } + if (forId) { + return '<label id="' + self._id + '" class="' + self.classes + '"' + (forId ? ' for="' + forId + '"' : '') + '>' + text + '</label>'; + } + return '<span id="' + self._id + '" class="' + self.classes + '">' + text + '</span>'; + }, + bindStates: function () { + var self = this; + self.state.on('change:text', function (e) { + self.innerHtml(self.encode(e.value)); + if (self.state.get('rendered')) { + self.updateLayoutRect(); + } + }); + return self._super(); + } + }); + + var Toolbar$1 = Container.extend({ + Defaults: { + role: 'toolbar', + layout: 'flow' + }, + init: function (settings) { + var self = this; + self._super(settings); + self.classes.add('toolbar'); + }, + postRender: function () { + var self = this; + self.items().each(function (ctrl) { + ctrl.classes.add('toolbar-item'); + }); + return self._super(); + } + }); + + var MenuBar = Toolbar$1.extend({ + Defaults: { + role: 'menubar', + containerCls: 'menubar', + ariaRoot: true, + defaults: { type: 'menubutton' } + } + }); - //drawRect(contentAreaRect, 'blue'); - //drawRect(elementRect, 'red'); - //drawRect(panelRect, 'green'); - }; - - var repositionHandler = function (show) { - return function () { - var execute = function () { - if (editor.selection) { - reposition(findFrontMostMatch(editor.selection.getNode()), show); - } + function isChildOf$1(node, parent) { + while (node) { + if (parent === node) { + return true; + } + node = node.parentNode; + } + return false; + } + var MenuButton = Button.extend({ + init: function (settings) { + var self = this; + self._renderOpen = true; + self._super(settings); + settings = self.settings; + self.classes.add('menubtn'); + if (settings.fixedWidth) { + self.classes.add('fixed-width'); + } + self.aria('haspopup', true); + self.state.set('menu', settings.menu || self.render()); + }, + showMenu: function (toggle) { + var self = this; + var menu; + if (self.menu && self.menu.visible() && toggle !== false) { + return self.hideMenu(); + } + if (!self.menu) { + menu = self.state.get('menu') || []; + self.classes.add('opened'); + if (menu.length) { + menu = { + type: 'menu', + animate: true, + items: menu }; - - Delay.requestAnimationFrame(execute); - }; - }; - - var bindScrollEvent = function () { - if (!scrollContainer) { - scrollContainer = editor.selection.getScrollContainer() || editor.getWin(); - DOM.bind(scrollContainer, 'scroll', repositionHandler(true)); - - editor.on('remove', function () { - DOM.unbind(scrollContainer, 'scroll'); - }); + } else { + menu.type = menu.type || 'menu'; + menu.animate = true; } - }; - - var showContextToolbar = function (match) { - var panel; - - if (match.toolbar.panel) { - match.toolbar.panel.show(); - reposition(match); - return; + if (!menu.renderTo) { + self.menu = global$4.create(menu).parent(self).renderTo(); + } else { + self.menu = menu.parent(self).show().renderTo(); } - - bindScrollEvent(); - - panel = Factory.create({ - type: 'floatpanel', - role: 'dialog', - classes: 'tinymce tinymce-inline arrow', - ariaLabel: 'Inline toolbar', - layout: 'flex', - direction: 'column', - align: 'stretch', - autohide: false, - autofix: true, - fixed: true, - border: 1, - items: Toolbar.createToolbar(editor, match.toolbar.items), - oncancel: function () { - editor.focus(); + self.fire('createmenu'); + self.menu.reflow(); + self.menu.on('cancel', function (e) { + if (e.control.parent() === self.menu) { + e.stopPropagation(); + self.focus(); + self.hideMenu(); } }); - - match.toolbar.panel = panel; - panel.renderTo(document.body).reflow(); - reposition(match); - }; - - var hideAllContextToolbars = function () { - Tools.each(getContextToolbars(), function (toolbar) { - if (toolbar.panel) { - toolbar.panel.hide(); + self.menu.on('select', function () { + self.focus(); + }); + self.menu.on('show hide', function (e) { + if (e.control === self.menu) { + self.activeMenu(e.type === 'show'); + self.classes.toggle('opened', e.type === 'show'); + } + self.aria('expanded', e.type === 'show'); + }).fire('show'); + } + self.menu.show(); + self.menu.layoutRect({ w: self.layoutRect().w }); + self.menu.repaint(); + self.menu.moveRel(self.getEl(), self.isRtl() ? [ + 'br-tr', + 'tr-br' + ] : [ + 'bl-tl', + 'tl-bl' + ]); + self.fire('showmenu'); + }, + hideMenu: function () { + var self = this; + if (self.menu) { + self.menu.items().each(function (item) { + if (item.hideMenu) { + item.hideMenu(); } }); - }; - - var findFrontMostMatch = function (targetElm) { - var i, y, parentsAndSelf, toolbars = getContextToolbars(); - - parentsAndSelf = editor.$(targetElm).parents().add(targetElm); - for (i = parentsAndSelf.length - 1; i >= 0; i--) { - for (y = toolbars.length - 1; y >= 0; y--) { - if (toolbars[y].predicate(parentsAndSelf[i])) { - return { - toolbar: toolbars[y], - element: parentsAndSelf[i] - }; + self.menu.hide(); + } + }, + activeMenu: function (state) { + this.classes.toggle('active', state); + }, + renderHtml: function () { + var self = this, id = self._id, prefix = self.classPrefix; + var icon = self.settings.icon, image; + var text = self.state.get('text'); + var textHtml = ''; + image = self.settings.image; + if (image) { + icon = 'none'; + if (typeof image !== 'string') { + image = window.getSelection ? image[0] : image[1]; + } + image = ' style="background-image: url(\'' + image + '\')"'; + } else { + image = ''; + } + if (text) { + self.classes.add('btn-has-text'); + textHtml = '<span class="' + prefix + 'txt">' + self.encode(text) + '</span>'; + } + icon = self.settings.icon ? prefix + 'ico ' + prefix + 'i-' + icon : ''; + self.aria('role', self.parent() instanceof MenuBar ? 'menuitem' : 'button'); + return '<div id="' + id + '" class="' + self.classes + '" tabindex="-1" aria-labelledby="' + id + '">' + '<button id="' + id + '-open" role="presentation" type="button" tabindex="-1">' + (icon ? '<i class="' + icon + '"' + image + '></i>' : '') + textHtml + ' <i class="' + prefix + 'caret"></i>' + '</button>' + '</div>'; + }, + postRender: function () { + var self = this; + self.on('click', function (e) { + if (e.control === self && isChildOf$1(e.target, self.getEl())) { + self.focus(); + self.showMenu(!e.aria); + if (e.aria) { + self.menu.items().filter(':visible')[0].focus(); + } + } + }); + self.on('mouseenter', function (e) { + var overCtrl = e.control; + var parent = self.parent(); + var hasVisibleSiblingMenu; + if (overCtrl && parent && overCtrl instanceof MenuButton && overCtrl.parent() === parent) { + parent.items().filter('MenuButton').each(function (ctrl) { + if (ctrl.hideMenu && ctrl !== overCtrl) { + if (ctrl.menu && ctrl.menu.visible()) { + hasVisibleSiblingMenu = true; + } + ctrl.hideMenu(); } + }); + if (hasVisibleSiblingMenu) { + overCtrl.focus(); + overCtrl.showMenu(); } } - - return null; - }; - - editor.on('click keyup setContent ObjectResized', function (e) { - // Only act on partial inserts - if (e.type === 'setcontent' && !e.selection) { + }); + return self._super(); + }, + bindStates: function () { + var self = this; + self.state.on('change:menu', function () { + if (self.menu) { + self.menu.remove(); + } + self.menu = null; + }); + return self._super(); + }, + remove: function () { + this._super(); + if (this.menu) { + this.menu.remove(); + } + } + }); + + var Menu = FloatPanel.extend({ + Defaults: { + defaultType: 'menuitem', + border: 1, + layout: 'stack', + role: 'application', + bodyRole: 'menu', + ariaRoot: true + }, + init: function (settings) { + var self = this; + settings.autohide = true; + settings.constrainToViewport = true; + if (typeof settings.items === 'function') { + settings.itemsFactory = settings.items; + settings.items = []; + } + if (settings.itemDefaults) { + var items = settings.items; + var i = items.length; + while (i--) { + items[i] = global$2.extend({}, settings.itemDefaults, items[i]); + } + } + self._super(settings); + self.classes.add('menu'); + if (settings.animate && global$8.ie !== 11) { + self.classes.add('animate'); + } + }, + repaint: function () { + this.classes.toggle('menu-align', true); + this._super(); + this.getEl().style.height = ''; + this.getEl('body').style.height = ''; + return this; + }, + cancel: function () { + var self = this; + self.hideAll(); + self.fire('select'); + }, + load: function () { + var self = this; + var time, factory; + function hideThrobber() { + if (self.throbber) { + self.throbber.hide(); + self.throbber = null; + } + } + factory = self.settings.itemsFactory; + if (!factory) { + return; + } + if (!self.throbber) { + self.throbber = new Throbber(self.getEl('body'), true); + if (self.items().length === 0) { + self.throbber.show(); + self.fire('loading'); + } else { + self.throbber.show(100, function () { + self.items().remove(); + self.fire('loading'); + }); + } + self.on('hide close', hideThrobber); + } + self.requestTime = time = new Date().getTime(); + self.settings.itemsFactory(function (items) { + if (items.length === 0) { + self.hide(); return; } - - // Needs to be delayed to avoid Chrome img focus out bug - Delay.setEditorTimeout(editor, function () { - var match; - - match = findFrontMostMatch(editor.selection.getNode()); - if (match) { - hideAllContextToolbars(); - showContextToolbar(match); - } else { - hideAllContextToolbars(); - } - }); + if (self.requestTime !== time) { + return; + } + self.getEl().style.width = ''; + self.getEl('body').style.width = ''; + hideThrobber(); + self.items().remove(); + self.getEl('body').innerHTML = ''; + self.add(items); + self.renderNew(); + self.fire('loaded'); }); - - editor.on('blur hide contextmenu', hideAllContextToolbars); - - editor.on('ObjectResizeStart', function () { - var match = findFrontMostMatch(editor.selection.getNode()); - - if (match && match.toolbar.panel) { - match.toolbar.panel.hide(); + }, + hideAll: function () { + var self = this; + this.find('menuitem').exec('hideMenu'); + return self._super(); + }, + preRender: function () { + var self = this; + self.items().each(function (ctrl) { + var settings = ctrl.settings; + if (settings.icon || settings.image || settings.selectable) { + self._hasIcons = true; + return false; } }); - - editor.on('ResizeEditor ResizeWindow', repositionHandler(true)); - editor.on('nodeChange', repositionHandler(false)); - - editor.on('remove', function () { - Tools.each(getContextToolbars(), function (toolbar) { - if (toolbar.panel) { - toolbar.panel.remove(); + if (self.settings.itemsFactory) { + self.on('postrender', function () { + if (self.settings.itemsFactory) { + self.load(); } }); - - editor.contextToolbars = {}; + } + self.on('show hide', function (e) { + if (e.control === self) { + if (e.type === 'show') { + global$7.setTimeout(function () { + self.classes.add('in'); + }, 0); + } else { + self.classes.remove('in'); + } + } }); - - editor.shortcuts.add('ctrl+shift+e > ctrl+shift+p', '', function () { - var match = findFrontMostMatch(editor.selection.getNode()); - if (match && match.toolbar.panel) { - match.toolbar.panel.items()[0].focus(); + return self._super(); + } + }); + + var ListBox = MenuButton.extend({ + init: function (settings) { + var self = this; + var values, selected, selectedText, lastItemCtrl; + function setSelected(menuValues) { + for (var i = 0; i < menuValues.length; i++) { + selected = menuValues[i].selected || settings.value === menuValues[i].value; + if (selected) { + selectedText = selectedText || menuValues[i].text; + self.state.set('value', menuValues[i].value); + return true; + } + if (menuValues[i].menu) { + if (setSelected(menuValues[i].menu)) { + return true; + } + } + } + } + self._super(settings); + settings = self.settings; + self._values = values = settings.values; + if (values) { + if (typeof settings.value !== 'undefined') { + setSelected(values); + } + if (!selected && values.length > 0) { + selectedText = values[0].text; + self.state.set('value', values[0].value); + } + self.state.set('menu', values); + } + self.state.set('text', settings.text || selectedText); + self.classes.add('listbox'); + self.on('select', function (e) { + var ctrl = e.control; + if (lastItemCtrl) { + e.lastControl = lastItemCtrl; + } + if (settings.multiple) { + ctrl.active(!ctrl.active()); + } else { + self.value(e.control.value()); } + lastItemCtrl = ctrl; }); - }; - - return { - addContextualToolbars: addContextualToolbars - }; - } -); - -/** - * Menubar.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.modern.ui.Menubar', - [ - 'tinymce.core.util.Tools' - ], - function (Tools) { - var defaultMenus = { - file: { title: 'File', items: 'newdocument' }, - edit: { title: 'Edit', items: 'undo redo | cut copy paste pastetext | selectall' }, - insert: { title: 'Insert', items: '|' }, - view: { title: 'View', items: 'visualaid |' }, - format: { title: 'Format', items: 'bold italic underline strikethrough superscript subscript | formats | removeformat' }, - table: { title: 'Table' }, - tools: { title: 'Tools' } - }; - - var createMenuItem = function (menuItems, name) { - var menuItem; - - if (name == '|') { - return { text: '|' }; + }, + value: function (value) { + if (arguments.length === 0) { + return this.state.get('value'); } - - menuItem = menuItems[name]; - - return menuItem; - }; - - var createMenu = function (editorMenuItems, settings, context) { - var menuButton, menu, menuItems, isUserDefined, removedMenuItems; - - removedMenuItems = Tools.makeMap((settings.removed_menuitems || '').split(/[ ,]/)); - - // User defined menu - if (settings.menu) { - menu = settings.menu[context]; - isUserDefined = true; - } else { - menu = defaultMenus[context]; + if (typeof value === 'undefined') { + return this; } - - if (menu) { - menuButton = { text: menu.title }; - menuItems = []; - - // Default/user defined items - Tools.each((menu.items || '').split(/[ ,]/), function (item) { - var menuItem = createMenuItem(editorMenuItems, item); - - if (menuItem && !removedMenuItems[item]) { - menuItems.push(createMenuItem(editorMenuItems, item)); - } + if (this.settings.values) { + var matchingValues = global$2.grep(this.settings.values, function (a) { + return a.value === value; }); - - // Added though context - if (!isUserDefined) { - Tools.each(editorMenuItems, function (menuItem) { - if (menuItem.context == context) { - if (menuItem.separator == 'before') { - menuItems.push({ text: '|' }); - } - - if (menuItem.prependToContext) { - menuItems.unshift(menuItem); - } else { - menuItems.push(menuItem); - } - - if (menuItem.separator == 'after') { - menuItems.push({ text: '|' }); - } + if (matchingValues.length > 0) { + this.state.set('value', value); + } else if (value === null) { + this.state.set('value', null); + } + } else { + this.state.set('value', value); + } + return this; + }, + bindStates: function () { + var self = this; + function activateMenuItemsByValue(menu, value) { + if (menu instanceof Menu) { + menu.items().each(function (ctrl) { + if (!ctrl.hasMenus()) { + ctrl.active(ctrl.value() === value); } }); } - - for (var i = 0; i < menuItems.length; i++) { - if (menuItems[i].text == '|') { - if (i === 0 || i == menuItems.length - 1) { - menuItems.splice(i, 1); + } + function getSelectedItem(menuValues, value) { + var selectedItem; + if (!menuValues) { + return; + } + for (var i = 0; i < menuValues.length; i++) { + if (menuValues[i].value === value) { + return menuValues[i]; + } + if (menuValues[i].menu) { + selectedItem = getSelectedItem(menuValues[i].menu, value); + if (selectedItem) { + return selectedItem; } } } - - menuButton.menu = menuItems; - - if (!menuButton.menu.length) { - return null; + } + self.on('show', function (e) { + activateMenuItemsByValue(e.control, self.value()); + }); + self.state.on('change:value', function (e) { + var selectedItem = getSelectedItem(self.state.get('menu'), e.value); + if (selectedItem) { + self.text(selectedItem.text); + } else { + self.text(self.settings.text); } + }); + return self._super(); + } + }); + + var toggleTextStyle = function (ctrl, state) { + var textStyle = ctrl._textStyle; + if (textStyle) { + var textElm = ctrl.getEl('text'); + textElm.setAttribute('style', textStyle); + if (state) { + textElm.style.color = ''; + textElm.style.backgroundColor = ''; } - - return menuButton; - }; - - var createMenuButtons = function (editor) { - var name, menuButtons = [], settings = editor.settings; - - var defaultMenuBar = []; + } + }; + var MenuItem = Widget.extend({ + Defaults: { + border: 0, + role: 'menuitem' + }, + init: function (settings) { + var self = this; + var text; + self._super(settings); + settings = self.settings; + self.classes.add('menu-item'); if (settings.menu) { - for (name in settings.menu) { - defaultMenuBar.push(name); + self.classes.add('menu-item-expand'); + } + if (settings.preview) { + self.classes.add('menu-item-preview'); + } + text = self.state.get('text'); + if (text === '-' || text === '|') { + self.classes.add('menu-item-sep'); + self.aria('role', 'separator'); + self.state.set('text', '-'); + } + if (settings.selectable) { + self.aria('role', 'menuitemcheckbox'); + self.classes.add('menu-item-checkbox'); + settings.icon = 'selected'; + } + if (!settings.preview && !settings.selectable) { + self.classes.add('menu-item-normal'); + } + self.on('mousedown', function (e) { + e.preventDefault(); + }); + if (settings.menu && !settings.ariaHideMenu) { + self.aria('haspopup', true); + } + }, + hasMenus: function () { + return !!this.settings.menu; + }, + showMenu: function () { + var self = this; + var settings = self.settings; + var menu; + var parent = self.parent(); + parent.items().each(function (ctrl) { + if (ctrl !== self) { + ctrl.hideMenu(); } - } else { - for (name in defaultMenus) { - defaultMenuBar.push(name); + }); + if (settings.menu) { + menu = self.menu; + if (!menu) { + menu = settings.menu; + if (menu.length) { + menu = { + type: 'menu', + items: menu + }; + } else { + menu.type = menu.type || 'menu'; + } + if (parent.settings.itemDefaults) { + menu.itemDefaults = parent.settings.itemDefaults; + } + menu = self.menu = global$4.create(menu).parent(self).renderTo(); + menu.reflow(); + menu.on('cancel', function (e) { + e.stopPropagation(); + self.focus(); + menu.hide(); + }); + menu.on('show hide', function (e) { + if (e.control.items) { + e.control.items().each(function (ctrl) { + ctrl.active(ctrl.settings.selected); + }); + } + }).fire('show'); + menu.on('hide', function (e) { + if (e.control === menu) { + self.classes.remove('selected'); + } + }); + menu.submenu = true; + } else { + menu.show(); } + menu._parentMenu = parent; + menu.classes.add('menu-sub'); + var rel = menu.testMoveRel(self.getEl(), self.isRtl() ? [ + 'tl-tr', + 'bl-br', + 'tr-tl', + 'br-bl' + ] : [ + 'tr-tl', + 'br-bl', + 'tl-tr', + 'bl-br' + ]); + menu.moveRel(self.getEl(), rel); + menu.rel = rel; + rel = 'menu-sub-' + rel; + menu.classes.remove(menu._lastRel).add(rel); + menu._lastRel = rel; + self.classes.add('selected'); + self.aria('expanded', true); } - - var enabledMenuNames = typeof settings.menubar == "string" ? settings.menubar.split(/[ ,]/) : defaultMenuBar; - for (var i = 0; i < enabledMenuNames.length; i++) { - var menu = enabledMenuNames[i]; - menu = createMenu(editor.menuItems, editor.settings, menu); - - if (menu) { - menuButtons.push(menu); + }, + hideMenu: function () { + var self = this; + if (self.menu) { + self.menu.items().each(function (item) { + if (item.hideMenu) { + item.hideMenu(); + } + }); + self.menu.hide(); + self.aria('expanded', false); + } + return self; + }, + renderHtml: function () { + var self = this; + var id = self._id; + var settings = self.settings; + var prefix = self.classPrefix; + var text = self.state.get('text'); + var icon = self.settings.icon, image = '', shortcut = settings.shortcut; + var url = self.encode(settings.url), iconHtml = ''; + function convertShortcut(shortcut) { + var i, value, replace = {}; + if (global$8.mac) { + replace = { + alt: '⌥', + ctrl: '⌘', + shift: '⇧', + meta: '⌘' + }; + } else { + replace = { meta: 'Ctrl' }; } + shortcut = shortcut.split('+'); + for (i = 0; i < shortcut.length; i++) { + value = replace[shortcut[i].toLowerCase()]; + if (value) { + shortcut[i] = value; + } + } + return shortcut.join('+'); } - - return menuButtons; - }; - - return { - createMenuButtons: createMenuButtons - }; - } -); - -/** - * Resize.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.modern.ui.Resize', - [ - 'tinymce.core.dom.DOMUtils' - ], - function (DOMUtils) { - var DOM = DOMUtils.DOM; - var getSize = function (elm) { - return { - width: elm.clientWidth, - height: elm.clientHeight - }; - }; - - var resizeTo = function (editor, width, height) { - var containerElm, iframeElm, containerSize, iframeSize, settings = editor.settings; - - containerElm = editor.getContainer(); - iframeElm = editor.getContentAreaContainer().firstChild; - containerSize = getSize(containerElm); - iframeSize = getSize(iframeElm); - - if (width !== null) { - width = Math.max(settings.min_width || 100, width); - width = Math.min(settings.max_width || 0xFFFF, width); - - DOM.setStyle(containerElm, 'width', width + (containerSize.width - iframeSize.width)); - DOM.setStyle(iframeElm, 'width', width); + function escapeRegExp(str) { + return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); } - - height = Math.max(settings.min_height || 100, height); - height = Math.min(settings.max_height || 0xFFFF, height); - DOM.setStyle(iframeElm, 'height', height); - - editor.fire('ResizeEditor'); - }; - - var resizeBy = function (editor, dw, dh) { - var elm = editor.getContentAreaContainer(); - resizeTo(editor, elm.clientWidth + dw, elm.clientHeight + dh); - }; - - return { - resizeTo: resizeTo, - resizeBy: resizeBy - }; - } -); - -/** - * Sidebar.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.modern.ui.Sidebar', - [ - 'tinymce.core.util.Tools', - 'tinymce.core.ui.Factory', - 'tinymce.core.Env' - ], - function (Tools, Factory, Env) { - var api = function (elm) { - return { - element: function () { - return elm; + function markMatches(text) { + var match = settings.match || ''; + return match ? text.replace(new RegExp(escapeRegExp(match), 'gi'), function (match) { + return '!mce~match[' + match + ']mce~match!'; + }) : text; + } + function boldMatches(text) { + return text.replace(new RegExp(escapeRegExp('!mce~match['), 'g'), '<b>').replace(new RegExp(escapeRegExp(']mce~match!'), 'g'), '</b>'); + } + if (icon) { + self.parent().classes.add('menu-has-icons'); + } + if (settings.image) { + image = ' style="background-image: url(\'' + settings.image + '\')"'; + } + if (shortcut) { + shortcut = convertShortcut(shortcut); + } + icon = prefix + 'ico ' + prefix + 'i-' + (self.settings.icon || 'none'); + iconHtml = text !== '-' ? '<i class="' + icon + '"' + image + '></i>\xA0' : ''; + text = boldMatches(self.encode(markMatches(text))); + url = boldMatches(self.encode(markMatches(url))); + return '<div id="' + id + '" class="' + self.classes + '" tabindex="-1">' + iconHtml + (text !== '-' ? '<span id="' + id + '-text" class="' + prefix + 'text">' + text + '</span>' : '') + (shortcut ? '<div id="' + id + '-shortcut" class="' + prefix + 'menu-shortcut">' + shortcut + '</div>' : '') + (settings.menu ? '<div class="' + prefix + 'caret"></div>' : '') + (url ? '<div class="' + prefix + 'menu-item-link">' + url + '</div>' : '') + '</div>'; + }, + postRender: function () { + var self = this, settings = self.settings; + var textStyle = settings.textStyle; + if (typeof textStyle === 'function') { + textStyle = textStyle.call(this); + } + if (textStyle) { + var textElm = self.getEl('text'); + if (textElm) { + textElm.setAttribute('style', textStyle); + self._textStyle = textStyle; } - }; - }; - - var trigger = function (sidebar, panel, callbackName) { - var callback = sidebar.settings[callbackName]; - if (callback) { - callback(api(panel.getEl('body'))); } - }; - - var hidePanels = function (name, container, sidebars) { - Tools.each(sidebars, function (sidebar) { - var panel = container.items().filter('#' + sidebar.name)[0]; - - if (panel && panel.visible() && sidebar.name !== name) { - trigger(sidebar, panel, 'onhide'); - panel.visible(false); + self.on('mouseenter click', function (e) { + if (e.control === self) { + if (!settings.menu && e.type === 'click') { + self.fire('select'); + global$7.requestAnimationFrame(function () { + self.parent().hideAll(); + }); + } else { + self.showMenu(); + if (e.aria) { + self.menu.focus(true); + } + } } }); - }; - - var deactivateButtons = function (toolbar) { - toolbar.items().each(function (ctrl) { - ctrl.active(false); + self._super(); + return self; + }, + hover: function () { + var self = this; + self.parent().items().each(function (ctrl) { + ctrl.classes.remove('selected'); }); - }; - - var findSidebar = function (sidebars, name) { - return Tools.grep(sidebars, function (sidebar) { - return sidebar.name === name; - })[0]; - }; - - var showPanel = function (editor, name, sidebars) { - return function (e) { - var btnCtrl = e.control; - var container = btnCtrl.parents().filter('panel')[0]; - var panel = container.find('#' + name)[0]; - var sidebar = findSidebar(sidebars, name); - - hidePanels(name, container, sidebars); - deactivateButtons(btnCtrl.parent()); - - if (panel && panel.visible()) { - trigger(sidebar, panel, 'onhide'); - panel.hide(); - btnCtrl.active(false); - } else { - if (panel) { - panel.show(); - trigger(sidebar, panel, 'onshow'); - } else { - panel = Factory.create({ - type: 'container', - name: name, - layout: 'stack', - classes: 'sidebar-panel', - html: '' - }); + self.classes.toggle('selected', true); + return self; + }, + active: function (state) { + toggleTextStyle(this, state); + if (typeof state !== 'undefined') { + this.aria('checked', state); + } + return this._super(state); + }, + remove: function () { + this._super(); + if (this.menu) { + this.menu.remove(); + } + } + }); - container.prepend(panel); - trigger(sidebar, panel, 'onrender'); - trigger(sidebar, panel, 'onshow'); + var Radio = Checkbox.extend({ + Defaults: { + classes: 'radio', + role: 'radio' + } + }); + + var ResizeHandle = Widget.extend({ + renderHtml: function () { + var self = this, prefix = self.classPrefix; + self.classes.add('resizehandle'); + if (self.settings.direction === 'both') { + self.classes.add('resizehandle-both'); + } + self.canFocus = false; + return '<div id="' + self._id + '" class="' + self.classes + '">' + '<i class="' + prefix + 'ico ' + prefix + 'i-resize"></i>' + '</div>'; + }, + postRender: function () { + var self = this; + self._super(); + self.resizeDragHelper = new DragHelper(this._id, { + start: function () { + self.fire('ResizeStart'); + }, + drag: function (e) { + if (self.settings.direction !== 'both') { + e.deltaX = 0; } - - btnCtrl.active(true); + self.fire('Resize', e); + }, + stop: function () { + self.fire('ResizeEnd'); } - - editor.fire('ResizeEditor'); - }; - }; - - var isModernBrowser = function () { - return !Env.ie || Env.ie >= 11; - }; - - var hasSidebar = function (editor) { - return isModernBrowser() && editor.sidebars ? editor.sidebars.length > 0 : false; - }; - - var createSidebar = function (editor) { - var buttons = Tools.map(editor.sidebars, function (sidebar) { - var settings = sidebar.settings; - - return { - type: 'button', - icon: settings.icon, - image: settings.image, - tooltip: settings.tooltip, - onclick: showPanel(editor, sidebar.name, editor.sidebars) - }; }); + }, + remove: function () { + if (this.resizeDragHelper) { + this.resizeDragHelper.destroy(); + } + return this._super(); + } + }); - return { - type: 'panel', - name: 'sidebar', - layout: 'stack', - classes: 'sidebar', - items: [ - { - type: 'toolbar', - layout: 'stack', - classes: 'sidebar-toolbar', - items: buttons - } - ] - }; - }; - - return { - hasSidebar: hasSidebar, - createSidebar: createSidebar - }; + function createOptions(options) { + var strOptions = ''; + if (options) { + for (var i = 0; i < options.length; i++) { + strOptions += '<option value="' + options[i] + '">' + options[i] + '</option>'; + } + } + return strOptions; } -); -/** - * SkinLoaded.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.modern.ui.SkinLoaded', [ - ], - function () { - var fireSkinLoaded = function (editor) { - var done = function () { - editor._skinLoaded = true; - editor.fire('SkinLoaded'); - }; - - return function () { - if (editor.initialized) { - done(); - } else { - editor.on('init', done); + var SelectBox = Widget.extend({ + Defaults: { + classes: 'selectbox', + role: 'selectbox', + options: [] + }, + init: function (settings) { + var self = this; + self._super(settings); + if (self.settings.size) { + self.size = self.settings.size; + } + if (self.settings.options) { + self._options = self.settings.options; + } + self.on('keydown', function (e) { + var rootControl; + if (e.keyCode === 13) { + e.preventDefault(); + self.parents().reverse().each(function (ctrl) { + if (ctrl.toJSON) { + rootControl = ctrl; + return false; + } + }); + self.fire('submit', { data: rootControl.toJSON() }); } - }; - }; - - return { - fireSkinLoaded: fireSkinLoaded - }; - } -); - -/** - * Iframe.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.modern.modes.Iframe', - [ - 'tinymce.core.dom.DOMUtils', - 'tinymce.core.ui.Factory', - 'tinymce.core.util.Tools', - 'tinymce.themes.modern.ui.A11y', - 'tinymce.themes.modern.ui.Branding', - 'tinymce.themes.modern.ui.ContextToolbars', - 'tinymce.themes.modern.ui.Menubar', - 'tinymce.themes.modern.ui.Resize', - 'tinymce.themes.modern.ui.Sidebar', - 'tinymce.themes.modern.ui.SkinLoaded', - 'tinymce.themes.modern.ui.Toolbar' - ], - function (DOMUtils, Factory, Tools, A11y, Branding, ContextToolbars, Menubar, Resize, Sidebar, SkinLoaded, Toolbar) { - var DOM = DOMUtils.DOM; - - var switchMode = function (panel) { - return function (e) { - panel.find('*').disabled(e.mode === 'readonly'); - }; - }; - - var editArea = function (border) { - return { - type: 'panel', - name: 'iframe', - layout: 'stack', - classes: 'edit-area', - border: border, - html: '' - }; - }; - - var editAreaContainer = function (editor) { - return { - type: 'panel', - layout: 'stack', - classes: 'edit-aria-container', - border: '1 0 0 0', - items: [ - editArea('0'), - Sidebar.createSidebar(editor) - ] - }; - }; - - var render = function (editor, theme, args) { - var panel, resizeHandleCtrl, startSize, settings = editor.settings; - - if (args.skinUiCss) { - DOM.styleSheetLoader.load(args.skinUiCss, SkinLoaded.fireSkinLoaded(editor)); + }); + }, + options: function (state) { + if (!arguments.length) { + return this.state.get('options'); } - - panel = theme.panel = Factory.create({ - type: 'panel', - role: 'application', - classes: 'tinymce', - style: 'visibility: hidden', - layout: 'stack', - border: 1, - items: [ - settings.menubar === false ? null : { type: 'menubar', border: '0 0 1 0', items: Menubar.createMenuButtons(editor) }, - Toolbar.createToolbars(editor, settings.toolbar_items_size), - Sidebar.hasSidebar(editor) ? editAreaContainer(editor) : editArea('1 0 0 0') - ] + this.state.set('options', state); + return this; + }, + renderHtml: function () { + var self = this; + var options, size = ''; + options = createOptions(self._options); + if (self.size) { + size = ' size = "' + self.size + '"'; + } + return '<select id="' + self._id + '" class="' + self.classes + '"' + size + '>' + options + '</select>'; + }, + bindStates: function () { + var self = this; + self.state.on('change:options', function (e) { + self.getEl().innerHTML = createOptions(e.value); }); + return self._super(); + } + }); - if (settings.resize !== false) { - resizeHandleCtrl = { - type: 'resizehandle', - direction: settings.resize, - - onResizeStart: function () { - var elm = editor.getContentAreaContainer().firstChild; - - startSize = { - width: elm.clientWidth, - height: elm.clientHeight - }; - }, - - onResize: function (e) { - if (settings.resize === 'both') { - Resize.resizeTo(editor, startSize.width + e.deltaX, startSize.height + e.deltaY); - } else { - Resize.resizeTo(editor, null, startSize.height + e.deltaY); - } - } + function constrain(value, minVal, maxVal) { + if (value < minVal) { + value = minVal; + } + if (value > maxVal) { + value = maxVal; + } + return value; + } + function setAriaProp(el, name, value) { + el.setAttribute('aria-' + name, value); + } + function updateSliderHandle(ctrl, value) { + var maxHandlePos, shortSizeName, sizeName, stylePosName, styleValue, handleEl; + if (ctrl.settings.orientation === 'v') { + stylePosName = 'top'; + sizeName = 'height'; + shortSizeName = 'h'; + } else { + stylePosName = 'left'; + sizeName = 'width'; + shortSizeName = 'w'; + } + handleEl = ctrl.getEl('handle'); + maxHandlePos = (ctrl.layoutRect()[shortSizeName] || 100) - funcs.getSize(handleEl)[sizeName]; + styleValue = maxHandlePos * ((value - ctrl._minValue) / (ctrl._maxValue - ctrl._minValue)) + 'px'; + handleEl.style[stylePosName] = styleValue; + handleEl.style.height = ctrl.layoutRect().h + 'px'; + setAriaProp(handleEl, 'valuenow', value); + setAriaProp(handleEl, 'valuetext', '' + ctrl.settings.previewFilter(value)); + setAriaProp(handleEl, 'valuemin', ctrl._minValue); + setAriaProp(handleEl, 'valuemax', ctrl._maxValue); + } + var Slider = Widget.extend({ + init: function (settings) { + var self = this; + if (!settings.previewFilter) { + settings.previewFilter = function (value) { + return Math.round(value * 100) / 100; }; } - - // Add statusbar if needed - if (settings.statusbar !== false) { - panel.add({ - type: 'panel', name: 'statusbar', classes: 'statusbar', layout: 'flow', border: '1 0 0 0', ariaRoot: true, items: [ - { type: 'elementpath', editor: editor }, - resizeHandleCtrl - ] + self._super(settings); + self.classes.add('slider'); + if (settings.orientation === 'v') { + self.classes.add('vertical'); + } + self._minValue = $_e8diihtbjfuw8scy.isNumber(settings.minValue) ? settings.minValue : 0; + self._maxValue = $_e8diihtbjfuw8scy.isNumber(settings.maxValue) ? settings.maxValue : 100; + self._initValue = self.state.get('value'); + }, + renderHtml: function () { + var self = this, id = self._id, prefix = self.classPrefix; + return '<div id="' + id + '" class="' + self.classes + '">' + '<div id="' + id + '-handle" class="' + prefix + 'slider-handle" role="slider" tabindex="-1"></div>' + '</div>'; + }, + reset: function () { + this.value(this._initValue).repaint(); + }, + postRender: function () { + var self = this; + var minValue, maxValue, screenCordName, stylePosName, sizeName, shortSizeName; + function toFraction(min, max, val) { + return (val + min) / (max - min); + } + function fromFraction(min, max, val) { + return val * (max - min) - min; + } + function handleKeyboard(minValue, maxValue) { + function alter(delta) { + var value; + value = self.value(); + value = fromFraction(minValue, maxValue, toFraction(minValue, maxValue, value) + delta * 0.05); + value = constrain(value, minValue, maxValue); + self.value(value); + self.fire('dragstart', { value: value }); + self.fire('drag', { value: value }); + self.fire('dragend', { value: value }); + } + self.on('keydown', function (e) { + switch (e.keyCode) { + case 37: + case 38: + alter(-1); + break; + case 39: + case 40: + alter(1); + break; + } }); } - - editor.fire('BeforeRenderUI'); - editor.on('SwitchMode', switchMode(panel)); - panel.renderBefore(args.targetNode).reflow(); - - if (settings.readonly) { - editor.setMode('readonly'); + function handleDrag(minValue, maxValue, handleEl) { + var startPos, startHandlePos, maxHandlePos, handlePos, value; + self._dragHelper = new DragHelper(self._id, { + handle: self._id + '-handle', + start: function (e) { + startPos = e[screenCordName]; + startHandlePos = parseInt(self.getEl('handle').style[stylePosName], 10); + maxHandlePos = (self.layoutRect()[shortSizeName] || 100) - funcs.getSize(handleEl)[sizeName]; + self.fire('dragstart', { value: value }); + }, + drag: function (e) { + var delta = e[screenCordName] - startPos; + handlePos = constrain(startHandlePos + delta, 0, maxHandlePos); + handleEl.style[stylePosName] = handlePos + 'px'; + value = minValue + handlePos / maxHandlePos * (maxValue - minValue); + self.value(value); + self.tooltip().text('' + self.settings.previewFilter(value)).show().moveRel(handleEl, 'bc tc'); + self.fire('drag', { value: value }); + }, + stop: function () { + self.tooltip().hide(); + self.fire('dragend', { value: value }); + } + }); } - - if (args.width) { - DOM.setStyle(panel.getEl(), 'width', args.width); + minValue = self._minValue; + maxValue = self._maxValue; + if (self.settings.orientation === 'v') { + screenCordName = 'screenY'; + stylePosName = 'top'; + sizeName = 'height'; + shortSizeName = 'h'; + } else { + screenCordName = 'screenX'; + stylePosName = 'left'; + sizeName = 'width'; + shortSizeName = 'w'; } - - // Remove the panel when the editor is removed - editor.on('remove', function () { - panel.remove(); - panel = null; + self._super(); + handleKeyboard(minValue, maxValue); + handleDrag(minValue, maxValue, self.getEl('handle')); + }, + repaint: function () { + this._super(); + updateSliderHandle(this, this.value()); + }, + bindStates: function () { + var self = this; + self.state.on('change:value', function (e) { + updateSliderHandle(self, e.value); }); - - // Add accesibility shortcuts - A11y.addKeys(editor, panel); - ContextToolbars.addContextualToolbars(editor); - Branding.setup(editor); - - return { - iframeContainer: panel.find('#iframe')[0].getEl(), - editorContainer: panel.getEl() - }; - }; - - return { - render: render - }; - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.ui.FloatPanel', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.ui.FloatPanel'); - } -); - -/** - * Inline.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.modern.modes.Inline', - [ - 'tinymce.core.util.Tools', - 'tinymce.core.ui.Factory', - 'tinymce.core.dom.DOMUtils', - 'tinymce.core.ui.FloatPanel', - 'tinymce.themes.modern.ui.Toolbar', - 'tinymce.themes.modern.ui.Menubar', - 'tinymce.themes.modern.ui.ContextToolbars', - 'tinymce.themes.modern.ui.A11y', - 'tinymce.themes.modern.ui.SkinLoaded' - ], - function (Tools, Factory, DOMUtils, FloatPanel, Toolbar, Menubar, ContextToolbars, A11y, SkinLoaded) { - var render = function (editor, theme, args) { - var panel, inlineToolbarContainer, settings = editor.settings; - var DOM = DOMUtils.DOM; - - if (settings.fixed_toolbar_container) { - inlineToolbarContainer = DOM.select(settings.fixed_toolbar_container)[0]; - } - - var reposition = function () { - if (panel && panel.moveRel && panel.visible() && !panel._fixed) { - // TODO: This is kind of ugly and doesn't handle multiple scrollable elements - var scrollContainer = editor.selection.getScrollContainer(), body = editor.getBody(); - var deltaX = 0, deltaY = 0; - - if (scrollContainer) { - var bodyPos = DOM.getPos(body), scrollContainerPos = DOM.getPos(scrollContainer); - - deltaX = Math.max(0, scrollContainerPos.x - bodyPos.x); - deltaY = Math.max(0, scrollContainerPos.y - bodyPos.y); - } - - panel.fixed(false).moveRel(body, editor.rtl ? ['tr-br', 'br-tr'] : ['tl-bl', 'bl-tl', 'tr-br']).moveBy(deltaX, deltaY); + return self._super(); + } + }); + + var Spacer = Widget.extend({ + renderHtml: function () { + var self = this; + self.classes.add('spacer'); + self.canFocus = false; + return '<div id="' + self._id + '" class="' + self.classes + '"></div>'; + } + }); + + var SplitButton = MenuButton.extend({ + Defaults: { + classes: 'widget btn splitbtn', + role: 'button' + }, + repaint: function () { + var self = this; + var elm = self.getEl(); + var rect = self.layoutRect(); + var mainButtonElm, menuButtonElm; + self._super(); + mainButtonElm = elm.firstChild; + menuButtonElm = elm.lastChild; + global$9(mainButtonElm).css({ + width: rect.w - funcs.getSize(menuButtonElm).width, + height: rect.h - 2 + }); + global$9(menuButtonElm).css({ height: rect.h - 2 }); + return self; + }, + activeMenu: function (state) { + var self = this; + global$9(self.getEl().lastChild).toggleClass(self.classPrefix + 'active', state); + }, + renderHtml: function () { + var self = this; + var id = self._id; + var prefix = self.classPrefix; + var image; + var icon = self.state.get('icon'); + var text = self.state.get('text'); + var settings = self.settings; + var textHtml = '', ariaPressed; + image = settings.image; + if (image) { + icon = 'none'; + if (typeof image !== 'string') { + image = window.getSelection ? image[0] : image[1]; } - }; - - var show = function () { - if (panel) { - panel.show(); - reposition(); - DOM.addClass(editor.getBody(), 'mce-edit-focus'); + image = ' style="background-image: url(\'' + image + '\')"'; + } else { + image = ''; + } + icon = settings.icon ? prefix + 'ico ' + prefix + 'i-' + icon : ''; + if (text) { + self.classes.add('btn-has-text'); + textHtml = '<span class="' + prefix + 'txt">' + self.encode(text) + '</span>'; + } + ariaPressed = typeof settings.active === 'boolean' ? ' aria-pressed="' + settings.active + '"' : ''; + return '<div id="' + id + '" class="' + self.classes + '" role="button"' + ariaPressed + ' tabindex="-1">' + '<button type="button" hidefocus="1" tabindex="-1">' + (icon ? '<i class="' + icon + '"' + image + '></i>' : '') + textHtml + '</button>' + '<button type="button" class="' + prefix + 'open" hidefocus="1" tabindex="-1">' + (self._menuBtnText ? (icon ? '\xA0' : '') + self._menuBtnText : '') + ' <i class="' + prefix + 'caret"></i>' + '</button>' + '</div>'; + }, + postRender: function () { + var self = this, onClickHandler = self.settings.onclick; + self.on('click', function (e) { + var node = e.target; + if (e.control === this) { + while (node) { + if (e.aria && e.aria.key !== 'down' || node.nodeName === 'BUTTON' && node.className.indexOf('open') === -1) { + e.stopImmediatePropagation(); + if (onClickHandler) { + onClickHandler.call(this, e); + } + return; + } + node = node.parentNode; + } } - }; - - var hide = function () { - if (panel) { - // We require two events as the inline float panel based toolbar does not have autohide=true - panel.hide(); - - // All other autohidden float panels will be closed below. - FloatPanel.hideAll(); - - DOM.removeClass(editor.getBody(), 'mce-edit-focus'); + }); + delete self.settings.onclick; + return self._super(); + } + }); + + var StackLayout = FlowLayout.extend({ + Defaults: { + containerClass: 'stack-layout', + controlClass: 'stack-layout-item', + endClass: 'break' + }, + isNative: function () { + return true; + } + }); + + var TabPanel = Panel.extend({ + Defaults: { + layout: 'absolute', + defaults: { type: 'panel' } + }, + activateTab: function (idx) { + var activeTabElm; + if (this.activeTabId) { + activeTabElm = this.getEl(this.activeTabId); + global$9(activeTabElm).removeClass(this.classPrefix + 'active'); + activeTabElm.setAttribute('aria-selected', 'false'); + } + this.activeTabId = 't' + idx; + activeTabElm = this.getEl('t' + idx); + activeTabElm.setAttribute('aria-selected', 'true'); + global$9(activeTabElm).addClass(this.classPrefix + 'active'); + this.items()[idx].show().fire('showtab'); + this.reflow(); + this.items().each(function (item, i) { + if (idx !== i) { + item.hide(); } - }; - - var render = function () { - if (panel) { - if (!panel.visible()) { - show(); + }); + }, + renderHtml: function () { + var self = this; + var layout = self._layout; + var tabsHtml = ''; + var prefix = self.classPrefix; + self.preRender(); + layout.preRender(self); + self.items().each(function (ctrl, i) { + var id = self._id + '-t' + i; + ctrl.aria('role', 'tabpanel'); + ctrl.aria('labelledby', id); + tabsHtml += '<div id="' + id + '" class="' + prefix + 'tab" ' + 'unselectable="on" role="tab" aria-controls="' + ctrl._id + '" aria-selected="false" tabIndex="-1">' + self.encode(ctrl.settings.title) + '</div>'; + }); + return '<div id="' + self._id + '" class="' + self.classes + '" hidefocus="1" tabindex="-1">' + '<div id="' + self._id + '-head" class="' + prefix + 'tabs" role="tablist">' + tabsHtml + '</div>' + '<div id="' + self._id + '-body" class="' + self.bodyClasses + '">' + layout.renderHtml(self) + '</div>' + '</div>'; + }, + postRender: function () { + var self = this; + self._super(); + self.settings.activeTab = self.settings.activeTab || 0; + self.activateTab(self.settings.activeTab); + this.on('click', function (e) { + var targetParent = e.target.parentNode; + if (targetParent && targetParent.id === self._id + '-head') { + var i = targetParent.childNodes.length; + while (i--) { + if (targetParent.childNodes[i] === e.target) { + self.activateTab(i); + } } - - return; } - - // Render a plain panel inside the inlineToolbarContainer if it's defined - panel = theme.panel = Factory.create({ - type: inlineToolbarContainer ? 'panel' : 'floatpanel', - role: 'application', - classes: 'tinymce tinymce-inline', - layout: 'flex', - direction: 'column', - align: 'stretch', - autohide: false, - autofix: true, - fixed: !!inlineToolbarContainer, - border: 1, - items: [ - settings.menubar === false ? null : { type: 'menubar', border: '0 0 1 0', items: Menubar.createMenuButtons(editor) }, - Toolbar.createToolbars(editor, settings.toolbar_items_size) - ] + }); + }, + initLayoutRect: function () { + var self = this; + var rect, minW, minH; + minW = funcs.getSize(self.getEl('head')).width; + minW = minW < 0 ? 0 : minW; + minH = 0; + self.items().each(function (item) { + minW = Math.max(minW, item.layoutRect().minW); + minH = Math.max(minH, item.layoutRect().minH); + }); + self.items().each(function (ctrl) { + ctrl.settings.x = 0; + ctrl.settings.y = 0; + ctrl.settings.w = minW; + ctrl.settings.h = minH; + ctrl.layoutRect({ + x: 0, + y: 0, + w: minW, + h: minH }); - - // Add statusbar - /*if (settings.statusbar !== false) { - panel.add({type: 'panel', classes: 'statusbar', layout: 'flow', border: '1 0 0 0', items: [ - {type: 'elementpath'} - ]}); - }*/ - - editor.fire('BeforeRenderUI'); - panel.renderTo(inlineToolbarContainer || document.body).reflow(); - - A11y.addKeys(editor, panel); - show(); - ContextToolbars.addContextualToolbars(editor); - - editor.on('nodeChange', reposition); - editor.on('activate', show); - editor.on('deactivate', hide); - - editor.nodeChanged(); - }; - - settings.content_editable = true; - - editor.on('focus', function () { - // Render only when the CSS file has been loaded - if (args.skinUiCss) { - DOM.styleSheetLoader.load(args.skinUiCss, render, render); - } else { - render(); - } }); - - editor.on('blur hide', hide); - - // Remove the panel when the editor is removed - editor.on('remove', function () { - if (panel) { - panel.remove(); - panel = null; - } + var headH = funcs.getSize(self.getEl('head')).height; + self.settings.minWidth = minW; + self.settings.minHeight = minH + headH; + rect = self._super(); + rect.deltaH += headH; + rect.innerH = rect.h - rect.deltaH; + return rect; + } + }); + + var TextBox = Widget.extend({ + init: function (settings) { + var self = this; + self._super(settings); + self.classes.add('textbox'); + if (settings.multiline) { + self.classes.add('multiline'); + } else { + self.on('keydown', function (e) { + var rootControl; + if (e.keyCode === 13) { + e.preventDefault(); + self.parents().reverse().each(function (ctrl) { + if (ctrl.toJSON) { + rootControl = ctrl; + return false; + } + }); + self.fire('submit', { data: rootControl.toJSON() }); + } + }); + self.on('keyup', function (e) { + self.state.set('value', e.target.value); + }); + } + }, + repaint: function () { + var self = this; + var style, rect, borderBox, borderW, borderH = 0, lastRepaintRect; + style = self.getEl().style; + rect = self._layoutRect; + lastRepaintRect = self._lastRepaintRect || {}; + var doc = document; + if (!self.settings.multiline && doc.all && (!doc.documentMode || doc.documentMode <= 8)) { + style.lineHeight = rect.h - borderH + 'px'; + } + borderBox = self.borderBox; + borderW = borderBox.left + borderBox.right + 8; + borderH = borderBox.top + borderBox.bottom + (self.settings.multiline ? 8 : 0); + if (rect.x !== lastRepaintRect.x) { + style.left = rect.x + 'px'; + lastRepaintRect.x = rect.x; + } + if (rect.y !== lastRepaintRect.y) { + style.top = rect.y + 'px'; + lastRepaintRect.y = rect.y; + } + if (rect.w !== lastRepaintRect.w) { + style.width = rect.w - borderW + 'px'; + lastRepaintRect.w = rect.w; + } + if (rect.h !== lastRepaintRect.h) { + style.height = rect.h - borderH + 'px'; + lastRepaintRect.h = rect.h; + } + self._lastRepaintRect = lastRepaintRect; + self.fire('repaint', {}, false); + return self; + }, + renderHtml: function () { + var self = this; + var settings = self.settings; + var attrs, elm; + attrs = { + id: self._id, + hidefocus: '1' + }; + global$2.each([ + 'rows', + 'spellcheck', + 'maxLength', + 'size', + 'readonly', + 'min', + 'max', + 'step', + 'list', + 'pattern', + 'placeholder', + 'required', + 'multiple' + ], function (name) { + attrs[name] = settings[name]; }); - - // Preload skin css - if (args.skinUiCss) { - DOM.styleSheetLoader.load(args.skinUiCss, SkinLoaded.fireSkinLoaded(editor)); + if (self.disabled()) { + attrs.disabled = 'disabled'; } - - return {}; - }; - - return { - render: render - }; - } -); - -/** - * ResolveGlobal.js - * - * Released under LGPL License. - * Copyright (c) 1999-2017 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.core.ui.Throbber', - [ - 'global!tinymce.util.Tools.resolve' - ], - function (resolve) { - return resolve('tinymce.ui.Throbber'); - } -); - -/** - * ProgressState.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.modern.ui.ProgressState', - [ - 'tinymce.core.ui.Throbber' - ], - function (Throbber) { - var setup = function (editor, theme) { - var throbber; - - editor.on('ProgressState', function (e) { - throbber = throbber || new Throbber(theme.panel.getEl('body')); - - if (e.state) { - throbber.show(e.time); - } else { - throbber.hide(); + if (settings.subtype) { + attrs.type = settings.subtype; + } + elm = funcs.create(settings.multiline ? 'textarea' : 'input', attrs); + elm.value = self.state.get('value'); + elm.className = self.classes; + return elm.outerHTML; + }, + value: function (value) { + if (arguments.length) { + this.state.set('value', value); + return this; + } + if (this.state.get('rendered')) { + this.state.set('value', this.getEl().value); + } + return this.state.get('value'); + }, + postRender: function () { + var self = this; + self.getEl().value = self.state.get('value'); + self._super(); + self.$el.on('change', function (e) { + self.state.set('value', e.target.value); + self.fire('change', e); + }); + }, + bindStates: function () { + var self = this; + self.state.on('change:value', function (e) { + if (self.getEl().value !== e.value) { + self.getEl().value = e.value; } }); - }; + self.state.on('change:disabled', function (e) { + self.getEl().disabled = e.value; + }); + return self._super(); + }, + remove: function () { + this.$el.off(); + this._super(); + } + }); + var getApi = function () { return { - setup: setup - }; - } -); - -/** - * Theme.js - * - * Released under LGPL License. - * Copyright (c) 1999-2016 Ephox Corp. All rights reserved - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -define( - 'tinymce.themes.modern.Theme', - [ - 'global!window', - 'tinymce.core.AddOnManager', - 'tinymce.core.EditorManager', - 'tinymce.core.Env', - 'tinymce.core.ui.Api', - 'tinymce.themes.modern.modes.Iframe', - 'tinymce.themes.modern.modes.Inline', - 'tinymce.themes.modern.ui.ProgressState', - 'tinymce.themes.modern.ui.Resize' - ], - function (window, AddOnManager, EditorManager, Env, Api, Iframe, Inline, ProgressState, Resize) { - var ThemeManager = AddOnManager.ThemeManager; - - Api.appendTo(window.tinymce ? window.tinymce : {}); - - var renderUI = function (editor, theme, args) { - var settings = editor.settings; - var skin = settings.skin !== false ? settings.skin || 'lightgray' : false; - - if (skin) { - var skinUrl = settings.skin_url; - - if (skinUrl) { - skinUrl = editor.documentBaseURI.toAbsolute(skinUrl); - } else { - skinUrl = EditorManager.baseURL + '/skins/' + skin; - } - - args.skinUiCss = skinUrl + '/skin.min.css'; - - // Load content.min.css or content.inline.min.css - editor.contentCSS.push(skinUrl + '/content' + (editor.inline ? '.inline' : '') + '.min.css'); - } - - ProgressState.setup(editor, theme); - - if (settings.inline) { - return Inline.render(editor, theme, args); - } - - return Iframe.render(editor, theme, args); + Selector: Selector, + Collection: Collection$2, + ReflowQueue: $_5c4g75txjfuw8sfo, + Control: Control$1, + Factory: global$4, + KeyboardNavigation: KeyboardNavigation, + Container: Container, + DragHelper: DragHelper, + Scrollable: $_8d5ltqtzjfuw8sfw, + Panel: Panel, + Movable: $_831wnjtkjfuw8sdt, + Resizable: $_4ucwx9u1jfuw8sg2, + FloatPanel: FloatPanel, + Window: Window, + MessageBox: MessageBox, + Tooltip: Tooltip, + Widget: Widget, + Progress: Progress, + Notification: Notification, + Layout: Layout, + AbsoluteLayout: AbsoluteLayout, + Button: Button, + ButtonGroup: ButtonGroup, + Checkbox: Checkbox, + ComboBox: ComboBox, + ColorBox: ColorBox, + PanelButton: PanelButton, + ColorButton: ColorButton, + ColorPicker: ColorPicker, + Path: Path, + ElementPath: ElementPath, + FormItem: FormItem, + Form: Form, + FieldSet: FieldSet, + FilePicker: FilePicker, + FitLayout: FitLayout, + FlexLayout: FlexLayout, + FlowLayout: FlowLayout, + FormatControls: $_94fs8fvxjfuw8sn0, + GridLayout: GridLayout, + Iframe: Iframe$1, + InfoBox: InfoBox, + Label: Label, + Toolbar: Toolbar$1, + MenuBar: MenuBar, + MenuButton: MenuButton, + MenuItem: MenuItem, + Throbber: Throbber, + Menu: Menu, + ListBox: ListBox, + Radio: Radio, + ResizeHandle: ResizeHandle, + SelectBox: SelectBox, + Slider: Slider, + Spacer: Spacer, + SplitButton: SplitButton, + StackLayout: StackLayout, + TabPanel: TabPanel, + TextBox: TextBox, + DropZone: DropZone, + BrowseButton: BrowseButton }; - - ThemeManager.add('modern', function (editor) { - return { - renderUI: function (args) { - return renderUI(editor, this, args); - }, - resizeTo: function (w, h) { - return Resize.resizeTo(editor, w, h); - }, - resizeBy: function (dw, dh) { - return Resize.resizeBy(editor, dw, dh); - } - }; + }; + var appendTo = function (target) { + if (target.ui) { + global$2.each(getApi(), function (ref, key) { + target.ui[key] = ref; + }); + } else { + target.ui = getApi(); + } + }; + var registerToFactory = function () { + global$2.each(getApi(), function (ref, key) { + global$4.add(key, ref); }); + }; + var Api = { + appendTo: appendTo, + registerToFactory: registerToFactory + }; - return function () { - }; + Api.registerToFactory(); + Api.appendTo(window.tinymce ? window.tinymce : {}); + global.add('modern', function (editor) { + $_94fs8fvxjfuw8sn0.setup(editor); + return $_cf5qtqsrjfuw8sbf.get(editor); + }); + function Theme () { } -); -dem('tinymce.themes.modern.Theme')(); + return Theme; + +}()); })(); diff --git a/wp-includes/js/tinymce/themes/modern/theme.min.js b/wp-includes/js/tinymce/themes/modern/theme.min.js index 524b421e8..16623cb7c 100644 --- a/wp-includes/js/tinymce/themes/modern/theme.min.js +++ b/wp-includes/js/tinymce/themes/modern/theme.min.js @@ -1 +1 @@ -!function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("1",window),h("a",tinymce.util.Tools.resolve),g("2",["a"],function(a){return a("tinymce.AddOnManager")}),g("3",["a"],function(a){return a("tinymce.EditorManager")}),g("4",["a"],function(a){return a("tinymce.Env")}),g("5",["a"],function(a){return a("tinymce.ui.Api")}),g("b",["a"],function(a){return a("tinymce.dom.DOMUtils")}),g("c",["a"],function(a){return a("tinymce.ui.Factory")}),g("d",["a"],function(a){return a("tinymce.util.Tools")}),g("e",[],function(){var a=function(a,b){return function(){var c=a.find(b)[0];c&&c.focus(!0)}},b=function(b,c){b.shortcuts.add("Alt+F9","",a(c,"menubar")),b.shortcuts.add("Alt+F10,F10","",a(c,"toolbar")),b.shortcuts.add("Alt+F11","",a(c,"elementpath")),c.on("cancel",function(){b.focus()})};return{addKeys:b}}),g("f",["b"],function(a){var b=a.DOM,c=function(a,c,d){return function(){var e=a.getContentAreaContainer().querySelector("iframe").offsetWidth,f=Math.max(e-a.getDoc().documentElement.offsetWidth,0);b.setStyle(c,"right",f+"px"),d?b.setStyle(c,"top","-16px"):b.setStyle(c,"bottom","1px")}},d=function(a){return function(){b.hide(a)}},e=function(a,b,d){c(a,b,d)(),a.on("NodeChange ResizeEditor",c(a,b,d))},f=function(a,b,c){c.appendChild(b),e(a,b,!0)},g=function(a,b){a.getContainer().appendChild(b),e(a,b,!1)},h=function(a){a.on("SkinLoaded",function(){var c=b.create("div",{"class":"mce-branding-powered-by"}),e=a.getContainer().querySelector(".mce-statusbar");e?f(a,c,e):g(a,c),b.bind(c,"click",d(c))})},i=function(a){a.settings.branding!==!1&&h(a)};return{setup:i}}),g("n",["a"],function(a){return a("tinymce.util.Delay")}),g("o",["a"],function(a){return a("tinymce.geom.Rect")}),g("k",["d","c"],function(a,b){var c="undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",d=function(c,d,e){var f,g=[];if(d)return a.each(d.split(/[ ,]/),function(a){var d,h=function(){var b=c.selection;a.settings.stateSelector&&b.selectorChanged(a.settings.stateSelector,function(b){a.active(b)},!0),a.settings.disabledStateSelector&&b.selectorChanged(a.settings.disabledStateSelector,function(b){a.disabled(b)})};"|"==a?f=null:(f||(f={type:"buttongroup",items:[]},g.push(f)),c.buttons[a]&&(d=a,a=c.buttons[d],"function"==typeof a&&(a=a()),a.type=a.type||"button",a.size=e,a=b.create(a),f.items.push(a),c.initialized?h():c.on("init",h)))}),{type:"toolbar",layout:"flow",items:g}},e=function(b,e){var f=[],g=b.settings,h=function(a){if(a)return f.push(d(b,a,e)),!0};if(a.isArray(g.toolbar)){if(0===g.toolbar.length)return;a.each(g.toolbar,function(a,b){g["toolbar"+(b+1)]=a}),delete g.toolbar}for(var i=1;i<10&&h(g["toolbar"+i]);i++);if(f.length||g.toolbar===!1||h(g.toolbar||c),f.length)return{type:"panel",layout:"stack",classes:"toolbar-grp",ariaRoot:!0,ariaRemember:!0,items:f}};return{createToolbar:d,createToolbars:e}}),g("g",["b","d","n","c","o","k"],function(a,b,c,d,e,f){var g=a.DOM,h=function(a){return{left:a.x,top:a.y,width:a.w,height:a.h,right:a.x+a.w,bottom:a.y+a.h}},i=function(a){b.each(a.contextToolbars,function(a){a.panel&&a.panel.hide()})},j=function(a,b){a.moveTo(b.left,b.top)},k=function(a,c,d){c=c?c.substr(0,2):"",b.each({t:"down",b:"up"},function(b,e){a.classes.toggle("arrow-"+b,d(e,c.substr(0,1)))}),b.each({l:"left",r:"right"},function(b,e){a.classes.toggle("arrow-"+b,d(e,c.substr(1,1)))})},l=function(a,b,c,d,e,f){return f=h({x:b,y:c,w:f.w,h:f.h}),a&&(f=a({elementRect:h(d),contentAreaRect:h(e),panelRect:f})),f},m=function(a){var h,m=a.settings,n=function(){return a.contextToolbars||[]},o=function(b){var c,d,e;return c=g.getPos(a.getContentAreaContainer()),d=a.dom.getRect(b),e=a.dom.getRoot(),"BODY"===e.nodeName&&(d.x-=e.ownerDocument.documentElement.scrollLeft||e.scrollLeft,d.y-=e.ownerDocument.documentElement.scrollTop||e.scrollTop),d.x+=c.x,d.y+=c.y,d},p=function(b,c){var d,f,h,n,p,q,r,s,t=m.inline_toolbar_position_handler;if(!a.removed){if(!b||!b.toolbar.panel)return void i(a);r=["bc-tc","tc-bc","tl-bl","bl-tl","tr-br","br-tr"],p=b.toolbar.panel,c&&p.show(),h=o(b.element),f=g.getRect(p.getEl()),n=g.getRect(a.getContentAreaContainer()||a.getBody()),s=25,"inline"!==g.getStyle(b.element,"display",!0)&&(h.w=b.element.clientWidth,h.h=b.element.clientHeight),a.inline||(n.w=a.getDoc().documentElement.offsetWidth),a.selection.controlSelection.isResizable(b.element)&&h.w<s&&(h=e.inflate(h,0,8)),d=e.findBestRelativePosition(f,h,n,r),h=e.clamp(h,n),d?(q=e.relativePosition(f,h,d),j(p,l(t,q.x,q.y,h,n,f))):(n.h+=f.h,h=e.intersect(n,h),h?(d=e.findBestRelativePosition(f,h,n,["bc-tc","bl-tl","br-tr"]),d?(q=e.relativePosition(f,h,d),j(p,l(t,q.x,q.y,h,n,f))):j(p,l(t,h.x,h.y,h,n,f))):p.hide()),k(p,d,function(a,b){return a===b})}},q=function(b){return function(){var d=function(){a.selection&&p(u(a.selection.getNode()),b)};c.requestAnimationFrame(d)}},r=function(){h||(h=a.selection.getScrollContainer()||a.getWin(),g.bind(h,"scroll",q(!0)),a.on("remove",function(){g.unbind(h,"scroll")}))},s=function(b){var c;return b.toolbar.panel?(b.toolbar.panel.show(),void p(b)):(r(),c=d.create({type:"floatpanel",role:"dialog",classes:"tinymce tinymce-inline arrow",ariaLabel:"Inline toolbar",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:!0,border:1,items:f.createToolbar(a,b.toolbar.items),oncancel:function(){a.focus()}}),b.toolbar.panel=c,c.renderTo(document.body).reflow(),void p(b))},t=function(){b.each(n(),function(a){a.panel&&a.panel.hide()})},u=function(b){var c,d,e,f=n();for(e=a.$(b).parents().add(b),c=e.length-1;c>=0;c--)for(d=f.length-1;d>=0;d--)if(f[d].predicate(e[c]))return{toolbar:f[d],element:e[c]};return null};a.on("click keyup setContent ObjectResized",function(b){("setcontent"!==b.type||b.selection)&&c.setEditorTimeout(a,function(){var b;b=u(a.selection.getNode()),b?(t(),s(b)):t()})}),a.on("blur hide contextmenu",t),a.on("ObjectResizeStart",function(){var b=u(a.selection.getNode());b&&b.toolbar.panel&&b.toolbar.panel.hide()}),a.on("ResizeEditor ResizeWindow",q(!0)),a.on("nodeChange",q(!1)),a.on("remove",function(){b.each(n(),function(a){a.panel&&a.panel.remove()}),a.contextToolbars={}}),a.shortcuts.add("ctrl+shift+e > ctrl+shift+p","",function(){var b=u(a.selection.getNode());b&&b.toolbar.panel&&b.toolbar.panel.items()[0].focus()})};return{addContextualToolbars:m}}),g("h",["d"],function(a){var b={file:{title:"File",items:"newdocument"},edit:{title:"Edit",items:"undo redo | cut copy paste pastetext | selectall"},insert:{title:"Insert",items:"|"},view:{title:"View",items:"visualaid |"},format:{title:"Format",items:"bold italic underline strikethrough superscript subscript | formats | removeformat"},table:{title:"Table"},tools:{title:"Tools"}},c=function(a,b){var c;return"|"==b?{text:"|"}:c=a[b]},d=function(d,e,f){var g,h,i,j,k;if(k=a.makeMap((e.removed_menuitems||"").split(/[ ,]/)),e.menu?(h=e.menu[f],j=!0):h=b[f],h){g={text:h.title},i=[],a.each((h.items||"").split(/[ ,]/),function(a){var b=c(d,a);b&&!k[a]&&i.push(c(d,a))}),j||a.each(d,function(a){a.context==f&&("before"==a.separator&&i.push({text:"|"}),a.prependToContext?i.unshift(a):i.push(a),"after"==a.separator&&i.push({text:"|"}))});for(var l=0;l<i.length;l++)"|"==i[l].text&&(0!==l&&l!=i.length-1||i.splice(l,1));if(g.menu=i,!g.menu.length)return null}return g},e=function(a){var c,e=[],f=a.settings,g=[];if(f.menu)for(c in f.menu)g.push(c);else for(c in b)g.push(c);for(var h="string"==typeof f.menubar?f.menubar.split(/[ ,]/):g,i=0;i<h.length;i++){var j=h[i];j=d(a.menuItems,a.settings,j),j&&e.push(j)}return e};return{createMenuButtons:e}}),g("9",["b"],function(a){var b=a.DOM,c=function(a){return{width:a.clientWidth,height:a.clientHeight}},d=function(a,d,e){var f,g,h,i,j=a.settings;f=a.getContainer(),g=a.getContentAreaContainer().firstChild,h=c(f),i=c(g),null!==d&&(d=Math.max(j.min_width||100,d),d=Math.min(j.max_width||65535,d),b.setStyle(f,"width",d+(h.width-i.width)),b.setStyle(g,"width",d)),e=Math.max(j.min_height||100,e),e=Math.min(j.max_height||65535,e),b.setStyle(g,"height",e),a.fire("ResizeEditor")},e=function(a,b,c){var e=a.getContentAreaContainer();d(a,e.clientWidth+b,e.clientHeight+c)};return{resizeTo:d,resizeBy:e}}),g("i",["d","c","4"],function(a,b,c){var d=function(a){return{element:function(){return a}}},e=function(a,b,c){var e=a.settings[c];e&&e(d(b.getEl("body")))},f=function(b,c,d){a.each(d,function(a){var d=c.items().filter("#"+a.name)[0];d&&d.visible()&&a.name!==b&&(e(a,d,"onhide"),d.visible(!1))})},g=function(a){a.items().each(function(a){a.active(!1)})},h=function(b,c){return a.grep(b,function(a){return a.name===c})[0]},i=function(a,c,d){return function(i){var j=i.control,k=j.parents().filter("panel")[0],l=k.find("#"+c)[0],m=h(d,c);f(c,k,d),g(j.parent()),l&&l.visible()?(e(m,l,"onhide"),l.hide(),j.active(!1)):(l?(l.show(),e(m,l,"onshow")):(l=b.create({type:"container",name:c,layout:"stack",classes:"sidebar-panel",html:""}),k.prepend(l),e(m,l,"onrender"),e(m,l,"onshow")),j.active(!0)),a.fire("ResizeEditor")}},j=function(){return!c.ie||c.ie>=11},k=function(a){return!(!j()||!a.sidebars)&&a.sidebars.length>0},l=function(b){var c=a.map(b.sidebars,function(a){var c=a.settings;return{type:"button",icon:c.icon,image:c.image,tooltip:c.tooltip,onclick:i(b,a.name,b.sidebars)}});return{type:"panel",name:"sidebar",layout:"stack",classes:"sidebar",items:[{type:"toolbar",layout:"stack",classes:"sidebar-toolbar",items:c}]}};return{hasSidebar:k,createSidebar:l}}),g("j",[],function(){var a=function(a){var b=function(){a._skinLoaded=!0,a.fire("SkinLoaded")};return function(){a.initialized?b():a.on("init",b)}};return{fireSkinLoaded:a}}),g("6",["b","c","d","e","f","g","h","9","i","j","k"],function(a,b,c,d,e,f,g,h,i,j,k){var l=a.DOM,m=function(a){return function(b){a.find("*").disabled("readonly"===b.mode)}},n=function(a){return{type:"panel",name:"iframe",layout:"stack",classes:"edit-area",border:a,html:""}},o=function(a){return{type:"panel",layout:"stack",classes:"edit-aria-container",border:"1 0 0 0",items:[n("0"),i.createSidebar(a)]}},p=function(a,c,p){var q,r,s,t=a.settings;return p.skinUiCss&&l.styleSheetLoader.load(p.skinUiCss,j.fireSkinLoaded(a)),q=c.panel=b.create({type:"panel",role:"application",classes:"tinymce",style:"visibility: hidden",layout:"stack",border:1,items:[t.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:g.createMenuButtons(a)},k.createToolbars(a,t.toolbar_items_size),i.hasSidebar(a)?o(a):n("1 0 0 0")]}),t.resize!==!1&&(r={type:"resizehandle",direction:t.resize,onResizeStart:function(){var b=a.getContentAreaContainer().firstChild;s={width:b.clientWidth,height:b.clientHeight}},onResize:function(b){"both"===t.resize?h.resizeTo(a,s.width+b.deltaX,s.height+b.deltaY):h.resizeTo(a,null,s.height+b.deltaY)}}),t.statusbar!==!1&&q.add({type:"panel",name:"statusbar",classes:"statusbar",layout:"flow",border:"1 0 0 0",ariaRoot:!0,items:[{type:"elementpath",editor:a},r]}),a.fire("BeforeRenderUI"),a.on("SwitchMode",m(q)),q.renderBefore(p.targetNode).reflow(),t.readonly&&a.setMode("readonly"),p.width&&l.setStyle(q.getEl(),"width",p.width),a.on("remove",function(){q.remove(),q=null}),d.addKeys(a,q),f.addContextualToolbars(a),e.setup(a),{iframeContainer:q.find("#iframe")[0].getEl(),editorContainer:q.getEl()}};return{render:p}}),g("l",["a"],function(a){return a("tinymce.ui.FloatPanel")}),g("7",["d","c","b","l","k","h","g","e","j"],function(a,b,c,d,e,f,g,h,i){var j=function(a,j,k){var l,m,n=a.settings,o=c.DOM;n.fixed_toolbar_container&&(m=o.select(n.fixed_toolbar_container)[0]);var p=function(){if(l&&l.moveRel&&l.visible()&&!l._fixed){var b=a.selection.getScrollContainer(),c=a.getBody(),d=0,e=0;if(b){var f=o.getPos(c),g=o.getPos(b);d=Math.max(0,g.x-f.x),e=Math.max(0,g.y-f.y)}l.fixed(!1).moveRel(c,a.rtl?["tr-br","br-tr"]:["tl-bl","bl-tl","tr-br"]).moveBy(d,e)}},q=function(){l&&(l.show(),p(),o.addClass(a.getBody(),"mce-edit-focus"))},r=function(){l&&(l.hide(),d.hideAll(),o.removeClass(a.getBody(),"mce-edit-focus"))},s=function(){return l?void(l.visible()||q()):(l=j.panel=b.create({type:m?"panel":"floatpanel",role:"application",classes:"tinymce tinymce-inline",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:!!m,border:1,items:[n.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:f.createMenuButtons(a)},e.createToolbars(a,n.toolbar_items_size)]}),a.fire("BeforeRenderUI"),l.renderTo(m||document.body).reflow(),h.addKeys(a,l),q(),g.addContextualToolbars(a),a.on("nodeChange",p),a.on("activate",q),a.on("deactivate",r),void a.nodeChanged())};return n.content_editable=!0,a.on("focus",function(){k.skinUiCss?o.styleSheetLoader.load(k.skinUiCss,s,s):s()}),a.on("blur hide",r),a.on("remove",function(){l&&(l.remove(),l=null)}),k.skinUiCss&&o.styleSheetLoader.load(k.skinUiCss,i.fireSkinLoaded(a)),{}};return{render:j}}),g("m",["a"],function(a){return a("tinymce.ui.Throbber")}),g("8",["m"],function(a){var b=function(b,c){var d;b.on("ProgressState",function(b){d=d||new a(c.panel.getEl("body")),b.state?d.show(b.time):d.hide()})};return{setup:b}}),g("0",["1","2","3","4","5","6","7","8","9"],function(a,b,c,d,e,f,g,h,i){var j=b.ThemeManager;e.appendTo(a.tinymce?a.tinymce:{});var k=function(a,b,d){var e=a.settings,i=e.skin!==!1&&(e.skin||"lightgray");if(i){var j=e.skin_url;j=j?a.documentBaseURI.toAbsolute(j):c.baseURL+"/skins/"+i,d.skinUiCss=j+"/skin.min.css",a.contentCSS.push(j+"/content"+(a.inline?".inline":"")+".min.css")}return h.setup(a,b),e.inline?g.render(a,b,d):f.render(a,b,d)};return j.add("modern",function(a){return{renderUI:function(b){return k(a,this,b)},resizeTo:function(b,c){return i.resizeTo(a,b,c)},resizeBy:function(b,c){return i.resizeBy(a,b,c)}}}),function(){}}),d("0")()}(); \ No newline at end of file +!function(){"use strict";var e,t,n,i,r,o=tinymce.util.Tools.resolve("tinymce.ThemeManager"),l=tinymce.util.Tools.resolve("tinymce.EditorManager"),w=tinymce.util.Tools.resolve("tinymce.util.Tools"),d=function(e){return!1!==c(e)},c=function(e){return e.getParam("menubar")},f=function(e){return e.getParam("toolbar_items_size")},h=function(e){return e.getParam("menu")},m=function(e){return!1===e.settings.skin},g=function(e){var t=e.getParam("resize","vertical");return!1===t?"none":"both"===t?"both":"vertical"},p=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),v=tinymce.util.Tools.resolve("tinymce.ui.Factory"),b=tinymce.util.Tools.resolve("tinymce.util.I18n"),s=function(e){return e.fire("SkinLoaded")},y=function(e){return e.fire("ResizeEditor")},x=function(e){return e.fire("BeforeRenderUI")},a=function(t,n){return function(){var e=t.find(n)[0];e&&e.focus(!0)}},_=function(e,t){e.shortcuts.add("Alt+F9","",a(t,"menubar")),e.shortcuts.add("Alt+F10,F10","",a(t,"toolbar")),e.shortcuts.add("Alt+F11","",a(t,"elementpath")),t.on("cancel",function(){e.focus()})},R=tinymce.util.Tools.resolve("tinymce.geom.Rect"),u=tinymce.util.Tools.resolve("tinymce.util.Delay"),C=function(e){return function(){return e}},k={noop:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t]},noarg:function(n){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n()}},compose:function(n,i){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n(i.apply(null,arguments))}},constant:C,identity:function(e){return e},tripleEquals:function(e,t){return e===t},curry:function(o){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];for(var s=new Array(arguments.length-1),n=1;n<arguments.length;n++)s[n-1]=arguments[n];return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=new Array(arguments.length),i=0;i<n.length;i++)n[i]=arguments[i];var r=s.concat(n);return o.apply(null,r)}},not:function(n){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return!n.apply(null,arguments)}},die:function(e){return function(){throw new Error(e)}},apply:function(e){return e()},call:function(e){e()},never:C(!1),always:C(!0)},E=k.never,H=k.always,S=function(){return M},M=(i={fold:function(e,t){return e()},is:E,isSome:E,isNone:H,getOr:n=function(e){return e},getOrThunk:t=function(e){return e()},getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},or:n,orThunk:t,map:S,ap:S,each:function(){},bind:S,flatten:S,exists:E,forall:H,filter:S,equals:e=function(e){return e.isNone()},equals_:e,toArray:function(){return[]},toString:k.constant("none()")},Object.freeze&&Object.freeze(i),i),T=function(n){var e=function(){return n},t=function(){return r},i=function(e){return e(n)},r={fold:function(e,t){return t(n)},is:function(e){return n===e},isSome:H,isNone:E,getOr:e,getOrThunk:e,getOrDie:e,or:t,orThunk:t,map:function(e){return T(e(n))},ap:function(e){return e.fold(S,function(e){return T(e(n))})},each:function(e){e(n)},bind:i,flatten:e,exists:i,forall:i,filter:function(e){return e(n)?r:M},equals:function(e){return e.is(n)},equals_:function(e,t){return e.fold(E,function(e){return t(n,e)})},toArray:function(){return[n]},toString:function(){return"some("+n+")"}};return r},P={some:T,none:S,from:function(e){return null===e||e===undefined?M:T(e)}},W=function(e){return e?e.getRoot().uiContainer:null},D={getUiContainerDelta:function(e){var t=W(e);if(t&&"static"!==p.DOM.getStyle(t,"position",!0)){var n=p.DOM.getPos(t),i=t.scrollLeft-n.x,r=t.scrollTop-n.y;return P.some({x:i,y:r})}return P.none()},setUiContainer:function(e,t){var n=p.DOM.select(e.settings.ui_container)[0];t.getRoot().uiContainer=n},getUiContainer:W,inheritUiContainer:function(e,t){return t.uiContainer=W(e)}},N=function(i,e,r){var o,s=[];if(e)return w.each(e.split(/[ ,]/),function(t){var e,n=function(){var e=i.selection;t.settings.stateSelector&&e.selectorChanged(t.settings.stateSelector,function(e){t.active(e)},!0),t.settings.disabledStateSelector&&e.selectorChanged(t.settings.disabledStateSelector,function(e){t.disabled(e)})};"|"===t?o=null:(o||(o={type:"buttongroup",items:[]},s.push(o)),i.buttons[t]&&(e=t,"function"==typeof(t=i.buttons[e])&&(t=t()),t.type=t.type||"button",t.size=r,t=v.create(t),o.items.push(t),i.initialized?n():i.on("init",n)))}),{type:"toolbar",layout:"flow",items:s}},A=N,B=function(n,i){var e,t,r=[];if(w.each(!1===(t=(e=n).getParam("toolbar"))?[]:w.isArray(t)?w.grep(t,function(e){return 0<e.length}):function(e,t){for(var n=[],i=1;i<10;i++){var r=e["toolbar"+i];if(!r)break;n.push(r)}var o=e.toolbar?[e.toolbar]:[t];return 0<n.length?n:o}(e.settings,"undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"),function(e){var t;(t=e)&&r.push(N(n,t,i))}),r.length)return{type:"panel",layout:"stack",classes:"toolbar-grp",ariaRoot:!0,ariaRemember:!0,items:r}},O=p.DOM,z=function(e){return{left:e.x,top:e.y,width:e.w,height:e.h,right:e.x+e.w,bottom:e.y+e.h}},L=function(e,t){e.moveTo(t.left,t.top)},I=function(e,t,n,i,r,o){return o=z({x:t,y:n,w:o.w,h:o.h}),e&&(o=e({elementRect:z(i),contentAreaRect:z(r),panelRect:o})),o},F=function(x){var i,o=function(){return x.contextToolbars||[]},n=function(e,t){var n,i,r,o,s,a,l,u=x.getParam("inline_toolbar_position_handler");if(!x.removed){if(!e||!e.toolbar.panel)return c=x,void w.each(c.contextToolbars,function(e){e.panel&&e.panel.hide()});var c,d,f,h,m;l=["bc-tc","tc-bc","tl-bl","bl-tl","tr-br","br-tr"],s=e.toolbar.panel,t&&s.show(),d=e.element,f=O.getPos(x.getContentAreaContainer()),h=x.dom.getRect(d),"BODY"===(m=x.dom.getRoot()).nodeName&&(h.x-=m.ownerDocument.documentElement.scrollLeft||m.scrollLeft,h.y-=m.ownerDocument.documentElement.scrollTop||m.scrollTop),h.x+=f.x,h.y+=f.y,r=h,i=O.getRect(s.getEl()),o=O.getRect(x.getContentAreaContainer()||x.getBody());var g,p,v,b=D.getUiContainerDelta(s).getOr({x:0,y:0});if(r.x+=b.x,r.y+=b.y,i.x+=b.x,i.y+=b.y,o.x+=b.x,o.y+=b.y,"inline"!==O.getStyle(e.element,"display",!0)){var y=e.element.getBoundingClientRect();r.w=y.width,r.h=y.height}x.inline||(o.w=x.getDoc().documentElement.offsetWidth),x.selection.controlSelection.isResizable(e.element)&&r.w<25&&(r=R.inflate(r,0,8)),n=R.findBestRelativePosition(i,r,o,l),r=R.clamp(r,o),n?(a=R.relativePosition(i,r,n),L(s,I(u,a.x,a.y,r,o,i))):(o.h+=i.h,(r=R.intersect(o,r))?(n=R.findBestRelativePosition(i,r,o,["bc-tc","bl-tl","br-tr"]))?(a=R.relativePosition(i,r,n),L(s,I(u,a.x,a.y,r,o,i))):L(s,I(u,r.x,r.y,r,o,i)):s.hide()),g=s,v=function(e,t){return e===t},p=(p=n)?p.substr(0,2):"",w.each({t:"down",b:"up"},function(e,t){g.classes.toggle("arrow-"+e,v(t,p.substr(0,1)))}),w.each({l:"left",r:"right"},function(e,t){g.classes.toggle("arrow-"+e,v(t,p.substr(1,1)))})}},r=function(e){return function(){u.requestAnimationFrame(function(){x.selection&&n(a(x.selection.getNode()),e)})}},t=function(e){var t;if(e.toolbar.panel)return e.toolbar.panel.show(),void n(e);t=v.create({type:"floatpanel",role:"dialog",classes:"tinymce tinymce-inline arrow",ariaLabel:"Inline toolbar",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:!0,border:1,items:A(x,e.toolbar.items),oncancel:function(){x.focus()}}),D.setUiContainer(x,t),function(e){if(!i){var t=r(!0),n=D.getUiContainer(e);i=x.selection.getScrollContainer()||x.getWin(),O.bind(i,"scroll",t),O.bind(n,"scroll",t),x.on("remove",function(){O.unbind(i,"scroll",t),O.unbind(n,"scroll",t)})}}(t),(e.toolbar.panel=t).renderTo().reflow(),n(e)},s=function(){w.each(o(),function(e){e.panel&&e.panel.hide()})},a=function(e){var t,n,i,r=o();for(t=(i=x.$(e).parents().add(e)).length-1;0<=t;t--)for(n=r.length-1;0<=n;n--)if(r[n].predicate(i[t]))return{toolbar:r[n],element:i[t]};return null};x.on("click keyup setContent ObjectResized",function(e){("setcontent"!==e.type||e.selection)&&u.setEditorTimeout(x,function(){var e;(e=a(x.selection.getNode()))?(s(),t(e)):s()})}),x.on("blur hide contextmenu",s),x.on("ObjectResizeStart",function(){var e=a(x.selection.getNode());e&&e.toolbar.panel&&e.toolbar.panel.hide()}),x.on("ResizeEditor ResizeWindow",r(!0)),x.on("nodeChange",r(!1)),x.on("remove",function(){w.each(o(),function(e){e.panel&&e.panel.remove()}),x.contextToolbars={}}),x.shortcuts.add("ctrl+shift+e > ctrl+shift+p","",function(){var e=a(x.selection.getNode());e&&e.toolbar.panel&&e.toolbar.panel.items()[0].focus()})},U=function(t){return function(e){return function(e){if(null===e)return"null";var t=typeof e;return"object"===t&&Array.prototype.isPrototypeOf(e)?"array":"object"===t&&String.prototype.isPrototypeOf(e)?"string":t}(e)===t}},V={isString:U("string"),isObject:U("object"),isArray:U("array"),isNull:U("null"),isBoolean:U("boolean"),isUndefined:U("undefined"),isFunction:U("function"),isNumber:U("number")},j=(r=Array.prototype.indexOf)===undefined?function(e,t){return K(e,t)}:function(e,t){return r.call(e,t)},q=function(e,t){return-1<j(e,t)},Y=function(e,t){for(var n=e.length,i=new Array(n),r=0;r<n;r++){var o=e[r];i[r]=t(o,r,e)}return i},$=function(e,t){for(var n=0,i=e.length;n<i;n++)t(e[n],n,e)},X=function(e,t){for(var n=e.length-1;0<=n;n--)t(e[n],n,e)},J=function(e,t){for(var n=[],i=0,r=e.length;i<r;i++){var o=e[i];t(o,i,e)&&n.push(o)}return n},G=function(e,t){for(var n=0,i=e.length;n<i;n++)if(t(e[n],n,e))return P.some(n);return P.none()},K=function(e,t){for(var n=0,i=e.length;n<i;++n)if(e[n]===t)return n;return-1},Z=Array.prototype.push,Q=function(e){for(var t=[],n=0,i=e.length;n<i;++n){if(!Array.prototype.isPrototypeOf(e[n]))throw new Error("Arr.flatten item "+n+" was not an array, input: "+e);Z.apply(t,e[n])}return t},ee=function(e,t){for(var n=0,i=e.length;n<i;++n)if(!0!==t(e[n],n,e))return!1;return!0},te=Array.prototype.slice,ne=V.isFunction(Array.from)?Array.from:function(e){return te.call(e)},ie={map:Y,each:$,eachr:X,partition:function(e,t){for(var n=[],i=[],r=0,o=e.length;r<o;r++){var s=e[r];(t(s,r,e)?n:i).push(s)}return{pass:n,fail:i}},filter:J,groupBy:function(e,t){if(0===e.length)return[];for(var n=t(e[0]),i=[],r=[],o=0,s=e.length;o<s;o++){var a=e[o],l=t(a);l!==n&&(i.push(r),r=[]),n=l,r.push(a)}return 0!==r.length&&i.push(r),i},indexOf:function(e,t){var n=j(e,t);return-1===n?P.none():P.some(n)},foldr:function(e,t,n){return X(e,function(e){n=t(n,e)}),n},foldl:function(e,t,n){return $(e,function(e){n=t(n,e)}),n},find:function(e,t){for(var n=0,i=e.length;n<i;n++){var r=e[n];if(t(r,n,e))return P.some(r)}return P.none()},findIndex:G,flatten:Q,bind:function(e,t){var n=Y(e,t);return Q(n)},forall:ee,exists:function(e,t){return G(e,t).isSome()},contains:q,equal:function(e,n){return e.length===n.length&&ee(e,function(e,t){return e===n[t]})},reverse:function(e){var t=te.call(e,0);return t.reverse(),t},chunk:function(e,t){for(var n=[],i=0;i<e.length;i+=t){var r=e.slice(i,i+t);n.push(r)}return n},difference:function(e,t){return J(e,function(e){return!q(t,e)})},mapToObject:function(e,t){for(var n={},i=0,r=e.length;i<r;i++){var o=e[i];n[String(o)]=t(o,i)}return n},pure:function(e){return[e]},sort:function(e,t){var n=te.call(e,0);return n.sort(t),n},range:function(e,t){for(var n=[],i=0;i<e;i++)n.push(t(i));return n},head:function(e){return 0===e.length?P.none():P.some(e[0])},last:function(e){return 0===e.length?P.none():P.some(e[e.length-1])},from:ne},re={file:{title:"File",items:"newdocument restoredraft | preview | print"},edit:{title:"Edit",items:"undo redo | cut copy paste pastetext | selectall"},view:{title:"View",items:"code | visualaid visualchars visualblocks | spellchecker | preview fullscreen"},insert:{title:"Insert",items:"image link media template codesample inserttable | charmap hr | pagebreak nonbreaking anchor toc | insertdatetime"},format:{title:"Format",items:"bold italic underline strikethrough superscript subscript codeformat | blockformats align | removeformat"},tools:{title:"Tools",items:"spellchecker spellcheckerlanguage | a11ycheck"},table:{title:"Table"},help:{title:"Help"}},oe=function(e,t){return"|"===e?{name:"|",item:{text:"|"}}:t?{name:e,item:t}:null},se=function(e){return e&&"|"===e.item.text},ae=function(n,e,t,r){var i,o,s,a,l,u,c,d;return e?(o=e[r],a=!0):o=re[r],o&&(i={text:o.title},s=[],w.each((o.items||"").split(/[ ,]/),function(e){var t=oe(e,n[e]);t&&s.push(t)}),a||w.each(n,function(e,t){var n,i;e.context!==r||(n=s,i=t,ie.findIndex(n,function(e){return e.name===i}).isSome())||("before"===e.separator&&s.push({name:"|",item:{text:"|"}}),e.prependToContext?s.unshift(oe(t,e)):s.push(oe(t,e)),"after"===e.separator&&s.push({name:"|",item:{text:"|"}}))}),i.menu=ie.map((l=s,u=t,c=ie.filter(l,function(e){return!1===u.hasOwnProperty(e.name)}),d=ie.filter(c,function(e,t,n){return!se(e)||!se(n[t-1])}),ie.filter(d,function(e,t,n){return!se(e)||0<t&&t<n.length-1})),function(e){return e.item}),!i.menu.length)?null:i},le=function(e){for(var t,n=[],i=function(e){var t,n=[],i=h(e);if(i)for(t in i)n.push(t);else for(t in re)n.push(t);return n}(e),r=w.makeMap((t=e,t.getParam("removed_menuitems","")).split(/[ ,]/)),o=c(e),s="string"==typeof o?o.split(/[ ,]/):i,a=0;a<s.length;a++){var l=s[a],u=ae(e.menuItems,h(e),r,l);u&&n.push(u)}return n},ue=p.DOM,ce=function(e){return{width:e.clientWidth,height:e.clientHeight}},de=function(e,t,n){var i,r,o,s;i=e.getContainer(),r=e.getContentAreaContainer().firstChild,o=ce(i),s=ce(r),null!==t&&(t=Math.max(e.getParam("min_width",100,"number"),t),t=Math.min(e.getParam("max_width",65535,"number"),t),ue.setStyle(i,"width",t+(o.width-s.width)),ue.setStyle(r,"width",t)),n=Math.max(e.getParam("min_height",100,"number"),n),n=Math.min(e.getParam("max_height",65535,"number"),n),ue.setStyle(r,"height",n),y(e)},fe=de,he=function(e,t,n){var i=e.getContentAreaContainer();de(e,i.clientWidth+t,i.clientHeight+n)},me=tinymce.util.Tools.resolve("tinymce.Env"),ge=function(e,t,n){var i,r=e.settings[n];r&&r((i=t.getEl("body"),{element:function(){return i}}))},pe=function(c,d,f){return function(e){var t,n,i,r,o,s=e.control,a=s.parents().filter("panel")[0],l=a.find("#"+d)[0],u=(t=f,n=d,w.grep(t,function(e){return e.name===n})[0]);i=d,r=a,o=f,w.each(o,function(e){var t=r.items().filter("#"+e.name)[0];t&&t.visible()&&e.name!==i&&(ge(e,t,"onhide"),t.visible(!1))}),s.parent().items().each(function(e){e.active(!1)}),l&&l.visible()?(ge(u,l,"onhide"),l.hide(),s.active(!1)):(l?l.show():(l=v.create({type:"container",name:d,layout:"stack",classes:"sidebar-panel",html:""}),a.prepend(l),ge(u,l,"onrender")),ge(u,l,"onshow"),s.active(!0)),y(c)}},ve=function(e){return!(me.ie&&!(11<=me.ie)||!e.sidebars)&&0<e.sidebars.length},be=function(n){return{type:"panel",name:"sidebar",layout:"stack",classes:"sidebar",items:[{type:"toolbar",layout:"stack",classes:"sidebar-toolbar",items:w.map(n.sidebars,function(e){var t=e.settings;return{type:"button",icon:t.icon,image:t.image,tooltip:t.tooltip,onclick:pe(n,e.name,n.sidebars)}})}]}},ye=function(e){var t=function(){e._skinLoaded=!0,s(e)};return function(){e.initialized?t():e.on("init",t)}},xe=p.DOM,we=function(e){return{type:"panel",name:"iframe",layout:"stack",classes:"edit-area",border:e,html:""}},_e=function(t,e,n){var i,r,o,s,a;if(!1===m(t)&&n.skinUiCss?xe.styleSheetLoader.load(n.skinUiCss,ye(t)):ye(t)(),i=e.panel=v.create({type:"panel",role:"application",classes:"tinymce",style:"visibility: hidden",layout:"stack",border:1,items:[{type:"container",classes:"top-part",items:[!1===d(t)?null:{type:"menubar",border:"0 0 1 0",items:le(t)},B(t,f(t))]},ve(t)?(s=t,{type:"panel",layout:"stack",classes:"edit-aria-container",border:"1 0 0 0",items:[we("0"),be(s)]}):we("1 0 0 0")]}),D.setUiContainer(t,i),"none"!==g(t)&&(r={type:"resizehandle",direction:g(t),onResizeStart:function(){var e=t.getContentAreaContainer().firstChild;o={width:e.clientWidth,height:e.clientHeight}},onResize:function(e){"both"===g(t)?fe(t,o.width+e.deltaX,o.height+e.deltaY):fe(t,null,o.height+e.deltaY)}}),t.getParam("statusbar",!0,"boolean")){var l=b.translate(["Powered by {0}",'<a href="https://www.tinymce.com/?utm_campaign=editor_referral&utm_medium=poweredby&utm_source=tinymce" rel="noopener" target="_blank" role="presentation" tabindex="-1">tinymce</a>']),u=t.getParam("branding",!0,"boolean")?{type:"label",classes:"branding",html:" "+l}:null;i.add({type:"panel",name:"statusbar",classes:"statusbar",layout:"flow",border:"1 0 0 0",ariaRoot:!0,items:[{type:"elementpath",editor:t},r,u]})}return x(t),t.on("SwitchMode",(a=i,function(e){a.find("*").disabled("readonly"===e.mode)})),i.renderBefore(n.targetNode).reflow(),t.getParam("readonly",!1,"boolean")&&t.setMode("readonly"),n.width&&xe.setStyle(i.getEl(),"width",n.width),t.on("remove",function(){i.remove(),i=null}),_(t,i),F(t),{iframeContainer:i.find("#iframe")[0].getEl(),editorContainer:i.getEl()}},Re=tinymce.util.Tools.resolve("tinymce.dom.DomQuery"),Ce=0,ke={id:function(){return"mceu_"+Ce++},create:function(e,t,n){var i=document.createElement(e);return p.DOM.setAttribs(i,t),"string"==typeof n?i.innerHTML=n:w.each(n,function(e){e.nodeType&&i.appendChild(e)}),i},createFragment:function(e){return p.DOM.createFragment(e)},getWindowSize:function(){return p.DOM.getViewPort()},getSize:function(e){var t,n;if(e.getBoundingClientRect){var i=e.getBoundingClientRect();t=Math.max(i.width||i.right-i.left,e.offsetWidth),n=Math.max(i.height||i.bottom-i.bottom,e.offsetHeight)}else t=e.offsetWidth,n=e.offsetHeight;return{width:t,height:n}},getPos:function(e,t){return p.DOM.getPos(e,t||ke.getContainer())},getContainer:function(){return me.container?me.container:document.body},getViewPort:function(e){return p.DOM.getViewPort(e)},get:function(e){return document.getElementById(e)},addClass:function(e,t){return p.DOM.addClass(e,t)},removeClass:function(e,t){return p.DOM.removeClass(e,t)},hasClass:function(e,t){return p.DOM.hasClass(e,t)},toggleClass:function(e,t,n){return p.DOM.toggleClass(e,t,n)},css:function(e,t,n){return p.DOM.setStyle(e,t,n)},getRuntimeStyle:function(e,t){return p.DOM.getStyle(e,t,!0)},on:function(e,t,n,i){return p.DOM.bind(e,t,n,i)},off:function(e,t,n){return p.DOM.unbind(e,t,n)},fire:function(e,t,n){return p.DOM.fire(e,t,n)},innerHtml:function(e,t){p.DOM.setHTML(e,t)}},Ee=function(e){return"static"===ke.getRuntimeStyle(e,"position")},He=function(e){return e.state.get("fixed")};function Se(e,t,n){var i,r,o,s,a,l,u,c,d,f;return d=Me(),o=(r=ke.getPos(t,D.getUiContainer(e))).x,s=r.y,He(e)&&Ee(document.body)&&(o-=d.x,s-=d.y),i=e.getEl(),a=(f=ke.getSize(i)).width,l=f.height,u=(f=ke.getSize(t)).width,c=f.height,"b"===(n=(n||"").split(""))[0]&&(s+=c),"r"===n[1]&&(o+=u),"c"===n[0]&&(s+=Math.round(c/2)),"c"===n[1]&&(o+=Math.round(u/2)),"b"===n[3]&&(s-=l),"r"===n[4]&&(o-=a),"c"===n[3]&&(s-=Math.round(l/2)),"c"===n[4]&&(o-=Math.round(a/2)),{x:o,y:s,w:a,h:l}}var Me=function(){var e=window,t=Math.max(e.pageXOffset,document.body.scrollLeft,document.documentElement.scrollLeft),n=Math.max(e.pageYOffset,document.body.scrollTop,document.documentElement.scrollTop);return{x:t,y:n,w:t+(e.innerWidth||document.documentElement.clientWidth),h:n+(e.innerHeight||document.documentElement.clientHeight)}},Te=function(e){var t,n=D.getUiContainer(e);return n&&!He(e)?{x:0,y:0,w:(t=n).scrollWidth-1,h:t.scrollHeight-1}:Me()},Pe={testMoveRel:function(e,t){for(var n=Te(this),i=0;i<t.length;i++){var r=Se(this,e,t[i]);if(He(this)){if(0<r.x&&r.x+r.w<n.w&&0<r.y&&r.y+r.h<n.h)return t[i]}else if(r.x>n.x&&r.x+r.w<n.w&&r.y>n.y&&r.y+r.h<n.h)return t[i]}return t[0]},moveRel:function(e,t){"string"!=typeof t&&(t=this.testMoveRel(e,t));var n=Se(this,e,t);return this.moveTo(n.x,n.y)},moveBy:function(e,t){var n=this.layoutRect();return this.moveTo(n.x+e,n.y+t),this},moveTo:function(e,t){var n=this;function i(e,t,n){return e<0?0:t<e+n&&(e=t-n)<0?0:e}if(n.settings.constrainToViewport){var r=Te(this),o=n.layoutRect();e=i(e,r.w,o.w),t=i(t,r.h,o.h)}var s=D.getUiContainer(n);return s&&Ee(s)&&!He(n)&&(e-=s.scrollLeft,t-=s.scrollTop),s&&(e+=1,t+=1),n.state.get("rendered")?n.layoutRect({x:e,y:t}).repaint():(n.settings.x=e,n.settings.y=t),n.fire("move",{x:e,y:t}),n}},We=tinymce.util.Tools.resolve("tinymce.util.Class"),De=tinymce.util.Tools.resolve("tinymce.util.EventDispatcher"),Ne=function(e){var t;if(e)return"number"==typeof e?{top:e=e||0,left:e,bottom:e,right:e}:(1===(t=(e=e.split(" ")).length)?e[1]=e[2]=e[3]=e[0]:2===t?(e[2]=e[0],e[3]=e[1]):3===t&&(e[3]=e[1]),{top:parseInt(e[0],10)||0,right:parseInt(e[1],10)||0,bottom:parseInt(e[2],10)||0,left:parseInt(e[3],10)||0})},Ae=function(i,e){function t(e){var t=parseFloat(function(e){var t=i.ownerDocument.defaultView;if(t){var n=t.getComputedStyle(i,null);return n?(e=e.replace(/[A-Z]/g,function(e){return"-"+e}),n.getPropertyValue(e)):null}return i.currentStyle[e]}(e));return isNaN(t)?0:t}return{top:t(e+"TopWidth"),right:t(e+"RightWidth"),bottom:t(e+"BottomWidth"),left:t(e+"LeftWidth")}};function Be(){}function Oe(e){this.cls=[],this.cls._map={},this.onchange=e||Be,this.prefix=""}w.extend(Oe.prototype,{add:function(e){return e&&!this.contains(e)&&(this.cls._map[e]=!0,this.cls.push(e),this._change()),this},remove:function(e){if(this.contains(e)){var t=void 0;for(t=0;t<this.cls.length&&this.cls[t]!==e;t++);this.cls.splice(t,1),delete this.cls._map[e],this._change()}return this},toggle:function(e,t){var n=this.contains(e);return n!==t&&(n?this.remove(e):this.add(e),this._change()),this},contains:function(e){return!!this.cls._map[e]},_change:function(){delete this.clsValue,this.onchange.call(this)}}),Oe.prototype.toString=function(){var e;if(this.clsValue)return this.clsValue;e="";for(var t=0;t<this.cls.length;t++)0<t&&(e+=" "),e+=this.prefix+this.cls[t];return e};var ze,Le,Ie,Fe=/^([\w\\*]+)?(?:#([\w\-\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i,Ue=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,Ve=/^\s*|\s*$/g,je=We.extend({init:function(e){var o=this.match;function s(e,t,n){var i;function r(e){e&&t.push(e)}return r(function(t){if(t)return t=t.toLowerCase(),function(e){return"*"===t||e.type===t}}((i=Fe.exec(e.replace(Ve,"")))[1])),r(function(t){if(t)return function(e){return e._name===t}}(i[2])),r(function(n){if(n)return n=n.split("."),function(e){for(var t=n.length;t--;)if(!e.classes.contains(n[t]))return!1;return!0}}(i[3])),r(function(n,i,r){if(n)return function(e){var t=e[n]?e[n]():"";return i?"="===i?t===r:"*="===i?0<=t.indexOf(r):"~="===i?0<=(" "+t+" ").indexOf(" "+r+" "):"!="===i?t!==r:"^="===i?0===t.indexOf(r):"$="===i&&t.substr(t.length-r.length)===r:!!r}}(i[4],i[5],i[6])),r(function(i){var t;if(i)return(i=/(?:not\((.+)\))|(.+)/i.exec(i))[1]?(t=a(i[1],[]),function(e){return!o(e,t)}):(i=i[2],function(e,t,n){return"first"===i?0===t:"last"===i?t===n-1:"even"===i?t%2==0:"odd"===i?t%2==1:!!e[i]&&e[i]()})}(i[7])),t.pseudo=!!i[7],t.direct=n,t}function a(e,t){var n,i,r,o=[];do{if(Ue.exec(""),(i=Ue.exec(e))&&(e=i[3],o.push(i[1]),i[2])){n=i[3];break}}while(i);for(n&&a(n,t),e=[],r=0;r<o.length;r++)">"!==o[r]&&e.push(s(o[r],[],">"===o[r-1]));return t.push(e),t}this._selectors=a(e,[])},match:function(e,t){var n,i,r,o,s,a,l,u,c,d,f,h,m;for(n=0,i=(t=t||this._selectors).length;n<i;n++){for(m=e,h=0,r=(o=(s=t[n]).length)-1;0<=r;r--)for(u=s[r];m;){if(u.pseudo)for(c=d=(f=m.parent().items()).length;c--&&f[c]!==m;);for(a=0,l=u.length;a<l;a++)if(!u[a](m,c,d)){a=l+1;break}if(a===l){h++;break}if(r===o-1)break;m=m.parent()}if(h===o)return!0}return!1},find:function(e){var t,n,u=[],i=this._selectors;function c(e,t,n){var i,r,o,s,a,l=t[n];for(i=0,r=e.length;i<r;i++){for(a=e[i],o=0,s=l.length;o<s;o++)if(!l[o](a,i,r)){o=s+1;break}if(o===s)n===t.length-1?u.push(a):a.items&&c(a.items(),t,n+1);else if(l.direct)return;a.items&&c(a.items(),t,n)}}if(e.items){for(t=0,n=i.length;t<n;t++)c(e.items(),i[t],0);1<n&&(u=function(e){for(var t,n=[],i=e.length;i--;)(t=e[i]).__checked||(n.push(t),t.__checked=1);for(i=n.length;i--;)delete n[i].__checked;return n}(u))}return ze||(ze=je.Collection),new ze(u)}}),qe=Array.prototype.push,Ye=Array.prototype.slice;Ie={length:0,init:function(e){e&&this.add(e)},add:function(e){return w.isArray(e)?qe.apply(this,e):e instanceof Le?this.add(e.toArray()):qe.call(this,e),this},set:function(e){var t,n=this,i=n.length;for(n.length=0,n.add(e),t=n.length;t<i;t++)delete n[t];return n},filter:function(t){var e,n,i,r,o=[];for("string"==typeof t?(t=new je(t),r=function(e){return t.match(e)}):r=t,e=0,n=this.length;e<n;e++)r(i=this[e])&&o.push(i);return new Le(o)},slice:function(){return new Le(Ye.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},each:function(e){return w.each(this,e),this},toArray:function(){return w.toArray(this)},indexOf:function(e){for(var t=this.length;t--&&this[t]!==e;);return t},reverse:function(){return new Le(w.toArray(this).reverse())},hasClass:function(e){return!!this[0]&&this[0].classes.contains(e)},prop:function(t,n){var e;return n!==undefined?(this.each(function(e){e[t]&&e[t](n)}),this):(e=this[0])&&e[t]?e[t]():void 0},exec:function(t){var n=w.toArray(arguments).slice(1);return this.each(function(e){e[t]&&e[t].apply(e,n)}),this},remove:function(){for(var e=this.length;e--;)this[e].remove();return this},addClass:function(t){return this.each(function(e){e.classes.add(t)})},removeClass:function(t){return this.each(function(e){e.classes.remove(t)})}},w.each("fire on off show hide append prepend before after reflow".split(" "),function(n){Ie[n]=function(){var t=w.toArray(arguments);return this.each(function(e){n in e&&e[n].apply(e,t)}),this}}),w.each("text name disabled active selected checked visible parent value data".split(" "),function(t){Ie[t]=function(e){return this.prop(t,e)}}),Le=We.extend(Ie);var $e=je.Collection=Le,Xe=function(e){this.create=e.create};Xe.create=function(r,o){return new Xe({create:function(t,n){var i,e=function(e){t.set(n,e.value)};return t.on("change:"+n,function(e){r.set(o,e.value)}),r.on("change:"+o,e),(i=t._bindings)||(i=t._bindings=[],t.on("destroy",function(){for(var e=i.length;e--;)i[e]()})),i.push(function(){r.off("change:"+o,e)}),r.get(o)}})};var Je=tinymce.util.Tools.resolve("tinymce.util.Observable");function Ge(e){return 0<e.nodeType}var Ke,Ze,Qe=We.extend({Mixins:[Je],init:function(e){var t,n;for(t in e=e||{})(n=e[t])instanceof Xe&&(e[t]=n.create(this,t));this.data=e},set:function(t,n){var i,r,o=this.data[t];if(n instanceof Xe&&(n=n.create(this,t)),"object"==typeof t){for(i in t)this.set(i,t[i]);return this}return function e(t,n){var i,r;if(t===n)return!0;if(null===t||null===n)return t===n;if("object"!=typeof t||"object"!=typeof n)return t===n;if(w.isArray(n)){if(t.length!==n.length)return!1;for(i=t.length;i--;)if(!e(t[i],n[i]))return!1}if(Ge(t)||Ge(n))return t===n;for(i in r={},n){if(!e(t[i],n[i]))return!1;r[i]=!0}for(i in t)if(!r[i]&&!e(t[i],n[i]))return!1;return!0}(o,n)||(this.data[t]=n,r={target:this,name:t,value:n,oldValue:o},this.fire("change:"+t,r),this.fire("change",r)),this},get:function(e){return this.data[e]},has:function(e){return e in this.data},bind:function(e){return Xe.create(this,e)},destroy:function(){this.fire("destroy")}}),et={},tt={add:function(e){var t=e.parent();if(t){if(!t._layout||t._layout.isNative())return;et[t._id]||(et[t._id]=t),Ke||(Ke=!0,u.requestAnimationFrame(function(){var e,t;for(e in Ke=!1,et)(t=et[e]).state.get("rendered")&&t.reflow();et={}},document.body))}},remove:function(e){et[e._id]&&delete et[e._id]}},nt="onmousewheel"in document,it=!1,rt=0,ot={Statics:{classPrefix:"mce-"},isRtl:function(){return Ze.rtl},classPrefix:"mce-",init:function(t){var e,n,i=this;function r(e){var t;for(e=e.split(" "),t=0;t<e.length;t++)i.classes.add(e[t])}i.settings=t=w.extend({},i.Defaults,t),i._id=t.id||"mceu_"+rt++,i._aria={role:t.role},i._elmCache={},i.$=Re,i.state=new Qe({visible:!0,active:!1,disabled:!1,value:""}),i.data=new Qe(t.data),i.classes=new Oe(function(){i.state.get("rendered")&&(i.getEl().className=this.toString())}),i.classes.prefix=i.classPrefix,(e=t.classes)&&(i.Defaults&&(n=i.Defaults.classes)&&e!==n&&r(n),r(e)),w.each("title text name visible disabled active value".split(" "),function(e){e in t&&i[e](t[e])}),i.on("click",function(){if(i.disabled())return!1}),i.settings=t,i.borderBox=Ne(t.border),i.paddingBox=Ne(t.padding),i.marginBox=Ne(t.margin),t.hidden&&i.hide()},Properties:"parent,name",getContainerElm:function(){var e=D.getUiContainer(this);return e||ke.getContainer()},getParentCtrl:function(e){for(var t,n=this.getRoot().controlIdLookup;e&&n&&!(t=n[e.id]);)e=e.parentNode;return t},initLayoutRect:function(){var e,t,n,i,r,o,s,a,l,u,c=this,d=c.settings,f=c.getEl();e=c.borderBox=c.borderBox||Ae(f,"border"),c.paddingBox=c.paddingBox||Ae(f,"padding"),c.marginBox=c.marginBox||Ae(f,"margin"),u=ke.getSize(f),a=d.minWidth,l=d.minHeight,r=a||u.width,o=l||u.height,n=d.width,i=d.height,s=void 0!==(s=d.autoResize)?s:!n&&!i,n=n||r,i=i||o;var h=e.left+e.right,m=e.top+e.bottom,g=d.maxWidth||65535,p=d.maxHeight||65535;return c._layoutRect=t={x:d.x||0,y:d.y||0,w:n,h:i,deltaW:h,deltaH:m,contentW:n-h,contentH:i-m,innerW:n-h,innerH:i-m,startMinWidth:a||0,startMinHeight:l||0,minW:Math.min(r,g),minH:Math.min(o,p),maxW:g,maxH:p,autoResize:s,scrollW:0},c._lastLayoutRect={},t},layoutRect:function(e){var t,n,i,r,o,s=this,a=s._layoutRect;return a||(a=s.initLayoutRect()),e?(i=a.deltaW,r=a.deltaH,e.x!==undefined&&(a.x=e.x),e.y!==undefined&&(a.y=e.y),e.minW!==undefined&&(a.minW=e.minW),e.minH!==undefined&&(a.minH=e.minH),(n=e.w)!==undefined&&(n=(n=n<a.minW?a.minW:n)>a.maxW?a.maxW:n,a.w=n,a.innerW=n-i),(n=e.h)!==undefined&&(n=(n=n<a.minH?a.minH:n)>a.maxH?a.maxH:n,a.h=n,a.innerH=n-r),(n=e.innerW)!==undefined&&(n=(n=n<a.minW-i?a.minW-i:n)>a.maxW-i?a.maxW-i:n,a.innerW=n,a.w=n+i),(n=e.innerH)!==undefined&&(n=(n=n<a.minH-r?a.minH-r:n)>a.maxH-r?a.maxH-r:n,a.innerH=n,a.h=n+r),e.contentW!==undefined&&(a.contentW=e.contentW),e.contentH!==undefined&&(a.contentH=e.contentH),(t=s._lastLayoutRect).x===a.x&&t.y===a.y&&t.w===a.w&&t.h===a.h||((o=Ze.repaintControls)&&o.map&&!o.map[s._id]&&(o.push(s),o.map[s._id]=!0),t.x=a.x,t.y=a.y,t.w=a.w,t.h=a.h),s):a},repaint:function(){var e,t,n,i,r,o,s,a,l,u,c=this;l=document.createRange?function(e){return e}:Math.round,e=c.getEl().style,i=c._layoutRect,a=c._lastRepaintRect||{},o=(r=c.borderBox).left+r.right,s=r.top+r.bottom,i.x!==a.x&&(e.left=l(i.x)+"px",a.x=i.x),i.y!==a.y&&(e.top=l(i.y)+"px",a.y=i.y),i.w!==a.w&&(u=l(i.w-o),e.width=(0<=u?u:0)+"px",a.w=i.w),i.h!==a.h&&(u=l(i.h-s),e.height=(0<=u?u:0)+"px",a.h=i.h),c._hasBody&&i.innerW!==a.innerW&&(u=l(i.innerW),(n=c.getEl("body"))&&((t=n.style).width=(0<=u?u:0)+"px"),a.innerW=i.innerW),c._hasBody&&i.innerH!==a.innerH&&(u=l(i.innerH),(n=n||c.getEl("body"))&&((t=t||n.style).height=(0<=u?u:0)+"px"),a.innerH=i.innerH),c._lastRepaintRect=a,c.fire("repaint",{},!1)},updateLayoutRect:function(){var e=this;e.parent()._lastRect=null,ke.css(e.getEl(),{width:"",height:""}),e._layoutRect=e._lastRepaintRect=e._lastLayoutRect=null,e.initLayoutRect()},on:function(e,t){var n,i,r,o=this;return st(o).on(e,"string"!=typeof(n=t)?n:function(e){return i||o.parentsAndSelf().each(function(e){var t=e.settings.callbacks;if(t&&(i=t[n]))return r=e,!1}),i?i.call(r,e):(e.action=n,void this.fire("execute",e))}),o},off:function(e,t){return st(this).off(e,t),this},fire:function(e,t,n){if((t=t||{}).control||(t.control=this),t=st(this).fire(e,t),!1!==n&&this.parent)for(var i=this.parent();i&&!t.isPropagationStopped();)i.fire(e,t,!1),i=i.parent();return t},hasEventListeners:function(e){return st(this).has(e)},parents:function(e){var t,n=new $e;for(t=this.parent();t;t=t.parent())n.add(t);return e&&(n=n.filter(e)),n},parentsAndSelf:function(e){return new $e(this).add(this.parents(e))},next:function(){var e=this.parent().items();return e[e.indexOf(this)+1]},prev:function(){var e=this.parent().items();return e[e.indexOf(this)-1]},innerHtml:function(e){return this.$el.html(e),this},getEl:function(e){var t=e?this._id+"-"+e:this._id;return this._elmCache[t]||(this._elmCache[t]=Re("#"+t)[0]),this._elmCache[t]},show:function(){return this.visible(!0)},hide:function(){return this.visible(!1)},focus:function(){try{this.getEl().focus()}catch(e){}return this},blur:function(){return this.getEl().blur(),this},aria:function(e,t){var n=this,i=n.getEl(n.ariaTarget);return void 0===t?n._aria[e]:(n._aria[e]=t,n.state.get("rendered")&&i.setAttribute("role"===e?e:"aria-"+e,t),n)},encode:function(e,t){return!1!==t&&(e=this.translate(e)),(e||"").replace(/[&<>"]/g,function(e){return"&#"+e.charCodeAt(0)+";"})},translate:function(e){return Ze.translate?Ze.translate(e):e},before:function(e){var t=this.parent();return t&&t.insert(e,t.items().indexOf(this),!0),this},after:function(e){var t=this.parent();return t&&t.insert(e,t.items().indexOf(this)),this},remove:function(){var t,e,n=this,i=n.getEl(),r=n.parent();if(n.items){var o=n.items().toArray();for(e=o.length;e--;)o[e].remove()}r&&r.items&&(t=[],r.items().each(function(e){e!==n&&t.push(e)}),r.items().set(t),r._lastRect=null),n._eventsRoot&&n._eventsRoot===n&&Re(i).off();var s=n.getRoot().controlIdLookup;return s&&delete s[n._id],i&&i.parentNode&&i.parentNode.removeChild(i),n.state.set("rendered",!1),n.state.destroy(),n.fire("remove"),n},renderBefore:function(e){return Re(e).before(this.renderHtml()),this.postRender(),this},renderTo:function(e){return Re(e||this.getContainerElm()).append(this.renderHtml()),this.postRender(),this},preRender:function(){},render:function(){},renderHtml:function(){return'<div id="'+this._id+'" class="'+this.classes+'"></div>'},postRender:function(){var e,t,n,i,r,o=this,s=o.settings;for(i in o.$el=Re(o.getEl()),o.state.set("rendered",!0),s)0===i.indexOf("on")&&o.on(i.substr(2),s[i]);if(o._eventsRoot){for(n=o.parent();!r&&n;n=n.parent())r=n._eventsRoot;if(r)for(i in r._nativeEvents)o._nativeEvents[i]=!0}at(o),s.style&&(e=o.getEl())&&(e.setAttribute("style",s.style),e.style.cssText=s.style),o.settings.border&&(t=o.borderBox,o.$el.css({"border-top-width":t.top,"border-right-width":t.right,"border-bottom-width":t.bottom,"border-left-width":t.left}));var a=o.getRoot();for(var l in a.controlIdLookup||(a.controlIdLookup={}),(a.controlIdLookup[o._id]=o)._aria)o.aria(l,o._aria[l]);!1===o.state.get("visible")&&(o.getEl().style.display="none"),o.bindStates(),o.state.on("change:visible",function(e){var t,n=e.value;o.state.get("rendered")&&(o.getEl().style.display=!1===n?"none":"",o.getEl().getBoundingClientRect()),(t=o.parent())&&(t._lastRect=null),o.fire(n?"show":"hide"),tt.add(o)}),o.fire("postrender",{},!1)},bindStates:function(){},scrollIntoView:function(e){var t,n,i,r,o,s,a=this.getEl(),l=a.parentNode,u=function(e,t){var n,i,r=e;for(n=i=0;r&&r!==t&&r.nodeType;)n+=r.offsetLeft||0,i+=r.offsetTop||0,r=r.offsetParent;return{x:n,y:i}}(a,l);return t=u.x,n=u.y,i=a.offsetWidth,r=a.offsetHeight,o=l.clientWidth,s=l.clientHeight,"end"===e?(t-=o-i,n-=s-r):"center"===e&&(t-=o/2-i/2,n-=s/2-r/2),l.scrollLeft=t,l.scrollTop=n,this},getRoot:function(){for(var e,t=this,n=[];t;){if(t.rootControl){e=t.rootControl;break}n.push(t),t=(e=t).parent()}e||(e=this);for(var i=n.length;i--;)n[i].rootControl=e;return e},reflow:function(){tt.remove(this);var e=this.parent();return e&&e._layout&&!e._layout.isNative()&&e.reflow(),this}};function st(n){return n._eventDispatcher||(n._eventDispatcher=new De({scope:n,toggleEvent:function(e,t){t&&De.isNative(e)&&(n._nativeEvents||(n._nativeEvents={}),n._nativeEvents[e]=!0,n.state.get("rendered")&&at(n))}})),n._eventDispatcher}function at(a){var e,t,n,l,i,r;function o(e){var t=a.getParentCtrl(e.target);t&&t.fire(e.type,e)}function s(){var e=l._lastHoverCtrl;e&&(e.fire("mouseleave",{target:e.getEl()}),e.parents().each(function(e){e.fire("mouseleave",{target:e.getEl()})}),l._lastHoverCtrl=null)}function u(e){var t,n,i,r=a.getParentCtrl(e.target),o=l._lastHoverCtrl,s=0;if(r!==o){if((n=(l._lastHoverCtrl=r).parents().toArray().reverse()).push(r),o){for((i=o.parents().toArray().reverse()).push(o),s=0;s<i.length&&n[s]===i[s];s++);for(t=i.length-1;s<=t;t--)(o=i[t]).fire("mouseleave",{target:o.getEl()})}for(t=s;t<n.length;t++)(r=n[t]).fire("mouseenter",{target:r.getEl()})}}function c(e){e.preventDefault(),"mousewheel"===e.type?(e.deltaY=-.025*e.wheelDelta,e.wheelDeltaX&&(e.deltaX=-.025*e.wheelDeltaX)):(e.deltaX=0,e.deltaY=e.detail),e=a.fire("wheel",e)}if(i=a._nativeEvents){for((n=a.parents().toArray()).unshift(a),e=0,t=n.length;!l&&e<t;e++)l=n[e]._eventsRoot;for(l||(l=n[n.length-1]||a),a._eventsRoot=l,t=e,e=0;e<t;e++)n[e]._eventsRoot=l;var d=l._delegates;for(r in d||(d=l._delegates={}),i){if(!i)return!1;"wheel"!==r||it?("mouseenter"===r||"mouseleave"===r?l._hasMouseEnter||(Re(l.getEl()).on("mouseleave",s).on("mouseover",u),l._hasMouseEnter=1):d[r]||(Re(l.getEl()).on(r,o),d[r]=!0),i[r]=!1):nt?Re(a.getEl()).on("mousewheel",c):Re(a.getEl()).on("DOMMouseScroll",c)}}}w.each("text title visible disabled active value".split(" "),function(t){ot[t]=function(e){return 0===arguments.length?this.state.get(t):(void 0!==e&&this.state.set(t,e),this)}});var lt=Ze=We.extend(ot),ut=function(e){return!!e.getAttribute("data-mce-tabstop")};function ct(e){var o,r,n=e.root;function i(e){return e&&1===e.nodeType}try{o=document.activeElement}catch(t){o=document.body}function s(e){return i(e=e||o)?e.getAttribute("role"):null}function a(e){for(var t,n=e||o;n=n.parentNode;)if(t=s(n))return t}function l(e){var t=o;if(i(t))return t.getAttribute("aria-"+e)}function u(e){var t=e.tagName.toUpperCase();return"INPUT"===t||"TEXTAREA"===t||"SELECT"===t}function c(t){var r=[];return function e(t){if(1===t.nodeType&&"none"!==t.style.display&&!t.disabled){var n;(u(n=t)&&!n.hidden||ut(n)||/^(button|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell|slider)$/.test(s(n)))&&r.push(t);for(var i=0;i<t.childNodes.length;i++)e(t.childNodes[i])}}(t||n.getEl()),r}function d(e){var t,n;(n=(e=e||r).parents().toArray()).unshift(e);for(var i=0;i<n.length&&!(t=n[i]).settings.ariaRoot;i++);return t}function f(e,t){return e<0?e=t.length-1:e>=t.length&&(e=0),t[e]&&t[e].focus(),e}function h(e,t){var n=-1,i=d();t=t||c(i.getEl());for(var r=0;r<t.length;r++)t[r]===o&&(n=r);n+=e,i.lastAriaIndex=f(n,t)}function m(){"tablist"===a()?h(-1,c(o.parentNode)):r.parent().submenu?b():h(-1)}function g(){var e=s(),t=a();"tablist"===t?h(1,c(o.parentNode)):"menuitem"===e&&"menu"===t&&l("haspopup")?y():h(1)}function p(){h(-1)}function v(){var e=s(),t=a();"menuitem"===e&&"menubar"===t?y():"button"===e&&l("haspopup")?y({key:"down"}):h(1)}function b(){r.fire("cancel")}function y(e){e=e||{},r.fire("click",{target:o,aria:e})}return r=n.getParentCtrl(o),n.on("keydown",function(e){function t(e,t){u(o)||ut(o)||"slider"!==s(o)&&!1!==t(e)&&e.preventDefault()}if(!e.isDefaultPrevented())switch(e.keyCode){case 37:t(e,m);break;case 39:t(e,g);break;case 38:t(e,p);break;case 40:t(e,v);break;case 27:b();break;case 14:case 13:case 32:t(e,y);break;case 9:!function(e){if("tablist"===a()){var t=c(r.getEl("body"))[0];t&&t.focus()}else h(e.shiftKey?-1:1)}(e),e.preventDefault()}}),n.on("focusin",function(e){o=e.target,r=e.control}),{focusFirst:function(e){var t=d(e),n=c(t.getEl());t.settings.ariaRemember&&"lastAriaIndex"in t?f(t.lastAriaIndex,n):f(0,n)}}}var dt={},ft=lt.extend({init:function(e){var t=this;t._super(e),(e=t.settings).fixed&&t.state.set("fixed",!0),t._items=new $e,t.isRtl()&&t.classes.add("rtl"),t.bodyClasses=new Oe(function(){t.state.get("rendered")&&(t.getEl("body").className=this.toString())}),t.bodyClasses.prefix=t.classPrefix,t.classes.add("container"),t.bodyClasses.add("container-body"),e.containerCls&&t.classes.add(e.containerCls),t._layout=v.create((e.layout||"")+"layout"),t.settings.items?t.add(t.settings.items):t.add(t.render()),t._hasBody=!0},items:function(){return this._items},find:function(e){return(e=dt[e]=dt[e]||new je(e)).find(this)},add:function(e){return this.items().add(this.create(e)).parent(this),this},focus:function(e){var t,n,i,r=this;if(!e||!(n=r.keyboardNav||r.parents().eq(-1)[0].keyboardNav))return i=r.find("*"),r.statusbar&&i.add(r.statusbar.items()),i.each(function(e){if(e.settings.autofocus)return t=null,!1;e.canFocus&&(t=t||e)}),t&&t.focus(),r;n.focusFirst(r)},replace:function(e,t){for(var n,i=this.items(),r=i.length;r--;)if(i[r]===e){i[r]=t;break}0<=r&&((n=t.getEl())&&n.parentNode.removeChild(n),(n=e.getEl())&&n.parentNode.removeChild(n)),t.parent(this)},create:function(e){var t,n=this,i=[];return w.isArray(e)||(e=[e]),w.each(e,function(e){e&&(e instanceof lt||("string"==typeof e&&(e={type:e}),t=w.extend({},n.settings.defaults,e),e.type=t.type=t.type||e.type||n.settings.defaultType||(t.defaults?t.defaults.type:null),e=v.create(t)),i.push(e))}),i},renderNew:function(){var i=this;return i.items().each(function(e,t){var n;e.parent(i),e.state.get("rendered")||((n=i.getEl("body")).hasChildNodes()&&t<=n.childNodes.length-1?Re(n.childNodes[t]).before(e.renderHtml()):Re(n).append(e.renderHtml()),e.postRender(),tt.add(e))}),i._layout.applyClasses(i.items().filter(":visible")),i._lastRect=null,i},append:function(e){return this.add(e).renderNew()},prepend:function(e){return this.items().set(this.create(e).concat(this.items().toArray())),this.renderNew()},insert:function(e,t,n){var i,r,o;return e=this.create(e),i=this.items(),!n&&t<i.length-1&&(t+=1),0<=t&&t<i.length&&(r=i.slice(0,t).toArray(),o=i.slice(t).toArray(),i.set(r.concat(e,o))),this.renderNew()},fromJSON:function(e){for(var t in e)this.find("#"+t).value(e[t]);return this},toJSON:function(){var i={};return this.find("*").each(function(e){var t=e.name(),n=e.value();t&&void 0!==n&&(i[t]=n)}),i},renderHtml:function(){var e=this,t=e._layout,n=this.settings.role;return e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes+'"'+(n?' role="'+this.settings.role+'"':"")+'><div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"},postRender:function(){var e,t=this;return t.items().exec("postRender"),t._super(),t._layout.postRender(t),t.state.set("rendered",!0),t.settings.style&&t.$el.css(t.settings.style),t.settings.border&&(e=t.borderBox,t.$el.css({"border-top-width":e.top,"border-right-width":e.right,"border-bottom-width":e.bottom,"border-left-width":e.left})),t.parent()||(t.keyboardNav=ct({root:t})),t},initLayoutRect:function(){var e=this._super();return this._layout.recalc(this),e},recalc:function(){var e=this,t=e._layoutRect,n=e._lastRect;if(!n||n.w!==t.w||n.h!==t.h)return e._layout.recalc(e),t=e.layoutRect(),e._lastRect={x:t.x,y:t.y,w:t.w,h:t.h},!0},reflow:function(){var e;if(tt.remove(this),this.visible()){for(lt.repaintControls=[],lt.repaintControls.map={},this.recalc(),e=lt.repaintControls.length;e--;)lt.repaintControls[e].repaint();"flow"!==this.settings.layout&&"stack"!==this.settings.layout&&this.repaint(),lt.repaintControls=[]}return this}});function ht(e){var t,n;if(e.changedTouches)for(t="screenX screenY pageX pageY clientX clientY".split(" "),n=0;n<t.length;n++)e[t[n]]=e.changedTouches[0][t[n]]}function mt(e,h){var m,g,t,p,v,b,y,x=h.document||document;h=h||{};var w=x.getElementById(h.handle||e);t=function(e){var t,n,i,r,o,s,a,l,u,c,d,f=(t=x,u=Math.max,n=t.documentElement,i=t.body,r=u(n.scrollWidth,i.scrollWidth),o=u(n.clientWidth,i.clientWidth),s=u(n.offsetWidth,i.offsetWidth),a=u(n.scrollHeight,i.scrollHeight),l=u(n.clientHeight,i.clientHeight),{width:r<s?o:r,height:a<u(n.offsetHeight,i.offsetHeight)?l:a});ht(e),e.preventDefault(),g=e.button,c=w,b=e.screenX,y=e.screenY,d=window.getComputedStyle?window.getComputedStyle(c,null).getPropertyValue("cursor"):c.runtimeStyle.cursor,m=Re("<div></div>").css({position:"absolute",top:0,left:0,width:f.width,height:f.height,zIndex:2147483647,opacity:1e-4,cursor:d}).appendTo(x.body),Re(x).on("mousemove touchmove",v).on("mouseup touchend",p),h.start(e)},v=function(e){if(ht(e),e.button!==g)return p(e);e.deltaX=e.screenX-b,e.deltaY=e.screenY-y,e.preventDefault(),h.drag(e)},p=function(e){ht(e),Re(x).off("mousemove touchmove",v).off("mouseup touchend",p),m.remove(),h.stop&&h.stop(e)},this.destroy=function(){Re(w).off()},Re(w).on("mousedown touchstart",t)}var gt,pt,vt,bt,yt={init:function(){this.on("repaint",this.renderScroll)},renderScroll:function(){var p=this,v=2;function n(){var m,g,e;function t(e,t,n,i,r,o){var s,a,l,u,c,d,f,h;if(a=p.getEl("scroll"+e)){if(f=t.toLowerCase(),h=n.toLowerCase(),Re(p.getEl("absend")).css(f,p.layoutRect()[i]-1),!r)return void Re(a).css("display","none");Re(a).css("display","block"),s=p.getEl("body"),l=p.getEl("scroll"+e+"t"),u=s["client"+n]-2*v,c=(u-=m&&g?a["client"+o]:0)/s["scroll"+n],(d={})[f]=s["offset"+t]+v,d[h]=u,Re(a).css(d),(d={})[f]=s["scroll"+t]*c,d[h]=u*c,Re(l).css(d)}}e=p.getEl("body"),m=e.scrollWidth>e.clientWidth,g=e.scrollHeight>e.clientHeight,t("h","Left","Width","contentW",m,"Height"),t("v","Top","Height","contentH",g,"Width")}p.settings.autoScroll&&(p._hasScroll||(p._hasScroll=!0,function(){function e(s,a,l,u,c){var d,e=p._id+"-scroll"+s,t=p.classPrefix;Re(p.getEl()).append('<div id="'+e+'" class="'+t+"scrollbar "+t+"scrollbar-"+s+'"><div id="'+e+'t" class="'+t+'scrollbar-thumb"></div></div>'),p.draghelper=new mt(e+"t",{start:function(){d=p.getEl("body")["scroll"+a],Re("#"+e).addClass(t+"active")},drag:function(e){var t,n,i,r,o=p.layoutRect();n=o.contentW>o.innerW,i=o.contentH>o.innerH,r=p.getEl("body")["client"+l]-2*v,t=(r-=n&&i?p.getEl("scroll"+s)["client"+c]:0)/p.getEl("body")["scroll"+l],p.getEl("body")["scroll"+a]=d+e["delta"+u]/t},stop:function(){Re("#"+e).removeClass(t+"active")}})}p.classes.add("scroll"),e("v","Top","Height","Y","Width"),e("h","Left","Width","X","Height")}(),p.on("wheel",function(e){var t=p.getEl("body");t.scrollLeft+=10*(e.deltaX||0),t.scrollTop+=10*e.deltaY,n()}),Re(p.getEl("body")).on("scroll",n)),n())}},xt=ft.extend({Defaults:{layout:"fit",containerCls:"panel"},Mixins:[yt],renderHtml:function(){var e=this,t=e._layout,n=e.settings.html;return e.preRender(),t.preRender(e),void 0===n?n='<div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+t.renderHtml(e)+"</div>":("function"==typeof n&&(n=n.call(e)),e._hasBody=!1),'<div id="'+e._id+'" class="'+e.classes+'" hidefocus="1" tabindex="-1" role="group">'+(e._preBodyHtml||"")+n+"</div>"}}),wt={resizeToContent:function(){this._layoutRect.autoResize=!0,this._lastRect=null,this.reflow()},resizeTo:function(e,t){if(e<=1||t<=1){var n=ke.getWindowSize();e=e<=1?e*n.w:e,t=t<=1?t*n.h:t}return this._layoutRect.autoResize=!1,this.layoutRect({minW:e,minH:t,w:e,h:t}).reflow()},resizeBy:function(e,t){var n=this.layoutRect();return this.resizeTo(n.w+e,n.h+t)}},_t=[],Rt=[];function Ct(e,t){for(;e;){if(e===t)return!0;e=e.parent()}}function kt(){gt||(gt=function(e){2!==e.button&&function(e){for(var t=_t.length;t--;){var n=_t[t],i=n.getParentCtrl(e.target);if(n.settings.autohide){if(i&&(Ct(i,n)||n.parent()===i))continue;(e=n.fire("autohide",{target:e.target})).isDefaultPrevented()||n.hide()}}}(e)},Re(document).on("click touchstart",gt))}function Et(r){var e=ke.getViewPort().y;function t(e,t){for(var n,i=0;i<_t.length;i++)if(_t[i]!==r)for(n=_t[i].parent();n&&(n=n.parent());)n===r&&_t[i].fixed(e).moveBy(0,t).repaint()}r.settings.autofix&&(r.state.get("fixed")?r._autoFixY>e&&(r.fixed(!1).layoutRect({y:r._autoFixY}).repaint(),t(!1,r._autoFixY-e)):(r._autoFixY=r.layoutRect().y,r._autoFixY<e&&(r.fixed(!0).layoutRect({y:0}).repaint(),t(!0,e-r._autoFixY))))}function Ht(e,t){var n,i,r=St.zIndex||65535;if(e)Rt.push(t);else for(n=Rt.length;n--;)Rt[n]===t&&Rt.splice(n,1);if(Rt.length)for(n=0;n<Rt.length;n++)Rt[n].modal&&(r++,i=Rt[n]),Rt[n].getEl().style.zIndex=r,Rt[n].zIndex=r,r++;var o=Re("#"+t.classPrefix+"modal-block",t.getContainerElm())[0];i?Re(o).css("z-index",i.zIndex-1):o&&(o.parentNode.removeChild(o),bt=!1),St.currentZIndex=r}var St=xt.extend({Mixins:[Pe,wt],init:function(e){var i=this;i._super(e),(i._eventsRoot=i).classes.add("floatpanel"),e.autohide&&(kt(),function(){if(!vt){var e=document.documentElement,t=e.clientWidth,n=e.clientHeight;vt=function(){document.all&&t===e.clientWidth&&n===e.clientHeight||(t=e.clientWidth,n=e.clientHeight,St.hideAll())},Re(window).on("resize",vt)}}(),_t.push(i)),e.autofix&&(pt||(pt=function(){var e;for(e=_t.length;e--;)Et(_t[e])},Re(window).on("scroll",pt)),i.on("move",function(){Et(this)})),i.on("postrender show",function(e){if(e.control===i){var t,n=i.classPrefix;i.modal&&!bt&&((t=Re("#"+n+"modal-block",i.getContainerElm()))[0]||(t=Re('<div id="'+n+'modal-block" class="'+n+"reset "+n+'fade"></div>').appendTo(i.getContainerElm())),u.setTimeout(function(){t.addClass(n+"in"),Re(i.getEl()).addClass(n+"in")}),bt=!0),Ht(!0,i)}}),i.on("show",function(){i.parents().each(function(e){if(e.state.get("fixed"))return i.fixed(!0),!1})}),e.popover&&(i._preBodyHtml='<div class="'+i.classPrefix+'arrow"></div>',i.classes.add("popover").add("bottom").add(i.isRtl()?"end":"start")),i.aria("label",e.ariaLabel),i.aria("labelledby",i._id),i.aria("describedby",i.describedBy||i._id+"-none")},fixed:function(e){var t=this;if(t.state.get("fixed")!==e){if(t.state.get("rendered")){var n=ke.getViewPort();e?t.layoutRect().y-=n.y:t.layoutRect().y+=n.y}t.classes.toggle("fixed",e),t.state.set("fixed",e)}return t},show:function(){var e,t=this._super();for(e=_t.length;e--&&_t[e]!==this;);return-1===e&&_t.push(this),t},hide:function(){return Mt(this),Ht(!1,this),this._super()},hideAll:function(){St.hideAll()},close:function(){return this.fire("close").isDefaultPrevented()||(this.remove(),Ht(!1,this)),this},remove:function(){Mt(this),this._super()},postRender:function(){return this.settings.bodyRole&&this.getEl("body").setAttribute("role",this.settings.bodyRole),this._super()}});function Mt(e){var t;for(t=_t.length;t--;)_t[t]===e&&_t.splice(t,1);for(t=Rt.length;t--;)Rt[t]===e&&Rt.splice(t,1)}St.hideAll=function(){for(var e=_t.length;e--;){var t=_t[e];t&&t.settings.autohide&&(t.hide(),_t.splice(e,1))}};var Tt=function(e,t){return!(!e||t.settings.ui_container)},Pt=function(s,e,t){var a,n,l=p.DOM,i=s.getParam("fixed_toolbar_container");i&&(n=l.select(i)[0]);var r=function(){if(a&&a.moveRel&&a.visible()&&!a._fixed){var e=s.selection.getScrollContainer(),t=s.getBody(),n=0,i=0;if(e){var r=l.getPos(t),o=l.getPos(e);n=Math.max(0,o.x-r.x),i=Math.max(0,o.y-r.y)}a.fixed(!1).moveRel(t,s.rtl?["tr-br","br-tr"]:["tl-bl","bl-tl","tr-br"]).moveBy(n,i)}},o=function(){a&&(a.show(),r(),l.addClass(s.getBody(),"mce-edit-focus"))},u=function(){a&&(a.hide(),St.hideAll(),l.removeClass(s.getBody(),"mce-edit-focus"))},c=function(){a?a.visible()||o():(a=e.panel=v.create({type:n?"panel":"floatpanel",role:"application",classes:"tinymce tinymce-inline",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:Tt(n,s),fixed:Tt(n,s),border:1,items:[!1===d(s)?null:{type:"menubar",border:"0 0 1 0",items:le(s)},B(s,f(s))]}),D.setUiContainer(s,a),x(s),n?a.renderTo(n).reflow():a.renderTo().reflow(),_(s,a),o(),F(s),s.on("nodeChange",r),s.on("ResizeWindow",r),s.on("activate",o),s.on("deactivate",u),s.nodeChanged())};return s.settings.content_editable=!0,s.on("focus",function(){!1===m(s)&&t.skinUiCss?l.styleSheetLoader.load(t.skinUiCss,c,c):c()}),s.on("blur hide",u),s.on("remove",function(){a&&(a.remove(),a=null)}),!1===m(s)&&t.skinUiCss?l.styleSheetLoader.load(t.skinUiCss,ye(s)):ye(s)(),{}};function Wt(i,r){var o,s,a=this,l=lt.classPrefix;a.show=function(e,t){function n(){o&&(Re(i).append('<div class="'+l+"throbber"+(r?" "+l+"throbber-inline":"")+'"></div>'),t&&t())}return a.hide(),o=!0,e?s=u.setTimeout(n,e):n(),a},a.hide=function(){var e=i.lastChild;return u.clearTimeout(s),e&&-1!==e.className.indexOf("throbber")&&e.parentNode.removeChild(e),o=!1,a}}var Dt=function(e,t){var n;e.on("ProgressState",function(e){n=n||new Wt(t.panel.getEl("body")),e.state?n.show(e.time):n.hide()})},Nt=function(e,t,n){var i=function(e){var t=e.settings,n=t.skin,i=t.skin_url;if(!1!==n){var r=n||"lightgray";i=i?e.documentBaseURI.toAbsolute(i):l.baseURL+"/skins/"+r}return i}(e);return i&&(n.skinUiCss=i+"/skin.min.css",e.contentCSS.push(i+"/content"+(e.inline?".inline":"")+".min.css")),Dt(e,t),e.getParam("inline",!1,"boolean")?Pt(e,t,n):_e(e,t,n)},At=lt.extend({Mixins:[Pe],Defaults:{classes:"widget tooltip tooltip-n"},renderHtml:function(){var e=this,t=e.classPrefix;return'<div id="'+e._id+'" class="'+e.classes+'" role="presentation"><div class="'+t+'tooltip-arrow"></div><div class="'+t+'tooltip-inner">'+e.encode(e.state.get("text"))+"</div></div>"},bindStates:function(){var t=this;return t.state.on("change:text",function(e){t.getEl().lastChild.innerHTML=t.encode(e.value)}),t._super()},repaint:function(){var e,t;e=this.getEl().style,t=this._layoutRect,e.left=t.x+"px",e.top=t.y+"px",e.zIndex=131070}}),Bt=lt.extend({init:function(i){var r=this;r._super(i),i=r.settings,r.canFocus=!0,i.tooltip&&!1!==Bt.tooltips&&(r.on("mouseenter",function(e){var t=r.tooltip().moveTo(-65535);if(e.control===r){var n=t.text(i.tooltip).show().testMoveRel(r.getEl(),["bc-tc","bc-tl","bc-tr"]);t.classes.toggle("tooltip-n","bc-tc"===n),t.classes.toggle("tooltip-nw","bc-tl"===n),t.classes.toggle("tooltip-ne","bc-tr"===n),t.moveRel(r.getEl(),n)}else t.hide()}),r.on("mouseleave mousedown click",function(){r.tooltip().remove(),r._tooltip=null})),r.aria("label",i.ariaLabel||i.tooltip)},tooltip:function(){return this._tooltip||(this._tooltip=new At({type:"tooltip"}),D.inheritUiContainer(this,this._tooltip),this._tooltip.renderTo()),this._tooltip},postRender:function(){var e=this,t=e.settings;e._super(),e.parent()||!t.width&&!t.height||(e.initLayoutRect(),e.repaint()),t.autofocus&&e.focus()},bindStates:function(){var t=this;function n(e){t.aria("disabled",e),t.classes.toggle("disabled",e)}function i(e){t.aria("pressed",e),t.classes.toggle("active",e)}return t.state.on("change:disabled",function(e){n(e.value)}),t.state.on("change:active",function(e){i(e.value)}),t.state.get("disabled")&&n(!0),t.state.get("active")&&i(!0),t._super()},remove:function(){this._super(),this._tooltip&&(this._tooltip.remove(),this._tooltip=null)}}),Ot=Bt.extend({Defaults:{value:0},init:function(e){this._super(e),this.classes.add("progress"),this.settings.filter||(this.settings.filter=function(e){return Math.round(e)})},renderHtml:function(){var e=this._id,t=this.classPrefix;return'<div id="'+e+'" class="'+this.classes+'"><div class="'+t+'bar-container"><div class="'+t+'bar"></div></div><div class="'+t+'text">0%</div></div>'},postRender:function(){return this._super(),this.value(this.settings.value),this},bindStates:function(){var t=this;function n(e){e=t.settings.filter(e),t.getEl().lastChild.innerHTML=e+"%",t.getEl().firstChild.firstChild.style.width=e+"%"}return t.state.on("change:value",function(e){n(e.value)}),n(t.state.get("value")),t._super()}}),zt=function(e,t){e.getEl().lastChild.textContent=t+(e.progressBar?" "+e.progressBar.value()+"%":"")},Lt=lt.extend({Mixins:[Pe],Defaults:{classes:"widget notification"},init:function(e){var t=this;t._super(e),t.maxWidth=e.maxWidth,e.text&&t.text(e.text),e.icon&&(t.icon=e.icon),e.color&&(t.color=e.color),e.type&&t.classes.add("notification-"+e.type),e.timeout&&(e.timeout<0||0<e.timeout)&&!e.closeButton?t.closeButton=!1:(t.classes.add("has-close"),t.closeButton=!0),e.progressBar&&(t.progressBar=new Ot),t.on("click",function(e){-1!==e.target.className.indexOf(t.classPrefix+"close")&&t.close()})},renderHtml:function(){var e,t=this,n=t.classPrefix,i="",r="",o="";return t.icon&&(i='<i class="'+n+"ico "+n+"i-"+t.icon+'"></i>'),e=' style="max-width: '+t.maxWidth+"px;"+(t.color?"background-color: "+t.color+';"':'"'),t.closeButton&&(r='<button type="button" class="'+n+'close" aria-hidden="true">\xd7</button>'),t.progressBar&&(o=t.progressBar.renderHtml()),'<div id="'+t._id+'" class="'+t.classes+'"'+e+' role="presentation">'+i+'<div class="'+n+'notification-inner">'+t.state.get("text")+"</div>"+o+r+'<div style="clip: rect(1px, 1px, 1px, 1px);height: 1px;overflow: hidden;position: absolute;width: 1px;" aria-live="assertive" aria-relevant="additions" aria-atomic="true"></div></div>'},postRender:function(){var e=this;return u.setTimeout(function(){e.$el.addClass(e.classPrefix+"in"),zt(e,e.state.get("text"))},100),e._super()},bindStates:function(){var t=this;return t.state.on("change:text",function(e){t.getEl().firstChild.innerHTML=e.value,zt(t,e.value)}),t.progressBar&&(t.progressBar.bindStates(),t.progressBar.state.on("change:value",function(e){zt(t,t.state.get("text"))})),t._super()},close:function(){return this.fire("close").isDefaultPrevented()||this.remove(),this},repaint:function(){var e,t;e=this.getEl().style,t=this._layoutRect,e.left=t.x+"px",e.top=t.y+"px",e.zIndex=65534}});function It(o){var s=function(e){return e.inline?e.getElement():e.getContentAreaContainer()};return{open:function(e,t){var n,i=w.extend(e,{maxWidth:(n=s(o),ke.getSize(n).width)}),r=new Lt(i);return 0<(r.args=i).timeout&&(r.timer=setTimeout(function(){r.close(),t()},i.timeout)),r.on("close",function(){t()}),r.renderTo(),r},close:function(e){e.close()},reposition:function(e){var t;t=e,ie.each(t,function(e){e.moveTo(0,0)}),function(n){if(0<n.length){var e=n.slice(0,1)[0],t=s(o);e.moveRel(t,"tc-tc"),ie.each(n,function(e,t){0<t&&e.moveRel(n[t-1].getEl(),"bc-tc")})}}(e)},getArgs:function(e){return e.args}}}var Ft=[],Ut="";function Vt(e){var t,n=Re("meta[name=viewport]")[0];!1!==me.overrideViewPort&&(n||((n=document.createElement("meta")).setAttribute("name","viewport"),document.getElementsByTagName("head")[0].appendChild(n)),(t=n.getAttribute("content"))&&void 0!==Ut&&(Ut=t),n.setAttribute("content",e?"width=device-width,initial-scale=1.0,user-scalable=0,minimum-scale=1.0,maximum-scale=1.0":Ut))}function jt(e,t){(function(){for(var e=0;e<Ft.length;e++)if(Ft[e]._fullscreen)return!0;return!1})()&&!1===t&&Re([document.documentElement,document.body]).removeClass(e+"fullscreen")}var qt=St.extend({modal:!0,Defaults:{border:1,layout:"flex",containerCls:"panel",role:"dialog",callbacks:{submit:function(){this.fire("submit",{data:this.toJSON()})},close:function(){this.close()}}},init:function(e){var n=this;n._super(e),n.isRtl()&&n.classes.add("rtl"),n.classes.add("window"),n.bodyClasses.add("window-body"),n.state.set("fixed",!0),e.buttons&&(n.statusbar=new xt({layout:"flex",border:"1 0 0 0",spacing:3,padding:10,align:"center",pack:n.isRtl()?"start":"end",defaults:{type:"button"},items:e.buttons}),n.statusbar.classes.add("foot"),n.statusbar.parent(n)),n.on("click",function(e){var t=n.classPrefix+"close";(ke.hasClass(e.target,t)||ke.hasClass(e.target.parentNode,t))&&n.close()}),n.on("cancel",function(){n.close()}),n.on("move",function(e){e.control===n&&St.hideAll()}),n.aria("describedby",n.describedBy||n._id+"-none"),n.aria("label",e.title),n._fullscreen=!1},recalc:function(){var e,t,n,i,r=this,o=r.statusbar;r._fullscreen&&(r.layoutRect(ke.getWindowSize()),r.layoutRect().contentH=r.layoutRect().innerH),r._super(),e=r.layoutRect(),r.settings.title&&!r._fullscreen&&(t=e.headerW)>e.w&&(n=e.x-Math.max(0,t/2),r.layoutRect({w:t,x:n}),i=!0),o&&(o.layoutRect({w:r.layoutRect().innerW}).recalc(),(t=o.layoutRect().minW+e.deltaW)>e.w&&(n=e.x-Math.max(0,t-e.w),r.layoutRect({w:t,x:n}),i=!0)),i&&r.recalc()},initLayoutRect:function(){var e,t=this,n=t._super(),i=0;if(t.settings.title&&!t._fullscreen){e=t.getEl("head");var r=ke.getSize(e);n.headerW=r.width,n.headerH=r.height,i+=n.headerH}t.statusbar&&(i+=t.statusbar.layoutRect().h),n.deltaH+=i,n.minH+=i,n.h+=i;var o=ke.getWindowSize();return n.x=t.settings.x||Math.max(0,o.w/2-n.w/2),n.y=t.settings.y||Math.max(0,o.h/2-n.h/2),n},renderHtml:function(){var e=this,t=e._layout,n=e._id,i=e.classPrefix,r=e.settings,o="",s="",a=r.html;return e.preRender(),t.preRender(e),r.title&&(o='<div id="'+n+'-head" class="'+i+'window-head"><div id="'+n+'-title" class="'+i+'title">'+e.encode(r.title)+'</div><div id="'+n+'-dragh" class="'+i+'dragh"></div><button type="button" class="'+i+'close" aria-hidden="true"><i class="mce-ico mce-i-remove"></i></button></div>'),r.url&&(a='<iframe src="'+r.url+'" tabindex="-1"></iframe>'),void 0===a&&(a=t.renderHtml(e)),e.statusbar&&(s=e.statusbar.renderHtml()),'<div id="'+n+'" class="'+e.classes+'" hidefocus="1"><div class="'+e.classPrefix+'reset" role="application">'+o+'<div id="'+n+'-body" class="'+e.bodyClasses+'">'+a+"</div>"+s+"</div></div>"},fullscreen:function(e){var n,t,i=this,r=document.documentElement,o=i.classPrefix;if(e!==i._fullscreen)if(Re(window).on("resize",function(){var e;if(i._fullscreen)if(n)i._timer||(i._timer=u.setTimeout(function(){var e=ke.getWindowSize();i.moveTo(0,0).resizeTo(e.w,e.h),i._timer=0},50));else{e=(new Date).getTime();var t=ke.getWindowSize();i.moveTo(0,0).resizeTo(t.w,t.h),50<(new Date).getTime()-e&&(n=!0)}}),t=i.layoutRect(),i._fullscreen=e){i._initial={x:t.x,y:t.y,w:t.w,h:t.h},i.borderBox=Ne("0"),i.getEl("head").style.display="none",t.deltaH-=t.headerH+2,Re([r,document.body]).addClass(o+"fullscreen"),i.classes.add("fullscreen");var s=ke.getWindowSize();i.moveTo(0,0).resizeTo(s.w,s.h)}else i.borderBox=Ne(i.settings.border),i.getEl("head").style.display="",t.deltaH+=t.headerH,Re([r,document.body]).removeClass(o+"fullscreen"),i.classes.remove("fullscreen"),i.moveTo(i._initial.x,i._initial.y).resizeTo(i._initial.w,i._initial.h);return i.reflow()},postRender:function(){var t,n=this;setTimeout(function(){n.classes.add("in"),n.fire("open")},0),n._super(),n.statusbar&&n.statusbar.postRender(),n.focus(),this.dragHelper=new mt(n._id+"-dragh",{start:function(){t={x:n.layoutRect().x,y:n.layoutRect().y}},drag:function(e){n.moveTo(t.x+e.deltaX,t.y+e.deltaY)}}),n.on("submit",function(e){e.isDefaultPrevented()||n.close()}),Ft.push(n),Vt(!0)},submit:function(){return this.fire("submit",{data:this.toJSON()})},remove:function(){var e,t=this;for(t.dragHelper.destroy(),t._super(),t.statusbar&&this.statusbar.remove(),jt(t.classPrefix,!1),e=Ft.length;e--;)Ft[e]===t&&Ft.splice(e,1);Vt(0<Ft.length)},getContentWindow:function(){var e=this.getEl().getElementsByTagName("iframe")[0];return e?e.contentWindow:null}});!function(){if(!me.desktop){var n={w:window.innerWidth,h:window.innerHeight};u.setInterval(function(){var e=window.innerWidth,t=window.innerHeight;n.w===e&&n.h===t||(n={w:e,h:t},Re(window).trigger("resize"))},100)}Re(window).on("resize",function(){var e,t,n=ke.getWindowSize();for(e=0;e<Ft.length;e++)t=Ft[e].layoutRect(),Ft[e].moveTo(Ft[e].settings.x||Math.max(0,n.w/2-t.w/2),Ft[e].settings.y||Math.max(0,n.h/2-t.h/2))})}();var Yt,$t=qt.extend({init:function(e){e={border:1,padding:20,layout:"flex",pack:"center",align:"center",containerCls:"panel",autoScroll:!0,buttons:{type:"button",text:"Ok",action:"ok"},items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200}},this._super(e)},Statics:{OK:1,OK_CANCEL:2,YES_NO:3,YES_NO_CANCEL:4,msgBox:function(e){var t,i=e.callback||function(){};function n(e,t,n){return{type:"button",text:e,subtype:n?"primary":"",onClick:function(e){e.control.parents()[1].close(),i(t)}}}switch(e.buttons){case $t.OK_CANCEL:t=[n("Ok",!0,!0),n("Cancel",!1)];break;case $t.YES_NO:case $t.YES_NO_CANCEL:t=[n("Yes",1,!0),n("No",0)],e.buttons===$t.YES_NO_CANCEL&&t.push(n("Cancel",-1));break;default:t=[n("Ok",!0,!0)]}return new qt({padding:20,x:e.x,y:e.y,minWidth:300,minHeight:100,layout:"flex",pack:"center",align:"center",buttons:t,title:e.title,role:"alertdialog",items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200,text:e.text},onPostRender:function(){this.aria("describedby",this.items()[0]._id)},onClose:e.onClose,onCancel:function(){i(!1)}}).renderTo(document.body).reflow()},alert:function(e,t){return"string"==typeof e&&(e={text:e}),e.callback=t,$t.msgBox(e)},confirm:function(e,t){return"string"==typeof e&&(e={text:e}),e.callback=t,e.buttons=$t.OK_CANCEL,$t.msgBox(e)}}}),Xt=function(n){return{renderUI:function(e){return Nt(n,this,e)},resizeTo:function(e,t){return fe(n,e,t)},resizeBy:function(e,t){return he(n,e,t)},getNotificationManagerImpl:function(){return It(n)},getWindowManagerImpl:function(){return{open:function(n,e,t){var i;return n.title=n.title||" ",n.url=n.url||n.file,n.url&&(n.width=parseInt(n.width||320,10),n.height=parseInt(n.height||240,10)),n.body&&(n.items={defaults:n.defaults,type:n.bodyType||"form",items:n.body,data:n.data,callbacks:n.commands}),n.url||n.buttons||(n.buttons=[{text:"Ok",subtype:"primary",onclick:function(){i.find("form")[0].submit()}},{text:"Cancel",onclick:function(){i.close()}}]),(i=new qt(n)).on("close",function(){t(i)}),n.data&&i.on("postRender",function(){this.find("*").each(function(e){var t=e.name();t in n.data&&e.value(n.data[t])})}),i.features=n||{},i.params=e||{},i=i.renderTo(document.body).reflow()},alert:function(e,t,n){var i;return(i=$t.alert(e,function(){t()})).on("close",function(){n(i)}),i},confirm:function(e,t,n){var i;return(i=$t.confirm(e,function(e){t(e)})).on("close",function(){n(i)}),i},close:function(e){e.close()},getParams:function(e){return e.params},setParams:function(e,t){e.params=t}}}}},Jt=We.extend({Defaults:{firstControlClass:"first",lastControlClass:"last"},init:function(e){this.settings=w.extend({},this.Defaults,e)},preRender:function(e){e.bodyClasses.add(this.settings.containerClass)},applyClasses:function(e){var t,n,i,r,o=this.settings;t=o.firstControlClass,n=o.lastControlClass,e.each(function(e){e.classes.remove(t).remove(n).add(o.controlClass),e.visible()&&(i||(i=e),r=e)}),i&&i.classes.add(t),r&&r.classes.add(n)},renderHtml:function(e){var t="";return this.applyClasses(e.items()),e.items().each(function(e){t+=e.renderHtml()}),t},recalc:function(){},postRender:function(){},isNative:function(){return!1}}),Gt=Jt.extend({Defaults:{containerClass:"abs-layout",controlClass:"abs-layout-item"},recalc:function(e){e.items().filter(":visible").each(function(e){var t=e.settings;e.layoutRect({x:t.x,y:t.y,w:t.w,h:t.h}),e.recalc&&e.recalc()})},renderHtml:function(e){return'<div id="'+e._id+'-absend" class="'+e.classPrefix+'abs-end"></div>'+this._super(e)}}),Kt=Bt.extend({Defaults:{classes:"widget btn",role:"button"},init:function(e){var t,n=this;n._super(e),e=n.settings,t=n.settings.size,n.on("click mousedown",function(e){e.preventDefault()}),n.on("touchstart",function(e){n.fire("click",e),e.preventDefault()}),e.subtype&&n.classes.add(e.subtype),t&&n.classes.add("btn-"+t),e.icon&&n.icon(e.icon)},icon:function(e){return arguments.length?(this.state.set("icon",e),this):this.state.get("icon")},repaint:function(){var e,t=this.getEl().firstChild;t&&((e=t.style).width=e.height="100%"),this._super()},renderHtml:function(){var e,t,n=this,i=n._id,r=n.classPrefix,o=n.state.get("icon"),s=n.state.get("text"),a="",l=n.settings;return(e=l.image)?(o="none","string"!=typeof e&&(e=window.getSelection?e[0]:e[1]),e=" style=\"background-image: url('"+e+"')\""):e="",s&&(n.classes.add("btn-has-text"),a='<span class="'+r+'txt">'+n.encode(s)+"</span>"),o=o?r+"ico "+r+"i-"+o:"",t="boolean"==typeof l.active?' aria-pressed="'+l.active+'"':"",'<div id="'+i+'" class="'+n.classes+'" tabindex="-1"'+t+'><button id="'+i+'-button" role="presentation" type="button" tabindex="-1">'+(o?'<i class="'+o+'"'+e+"></i>":"")+a+"</button></div>"},bindStates:function(){var o=this,n=o.$,i=o.classPrefix+"txt";function s(e){var t=n("span."+i,o.getEl());e?(t[0]||(n("button:first",o.getEl()).append('<span class="'+i+'"></span>'),t=n("span."+i,o.getEl())),t.html(o.encode(e))):t.remove(),o.classes.toggle("btn-has-text",!!e)}return o.state.on("change:text",function(e){s(e.value)}),o.state.on("change:icon",function(e){var t=e.value,n=o.classPrefix;t=(o.settings.icon=t)?n+"ico "+n+"i-"+o.settings.icon:"";var i=o.getEl().firstChild,r=i.getElementsByTagName("i")[0];t?(r&&r===i.firstChild||(r=document.createElement("i"),i.insertBefore(r,i.firstChild)),r.className=t):r&&i.removeChild(r),s(o.state.get("text"))}),o._super()}}),Zt=Kt.extend({init:function(e){e=w.extend({text:"Browse...",multiple:!1,accept:null},e),this._super(e),this.classes.add("browsebutton"),e.multiple&&this.classes.add("multiple")},postRender:function(){var n=this,t=ke.create("input",{type:"file",id:n._id+"-browse",accept:n.settings.accept});n._super(),Re(t).on("change",function(e){var t=e.target.files;n.value=function(){return t.length?n.settings.multiple?t:t[0]:null},e.preventDefault(),t.length&&n.fire("change",e)}),Re(t).on("click",function(e){e.stopPropagation()}),Re(n.getEl("button")).on("click",function(e){e.stopPropagation(),t.click()}),n.getEl().appendChild(t)},remove:function(){Re(this.getEl("button")).off(),Re(this.getEl("input")).off(),this._super()}}),Qt=ft.extend({Defaults:{defaultType:"button",role:"group"},renderHtml:function(){var e=this,t=e._layout;return e.classes.add("btn-group"),e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes+'"><div id="'+e._id+'-body">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"}}),en=Bt.extend({Defaults:{classes:"checkbox",role:"checkbox",checked:!1},init:function(e){var t=this;t._super(e),t.on("click mousedown",function(e){e.preventDefault()}),t.on("click",function(e){e.preventDefault(),t.disabled()||t.checked(!t.checked())}),t.checked(t.settings.checked)},checked:function(e){return arguments.length?(this.state.set("checked",e),this):this.state.get("checked")},value:function(e){return arguments.length?this.checked(e):this.checked()},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix;return'<div id="'+t+'" class="'+e.classes+'" unselectable="on" aria-labelledby="'+t+'-al" tabindex="-1"><i class="'+n+"ico "+n+'i-checkbox"></i><span id="'+t+'-al" class="'+n+'label">'+e.encode(e.state.get("text"))+"</span></div>"},bindStates:function(){var o=this;function t(e){o.classes.toggle("checked",e),o.aria("checked",e)}return o.state.on("change:text",function(e){o.getEl("al").firstChild.data=o.translate(e.value)}),o.state.on("change:checked change:value",function(e){o.fire("change"),t(e.value)}),o.state.on("change:icon",function(e){var t=e.value,n=o.classPrefix;if(void 0===t)return o.settings.icon;t=(o.settings.icon=t)?n+"ico "+n+"i-"+o.settings.icon:"";var i=o.getEl().firstChild,r=i.getElementsByTagName("i")[0];t?(r&&r===i.firstChild||(r=document.createElement("i"),i.insertBefore(r,i.firstChild)),r.className=t):r&&i.removeChild(r)}),o.state.get("checked")&&t(!0),o._super()}}),tn=tinymce.util.Tools.resolve("tinymce.util.VK"),nn=Bt.extend({init:function(i){var r=this;r._super(i),i=r.settings,r.classes.add("combobox"),r.subinput=!0,r.ariaTarget="inp",i.menu=i.menu||i.values,i.menu&&(i.icon="caret"),r.on("click",function(e){var t=e.target,n=r.getEl();if(Re.contains(n,t)||t===n)for(;t&&t!==n;)t.id&&-1!==t.id.indexOf("-open")&&(r.fire("action"),i.menu&&(r.showMenu(),e.aria&&r.menu.items()[0].focus())),t=t.parentNode}),r.on("keydown",function(e){var t;13===e.keyCode&&"INPUT"===e.target.nodeName&&(e.preventDefault(),r.parents().reverse().each(function(e){if(e.toJSON)return t=e,!1}),r.fire("submit",{data:t.toJSON()}))}),r.on("keyup",function(e){if("INPUT"===e.target.nodeName){var t=r.state.get("value"),n=e.target.value;n!==t&&(r.state.set("value",n),r.fire("autocomplete",e))}}),r.on("mouseover",function(e){var t=r.tooltip().moveTo(-65535);if(r.statusLevel()&&-1!==e.target.className.indexOf(r.classPrefix+"status")){var n=r.statusMessage()||"Ok",i=t.text(n).show().testMoveRel(e.target,["bc-tc","bc-tl","bc-tr"]);t.classes.toggle("tooltip-n","bc-tc"===i),t.classes.toggle("tooltip-nw","bc-tl"===i),t.classes.toggle("tooltip-ne","bc-tr"===i),t.moveRel(e.target,i)}})},statusLevel:function(e){return 0<arguments.length&&this.state.set("statusLevel",e),this.state.get("statusLevel")},statusMessage:function(e){return 0<arguments.length&&this.state.set("statusMessage",e),this.state.get("statusMessage")},showMenu:function(){var e,t=this,n=t.settings;t.menu||((e=n.menu||[]).length?e={type:"menu",items:e}:e.type=e.type||"menu",t.menu=v.create(e).parent(t).renderTo(t.getContainerElm()),t.fire("createmenu"),t.menu.reflow(),t.menu.on("cancel",function(e){e.control===t.menu&&t.focus()}),t.menu.on("show hide",function(e){e.control.items().each(function(e){e.active(e.value()===t.value())})}).fire("show"),t.menu.on("select",function(e){t.value(e.control.value())}),t.on("focusin",function(e){"INPUT"===e.target.tagName.toUpperCase()&&t.menu.hide()}),t.aria("expanded",!0)),t.menu.show(),t.menu.layoutRect({w:t.layoutRect().w}),t.menu.moveRel(t.getEl(),t.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])},focus:function(){this.getEl("inp").focus()},repaint:function(){var e,t,n=this,i=n.getEl(),r=n.getEl("open"),o=n.layoutRect(),s=0,a=i.firstChild;n.statusLevel()&&"none"!==n.statusLevel()&&(s=parseInt(ke.getRuntimeStyle(a,"padding-right"),10)-parseInt(ke.getRuntimeStyle(a,"padding-left"),10)),e=r?o.w-ke.getSize(r).width-10:o.w-10;var l=document;return l.all&&(!l.documentMode||l.documentMode<=8)&&(t=n.layoutRect().h-2+"px"),Re(a).css({width:e-s,lineHeight:t}),n._super(),n},postRender:function(){var t=this;return Re(this.getEl("inp")).on("change",function(e){t.state.set("value",e.target.value),t.fire("change",e)}),t._super()},renderHtml:function(){var e,t,n,i=this,r=i._id,o=i.settings,s=i.classPrefix,a=i.state.get("value")||"",l="",u="";return"spellcheck"in o&&(u+=' spellcheck="'+o.spellcheck+'"'),o.maxLength&&(u+=' maxlength="'+o.maxLength+'"'),o.size&&(u+=' size="'+o.size+'"'),o.subtype&&(u+=' type="'+o.subtype+'"'),n='<i id="'+r+'-status" class="mce-status mce-ico" style="display: none"></i>',i.disabled()&&(u+=' disabled="disabled"'),(e=o.icon)&&"caret"!==e&&(e=s+"ico "+s+"i-"+o.icon),t=i.state.get("text"),(e||t)&&(l='<div id="'+r+'-open" class="'+s+"btn "+s+'open" tabIndex="-1" role="button"><button id="'+r+'-action" type="button" hidefocus="1" tabindex="-1">'+("caret"!==e?'<i class="'+e+'"></i>':'<i class="'+s+'caret"></i>')+(t?(e?" ":"")+t:"")+"</button></div>",i.classes.add("has-open")),'<div id="'+r+'" class="'+i.classes+'"><input id="'+r+'-inp" class="'+s+'textbox" value="'+i.encode(a,!1)+'" hidefocus="1"'+u+' placeholder="'+i.encode(o.placeholder)+'" />'+n+l+"</div>"},value:function(e){return arguments.length?(this.state.set("value",e),this):(this.state.get("rendered")&&this.state.set("value",this.getEl("inp").value),this.state.get("value"))},showAutoComplete:function(e,i){var r=this;if(0!==e.length){r.menu?r.menu.items().remove():r.menu=v.create({type:"menu",classes:"combobox-menu",layout:"flow"}).parent(r).renderTo(),w.each(e,function(e){var t,n;r.menu.add({text:e.title,url:e.previewUrl,match:i,classes:"menu-item-ellipsis",onclick:(t=e.value,n=e.title,function(){r.fire("selectitem",{title:n,value:t})})})}),r.menu.renderNew(),r.hideMenu(),r.menu.on("cancel",function(e){e.control.parent()===r.menu&&(e.stopPropagation(),r.focus(),r.hideMenu())}),r.menu.on("select",function(){r.focus()});var t=r.layoutRect().w;r.menu.layoutRect({w:t,minW:0,maxW:t}),r.menu.repaint(),r.menu.reflow(),r.menu.show(),r.menu.moveRel(r.getEl(),r.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])}else r.hideMenu()},hideMenu:function(){this.menu&&this.menu.hide()},bindStates:function(){var r=this;r.state.on("change:value",function(e){r.getEl("inp").value!==e.value&&(r.getEl("inp").value=e.value)}),r.state.on("change:disabled",function(e){r.getEl("inp").disabled=e.value}),r.state.on("change:statusLevel",function(e){var t=r.getEl("status"),n=r.classPrefix,i=e.value;ke.css(t,"display","none"===i?"none":""),ke.toggleClass(t,n+"i-checkmark","ok"===i),ke.toggleClass(t,n+"i-warning","warn"===i),ke.toggleClass(t,n+"i-error","error"===i),r.classes.toggle("has-status","none"!==i),r.repaint()}),ke.on(r.getEl("status"),"mouseleave",function(){r.tooltip().hide()}),r.on("cancel",function(e){r.menu&&r.menu.visible()&&(e.stopPropagation(),r.hideMenu())});var n=function(e,t){t&&0<t.items().length&&t.items().eq(e)[0].focus()};return r.on("keydown",function(e){var t=e.keyCode;"INPUT"===e.target.nodeName&&(t===tn.DOWN?(e.preventDefault(),r.fire("autocomplete"),n(0,r.menu)):t===tn.UP&&(e.preventDefault(),n(-1,r.menu)))}),r._super()},remove:function(){Re(this.getEl("inp")).off(),this.menu&&this.menu.remove(),this._super()}}),rn=nn.extend({init:function(e){var t=this;e.spellcheck=!1,e.onaction&&(e.icon="none"),t._super(e),t.classes.add("colorbox"),t.on("change keyup postrender",function(){t.repaintColor(t.value())})},repaintColor:function(e){var t=this.getEl("open"),n=t?t.getElementsByTagName("i")[0]:null;if(n)try{n.style.background=e}catch(i){}},bindStates:function(){var t=this;return t.state.on("change:value",function(e){t.state.get("rendered")&&t.repaintColor(e.value)}),t._super()}}),on=Kt.extend({showPanel:function(){var t=this,e=t.settings;if(t.classes.add("opened"),t.panel)t.panel.show();else{var n=e.panel;n.type&&(n={layout:"grid",items:n}),n.role=n.role||"dialog",n.popover=!0,n.autohide=!0,n.ariaRoot=!0,t.panel=new St(n).on("hide",function(){t.classes.remove("opened")}).on("cancel",function(e){e.stopPropagation(),t.focus(),t.hidePanel()}).parent(t).renderTo(t.getContainerElm()),t.panel.fire("show"),t.panel.reflow()}var i=t.panel.testMoveRel(t.getEl(),e.popoverAlign||(t.isRtl()?["bc-tc","bc-tl","bc-tr"]:["bc-tc","bc-tr","bc-tl","tc-bc","tc-br","tc-bl"]));t.panel.classes.toggle("start","l"===i.substr(-1)),t.panel.classes.toggle("end","r"===i.substr(-1));var r="t"===i.substr(0,1);t.panel.classes.toggle("bottom",!r),t.panel.classes.toggle("top",r),t.panel.moveRel(t.getEl(),i)},hidePanel:function(){this.panel&&this.panel.hide()},postRender:function(){var t=this;return t.aria("haspopup",!0),t.on("click",function(e){e.control===t&&(t.panel&&t.panel.visible()?t.hidePanel():(t.showPanel(),t.panel.focus(!!e.aria)))}),t._super()},remove:function(){return this.panel&&(this.panel.remove(),this.panel=null),this._super()}}),sn=p.DOM,an=on.extend({init:function(e){this._super(e),this.classes.add("splitbtn"),this.classes.add("colorbutton")},color:function(e){return e?(this._color=e,this.getEl("preview").style.backgroundColor=e,this):this._color},resetColor:function(){return this._color=null,this.getEl("preview").style.backgroundColor=null,this},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,i=e.state.get("text"),r=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"",o=e.settings.image?" style=\"background-image: url('"+e.settings.image+"')\"":"",s="";return i&&(e.classes.add("btn-has-text"),s='<span class="'+n+'txt">'+e.encode(i)+"</span>"),'<div id="'+t+'" class="'+e.classes+'" role="button" tabindex="-1" aria-haspopup="true"><button role="presentation" hidefocus="1" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+o+"></i>":"")+'<span id="'+t+'-preview" class="'+n+'preview"></span>'+s+'</button><button type="button" class="'+n+'open" hidefocus="1" tabindex="-1"> <i class="'+n+'caret"></i></button></div>'},postRender:function(){var t=this,n=t.settings.onclick;return t.on("click",function(e){e.aria&&"down"===e.aria.key||e.control!==t||sn.getParent(e.target,"."+t.classPrefix+"open")||(e.stopImmediatePropagation(),n.call(t,e))}),delete t.settings.onclick,t._super()}}),ln=tinymce.util.Tools.resolve("tinymce.util.Color"),un=Bt.extend({Defaults:{classes:"widget colorpicker"},init:function(e){this._super(e)},postRender:function(){var n,i,r,o,s,a=this,l=a.color();function u(e,t){var n,i,r=ke.getPos(e);return n=t.pageX-r.x,i=t.pageY-r.y,{x:n=Math.max(0,Math.min(n/e.clientWidth,1)),y:i=Math.max(0,Math.min(i/e.clientHeight,1))}}function c(e,t){var n=(360-e.h)/360;ke.css(r,{top:100*n+"%"}),t||ke.css(s,{left:e.s+"%",top:100-e.v+"%"}),o.style.background=ln({s:100,v:100,h:e.h}).toHex(),a.color().parse({s:e.s,v:e.v,h:e.h})}function e(e){var t;t=u(o,e),n.s=100*t.x,n.v=100*(1-t.y),c(n),a.fire("change")}function t(e){var t;t=u(i,e),(n=l.toHsv()).h=360*(1-t.y),c(n,!0),a.fire("change")}i=a.getEl("h"),r=a.getEl("hp"),o=a.getEl("sv"),s=a.getEl("svp"),a._repaint=function(){c(n=l.toHsv())},a._super(),a._svdraghelper=new mt(a._id+"-sv",{start:e,drag:e}),a._hdraghelper=new mt(a._id+"-h",{start:t,drag:t}),a._repaint()},rgb:function(){return this.color().toRgb()},value:function(e){if(!arguments.length)return this.color().toHex();this.color().parse(e),this._rendered&&this._repaint()},color:function(){return this._color||(this._color=ln()),this._color},renderHtml:function(){var e,t=this._id,o=this.classPrefix,s="#ff0000,#ff0080,#ff00ff,#8000ff,#0000ff,#0080ff,#00ffff,#00ff80,#00ff00,#80ff00,#ffff00,#ff8000,#ff0000";return e='<div id="'+t+'-h" class="'+o+'colorpicker-h" style="background: -ms-linear-gradient(top,'+s+");background: linear-gradient(to bottom,"+s+');">'+function(){var e,t,n,i,r="";for(n="filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=",e=0,t=(i=s.split(",")).length-1;e<t;e++)r+='<div class="'+o+'colorpicker-h-chunk" style="height:'+100/t+"%;"+n+i[e]+",endColorstr="+i[e+1]+");-ms-"+n+i[e]+",endColorstr="+i[e+1]+')"></div>';return r}()+'<div id="'+t+'-hp" class="'+o+'colorpicker-h-marker"></div></div>','<div id="'+t+'" class="'+this.classes+'"><div id="'+t+'-sv" class="'+o+'colorpicker-sv"><div class="'+o+'colorpicker-overlay1"><div class="'+o+'colorpicker-overlay2"><div id="'+t+'-svp" class="'+o+'colorpicker-selector1"><div class="'+o+'colorpicker-selector2"></div></div></div></div></div>'+e+"</div>"}}),cn=Bt.extend({init:function(e){e=w.extend({height:100,text:"Drop an image here",multiple:!1,accept:null},e),this._super(e),this.classes.add("dropzone"),e.multiple&&this.classes.add("multiple")},renderHtml:function(){var e,t,n=this.settings;return e={id:this._id,hidefocus:"1"},t=ke.create("div",e,"<span>"+this.translate(n.text)+"</span>"),n.height&&ke.css(t,"height",n.height+"px"),n.width&&ke.css(t,"width",n.width+"px"),t.className=this.classes,t.outerHTML},postRender:function(){var i=this,e=function(e){e.preventDefault(),i.classes.toggle("dragenter"),i.getEl().className=i.classes};i._super(),i.$el.on("dragover",function(e){e.preventDefault()}),i.$el.on("dragenter",e),i.$el.on("dragleave",e),i.$el.on("drop",function(e){if(e.preventDefault(),!i.state.get("disabled")){var t=function(e){var t=i.settings.accept;if("string"!=typeof t)return e;var n=new RegExp("("+t.split(/\s*,\s*/).join("|")+")$","i");return w.grep(e,function(e){return n.test(e.name)})}(e.dataTransfer.files);i.value=function(){return t.length?i.settings.multiple?t:t[0]:null},t.length&&i.fire("change",e)}})},remove:function(){this.$el.off(),this._super()}}),dn=Bt.extend({init:function(e){var n=this;e.delimiter||(e.delimiter="\xbb"),n._super(e),n.classes.add("path"),n.canFocus=!0,n.on("click",function(e){var t;(t=e.target.getAttribute("data-index"))&&n.fire("select",{value:n.row()[t],index:t})}),n.row(n.settings.row)},focus:function(){return this.getEl().firstChild.focus(),this},row:function(e){return arguments.length?(this.state.set("row",e),this):this.state.get("row")},renderHtml:function(){return'<div id="'+this._id+'" class="'+this.classes+'">'+this._getDataPathHtml(this.state.get("row"))+"</div>"},bindStates:function(){var t=this;return t.state.on("change:row",function(e){t.innerHtml(t._getDataPathHtml(e.value))}),t._super()},_getDataPathHtml:function(e){var t,n,i=e||[],r="",o=this.classPrefix;for(t=0,n=i.length;t<n;t++)r+=(0<t?'<div class="'+o+'divider" aria-hidden="true"> '+this.settings.delimiter+" </div>":"")+'<div role="button" class="'+o+"path-item"+(t===n-1?" "+o+"last":"")+'" data-index="'+t+'" tabindex="-1" id="'+this._id+"-"+t+'" aria-level="'+(t+1)+'">'+i[t].name+"</div>";return r||(r='<div class="'+o+'path-item">\xa0</div>'),r}}),fn=dn.extend({postRender:function(){var o=this,s=o.settings.editor;function a(e){if(1===e.nodeType){if("BR"===e.nodeName||e.getAttribute("data-mce-bogus"))return!0;if("bookmark"===e.getAttribute("data-mce-type"))return!0}return!1}return!1!==s.settings.elementpath&&(o.on("select",function(e){s.focus(),s.selection.select(this.row()[e.index].element),s.nodeChanged()}),s.on("nodeChange",function(e){for(var t=[],n=e.parents,i=n.length;i--;)if(1===n[i].nodeType&&!a(n[i])){var r=s.fire("ResolveName",{name:n[i].nodeName.toLowerCase(),target:n[i]});if(r.isDefaultPrevented()||t.push({name:r.name,element:n[i]}),r.isPropagationStopped())break}o.row(t)})),o._super()}}),hn=ft.extend({Defaults:{layout:"flex",align:"center",defaults:{flex:1}},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.classes.add("formitem"),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes+'" hidefocus="1" tabindex="-1">'+(e.settings.title?'<div id="'+e._id+'-title" class="'+n+'title">'+e.settings.title+"</div>":"")+'<div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></div>"}}),mn=ft.extend({Defaults:{containerCls:"form",layout:"flex",direction:"column",align:"stretch",flex:1,padding:15,labelGap:30,spacing:10,callbacks:{submit:function(){this.submit()}}},preRender:function(){var i=this,e=i.items();i.settings.formItemDefaults||(i.settings.formItemDefaults={layout:"flex",autoResize:"overflow",defaults:{flex:1}}),e.each(function(e){var t,n=e.settings.label;n&&((t=new hn(w.extend({items:{type:"label",id:e._id+"-l",text:n,flex:0,forId:e._id,disabled:e.disabled()}},i.settings.formItemDefaults))).type="formitem",e.aria("labelledby",e._id+"-l"),"undefined"==typeof e.settings.flex&&(e.settings.flex=1),i.replace(e,t),t.add(e))})},submit:function(){return this.fire("submit",{data:this.toJSON()})},postRender:function(){this._super(),this.fromJSON(this.settings.data)},bindStates:function(){var n=this;function e(){var e,t,i=0,r=[];if(!1!==n.settings.labelGapCalc)for(("children"===n.settings.labelGapCalc?n.find("formitem"):n.items()).filter("formitem").each(function(e){var t=e.items()[0],n=t.getEl().clientWidth;i=i<n?n:i,r.push(t)}),t=n.settings.labelGap||0,e=r.length;e--;)r[e].settings.minWidth=i+t}n._super(),n.on("show",e),e()}}),gn=mn.extend({Defaults:{containerCls:"fieldset",layout:"flex",direction:"column",align:"stretch",flex:1,padding:"25 15 5 15",labelGap:30,spacing:10,border:1},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.preRender(),t.preRender(e),'<fieldset id="'+e._id+'" class="'+e.classes+'" hidefocus="1" tabindex="-1">'+(e.settings.title?'<legend id="'+e._id+'-title" class="'+n+'fieldset-title">'+e.settings.title+"</legend>":"")+'<div id="'+e._id+'-body" class="'+e.bodyClasses+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div></fieldset>"}}),pn=0,vn=function(e){var t=(new Date).getTime();return e+"_"+Math.floor(1e9*Math.random())+ ++pn+String(t)},bn=function(e){if(null===e||e===undefined)throw new Error("Node cannot be null or undefined");return{dom:k.constant(e)}},yn={fromHtml:function(e,t){var n=(t||document).createElement("div");if(n.innerHTML=e,!n.hasChildNodes()||1<n.childNodes.length)throw console.error("HTML does not have a single root node",e),"HTML must have a single root node";return bn(n.childNodes[0])},fromTag:function(e,t){var n=(t||document).createElement(e);return bn(n)},fromText:function(e,t){var n=(t||document).createTextNode(e);return bn(n)},fromDom:bn,fromPoint:function(e,t,n){return P.from(e.dom().elementFromPoint(t,n)).map(bn)}},xn=function(e){var t,n=!1;return function(){return n||(n=!0,t=e.apply(null,arguments)),t}},wn=9,_n=1,Rn=3,Cn=function(e){return e.dom().nodeType},kn=function(t){return function(e){return Cn(e)===t}},En=(kn(_n),kn(Rn),kn(wn),xn(function(){return En(yn.fromDom(document))}),function(e){var t=e.dom().body;if(null===t||t===undefined)throw"Body is not available yet";return yn.fromDom(t)}),Hn=(Yt=Object.keys)===undefined?function(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(n);return t}:Yt,Sn=function(e,t){for(var n=Hn(e),i=0,r=n.length;i<r;i++){var o=n[i];t(e[o],o,e)}},Mn=function(i,r){var o={};return Sn(i,function(e,t){var n=r(e,t,i);o[n.k]=n.v}),o},Tn=function(e,n){var i=[];return Sn(e,function(e,t){i.push(n(e,t))}),i},Pn=function(e){return Tn(e,function(e){return e})},Wn={bifilter:function(e,n){var i={},r={};return Sn(e,function(e,t){(n(e,t)?i:r)[t]=e}),{t:i,f:r}},each:Sn,map:function(e,i){return Mn(e,function(e,t,n){return{k:t,v:i(e,t,n)}})},mapToArray:Tn,tupleMap:Mn,find:function(e,t){for(var n=Hn(e),i=0,r=n.length;i<r;i++){var o=n[i],s=e[o];if(t(s,o,e))return P.some(s)}return P.none()},keys:Hn,values:Pn,size:function(e){return Pn(e).length}},Dn=function(e){return e.slice(0).sort()},Nn={sort:Dn,reqMessage:function(e,t){throw new Error("All required keys ("+Dn(e).join(", ")+") were not specified. Specified keys were: "+Dn(t).join(", ")+".")},unsuppMessage:function(e){throw new Error("Unsupported keys for object: "+Dn(e).join(", "))},validateStrArr:function(t,e){if(!V.isArray(e))throw new Error("The "+t+" fields must be an array. Was: "+e+".");ie.each(e,function(e){if(!V.isString(e))throw new Error("The value "+e+" in the "+t+" fields was not a string.")})},invalidTypeMessage:function(e,t){throw new Error("All values need to be of type: "+t+". Keys ("+Dn(e).join(", ")+") were not.")},checkDupes:function(e){var n=Dn(e);ie.find(n,function(e,t){return t<n.length-1&&e===n[t+1]}).each(function(e){throw new Error("The field: "+e+" occurs more than once in the combined fields: ["+n.join(", ")+"].")})}},An={immutable:function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];if(t.length!==n.length)throw new Error('Wrong number of arguments to struct. Expected "['+t.length+']", got '+n.length+" arguments");var i={};return ie.each(t,function(e,t){i[e]=k.constant(n[t])}),i}},immutableBag:function(r,o){var s=r.concat(o);if(0===s.length)throw new Error("You must specify at least one required or optional field.");return Nn.validateStrArr("required",r),Nn.validateStrArr("optional",o),Nn.checkDupes(s),function(t){var n=Wn.keys(t);ie.forall(r,function(e){return ie.contains(n,e)})||Nn.reqMessage(r,n);var e=ie.filter(n,function(e){return!ie.contains(s,e)});0<e.length&&Nn.unsuppMessage(e);var i={};return ie.each(r,function(e){i[e]=k.constant(t[e])}),ie.each(o,function(e){i[e]=k.constant(Object.prototype.hasOwnProperty.call(t,e)?P.some(t[e]):P.none())}),i}}},Bn=("undefined"!=typeof window?window:Function("return this;")(),function(e,t){var n=function(e,t){for(var n=0;n<e.length;n++){var i=e[n];if(i.test(t))return i}return undefined}(e,t);if(!n)return{major:0,minor:0};var i=function(e){return Number(t.replace(n,"$"+e))};return zn(i(1),i(2))}),On=function(){return zn(0,0)},zn=function(e,t){return{major:e,minor:t}},Ln={nu:zn,detect:function(e,t){var n=String(t).toLowerCase();return 0===e.length?On():Bn(e,n)},unknown:On},In="Firefox",Fn=function(e,t){return function(){return t===e}},Un=function(e){var t=e.current;return{current:t,version:e.version,isEdge:Fn("Edge",t),isChrome:Fn("Chrome",t),isIE:Fn("IE",t),isOpera:Fn("Opera",t),isFirefox:Fn(In,t),isSafari:Fn("Safari",t)}},Vn={unknown:function(){return Un({current:undefined,version:Ln.unknown()})},nu:Un,edge:k.constant("Edge"),chrome:k.constant("Chrome"),ie:k.constant("IE"),opera:k.constant("Opera"),firefox:k.constant(In),safari:k.constant("Safari")},jn="Windows",qn="Android",Yn="Solaris",$n="FreeBSD",Xn=function(e,t){return function(){return t===e}},Jn=function(e){var t=e.current;return{current:t,version:e.version,isWindows:Xn(jn,t),isiOS:Xn("iOS",t),isAndroid:Xn(qn,t),isOSX:Xn("OSX",t),isLinux:Xn("Linux",t),isSolaris:Xn(Yn,t),isFreeBSD:Xn($n,t)}},Gn={unknown:function(){return Jn({current:undefined,version:Ln.unknown()})},nu:Jn,windows:k.constant(jn),ios:k.constant("iOS"),android:k.constant(qn),linux:k.constant("Linux"),osx:k.constant("OSX"),solaris:k.constant(Yn),freebsd:k.constant($n)},Kn=function(e,t){var n=String(t).toLowerCase();return ie.find(e,function(e){return e.search(n)})},Zn=function(e,n){return Kn(e,n).map(function(e){var t=Ln.detect(e.versionRegexes,n);return{current:e.name,version:t}})},Qn=function(e,n){return Kn(e,n).map(function(e){var t=Ln.detect(e.versionRegexes,n);return{current:e.name,version:t}})},ei=function(e,t){return-1!==e.indexOf(t)},ti=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,ni=function(t){return function(e){return ei(e,t)}},ii=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(e){return ei(e,"edge/")&&ei(e,"chrome")&&ei(e,"safari")&&ei(e,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,ti],search:function(e){return ei(e,"chrome")&&!ei(e,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(e){return ei(e,"msie")||ei(e,"trident")}},{name:"Opera",versionRegexes:[ti,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:ni("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:ni("firefox")},{name:"Safari",versionRegexes:[ti,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(e){return(ei(e,"safari")||ei(e,"mobile/"))&&ei(e,"applewebkit")}}],ri=[{name:"Windows",search:ni("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:function(e){return ei(e,"iphone")||ei(e,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:ni("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:ni("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:ni("linux"),versionRegexes:[]},{name:"Solaris",search:ni("sunos"),versionRegexes:[]},{name:"FreeBSD",search:ni("freebsd"),versionRegexes:[]}],oi={browsers:k.constant(ii),oses:k.constant(ri)},si=function(e){var t,n,i,r,o,s,a,l,u,c,d,f=oi.browsers(),h=oi.oses(),m=Zn(f,e).fold(Vn.unknown,Vn.nu),g=Qn(h,e).fold(Gn.unknown,Gn.nu);return{browser:m,os:g,deviceType:(n=m,i=e,r=(t=g).isiOS()&&!0===/ipad/i.test(i),o=t.isiOS()&&!r,s=t.isAndroid()&&3===t.version.major,a=t.isAndroid()&&4===t.version.major,l=r||s||a&&!0===/mobile/i.test(i),u=t.isiOS()||t.isAndroid(),c=u&&!l,d=n.isSafari()&&t.isiOS()&&!1===/safari/i.test(i),{isiPad:k.constant(r),isiPhone:k.constant(o),isTablet:k.constant(l),isPhone:k.constant(c),isTouch:k.constant(u),isAndroid:t.isAndroid,isiOS:t.isiOS,isWebView:k.constant(d)})}},ai=xn(function(){var e=navigator.userAgent;return si(e)}),li=_n,ui=wn,ci=function(e){return e.nodeType!==li&&e.nodeType!==ui||0===e.childElementCount},di={all:function(e,t){var n=t===undefined?document:t.dom();return ci(n)?[]:ie.map(n.querySelectorAll(e),yn.fromDom)},is:function(e,t){var n=e.dom();if(n.nodeType!==li)return!1;if(n.matches!==undefined)return n.matches(t);if(n.msMatchesSelector!==undefined)return n.msMatchesSelector(t);if(n.webkitMatchesSelector!==undefined)return n.webkitMatchesSelector(t);if(n.mozMatchesSelector!==undefined)return n.mozMatchesSelector(t);throw new Error("Browser lacks native selectors")},one:function(e,t){var n=t===undefined?document:t.dom();return ci(n)?P.none():P.from(n.querySelector(e)).map(yn.fromDom)}},fi=(ai().browser.isIE(),An.immutable("element","offset"),function(e,t){return di.all(t,e)}),hi=w.trim,mi=function(t){return function(e){if(e&&1===e.nodeType){if(e.contentEditable===t)return!0;if(e.getAttribute("data-mce-contenteditable")===t)return!0}return!1}},gi=mi("true"),pi=mi("false"),vi=function(e,t,n,i,r){return{type:e,title:t,url:n,level:i,attach:r}},bi=function(e){return e.innerText||e.textContent},yi=function(e){return(t=e)&&"A"===t.nodeName&&(t.id||t.name)&&wi(e);var t},xi=function(e){return e&&/^(H[1-6])$/.test(e.nodeName)},wi=function(e){return function(e){for(;e=e.parentNode;){var t=e.contentEditable;if(t&&"inherit"!==t)return gi(e)}return!1}(e)&&!pi(e)},_i=function(e){return xi(e)&&wi(e)},Ri=function(e){var t,n,i=(t=e).id?t.id:vn("h");return vi("header",bi(e),"#"+i,xi(n=e)?parseInt(n.nodeName.substr(1),10):0,function(){e.id=i})},Ci=function(e){var t=e.id||e.name,n=bi(e);return vi("anchor",n||"#"+t,"#"+t,0,k.noop)},ki=function(e){var t,n;return t="h1,h2,h3,h4,h5,h6,a:not([href])",n=e,ie.map(fi(yn.fromDom(n),t),function(e){return e.dom()})},Ei=function(e){return 0<hi(e.title).length},Hi=function(e){var t,n,i=ki(e);return ie.filter((n=i,ie.map(ie.filter(n,_i),Ri)).concat((t=i,ie.map(ie.filter(t,yi),Ci))),Ei)},Si={},Mi=function(e){return{title:e.title,value:{title:{raw:e.title},url:e.url,attach:e.attach}}},Ti=function(e,t){return{title:e,value:{title:e,url:t,attach:k.noop}}},Pi=function(e,t,n){var i=t in e?e[t]:n;return!1===i?null:i},Wi=function(e,i,r,t){var n,o,s,a,l={title:"-"},u=function(e){var t=e.hasOwnProperty(r)?e[r]:[],n=ie.filter(t,function(e){return t=e,n=i,!ie.exists(n,function(e){return e.url===t});var t,n});return w.map(n,function(e){return{title:e,value:{title:e,url:e,attach:k.noop}}})},c=function(t){var e,n=ie.filter(i,function(e){return e.type===t});return e=n,w.map(e,Mi)};return!1===t.typeahead_urls?[]:"file"===r?(n=[Di(e,u(Si)),Di(e,c("header")),Di(e,(o=c("anchor"),s=Pi(t,"anchor_top","#top"),a=Pi(t,"anchor_bottom","#bottom"),null!==s&&o.unshift(Ti("<top>",s)),null!==a&&o.push(Ti("<bottom>",a)),o))],ie.foldl(n,function(e,t){return 0===e.length||0===t.length?e.concat(t):e.concat(l,t)},[])):Di(e,u(Si))},Di=function(e,t){var n=e.toLowerCase(),i=w.grep(t,function(e){return-1!==e.title.toLowerCase().indexOf(n)});return 1===i.length&&i[0].title===e?[]:i},Ni=function(r,i,o,s){var t=function(e){var t=Hi(o),n=Wi(e,t,s,i);r.showAutoComplete(n,e)};r.on("autocomplete",function(){t(r.value())}),r.on("selectitem",function(e){var t=e.value;r.value(t.url);var n,i=(n=t.title).raw?n.raw:n;"image"===s?r.fire("change",{meta:{alt:i,attach:t.attach}}):r.fire("change",{meta:{text:i,attach:t.attach}}),r.focus()}),r.on("click",function(e){0===r.value().length&&"INPUT"===e.target.nodeName&&t("")}),r.on("PostRender",function(){r.getRoot().on("submit",function(e){var t,n,i;e.isDefaultPrevented()||(t=r.value(),i=Si[n=s],/^https?/.test(t)&&(i?ie.indexOf(i,t).isNone()&&(Si[n]=i.slice(0,5).concat(t)):Si[n]=[t]))})})},Ai=function(o,e,n){var i=e.filepicker_validator_handler;i&&o.state.on("change:value",function(e){var t;0!==(t=e.value).length?i({url:t,type:n},function(e){var t,n,i,r=(n=(t=e).status,i=t.message,"valid"===n?{status:"ok",message:i}:"unknown"===n?{status:"warn",message:i}:"invalid"===n?{status:"warn",message:i}:{status:"none",message:""});o.statusMessage(r.message),o.statusLevel(r.status)}):o.statusLevel("none")})},Bi=nn.extend({Statics:{clearHistory:function(){Si={}}},init:function(e){var t,n,i,r=this,o=window.tinymce?window.tinymce.activeEditor:l.activeEditor,s=o.settings,a=e.filetype;e.spellcheck=!1,(i=s.file_picker_types||s.file_browser_callback_types)&&(i=w.makeMap(i,/[, ]/)),i&&!i[a]||(!(n=s.file_picker_callback)||i&&!i[a]?!(n=s.file_browser_callback)||i&&!i[a]||(t=function(){n(r.getEl("inp").id,r.value(),a,window)}):t=function(){var e=r.fire("beforecall").meta;e=w.extend({filetype:a},e),n.call(o,function(e,t){r.value(e).fire("change",{meta:t})},r.value(),e)}),t&&(e.icon="browse",e.onaction=t),r._super(e),r.classes.add("filepicker"),Ni(r,s,o.getBody(),a),Ai(r,s,a)}}),Oi=Gt.extend({recalc:function(e){var t=e.layoutRect(),n=e.paddingBox;e.items().filter(":visible").each(function(e){e.layoutRect({x:n.left,y:n.top,w:t.innerW-n.right-n.left,h:t.innerH-n.top-n.bottom}),e.recalc&&e.recalc()})}}),zi=Gt.extend({recalc:function(e){var t,n,i,r,o,s,a,l,u,c,d,f,h,m,g,p,v,b,y,x,w,_,R,C,k,E,H,S,M,T,P,W,D,N,A,B,O,z=[],L=Math.max,I=Math.min;for(i=e.items().filter(":visible"),r=e.layoutRect(),o=e.paddingBox,s=e.settings,f=e.isRtl()?s.direction||"row-reversed":s.direction,a=s.align,l=e.isRtl()?s.pack||"end":s.pack,u=s.spacing||0,"row-reversed"!==f&&"column-reverse"!==f||(i=i.set(i.toArray().reverse()),f=f.split("-")[0]),"column"===f?(C="y",_="h",R="minH",k="maxH",H="innerH",E="top",S="deltaH",M="contentH",N="left",W="w",T="x",P="innerW",D="minW",A="right",B="deltaW",O="contentW"):(C="x",_="w",R="minW",k="maxW",H="innerW",E="left",S="deltaW",M="contentW",N="top",W="h",T="y",P="innerH",D="minH",A="bottom",B="deltaH",O="contentH"),d=r[H]-o[E]-o[E],w=c=0,t=0,n=i.length;t<n;t++)m=(h=i[t]).layoutRect(),d-=t<n-1?u:0,0<(g=h.settings.flex)&&(c+=g,m[k]&&z.push(h),m.flex=g),d-=m[R],w<(p=o[N]+m[D]+o[A])&&(w=p);if((y={})[R]=d<0?r[R]-d+r[S]:r[H]-d+r[S],y[D]=w+r[B],y[M]=r[H]-d,y[O]=w,y.minW=I(y.minW,r.maxW),y.minH=I(y.minH,r.maxH),y.minW=L(y.minW,r.startMinWidth),y.minH=L(y.minH,r.startMinHeight),!r.autoResize||y.minW===r.minW&&y.minH===r.minH){for(b=d/c,t=0,n=z.length;t<n;t++)(v=(m=(h=z[t]).layoutRect())[k])<(p=m[R]+m.flex*b)?(d-=m[k]-m[R],c-=m.flex,m.flex=0,m.maxFlexSize=v):m.maxFlexSize=0;for(b=d/c,x=o[E],y={},0===c&&("end"===l?x=d+o[E]:"center"===l?(x=Math.round(r[H]/2-(r[H]-d)/2)+o[E])<0&&(x=o[E]):"justify"===l&&(x=o[E],u=Math.floor(d/(i.length-1)))),y[T]=o[N],t=0,n=i.length;t<n;t++)p=(m=(h=i[t]).layoutRect()).maxFlexSize||m[R],"center"===a?y[T]=Math.round(r[P]/2-m[W]/2):"stretch"===a?(y[W]=L(m[D]||0,r[P]-o[N]-o[A]),y[T]=o[N]):"end"===a&&(y[T]=r[P]-m[W]-o.top),0<m.flex&&(p+=m.flex*b),y[_]=p,y[C]=x,h.layoutRect(y),h.recalc&&h.recalc(),x+=p+u}else if(y.w=y.minW,y.h=y.minH,e.layoutRect(y),this.recalc(e),null===e._lastRect){var F=e.parent();F&&(F._lastRect=null,F.recalc())}}}),Li=Jt.extend({Defaults:{containerClass:"flow-layout",controlClass:"flow-layout-item",endClass:"break"},recalc:function(e){e.items().filter(":visible").each(function(e){e.recalc&&e.recalc()})},isNative:function(){return!0}}),Ii=function(e,t){return di.one(t,e)},Fi=function(e,t){return function(){e.execCommand("mceToggleFormat",!1,t)}},Ui=function(e,n){return function(){var t=this;e.formatter?e.formatter.formatChanged(n,function(e){t.active(e)}):e.on("init",function(){e.formatter.formatChanged(n,function(e){t.active(e)})})}},Vi=function(n){n.addMenuItem("align",{text:"Align",menu:[{text:"Left",icon:"alignleft",onclick:Fi(n,"alignleft")},{text:"Center",icon:"aligncenter",onclick:Fi(n,"aligncenter")},{text:"Right",icon:"alignright",onclick:Fi(n,"alignright")},{text:"Justify",icon:"alignjustify",onclick:Fi(n,"alignjustify")}]}),w.each({alignleft:["Align left","JustifyLeft"],aligncenter:["Align center","JustifyCenter"],alignright:["Align right","JustifyRight"],alignjustify:["Justify","JustifyFull"],alignnone:["No alignment","JustifyNone"]},function(e,t){n.addButton(t,{active:!1,tooltip:e[0],cmd:e[1],onPostRender:Ui(n,t)})})},ji=function(e){return e?e.split(",")[0]:""},qi=function(a,l){return function(){var s=this;a.on("init nodeChange",function(e){var t,n,i,r=a.queryCommandValue("FontName"),o=(t=l,n=r,w.each(t,function(e){e.value.toLowerCase()===n.toLowerCase()&&(i=e.value)}),w.each(t,function(e){i||ji(e.value).toLowerCase()!==ji(n).toLowerCase()||(i=e.value)}),i);s.value(o||null),!o&&r&&s.text(ji(r))})}},Yi=function(n){n.addButton("fontselect",function(){var e,t=(e=function(e){for(var t=(e=e.replace(/;$/,"").split(";")).length;t--;)e[t]=e[t].split("=");return e}(n.settings.font_formats||"Andale Mono=andale mono,monospace;Arial=arial,helvetica,sans-serif;Arial Black=arial black,sans-serif;Book Antiqua=book antiqua,palatino,serif;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,palatino,serif;Helvetica=helvetica,arial,sans-serif;Impact=impact,sans-serif;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco,monospace;Times New Roman=times new roman,times,serif;Trebuchet MS=trebuchet ms,geneva,sans-serif;Verdana=verdana,geneva,sans-serif;Webdings=webdings;Wingdings=wingdings,zapf dingbats"),w.map(e,function(e){return{text:{raw:e[0]},value:e[1],textStyle:-1===e[1].indexOf("dings")?"font-family:"+e[1]:""}}));return{type:"listbox",text:"Font Family",tooltip:"Font Family",values:t,fixedWidth:!0,onPostRender:qi(n,t),onselect:function(e){e.control.settings.value&&n.execCommand("FontName",!1,e.control.settings.value)}}})},$i=function(e){Yi(e)},Xi=function(e,t){return/[0-9.]+px$/.test(e)?(n=72*parseInt(e,10)/96,i=t||0,r=Math.pow(10,i),Math.round(n*r)/r+"pt"):e;var n,i,r},Ji=function(e,t,n){var i;return w.each(e,function(e){e.value===n?i=n:e.value===t&&(i=t)}),i},Gi=function(n){n.addButton("fontsizeselect",function(){var e,s,a,t=(e=n.settings.fontsize_formats||"8pt 10pt 12pt 14pt 18pt 24pt 36pt",w.map(e.split(" "),function(e){var t=e,n=e,i=e.split("=");return 1<i.length&&(t=i[0],n=i[1]),{text:t,value:n}}));return{type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:t,fixedWidth:!0,onPostRender:(s=n,a=t,function(){var o=this;s.on("init nodeChange",function(e){var t,n,i,r;if(t=s.queryCommandValue("FontSize"))for(i=3;!r&&0<=i;i--)n=Xi(t,i),r=Ji(a,n,t);o.value(r||null),r||o.text(n)})}),onclick:function(e){e.control.settings.value&&n.execCommand("FontSize",!1,e.control.settings.value)}}})},Ki=function(e){Gi(e)},Zi=function(n,e){var i=e.length;return w.each(e,function(e){e.menu&&(e.hidden=0===Zi(n,e.menu));var t=e.format;t&&(e.hidden=!n.formatter.canApply(t)),e.hidden&&i--}),i},Qi=function(n,e){var i=e.items().length;return e.items().each(function(e){e.menu&&e.visible(0<Qi(n,e.menu)),!e.menu&&e.settings.menu&&e.visible(0<Zi(n,e.settings.menu));var t=e.settings.format;t&&e.visible(n.formatter.canApply(t)),e.visible()||i--}),i},er=function(e){var i,r,o,t,s,n,a,l,u=(r=0,o=[],t=[{title:"Headings",items:[{title:"Heading 1",format:"h1"},{title:"Heading 2",format:"h2"},{title:"Heading 3",format:"h3"},{title:"Heading 4",format:"h4"},{title:"Heading 5",format:"h5"},{title:"Heading 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}],s=function(e){var i=[];if(e)return w.each(e,function(e){var t={text:e.title,icon:e.icon};if(e.items)t.menu=s(e.items);else{var n=e.format||"custom"+r++;e.format||(e.name=n,o.push(e)),t.format=n,t.cmd=e.cmd}i.push(t)}),i},(i=e).on("init",function(){w.each(o,function(e){i.formatter.register(e.name,e)})}),{type:"menu",items:i.settings.style_formats_merge?i.settings.style_formats?s(t.concat(i.settings.style_formats)):s(t):s(i.settings.style_formats||t),onPostRender:function(e){i.fire("renderFormatsMenu",{control:e.control})},itemDefaults:{preview:!0,textStyle:function(){if(this.settings.format)return i.formatter.getCssText(this.settings.format)},onPostRender:function(){var n=this;n.parent().on("show",function(){var e,t;(e=n.settings.format)&&(n.disabled(!i.formatter.canApply(e)),n.active(i.formatter.match(e))),(t=n.settings.cmd)&&n.active(i.queryCommandState(t))})},onclick:function(){this.settings.format&&Fi(i,this.settings.format)(),this.settings.cmd&&i.execCommand(this.settings.cmd)}}});n=u,e.addMenuItem("formats",{text:"Formats",menu:n}),l=u,(a=e).addButton("styleselect",{type:"menubutton",text:"Formats",menu:l,onShowMenu:function(){a.settings.style_formats_autohide&&Qi(a,this.menu)}})},tr=function(n,e){return function(){var r,o,s,t=[];return w.each(e,function(e){t.push({text:e[0],value:e[1],textStyle:function(){return n.formatter.getCssText(e[1])}})}),{type:"listbox",text:e[0][0],values:t,fixedWidth:!0,onselect:function(e){if(e.control){var t=e.control.value();Fi(n,t)()}},onPostRender:(r=n,o=t,function(){var t=this;r.on("nodeChange",function(e){var n=r.formatter,i=null;w.each(e.parents,function(t){if(w.each(o,function(e){if(s?n.matchNode(t,s,{value:e.value})&&(i=e.value):n.matchNode(t,e.value)&&(i=e.value),i)return!1}),i)return!1}),t.value(i)})})}}},nr=function(e){var t,n,i=function(e){for(var t=(e=e.replace(/;$/,"").split(";")).length;t--;)e[t]=e[t].split("=");return e}(e.settings.block_formats||"Paragraph=p;Heading 1=h1;Heading 2=h2;Heading 3=h3;Heading 4=h4;Heading 5=h5;Heading 6=h6;Preformatted=pre");e.addMenuItem("blockformats",{text:"Blocks",menu:(t=e,n=i,w.map(n,function(e){return{text:e[0],onclick:Fi(t,e[1]),textStyle:function(){return t.formatter.getCssText(e[1])}}}))}),e.addButton("formatselect",tr(e,i))},ir=function(t,e){var n,i;if("string"==typeof e)i=e.split(" ");else if(w.isArray(e))return ie.flatten(w.map(e,function(e){return ir(t,e)}));return n=w.grep(i,function(e){return"|"===e||e in t.menuItems}),w.map(n,function(e){return"|"===e?{text:"-"}:t.menuItems[e]})},rr=function(e){return e&&"-"===e.text},or=function(e){var t=ie.filter(e,function(e,t,n){return!rr(e)||!rr(n[t-1])});return ie.filter(t,function(e,t,n){return!rr(e)||0<t&&t<n.length-1})},sr=function(e){var t,n,i,r,o=e.settings.insert_button_items;return or(o?ir(e,o):(t=e,n="insert",i=[{text:"-"}],r=w.grep(t.menuItems,function(e){return e.context===n}),w.each(r,function(e){"before"===e.separator&&i.push({text:"|"}),e.prependToContext?i.unshift(e):i.push(e),"after"===e.separator&&i.push({text:"|"})}),i))},ar=function(e){var t;(t=e).addButton("insert",{type:"menubutton",icon:"insert",menu:[],oncreatemenu:function(){this.menu.add(sr(t)),this.menu.renderNew()}})},lr=function(e){var n,i,r;n=e,w.each({bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript"},function(e,t){n.addButton(t,{active:!1,tooltip:e,onPostRender:Ui(n,t),onclick:Fi(n,t)})}),i=e,w.each({outdent:["Decrease indent","Outdent"],indent:["Increase indent","Indent"],cut:["Cut","Cut"],copy:["Copy","Copy"],paste:["Paste","Paste"],help:["Help","mceHelp"],selectall:["Select all","SelectAll"],visualaid:["Visual aids","mceToggleVisualAid"],newdocument:["New document","mceNewDocument"],removeformat:["Clear formatting","RemoveFormat"],remove:["Remove","Delete"]},function(e,t){i.addButton(t,{tooltip:e[0],cmd:e[1]})}),r=e,w.each({blockquote:["Blockquote","mceBlockQuote"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"]},function(e,t){r.addButton(t,{active:!1,tooltip:e[0],cmd:e[1],onPostRender:Ui(r,t)})})},ur=function(e){var n;lr(e),n=e,w.each({bold:["Bold","Bold","Meta+B"],italic:["Italic","Italic","Meta+I"],underline:["Underline","Underline","Meta+U"],strikethrough:["Strikethrough","Strikethrough"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],removeformat:["Clear formatting","RemoveFormat"],newdocument:["New document","mceNewDocument"],cut:["Cut","Cut","Meta+X"],copy:["Copy","Copy","Meta+C"],paste:["Paste","Paste","Meta+V"],selectall:["Select all","SelectAll","Meta+A"]},function(e,t){n.addMenuItem(t,{text:e[0],icon:t,shortcut:e[2],cmd:e[1]})}),n.addMenuItem("codeformat",{text:"Code",icon:"code",onclick:Fi(n,"code")})},cr=function(n,i){return function(){var e=this,t=function(){var e="redo"===i?"hasRedo":"hasUndo";return!!n.undoManager&&n.undoManager[e]()};e.disabled(!t()),n.on("Undo Redo AddUndo TypingUndo ClearUndos SwitchMode",function(){e.disabled(n.readonly||!t())})}},dr=function(e){var t,n;(t=e).addMenuItem("undo",{text:"Undo",icon:"undo",shortcut:"Meta+Z",onPostRender:cr(t,"undo"),cmd:"undo"}),t.addMenuItem("redo",{text:"Redo",icon:"redo",shortcut:"Meta+Y",onPostRender:cr(t,"redo"),cmd:"redo"}),(n=e).addButton("undo",{tooltip:"Undo",onPostRender:cr(n,"undo"),cmd:"undo"}),n.addButton("redo",{tooltip:"Redo",onPostRender:cr(n,"redo"),cmd:"redo"})},fr=function(e){var t,n;(t=e).addMenuItem("visualaid",{text:"Visual aids",selectable:!0,onPostRender:(n=t,function(){var t=this;n.on("VisualAid",function(e){t.active(e.hasVisual)}),t.active(n.hasVisual)}),cmd:"mceToggleVisualAid"})},hr={setup:function(e){var t;e.rtl&&(lt.rtl=!0),e.on("mousedown",function(){St.hideAll()}),(t=e).settings.ui_container&&(me.container=Ii(yn.fromDom(document.body),t.settings.ui_container).fold(k.constant(null),function(e){return e.dom()})),Bt.tooltips=!me.iOS,lt.translate=function(e){return l.translate(e)},nr(e),Vi(e),ur(e),dr(e),Ki(e),$i(e),er(e),fr(e),ar(e)}},mr=Gt.extend({recalc:function(e){var t,n,i,r,o,s,a,l,u,c,d,f,h,m,g,p,v,b,y,x,w,_,R,C,k,E,H,S,M=[],T=[];t=e.settings,r=e.items().filter(":visible"),o=e.layoutRect(),i=t.columns||Math.ceil(Math.sqrt(r.length)),n=Math.ceil(r.length/i),b=t.spacingH||t.spacing||0,y=t.spacingV||t.spacing||0,x=t.alignH||t.align,w=t.alignV||t.align,p=e.paddingBox,S="reverseRows"in t?t.reverseRows:e.isRtl(),x&&"string"==typeof x&&(x=[x]),w&&"string"==typeof w&&(w=[w]);for(d=0;d<i;d++)M.push(0);for(f=0;f<n;f++)T.push(0);for(f=0;f<n;f++)for(d=0;d<i&&(c=r[f*i+d]);d++)C=(u=c.layoutRect()).minW,k=u.minH,M[d]=C>M[d]?C:M[d],T[f]=k>T[f]?k:T[f];for(E=o.innerW-p.left-p.right,d=_=0;d<i;d++)_+=M[d]+(0<d?b:0),E-=(0<d?b:0)+M[d];for(H=o.innerH-p.top-p.bottom,f=R=0;f<n;f++)R+=T[f]+(0<f?y:0),H-=(0<f?y:0)+T[f];if(_+=p.left+p.right,R+=p.top+p.bottom,(l={}).minW=_+(o.w-o.innerW),l.minH=R+(o.h-o.innerH),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH,l.minW=Math.min(l.minW,o.maxW),l.minH=Math.min(l.minH,o.maxH),l.minW=Math.max(l.minW,o.startMinWidth),l.minH=Math.max(l.minH,o.startMinHeight),!o.autoResize||l.minW===o.minW&&l.minH===o.minH){var P;o.autoResize&&((l=e.layoutRect(l)).contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH),P="start"===t.packV?0:0<H?Math.floor(H/n):0;var W=0,D=t.flexWidths;if(D)for(d=0;d<D.length;d++)W+=D[d];else W=i;var N=E/W;for(d=0;d<i;d++)M[d]+=D?D[d]*N:N;for(m=p.top,f=0;f<n;f++){for(h=p.left,a=T[f]+P,d=0;d<i&&(c=r[S?f*i+i-1-d:f*i+d]);d++)g=c.settings,u=c.layoutRect(),s=Math.max(M[d],u.startMinWidth),u.x=h,u.y=m,"center"===(v=g.alignH||(x?x[d]||x[0]:null))?u.x=h+s/2-u.w/2:"right"===v?u.x=h+s-u.w:"stretch"===v&&(u.w=s),"center"===(v=g.alignV||(w?w[d]||w[0]:null))?u.y=m+a/2-u.h/2:"bottom"===v?u.y=m+a-u.h:"stretch"===v&&(u.h=a),c.layoutRect(u),h+=s+b,c.recalc&&c.recalc();m+=a+y}}else if(l.w=l.minW,l.h=l.minH,e.layoutRect(l),this.recalc(e),null===e._lastRect){var A=e.parent();A&&(A._lastRect=null,A.recalc())}}}),gr=Bt.extend({renderHtml:function(){var e=this;return e.classes.add("iframe"),e.canFocus=!1,'<iframe id="'+e._id+'" class="'+e.classes+'" tabindex="-1" src="'+(e.settings.url||"javascript:''")+'" frameborder="0"></iframe>'},src:function(e){this.getEl().src=e},html:function(e,t){var n=this,i=this.getEl().contentWindow.document.body;return i?(i.innerHTML=e,t&&t()):u.setTimeout(function(){n.html(e)}),this}}),pr=Bt.extend({init:function(e){this._super(e),this.classes.add("widget").add("infobox"),this.canFocus=!1},severity:function(e){this.classes.remove("error"),this.classes.remove("warning"),this.classes.remove("success"),this.classes.add(e)},help:function(e){this.state.set("help",e)},renderHtml:function(){var e=this,t=e.classPrefix;return'<div id="'+e._id+'" class="'+e.classes+'"><div id="'+e._id+'-body">'+e.encode(e.state.get("text"))+'<button role="button" tabindex="-1"><i class="'+t+"ico "+t+'i-help"></i></button></div></div>'},bindStates:function(){var t=this;return t.state.on("change:text",function(e){t.getEl("body").firstChild.data=t.encode(e.value),t.state.get("rendered")&&t.updateLayoutRect()}),t.state.on("change:help",function(e){t.classes.toggle("has-help",e.value),t.state.get("rendered")&&t.updateLayoutRect()}),t._super()}}),vr=Bt.extend({init:function(e){var t=this;t._super(e),t.classes.add("widget").add("label"),t.canFocus=!1,e.multiline&&t.classes.add("autoscroll"),e.strong&&t.classes.add("strong")},initLayoutRect:function(){var e=this,t=e._super();return e.settings.multiline&&(ke.getSize(e.getEl()).width>t.maxW&&(t.minW=t.maxW,e.classes.add("multiline")),e.getEl().style.width=t.minW+"px",t.startMinH=t.h=t.minH=Math.min(t.maxH,ke.getSize(e.getEl()).height)),t},repaint:function(){return this.settings.multiline||(this.getEl().style.lineHeight=this.layoutRect().h+"px"),this._super()},severity:function(e){this.classes.remove("error"),this.classes.remove("warning"),this.classes.remove("success"),this.classes.add(e)},renderHtml:function(){var e,t,n=this,i=n.settings.forId,r=n.settings.html?n.settings.html:n.encode(n.state.get("text"));return!i&&(t=n.settings.forName)&&(e=n.getRoot().find("#"+t)[0])&&(i=e._id),i?'<label id="'+n._id+'" class="'+n.classes+'"'+(i?' for="'+i+'"':"")+">"+r+"</label>":'<span id="'+n._id+'" class="'+n.classes+'">'+r+"</span>"},bindStates:function(){var t=this;return t.state.on("change:text",function(e){t.innerHtml(t.encode(e.value)),t.state.get("rendered")&&t.updateLayoutRect()}),t._super()}}),br=ft.extend({Defaults:{role:"toolbar",layout:"flow"},init:function(e){this._super(e),this.classes.add("toolbar")},postRender:function(){return this.items().each(function(e){e.classes.add("toolbar-item")}),this._super()}}),yr=br.extend({Defaults:{role:"menubar",containerCls:"menubar",ariaRoot:!0,defaults:{type:"menubutton"}}}),xr=Kt.extend({init:function(e){var t=this;t._renderOpen=!0,t._super(e),e=t.settings,t.classes.add("menubtn"),e.fixedWidth&&t.classes.add("fixed-width"),t.aria("haspopup",!0),t.state.set("menu",e.menu||t.render())},showMenu:function(e){var t,n=this;if(n.menu&&n.menu.visible()&&!1!==e)return n.hideMenu();n.menu||(t=n.state.get("menu")||[],n.classes.add("opened"),t.length?t={type:"menu",animate:!0,items:t}:(t.type=t.type||"menu",t.animate=!0),t.renderTo?n.menu=t.parent(n).show().renderTo():n.menu=v.create(t).parent(n).renderTo(),n.fire("createmenu"),n.menu.reflow(),n.menu.on("cancel",function(e){e.control.parent()===n.menu&&(e.stopPropagation(),n.focus(),n.hideMenu())}),n.menu.on("select",function(){n.focus()}),n.menu.on("show hide",function(e){e.control===n.menu&&(n.activeMenu("show"===e.type),n.classes.toggle("opened","show"===e.type)),n.aria("expanded","show"===e.type)}).fire("show")),n.menu.show(),n.menu.layoutRect({w:n.layoutRect().w}),n.menu.repaint(),n.menu.moveRel(n.getEl(),n.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"]),n.fire("showmenu")},hideMenu:function(){this.menu&&(this.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),this.menu.hide())},activeMenu:function(e){this.classes.toggle("active",e)},renderHtml:function(){var e,t=this,n=t._id,i=t.classPrefix,r=t.settings.icon,o=t.state.get("text"),s="";return(e=t.settings.image)?(r="none","string"!=typeof e&&(e=window.getSelection?e[0]:e[1]),e=" style=\"background-image: url('"+e+"')\""):e="",o&&(t.classes.add("btn-has-text"),s='<span class="'+i+'txt">'+t.encode(o)+"</span>"),r=t.settings.icon?i+"ico "+i+"i-"+r:"",t.aria("role",t.parent()instanceof yr?"menuitem":"button"),'<div id="'+n+'" class="'+t.classes+'" tabindex="-1" aria-labelledby="'+n+'"><button id="'+n+'-open" role="presentation" type="button" tabindex="-1">'+(r?'<i class="'+r+'"'+e+"></i>":"")+s+' <i class="'+i+'caret"></i></button></div>'},postRender:function(){var r=this;return r.on("click",function(e){e.control===r&&function(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1}(e.target,r.getEl())&&(r.focus(),r.showMenu(!e.aria),e.aria&&r.menu.items().filter(":visible")[0].focus())}),r.on("mouseenter",function(e){var t,n=e.control,i=r.parent();n&&i&&n instanceof xr&&n.parent()===i&&(i.items().filter("MenuButton").each(function(e){e.hideMenu&&e!==n&&(e.menu&&e.menu.visible()&&(t=!0),e.hideMenu())}),t&&(n.focus(),n.showMenu()))}),r._super()},bindStates:function(){var e=this;return e.state.on("change:menu",function(){e.menu&&e.menu.remove(),e.menu=null}),e._super()},remove:function(){this._super(),this.menu&&this.menu.remove()}}),wr=St.extend({Defaults:{defaultType:"menuitem",border:1,layout:"stack",role:"application",bodyRole:"menu",ariaRoot:!0},init:function(e){if(e.autohide=!0,e.constrainToViewport=!0,"function"==typeof e.items&&(e.itemsFactory=e.items,e.items=[]),e.itemDefaults)for(var t=e.items,n=t.length;n--;)t[n]=w.extend({},e.itemDefaults,t[n]);this._super(e),this.classes.add("menu"),e.animate&&11!==me.ie&&this.classes.add("animate")},repaint:function(){return this.classes.toggle("menu-align",!0),this._super(),this.getEl().style.height="",this.getEl("body").style.height="",this},cancel:function(){this.hideAll(),this.fire("select")},load:function(){var t,n=this;function i(){n.throbber&&(n.throbber.hide(),n.throbber=null)}n.settings.itemsFactory&&(n.throbber||(n.throbber=new Wt(n.getEl("body"),!0),0===n.items().length?(n.throbber.show(),n.fire("loading")):n.throbber.show(100,function(){n.items().remove(),n.fire("loading")}),n.on("hide close",i)),n.requestTime=t=(new Date).getTime(),n.settings.itemsFactory(function(e){0!==e.length?n.requestTime===t&&(n.getEl().style.width="",n.getEl("body").style.width="",i(),n.items().remove(),n.getEl("body").innerHTML="",n.add(e),n.renderNew(),n.fire("loaded")):n.hide()}))},hideAll:function(){return this.find("menuitem").exec("hideMenu"),this._super()},preRender:function(){var n=this;return n.items().each(function(e){var t=e.settings;if(t.icon||t.image||t.selectable)return!(n._hasIcons=!0)}),n.settings.itemsFactory&&n.on("postrender",function(){n.settings.itemsFactory&&n.load()}),n.on("show hide",function(e){e.control===n&&("show"===e.type?u.setTimeout(function(){n.classes.add("in")},0):n.classes.remove("in"))}),n._super()}}),_r=xr.extend({init:function(i){var t,r,o,n,s=this;s._super(i),i=s.settings,s._values=t=i.values,t&&("undefined"!=typeof i.value&&function e(t){for(var n=0;n<t.length;n++){if(r=t[n].selected||i.value===t[n].value)return o=o||t[n].text,s.state.set("value",t[n].value),!0;if(t[n].menu&&e(t[n].menu))return!0}}(t),!r&&0<t.length&&(o=t[0].text,s.state.set("value",t[0].value)),s.state.set("menu",t)),s.state.set("text",i.text||o),s.classes.add("listbox"),s.on("select",function(e){var t=e.control;n&&(e.lastControl=n),i.multiple?t.active(!t.active()):s.value(e.control.value()),n=t})},value:function(t){return 0===arguments.length?this.state.get("value"):(void 0===t||(this.settings.values?0<w.grep(this.settings.values,function(e){return e.value===t}).length?this.state.set("value",t):null===t&&this.state.set("value",null):this.state.set("value",t)),this)},bindStates:function(){var i=this;return i.on("show",function(e){var t,n;t=e.control,n=i.value(),t instanceof wr&&t.items().each(function(e){e.hasMenus()||e.active(e.value()===n)})}),i.state.on("change:value",function(t){var n=function e(t,n){var i;if(t)for(var r=0;r<t.length;r++){if(t[r].value===n)return t[r];if(t[r].menu&&(i=e(t[r].menu,n)))return i}}(i.state.get("menu"),t.value);n?i.text(n.text):i.text(i.settings.text)}),i._super()}}),Rr=Bt.extend({Defaults:{border:0,role:"menuitem"},init:function(e){var t,n=this;n._super(e),e=n.settings,n.classes.add("menu-item"),e.menu&&n.classes.add("menu-item-expand"),e.preview&&n.classes.add("menu-item-preview"),"-"!==(t=n.state.get("text"))&&"|"!==t||(n.classes.add("menu-item-sep"),n.aria("role","separator"),n.state.set("text","-")),e.selectable&&(n.aria("role","menuitemcheckbox"),n.classes.add("menu-item-checkbox"),e.icon="selected"),e.preview||e.selectable||n.classes.add("menu-item-normal"),n.on("mousedown",function(e){e.preventDefault()}),e.menu&&!e.ariaHideMenu&&n.aria("haspopup",!0)},hasMenus:function(){return!!this.settings.menu},showMenu:function(){var t,n=this,e=n.settings,i=n.parent();if(i.items().each(function(e){e!==n&&e.hideMenu()}),e.menu){(t=n.menu)?t.show():((t=e.menu).length?t={type:"menu",items:t}:t.type=t.type||"menu",i.settings.itemDefaults&&(t.itemDefaults=i.settings.itemDefaults),(t=n.menu=v.create(t).parent(n).renderTo()).reflow(),t.on("cancel",function(e){e.stopPropagation(),n.focus(),t.hide()}),t.on("show hide",function(e){e.control.items&&e.control.items().each(function(e){e.active(e.settings.selected)})}).fire("show"),t.on("hide",function(e){e.control===t&&n.classes.remove("selected")}),t.submenu=!0),t._parentMenu=i,t.classes.add("menu-sub");var r=t.testMoveRel(n.getEl(),n.isRtl()?["tl-tr","bl-br","tr-tl","br-bl"]:["tr-tl","br-bl","tl-tr","bl-br"]);t.moveRel(n.getEl(),r),r="menu-sub-"+(t.rel=r),t.classes.remove(t._lastRel).add(r),t._lastRel=r,n.classes.add("selected"),n.aria("expanded",!0)}},hideMenu:function(){var e=this;return e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide(),e.aria("expanded",!1)),e},renderHtml:function(){var e,t=this,n=t._id,i=t.settings,r=t.classPrefix,o=t.state.get("text"),s=t.settings.icon,a="",l=i.shortcut,u=t.encode(i.url);function c(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function d(e){var t=i.match||"";return t?e.replace(new RegExp(c(t),"gi"),function(e){return"!mce~match["+e+"]mce~match!"}):e}function f(e){return e.replace(new RegExp(c("!mce~match["),"g"),"<b>").replace(new RegExp(c("]mce~match!"),"g"),"</b>")}return s&&t.parent().classes.add("menu-has-icons"),i.image&&(a=" style=\"background-image: url('"+i.image+"')\""),l&&(l=function(e){var t,n,i={};for(i=me.mac?{alt:"⌥",ctrl:"⌘",shift:"⇧",meta:"⌘"}:{meta:"Ctrl"},e=e.split("+"),t=0;t<e.length;t++)(n=i[e[t].toLowerCase()])&&(e[t]=n);return e.join("+")}(l)),s=r+"ico "+r+"i-"+(t.settings.icon||"none"),e="-"!==o?'<i class="'+s+'"'+a+"></i>\xa0":"",o=f(t.encode(d(o))),u=f(t.encode(d(u))),'<div id="'+n+'" class="'+t.classes+'" tabindex="-1">'+e+("-"!==o?'<span id="'+n+'-text" class="'+r+'text">'+o+"</span>":"")+(l?'<div id="'+n+'-shortcut" class="'+r+'menu-shortcut">'+l+"</div>":"")+(i.menu?'<div class="'+r+'caret"></div>':"")+(u?'<div class="'+r+'menu-item-link">'+u+"</div>":"")+"</div>"},postRender:function(){var t=this,n=t.settings,e=n.textStyle;if("function"==typeof e&&(e=e.call(this)),e){var i=t.getEl("text");i&&(i.setAttribute("style",e),t._textStyle=e)}return t.on("mouseenter click",function(e){e.control===t&&(n.menu||"click"!==e.type?(t.showMenu(),e.aria&&t.menu.focus(!0)):(t.fire("select"),u.requestAnimationFrame(function(){t.parent().hideAll()})))}),t._super(),t},hover:function(){return this.parent().items().each(function(e){e.classes.remove("selected")}),this.classes.toggle("selected",!0),this},active:function(e){return function(e,t){var n=e._textStyle;if(n){var i=e.getEl("text");i.setAttribute("style",n),t&&(i.style.color="",i.style.backgroundColor="")}}(this,e),void 0!==e&&this.aria("checked",e),this._super(e)},remove:function(){this._super(),this.menu&&this.menu.remove()}}),Cr=en.extend({Defaults:{classes:"radio",role:"radio"}}),kr=Bt.extend({renderHtml:function(){var e=this,t=e.classPrefix;return e.classes.add("resizehandle"),"both"===e.settings.direction&&e.classes.add("resizehandle-both"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes+'"><i class="'+t+"ico "+t+'i-resize"></i></div>'},postRender:function(){var t=this;t._super(),t.resizeDragHelper=new mt(this._id,{start:function(){t.fire("ResizeStart")},drag:function(e){"both"!==t.settings.direction&&(e.deltaX=0),t.fire("Resize",e)},stop:function(){t.fire("ResizeEnd")}})},remove:function(){return this.resizeDragHelper&&this.resizeDragHelper.destroy(),this._super()}});function Er(e){var t="";if(e)for(var n=0;n<e.length;n++)t+='<option value="'+e[n]+'">'+e[n]+"</option>";return t}var Hr=Bt.extend({Defaults:{classes:"selectbox",role:"selectbox",options:[]},init:function(e){var n=this;n._super(e),n.settings.size&&(n.size=n.settings.size),n.settings.options&&(n._options=n.settings.options),n.on("keydown",function(e){var t;13===e.keyCode&&(e.preventDefault(),n.parents().reverse().each(function(e){if(e.toJSON)return t=e,!1}),n.fire("submit",{data:t.toJSON()}))})},options:function(e){return arguments.length?(this.state.set("options",e),this):this.state.get("options")},renderHtml:function(){var e,t=this,n="";return e=Er(t._options),t.size&&(n=' size = "'+t.size+'"'),'<select id="'+t._id+'" class="'+t.classes+'"'+n+">"+e+"</select>"},bindStates:function(){var t=this;return t.state.on("change:options",function(e){t.getEl().innerHTML=Er(e.value)}),t._super()}});function Sr(e,t,n){return e<t&&(e=t),n<e&&(e=n),e}function Mr(e,t,n){e.setAttribute("aria-"+t,n)}function Tr(e,t){var n,i,r,o,s;"v"===e.settings.orientation?(r="top",i="height",n="h"):(r="left",i="width",n="w"),s=e.getEl("handle"),o=((e.layoutRect()[n]||100)-ke.getSize(s)[i])*((t-e._minValue)/(e._maxValue-e._minValue))+"px",s.style[r]=o,s.style.height=e.layoutRect().h+"px",Mr(s,"valuenow",t),Mr(s,"valuetext",""+e.settings.previewFilter(t)),Mr(s,"valuemin",e._minValue),Mr(s,"valuemax",e._maxValue)}var Pr=Bt.extend({init:function(e){var t=this;e.previewFilter||(e.previewFilter=function(e){return Math.round(100*e)/100}),t._super(e),t.classes.add("slider"),"v"===e.orientation&&t.classes.add("vertical"),t._minValue=V.isNumber(e.minValue)?e.minValue:0,t._maxValue=V.isNumber(e.maxValue)?e.maxValue:100,t._initValue=t.state.get("value")},renderHtml:function(){var e=this._id,t=this.classPrefix;return'<div id="'+e+'" class="'+this.classes+'"><div id="'+e+'-handle" class="'+t+'slider-handle" role="slider" tabindex="-1"></div></div>'},reset:function(){this.value(this._initValue).repaint()},postRender:function(){var e,t,n,i,r,o,s,a,l,u,c,d,f,h,m=this;e=m._minValue,t=m._maxValue,"v"===m.settings.orientation?(n="screenY",i="top",r="height",o="h"):(n="screenX",i="left",r="width",o="w"),m._super(),function(o,s){function t(e){var t,n,i,r;t=Sr(t=(((t=m.value())+(r=n=o))/((i=s)-r)+.05*e)*(i-n)-n,o,s),m.value(t),m.fire("dragstart",{value:t}),m.fire("drag",{value:t}),m.fire("dragend",{value:t})}m.on("keydown",function(e){switch(e.keyCode){case 37:case 38:t(-1);break;case 39:case 40:t(1)}})}(e,t),s=e,a=t,l=m.getEl("handle"),m._dragHelper=new mt(m._id,{handle:m._id+"-handle",start:function(e){u=e[n],c=parseInt(m.getEl("handle").style[i],10),d=(m.layoutRect()[o]||100)-ke.getSize(l)[r],m.fire("dragstart",{value:h})},drag:function(e){var t=e[n]-u;f=Sr(c+t,0,d),l.style[i]=f+"px",h=s+f/d*(a-s),m.value(h),m.tooltip().text(""+m.settings.previewFilter(h)).show().moveRel(l,"bc tc"),m.fire("drag",{value:h})},stop:function(){m.tooltip().hide(),m.fire("dragend",{value:h})}})},repaint:function(){this._super(),Tr(this,this.value())},bindStates:function(){var t=this;return t.state.on("change:value",function(e){Tr(t,e.value)}),t._super()}}),Wr=Bt.extend({renderHtml:function(){return this.classes.add("spacer"),this.canFocus=!1,'<div id="'+this._id+'" class="'+this.classes+'"></div>'}}),Dr=xr.extend({Defaults:{classes:"widget btn splitbtn",role:"button"},repaint:function(){var e,t,n=this.getEl(),i=this.layoutRect();return this._super(),e=n.firstChild,t=n.lastChild,Re(e).css({width:i.w-ke.getSize(t).width,height:i.h-2}),Re(t).css({height:i.h-2}),this},activeMenu:function(e){Re(this.getEl().lastChild).toggleClass(this.classPrefix+"active",e)},renderHtml:function(){var e,t,n=this,i=n._id,r=n.classPrefix,o=n.state.get("icon"),s=n.state.get("text"),a=n.settings,l="";return(e=a.image)?(o="none","string"!=typeof e&&(e=window.getSelection?e[0]:e[1]),e=" style=\"background-image: url('"+e+"')\""):e="",o=a.icon?r+"ico "+r+"i-"+o:"",s&&(n.classes.add("btn-has-text"),l='<span class="'+r+'txt">'+n.encode(s)+"</span>"),t="boolean"==typeof a.active?' aria-pressed="'+a.active+'"':"",'<div id="'+i+'" class="'+n.classes+'" role="button"'+t+' tabindex="-1"><button type="button" hidefocus="1" tabindex="-1">'+(o?'<i class="'+o+'"'+e+"></i>":"")+l+'</button><button type="button" class="'+r+'open" hidefocus="1" tabindex="-1">'+(n._menuBtnText?(o?"\xa0":"")+n._menuBtnText:"")+' <i class="'+r+'caret"></i></button></div>'},postRender:function(){var n=this.settings.onclick;return this.on("click",function(e){var t=e.target;if(e.control===this)for(;t;){if(e.aria&&"down"!==e.aria.key||"BUTTON"===t.nodeName&&-1===t.className.indexOf("open"))return e.stopImmediatePropagation(),void(n&&n.call(this,e));t=t.parentNode}}),delete this.settings.onclick,this._super()}}),Nr=Li.extend({Defaults:{containerClass:"stack-layout",controlClass:"stack-layout-item",endClass:"break"},isNative:function(){return!0}}),Ar=xt.extend({Defaults:{layout:"absolute",defaults:{type:"panel"}},activateTab:function(n){var e;this.activeTabId&&(e=this.getEl(this.activeTabId),Re(e).removeClass(this.classPrefix+"active"),e.setAttribute("aria-selected","false")),this.activeTabId="t"+n,(e=this.getEl("t"+n)).setAttribute("aria-selected","true"),Re(e).addClass(this.classPrefix+"active"),this.items()[n].show().fire("showtab"),this.reflow(),this.items().each(function(e,t){n!==t&&e.hide()})},renderHtml:function(){var i=this,e=i._layout,r="",o=i.classPrefix;return i.preRender(),e.preRender(i),i.items().each(function(e,t){var n=i._id+"-t"+t;e.aria("role","tabpanel"),e.aria("labelledby",n),r+='<div id="'+n+'" class="'+o+'tab" unselectable="on" role="tab" aria-controls="'+e._id+'" aria-selected="false" tabIndex="-1">'+i.encode(e.settings.title)+"</div>"}),'<div id="'+i._id+'" class="'+i.classes+'" hidefocus="1" tabindex="-1"><div id="'+i._id+'-head" class="'+o+'tabs" role="tablist">'+r+'</div><div id="'+i._id+'-body" class="'+i.bodyClasses+'">'+e.renderHtml(i)+"</div></div>"},postRender:function(){var i=this;i._super(),i.settings.activeTab=i.settings.activeTab||0,i.activateTab(i.settings.activeTab),this.on("click",function(e){var t=e.target.parentNode;if(t&&t.id===i._id+"-head")for(var n=t.childNodes.length;n--;)t.childNodes[n]===e.target&&i.activateTab(n)})},initLayoutRect:function(){var e,t,n,i=this;t=(t=ke.getSize(i.getEl("head")).width)<0?0:t,n=0,i.items().each(function(e){t=Math.max(t,e.layoutRect().minW),n=Math.max(n,e.layoutRect().minH)}),i.items().each(function(e){e.settings.x=0,e.settings.y=0,e.settings.w=t,e.settings.h=n,e.layoutRect({x:0,y:0,w:t,h:n})});var r=ke.getSize(i.getEl("head")).height;return i.settings.minWidth=t,i.settings.minHeight=n+r,(e=i._super()).deltaH+=r,e.innerH=e.h-e.deltaH,e}}),Br=Bt.extend({init:function(e){var n=this;n._super(e),n.classes.add("textbox"),e.multiline?n.classes.add("multiline"):(n.on("keydown",function(e){var t;13===e.keyCode&&(e.preventDefault(),n.parents().reverse().each(function(e){if(e.toJSON)return t=e,!1}),n.fire("submit",{data:t.toJSON()}))}),n.on("keyup",function(e){n.state.set("value",e.target.value)}))},repaint:function(){var e,t,n,i,r,o=this,s=0;e=o.getEl().style,t=o._layoutRect,r=o._lastRepaintRect||{};var a=document;return!o.settings.multiline&&a.all&&(!a.documentMode||a.documentMode<=8)&&(e.lineHeight=t.h-s+"px"),i=(n=o.borderBox).left+n.right+8,s=n.top+n.bottom+(o.settings.multiline?8:0),t.x!==r.x&&(e.left=t.x+"px",r.x=t.x),t.y!==r.y&&(e.top=t.y+"px",r.y=t.y),t.w!==r.w&&(e.width=t.w-i+"px",r.w=t.w),t.h!==r.h&&(e.height=t.h-s+"px",r.h=t.h),o._lastRepaintRect=r,o.fire("repaint",{},!1),o},renderHtml:function(){var t,e,n=this,i=n.settings;return t={id:n._id,hidefocus:"1"},w.each(["rows","spellcheck","maxLength","size","readonly","min","max","step","list","pattern","placeholder","required","multiple"],function(e){t[e]=i[e]}),n.disabled()&&(t.disabled="disabled"),i.subtype&&(t.type=i.subtype),(e=ke.create(i.multiline?"textarea":"input",t)).value=n.state.get("value"),e.className=n.classes,e.outerHTML},value:function(e){return arguments.length?(this.state.set("value",e),this):(this.state.get("rendered")&&this.state.set("value",this.getEl().value),this.state.get("value"))},postRender:function(){var t=this;t.getEl().value=t.state.get("value"),t._super(),t.$el.on("change",function(e){t.state.set("value",e.target.value),t.fire("change",e)})},bindStates:function(){var t=this;return t.state.on("change:value",function(e){t.getEl().value!==e.value&&(t.getEl().value=e.value)}),t.state.on("change:disabled",function(e){t.getEl().disabled=e.value}),t._super()},remove:function(){this.$el.off(),this._super()}}),Or=function(){return{Selector:je,Collection:$e,ReflowQueue:tt,Control:lt,Factory:v,KeyboardNavigation:ct,Container:ft,DragHelper:mt,Scrollable:yt,Panel:xt,Movable:Pe,Resizable:wt,FloatPanel:St,Window:qt,MessageBox:$t,Tooltip:At,Widget:Bt,Progress:Ot,Notification:Lt,Layout:Jt,AbsoluteLayout:Gt,Button:Kt,ButtonGroup:Qt,Checkbox:en,ComboBox:nn,ColorBox:rn,PanelButton:on,ColorButton:an,ColorPicker:un,Path:dn,ElementPath:fn,FormItem:hn,Form:mn,FieldSet:gn,FilePicker:Bi,FitLayout:Oi,FlexLayout:zi,FlowLayout:Li,FormatControls:hr,GridLayout:mr,Iframe:gr,InfoBox:pr,Label:vr,Toolbar:br,MenuBar:yr,MenuButton:xr,MenuItem:Rr,Throbber:Wt,Menu:wr,ListBox:_r,Radio:Cr,ResizeHandle:kr,SelectBox:Hr,Slider:Pr,Spacer:Wr,SplitButton:Dr,StackLayout:Nr,TabPanel:Ar,TextBox:Br,DropZone:cn,BrowseButton:Zt}},zr=function(n){n.ui?w.each(Or(),function(e,t){n.ui[t]=e}):n.ui=Or()};w.each(Or(),function(e,t){v.add(t,e)}),zr(window.tinymce?window.tinymce:{}),o.add("modern",function(e){return hr.setup(e),Xt(e)})}(); \ No newline at end of file diff --git a/wp-includes/js/tinymce/tinymce.min.js b/wp-includes/js/tinymce/tinymce.min.js index 3b73d7647..b3d4d4636 100644 --- a/wp-includes/js/tinymce/tinymce.min.js +++ b/wp-includes/js/tinymce/tinymce.min.js @@ -1,17 +1,2 @@ -!function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("global!Array",Array),h("global!Error",Error),g("ephox.katamari.api.Fun",["global!Array","global!Error"],function(a,b){var c=function(){},d=function(a,b){return function(){return a(b.apply(null,arguments))}},e=function(a){return function(){return a}},f=function(a){return a},g=function(a,b){return a===b},h=function(b){for(var c=new a(arguments.length-1),d=1;d<arguments.length;d++)c[d-1]=arguments[d];return function(){for(var d=new a(arguments.length),e=0;e<d.length;e++)d[e]=arguments[e];var f=c.concat(d);return b.apply(null,f)}},i=function(a){return function(){return!a.apply(null,arguments)}},j=function(a){return function(){throw new b(a)}},k=function(a){return a()},l=function(a){a()},m=e(!1),n=e(!0);return{noop:c,compose:d,constant:e,identity:f,tripleEquals:g,curry:h,not:i,die:j,apply:k,call:l,never:m,always:n}}),g("tinymce.core.util.Promise",[],function(){function a(a,b){return function(){a.apply(b,arguments)}}function b(b){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof b)throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],h(b,a(d,this),a(e,this))}function c(a){var b=this;return null===this._state?void this._deferreds.push(a):void i(function(){var c=b._state?a.onFulfilled:a.onRejected;if(null===c)return void(b._state?a.resolve:a.reject)(b._value);var d;try{d=c(b._value)}catch(e){return void a.reject(e)}a.resolve(d)})}function d(b){try{if(b===this)throw new TypeError("A promise cannot be resolved with itself.");if(b&&("object"==typeof b||"function"==typeof b)){var c=b.then;if("function"==typeof c)return void h(a(c,b),a(d,this),a(e,this))}this._state=!0,this._value=b,f.call(this)}catch(g){e.call(this,g)}}function e(a){this._state=!1,this._value=a,f.call(this)}function f(){for(var a=0,b=this._deferreds.length;a<b;a++)c.call(this,this._deferreds[a]);this._deferreds=null}function g(a,b,c,d){this.onFulfilled="function"==typeof a?a:null,this.onRejected="function"==typeof b?b:null,this.resolve=c,this.reject=d}function h(a,b,c){var d=!1;try{a(function(a){d||(d=!0,b(a))},function(a){d||(d=!0,c(a))})}catch(e){if(d)return;d=!0,c(e)}}if(window.Promise)return window.Promise;var i=b.immediateFn||"function"==typeof setImmediate&&setImmediate||function(a){setTimeout(a,1)},j=Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)};return b.prototype["catch"]=function(a){return this.then(null,a)},b.prototype.then=function(a,d){var e=this;return new b(function(b,f){c.call(e,new g(a,d,b,f))})},b.all=function(){var a=Array.prototype.slice.call(1===arguments.length&&j(arguments[0])?arguments[0]:arguments);return new b(function(b,c){function d(f,g){try{if(g&&("object"==typeof g||"function"==typeof g)){var h=g.then;if("function"==typeof h)return void h.call(g,function(a){d(f,a)},c)}a[f]=g,0===--e&&b(a)}catch(i){c(i)}}if(0===a.length)return b([]);for(var e=a.length,f=0;f<a.length;f++)d(f,a[f])})},b.resolve=function(a){return a&&"object"==typeof a&&a.constructor===b?a:new b(function(b){b(a)})},b.reject=function(a){return new b(function(b,c){c(a)})},b.race=function(a){return new b(function(b,c){for(var d=0,e=a.length;d<e;d++)a[d].then(b,c)})},b}),g("tinymce.core.util.Delay",["tinymce.core.util.Promise"],function(a){function b(a,b){function c(a){window.setTimeout(a,0)}var d,e=window.requestAnimationFrame,f=["ms","moz","webkit"];for(d=0;d<f.length&&!e;d++)e=window[f[d]+"RequestAnimationFrame"];e||(e=c),e(a,b)}function c(a,b){return"number"!=typeof b&&(b=0),setTimeout(a,b)}function d(a,b){return"number"!=typeof b&&(b=1),setInterval(a,b)}function e(a){return clearTimeout(a)}function f(a){return clearInterval(a)}function g(a,b){var d,e;return e=function(){var e=arguments;clearTimeout(d),d=c(function(){a.apply(this,e)},b)},e.stop=function(){clearTimeout(d)},e}var h;return{requestAnimationFrame:function(c,d){return h?void h.then(c):void(h=new a(function(a){d||(d=document.body),b(a,d)}).then(c))},setTimeout:c,setInterval:d,setEditorTimeout:function(a,b,d){return c(function(){a.removed||b()},d)},setEditorInterval:function(a,b,c){var e;return e=d(function(){a.removed?clearInterval(e):b()},c)},debounce:g,throttle:g,clearInterval:f,clearTimeout:e}}),g("tinymce.core.Env",[],function(){function a(a){return"matchMedia"in window&&matchMedia(a).matches}var b,c,d,e,f,g,h,i,j,k,l,m,n,o=navigator,p=o.userAgent;b=window.opera&&window.opera.buildNumber,j=/Android/.test(p),c=/WebKit/.test(p),d=!c&&!b&&/MSIE/gi.test(p)&&/Explorer/gi.test(o.appName),d=d&&/MSIE (\w+)\./.exec(p)[1],e=p.indexOf("Trident/")!=-1&&(p.indexOf("rv:")!=-1||o.appName.indexOf("Netscape")!=-1)&&11,f=p.indexOf("Edge/")!=-1&&!d&&!e&&12,d=d||e||f,g=!c&&!e&&/Gecko/.test(p),h=p.indexOf("Mac")!=-1,i=/(iPad|iPhone)/.test(p),k="FormData"in window&&"FileReader"in window&&"URL"in window&&!!URL.createObjectURL,l=a("only screen and (max-device-width: 480px)")&&(j||i),m=a("only screen and (min-width: 800px)")&&(j||i),n=p.indexOf("Windows Phone")!=-1,f&&(c=!1);var q=!i||k||p.match(/AppleWebKit\/(\d*)/)[1]>=534;return{opera:b,webkit:c,ie:d,gecko:g,mac:h,iOS:i,android:j,contentEditable:q,transparentSrc:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",caretAfter:8!=d,range:window.getSelection&&"Range"in window,documentMode:d&&!f?document.documentMode||7:10,fileApi:k,ceFalse:d===!1||d>8,canHaveCSP:d===!1||d>11,desktop:!l&&!m,windowsPhone:n}}),g("tinymce.core.dom.EventUtils",["tinymce.core.util.Delay","tinymce.core.Env"],function(a,b){"use strict";function c(a,b,c,d){a.addEventListener?a.addEventListener(b,c,d||!1):a.attachEvent&&a.attachEvent("on"+b,c)}function d(a,b,c,d){a.removeEventListener?a.removeEventListener(b,c,d||!1):a.detachEvent&&a.detachEvent("on"+b,c)}function e(a,b){var c,d=b;return c=a.path,c&&c.length>0&&(d=c[0]),a.deepPath&&(c=a.deepPath(),c&&c.length>0&&(d=c[0])),d}function f(a,c){var d,f,g=c||{};for(d in a)k[d]||(g[d]=a[d]);if(g.target||(g.target=g.srcElement||document),b.experimentalShadowDom&&(g.target=e(a,g.target)),a&&j.test(a.type)&&a.pageX===f&&a.clientX!==f){var h=g.target.ownerDocument||document,i=h.documentElement,o=h.body;g.pageX=a.clientX+(i&&i.scrollLeft||o&&o.scrollLeft||0)-(i&&i.clientLeft||o&&o.clientLeft||0),g.pageY=a.clientY+(i&&i.scrollTop||o&&o.scrollTop||0)-(i&&i.clientTop||o&&o.clientTop||0)}return g.preventDefault=function(){g.isDefaultPrevented=n,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},g.stopPropagation=function(){g.isPropagationStopped=n,a&&(a.stopPropagation?a.stopPropagation():a.cancelBubble=!0)},g.stopImmediatePropagation=function(){g.isImmediatePropagationStopped=n,g.stopPropagation()},l(g)===!1&&(g.isDefaultPrevented=m,g.isPropagationStopped=m,g.isImmediatePropagationStopped=m),"undefined"==typeof g.metaKey&&(g.metaKey=!1),g}function g(e,f,g){function h(){return"complete"===l.readyState||"interactive"===l.readyState&&l.body}function i(){g.domLoaded||(g.domLoaded=!0,f(m))}function j(){h()&&(d(l,"readystatechange",j),i())}function k(){try{l.documentElement.doScroll("left")}catch(b){return void a.setTimeout(k)}i()}var l=e.document,m={type:"ready"};return g.domLoaded?void f(m):(!l.addEventListener||b.ie&&b.ie<11?(c(l,"readystatechange",j),l.documentElement.doScroll&&e.self===e.top&&k()):h()?i():c(e,"DOMContentLoaded",i),void c(e,"load",i))}function h(){function a(a,b){var c,d,e,f,g=m[b];if(c=g&&g[a.type])for(d=0,e=c.length;d<e;d++)if(f=c[d],f&&f.func.call(f.scope,a)===!1&&a.preventDefault(),a.isImmediatePropagationStopped())return}var b,e,h,j,k,l=this,m={};e=i+(+new Date).toString(32),j="onmouseenter"in document.documentElement,h="onfocusin"in document.documentElement,k={mouseenter:"mouseover",mouseleave:"mouseout"},b=1,l.domLoaded=!1,l.events=m,l.bind=function(d,i,n,o){function p(b){a(f(b||x.event),q)}var q,r,s,t,u,v,w,x=window;if(d&&3!==d.nodeType&&8!==d.nodeType){for(d[e]?q=d[e]:(q=b++,d[e]=q,m[q]={}),o=o||d,i=i.split(" "),s=i.length;s--;)t=i[s],v=p,u=w=!1,"DOMContentLoaded"===t&&(t="ready"),l.domLoaded&&"ready"===t&&"complete"==d.readyState?n.call(o,f({type:t})):(j||(u=k[t],u&&(v=function(b){var c,d;if(c=b.currentTarget,d=b.relatedTarget,d&&c.contains)d=c.contains(d);else for(;d&&d!==c;)d=d.parentNode;d||(b=f(b||x.event),b.type="mouseout"===b.type?"mouseleave":"mouseenter",b.target=c,a(b,q))})),h||"focusin"!==t&&"focusout"!==t||(w=!0,u="focusin"===t?"focus":"blur",v=function(b){b=f(b||x.event),b.type="focus"===b.type?"focusin":"focusout",a(b,q)}),r=m[q][t],r?"ready"===t&&l.domLoaded?n({type:t}):r.push({func:n,scope:o}):(m[q][t]=r=[{func:n,scope:o}],r.fakeName=u,r.capture=w,r.nativeHandler=v,"ready"===t?g(d,v,l):c(d,u||t,v,w)));return d=r=0,n}},l.unbind=function(a,b,c){var f,g,h,i,j,k;if(!a||3===a.nodeType||8===a.nodeType)return l;if(f=a[e]){if(k=m[f],b){for(b=b.split(" "),h=b.length;h--;)if(j=b[h],g=k[j]){if(c)for(i=g.length;i--;)if(g[i].func===c){var n=g.nativeHandler,o=g.fakeName,p=g.capture;g=g.slice(0,i).concat(g.slice(i+1)),g.nativeHandler=n,g.fakeName=o,g.capture=p,k[j]=g}c&&0!==g.length||(delete k[j],d(a,g.fakeName||j,g.nativeHandler,g.capture))}}else{for(j in k)g=k[j],d(a,g.fakeName||j,g.nativeHandler,g.capture);k={}}for(j in k)return l;delete m[f];try{delete a[e]}catch(q){a[e]=null}}return l},l.fire=function(b,c,d){var g;if(!b||3===b.nodeType||8===b.nodeType)return l;d=f(null,d),d.type=c,d.target=b;do g=b[e],g&&a(d,g),b=b.parentNode||b.ownerDocument||b.defaultView||b.parentWindow;while(b&&!d.isPropagationStopped());return l},l.clean=function(a){var b,c,d=l.unbind;if(!a||3===a.nodeType||8===a.nodeType)return l;if(a[e]&&d(a),a.getElementsByTagName||(a=a.document),a&&a.getElementsByTagName)for(d(a),c=a.getElementsByTagName("*"),b=c.length;b--;)a=c[b],a[e]&&d(a);return l},l.destroy=function(){m={}},l.cancel=function(a){return a&&(a.preventDefault(),a.stopImmediatePropagation()),!1}}var i="mce-data-",j=/^(?:mouse|contextmenu)|click/,k={keyLocation:1,layerX:1,layerY:1,returnValue:1,webkitMovementX:1,webkitMovementY:1,keyIdentifier:1},l=function(a){return a.isDefaultPrevented===n||a.isDefaultPrevented===m},m=function(){return!1},n=function(){return!0};return h.Event=new h,h.Event.bind(window,"ready",function(){}),h}),g("tinymce.core.dom.Sizzle",[],function(){function a(a,b,c,d){var e,f,g,i,k,l,m,n,o,p;if((b?b.ownerDocument||b:L)!==D&&C(b),b=b||D,c=c||[],!a||"string"!=typeof a)return c;if(1!==(i=b.nodeType)&&9!==i)return[];if(F&&!d){if(e=oa.exec(a))if(g=e[1]){if(9===i){if(f=b.getElementById(g),!f||!f.parentNode)return c;if(f.id===g)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(g))&&J(b,f)&&f.id===g)return c.push(f),c}else{if(e[2])return Y.apply(c,b.getElementsByTagName(a)),c;if((g=e[3])&&s.getElementsByClassName)return Y.apply(c,b.getElementsByClassName(g)),c}if(s.qsa&&(!G||!G.test(a))){if(n=m=K,o=b,p=9===i&&a,1===i&&"object"!==b.nodeName.toLowerCase()){for(l=w(a),(m=b.getAttribute("id"))?n=m.replace(qa,"\\$&"):b.setAttribute("id",n),n="[id='"+n+"'] ",k=l.length;k--;)l[k]=n+j(l[k]);o=pa.test(a)&&h(b.parentNode)||b,p=l.join(",")}if(p)try{return Y.apply(c,o.querySelectorAll(p)),c}catch(q){}finally{m||b.removeAttribute("id")}}}return y(a.replace(ea,"$1"),b,c,d)}function b(){function a(c,d){return b.push(c+" ")>t.cacheLength&&delete a[b.shift()],a[c+" "]=d}var b=[];return a}function c(a){return a[K]=!0,a}function d(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||T)-(~a.sourceIndex||T);if(d)return d;if(c)for(;c=c.nextSibling;)if(c===b)return-1;return a?1:-1}function e(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function f(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function g(a){return c(function(b){return b=+b,c(function(c,d){for(var e,f=a([],c.length,b),g=f.length;g--;)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function h(a){return a&&typeof a.getElementsByTagName!==S&&a}function i(){}function j(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function k(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=N++;return b.first?function(b,c,f){for(;b=b[d];)if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[M,f];if(g){for(;b=b[d];)if((1===b.nodeType||e)&&a(b,c,g))return!0}else for(;b=b[d];)if(1===b.nodeType||e){if(i=b[K]||(b[K]={}),(h=i[d])&&h[0]===M&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function l(a){return a.length>1?function(b,c,d){for(var e=a.length;e--;)if(!a[e](b,c,d))return!1;return!0}:a[0]}function m(b,c,d){for(var e=0,f=c.length;e<f;e++)a(b,c[e],d);return d}function n(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function o(a,b,d,e,f,g){return e&&!e[K]&&(e=o(e)),f&&!f[K]&&(f=o(f,g)),c(function(c,g,h,i){var j,k,l,o=[],p=[],q=g.length,r=c||m(b||"*",h.nodeType?[h]:h,[]),s=!a||!c&&b?r:n(r,o,a,h,i),t=d?f||(c?a:q||e)?[]:g:s;if(d&&d(s,t,h,i),e)for(j=n(t,p),e(j,[],h,i),k=j.length;k--;)(l=j[k])&&(t[p[k]]=!(s[p[k]]=l));if(c){if(f||a){if(f){for(j=[],k=t.length;k--;)(l=t[k])&&j.push(s[k]=l);f(null,t=[],j,i)}for(k=t.length;k--;)(l=t[k])&&(j=f?$.call(c,l):o[k])>-1&&(c[j]=!(g[j]=l))}}else t=n(t===g?t.splice(q,t.length):t),f?f(null,g,t,i):Y.apply(g,t)})}function p(a){for(var b,c,d,e=a.length,f=t.relative[a[0].type],g=f||t.relative[" "],h=f?1:0,i=k(function(a){return a===b},g,!0),m=k(function(a){return $.call(b,a)>-1},g,!0),n=[function(a,c,d){return!f&&(d||c!==z)||((b=c).nodeType?i(a,c,d):m(a,c,d))}];h<e;h++)if(c=t.relative[a[h].type])n=[k(l(n),c)];else{if(c=t.filter[a[h].type].apply(null,a[h].matches),c[K]){for(d=++h;d<e&&!t.relative[a[d].type];d++);return o(h>1&&l(n),h>1&&j(a.slice(0,h-1).concat({value:" "===a[h-2].type?"*":""})).replace(ea,"$1"),c,h<d&&p(a.slice(h,d)),d<e&&p(a=a.slice(d)),d<e&&j(a))}n.push(c)}return l(n)}function q(b,d){var e=d.length>0,f=b.length>0,g=function(c,g,h,i,j){var k,l,m,o=0,p="0",q=c&&[],r=[],s=z,u=c||f&&t.find.TAG("*",j),v=M+=null==s?1:Math.random()||.1,w=u.length;for(j&&(z=g!==D&&g);p!==w&&null!=(k=u[p]);p++){if(f&&k){for(l=0;m=b[l++];)if(m(k,g,h)){i.push(k);break}j&&(M=v)}e&&((k=!m&&k)&&o--,c&&q.push(k))}if(o+=p,e&&p!==o){for(l=0;m=d[l++];)m(q,r,g,h);if(c){if(o>0)for(;p--;)q[p]||r[p]||(r[p]=W.call(i));r=n(r)}Y.apply(i,r),j&&!c&&r.length>0&&o+d.length>1&&a.uniqueSort(i)}return j&&(M=v,z=s),q};return e?c(g):g}var r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K="sizzle"+-new Date,L=window.document,M=0,N=0,O=b(),P=b(),Q=b(),R=function(a,b){return a===b&&(B=!0),0},S="undefined",T=1<<31,U={}.hasOwnProperty,V=[],W=V.pop,X=V.push,Y=V.push,Z=V.slice,$=V.indexOf||function(a){for(var b=0,c=this.length;b<c;b++)if(this[b]===a)return b;return-1},_="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",aa="[\\x20\\t\\r\\n\\f]",ba="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",ca="\\["+aa+"*("+ba+")(?:"+aa+"*([*^$|!~]?=)"+aa+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+ba+"))|)"+aa+"*\\]",da=":("+ba+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+ca+")*)|.*)\\)|)",ea=new RegExp("^"+aa+"+|((?:^|[^\\\\])(?:\\\\.)*)"+aa+"+$","g"),fa=new RegExp("^"+aa+"*,"+aa+"*"),ga=new RegExp("^"+aa+"*([>+~]|"+aa+")"+aa+"*"),ha=new RegExp("="+aa+"*([^\\]'\"]*?)"+aa+"*\\]","g"),ia=new RegExp(da),ja=new RegExp("^"+ba+"$"),ka={ID:new RegExp("^#("+ba+")"),CLASS:new RegExp("^\\.("+ba+")"),TAG:new RegExp("^("+ba+"|[*])"),ATTR:new RegExp("^"+ca),PSEUDO:new RegExp("^"+da),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+aa+"*(even|odd|(([+-]|)(\\d*)n|)"+aa+"*(?:([+-]|)"+aa+"*(\\d+)|))"+aa+"*\\)|)","i"),bool:new RegExp("^(?:"+_+")$","i"),needsContext:new RegExp("^"+aa+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+aa+"*((?:-\\d)?\\d*)"+aa+"*\\)|)(?=[^-]|$)","i")},la=/^(?:input|select|textarea|button)$/i,ma=/^h\d$/i,na=/^[^{]+\{\s*\[native \w/,oa=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,pa=/[+~]/,qa=/'|\\/g,ra=new RegExp("\\\\([\\da-f]{1,6}"+aa+"?|("+aa+")|.)","ig"),sa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{Y.apply(V=Z.call(L.childNodes),L.childNodes),V[L.childNodes.length].nodeType}catch(ta){Y={apply:V.length?function(a,b){X.apply(a,Z.call(b))}:function(a,b){for(var c=a.length,d=0;a[c++]=b[d++];);a.length=c-1}}}s=a.support={},v=a.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},C=a.setDocument=function(a){function b(a){try{return a.top}catch(b){}return null}var c,e=a?a.ownerDocument||a:L,f=e.defaultView;return e!==D&&9===e.nodeType&&e.documentElement?(D=e,E=e.documentElement,F=!v(e),f&&f!==b(f)&&(f.addEventListener?f.addEventListener("unload",function(){C()},!1):f.attachEvent&&f.attachEvent("onunload",function(){C()})),s.attributes=!0,s.getElementsByTagName=!0,s.getElementsByClassName=na.test(e.getElementsByClassName),s.getById=!0,t.find.ID=function(a,b){if(typeof b.getElementById!==S&&F){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},t.filter.ID=function(a){var b=a.replace(ra,sa);return function(a){return a.getAttribute("id")===b}},t.find.TAG=s.getElementsByTagName?function(a,b){if(typeof b.getElementsByTagName!==S)return b.getElementsByTagName(a)}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){for(;c=f[e++];)1===c.nodeType&&d.push(c);return d}return f},t.find.CLASS=s.getElementsByClassName&&function(a,b){if(F)return b.getElementsByClassName(a)},H=[],G=[],s.disconnectedMatch=!0,G=G.length&&new RegExp(G.join("|")),H=H.length&&new RegExp(H.join("|")),c=na.test(E.compareDocumentPosition),J=c||na.test(E.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)for(;b=b.parentNode;)if(b===a)return!0;return!1},R=c?function(a,b){if(a===b)return B=!0,0;var c=!a.compareDocumentPosition-!b.compareDocumentPosition;return c?c:(c=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&c||!s.sortDetached&&b.compareDocumentPosition(a)===c?a===e||a.ownerDocument===L&&J(L,a)?-1:b===e||b.ownerDocument===L&&J(L,b)?1:A?$.call(A,a)-$.call(A,b):0:4&c?-1:1)}:function(a,b){if(a===b)return B=!0,0;var c,f=0,g=a.parentNode,h=b.parentNode,i=[a],j=[b];if(!g||!h)return a===e?-1:b===e?1:g?-1:h?1:A?$.call(A,a)-$.call(A,b):0;if(g===h)return d(a,b);for(c=a;c=c.parentNode;)i.unshift(c);for(c=b;c=c.parentNode;)j.unshift(c);for(;i[f]===j[f];)f++;return f?d(i[f],j[f]):i[f]===L?-1:j[f]===L?1:0},e):D},a.matches=function(b,c){return a(b,null,null,c)},a.matchesSelector=function(b,c){if((b.ownerDocument||b)!==D&&C(b),c=c.replace(ha,"='$1']"),s.matchesSelector&&F&&(!H||!H.test(c))&&(!G||!G.test(c)))try{var d=I.call(b,c);if(d||s.disconnectedMatch||b.document&&11!==b.document.nodeType)return d}catch(e){}return a(c,D,null,[b]).length>0},a.contains=function(a,b){return(a.ownerDocument||a)!==D&&C(a),J(a,b)},a.attr=function(a,b){(a.ownerDocument||a)!==D&&C(a);var c=t.attrHandle[b.toLowerCase()],d=c&&U.call(t.attrHandle,b.toLowerCase())?c(a,b,!F):void 0;return void 0!==d?d:s.attributes||!F?a.getAttribute(b):(d=a.getAttributeNode(b))&&d.specified?d.value:null},a.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},a.uniqueSort=function(a){var b,c=[],d=0,e=0;if(B=!s.detectDuplicates,A=!s.sortStable&&a.slice(0),a.sort(R),B){for(;b=a[e++];)b===a[e]&&(d=c.push(e));for(;d--;)a.splice(c[d],1)}return A=null,a},u=a.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(1===e||9===e||11===e){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=u(a)}else if(3===e||4===e)return a.nodeValue}else for(;b=a[d++];)c+=u(b);return c},t=a.selectors={cacheLength:50,createPseudo:c,match:ka,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ra,sa),a[3]=(a[3]||a[4]||a[5]||"").replace(ra,sa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(b){return b[1]=b[1].toLowerCase(),"nth"===b[1].slice(0,3)?(b[3]||a.error(b[0]),b[4]=+(b[4]?b[5]+(b[6]||1):2*("even"===b[3]||"odd"===b[3])),b[5]=+(b[7]+b[8]||"odd"===b[3])):b[3]&&a.error(b[0]),b},PSEUDO:function(a){var b,c=!a[6]&&a[2];return ka.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&ia.test(c)&&(b=w(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ra,sa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=O[a+" "];return b||(b=new RegExp("(^|"+aa+")"+a+"("+aa+"|$)"))&&O(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==S&&a.getAttribute("class")||"")})},ATTR:function(b,c,d){return function(e){var f=a.attr(e,b);return null==f?"!="===c:!c||(f+="","="===c?f===d:"!="===c?f!==d:"^="===c?d&&0===f.indexOf(d):"*="===c?d&&f.indexOf(d)>-1:"$="===c?d&&f.slice(-d.length)===d:"~="===c?(" "+f+" ").indexOf(d)>-1:"|="===c&&(f===d||f.slice(0,d.length+1)===d+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){for(;p;){for(l=b;l=l[p];)if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){for(k=q[K]||(q[K]={}),j=k[a]||[],n=j[0]===M&&j[1],m=j[0]===M&&j[2],l=n&&q.childNodes[n];l=++n&&l&&l[p]||(m=n=0)||o.pop();)if(1===l.nodeType&&++m&&l===b){k[a]=[M,n,m];break}}else if(s&&(j=(b[K]||(b[K]={}))[a])&&j[0]===M)m=j[1];else for(;(l=++n&&l&&l[p]||(m=n=0)||o.pop())&&((h?l.nodeName.toLowerCase()!==r:1!==l.nodeType)||!++m||(s&&((l[K]||(l[K]={}))[a]=[M,m]),l!==b)););return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(b,d){var e,f=t.pseudos[b]||t.setFilters[b.toLowerCase()]||a.error("unsupported pseudo: "+b);return f[K]?f(d):f.length>1?(e=[b,b,"",d],t.setFilters.hasOwnProperty(b.toLowerCase())?c(function(a,b){for(var c,e=f(a,d),g=e.length;g--;)c=$.call(a,e[g]),a[c]=!(b[c]=e[g])}):function(a){return f(a,0,e)}):f}},pseudos:{not:c(function(a){var b=[],d=[],e=x(a.replace(ea,"$1"));return e[K]?c(function(a,b,c,d){for(var f,g=e(a,null,d,[]),h=a.length;h--;)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,c,f){return b[0]=a,e(b,null,f,d),!d.pop()}}),has:c(function(b){return function(c){return a(b,c).length>0}}),contains:c(function(a){return a=a.replace(ra,sa),function(b){return(b.textContent||b.innerText||u(b)).indexOf(a)>-1}}),lang:c(function(b){return ja.test(b||"")||a.error("unsupported lang: "+b),b=b.replace(ra,sa).toLowerCase(),function(a){var c;do if(c=F?a.lang:a.getAttribute("xml:lang")||a.getAttribute("lang"))return c=c.toLowerCase(),c===b||0===c.indexOf(b+"-");while((a=a.parentNode)&&1===a.nodeType);return!1}}),target:function(a){var b=window.location&&window.location.hash;return b&&b.slice(1)===a.id},root:function(a){return a===E},focus:function(a){return a===D.activeElement&&(!D.hasFocus||D.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!t.pseudos.empty(a)},header:function(a){return ma.test(a.nodeName)},input:function(a){return la.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:g(function(){return[0]}),last:g(function(a,b){return[b-1]}),eq:g(function(a,b,c){return[c<0?c+b:c]}),even:g(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:g(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:g(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:g(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},t.pseudos.nth=t.pseudos.eq;for(r in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})t.pseudos[r]=e(r);for(r in{submit:!0,reset:!0})t.pseudos[r]=f(r);return i.prototype=t.filters=t.pseudos,t.setFilters=new i,w=a.tokenize=function(b,c){var d,e,f,g,h,i,j,k=P[b+" "];if(k)return c?0:k.slice(0);for(h=b,i=[],j=t.preFilter;h;){d&&!(e=fa.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),d=!1,(e=ga.exec(h))&&(d=e.shift(),f.push({value:d,type:e[0].replace(ea," ")}),h=h.slice(d.length));for(g in t.filter)!(e=ka[g].exec(h))||j[g]&&!(e=j[g](e))||(d=e.shift(),f.push({value:d,type:g,matches:e}),h=h.slice(d.length));if(!d)break}return c?h.length:h?a.error(b):P(b,i).slice(0)},x=a.compile=function(a,b){var c,d=[],e=[],f=Q[a+" "];if(!f){for(b||(b=w(a)),c=b.length;c--;)f=p(b[c]),f[K]?d.push(f):e.push(f);f=Q(a,q(e,d)),f.selector=a}return f},y=a.select=function(a,b,c,d){var e,f,g,i,k,l="function"==typeof a&&a,m=!d&&w(a=l.selector||a);if(c=c||[],1===m.length){if(f=m[0]=m[0].slice(0),f.length>2&&"ID"===(g=f[0]).type&&s.getById&&9===b.nodeType&&F&&t.relative[f[1].type]){if(b=(t.find.ID(g.matches[0].replace(ra,sa),b)||[])[0],!b)return c;l&&(b=b.parentNode),a=a.slice(f.shift().value.length)}for(e=ka.needsContext.test(a)?0:f.length;e--&&(g=f[e],!t.relative[i=g.type]);)if((k=t.find[i])&&(d=k(g.matches[0].replace(ra,sa),pa.test(f[0].type)&&h(b.parentNode)||b))){if(f.splice(e,1),a=d.length&&j(f),!a)return Y.apply(c,d),c;break}}return(l||x(a,m))(d,b,!F,c,pa.test(a)&&h(b.parentNode)||b),c},s.sortStable=K.split("").sort(R).join("")===K,s.detectDuplicates=!!B,C(),s.sortDetached=!0,a}),g("tinymce.core.util.Arr",[],function(){function a(a){var b,c,d=a;if(!j(a))for(d=[],b=0,c=a.length;b<c;b++)d[b]=a[b];return d}function b(a,b,c){var d,e;if(!a)return 0;if(c=c||a,void 0!==a.length){for(d=0,e=a.length;d<e;d++)if(b.call(c,a[d],d,a)===!1)return 0}else for(d in a)if(a.hasOwnProperty(d)&&b.call(c,a[d],d,a)===!1)return 0;return 1}function c(a,c){var d=[];return b(a,function(b,e){d.push(c(b,e,a))}),d}function d(a,c){var d=[];return b(a,function(b,e){c&&!c(b,e,a)||d.push(b)}),d}function e(a,b){var c,d;if(a)for(c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1}function f(a,b,c,d){var e=0;for(arguments.length<3&&(c=a[0]);e<a.length;e++)c=b.call(d,c,a[e],e);return c}function g(a,b,c){var d,e;for(d=0,e=a.length;d<e;d++)if(b.call(c,a[d],d,a))return d;return-1}function h(a,b,c){var d=g(a,b,c);if(d!==-1)return a[d]}function i(a){return a[a.length-1]}var j=Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)};return{isArray:j,toArray:a,each:b,map:c,filter:d,indexOf:e,reduce:f,findIndex:g,find:h,last:i}}),g("tinymce.core.util.Tools",["tinymce.core.Env","tinymce.core.util.Arr"],function(a,b){function c(a){return null===a||void 0===a?"":(""+a).replace(n,"")}function d(a,c){return c?!("array"!=c||!b.isArray(a))||typeof a==c:void 0!==a}function e(a,b,c){var d;for(a=a||[],b=b||",","string"==typeof a&&(a=a.split(b)),c=c||{},d=a.length;d--;)c[a[d]]={};return c}function f(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function g(a,b,c){var d,e,f,g,h,i=this,j=0;if(a=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(a),f=a[3].match(/(^|\.)(\w+)$/i)[2],e=i.createNS(a[3].replace(/\.\w+$/,""),c),!e[f]){if("static"==a[2])return e[f]=b,void(this.onCreate&&this.onCreate(a[2],a[3],e[f]));b[f]||(b[f]=function(){},j=1),e[f]=b[f],i.extend(e[f].prototype,b),a[5]&&(d=i.resolve(a[5]).prototype,g=a[5].match(/\.(\w+)$/i)[1],h=e[f],j?e[f]=function(){return d[g].apply(this,arguments)}:e[f]=function(){return this.parent=d[g],h.apply(this,arguments)},e[f].prototype[f]=e[f],i.each(d,function(a,b){e[f].prototype[b]=d[b]}),i.each(b,function(a,b){d[b]?e[f].prototype[b]=function(){return this.parent=d[b],a.apply(this,arguments)}:b!=f&&(e[f].prototype[b]=a)})),i.each(b["static"],function(a,b){e[f][b]=a})}}function h(a,b){var c,d,e,f,g=arguments;for(c=1,d=g.length;c<d;c++){b=g[c];for(e in b)b.hasOwnProperty(e)&&(f=b[e],void 0!==f&&(a[e]=f))}return a}function i(a,c,d,e){e=e||this,a&&(d&&(a=a[d]),b.each(a,function(a,b){return c.call(e,a,b,d)!==!1&&void i(a,c,d,e)}))}function j(a,b){var c,d;for(b=b||window,a=a.split("."),c=0;c<a.length;c++)d=a[c],b[d]||(b[d]={}),b=b[d];return b}function k(a,b){var c,d;for(b=b||window,a=a.split("."),c=0,d=a.length;c<d&&(b=b[a[c]],b);c++);return b}function l(a,e){return!a||d(a,"array")?a:b.map(a.split(e||","),c)}function m(b){var c=a.cacheSuffix;return c&&(b+=(b.indexOf("?")===-1?"?":"&")+c),b}var n=/^\s*|\s*$/g;return{trim:c,isArray:b.isArray,is:d,toArray:b.toArray,makeMap:e,each:b.each,map:b.map,grep:b.filter,inArray:b.indexOf,hasOwn:f,extend:h,create:g,walk:i,createNS:j,resolve:k,explode:l,_addCacheSuffix:m}}),g("tinymce.core.dom.DomQuery",["tinymce.core.dom.EventUtils","tinymce.core.dom.Sizzle","tinymce.core.util.Tools","tinymce.core.Env"],function(a,b,c,d){function e(a){return"undefined"!=typeof a}function f(a){return"string"==typeof a}function g(a){return a&&a==a.window}function h(a,b){var c,d,e;for(b=b||w,e=b.createElement("div"),c=b.createDocumentFragment(),e.innerHTML=a;d=e.firstChild;)c.appendChild(d);return c}function i(a,b,c,d){var e;if(f(b))b=h(b,q(a[0]));else if(b.length&&!b.nodeType){if(b=l.makeArray(b),d)for(e=b.length-1;e>=0;e--)i(a,b[e],c,d);else for(e=0;e<b.length;e++)i(a,b[e],c,d);return a}if(b.nodeType)for(e=a.length;e--;)c.call(a[e],b);return a}function j(a,b){return a&&b&&(" "+a.className+" ").indexOf(" "+b+" ")!==-1}function k(a,b,c){var d,e;return b=l(b)[0],a.each(function(){var a=this;c&&d==a.parentNode?e.appendChild(a):(d=a.parentNode,e=b.cloneNode(!1),a.parentNode.insertBefore(e,a),e.appendChild(a))}),a}function l(a,b){return new l.fn.init(a,b)}function m(a,b){var c;if(b.indexOf)return b.indexOf(a);for(c=b.length;c--;)if(b[c]===a)return c;return-1}function n(a){return null===a||a===v?"":(""+a).replace(I,"")}function o(a,b){var c,d,e,f,g;if(a)if(c=a.length,c===f){for(d in a)if(a.hasOwnProperty(d)&&(g=a[d],b.call(g,d,g)===!1))break}else for(e=0;e<c&&(g=a[e],b.call(g,e,g)!==!1);e++);return a}function p(a,b){var c=[];return o(a,function(a,d){b(d,a)&&c.push(d)}),c}function q(a){return a?9==a.nodeType?a:a.ownerDocument:w}function r(a,b,c){var d=[],e=a[b];for("string"!=typeof c&&c instanceof l&&(c=c[0]);e&&9!==e.nodeType;){if(void 0!==c){if(e===c)break;if("string"==typeof c&&l(e).is(c))break}1===e.nodeType&&d.push(e),e=e[b]}return d}function s(a,b,c,d){var e=[];for(d instanceof l&&(d=d[0]);a;a=a[b])if(!c||a.nodeType===c){if(void 0!==d){if(a===d)break;if("string"==typeof d&&l(a).is(d))break}e.push(a)}return e}function t(a,b,c){for(a=a[b];a;a=a[b])if(a.nodeType==c)return a;return null}function u(a,b,c){o(c,function(c,d){a[c]=a[c]||{},a[c][b]=d})}var v,w=document,x=Array.prototype.push,y=Array.prototype.slice,z=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,A=a.Event,B=c.makeMap("children,contents,next,prev"),C=c.makeMap("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"," "),D=c.makeMap("checked compact declare defer disabled ismap multiple nohref noshade nowrap readonly selected"," "),E={ -"for":"htmlFor","class":"className",readonly:"readOnly"},F={"float":"cssFloat"},G={},H={},I=/^\s*|\s*$/g;return l.fn=l.prototype={constructor:l,selector:"",context:null,length:0,init:function(a,b){var c,d,e=this;if(!a)return e;if(a.nodeType)return e.context=e[0]=a,e.length=1,e;if(b&&b.nodeType)e.context=b;else{if(b)return l(a).attr(b);e.context=b=document}if(f(a)){if(e.selector=a,c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c)return l(b).find(a);if(c[1])for(d=h(a,q(b)).firstChild;d;)x.call(e,d),d=d.nextSibling;else{if(d=q(b).getElementById(c[2]),!d)return e;if(d.id!==c[2])return e.find(a);e.length=1,e[0]=d}}else this.add(a,!1);return e},toArray:function(){return c.toArray(this)},add:function(a,b){var c,d,e=this;if(f(a))return e.add(l(a));if(b!==!1)for(c=l.unique(e.toArray().concat(l.makeArray(a))),e.length=c.length,d=0;d<c.length;d++)e[d]=c[d];else x.apply(e,l.makeArray(a));return e},attr:function(a,b){var c,d=this;if("object"==typeof a)o(a,function(a,b){d.attr(a,b)});else{if(!e(b)){if(d[0]&&1===d[0].nodeType){if(c=G[a],c&&c.get)return c.get(d[0],a);if(D[a])return d.prop(a)?a:v;b=d[0].getAttribute(a,2),null===b&&(b=v)}return b}this.each(function(){var c;if(1===this.nodeType){if(c=G[a],c&&c.set)return void c.set(this,b);null===b?this.removeAttribute(a,2):this.setAttribute(a,b,2)}})}return d},removeAttr:function(a){return this.attr(a,null)},prop:function(a,b){var c=this;if(a=E[a]||a,"object"==typeof a)o(a,function(a,b){c.prop(a,b)});else{if(!e(b))return c[0]&&c[0].nodeType&&a in c[0]?c[0][a]:b;this.each(function(){1==this.nodeType&&(this[a]=b)})}return c},css:function(a,b){function c(a){return a.replace(/-(\D)/g,function(a,b){return b.toUpperCase()})}function d(a){return a.replace(/[A-Z]/g,function(a){return"-"+a})}var f,g,h=this;if("object"==typeof a)o(a,function(a,b){h.css(a,b)});else if(e(b))a=c(a),"number"!=typeof b||C[a]||(b+="px"),h.each(function(){var c=this.style;if(g=H[a],g&&g.set)return void g.set(this,b);try{this.style[F[a]||a]=b}catch(e){}null!==b&&""!==b||(c.removeProperty?c.removeProperty(d(a)):c.removeAttribute(a))});else{if(f=h[0],g=H[a],g&&g.get)return g.get(f);if(f.ownerDocument.defaultView)try{return f.ownerDocument.defaultView.getComputedStyle(f,null).getPropertyValue(d(a))}catch(i){return v}else if(f.currentStyle)return f.currentStyle[c(a)]}return h},remove:function(){for(var a,b=this,c=this.length;c--;)a=b[c],A.clean(a),a.parentNode&&a.parentNode.removeChild(a);return this},empty:function(){for(var a,b=this,c=this.length;c--;)for(a=b[c];a.firstChild;)a.removeChild(a.firstChild);return this},html:function(a){var b,c=this;if(e(a)){b=c.length;try{for(;b--;)c[b].innerHTML=a}catch(d){l(c[b]).empty().append(a)}return c}return c[0]?c[0].innerHTML:""},text:function(a){var b,c=this;if(e(a)){for(b=c.length;b--;)"innerText"in c[b]?c[b].innerText=a:c[0].textContent=a;return c}return c[0]?c[0].innerText||c[0].textContent:""},append:function(){return i(this,arguments,function(a){(1===this.nodeType||this.host&&1===this.host.nodeType)&&this.appendChild(a)})},prepend:function(){return i(this,arguments,function(a){(1===this.nodeType||this.host&&1===this.host.nodeType)&&this.insertBefore(a,this.firstChild)},!0)},before:function(){var a=this;return a[0]&&a[0].parentNode?i(a,arguments,function(a){this.parentNode.insertBefore(a,this)}):a},after:function(){var a=this;return a[0]&&a[0].parentNode?i(a,arguments,function(a){this.parentNode.insertBefore(a,this.nextSibling)},!0):a},appendTo:function(a){return l(a).append(this),this},prependTo:function(a){return l(a).prepend(this),this},replaceWith:function(a){return this.before(a).remove()},wrap:function(a){return k(this,a)},wrapAll:function(a){return k(this,a,!0)},wrapInner:function(a){return this.each(function(){l(this).contents().wrapAll(a)}),this},unwrap:function(){return this.parent().each(function(){l(this).replaceWith(this.childNodes)})},clone:function(){var a=[];return this.each(function(){a.push(this.cloneNode(!0))}),l(a)},addClass:function(a){return this.toggleClass(a,!0)},removeClass:function(a){return this.toggleClass(a,!1)},toggleClass:function(a,b){var c=this;return"string"!=typeof a?c:(a.indexOf(" ")!==-1?o(a.split(" "),function(){c.toggleClass(this,b)}):c.each(function(c,d){var e,f;f=j(d,a),f!==b&&(e=d.className,f?d.className=n((" "+e+" ").replace(" "+a+" "," ")):d.className+=e?" "+a:a)}),c)},hasClass:function(a){return j(this[0],a)},each:function(a){return o(this,a)},on:function(a,b){return this.each(function(){A.bind(this,a,b)})},off:function(a,b){return this.each(function(){A.unbind(this,a,b)})},trigger:function(a){return this.each(function(){"object"==typeof a?A.fire(this,a.type,a):A.fire(this,a)})},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},slice:function(){return new l(y.apply(this,arguments))},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},find:function(a){var b,c,d=[];for(b=0,c=this.length;b<c;b++)l.find(a,this[b],d);return l(d)},filter:function(a){return l("function"==typeof a?p(this.toArray(),function(b,c){return a(c,b)}):l.filter(a,this.toArray()))},closest:function(a){var b=[];return a instanceof l&&(a=a[0]),this.each(function(c,d){for(;d;){if("string"==typeof a&&l(d).is(a)){b.push(d);break}if(d==a){b.push(d);break}d=d.parentNode}}),l(b)},offset:function(a){var b,c,d,e,f=0,g=0;return a?this.css(a):(b=this[0],b&&(c=b.ownerDocument,d=c.documentElement,b.getBoundingClientRect&&(e=b.getBoundingClientRect(),f=e.left+(d.scrollLeft||c.body.scrollLeft)-d.clientLeft,g=e.top+(d.scrollTop||c.body.scrollTop)-d.clientTop)),{left:f,top:g})},push:x,sort:[].sort,splice:[].splice},c.extend(l,{extend:c.extend,makeArray:function(a){return g(a)||a.nodeType?[a]:c.toArray(a)},inArray:m,isArray:c.isArray,each:o,trim:n,grep:p,find:b,expr:b.selectors,unique:b.uniqueSort,text:b.getText,contains:b.contains,filter:function(a,b,c){var d=b.length;for(c&&(a=":not("+a+")");d--;)1!=b[d].nodeType&&b.splice(d,1);return b=1===b.length?l.find.matchesSelector(b[0],a)?[b[0]]:[]:l.find.matches(a,b)}}),o({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return r(a,"parentNode")},next:function(a){return t(a,"nextSibling",1)},prev:function(a){return t(a,"previousSibling",1)},children:function(a){return s(a.firstChild,"nextSibling",1)},contents:function(a){return c.toArray(("iframe"===a.nodeName?a.contentDocument||a.contentWindow.document:a).childNodes)}},function(a,b){l.fn[a]=function(c){var d=this,e=[];return d.each(function(){var a=b.call(e,this,c,e);a&&(l.isArray(a)?e.push.apply(e,a):e.push(a))}),this.length>1&&(B[a]||(e=l.unique(e)),0===a.indexOf("parents")&&(e=e.reverse())),e=l(e),c?e.filter(c):e}}),o({parentsUntil:function(a,b){return r(a,"parentNode",b)},nextUntil:function(a,b){return s(a,"nextSibling",1,b).slice(1)},prevUntil:function(a,b){return s(a,"previousSibling",1,b).slice(1)}},function(a,b){l.fn[a]=function(c,d){var e=this,f=[];return e.each(function(){var a=b.call(f,this,c,f);a&&(l.isArray(a)?f.push.apply(f,a):f.push(a))}),this.length>1&&(f=l.unique(f),0!==a.indexOf("parents")&&"prevUntil"!==a||(f=f.reverse())),f=l(f),d?f.filter(d):f}}),l.fn.is=function(a){return!!a&&this.filter(a).length>0},l.fn.init.prototype=l.fn,l.overrideDefaults=function(a){function b(d,e){return c=c||a(),0===arguments.length&&(d=c.element),e||(e=c.context),new b.fn.init(d,e)}var c;return l.extend(b,this),b},d.ie&&d.ie<8&&(u(G,"get",{maxlength:function(a){var b=a.maxLength;return 2147483647===b?v:b},size:function(a){var b=a.size;return 20===b?v:b},"class":function(a){return a.className},style:function(a){var b=a.style.cssText;return 0===b.length?v:b}}),u(G,"set",{"class":function(a,b){a.className=b},style:function(a,b){a.style.cssText=b}})),d.ie&&d.ie<9&&(F["float"]="styleFloat",u(H,"set",{opacity:function(a,b){var c=a.style;null===b||""===b?c.removeAttribute("filter"):(c.zoom=1,c.filter="alpha(opacity="+100*b+")")}})),l.attrHooks=G,l.cssHooks=H,l}),g("tinymce.core.dom.Range",["tinymce.core.util.Tools"],function(a){function b(c){function d(){return J.createDocumentFragment()}function e(a,b){x(N,a,b)}function f(a,b){x(O,a,b)}function g(a){e(a.parentNode,U(a))}function h(a){e(a.parentNode,U(a)+1)}function i(a){f(a.parentNode,U(a))}function j(a){f(a.parentNode,U(a)+1)}function k(a){a?(I[R]=I[Q],I[S]=I[P]):(I[Q]=I[R],I[P]=I[S]),I.collapsed=N}function l(a){g(a),j(a)}function m(a){e(a,0),f(a,1===a.nodeType?a.childNodes.length:a.nodeValue.length)}function n(a,b){var c=I[Q],d=I[P],e=I[R],f=I[S],g=b.startContainer,h=b.startOffset,i=b.endContainer,j=b.endOffset;return 0===a?w(c,d,g,h):1===a?w(e,f,g,h):2===a?w(e,f,i,j):3===a?w(c,d,i,j):void 0}function o(){y(M)}function p(){return y(K)}function q(){return y(L)}function r(a){var b,d,e=this[Q],f=this[P];3!==e.nodeType&&4!==e.nodeType||!e.nodeValue?(e.childNodes.length>0&&(d=e.childNodes[f]),d?e.insertBefore(a,d):3==e.nodeType?c.insertAfter(a,e):e.appendChild(a)):f?f>=e.nodeValue.length?c.insertAfter(a,e):(b=e.splitText(f),e.parentNode.insertBefore(a,b)):e.parentNode.insertBefore(a,e)}function s(a){var b=I.extractContents();I.insertNode(a),a.appendChild(b),I.selectNode(a)}function t(){return T(new b(c),{startContainer:I[Q],startOffset:I[P],endContainer:I[R],endOffset:I[S],collapsed:I.collapsed,commonAncestorContainer:I.commonAncestorContainer})}function u(a,b){var c;if(3==a.nodeType)return a;if(b<0)return a;for(c=a.firstChild;c&&b>0;)--b,c=c.nextSibling;return c?c:a}function v(){return I[Q]==I[R]&&I[P]==I[S]}function w(a,b,d,e){var f,g,h,i,j,k;if(a==d)return b==e?0:b<e?-1:1;for(f=d;f&&f.parentNode!=a;)f=f.parentNode;if(f){for(g=0,h=a.firstChild;h!=f&&g<b;)g++,h=h.nextSibling;return b<=g?-1:1}for(f=a;f&&f.parentNode!=d;)f=f.parentNode;if(f){for(g=0,h=d.firstChild;h!=f&&g<e;)g++,h=h.nextSibling;return g<e?-1:1}for(i=c.findCommonAncestor(a,d),j=a;j&&j.parentNode!=i;)j=j.parentNode;for(j||(j=i),k=d;k&&k.parentNode!=i;)k=k.parentNode;if(k||(k=i),j==k)return 0;for(h=i.firstChild;h;){if(h==j)return-1;if(h==k)return 1;h=h.nextSibling}}function x(a,b,d){var e,f;for(a?(I[Q]=b,I[P]=d):(I[R]=b,I[S]=d),e=I[R];e.parentNode;)e=e.parentNode;for(f=I[Q];f.parentNode;)f=f.parentNode;f==e?w(I[Q],I[P],I[R],I[S])>0&&I.collapse(a):I.collapse(a),I.collapsed=v(),I.commonAncestorContainer=c.findCommonAncestor(I[Q],I[R])}function y(a){var b,c,d,e,f,g,h,i=0,j=0;if(I[Q]==I[R])return z(a);for(b=I[R],c=b.parentNode;c;b=c,c=c.parentNode){if(c==I[Q])return A(b,a);++i}for(b=I[Q],c=b.parentNode;c;b=c,c=c.parentNode){if(c==I[R])return B(b,a);++j}for(d=j-i,e=I[Q];d>0;)e=e.parentNode,d--;for(f=I[R];d<0;)f=f.parentNode,d++;for(g=e.parentNode,h=f.parentNode;g!=h;g=g.parentNode,h=h.parentNode)e=g,f=h;return C(e,f,a)}function z(a){var b,c,e,f,g,h,i,j,k;if(a!=M&&(b=d()),I[P]==I[S])return b;if(3==I[Q].nodeType){if(c=I[Q].nodeValue,e=c.substring(I[P],I[S]),a!=L&&(f=I[Q],j=I[P],k=I[S]-I[P],0===j&&k>=f.nodeValue.length-1?f.parentNode.removeChild(f):f.deleteData(j,k),I.collapse(N)),a==M)return;return e.length>0&&b.appendChild(J.createTextNode(e)),b}for(f=u(I[Q],I[P]),g=I[S]-I[P];f&&g>0;)h=f.nextSibling,i=G(f,a),b&&b.appendChild(i),--g,f=h;return a!=L&&I.collapse(N),b}function A(a,b){var c,e,f,g,h,i;if(b!=M&&(c=d()),e=D(a,b),c&&c.appendChild(e),f=U(a),g=f-I[P],g<=0)return b!=L&&(I.setEndBefore(a),I.collapse(O)),c;for(e=a.previousSibling;g>0;)h=e.previousSibling,i=G(e,b),c&&c.insertBefore(i,c.firstChild),--g,e=h;return b!=L&&(I.setEndBefore(a),I.collapse(O)),c}function B(a,b){var c,e,f,g,h,i;for(b!=M&&(c=d()),f=E(a,b),c&&c.appendChild(f),e=U(a),++e,g=I[S]-e,f=a.nextSibling;f&&g>0;)h=f.nextSibling,i=G(f,b),c&&c.appendChild(i),--g,f=h;return b!=L&&(I.setStartAfter(a),I.collapse(N)),c}function C(a,b,c){var e,f,g,h,i,j,k;for(c!=M&&(f=d()),e=E(a,c),f&&f.appendChild(e),g=U(a),h=U(b),++g,i=h-g,j=a.nextSibling;i>0;)k=j.nextSibling,e=G(j,c),f&&f.appendChild(e),j=k,--i;return e=D(b,c),f&&f.appendChild(e),c!=L&&(I.setStartAfter(a),I.collapse(N)),f}function D(a,b){var c,d,e,f,g,h=u(I[R],I[S]-1),i=h!=I[R];if(h==a)return F(h,i,O,b);for(c=h.parentNode,d=F(c,O,O,b);c;){for(;h;)e=h.previousSibling,f=F(h,i,O,b),b!=M&&d.insertBefore(f,d.firstChild),i=N,h=e;if(c==a)return d;h=c.previousSibling,c=c.parentNode,g=F(c,O,O,b),b!=M&&g.appendChild(d),d=g}}function E(a,b){var c,d,e,f,g,h=u(I[Q],I[P]),i=h!=I[Q];if(h==a)return F(h,i,N,b);for(c=h.parentNode,d=F(c,O,N,b);c;){for(;h;)e=h.nextSibling,f=F(h,i,N,b),b!=M&&d.appendChild(f),i=N,h=e;if(c==a)return d;h=c.nextSibling,c=c.parentNode,g=F(c,O,N,b),b!=M&&g.appendChild(d),d=g}}function F(a,b,d,e){var f,g,h,i,j;if(b)return G(a,e);if(3==a.nodeType){if(f=a.nodeValue,d?(i=I[P],g=f.substring(i),h=f.substring(0,i)):(i=I[S],g=f.substring(0,i),h=f.substring(i)),e!=L&&(a.nodeValue=h),e==M)return;return j=c.clone(a,O),j.nodeValue=g,j}if(e!=M)return c.clone(a,O)}function G(a,b){return b!=M?b==L?c.clone(a,N):a:void a.parentNode.removeChild(a)}function H(){return c.create("body",null,q()).outerText}var I=this,J=c.doc,K=0,L=1,M=2,N=!0,O=!1,P="startOffset",Q="startContainer",R="endContainer",S="endOffset",T=a.extend,U=c.nodeIndex;return T(I,{startContainer:J,startOffset:0,endContainer:J,endOffset:0,collapsed:N,commonAncestorContainer:J,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3,setStart:e,setEnd:f,setStartBefore:g,setStartAfter:h,setEndBefore:i,setEndAfter:j,collapse:k,selectNode:l,selectNodeContents:m,compareBoundaryPoints:n,deleteContents:o,extractContents:p,cloneContents:q,insertNode:r,surroundContents:s,cloneRange:t,toStringIE:H}),I}return b.prototype.toString=function(){return this.toStringIE()},b}),h("global!Object",Object),g("ephox.katamari.api.Option",["ephox.katamari.api.Fun","global!Object"],function(a,b){var c=a.never,d=a.always,e=function(){return f},f=function(){var f=function(a){return a.isNone()},g=function(a){return a()},h=function(a){return a},i=function(){},j={fold:function(a,b){return a()},is:c,isSome:c,isNone:d,getOr:h,getOrThunk:g,getOrDie:function(a){throw new Error(a||"error: getOrDie called on none.")},or:h,orThunk:g,map:e,ap:e,each:i,bind:e,flatten:e,exists:c,forall:d,filter:e,equals:f,equals_:f,toArray:function(){return[]},toString:a.constant("none()")};return b.freeze&&b.freeze(j),j}(),g=function(a){var b=function(){return a},h=function(){return k},i=function(b){return g(b(a))},j=function(b){return b(a)},k={fold:function(b,c){return c(a)},is:function(b){return a===b},isSome:d,isNone:c,getOr:b,getOrThunk:b,getOrDie:b,or:h,orThunk:h,map:i,ap:function(b){return b.fold(e,function(b){return g(b(a))})},each:function(b){b(a)},bind:j,flatten:b,exists:j,forall:j,filter:function(b){return b(a)?k:f},equals:function(b){return b.is(a)},equals_:function(b,d){return b.fold(c,function(b){return d(a,b)})},toArray:function(){return[a]},toString:function(){return"some("+a+")"}};return k},h=function(a){return null===a||void 0===a?f:g(a)};return{some:g,none:e,from:h}}),h("global!String",String),g("ephox.katamari.api.Arr",["ephox.katamari.api.Option","global!Array","global!Error","global!String"],function(a,b,c,d){var e=function(){var a=b.prototype.indexOf,c=function(b,c){return a.call(b,c)},d=function(a,b){return u(a,b)};return void 0===a?d:c}(),f=function(b,c){var d=e(b,c);return d===-1?a.none():a.some(d)},g=function(a,b){return e(a,b)>-1},h=function(a,b){return t(a,b).isSome()},i=function(a,b){for(var c=[],d=0;d<a;d++)c.push(b(d));return c},j=function(a,b){for(var c=[],d=0;d<a.length;d+=b){var e=a.slice(d,d+b);c.push(e)}return c},k=function(a,c){for(var d=a.length,e=new b(d),f=0;f<d;f++){var g=a[f];e[f]=c(g,f,a)}return e},l=function(a,b){for(var c=0,d=a.length;c<d;c++){var e=a[c];b(e,c,a)}},m=function(a,b){for(var c=a.length-1;c>=0;c--){var d=a[c];b(d,c,a)}},n=function(a,b){for(var c=[],d=[],e=0,f=a.length;e<f;e++){var g=a[e],h=b(g,e,a)?c:d;h.push(g)}return{pass:c,fail:d}},o=function(a,b){for(var c=[],d=0,e=a.length;d<e;d++){var f=a[d];b(f,d,a)&&c.push(f)}return c},p=function(a,b){if(0===a.length)return[];for(var c=b(a[0]),d=[],e=[],f=0,g=a.length;f<g;f++){var h=a[f],i=b(h);i!==c&&(d.push(e),e=[]),c=i,e.push(h)}return 0!==e.length&&d.push(e),d},q=function(a,b,c){return m(a,function(a){c=b(c,a)}),c},r=function(a,b,c){return l(a,function(a){c=b(c,a)}),c},s=function(b,c){for(var d=0,e=b.length;d<e;d++){var f=b[d];if(c(f,d,b))return a.some(f)}return a.none()},t=function(b,c){for(var d=0,e=b.length;d<e;d++){var f=b[d];if(c(f,d,b))return a.some(d)}return a.none()},u=function(a,b){for(var c=0,d=a.length;c<d;++c)if(a[c]===b)return c;return-1},v=b.prototype.push,w=function(a){for(var d=[],e=0,f=a.length;e<f;++e){if(!b.prototype.isPrototypeOf(a[e]))throw new c("Arr.flatten item "+e+" was not an array, input: "+a);v.apply(d,a[e])}return d},x=function(a,b){var c=k(a,b);return w(c)},y=function(a,b){for(var c=0,d=a.length;c<d;++c){var e=a[c];if(b(e,c,a)!==!0)return!1}return!0},z=function(a,b){return a.length===b.length&&y(a,function(a,c){return a===b[c]})},A=b.prototype.slice,B=function(a){var b=A.call(a,0);return b.reverse(),b},C=function(a,b){return o(a,function(a){return!g(b,a)})},D=function(a,b){for(var c={},e=0,f=a.length;e<f;e++){var g=a[e];c[d(g)]=b(g,e)}return c},E=function(a){return[a]},F=function(a,b){var c=A.call(a,0);return c.sort(b),c};return{map:k,each:l,eachr:m,partition:n,filter:o,groupBy:p,indexOf:f,foldr:q,foldl:r,find:s,findIndex:t,flatten:w,bind:x,forall:y,exists:h,contains:g,equal:z,reverse:B,chunk:j,difference:C,mapToObject:D,pure:E,sort:F,range:i}}),h("global!setTimeout",setTimeout),g("ephox.katamari.api.LazyValue",["ephox.katamari.api.Arr","ephox.katamari.api.Option","global!setTimeout"],function(a,b,c){var d=function(e){var f=b.none(),g=[],h=function(a){return d(function(b){i(function(c){b(a(c))})})},i=function(a){k()?m(a):g.push(a)},j=function(a){f=b.some(a),l(g),g=[]},k=function(){return f.isSome()},l=function(b){a.each(b,m)},m=function(a){f.each(function(b){c(function(){a(b)},0)})};return e(j),{get:i,map:h,isReady:k}},e=function(a){return d(function(b){b(a)})};return{nu:d,pure:e}}),g("ephox.katamari.async.Bounce",["global!Array","global!setTimeout"],function(a,b){var c=function(c){return function(){var d=a.prototype.slice.call(arguments),e=this;b(function(){c.apply(e,d)},0)}};return{bounce:c}}),g("ephox.katamari.api.Future",["ephox.katamari.api.LazyValue","ephox.katamari.async.Bounce"],function(a,b){var c=function(d){var e=function(a){d(b.bounce(a))},f=function(a){return c(function(b){e(function(c){var d=a(c);b(d)})})},g=function(a){return c(function(b){e(function(c){a(c).get(b)})})},h=function(a){return c(function(b){e(function(c){a.get(b)})})},i=function(){return a.nu(e)};return{map:f,bind:g,anonBind:h,toLazy:i,get:e}},d=function(a){return c(function(b){b(a)})};return{nu:c,pure:d}}),g("ephox.katamari.async.AsyncValues",["ephox.katamari.api.Arr"],function(a){var b=function(b,c){return c(function(c){var d=[],e=0,f=function(a){return function(f){d[a]=f,e++,e>=b.length&&c(d)}};0===b.length?c([]):a.each(b,function(a,b){a.get(f(b))})})};return{par:b}}),g("ephox.katamari.api.Futures",["ephox.katamari.api.Arr","ephox.katamari.api.Future","ephox.katamari.async.AsyncValues"],function(a,b,c){var d=function(a){return c.par(a,b.nu)},e=function(b,c){var e=a.map(b,c);return d(e)},f=function(a,b){return function(c){return b(c).bind(a)}};return{par:d,mapM:e,compose:f}}),g("ephox.katamari.api.Result",["ephox.katamari.api.Fun","ephox.katamari.api.Option"],function(a,b){var c=function(d){var e=function(a){return d===a},f=function(a){return c(d)},g=function(a){return c(d)},h=function(a){return c(a(d))},i=function(a){a(d)},j=function(a){return a(d)},k=function(a,b){return b(d)},l=function(a){return a(d)},m=function(a){return a(d)},n=function(){return b.some(d)};return{is:e,isValue:a.constant(!0),isError:a.constant(!1),getOr:a.constant(d),getOrThunk:a.constant(d),getOrDie:a.constant(d),or:f,orThunk:g,fold:k,map:h,each:i,bind:j,exists:l,forall:m,toOption:n}},d=function(c){var e=function(a){return a()},f=function(){return a.die(c)()},g=function(a){return a},h=function(a){return a()},i=function(a){return d(c)},j=function(a){return d(c)},k=function(a,b){return a(c)};return{is:a.constant(!1),isValue:a.constant(!1),isError:a.constant(!0),getOr:a.identity,getOrThunk:e,getOrDie:f,or:g,orThunk:h,fold:k,map:i,each:a.noop,bind:j,exists:a.constant(!1),forall:a.constant(!0),toOption:b.none}};return{value:c,error:d}}),g("tinymce.core.dom.StyleSheetLoader",["ephox.katamari.api.Arr","ephox.katamari.api.Fun","ephox.katamari.api.Future","ephox.katamari.api.Futures","ephox.katamari.api.Result","tinymce.core.util.Delay","tinymce.core.util.Tools"],function(a,b,c,d,e,f,g){"use strict";return function(h,i){function j(a){h.getElementsByTagName("head")[0].appendChild(a)}function k(a,b,c){function d(){for(var a=t.passed,b=a.length;b--;)a[b]();t.status=2,t.passed=[],t.failed=[]}function e(){for(var a=t.failed,b=a.length;b--;)a[b]();t.status=3,t.passed=[],t.failed=[]}function i(){var a=navigator.userAgent.match(/WebKit\/(\d*)/);return!!(a&&a[1]<536)}function k(a,b){a()||((new Date).getTime()-s<l?f.setTimeout(b):e())}function o(){k(function(){for(var a,b,c=h.styleSheets,e=c.length;e--;)if(a=c[e],b=a.ownerNode?a.ownerNode:a.owningElement,b&&b.id===q.id)return d(),!0},o)}function p(){k(function(){try{var a=r.sheet.cssRules;return d(),!!a}catch(b){}},p)}var q,r,s,t;if(a=g._addCacheSuffix(a),n[a]?t=n[a]:(t={passed:[],failed:[]},n[a]=t),b&&t.passed.push(b),c&&t.failed.push(c),1!=t.status){if(2==t.status)return void d();if(3==t.status)return void e();if(t.status=1,q=h.createElement("link"),q.rel="stylesheet",q.type="text/css",q.id="u"+m++,q.async=!1,q.defer=!1,s=(new Date).getTime(),"onload"in q&&!i())q.onload=o,q.onerror=e;else{if(navigator.userAgent.indexOf("Firefox")>0)return r=h.createElement("style"),r.textContent='@import "'+a+'"',p(),void j(r);o()}j(q),q.href=a}}var l,m=0,n={};i=i||{},l=i.maxLoadTime||5e3;var o=function(a){return c.nu(function(c){k(a,b.compose(c,b.constant(e.value(a))),b.compose(c,b.constant(e.error(a))))})},p=function(a){return a.fold(b.identity,b.identity)},q=function(b,c,e){d.par(a.map(b,o)).get(function(b){var d=a.partition(b,function(a){return a.isValue()});d.fail.length>0?e(d.fail.map(p)):c(d.pass.map(p))})};return{load:k,loadAll:q}}}),g("tinymce.core.dom.TreeWalker",[],function(){return function(a,b){function c(a,c,d,e){var f,g;if(a){if(!e&&a[c])return a[c];if(a!=b){if(f=a[d])return f;for(g=a.parentNode;g&&g!=b;g=g.parentNode)if(f=g[d])return f}}}function d(a,c,d,e){var f,g,h;if(a){if(f=a[d],b&&f===b)return;if(f){if(!e)for(h=f[c];h;h=h[c])if(!h[c])return h;return f}if(g=a.parentNode,g&&g!==b)return g}}var e=a;this.current=function(){return e},this.next=function(a){return e=c(e,"firstChild","nextSibling",a)},this.prev=function(a){return e=c(e,"lastChild","previousSibling",a)},this.prev2=function(a){return e=d(e,"lastChild","previousSibling",a)}}}),g("tinymce.core.html.Entities",["tinymce.core.util.Tools"],function(a){function b(a){var b;return b=document.createElement("div"),b.innerHTML=a,b.textContent||b.innerText||a}function c(a,b){var c,d,f,g={};if(a){for(a=a.split(","),b=b||10,c=0;c<a.length;c+=2)d=String.fromCharCode(parseInt(a[c],b)),e[d]||(f="&"+a[c+1]+";",g[d]=f,g[f]=d);return g}}var d,e,f,g=a.makeMap,h=/[&<>\"\u0060\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,i=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,j=/[<>&\"\']/g,k=/&#([a-z0-9]+);?|&([a-z0-9]+);/gi,l={128:"\u20ac",130:"\u201a",131:"\u0192",132:"\u201e",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02c6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017d",145:"\u2018",146:"\u2019",147:"\u201c",148:"\u201d",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02dc",153:"\u2122",154:"\u0161",155:"\u203a",156:"\u0153",158:"\u017e",159:"\u0178"};e={'"':""","'":"'","<":"<",">":">","&":"&","`":"`"},f={"<":"<",">":">","&":"&",""":'"',"'":"'"},d=c("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32);var m={encodeRaw:function(a,b){return a.replace(b?h:i,function(a){return e[a]||a})},encodeAllRaw:function(a){return(""+a).replace(j,function(a){return e[a]||a})},encodeNumeric:function(a,b){return a.replace(b?h:i,function(a){return a.length>1?"&#"+(1024*(a.charCodeAt(0)-55296)+(a.charCodeAt(1)-56320)+65536)+";":e[a]||"&#"+a.charCodeAt(0)+";"})},encodeNamed:function(a,b,c){return c=c||d,a.replace(b?h:i,function(a){return e[a]||c[a]||a})},getEncodeFunc:function(a,b){function f(a,c){return a.replace(c?h:i,function(a){return void 0!==e[a]?e[a]:void 0!==b[a]?b[a]:a.length>1?"&#"+(1024*(a.charCodeAt(0)-55296)+(a.charCodeAt(1)-56320)+65536)+";":"&#"+a.charCodeAt(0)+";"})}function j(a,c){return m.encodeNamed(a,c,b)}return b=c(b)||d,a=g(a.replace(/\+/g,",")),a.named&&a.numeric?f:a.named?b?j:m.encodeNamed:a.numeric?m.encodeNumeric:m.encodeRaw},decode:function(a){return a.replace(k,function(a,c){return c?(c="x"===c.charAt(0).toLowerCase()?parseInt(c.substr(1),16):parseInt(c,10),c>65535?(c-=65536,String.fromCharCode(55296+(c>>10),56320+(1023&c))):l[c]||String.fromCharCode(c)):f[a]||d[a]||b(a)})}};return m}),g("tinymce.core.html.Schema",["tinymce.core.util.Tools"],function(a){function b(b,c){return b=a.trim(b),b?b.split(c||" "):[]}function c(a){function c(a,c,d){function e(a,b){var c,d,e={};for(c=0,d=a.length;c<d;c++)e[a[c]]=b||{};return e}var h,i,j;for(d=d||[],c=c||"","string"==typeof d&&(d=b(d)),a=b(a),h=a.length;h--;)i=b([g,c].join(" ")),j={attributes:e(i),attributesOrder:i,children:e(d,f)},n[a[h]]=j}function d(a,c){var d,e,f,g;for(a=b(a),d=a.length,c=b(c);d--;)for(e=n[a[d]],f=0,g=c.length;f<g;f++)e.attributes[c[f]]={},e.attributesOrder.push(c[f])}var g,i,j,k,l,m,n={};return e[a]?e[a]:(g="id accesskey class dir lang style tabindex title role",i="address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul",j="a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd label map noscript object q s samp script select small span strong sub sup textarea u var #text #comment","html4"!=a&&(g+=" contenteditable contextmenu draggable dropzone hidden spellcheck translate",i+=" article aside details dialog figure header footer hgroup section nav",j+=" audio canvas command datalist mark meter output picture progress time wbr video ruby bdi keygen"),"html5-strict"!=a&&(g+=" xml:lang",m="acronym applet basefont big font strike tt",j=[j,m].join(" "),h(b(m),function(a){c(a,"",j)}),l="center dir isindex noframes",i=[i,l].join(" "),k=[i,j].join(" "),h(b(l),function(a){c(a,"",k)})),k=k||[i,j].join(" "),c("html","manifest","head body"),c("head","","base command link meta noscript script style title"),c("title hr noscript br"),c("base","href target"),c("link","href rel media hreflang type sizes hreflang"),c("meta","name http-equiv content charset"),c("style","media type scoped"),c("script","src async defer type charset"),c("body","onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload onmessage onoffline ononline onpagehide onpageshow onpopstate onresize onscroll onstorage onunload",k),c("address dt dd div caption","",k),c("h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn","",j),c("blockquote","cite",k),c("ol","reversed start type","li"),c("ul","","li"),c("li","value",k),c("dl","","dt dd"),c("a","href target rel media hreflang type",j),c("q","cite",j),c("ins del","cite datetime",k),c("img","src sizes srcset alt usemap ismap width height"),c("iframe","src name width height",k),c("embed","src type width height"),c("object","data type typemustmatch name usemap form width height",[k,"param"].join(" ")),c("param","name value"),c("map","name",[k,"area"].join(" ")),c("area","alt coords shape href target rel media hreflang type"),c("table","border","caption colgroup thead tfoot tbody tr"+("html4"==a?" col":"")),c("colgroup","span","col"),c("col","span"),c("tbody thead tfoot","","tr"),c("tr","","td th"),c("td","colspan rowspan headers",k),c("th","colspan rowspan headers scope abbr",k),c("form","accept-charset action autocomplete enctype method name novalidate target",k),c("fieldset","disabled form name",[k,"legend"].join(" ")),c("label","form for",j),c("input","accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate formtarget height list max maxlength min multiple name pattern readonly required size src step type value width"),c("button","disabled form formaction formenctype formmethod formnovalidate formtarget name type value","html4"==a?k:j),c("select","disabled form multiple name required size","option optgroup"),c("optgroup","disabled label","option"),c("option","disabled label selected value"),c("textarea","cols dirname disabled form maxlength name readonly required rows wrap"),c("menu","type label",[k,"li"].join(" ")),c("noscript","",k),"html4"!=a&&(c("wbr"),c("ruby","",[j,"rt rp"].join(" ")),c("figcaption","",k),c("mark rt rp summary bdi","",j),c("canvas","width height",k),c("video","src crossorigin poster preload autoplay mediagroup loop muted controls width height buffered",[k,"track source"].join(" ")),c("audio","src crossorigin preload autoplay mediagroup loop muted controls buffered volume",[k,"track source"].join(" ")),c("picture","","img source"),c("source","src srcset type media sizes"),c("track","kind src srclang label default"),c("datalist","",[j,"option"].join(" ")),c("article section nav aside header footer","",k),c("hgroup","","h1 h2 h3 h4 h5 h6"),c("figure","",[k,"figcaption"].join(" ")),c("time","datetime",j),c("dialog","open",k),c("command","type label icon disabled checked radiogroup command"),c("output","for form name",j),c("progress","value max",j),c("meter","value min max low high optimum",j),c("details","open",[k,"summary"].join(" ")),c("keygen","autofocus challenge disabled form keytype name")), -"html5-strict"!=a&&(d("script","language xml:space"),d("style","xml:space"),d("object","declare classid code codebase codetype archive standby align border hspace vspace"),d("embed","align name hspace vspace"),d("param","valuetype type"),d("a","charset name rev shape coords"),d("br","clear"),d("applet","codebase archive code object alt name width height align hspace vspace"),d("img","name longdesc align border hspace vspace"),d("iframe","longdesc frameborder marginwidth marginheight scrolling align"),d("font basefont","size color face"),d("input","usemap align"),d("select","onchange"),d("textarea"),d("h1 h2 h3 h4 h5 h6 div p legend caption","align"),d("ul","type compact"),d("li","type"),d("ol dl menu dir","compact"),d("pre","width xml:space"),d("hr","align noshade size width"),d("isindex","prompt"),d("table","summary width frame rules cellspacing cellpadding align bgcolor"),d("col","width align char charoff valign"),d("colgroup","width align char charoff valign"),d("thead","align char charoff valign"),d("tr","align char charoff valign bgcolor"),d("th","axis align char charoff valign nowrap bgcolor width height"),d("form","accept"),d("td","abbr axis scope align char charoff valign nowrap bgcolor width height"),d("tfoot","align char charoff valign"),d("tbody","align char charoff valign"),d("area","nohref"),d("body","background bgcolor text link vlink alink")),"html4"!=a&&(d("input button select textarea","autofocus"),d("input textarea","placeholder"),d("a","download"),d("link script img","crossorigin"),d("iframe","sandbox seamless allowfullscreen")),h(b("a form meter progress dfn"),function(a){n[a]&&delete n[a].children[a]}),delete n.caption.children.table,delete n.script,e[a]=n,n)}function d(a,b){var c;return a&&(c={},"string"==typeof a&&(a={"*":a}),h(a,function(a,d){c[d]=c[d.toUpperCase()]="map"==b?g(a,/[, ]/):j(a,/[, ]/)})),c}var e={},f={},g=a.makeMap,h=a.each,i=a.extend,j=a.explode,k=a.inArray;return function(a){function f(b,c,d){var f=a[b];return f?f=g(f,/[, ]/,g(f.toUpperCase(),/[, ]/)):(f=e[b],f||(f=g(c," ",g(c.toUpperCase()," ")),f=i(f,d),e[b]=f)),f}function l(a){return new RegExp("^"+a.replace(/([?+*])/g,".$1")+"$")}function m(a){var c,d,e,f,h,i,j,m,n,o,p,q,r,s,t,u,v,w,x,y=/^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/,z=/^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/,A=/[*?+]/;if(a)for(a=b(a,","),F["@"]&&(u=F["@"].attributes,v=F["@"].attributesOrder),c=0,d=a.length;c<d;c++)if(h=y.exec(a[c])){if(s=h[1],n=h[2],t=h[3],m=h[5],q={},r=[],i={attributes:q,attributesOrder:r},"#"===s&&(i.paddEmpty=!0),"-"===s&&(i.removeEmpty=!0),"!"===h[4]&&(i.removeEmptyAttrs=!0),u){for(w in u)q[w]=u[w];r.push.apply(r,v)}if(m)for(m=b(m,"|"),e=0,f=m.length;e<f;e++)if(h=z.exec(m[e])){if(j={},p=h[1],o=h[2].replace(/::/g,":"),s=h[3],x=h[4],"!"===p&&(i.attributesRequired=i.attributesRequired||[],i.attributesRequired.push(o),j.required=!0),"-"===p){delete q[o],r.splice(k(r,o),1);continue}s&&("="===s&&(i.attributesDefault=i.attributesDefault||[],i.attributesDefault.push({name:o,value:x}),j.defaultValue=x),":"===s&&(i.attributesForced=i.attributesForced||[],i.attributesForced.push({name:o,value:x}),j.forcedValue=x),"<"===s&&(j.validValues=g(x,"?"))),A.test(o)?(i.attributePatterns=i.attributePatterns||[],j.pattern=l(o),i.attributePatterns.push(j)):(q[o]||r.push(o),q[o]=j)}u||"@"!=n||(u=q,v=r),t&&(i.outputName=n,F[t]=i),A.test(n)?(i.pattern=l(n),H.push(i)):F[n]=i}}function n(a){F={},H=[],m(a),h(t,function(a,b){G[b]=a.children})}function o(a){var c=/^(~)?(.+)$/;a&&(e.text_block_elements=e.block_elements=null,h(b(a,","),function(a){var b=c.exec(a),d="~"===b[1],e=d?"span":"div",f=b[2];if(G[f]=G[e],I[f]=e,d||(z[f.toUpperCase()]={},z[f]={}),!F[f]){var g=F[e];g=i({},g),delete g.removeEmptyAttrs,delete g.removeEmpty,F[f]=g}h(G,function(a,b){a[e]&&(G[b]=a=i({},G[b]),a[f]=a[e])})}))}function p(c){var d=/^([+\-]?)(\w+)\[([^\]]+)\]$/;e[a.schema]=null,c&&h(b(c,","),function(a){var c,e,f=d.exec(a);f&&(e=f[1],c=e?G[f[2]]:G[f[2]]={"#comment":{}},c=G[f[2]],h(b(f[3],"|"),function(a){"-"===e?delete c[a]:c[a]={}}))})}function q(a){var b,c=F[a];if(c)return c;for(b=H.length;b--;)if(c=H[b],c.pattern.test(a))return c}var r,s,t,u,v,w,x,y,z,A,B,C,D,E=this,F={},G={},H=[],I={},J={};a=a||{},t=c(a.schema),a.verify_html===!1&&(a.valid_elements="*[*]"),r=d(a.valid_styles),s=d(a.invalid_styles,"map"),y=d(a.valid_classes,"map"),u=f("whitespace_elements","pre script noscript style textarea video audio iframe object code"),v=f("self_closing_elements","colgroup dd dt li option p td tfoot th thead tr"),w=f("short_ended_elements","area base basefont br col frame hr img input isindex link meta param embed source wbr track"),x=f("boolean_attributes","checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls"),A=f("non_empty_elements","td th iframe video audio object script pre code",w),B=f("move_caret_before_on_enter_elements","table",A),C=f("text_block_elements","h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside nav figure"),z=f("block_elements","hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex option datalist select optgroup figcaption",C),D=f("text_inline_elements","span strong b em i font strike u var cite dfn code mark q sup sub samp"),h((a.special||"script noscript noframes noembed title style textarea xmp").split(" "),function(a){J[a]=new RegExp("</"+a+"[^>]*>","gi")}),a.valid_elements?n(a.valid_elements):(h(t,function(a,b){F[b]={attributes:a.attributes,attributesOrder:a.attributesOrder},G[b]=a.children}),"html5"!=a.schema&&h(b("strong/b em/i"),function(a){a=b(a,"/"),F[a[1]].outputName=a[0]}),h(b("ol ul sub sup blockquote span font a table tbody tr strong em b i"),function(a){F[a]&&(F[a].removeEmpty=!0)}),h(b("p h1 h2 h3 h4 h5 h6 th td pre div address caption"),function(a){F[a].paddEmpty=!0}),h(b("span"),function(a){F[a].removeEmptyAttrs=!0})),o(a.custom_elements),p(a.valid_children),m(a.extended_valid_elements),p("+ol[ul|ol],+ul[ul|ol]"),h({dd:"dl",dt:"dl",li:"ul ol",td:"tr",th:"tr",tr:"tbody thead tfoot",tbody:"table",thead:"table",tfoot:"table",legend:"fieldset",area:"map",param:"video audio object"},function(a,c){F[c]&&(F[c].parentsRequired=b(a))}),a.invalid_elements&&h(j(a.invalid_elements),function(a){F[a]&&delete F[a]}),q("span")||m("span[!data-mce-type|*]"),E.children=G,E.getValidStyles=function(){return r},E.getInvalidStyles=function(){return s},E.getValidClasses=function(){return y},E.getBoolAttrs=function(){return x},E.getBlockElements=function(){return z},E.getTextBlockElements=function(){return C},E.getTextInlineElements=function(){return D},E.getShortEndedElements=function(){return w},E.getSelfClosingElements=function(){return v},E.getNonEmptyElements=function(){return A},E.getMoveCaretBeforeOnEnterElements=function(){return B},E.getWhiteSpaceElements=function(){return u},E.getSpecialElements=function(){return J},E.isValidChild=function(a,b){var c=G[a.toLowerCase()];return!(!c||!c[b.toLowerCase()])},E.isValid=function(a,b){var c,d,e=q(a);if(e){if(!b)return!0;if(e.attributes[b])return!0;if(c=e.attributePatterns)for(d=c.length;d--;)if(c[d].pattern.test(a))return!0}return!1},E.getElementRule=q,E.getCustomElements=function(){return I},E.addValidElements=m,E.setValidElements=n,E.addCustomElements=o,E.addValidChildren=p,E.elements=F}}),g("tinymce.core.html.Styles",[],function(){return function(a,b){function c(a,b,c,d){function e(a){return a=parseInt(a,10).toString(16),a.length>1?a:"0"+a}return"#"+e(b)+e(c)+e(d)}var d,e,f,g,h=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,i=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,j=/\s*([^:]+):\s*([^;]+);?/g,k=/\s+$/,l={},m="\ufeff";for(a=a||{},b&&(f=b.getValidStyles(),g=b.getInvalidStyles()),e=("\\\" \\' \\; \\: ; : "+m).split(" "),d=0;d<e.length;d++)l[e[d]]=m+d,l[m+d]=e[d];return{toHex:function(a){return a.replace(h,c)},parse:function(b){function e(a,b,c){var e,f,g,h;if(e=w[a+"-top"+b],e&&(f=w[a+"-right"+b],f&&(g=w[a+"-bottom"+b],g&&(h=w[a+"-left"+b])))){var i=[e,f,g,h];for(d=i.length-1;d--&&i[d]===i[d+1];);d>-1&&c||(w[a+b]=d==-1?i[0]:i.join(" "),delete w[a+"-top"+b],delete w[a+"-right"+b],delete w[a+"-bottom"+b],delete w[a+"-left"+b])}}function f(a){var b,c=w[a];if(c){for(c=c.split(" "),b=c.length;b--;)if(c[b]!==c[0])return!1;return w[a]=c[0],!0}}function g(a,b,c,d){f(b)&&f(c)&&f(d)&&(w[a]=w[b]+" "+w[c]+" "+w[d],delete w[b],delete w[c],delete w[d])}function n(a){return v=!0,l[a]}function o(a,b){return v&&(a=a.replace(/\uFEFF[0-9]/g,function(a){return l[a]})),b||(a=a.replace(/\\([\'\";:])/g,"$1")),a}function p(a){return String.fromCharCode(parseInt(a.slice(1),16))}function q(a){return a.replace(/\\[0-9a-f]+/gi,p)}function r(b,c,d,e,f,g){if(f=f||g)return f=o(f),"'"+f.replace(/\'/g,"\\'")+"'";if(c=o(c||d||e),!a.allow_script_urls){var h=c.replace(/[\s\r\n]+/g,"");if(/(java|vb)script:/i.test(h))return"";if(!a.allow_svg_data_urls&&/^data:image\/svg/i.test(h))return""}return x&&(c=x.call(y,c,"style")),"url('"+c.replace(/\'/g,"\\'")+"')"}var s,t,u,v,w={},x=a.url_converter,y=a.url_converter_scope||this;if(b){for(b=b.replace(/[\u0000-\u001F]/g,""),b=b.replace(/\\[\"\';:\uFEFF]/g,n).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(a){return a.replace(/[;:]/g,n)});s=j.exec(b);)if(j.lastIndex=s.index+s[0].length,t=s[1].replace(k,"").toLowerCase(),u=s[2].replace(k,""),t&&u){if(t=q(t),u=q(u),t.indexOf(m)!==-1||t.indexOf('"')!==-1)continue;if(!a.allow_script_urls&&("behavior"==t||/expression\s*\(|\/\*|\*\//.test(u)))continue;"font-weight"===t&&"700"===u?u="bold":"color"!==t&&"background-color"!==t||(u=u.toLowerCase()),u=u.replace(h,c),u=u.replace(i,r),w[t]=v?o(u,!0):u}e("border","",!0),e("border","-width"),e("border","-color"),e("border","-style"),e("padding",""),e("margin",""),g("border","border-width","border-style","border-color"),"medium none"===w.border&&delete w.border,"none"===w["border-image"]&&delete w["border-image"]}return w},serialize:function(a,b){function c(b){var c,d,e,g;if(c=f[b])for(d=0,e=c.length;d<e;d++)b=c[d],g=a[b],g&&(i+=(i.length>0?" ":"")+b+": "+g+";")}function d(a,b){var c;return c=g["*"],(!c||!c[a])&&(c=g[b],!c||!c[a])}var e,h,i="";if(b&&f)c("*"),c(b);else for(e in a)h=a[e],!h||g&&!d(e,b)||(i+=(i.length>0?" ":"")+e+": "+h+";");return i}}}}),g("tinymce.core.dom.DOMUtils",["tinymce.core.dom.DomQuery","tinymce.core.dom.EventUtils","tinymce.core.dom.Range","tinymce.core.dom.Sizzle","tinymce.core.dom.StyleSheetLoader","tinymce.core.dom.TreeWalker","tinymce.core.Env","tinymce.core.html.Entities","tinymce.core.html.Schema","tinymce.core.html.Styles","tinymce.core.util.Tools"],function(a,b,c,d,e,f,g,h,i,j,k){function l(a,b){var c,d={},e=b.keep_values;return c={set:function(c,d,e){b.url_converter&&(d=b.url_converter.call(b.url_converter_scope||a,d,e,c[0])),c.attr("data-mce-"+e,d).attr(e,d)},get:function(a,b){return a.attr("data-mce-"+b)||a.attr(b)}},d={style:{set:function(a,b){return null!==b&&"object"==typeof b?void a.css(b):(e&&a.attr("data-mce-style",b),void a.attr("style",b))},get:function(b){var c=b.attr("data-mce-style")||b.attr("style");return c=a.serializeStyle(a.parseStyle(c),b[0].nodeName)}}},e&&(d.href=d.src=c),d}function m(a,b){var c=b.attr("style");c=a.serializeStyle(a.parseStyle(c),b[0].nodeName),c||(c=null),b.attr("data-mce-style",c)}function n(a,b){var c,d,e=0;if(a)for(c=a.nodeType,a=a.previousSibling;a;a=a.previousSibling)d=a.nodeType,(!b||3!=d||d!=c&&a.nodeValue.length)&&(e++,c=d);return e}function o(c,d){var f,g=this;g.doc=c,g.win=window,g.files={},g.counter=0,g.stdMode=!t||c.documentMode>=8,g.boxModel=!t||"CSS1Compat"==c.compatMode||g.stdMode,g.styleSheetLoader=new e(c),g.boundEvents=[],g.settings=d=d||{},g.schema=d.schema?d.schema:new i({}),g.styles=new j({url_converter:d.url_converter,url_converter_scope:d.url_converter_scope},d.schema),g.fixDoc(c),g.events=d.ownEvents?new b(d.proxy):b.Event,g.attrHooks=l(g,d),f=d.schema?d.schema.getBlockElements():{},g.$=a.overrideDefaults(function(){return{context:c,element:g.getRoot()}}),g.isBlock=function(a){if(!a)return!1;var b=a.nodeType;return b?!(1!==b||!f[a.nodeName]):!!f[a]}}var p=k.each,q=k.is,r=k.grep,s=k.trim,t=g.ie,u=/^([a-z0-9],?)+$/i,v=/^[ \t\r\n]*$/;return o.prototype={$$:function(a){return"string"==typeof a&&(a=this.get(a)),this.$(a)},root:null,fixDoc:function(a){var b,c=this.settings;if(t&&c.schema){"abbr article aside audio canvas details figcaption figure footer header hgroup mark menu meter nav output progress section summary time video".replace(/\w+/g,function(b){a.createElement(b)});for(b in c.schema.getCustomElements())a.createElement(b)}},clone:function(a,b){var c,d,e=this;return!t||1!==a.nodeType||b?a.cloneNode(b):(d=e.doc,b?c.firstChild:(c=d.createElement(a.nodeName),p(e.getAttribs(a),function(b){e.setAttrib(c,b.nodeName,e.getAttrib(a,b.nodeName))}),c))},getRoot:function(){var a=this;return a.settings.root_element||a.doc.body},getViewPort:function(a){var b,c;return a=a?a:this.win,b=a.document,c=this.boxModel?b.documentElement:b.body,{x:a.pageXOffset||c.scrollLeft,y:a.pageYOffset||c.scrollTop,w:a.innerWidth||c.clientWidth,h:a.innerHeight||c.clientHeight}},getRect:function(a){var b,c,d=this;return a=d.get(a),b=d.getPos(a),c=d.getSize(a),{x:b.x,y:b.y,w:c.w,h:c.h}},getSize:function(a){var b,c,d=this;return a=d.get(a),b=d.getStyle(a,"width"),c=d.getStyle(a,"height"),b.indexOf("px")===-1&&(b=0),c.indexOf("px")===-1&&(c=0),{w:parseInt(b,10)||a.offsetWidth||a.clientWidth,h:parseInt(c,10)||a.offsetHeight||a.clientHeight}},getParent:function(a,b,c){return this.getParents(a,b,c,!1)},getParents:function(a,b,c,d){var e,f=this,g=[];for(a=f.get(a),d=void 0===d,c=c||("BODY"!=f.getRoot().nodeName?f.getRoot().parentNode:null),q(b,"string")&&(e=b,b="*"===b?function(a){return 1==a.nodeType}:function(a){return f.is(a,e)});a&&a!=c&&a.nodeType&&9!==a.nodeType;){if(!b||b(a)){if(!d)return a;g.push(a)}a=a.parentNode}return d?g:null},get:function(a){var b;return a&&this.doc&&"string"==typeof a&&(b=a,a=this.doc.getElementById(a),a&&a.id!==b)?this.doc.getElementsByName(b)[1]:a},getNext:function(a,b){return this._findSib(a,b,"nextSibling")},getPrev:function(a,b){return this._findSib(a,b,"previousSibling")},select:function(a,b){var c=this;return d(a,c.get(b)||c.settings.root_element||c.doc,[])},is:function(a,b){var c;if(!a)return!1;if(void 0===a.length){if("*"===b)return 1==a.nodeType;if(u.test(b)){for(b=b.toLowerCase().split(/,/),a=a.nodeName.toLowerCase(),c=b.length-1;c>=0;c--)if(b[c]==a)return!0;return!1}}if(a.nodeType&&1!=a.nodeType)return!1;var e=a.nodeType?[a]:a;return d(b,e[0].ownerDocument||e[0],null,e).length>0},add:function(a,b,c,d,e){var f=this;return this.run(a,function(a){var g;return g=q(b,"string")?f.doc.createElement(b):b,f.setAttribs(g,c),d&&(d.nodeType?g.appendChild(d):f.setHTML(g,d)),e?g:a.appendChild(g)})},create:function(a,b,c){return this.add(this.doc.createElement(a),a,b,c,1)},createHTML:function(a,b,c){var d,e="";e+="<"+a;for(d in b)b.hasOwnProperty(d)&&null!==b[d]&&"undefined"!=typeof b[d]&&(e+=" "+d+'="'+this.encode(b[d])+'"');return"undefined"!=typeof c?e+">"+c+"</"+a+">":e+" />"},createFragment:function(a){var b,c,d,e=this.doc;for(d=e.createElement("div"),b=e.createDocumentFragment(),a&&(d.innerHTML=a);c=d.firstChild;)b.appendChild(c);return b},remove:function(a,b){return a=this.$$(a),b?a.each(function(){for(var a;a=this.firstChild;)3==a.nodeType&&0===a.data.length?this.removeChild(a):this.parentNode.insertBefore(a,this)}).remove():a.remove(),a.length>1?a.toArray():a[0]},setStyle:function(a,b,c){a=this.$$(a).css(b,c),this.settings.update_styles&&m(this,a)},getStyle:function(a,b,c){return a=this.$$(a),c?a.css(b):(b=b.replace(/-(\D)/g,function(a,b){return b.toUpperCase()}),"float"==b&&(b=g.ie&&g.ie<12?"styleFloat":"cssFloat"),a[0]&&a[0].style?a[0].style[b]:void 0)},setStyles:function(a,b){a=this.$$(a).css(b),this.settings.update_styles&&m(this,a)},removeAllAttribs:function(a){return this.run(a,function(a){var b,c=a.attributes;for(b=c.length-1;b>=0;b--)a.removeAttributeNode(c.item(b))})},setAttrib:function(a,b,c){var d,e,f=this,g=f.settings;""===c&&(c=null),a=f.$$(a),d=a.attr(b),a.length&&(e=f.attrHooks[b],e&&e.set?e.set(a,c,b):a.attr(b,c),d!=c&&g.onSetAttrib&&g.onSetAttrib({attrElm:a,attrName:b,attrValue:c}))},setAttribs:function(a,b){var c=this;c.$$(a).each(function(a,d){p(b,function(a,b){c.setAttrib(d,b,a)})})},getAttrib:function(a,b,c){var d,e,f=this;return a=f.$$(a),a.length&&(d=f.attrHooks[b],e=d&&d.get?d.get(a,b):a.attr(b)),"undefined"==typeof e&&(e=c||""),e},getPos:function(b,c){var d,e,f=this,g=0,h=0,i=f.doc,j=i.body;if(b=f.get(b),c=c||j,b){if(c===j&&b.getBoundingClientRect&&"static"===a(j).css("position"))return e=b.getBoundingClientRect(),c=f.boxModel?i.documentElement:j,g=e.left+(i.documentElement.scrollLeft||j.scrollLeft)-c.clientLeft,h=e.top+(i.documentElement.scrollTop||j.scrollTop)-c.clientTop,{x:g,y:h};for(d=b;d&&d!=c&&d.nodeType;)g+=d.offsetLeft||0,h+=d.offsetTop||0,d=d.offsetParent;for(d=b.parentNode;d&&d!=c&&d.nodeType;)g-=d.scrollLeft||0,h-=d.scrollTop||0,d=d.parentNode}return{x:g,y:h}},parseStyle:function(a){return this.styles.parse(a)},serializeStyle:function(a,b){return this.styles.serialize(a,b)},addStyle:function(a){var b,c,d=this,e=d.doc;if(d!==o.DOM&&e===document){var f=o.DOM.addedStyles;if(f=f||[],f[a])return;f[a]=!0,o.DOM.addedStyles=f}c=e.getElementById("mceDefaultStyles"),c||(c=e.createElement("style"),c.id="mceDefaultStyles",c.type="text/css",b=e.getElementsByTagName("head")[0],b.firstChild?b.insertBefore(c,b.firstChild):b.appendChild(c)),c.styleSheet?c.styleSheet.cssText+=a:c.appendChild(e.createTextNode(a))},loadCSS:function(a){var b,c=this,d=c.doc;return c!==o.DOM&&d===document?void o.DOM.loadCSS(a):(a||(a=""),b=d.getElementsByTagName("head")[0],void p(a.split(","),function(a){var e;a=k._addCacheSuffix(a),c.files[a]||(c.files[a]=!0,e=c.create("link",{rel:"stylesheet",href:a}),t&&d.documentMode&&d.recalc&&(e.onload=function(){d.recalc&&d.recalc(),e.onload=null}),b.appendChild(e))}))},addClass:function(a,b){this.$$(a).addClass(b)},removeClass:function(a,b){this.toggleClass(a,b,!1)},hasClass:function(a,b){return this.$$(a).hasClass(b)},toggleClass:function(b,c,d){this.$$(b).toggleClass(c,d).each(function(){""===this.className&&a(this).attr("class",null)})},show:function(a){this.$$(a).show()},hide:function(a){this.$$(a).hide()},isHidden:function(a){return"none"==this.$$(a).css("display")},uniqueId:function(a){return(a?a:"mce_")+this.counter++},setHTML:function(b,c){b=this.$$(b),t?b.each(function(b,d){if(d.canHaveHTML!==!1){for(;d.firstChild;)d.removeChild(d.firstChild);try{d.innerHTML="<br>"+c,d.removeChild(d.firstChild)}catch(e){a("<div></div>").html("<br>"+c).contents().slice(1).appendTo(d)}return c}}):b.html(c)},getOuterHTML:function(b){return b=this.get(b),1==b.nodeType&&"outerHTML"in b?b.outerHTML:a("<div></div>").append(a(b).clone()).html()},setOuterHTML:function(b,c){var d=this;d.$$(b).each(function(){try{if("outerHTML"in this)return void(this.outerHTML=c)}catch(b){}d.remove(a(this).html(c),!0)})},decode:h.decode,encode:h.encodeAllRaw,insertAfter:function(a,b){return b=this.get(b),this.run(a,function(a){var c,d;return c=b.parentNode,d=b.nextSibling,d?c.insertBefore(a,d):c.appendChild(a),a})},replace:function(a,b,c){var d=this;return d.run(b,function(b){return q(b,"array")&&(a=a.cloneNode(!0)),c&&p(r(b.childNodes),function(b){a.appendChild(b)}),b.parentNode.replaceChild(a,b)})},rename:function(a,b){var c,d=this;return a.nodeName!=b.toUpperCase()&&(c=d.create(b),p(d.getAttribs(a),function(b){d.setAttrib(c,b.nodeName,d.getAttrib(a,b.nodeName))}),d.replace(c,a,1)),c||a},findCommonAncestor:function(a,b){for(var c,d=a;d;){for(c=b;c&&d!=c;)c=c.parentNode;if(d==c)break;d=d.parentNode}return!d&&a.ownerDocument?a.ownerDocument.documentElement:d},toHex:function(a){return this.styles.toHex(k.trim(a))},run:function(a,b,c){var d,e=this;return"string"==typeof a&&(a=e.get(a)),!!a&&(c=c||this,a.nodeType||!a.length&&0!==a.length?b.call(c,a):(d=[],p(a,function(a,f){a&&("string"==typeof a&&(a=e.get(a)),d.push(b.call(c,a,f)))}),d))},getAttribs:function(a){var b;if(a=this.get(a),!a)return[];if(t){if(b=[],"OBJECT"==a.nodeName)return a.attributes;"OPTION"===a.nodeName&&this.getAttrib(a,"selected")&&b.push({specified:1,nodeName:"selected"});var c=/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi;return a.cloneNode(!1).outerHTML.replace(c,"").replace(/[\w:\-]+/gi,function(a){b.push({specified:1,nodeName:a})}),b}return a.attributes},isEmpty:function(a,b){var c,d,e,g,h,i,j=this,k=0;if(a=a.firstChild){h=new f(a,a.parentNode),b=b||(j.schema?j.schema.getNonEmptyElements():null),g=j.schema?j.schema.getWhiteSpaceElements():{};do{if(e=a.nodeType,1===e){var l=a.getAttribute("data-mce-bogus");if(l){a=h.next("all"===l);continue}if(i=a.nodeName.toLowerCase(),b&&b[i]){if("br"===i){k++,a=h.next();continue}return!1}for(d=j.getAttribs(a),c=d.length;c--;)if(i=d[c].nodeName,"name"===i||"data-mce-bookmark"===i)return!1}if(8==e)return!1;if(3===e&&!v.test(a.nodeValue))return!1;if(3===e&&a.parentNode&&g[a.parentNode.nodeName]&&v.test(a.nodeValue))return!1;a=h.next()}while(a)}return k<=1},createRng:function(){var a=this.doc;return a.createRange?a.createRange():new c(this)},nodeIndex:n,split:function(a,b,c){function d(a){function b(a){var b=a.previousSibling&&"SPAN"==a.previousSibling.nodeName,c=a.nextSibling&&"SPAN"==a.nextSibling.nodeName;return b&&c}var c,e=a.childNodes,f=a.nodeType;if(1!=f||"bookmark"!=a.getAttribute("data-mce-type")){for(c=e.length-1;c>=0;c--)d(e[c]);if(9!=f){if(3==f&&a.nodeValue.length>0){var g=s(a.nodeValue).length;if(!h.isBlock(a.parentNode)||g>0||0===g&&b(a))return}else if(1==f&&(e=a.childNodes,1==e.length&&e[0]&&1==e[0].nodeType&&"bookmark"==e[0].getAttribute("data-mce-type")&&a.parentNode.insertBefore(e[0],a),e.length||/^(br|hr|input|img)$/i.test(a.nodeName)))return;h.remove(a)}return a}}var e,f,g,h=this,i=h.createRng();if(a&&b)return i.setStart(a.parentNode,h.nodeIndex(a)),i.setEnd(b.parentNode,h.nodeIndex(b)),e=i.extractContents(),i=h.createRng(),i.setStart(b.parentNode,h.nodeIndex(b)+1),i.setEnd(a.parentNode,h.nodeIndex(a)+1),f=i.extractContents(),g=a.parentNode,g.insertBefore(d(e),a),c?g.insertBefore(c,a):g.insertBefore(b,a),g.insertBefore(d(f),a),h.remove(a),c||b},bind:function(a,b,c,d){var e=this;if(k.isArray(a)){for(var f=a.length;f--;)a[f]=e.bind(a[f],b,c,d);return a}return!e.settings.collect||a!==e.doc&&a!==e.win||e.boundEvents.push([a,b,c,d]),e.events.bind(a,b,c,d||e)},unbind:function(a,b,c){var d,e=this;if(k.isArray(a)){for(d=a.length;d--;)a[d]=e.unbind(a[d],b,c);return a}if(e.boundEvents&&(a===e.doc||a===e.win))for(d=e.boundEvents.length;d--;){var f=e.boundEvents[d];a!=f[0]||b&&b!=f[1]||c&&c!=f[2]||this.events.unbind(f[0],f[1],f[2])}return this.events.unbind(a,b,c)},fire:function(a,b,c){return this.events.fire(a,b,c)},getContentEditable:function(a){var b;return a&&1==a.nodeType?(b=a.getAttribute("data-mce-contenteditable"),b&&"inherit"!==b?b:"inherit"!==a.contentEditable?a.contentEditable:null):null},getContentEditableParent:function(a){for(var b=this.getRoot(),c=null;a&&a!==b&&(c=this.getContentEditable(a),null===c);a=a.parentNode);return c},destroy:function(){var a=this;if(a.boundEvents){for(var b=a.boundEvents.length;b--;){var c=a.boundEvents[b];this.events.unbind(c[0],c[1],c[2])}a.boundEvents=null}d.setDocument&&d.setDocument(),a.win=a.doc=a.root=a.events=a.frag=null},isChildOf:function(a,b){for(;a;){if(b===a)return!0;a=a.parentNode}return!1},dumpRng:function(a){return"startContainer: "+a.startContainer.nodeName+", startOffset: "+a.startOffset+", endContainer: "+a.endContainer.nodeName+", endOffset: "+a.endOffset},_findSib:function(a,b,c){var d=this,e=b;if(a)for("string"==typeof e&&(e=function(a){return d.is(a,b)}),a=a[c];a;a=a[c])if(e(a))return a;return null}},o.DOM=new o(document),o.nodeIndex=n,o}),g("tinymce.core.dom.ScriptLoader",["tinymce.core.dom.DOMUtils","tinymce.core.util.Tools"],function(a,b){function c(){function a(a,c,e){function f(){k.remove(j),i&&(i.onreadystatechange=i.onload=i=null),c()}function h(){g(e)?e():"undefined"!=typeof console&&console.log&&console.log("Failed to load script: "+a)}var i,j,k=d;j=k.uniqueId(),i=document.createElement("script"),i.id=j,i.type="text/javascript",i.src=b._addCacheSuffix(a),"onreadystatechange"in i?i.onreadystatechange=function(){/loaded|complete/.test(i.readyState)&&f()}:i.onload=f,i.onerror=h,(document.getElementsByTagName("head")[0]||document.body).appendChild(i)}var c,h=0,i=1,j=2,k=3,l={},m=[],n={},o=[],p=0;this.isDone=function(a){return l[a]==j},this.markDone=function(a){l[a]=j},this.add=this.load=function(a,b,d,e){var f=l[a];f==c&&(m.push(a),l[a]=h),b&&(n[a]||(n[a]=[]),n[a].push({success:b,failure:e,scope:d||this}))},this.remove=function(a){delete l[a],delete n[a]},this.loadQueue=function(a,b,c){this.loadScripts(m,a,b,c)},this.loadScripts=function(b,d,h,m){function q(a,b){e(n[b],function(b){g(b[a])&&b[a].call(b.scope)}),n[b]=c}var r,s=[];o.push({success:d,failure:m,scope:h||this}),(r=function(){var c=f(b);b.length=0,e(c,function(b){return l[b]===j?void q("success",b):l[b]===k?void q("failure",b):void(l[b]!==i&&(l[b]=i,p++,a(b,function(){l[b]=j,p--,q("success",b),r()},function(){l[b]=k,p--,s.push(b),q("failure",b),r()})))}),p||(e(o,function(a){0===s.length?g(a.success)&&a.success.call(a.scope):g(a.failure)&&a.failure.call(a.scope,s)}),o.length=0)})()}}var d=a.DOM,e=b.each,f=b.grep,g=function(a){return"function"==typeof a};return c.ScriptLoader=new c,c}),g("tinymce.core.AddOnManager",["tinymce.core.dom.ScriptLoader","tinymce.core.util.Tools"],function(a,b){function c(){var a=this;a.items=[],a.urls={},a.lookup={}}var d=b.each;return c.prototype={get:function(a){if(this.lookup[a])return this.lookup[a].instance},dependencies:function(a){var b;return this.lookup[a]&&(b=this.lookup[a].dependencies),b||[]},requireLangPack:function(b,d){var e=c.language;if(e&&c.languageLoad!==!1){if(d)if(d=","+d+",",d.indexOf(","+e.substr(0,2)+",")!=-1)e=e.substr(0,2);else if(d.indexOf(","+e+",")==-1)return;a.ScriptLoader.add(this.urls[b]+"/langs/"+e+".js")}},add:function(a,b,c){return this.items.push(b),this.lookup[a]={instance:b,dependencies:c},b},remove:function(a){delete this.urls[a],delete this.lookup[a]},createUrl:function(a,b){return"object"==typeof b?b:{prefix:a.prefix,resource:b,suffix:a.suffix}},addComponents:function(b,c){var e=this.urls[b];d(c,function(b){a.ScriptLoader.add(e+"/"+b)})},load:function(b,e,f,g,h){function i(){var c=j.dependencies(b);d(c,function(a){var b=j.createUrl(e,a);j.load(b.resource,b,void 0,void 0)}),f&&(g?f.call(g):f.call(a))}var j=this,k=e;j.urls[b]||("object"==typeof e&&(k=e.prefix+e.resource+e.suffix),0!==k.indexOf("/")&&k.indexOf("://")==-1&&(k=c.baseURL+"/"+k),j.urls[b]=k.substring(0,k.lastIndexOf("/")),j.lookup[b]?i():a.ScriptLoader.add(k,i,g,h))}},c.PluginManager=new c,c.ThemeManager=new c,c}),g("ephox.katamari.api.Cell",[],function(){var a=function(b){var c=b,d=function(){return c},e=function(a){c=a},f=function(){return a(d())};return{get:d,set:e,clone:f}};return a}),g("tinymce.core.dom.NodeType",[],function(){function a(a){return function(b){return!!b&&b.nodeType==a}}function b(a){return a=a.toLowerCase().split(" "),function(b){var c,d;if(b&&b.nodeType)for(d=b.nodeName.toLowerCase(),c=0;c<a.length;c++)if(d===a[c])return!0;return!1}}function c(a,b){return b=b.toLowerCase().split(" "),function(c){var d,e;if(i(c))for(d=0;d<b.length;d++)if(e=c.ownerDocument.defaultView.getComputedStyle(c,null).getPropertyValue(a),e===b[d])return!0;return!1}}function d(a,b){return function(c){return i(c)&&c[a]===b}}function e(a,b){return function(b){return i(b)&&b.hasAttribute(a)}}function f(a,b){return function(c){return i(c)&&c.getAttribute(a)===b}}function g(a){return i(a)&&a.hasAttribute("data-mce-bogus")}function h(a){return function(b){if(i(b)){if(b.contentEditable===a)return!0;if(b.getAttribute("data-mce-contenteditable")===a)return!0}return!1}}var i=a(1);return{isText:a(3),isElement:i,isComment:a(8),isBr:b("br"),isContentEditableTrue:h("true"),isContentEditableFalse:h("false"),matchNodeNames:b,hasPropValue:d,hasAttribute:e,hasAttributeValue:f,matchStyleValues:c,isBogus:g}}),g("tinymce.core.util.Fun",[],function(){function a(a){return function(){return a}}function b(a){return function(b){return!a(b)}}function c(a,b){return function(c){return a(b(c))}}function d(){var a=h.call(arguments);return function(b){for(var c=0;c<a.length;c++)if(a[c](b))return!0;return!1}}function e(){var a=h.call(arguments);return function(b){for(var c=0;c<a.length;c++)if(!a[c](b))return!1;return!0}}function f(a){var b=h.call(arguments);return b.length-1>=a.length?a.apply(this,b.slice(1)):function(){var a=b.concat([].slice.call(arguments));return f.apply(this,a)}}function g(){}var h=[].slice;return{constant:a,negate:b,and:e,or:d,curry:f,compose:c,noop:g}}),g("tinymce.core.text.Zwsp",[],function(){var a="\ufeff",b=function(b){return b===a},c=function(b){return b.replace(new RegExp(a,"g"),"")};return{isZwsp:b,ZWSP:a,trim:c}}),g("tinymce.core.caret.CaretContainer",["tinymce.core.dom.NodeType","tinymce.core.text.Zwsp"],function(a,b){function c(a){return n(a)&&(a=a.parentNode),m(a)&&a.hasAttribute("data-mce-caret")}function d(a){return n(a)&&b.isZwsp(a.data)}function e(a){return c(a)||d(a)}function f(a,c){var d,f,g,h;if(d=a.ownerDocument,g=d.createTextNode(b.ZWSP),h=a.parentNode,c){if(f=a.previousSibling,n(f)){if(e(f))return f;if(j(f))return f.splitText(f.data.length-1)}h.insertBefore(g,a)}else{if(f=a.nextSibling,n(f)){if(e(f))return f;if(i(f))return f.splitText(1),f}a.nextSibling?h.insertBefore(g,a.nextSibling):h.appendChild(g)}return g}function g(){var a=document.createElement("br");return a.setAttribute("data-mce-bogus","1"),a}function h(a,b,c){var d,e,f;return d=b.ownerDocument,e=d.createElement(a),e.setAttribute("data-mce-caret",c?"before":"after"),e.setAttribute("data-mce-bogus","all"),e.appendChild(g()),f=b.parentNode,c?f.insertBefore(e,b):b.nextSibling?f.insertBefore(e,b.nextSibling):f.appendChild(e),e}function i(a){return n(a)&&a.data[0]==b.ZWSP}function j(a){return n(a)&&a.data[a.data.length-1]==b.ZWSP}function k(b){var c=b.getElementsByTagName("br"),d=c[c.length-1];a.isBogus(d)&&d.parentNode.removeChild(d)}function l(a){return a&&a.hasAttribute("data-mce-caret")?(k(a),a.removeAttribute("data-mce-caret"),a.removeAttribute("data-mce-bogus"),a.removeAttribute("style"),a.removeAttribute("_moz_abspos"),a):null}var m=a.isElement,n=a.isText,o=function(b){return b.firstChild!==b.lastChild||!a.isBr(b.firstChild)},p=function(c){if(a.isText(c)){var d=c.data;return d.length>0&&d.charAt(0)!==b.ZWSP&&c.insertData(0,b.ZWSP),c}return null},q=function(c){if(a.isText(c)){var d=c.data;return d.length>0&&d.charAt(d.length-1)!==b.ZWSP&&c.insertData(d.length,b.ZWSP),c}return null},r=function(c){return c&&a.isText(c.container())&&c.container().data.charAt(c.offset())===b.ZWSP},s=function(c){return c&&a.isText(c.container())&&c.container().data.charAt(c.offset()-1)===b.ZWSP};return{isCaretContainer:e,isCaretContainerBlock:c,isCaretContainerInline:d,showCaretContainerBlock:l,insertInline:f,prependInline:p,appendInline:q,isBeforeInline:r,isAfterInline:s,insertBlock:h,hasContent:o,startsWithCaretContainer:i,endsWithCaretContainer:j}}),g("tinymce.core.dom.RangeUtils",["tinymce.core.util.Tools","tinymce.core.dom.TreeWalker","tinymce.core.dom.NodeType","tinymce.core.dom.Range","tinymce.core.caret.CaretContainer"],function(a,b,c,d,e){function f(a){return q(a)||r(a)}function g(a,b){var c=a.childNodes;return b--,b>c.length-1?b=c.length-1:b<0&&(b=0),c[b]||a}function h(a,b,c){for(;a&&a!==b;){if(c(a))return a;a=a.parentNode}return null}function i(a,b,c){return null!==h(a,b,c)}function j(a,b,c){return i(a,b,function(a){return a.nodeName===c})}function k(a){return"_mce_caret"===a.id}function l(a,b){return s(a)&&i(a,b,k)===!1}function m(a){this.walk=function(b,c){function d(a){var b;return b=a[0],3===b.nodeType&&b===q&&r>=b.nodeValue.length&&a.splice(0,1), -b=a[a.length-1],0===t&&a.length>0&&b===s&&3===b.nodeType&&a.splice(a.length-1,1),a}function e(a,b,c){for(var d=[];a&&a!=c;a=a[b])d.push(a);return d}function f(a,b){do{if(a.parentNode==b)return a;a=a.parentNode}while(a)}function h(a,b,f){var g=f?"nextSibling":"previousSibling";for(l=a,m=l.parentNode;l&&l!=b;l=m)m=l.parentNode,n=e(l==a?l:l[g],g),n.length&&(f||n.reverse(),c(d(n)))}var i,j,k,l,m,n,o,q=b.startContainer,r=b.startOffset,s=b.endContainer,t=b.endOffset;if(o=a.select("td[data-mce-selected],th[data-mce-selected]"),o.length>0)return void p(o,function(a){c([a])});if(1==q.nodeType&&q.hasChildNodes()&&(q=q.childNodes[r]),1==s.nodeType&&s.hasChildNodes()&&(s=g(s,t)),q==s)return c(d([q]));for(i=a.findCommonAncestor(q,s),l=q;l;l=l.parentNode){if(l===s)return h(q,i,!0);if(l===i)break}for(l=s;l;l=l.parentNode){if(l===q)return h(s,i);if(l===i)break}j=f(q,i)||q,k=f(s,i)||s,h(q,j,!0),n=e(j==q?j:j.nextSibling,"nextSibling",k==s?k.nextSibling:k),n.length&&c(d(n)),h(s,k)},this.split=function(a){function b(a,b){return a.splitText(b)}var c=a.startContainer,d=a.startOffset,e=a.endContainer,f=a.endOffset;return c==e&&3==c.nodeType?d>0&&d<c.nodeValue.length&&(e=b(c,d),c=e.previousSibling,f>d?(f-=d,c=e=b(e,f).previousSibling,f=e.nodeValue.length,d=0):f=0):(3==c.nodeType&&d>0&&d<c.nodeValue.length&&(c=b(c,d),d=0),3==e.nodeType&&f>0&&f<e.nodeValue.length&&(e=b(e,f).previousSibling,f=e.nodeValue.length)),{startContainer:c,startOffset:d,endContainer:e,endOffset:f}},this.normalize=function(c){function d(d){function g(a){return a&&/^(TD|TH|CAPTION)$/.test(a.nodeName)}function h(c,d){for(var e=new b(c,a.getParent(c.parentNode,a.isBlock)||w);c=e[d?"prev":"next"]();)if("BR"===c.nodeName)return!0}function i(a){for(;a&&a!=w;){if(r(a))return!0;a=a.parentNode}return!1}function k(a,b){return a.previousSibling&&a.previousSibling.nodeName==b}function m(c,d){var g,h,i;if(d=d||n,i=a.getParent(d.parentNode,a.isBlock)||w,c&&"BR"==d.nodeName&&v&&a.isEmpty(i))return n=d.parentNode,o=a.nodeIndex(d),void(f=!0);for(g=new b(d,i);q=g[c?"prev":"next"]();){if("false"===a.getContentEditableParent(q)||l(q,a.getRoot()))return;if(3===q.nodeType&&q.nodeValue.length>0)return void(j(q,w,"A")===!1&&(n=q,o=c?q.nodeValue.length:0,f=!0));if(a.isBlock(q)||t[q.nodeName.toLowerCase()])return;h=q}e&&h&&(n=h,f=!0,o=0)}var n,o,p,q,t,u,v,w=a.getRoot();if(n=c[(d?"start":"end")+"Container"],o=c[(d?"start":"end")+"Offset"],v=1==n.nodeType&&o===n.childNodes.length,t=a.schema.getNonEmptyElements(),u=d,!s(n)){if(1==n.nodeType&&o>n.childNodes.length-1&&(u=!1),9===n.nodeType&&(n=a.getRoot(),o=0),n===w){if(u&&(q=n.childNodes[o>0?o-1:0])){if(s(q))return;if(t[q.nodeName]||"TABLE"==q.nodeName)return}if(n.hasChildNodes()){if(o=Math.min(!u&&o>0?o-1:o,n.childNodes.length-1),n=n.childNodes[o],o=0,!e&&n===w.lastChild&&"TABLE"===n.nodeName)return;if(i(n)||s(n))return;if(n.hasChildNodes()&&!/TABLE/.test(n.nodeName)){q=n,p=new b(n,w);do{if(r(q)||s(q)){f=!1;break}if(3===q.nodeType&&q.nodeValue.length>0){o=u?0:q.nodeValue.length,n=q,f=!0;break}if(t[q.nodeName.toLowerCase()]&&!g(q)){o=a.nodeIndex(q),n=q.parentNode,"IMG"!==q.nodeName&&"PRE"!==q.nodeName||u||o++,f=!0;break}}while(q=u?p.next():p.prev())}}}e&&(3===n.nodeType&&0===o&&m(!0),1===n.nodeType&&(q=n.childNodes[o],q||(q=n.childNodes[o-1]),!q||"BR"!==q.nodeName||k(q,"A")||h(q)||h(q,!0)||m(!0,q))),u&&!e&&3===n.nodeType&&o===n.nodeValue.length&&m(!1),f&&c["set"+(d?"Start":"End")](n,o)}}var e,f=!1;return e=c.collapsed,d(!0),e||d(),f&&e&&c.collapse(!0),f}}function n(b,c,d){var e,f,g;if(e=d.elementFromPoint(b,c),f=d.body.createTextRange(),e&&"HTML"!=e.tagName||(e=d.body),f.moveToElementText(e),g=a.toArray(f.getClientRects()),g=g.sort(function(a,b){return a=Math.abs(Math.max(a.top-c,a.bottom-c)),b=Math.abs(Math.max(b.top-c,b.bottom-c)),a-b}),g.length>0){c=(g[0].bottom+g[0].top)/2;try{return f.moveToPoint(b,c),f.collapse(!0),f}catch(h){}}return null}function o(a,b){var c=a&&a.parentElement?a.parentElement():null;return r(h(c,b,f))?null:a}var p=a.each,q=c.isContentEditableTrue,r=c.isContentEditableFalse,s=e.isCaretContainer;return m.compareRanges=function(a,b){if(a&&b){if(!a.item&&!a.duplicate)return a.startContainer==b.startContainer&&a.startOffset==b.startOffset;if(a.item&&b.item&&a.item(0)===b.item(0))return!0;if(a.isEqual&&b.isEqual&&b.isEqual(a))return!0}return!1},m.getCaretRangeFromPoint=function(a,b,c){var d,e;if(c.caretPositionFromPoint)e=c.caretPositionFromPoint(a,b),d=c.createRange(),d.setStart(e.offsetNode,e.offset),d.collapse(!0);else if(c.caretRangeFromPoint)d=c.caretRangeFromPoint(a,b);else if(c.body.createTextRange){d=c.body.createTextRange();try{d.moveToPoint(a,b),d.collapse(!0)}catch(f){d=n(a,b,c)}return o(d,c.body)}return d},m.getSelectedNode=function(a){var b=a.startContainer,c=a.startOffset;return b.hasChildNodes()&&a.endOffset==c+1?b.childNodes[c]:null},m.getNode=function(a,b){return 1===a.nodeType&&a.hasChildNodes()&&(b>=a.childNodes.length&&(b=a.childNodes.length-1),a=a.childNodes[b]),a},m}),g("tinymce.core.caret.CaretCandidate",["tinymce.core.dom.NodeType","tinymce.core.util.Arr","tinymce.core.caret.CaretContainer"],function(a,b,c){function d(a){return!p(a)&&(l(a)?!m(a.parentNode):n(a)||k(a)||o(a)||j(a))}function e(a,b){for(a=a.parentNode;a&&a!=b;a=a.parentNode){if(j(a))return!1;if(i(a))return!0}return!0}function f(a){return!!j(a)&&b.reduce(a.getElementsByTagName("*"),function(a,b){return a||i(b)},!1)!==!0}function g(a){return n(a)||f(a)}function h(a,b){return d(a)&&e(a,b)}var i=a.isContentEditableTrue,j=a.isContentEditableFalse,k=a.isBr,l=a.isText,m=a.matchNodeNames("script style textarea"),n=a.matchNodeNames("img input textarea hr iframe video audio object"),o=a.matchNodeNames("table"),p=c.isCaretContainer;return{isCaretCandidate:d,isInEditable:e,isAtomic:g,isEditableCaretCandidate:h}}),g("tinymce.core.geom.ClientRect",[],function(){function a(a){return a?{left:k(a.left),top:k(a.top),bottom:k(a.bottom),right:k(a.right),width:k(a.width),height:k(a.height)}:{left:0,top:0,bottom:0,right:0,width:0,height:0}}function b(b,c){return b=a(b),c?b.right=b.left:(b.left=b.left+b.width,b.right=b.left),b.width=0,b}function c(a,b){return a.left===b.left&&a.top===b.top&&a.bottom===b.bottom&&a.right===b.right}function d(a,b,c){return a>=0&&a<=Math.min(b.height,c.height)/2}function e(a,b){return a.bottom-a.height/2<b.top||!(a.top>b.bottom)&&d(b.top-a.bottom,a,b)}function f(a,b){return a.top>b.bottom||!(a.bottom<b.top)&&d(b.bottom-a.top,a,b)}function g(a,b){return a.left<b.left}function h(a,b){return a.right>b.right}function i(a,b){return e(a,b)?-1:f(a,b)?1:g(a,b)?-1:h(a,b)?1:0}function j(a,b,c){return b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom}var k=Math.round;return{clone:a,collapse:b,isEqual:c,isAbove:e,isBelow:f,isLeft:g,isRight:h,compare:i,containsXY:j}}),g("tinymce.core.text.ExtendingChar",[],function(){function a(a){return"string"==typeof a&&a.charCodeAt(0)>=768&&b.test(a)}var b=new RegExp("[\u0300-\u036f\u0483-\u0487\u0488-\u0489\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u0610-\u061a\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e3-\u0902\u093a\u093c\u0941-\u0948\u094d\u0951-\u0957\u0962-\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2-\u09e3\u0a01-\u0a02\u0a3c\u0a41-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a70-\u0a71\u0a75\u0a81-\u0a82\u0abc\u0ac1-\u0ac5\u0ac7-\u0ac8\u0acd\u0ae2-\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62-\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c00\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c62-\u0c63\u0c81\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc-\u0ccd\u0cd5-\u0cd6\u0ce2-\u0ce3\u0d01\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62-\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb-\u0ebc\u0ec8-\u0ecd\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039-\u103a\u103d-\u103e\u1058-\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108d\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17b4-\u17b5\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193b\u1a17-\u1a18\u1a1b\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1ab0-\u1abd\u1abe\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80-\u1b81\u1ba2-\u1ba5\u1ba8-\u1ba9\u1bab-\u1bad\u1be6\u1be8-\u1be9\u1bed\u1bef-\u1bf1\u1c2c-\u1c33\u1c36-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1cf4\u1cf8-\u1cf9\u1dc0-\u1df5\u1dfc-\u1dff\u200c-\u200d\u20d0-\u20dc\u20dd-\u20e0\u20e1\u20e2-\u20e4\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302d\u302e-\u302f\u3099-\u309a\ua66f\ua670-\ua672\ua674-\ua67d\ua69e-\ua69f\ua6f0-\ua6f1\ua802\ua806\ua80b\ua825-\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\ua9e5\uaa29-\uaa2e\uaa31-\uaa32\uaa35-\uaa36\uaa43\uaa4c\uaa7c\uaab0\uaab2-\uaab4\uaab7-\uaab8\uaabe-\uaabf\uaac1\uaaec-\uaaed\uaaf6\uabe5\uabe8\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\uff9e-\uff9f]");return{isExtendingChar:a}}),g("tinymce.core.caret.CaretPosition",["tinymce.core.util.Fun","tinymce.core.dom.NodeType","tinymce.core.dom.DOMUtils","tinymce.core.dom.RangeUtils","tinymce.core.caret.CaretCandidate","tinymce.core.geom.ClientRect","tinymce.core.text.ExtendingChar"],function(a,b,c,d,e,f,g){function h(a){return"createRange"in a?a.createRange():c.DOM.createRng()}function i(a){return a&&/[\r\n\t ]/.test(a)}function j(a){var b,c=a.startContainer,d=a.startOffset;return!!(i(a.toString())&&r(c.parentNode)&&(b=c.data,i(b[d-1])||i(b[d+1])))}function k(a){function b(a){var b,c=a.ownerDocument,d=h(c),e=c.createTextNode("\xa0"),g=a.parentNode;return g.insertBefore(e,a),d.setStart(e,0),d.setEnd(e,1),b=f.clone(d.getBoundingClientRect()),g.removeChild(e),b}function c(a){var c,d;return d=a.getClientRects(),c=d.length>0?f.clone(d[0]):f.clone(a.getBoundingClientRect()),t(a)&&0===c.left?b(a):c}function d(a,b){return a=f.collapse(a,b),a.width=1,a.right=a.left+1,a}function e(a){0!==a.height&&(n.length>0&&f.isEqual(a,n[n.length-1])||n.push(a))}function i(a,b){var f=h(a.ownerDocument);if(b<a.data.length){if(g.isExtendingChar(a.data[b]))return n;if(g.isExtendingChar(a.data[b-1])&&(f.setStart(a,b),f.setEnd(a,b+1),!j(f)))return e(d(c(f),!1)),n}b>0&&(f.setStart(a,b-1),f.setEnd(a,b),j(f)||e(d(c(f),!1))),b<a.data.length&&(f.setStart(a,b),f.setEnd(a,b+1),j(f)||e(d(c(f),!0)))}var k,l,n=[];if(s(a.container()))return i(a.container(),a.offset()),n;if(m(a.container()))if(a.isAtEnd())l=v(a.container(),a.offset()),s(l)&&i(l,l.data.length),q(l)&&!t(l)&&e(d(c(l),!1));else{if(l=v(a.container(),a.offset()),s(l)&&i(l,0),q(l)&&a.isAtEnd())return e(d(c(l),!1)),n;k=v(a.container(),a.offset()-1),q(k)&&!t(k)&&(o(k)||o(l)||!q(l))&&e(d(c(k),!1)),q(l)&&e(d(c(l),!0))}return n}function l(b,c,d){function e(){return s(b)?0===c:0===c}function f(){return s(b)?c>=b.data.length:c>=b.childNodes.length}function g(){var a;return a=h(b.ownerDocument),a.setStart(b,c),a.setEnd(b,c),a}function i(){return d||(d=k(new l(b,c))),d}function j(){return i().length>0}function m(a){return a&&b===a.container()&&c===a.offset()}function n(a){return v(b,a?c-1:c)}return{container:a.constant(b),offset:a.constant(c),toRange:g,getClientRects:i,isVisible:j,isAtStart:e,isAtEnd:f,isEqual:m,getNode:n}}var m=b.isElement,n=e.isCaretCandidate,o=b.matchStyleValues("display","block table"),p=b.matchStyleValues("float","left right"),q=a.and(m,n,a.negate(p)),r=a.negate(b.matchStyleValues("white-space","pre pre-line pre-wrap")),s=b.isText,t=b.isBr,u=c.nodeIndex,v=d.getNode;return l.fromRangeStart=function(a){return new l(a.startContainer,a.startOffset)},l.fromRangeEnd=function(a){return new l(a.endContainer,a.endOffset)},l.after=function(a){return new l(a.parentNode,u(a)+1)},l.before=function(a){return new l(a.parentNode,u(a))},l.isAtStart=function(a){return!!a&&a.isAtStart()},l.isAtEnd=function(a){return!!a&&a.isAtEnd()},l.isTextPosition=function(a){return!!a&&b.isText(a.container())},l}),g("tinymce.core.caret.CaretBookmark",["tinymce.core.dom.NodeType","tinymce.core.dom.DOMUtils","tinymce.core.util.Fun","tinymce.core.util.Arr","tinymce.core.caret.CaretPosition"],function(a,b,c,d,e){function f(a){var b=a.parentNode;return r(b)?f(b):b}function g(a){return a?d.reduce(a.childNodes,function(a,b){return r(b)&&"BR"!=b.nodeName?a=a.concat(g(b)):a.push(b),a},[]):[]}function h(a,b){for(;(a=a.previousSibling)&&q(a);)b+=a.data.length;return b}function i(a){return function(b){return a===b}}function j(b){var c,e,h;return c=g(f(b)),e=d.findIndex(c,i(b),b),c=c.slice(0,e+1),h=d.reduce(c,function(a,b,d){return q(b)&&q(c[d-1])&&a++,a},0),c=d.filter(c,a.matchNodeNames(b.nodeName)),e=d.findIndex(c,i(b),b),e-h}function k(a){var b;return b=q(a)?"text()":a.nodeName.toLowerCase(),b+"["+j(a)+"]"}function l(a,b,c){var d=[];for(b=b.parentNode;b!=a&&(!c||!c(b));b=b.parentNode)d.push(b);return d}function m(b,e){var f,g,i,j,m,n=[];return f=e.container(),g=e.offset(),q(f)?i=h(f,g):(j=f.childNodes,g>=j.length?(i="after",g=j.length-1):i="before",f=j[g]),n.push(k(f)),m=l(b,f),m=d.filter(m,c.negate(a.isBogus)),n=n.concat(d.map(m,function(a){return k(a)})),n.reverse().join("/")+","+i}function n(b,c,e){var f=g(b);return f=d.filter(f,function(a,b){return!q(a)||!q(f[b-1])}),f=d.filter(f,a.matchNodeNames(c)),f[e]}function o(a,b){for(var c,d=a,f=0;q(d);){if(c=d.data.length,b>=f&&b<=f+c){a=d,b-=f;break}if(!q(d.nextSibling)){a=d,b=c;break}f+=c,d=d.nextSibling}return b>a.data.length&&(b=a.data.length),new e(a,b)}function p(a,b){var c,f,g;return b?(c=b.split(","),b=c[0].split("/"),g=c.length>1?c[1]:"before",f=d.reduce(b,function(a,b){return(b=/([\w\-\(\)]+)\[([0-9]+)\]/.exec(b))?("text()"===b[1]&&(b[1]="#text"),n(a,b[1],parseInt(b[2],10))):null},a),f?q(f)?o(f,parseInt(g,10)):(g="after"===g?s(f)+1:s(f),new e(f.parentNode,g)):null):null}var q=a.isText,r=a.isBogus,s=b.nodeIndex;return{create:m,resolve:p}}),g("tinymce.core.dom.BookmarkManager",["tinymce.core.caret.CaretBookmark","tinymce.core.caret.CaretContainer","tinymce.core.caret.CaretPosition","tinymce.core.dom.NodeType","tinymce.core.dom.RangeUtils","tinymce.core.Env","tinymce.core.text.Zwsp","tinymce.core.util.Tools"],function(a,b,c,d,e,f,g,h){function i(g){var i=g.dom;this.getBookmark=function(f,m){function n(a,b){var c=0;return h.each(i.select(a),function(a){if("all"!==a.getAttribute("data-mce-bogus"))return a!=b&&void c++}),c}function o(a){function b(b){var c,d,e,f=b?"start":"end";c=a[f+"Container"],d=a[f+"Offset"],1==c.nodeType&&"TR"==c.nodeName&&(e=c.childNodes,c=e[Math.min(b?d:d-1,e.length-1)],c&&(d=b?0:c.childNodes.length,a["set"+(b?"Start":"End")](c,d)))}return b(!0),b(),a}function p(a){function b(a,b){var d,e=a[b?"startContainer":"endContainer"],f=a[b?"startOffset":"endOffset"],g=[],h=0;for(3===e.nodeType?g.push(m?k(e,f):f):(d=e.childNodes,f>=d.length&&d.length&&(h=1,f=Math.max(0,d.length-1)),g.push(i.nodeIndex(d[f],m)+h));e&&e!=c;e=e.parentNode)g.push(i.nodeIndex(e,m));return g}var c=i.getRoot(),d={};return d.start=b(a,!0),g.isCollapsed()||(d.end=b(a)),d}function q(a){function c(a,c){var f;if(d.isElement(a)&&(a=e.getNode(a,c),j(a)))return a;if(b.isCaretContainer(a)){if(d.isText(a)&&b.isCaretContainerBlock(a)&&(a=a.parentNode),f=a.previousSibling,j(f))return f;if(f=a.nextSibling,j(f))return f}}return c(a.startContainer,a.startOffset)||c(a.endContainer,a.endOffset)}var r,s,t,u,v,w,x,y="";if(2==f)return w=g.getNode(),v=w?w.nodeName:null,r=g.getRng(),j(w)||"IMG"==v?{name:v,index:n(v,w)}:g.tridentSel?g.tridentSel.getBookmark(f):(w=q(r),w?(v=w.tagName,{name:v,index:n(v,w)}):p(r));if(3==f)return r=g.getRng(),{start:a.create(i.getRoot(),c.fromRangeStart(r)),end:a.create(i.getRoot(),c.fromRangeEnd(r))};if(f)return{rng:g.getRng()};if(r=g.getRng(),t=i.uniqueId(),u=g.isCollapsed(),x="overflow:hidden;line-height:0px",r.duplicate||r.item){if(r.item)return w=r.item(0),v=w.nodeName,{name:v,index:n(v,w)};s=r.duplicate();try{r.collapse(),r.pasteHTML('<span data-mce-type="bookmark" id="'+t+'_start" style="'+x+'">'+y+"</span>"),u||(s.collapse(!1),r.moveToElementText(s.parentElement()),0===r.compareEndPoints("StartToEnd",s)&&s.move("character",-1),s.pasteHTML('<span data-mce-type="bookmark" id="'+t+'_end" style="'+x+'">'+y+"</span>"))}catch(z){return null}}else{if(w=g.getNode(),v=w.nodeName,"IMG"==v)return{name:v,index:n(v,w)};if(s=o(r.cloneRange()),!u){s.collapse(!1);var A=i.create("span",{"data-mce-type":"bookmark",id:t+"_end",style:x},y);s.insertNode(A),l(A.nextSibling)}r=o(r),r.collapse(!0);var B=i.create("span",{"data-mce-type":"bookmark",id:t+"_start",style:x},y);r.insertNode(B),l(B.previousSibling)}return g.moveToBookmark({id:t,keep:1}),{id:t}},this.moveToBookmark=function(b){function c(a){var c,d,e,f,g=b[a?"start":"end"];if(g){for(e=g[0],d=l,c=g.length-1;c>=1;c--){if(f=d.childNodes,g[c]>f.length-1)return;d=f[g[c]]}3===d.nodeType&&(e=Math.min(g[0],d.nodeValue.length)),1===d.nodeType&&(e=Math.min(g[0],d.childNodes.length)),a?k.setStart(d,e):k.setEnd(d,e)}return!0}function d(a){var c,d,e,g,j=i.get(b.id+"_"+a),k=b.keep;if(j&&(c=j.parentNode,"start"==a?(k?(c=j.firstChild,d=1):d=i.nodeIndex(j),m=n=c,o=p=d):(k?(c=j.firstChild,d=1):d=i.nodeIndex(j),n=c,p=d),!k)){for(g=j.previousSibling,e=j.nextSibling,h.each(h.grep(j.childNodes),function(a){3==a.nodeType&&(a.nodeValue=a.nodeValue.replace(/\uFEFF/g,""))});j=i.get(b.id+"_"+a);)i.remove(j,1);g&&e&&g.nodeType==e.nodeType&&3==g.nodeType&&!f.opera&&(d=g.nodeValue.length,g.appendData(e.nodeValue),i.remove(e),"start"==a?(m=n=g,o=p=d):(n=g,p=d))}}function e(a){return!i.isBlock(a)||a.innerHTML||f.ie||(a.innerHTML='<br data-mce-bogus="1" />'),a}function j(){var c,d;return c=i.createRng(),d=a.resolve(i.getRoot(),b.start),c.setStart(d.container(),d.offset()),d=a.resolve(i.getRoot(),b.end),c.setEnd(d.container(),d.offset()),c}var k,l,m,n,o,p;if(b)if(h.isArray(b.start)){if(k=i.createRng(),l=i.getRoot(),g.tridentSel)return g.tridentSel.moveToBookmark(b);c(!0)&&c()&&g.setRng(k)}else"string"==typeof b.start?g.setRng(j(b)):b.id?(d("start"),d("end"),m&&(k=i.createRng(),k.setStart(e(m),o),k.setEnd(e(n),p),g.setRng(k))):b.name?g.select(i.select(b.name)[b.index]):b.rng&&g.setRng(b.rng)}}var j=d.isContentEditableFalse,k=function(a,b){var c,d;for(d=g.trim(a.data.slice(0,b)).length,c=a.previousSibling;c&&3===c.nodeType;c=c.previousSibling)d+=g.trim(c.data).length;return d},l=function(a){d.isText(a)&&0===a.data.length&&a.parentNode.removeChild(a)};return i.isBookmarkNode=function(a){return a&&"SPAN"===a.tagName&&"bookmark"===a.getAttribute("data-mce-type")},i}),g("tinymce.core.caret.CaretUtils",["tinymce.core.util.Fun","tinymce.core.dom.TreeWalker","tinymce.core.dom.NodeType","tinymce.core.caret.CaretPosition","tinymce.core.caret.CaretContainer","tinymce.core.caret.CaretCandidate"],function(a,b,c,d,e,f){function g(a){return a>0}function h(a){return a<0}function i(a,b){for(var c;c=a(b);)if(!y(c))return c;return null}function j(a,c,d,e,f){var j=new b(a,e);if(h(c)){if((v(a)||y(a))&&(a=i(j.prev,!0),d(a)))return a;for(;a=i(j.prev,f);)if(d(a))return a}if(g(c)){if((v(a)||y(a))&&(a=i(j.next,!0),d(a)))return a;for(;a=i(j.next,f);)if(d(a))return a}return null}function k(a,b){for(a=a.parentNode;a&&a!=b;a=a.parentNode)if(u(a))return a;return b}function l(a,b){for(;a&&a!=b;){if(w(a))return a;a=a.parentNode}return null}function m(a,b,c){return l(a.container(),c)==l(b.container(),c)}function n(a,b,c){return k(a.container(),c)==k(b.container(),c)}function o(a,b){var c,d;return b?(c=b.container(),d=b.offset(),A(c)?c.childNodes[d+a]:null):null}function p(a,b){var c=b.ownerDocument.createRange();return a?(c.setStartBefore(b),c.setEndBefore(b)):(c.setStartAfter(b),c.setEndAfter(b)),c}function q(a,b,c){return l(b,a)==l(c,a)}function r(a,b,c){var d,e;for(e=a?"previousSibling":"nextSibling";c&&c!=b;){if(d=c[e],x(d)&&(d=d[e]),v(d)){if(q(b,d,c))return d;break}if(B(d))break;c=c.parentNode}return null}function s(a,b,d){var f,g,h,i,j=z(r,!0,b),k=z(r,!1,b);if(g=d.startContainer,h=d.startOffset,e.isCaretContainerBlock(g)){if(A(g)||(g=g.parentNode),i=g.getAttribute("data-mce-caret"),"before"==i&&(f=g.nextSibling,v(f)))return C(f);if("after"==i&&(f=g.previousSibling,v(f)))return D(f)}if(!d.collapsed)return d;if(c.isText(g)){if(x(g)){if(1===a){if(f=k(g))return C(f);if(f=j(g))return D(f)}if(a===-1){if(f=j(g))return D(f);if(f=k(g))return C(f)}return d}if(e.endsWithCaretContainer(g)&&h>=g.data.length-1)return 1===a&&(f=k(g))?C(f):d;if(e.startsWithCaretContainer(g)&&h<=1)return a===-1&&(f=j(g))?D(f):d;if(h===g.data.length)return f=k(g),f?C(f):d;if(0===h)return f=j(g),f?D(f):d}return d}function t(a,b){return v(o(a,b))}var u=c.isContentEditableTrue,v=c.isContentEditableFalse,w=c.matchStyleValues("display","block table table-cell table-caption list-item"),x=e.isCaretContainer,y=e.isCaretContainerBlock,z=a.curry,A=c.isElement,B=f.isCaretCandidate,C=z(p,!0),D=z(p,!1);return{isForwards:g,isBackwards:h,findNode:j,getEditingHost:k,getParentBlock:l,isInSameBlock:m,isInSameEditingHost:n,isBeforeContentEditableFalse:z(t,0),isAfterContentEditableFalse:z(t,-1),normalizeRange:s}}),g("tinymce.core.caret.CaretWalker",["tinymce.core.dom.NodeType","tinymce.core.caret.CaretCandidate","tinymce.core.caret.CaretPosition","tinymce.core.caret.CaretUtils","tinymce.core.util.Arr","tinymce.core.util.Fun"],function(a,b,c,d,e,f){function g(a,b){for(var c=[];a&&a!=b;)c.push(a),a=a.parentNode;return c}function h(a,b){return a.hasChildNodes()&&b<a.childNodes.length?a.childNodes[b]:null}function i(a,b){if(p(a)){if(r(b.previousSibling)&&!m(b.previousSibling))return c.before(b);if(m(b))return c(b,0)}if(q(a)){if(r(b.nextSibling)&&!m(b.nextSibling))return c.after(b);if(m(b))return c(b,b.data.length)}return q(a)?o(b)?c.before(b):c.after(b):c.before(b)}function j(b,e){var f;return!!a.isBr(b)&&(f=k(1,c.after(b),e),!!f&&!d.isInSameBlock(c.before(b),c.before(f),e))}function k(a,b,u){var v,w,x,y,z,A,B;if(!n(u)||!b)return null;if(b.isEqual(c.after(u))&&u.lastChild){if(B=c.after(u.lastChild),q(a)&&r(u.lastChild)&&n(u.lastChild))return o(u.lastChild)?c.before(u.lastChild):B}else B=b;if(v=B.container(),w=B.offset(),m(v)){if(q(a)&&w>0)return c(v,--w);if(p(a)&&w<v.length)return c(v,++w);x=v}else{if(q(a)&&w>0&&(y=h(v,w-1),r(y)))return!s(y)&&(z=d.findNode(y,a,t,y))?m(z)?c(z,z.data.length):c.after(z):m(y)?c(y,y.data.length):c.before(y);if(p(a)&&w<v.childNodes.length&&(y=h(v,w),r(y)))return j(y,u)?k(a,c.after(y),u):!s(y)&&(z=d.findNode(y,a,t,y))?m(z)?c(z,0):c.before(z):m(y)?c(y,0):c.after(y);x=B.getNode()}return(p(a)&&B.isAtEnd()||q(a)&&B.isAtStart())&&(x=d.findNode(x,a,f.constant(!0),u,!0),t(x))?i(a,x):(y=d.findNode(x,a,t,u),A=e.last(e.filter(g(v,u),l)),!A||y&&A.contains(y)?y?i(a,y):null:B=p(a)?c.after(A):c.before(A))}var l=a.isContentEditableFalse,m=a.isText,n=a.isElement,o=a.isBr,p=d.isForwards,q=d.isBackwards,r=b.isCaretCandidate,s=b.isAtomic,t=b.isEditableCaretCandidate;return function(a){return{next:function(b){return k(1,b,a)},prev:function(b){return k(-1,b,a)}}}}),g("tinymce.core.caret.CaretFinder",["ephox.katamari.api.Fun","ephox.katamari.api.Option","tinymce.core.caret.CaretCandidate","tinymce.core.caret.CaretPosition","tinymce.core.caret.CaretUtils","tinymce.core.caret.CaretWalker","tinymce.core.dom.NodeType"],function(a,b,c,d,e,f,g){var h=function(a,b,c){var e=a?d.before(c):d.after(c);return o(a,b,e)},i=function(a){return g.isBr(a)?d.before(a):d.after(a)},j=function(a){return d.isTextPosition(a)?0===a.offset():c.isCaretCandidate(a.getNode())},k=function(a){return d.isTextPosition(a)?a.offset()===a.container().data.length:c.isCaretCandidate(a.getNode(!0))},l=function(a,b){return!d.isTextPosition(a)&&!d.isTextPosition(b)&&a.getNode()===b.getNode(!0)},m=function(a){return!d.isTextPosition(a)&&g.isBr(a.getNode())},n=function(a,b,c){return a?!l(b,c)&&!m(b)&&k(b)&&j(c):!l(c,b)&&j(b)&&k(c)},o=function(a,c,d){var e=new f(c);return b.from(a?e.next(d):e.prev(d))},p=function(a,c,d){return o(a,c,d).bind(function(f){return e.isInSameBlock(d,f,c)&&n(a,d,f)?o(a,c,f):b.some(f)})},q=function(a,e){var f=a?e.firstChild:e.lastChild;return g.isText(f)?b.some(new d(f,a?0:f.data.length)):f?c.isCaretCandidate(f)?b.some(a?d.before(f):i(f)):h(a,e,f):b.none()};return{fromPosition:o,nextPosition:a.curry(o,!0),prevPosition:a.curry(o,!1),navigate:p,positionIn:q,firstPositionIn:a.curry(q,!0),lastPositionIn:a.curry(q,!1)}}),g("tinymce.core.dom.RangeNormalizer",["tinymce.core.caret.CaretFinder","tinymce.core.caret.CaretPosition","tinymce.core.caret.CaretUtils"],function(a,b,c){var d=function(a,b,c,d){var e=document.createRange();return e.setStart(a,b),e.setEnd(c,d),e},e=function(e){var f=b.fromRangeStart(e),g=b.fromRangeEnd(e),h=e.commonAncestorContainer;return a.fromPosition(!1,h,g).map(function(a){return!c.isInSameBlock(f,g,h)&&c.isInSameBlock(f,a,h)?d(f.container(),f.offset(),a.container(),a.offset()):e}).getOr(e)},f=function(a){return a.collapsed?a:e(a)},g=function(a){return f(a)};return{normalize:g}}),g("global!console",[],function(){return"undefined"==typeof console&&(console={log:function(){}}),console}),h("global!document",document),g("ephox.sugar.api.node.Element",["ephox.katamari.api.Fun","global!Error","global!console","global!document"],function(a,b,c,d){var e=function(a,b){var e=b||d,f=e.createElement("div");if(f.innerHTML=a,!f.hasChildNodes()||f.childNodes.length>1)throw c.error("HTML does not have a single root node",a),"HTML must have a single root node";return h(f.childNodes[0])},f=function(a,b){var c=b||d,e=c.createElement(a);return h(e)},g=function(a,b){var c=b||d,e=c.createTextNode(a);return h(e)},h=function(c){if(null===c||void 0===c)throw new b("Node cannot be null or undefined");return{dom:a.constant(c)}};return{fromHtml:e,fromTag:f,fromText:g,fromDom:h}}),g("ephox.katamari.api.Type",["global!Array","global!String"],function(a,b){var c=function(c){if(null===c)return"null";var d=typeof c;return"object"===d&&a.prototype.isPrototypeOf(c)?"array":"object"===d&&b.prototype.isPrototypeOf(c)?"string":d},d=function(a){return function(b){return c(b)===a}};return{isString:d("string"),isObject:d("object"),isArray:d("array"),isNull:d("null"),isBoolean:d("boolean"),isUndefined:d("undefined"),isFunction:d("function"),isNumber:d("number")}}),g("ephox.katamari.data.Immutable",["ephox.katamari.api.Arr","ephox.katamari.api.Fun","global!Array","global!Error"],function(a,b,c,d){return function(){var e=arguments;return function(){for(var f=new c(arguments.length),g=0;g<f.length;g++)f[g]=arguments[g];if(e.length!==f.length)throw new d('Wrong number of arguments to struct. Expected "['+e.length+']", got '+f.length+" arguments");var h={};return a.each(e,function(a,c){h[a]=b.constant(f[c])}),h}}}),g("ephox.katamari.api.Obj",["ephox.katamari.api.Option","global!Object"],function(a,b){var c=function(){var a=b.keys,c=function(a){var b=[];for(var c in a)a.hasOwnProperty(c)&&b.push(c);return b};return void 0===a?c:a}(),d=function(a,b){for(var d=c(a),e=0,f=d.length;e<f;e++){var g=d[e],h=a[g];b(h,g,a)}},e=function(a,b){return f(a,function(a,c,d){return{k:c,v:b(a,c,d)}})},f=function(a,b){var c={};return d(a,function(d,e){var f=b(d,e,a);c[f.k]=f.v}),c},g=function(a,b){var c={},e={};return d(a,function(a,d){var f=b(a,d)?c:e;f[d]=a}),{t:c,f:e}},h=function(a,b){var c=[];return d(a,function(a,d){c.push(b(a,d))}),c},i=function(b,d){for(var e=c(b),f=0,g=e.length;f<g;f++){var h=e[f],i=b[h];if(d(i,h,b))return a.some(i)}return a.none()},j=function(a){return h(a,function(a){return a})},k=function(a){return j(a).length};return{bifilter:g,each:d,map:e,mapToArray:h,tupleMap:f,find:i,keys:c,values:j,size:k}}),g("ephox.katamari.util.BagUtils",["ephox.katamari.api.Arr","ephox.katamari.api.Type","global!Error"],function(a,b,c){var d=function(a){return a.slice(0).sort()},e=function(a,b){throw new c("All required keys ("+d(a).join(", ")+") were not specified. Specified keys were: "+d(b).join(", ")+".")},f=function(a){throw new c("Unsupported keys for object: "+d(a).join(", "))},g=function(d,e){if(!b.isArray(e))throw new c("The "+d+" fields must be an array. Was: "+e+".");a.each(e,function(a){if(!b.isString(a))throw new c("The value "+a+" in the "+d+" fields was not a string.")})},h=function(a,b){throw new c("All values need to be of type: "+b+". Keys ("+d(a).join(", ")+") were not.")},i=function(b){var e=d(b),f=a.find(e,function(a,b){return b<e.length-1&&a===e[b+1]});f.each(function(a){throw new c("The field: "+a+" occurs more than once in the combined fields: ["+e.join(", ")+"].")})};return{sort:d,reqMessage:e,unsuppMessage:f,validateStrArr:g,invalidTypeMessage:h,checkDupes:i}}),g("ephox.katamari.data.MixedBag",["ephox.katamari.api.Arr","ephox.katamari.api.Fun","ephox.katamari.api.Obj","ephox.katamari.api.Option","ephox.katamari.util.BagUtils","global!Error","global!Object"],function(a,b,c,d,e,f,g){return function(h,i){var j=h.concat(i);if(0===j.length)throw new f("You must specify at least one required or optional field.");return e.validateStrArr("required",h),e.validateStrArr("optional",i),e.checkDupes(j),function(f){var k=c.keys(f),l=a.forall(h,function(b){return a.contains(k,b)});l||e.reqMessage(h,k);var m=a.filter(k,function(b){return!a.contains(j,b)});m.length>0&&e.unsuppMessage(m);var n={};return a.each(h,function(a){n[a]=b.constant(f[a])}),a.each(i,function(a){n[a]=b.constant(g.prototype.hasOwnProperty.call(f,a)?d.some(f[a]):d.none())}),n}}}),g("ephox.katamari.api.Struct",["ephox.katamari.data.Immutable","ephox.katamari.data.MixedBag"],function(a,b){return{immutable:a,immutableBag:b}}),g("ephox.sugar.alien.Recurse",[],function(){var a=function(a,b){var c=[],d=function(a){return c.push(a),b(a)},e=b(a);do e=e.bind(d);while(e.isSome());return c};return{toArray:a}}),g("ephox.katamari.api.Global",[],function(){return"undefined"!=typeof window?window:Function("return this;")()}),g("ephox.katamari.api.Resolve",["ephox.katamari.api.Global"],function(a){var b=function(b,c){for(var d=void 0!==c?c:a,e=0;e<b.length&&void 0!==d&&null!==d;++e)d=d[b[e]];return d},c=function(a,c){var d=a.split(".");return b(d,c)},d=function(a,b){return void 0!==a[b]&&null!==a[b]||(a[b]={}),a[b]},e=function(b,c){for(var e=void 0!==c?c:a,f=0;f<b.length;++f)e=d(e,b[f]);return e},f=function(a,b){var c=a.split(".");return e(c,b)};return{path:b,resolve:c,forge:e,namespace:f}}),g("ephox.sand.util.Global",["ephox.katamari.api.Resolve"],function(a){var b=function(b,c){return a.resolve(b,c)},c=function(a,c){var d=b(a,c);if(void 0===d)throw a+" not available on this browser";return d};return{getOrDie:c}}),g("ephox.sand.api.Node",["ephox.sand.util.Global"],function(a){var b=function(){var b=a.getOrDie("Node");return b},c=function(a,b,c){return 0!==(a.compareDocumentPosition(b)&c)},d=function(a,d){return c(a,d,b().DOCUMENT_POSITION_PRECEDING)},e=function(a,d){return c(a,d,b().DOCUMENT_POSITION_CONTAINED_BY)};return{documentPositionPreceding:d,documentPositionContainedBy:e}}),g("ephox.katamari.api.Thunk",[],function(){var a=function(a){var b,c=!1;return function(){return c||(c=!0,b=a.apply(null,arguments)),b}};return{cached:a}}),h("global!Number",Number),g("ephox.sand.detect.Version",["ephox.katamari.api.Arr","global!Number","global!String"],function(a,b,c){var d=function(a,b){for(var c=0;c<a.length;c++){var d=a[c];if(d.test(b))return d}},e=function(a,c){var e=d(a,c);if(!e)return{major:0,minor:0};var f=function(a){return b(c.replace(e,"$"+a))};return h(f(1),f(2))},f=function(a,b){var d=c(b).toLowerCase();return 0===a.length?g():e(a,d)},g=function(){return h(0,0)},h=function(a,b){return{major:a,minor:b}};return{nu:h,detect:f,unknown:g}}),g("ephox.sand.core.Browser",["ephox.katamari.api.Fun","ephox.sand.detect.Version"],function(a,b){var c="Edge",d="Chrome",e="IE",f="Opera",g="Firefox",h="Safari",i=function(a,b){return function(){return b===a}},j=function(){return k({current:void 0,version:b.unknown()})},k=function(a){var b=a.current,j=a.version;return{current:b,version:j,isEdge:i(c,b),isChrome:i(d,b),isIE:i(e,b),isOpera:i(f,b),isFirefox:i(g,b), -isSafari:i(h,b)}};return{unknown:j,nu:k,edge:a.constant(c),chrome:a.constant(d),ie:a.constant(e),opera:a.constant(f),firefox:a.constant(g),safari:a.constant(h)}}),g("ephox.sand.core.OperatingSystem",["ephox.katamari.api.Fun","ephox.sand.detect.Version"],function(a,b){var c="Windows",d="iOS",e="Android",f="Linux",g="OSX",h="Solaris",i="FreeBSD",j=function(a,b){return function(){return b===a}},k=function(){return l({current:void 0,version:b.unknown()})},l=function(a){var b=a.current,k=a.version;return{current:b,version:k,isWindows:j(c,b),isiOS:j(d,b),isAndroid:j(e,b),isOSX:j(g,b),isLinux:j(f,b),isSolaris:j(h,b),isFreeBSD:j(i,b)}};return{unknown:k,nu:l,windows:a.constant(c),ios:a.constant(d),android:a.constant(e),linux:a.constant(f),osx:a.constant(g),solaris:a.constant(h),freebsd:a.constant(i)}}),g("ephox.sand.detect.DeviceType",["ephox.katamari.api.Fun"],function(a){return function(b,c,d){var e=b.isiOS()&&/ipad/i.test(d)===!0,f=b.isiOS()&&!e,g=b.isAndroid()&&3===b.version.major,h=b.isAndroid()&&4===b.version.major,i=e||g||h&&/mobile/i.test(d)===!0,j=b.isiOS()||b.isAndroid(),k=j&&!i,l=c.isSafari()&&b.isiOS()&&/safari/i.test(d)===!1;return{isiPad:a.constant(e),isiPhone:a.constant(f),isTablet:a.constant(i),isPhone:a.constant(k),isTouch:a.constant(j),isAndroid:b.isAndroid,isiOS:b.isiOS,isWebView:a.constant(l)}}}),g("ephox.sand.detect.UaString",["ephox.katamari.api.Arr","ephox.sand.detect.Version","global!String"],function(a,b,c){var d=function(b,d){var e=c(d).toLowerCase();return a.find(b,function(a){return a.search(e)})},e=function(a,c){return d(a,c).map(function(a){var d=b.detect(a.versionRegexes,c);return{current:a.name,version:d}})},f=function(a,c){return d(a,c).map(function(a){var d=b.detect(a.versionRegexes,c);return{current:a.name,version:d}})};return{detectBrowser:e,detectOs:f}}),g("ephox.katamari.str.StrAppend",[],function(){var a=function(a,b){return b+a},b=function(a,b){return a+b},c=function(a,b){return a.substring(b)},d=function(a,b){return a.substring(0,a.length-b)};return{addToStart:a,addToEnd:b,removeFromStart:c,removeFromEnd:d}}),g("ephox.katamari.str.StringParts",["ephox.katamari.api.Option","global!Error"],function(a,b){var c=function(a,b){return a.substr(0,b)},d=function(a,b){return a.substr(a.length-b,a.length)},e=function(b){return""===b?a.none():a.some(b.substr(0,1))},f=function(b){return""===b?a.none():a.some(b.substring(1))};return{first:c,last:d,head:e,tail:f}}),g("ephox.katamari.api.Strings",["ephox.katamari.str.StrAppend","ephox.katamari.str.StringParts","global!Error"],function(a,b,c){var d=function(a,b,c){if(""===b)return!0;if(a.length<b.length)return!1;var d=a.substr(c,c+b.length);return d===b},e=function(a,b){var c=function(a){var b=typeof a;return"string"===b||"number"===b};return a.replace(/\${([^{}]*)}/g,function(a,d){var e=b[d];return c(e)?e:a})},f=function(b,c){return l(b,c)?a.removeFromStart(b,c.length):b},g=function(b,c){return m(b,c)?a.removeFromEnd(b,c.length):b},h=function(b,c){return l(b,c)?b:a.addToStart(b,c)},i=function(b,c){return m(b,c)?b:a.addToEnd(b,c)},j=function(a,b){return a.indexOf(b)!==-1},k=function(a){return b.head(a).bind(function(c){return b.tail(a).map(function(a){return c.toUpperCase()+a})}).getOr(a)},l=function(a,b){return d(a,b,0)},m=function(a,b){return d(a,b,a.length-b.length)},n=function(a){return a.replace(/^\s+|\s+$/g,"")},o=function(a){return a.replace(/^\s+/g,"")},p=function(a){return a.replace(/\s+$/g,"")};return{supplant:e,startsWith:l,removeLeading:f,removeTrailing:g,ensureLeading:h,ensureTrailing:i,endsWith:m,contains:j,trim:n,lTrim:o,rTrim:p,capitalize:k}}),g("ephox.sand.info.PlatformInfo",["ephox.katamari.api.Fun","ephox.katamari.api.Strings"],function(a,b){var c=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,d=function(a){return function(c){return b.contains(c,a)}},e=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(a){var c=b.contains(a,"edge/")&&b.contains(a,"chrome")&&b.contains(a,"safari")&&b.contains(a,"applewebkit");return c}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,c],search:function(a){return b.contains(a,"chrome")&&!b.contains(a,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(a){return b.contains(a,"msie")||b.contains(a,"trident")}},{name:"Opera",versionRegexes:[c,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:d("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:d("firefox")},{name:"Safari",versionRegexes:[c,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(a){return(b.contains(a,"safari")||b.contains(a,"mobile/"))&&b.contains(a,"applewebkit")}}],f=[{name:"Windows",search:d("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:function(a){return b.contains(a,"iphone")||b.contains(a,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:d("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:d("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:d("linux"),versionRegexes:[]},{name:"Solaris",search:d("sunos"),versionRegexes:[]},{name:"FreeBSD",search:d("freebsd"),versionRegexes:[]}];return{browsers:a.constant(e),oses:a.constant(f)}}),g("ephox.sand.core.PlatformDetection",["ephox.sand.core.Browser","ephox.sand.core.OperatingSystem","ephox.sand.detect.DeviceType","ephox.sand.detect.UaString","ephox.sand.info.PlatformInfo"],function(a,b,c,d,e){var f=function(f){var g=e.browsers(),h=e.oses(),i=d.detectBrowser(g,f).fold(a.unknown,a.nu),j=d.detectOs(h,f).fold(b.unknown,b.nu),k=c(j,i,f);return{browser:i,os:j,deviceType:k}};return{detect:f}}),h("global!navigator",navigator),g("ephox.sand.api.PlatformDetection",["ephox.katamari.api.Thunk","ephox.sand.core.PlatformDetection","global!navigator"],function(a,b,c){var d=a.cached(function(){var a=c.userAgent;return b.detect(a)});return{detect:d}}),g("ephox.sugar.api.node.NodeTypes",[],function(){return{ATTRIBUTE:2,CDATA_SECTION:4,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,ELEMENT:1,TEXT:3,PROCESSING_INSTRUCTION:7,ENTITY_REFERENCE:5,ENTITY:6,NOTATION:12}}),g("ephox.sugar.api.search.Selectors",["ephox.katamari.api.Arr","ephox.katamari.api.Option","ephox.sugar.api.node.Element","ephox.sugar.api.node.NodeTypes","global!Error","global!document"],function(a,b,c,d,e,f){var g=d.ELEMENT,h=d.DOCUMENT,i=function(a,b){var c=a.dom();if(c.nodeType!==g)return!1;if(void 0!==c.matches)return c.matches(b);if(void 0!==c.msMatchesSelector)return c.msMatchesSelector(b);if(void 0!==c.webkitMatchesSelector)return c.webkitMatchesSelector(b);if(void 0!==c.mozMatchesSelector)return c.mozMatchesSelector(b);throw new e("Browser lacks native selectors")},j=function(a){return a.nodeType!==g&&a.nodeType!==h||0===a.childElementCount},k=function(b,d){var e=void 0===d?f:d.dom();return j(e)?[]:a.map(e.querySelectorAll(b),c.fromDom)},l=function(a,d){var e=void 0===d?f:d.dom();return j(e)?b.none():b.from(e.querySelector(a)).map(c.fromDom)};return{all:k,is:i,one:l}}),g("ephox.sugar.api.dom.Compare",["ephox.katamari.api.Arr","ephox.katamari.api.Fun","ephox.sand.api.Node","ephox.sand.api.PlatformDetection","ephox.sugar.api.search.Selectors"],function(a,b,c,d,e){var f=function(a,b){return a.dom()===b.dom()},g=function(a,b){return a.dom().isEqualNode(b.dom())},h=function(c,d){return a.exists(d,b.curry(f,c))},i=function(a,b){var c=a.dom(),d=b.dom();return c!==d&&c.contains(d)},j=function(a,b){return c.documentPositionContainedBy(a.dom(),b.dom())},k=d.detect().browser,l=k.isIE()?j:i;return{eq:f,isEqualNode:g,member:h,contains:l,is:e.is}}),g("ephox.sugar.api.search.Traverse",["ephox.katamari.api.Type","ephox.katamari.api.Arr","ephox.katamari.api.Fun","ephox.katamari.api.Option","ephox.katamari.api.Struct","ephox.sugar.alien.Recurse","ephox.sugar.api.dom.Compare","ephox.sugar.api.node.Element"],function(a,b,c,d,e,f,g,h){var i=function(a){return h.fromDom(a.dom().ownerDocument)},j=function(a){var b=i(a);return h.fromDom(b.dom().documentElement)},k=function(a){var b=a.dom(),c=b.ownerDocument.defaultView;return h.fromDom(c)},l=function(a){var b=a.dom();return d.from(b.parentNode).map(h.fromDom)},m=function(a){return l(a).bind(function(c){var d=u(c);return b.findIndex(d,function(b){return g.eq(a,b)})})},n=function(b,d){for(var e=a.isFunction(d)?d:c.constant(!1),f=b.dom(),g=[];null!==f.parentNode&&void 0!==f.parentNode;){var i=f.parentNode,j=h.fromDom(i);if(g.push(j),e(j)===!0)break;f=i}return g},o=function(a){var c=function(c){return b.filter(c,function(b){return!g.eq(a,b)})};return l(a).map(u).map(c).getOr([])},p=function(a){var b=a.dom();return d.from(b.offsetParent).map(h.fromDom)},q=function(a){var b=a.dom();return d.from(b.previousSibling).map(h.fromDom)},r=function(a){var b=a.dom();return d.from(b.nextSibling).map(h.fromDom)},s=function(a){return b.reverse(f.toArray(a,q))},t=function(a){return f.toArray(a,r)},u=function(a){var c=a.dom();return b.map(c.childNodes,h.fromDom)},v=function(a,b){var c=a.dom().childNodes;return d.from(c[b]).map(h.fromDom)},w=function(a){return v(a,0)},x=function(a){return v(a,a.dom().childNodes.length-1)},y=e.immutable("element","offset"),z=function(a,b){var c=u(a);return c.length>0&&b<c.length?y(c[b],0):y(a,b)};return{owner:i,defaultView:k,documentElement:j,parent:l,findIndex:m,parents:n,siblings:o,prevSibling:q,offsetParent:p,prevSiblings:s,nextSibling:r,nextSiblings:t,children:u,child:v,firstChild:w,lastChild:x,leaf:z}}),g("ephox.sugar.api.dom.Insert",["ephox.sugar.api.search.Traverse"],function(a){var b=function(b,c){var d=a.parent(b);d.each(function(a){a.dom().insertBefore(c.dom(),b.dom())})},c=function(c,d){var f=a.nextSibling(c);f.fold(function(){var b=a.parent(c);b.each(function(a){e(a,d)})},function(a){b(a,d)})},d=function(b,c){var d=a.firstChild(b);d.fold(function(){e(b,c)},function(a){b.dom().insertBefore(c.dom(),a.dom())})},e=function(a,b){a.dom().appendChild(b.dom())},f=function(c,d,f){a.child(c,f).fold(function(){e(c,d)},function(a){b(a,d)})},g=function(a,c){b(a,c),e(c,a)};return{before:b,after:c,prepend:d,append:e,appendAt:f,wrap:g}}),g("ephox.sugar.api.dom.InsertAll",["ephox.katamari.api.Arr","ephox.sugar.api.dom.Insert"],function(a,b){var c=function(c,d){a.each(d,function(a){b.before(c,a)})},d=function(c,d){a.each(d,function(a,e){var f=0===e?c:d[e-1];b.after(f,a)})},e=function(c,d){a.each(d.slice().reverse(),function(a){b.prepend(c,a)})},f=function(c,d){a.each(d,function(a){b.append(c,a)})};return{before:c,after:d,prepend:e,append:f}}),g("ephox.sugar.api.dom.Remove",["ephox.katamari.api.Arr","ephox.sugar.api.dom.InsertAll","ephox.sugar.api.search.Traverse"],function(a,b,c){var d=function(b){b.dom().textContent="",a.each(c.children(b),function(a){e(a)})},e=function(a){var b=a.dom();null!==b.parentNode&&b.parentNode.removeChild(b)},f=function(a){var d=c.children(a);d.length>0&&b.before(a,d),e(a)};return{empty:d,remove:e,unwrap:f}}),g("ephox.sugar.api.node.Node",["ephox.sugar.api.node.NodeTypes"],function(a){var b=function(a){var b=a.dom().nodeName;return b.toLowerCase()},c=function(a){return a.dom().nodeType},d=function(a){return a.dom().nodeValue},e=function(a){return function(b){return c(b)===a}},f=function(d){return c(d)===a.COMMENT||"#comment"===b(d)},g=e(a.ELEMENT),h=e(a.TEXT),i=e(a.DOCUMENT);return{name:b,type:c,value:d,isElement:g,isText:h,isDocument:i,isComment:f}}),g("ephox.sugar.impl.NodeValue",["ephox.sand.api.PlatformDetection","ephox.katamari.api.Option","global!Error"],function(a,b,c){return function(d,e){var f=function(a){if(!d(a))throw new c("Can only get "+e+" value of a "+e+" node");return j(a).getOr("")},g=function(a){try{return h(a)}catch(c){return b.none()}},h=function(a){return d(a)?b.from(a.dom().nodeValue):b.none()},i=a.detect().browser,j=i.isIE()&&10===i.version.major?g:h,k=function(a,b){if(!d(a))throw new c("Can only set raw "+e+" value of a "+e+" node");a.dom().nodeValue=b};return{get:f,getOption:j,set:k}}}),g("ephox.sugar.api.node.Text",["ephox.sugar.api.node.Node","ephox.sugar.impl.NodeValue"],function(a,b){var c=b(a.isText,"text"),d=function(a){return c.get(a)},e=function(a){return c.getOption(a)},f=function(a,b){c.set(a,b)};return{get:d,getOption:e,set:f}}),g("ephox.sugar.api.node.Body",["ephox.katamari.api.Thunk","ephox.sugar.api.node.Element","ephox.sugar.api.node.Node","global!document"],function(a,b,c,d){var e=function(a){var b=c.isText(a)?a.dom().parentNode:a.dom();return void 0!==b&&null!==b&&b.ownerDocument.body.contains(b)},f=a.cached(function(){return g(b.fromDom(d))}),g=function(a){var c=a.dom().body;if(null===c||void 0===c)throw"Body is not available yet";return b.fromDom(c)};return{body:f,getBody:g,inBody:e}}),g("ephox.sugar.api.search.PredicateFilter",["ephox.katamari.api.Arr","ephox.sugar.api.node.Body","ephox.sugar.api.search.Traverse"],function(a,b,c){var d=function(a){return h(b.body(),a)},e=function(b,d,e){return a.filter(c.parents(b,e),d)},f=function(b,d){return a.filter(c.siblings(b),d)},g=function(b,d){return a.filter(c.children(b),d)},h=function(b,d){var e=[];return a.each(c.children(b),function(a){d(a)&&(e=e.concat([a])),e=e.concat(h(a,d))}),e};return{all:d,ancestors:e,siblings:f,children:g,descendants:h}}),g("ephox.sugar.api.search.SelectorFilter",["ephox.sugar.api.search.PredicateFilter","ephox.sugar.api.search.Selectors"],function(a,b){var c=function(a){return b.all(a)},d=function(c,d,e){return a.ancestors(c,function(a){return b.is(a,d)},e)},e=function(c,d){return a.siblings(c,function(a){return b.is(a,d)})},f=function(c,d){return a.children(c,function(a){return b.is(a,d)})},g=function(a,c){return b.all(c,a)};return{all:c,ancestors:d,siblings:e,children:f,descendants:g}}),g("tinymce.core.dom.ElementType",["ephox.katamari.api.Arr","ephox.katamari.api.Fun","ephox.sugar.api.node.Node"],function(a,b,c){var d=["article","aside","details","div","dt","figcaption","footer","form","fieldset","header","hgroup","html","main","nav","section","summary","body","p","dl","multicol","dd","figure","address","center","blockquote","h1","h2","h3","h4","h5","h6","listing","xmp","pre","plaintext","menu","dir","ul","ol","li","hr","table","tbody","thead","tfoot","th","tr","td","caption"],e=["area","base","basefont","br","col","frame","hr","img","input","isindex","link","meta","param","embed","source","wbr","track"],f=["td","th"],g=["thead","tbody","tfoot"],h=["h1","h2","h3","h4","h5","h6","p","div","address","pre","form","blockquote","center","dir","fieldset","header","footer","article","section","hgroup","aside","nav","figure"],i=["h1","h2","h3","h4","h5","h6"],j=["li","dd","dt"],k=["ul","ol","dl"],l=function(d){var e;return function(f){return e=e?e:a.mapToObject(d,b.constant(!0)),e.hasOwnProperty(c.name(f))}},m=l(i),n=l(d),o=function(a){return c.isElement(a)&&!n(a)},p=function(a){return c.isElement(a)&&"br"===c.name(a)};return{isBlock:n,isInline:o,isHeading:m,isTextBlock:l(h),isList:l(k),isListItem:l(j),isVoid:l(e),isTableSection:l(g),isTableCell:l(f),isBr:p}}),g("tinymce.core.dom.PaddingBr",["ephox.katamari.api.Arr","ephox.sugar.api.dom.Insert","ephox.sugar.api.dom.Remove","ephox.sugar.api.node.Element","ephox.sugar.api.node.Node","ephox.sugar.api.node.Text","ephox.sugar.api.search.SelectorFilter","ephox.sugar.api.search.Traverse","tinymce.core.dom.ElementType"],function(a,b,c,d,e,f,g,h,i){var j=function(a){for(var b=[],c=a.dom();c;)b.push(d.fromDom(c)),c=c.lastChild;return b},k=function(b){var d=g.descendants(b,"br"),e=a.filter(j(b).slice(-1),i.isBr);d.length===e.length&&a.each(e,c.remove)},l=function(a){c.empty(a),b.append(a,d.fromHtml('<br data-mce-bogus="1">'))},m=function(a){return e.isText(a)?"\xa0"===f.get(a):i.isBr(a)},n=function(b){return 1===a.filter(h.children(b),m).length},o=function(a){h.lastChild(a).each(function(b){h.prevSibling(b).each(function(d){i.isBlock(a)&&i.isBr(b)&&i.isBlock(d)&&c.remove(b)})})};return{removeTrailingBr:k,fillWithPaddingBr:l,isPaddedElement:n,trimBlockTrailingBr:o}}),g("tinymce.core.fmt.FormatUtils",["tinymce.core.dom.TreeWalker"],function(a){var b=function(a){return a&&/^(IMG)$/.test(a.nodeName)},c=function(c,d,e){var f,h,i,j=e.startContainer,k=e.startOffset;if((e.startContainer!==e.endContainer||!b(e.startContainer.childNodes[e.startOffset]))&&(3===j.nodeType&&k>=j.nodeValue.length&&(k=c.nodeIndex(j),j=j.parentNode),1===j.nodeType))for(i=j.childNodes,k<i.length?(j=i[k],f=new a(j,c.getParent(j,c.isBlock))):(j=i[i.length-1],f=new a(j,c.getParent(j,c.isBlock)),f.next(!0)),h=f.current();h;h=f.next())if(3===h.nodeType&&!g(h))return e.setStart(h,0),void d.setRng(e)},d=function(a,b,c){if(a)for(b=b?"nextSibling":"previousSibling",a=c?a:a[b];a;a=a[b])if(1===a.nodeType||!g(a))return a},e=function(a,b){return b.nodeType&&(b=b.nodeName),!!a.schema.getTextBlockElements()[b.toLowerCase()]},f=function(a,b,c){return a.schema.isValidChild(b,c)},g=function(a){return a&&3===a.nodeType&&/^([\t \r\n]+|)$/.test(a.nodeValue)},h=function(a,b){return"string"!=typeof a?a=a(b):b&&(a=a.replace(/%(\w+)/g,function(a,c){return b[c]||a})),a},i=function(a,b){return a=a||"",b=b||"",a=""+(a.nodeName||a),b=""+(b.nodeName||b),a.toLowerCase()===b.toLowerCase()},j=function(a,b,c){return"color"!==c&&"backgroundColor"!==c||(b=a.toHex(b)),"fontWeight"===c&&700===b&&(b="bold"),"fontFamily"===c&&(b=b.replace(/[\'\"]/g,"").replace(/,\s+/g,",")),""+b},k=function(a,b,c){return j(a,a.getStyle(b,c),c)},l=function(a,b){var c;return a.getParent(b,function(b){return c=a.getStyle(b,"text-decoration"),c&&"none"!==c}),c},m=function(a,b,c){return a.getParents(b,c,a.getRoot())};return{isInlineBlock:b,moveStart:c,getNonWhiteSpaceSibling:d,isTextBlock:e,isValid:f,isWhiteSpaceNode:g,replaceVars:h,isEq:i,normalizeStyleValue:j,getStyle:k,getTextDecoration:l,getParents:m}}),g("tinymce.core.fmt.ExpandRange",["tinymce.core.dom.BookmarkManager","tinymce.core.dom.TreeWalker","tinymce.core.fmt.FormatUtils"],function(a,b,c){var d=a.isBookmarkNode,e=c.getParents,f=c.isWhiteSpaceNode,g=c.isTextBlock,h=function(a,b){for("undefined"==typeof b&&(b=3===a.nodeType?a.length:a.childNodes.length);a&&a.hasChildNodes();)a=a.childNodes[b],a&&(b=3===a.nodeType?a.length:a.childNodes.length);return{node:a,offset:b}},i=function(a,b){var c=h(a,b);if(c.node){for(;c.node&&0===c.offset&&c.node.previousSibling;)c=h(c.node.previousSibling);c.node&&c.offset>0&&3===c.node.nodeType&&" "===c.node.nodeValue.charAt(c.offset-1)&&c.offset>1&&(a=c.node,a.splitText(c.offset-1))}return a},j=function(a){return"BR"===a.nodeName&&a.getAttribute("data-mce-bogus")&&!a.nextSibling},k=function(a,h,k,l){var m,n,o=h.startContainer,p=h.startOffset,q=h.endContainer,r=h.endOffset,s=a.dom,t=function(a){var b,c,e,g,h;if(b=c=a?o:q,g=a?"previousSibling":"nextSibling",h=s.getRoot(),3===b.nodeType&&!f(b)&&(a?p>0:r<b.nodeValue.length))return b;for(;;){if(!k[0].block_expand&&s.isBlock(c))return c;for(e=c[g];e;e=e[g])if(!d(e)&&!f(e)&&!j(e))return c;if(c===h||c.parentNode===h){b=c;break}c=c.parentNode}return b};1===o.nodeType&&o.hasChildNodes()&&(m=o.childNodes.length-1,o=o.childNodes[p>m?m:p],3===o.nodeType&&(p=0)),1===q.nodeType&&q.hasChildNodes()&&(m=q.childNodes.length-1,q=q.childNodes[r>m?m:r-1],3===q.nodeType&&(r=q.nodeValue.length));var u=function(a){for(var b=a;b;){if(1===b.nodeType&&s.getContentEditable(b))return"false"===s.getContentEditable(b)?b:a;b=b.parentNode}return a},v=function(c,d,e){var f,g,h,i,j=function(a,b){var c,d,f=a.nodeValue;return"undefined"==typeof b&&(b=e?f.length:0),e?(c=f.lastIndexOf(" ",b),d=f.lastIndexOf("\xa0",b),c=c>d?c:d,c===-1||l||c++):(c=f.indexOf(" ",b),d=f.indexOf("\xa0",b),c=c!==-1&&(d===-1||c<d)?c:d),c};if(3===c.nodeType){if(h=j(c,d),h!==-1)return{container:c,offset:h};i=c}for(f=new b(c,s.getParent(c,s.isBlock)||a.getBody());g=f[e?"prev":"next"]();)if(3===g.nodeType){if(i=g,h=j(g),h!==-1)return{container:g,offset:h}}else if(s.isBlock(g))break;if(i)return d=e?0:i.length,{container:i,offset:d}},w=function(a,b){var c,d,f,g;for(3===a.nodeType&&0===a.nodeValue.length&&a[b]&&(a=a[b]),c=e(s,a),d=0;d<c.length;d++)for(f=0;f<k.length;f++)if(g=k[f],!("collapsed"in g&&g.collapsed!==h.collapsed)&&s.is(c[d],g.selector))return c[d];return a},x=function(b,d){var f,h=s.getRoot();if(k[0].wrapper||(f=s.getParent(b,k[0].block,h)),!f){var i=s.getParent(b,"LI,TD,TH");f=s.getParent(3===b.nodeType?b.parentNode:b,function(b){return b!==h&&g(a,b)},i)}if(f&&k[0].wrapper&&(f=e(s,f,"ul,ol").reverse()[0]||f),!f)for(f=b;f[d]&&!s.isBlock(f[d])&&(f=f[d],!c.isEq(f,"br")););return f||b};return o=u(o),q=u(q),(d(o.parentNode)||d(o))&&(o=d(o)?o:o.parentNode,o=o.nextSibling||o,3===o.nodeType&&(p=0)),(d(q.parentNode)||d(q))&&(q=d(q)?q:q.parentNode,q=q.previousSibling||q,3===q.nodeType&&(r=q.length)),k[0].inline&&(h.collapsed&&(n=v(o,p,!0),n&&(o=n.container,p=n.offset),n=v(q,r),n&&(q=n.container,r=n.offset)),q=l?q:i(q,r)),(k[0].inline||k[0].block_expand)&&(k[0].inline&&3===o.nodeType&&0!==p||(o=t(!0)),k[0].inline&&3===q.nodeType&&r!==q.nodeValue.length||(q=t())),k[0].selector&&k[0].expand!==!1&&!k[0].inline&&(o=w(o,"previousSibling"),q=w(q,"nextSibling")),(k[0].block||k[0].selector)&&(o=x(o,"previousSibling"),q=x(q,"nextSibling"),k[0].block&&(s.isBlock(o)||(o=t(!0)),s.isBlock(q)||(q=t()))),1===o.nodeType&&(p=s.nodeIndex(o),o=o.parentNode),1===q.nodeType&&(r=s.nodeIndex(q)+1,q=q.parentNode),{startContainer:o,startOffset:p,endContainer:q,endOffset:r}};return{expandRng:k}}),g("tinymce.core.fmt.MatchFormat",["tinymce.core.fmt.FormatUtils"],function(a){var b=a.isEq,c=function(a,b,c){var d=a.formatter.get(c);if(d)for(var e=0;e<d.length;e++)if(d[e].inherit===!1&&a.dom.is(b,d[e].selector))return!0;return!1},d=function(a,b,d,e){var f=a.dom.getRoot();return b!==f&&(b=a.dom.getParent(b,function(b){return!!c(a,b,d)||(b.parentNode===f||!!g(a,b,d,e,!0))}),g(a,b,d,e))},e=function(a,c,d){return!!b(c,d.inline)||(!!b(c,d.block)||(d.selector?1===c.nodeType&&a.is(c,d.selector):void 0))},f=function(c,d,e,f,g,h){var i,j,k,l=e[f];if(e.onmatch)return e.onmatch(d,e,f);if(l)if("undefined"==typeof l.length){for(i in l)if(l.hasOwnProperty(i)){if(j="attributes"===f?c.getAttrib(d,i):a.getStyle(c,d,i),g&&!j&&!e.exact)return;if((!g||e.exact)&&!b(j,a.normalizeStyleValue(c,a.replaceVars(l[i],h),i)))return}}else for(k=0;k<l.length;k++)if("attributes"===f?c.getAttrib(d,l[k]):a.getStyle(c,d,l[k]))return e;return e},g=function(a,b,c,d,g){var h,i,j,k,l=a.formatter.get(c),m=a.dom;if(l&&b)for(i=0;i<l.length;i++)if(h=l[i],e(a.dom,b,h)&&f(m,b,h,"attributes",g,d)&&f(m,b,h,"styles",g,d)){if(k=h.classes)for(j=0;j<k.length;j++)if(!a.dom.hasClass(b,k[j]))return;return h}},h=function(a,b,c,e){var f;return e?d(a,e,b,c):(e=a.selection.getNode(),!!d(a,e,b,c)||(f=a.selection.getStart(),!(f===e||!d(a,f,b,c))))},i=function(a,b,c){var d,e=[],f={};return d=a.selection.getStart(),a.dom.getParent(d,function(d){var h,i;for(h=0;h<b.length;h++)i=b[h],!f[i]&&g(a,d,i,c)&&(f[i]=!0,e.push(i))},a.dom.getRoot()),e},j=function(b,c){var d,e,f,g,h,i=b.formatter.get(c),j=b.dom;if(i)for(d=b.selection.getStart(),e=a.getParents(j,d),g=i.length-1;g>=0;g--){if(h=i[g].selector,!h||i[g].defaultBlock)return!0;for(f=e.length-1;f>=0;f--)if(j.is(e[f],h))return!0}return!1};return{matchNode:g,matchName:e,match:h,matchAll:i,canApply:j,matchesUnInheritedFormatSelector:c}}),g("tinymce.core.fmt.CaretFormat",["ephox.katamari.api.Arr","ephox.sugar.api.node.Element","tinymce.core.dom.PaddingBr","tinymce.core.dom.RangeUtils","tinymce.core.dom.TreeWalker","tinymce.core.fmt.ExpandRange","tinymce.core.fmt.FormatUtils","tinymce.core.fmt.MatchFormat","tinymce.core.text.Zwsp","tinymce.core.util.Fun","tinymce.core.util.Tools"],function(a,b,c,d,e,f,g,h,i,j,k){var l=i.ZWSP,m="_mce_caret",n=!1,o=function(a){return 1===a.nodeType&&a.id===m},p=function(a,b){for(;a;){if(3===a.nodeType&&a.nodeValue!==l||a.childNodes.length>1)return!1;b&&1===a.nodeType&&b.push(a),a=a.firstChild}return!0},q=function(a){var b;if(a)for(b=new e(a,a),a=b.current();a;a=b.next())if(3===a.nodeType)return a;return null},r=function(a,b){var c=a.create("span",{id:m,"data-mce-bogus":"1",style:n?"color:red":""});return b&&c.appendChild(a.doc.createTextNode(l)),c},s=function(a){for(;a;){if(a.id===m)return a;a=a.parentNode}},t=function(a,b){var c;c=s(b.getStart()),c&&!a.isEmpty(c)&&k.walk(c,function(b){1!==b.nodeType||b.id===m||a.isEmpty(b)||a.setAttrib(b,"data-mce-bogus",null)},"childNodes")},u=function(a){var b=q(a);return b&&b.nodeValue.charAt(0)===l&&b.deleteData(0,1),b},v=function(a,d,e,f){var g,h,i;g=d.getRng(!0),h=a.getParent(e,a.isBlock),p(e)?(f!==!1&&(g.setStartBefore(e),g.setEndBefore(e)),a.remove(e)):(i=u(e),g.startContainer===i&&g.startOffset>0&&g.setStart(i,g.startOffset-1),g.endContainer===i&&g.endOffset>0&&g.setEnd(i,g.endOffset-1),a.remove(e,!0)),h&&a.isEmpty(h)&&c.fillWithPaddingBr(b.fromDom(h)),d.setRng(g)},w=function(a,b,c,d){if(c)v(a,b,c,d);else if(c=s(b.getStart()),!c)for(;c=a.get(m);)v(a,b,c,!1)},x=function(a,d,e){var f=a.dom,h=f.getParent(e,j.curry(g.isTextBlock,a));h&&f.isEmpty(h)?e.parentNode.replaceChild(d,e):(c.removeTrailingBr(b.fromDom(e)),f.isEmpty(e)?e.parentNode.replaceChild(d,e):f.insertAfter(d,e))},y=function(a,b){return a.appendChild(b),b},z=function(b,c){var d=a.foldr(b,function(a,b){return y(a,b.cloneNode(!1))},c);return y(d,d.ownerDocument.createTextNode(l))},A=function(a){a._hasCaretEvents||(D(a),a._hasCaretEvents=!0)},B=function(a,b,c){var e,g,h,i,j,k,m,n=a.dom,o=a.selection;A(a),e=o.getRng(!0),i=e.startOffset,k=e.startContainer,m=k.nodeValue,g=s(o.getStart()),g&&(h=q(g));var p=/[^\s\u00a0\u00ad\u200b\ufeff]/;m&&i>0&&i<m.length&&p.test(m.charAt(i))&&p.test(m.charAt(i-1))?(j=o.getBookmark(),e.collapse(!0),e=f.expandRng(a,e,a.formatter.get(b)),e=new d(n).split(e),a.formatter.apply(b,c,e),o.moveToBookmark(j)):(g&&h.nodeValue===l?a.formatter.apply(b,c,g):(g=r(n,!0),h=g.firstChild,e.insertNode(g),i=1,a.formatter.apply(b,c,g)),o.setCursorLocation(h,i))},C=function(a,b,c,e){var g,i,j,k,l,m,n,o=a.dom,p=a.selection,q=p.getRng(!0),t=[];for(A(a),g=q.startContainer,i=q.startOffset,l=g,3===g.nodeType&&(i!==g.nodeValue.length&&(k=!0),l=l.parentNode);l;){if(h.matchNode(a,l,b,c,e)){m=l;break}l.nextSibling&&(k=!0),t.push(l),l=l.parentNode}if(m)if(k)j=p.getBookmark(),q.collapse(!0),q=f.expandRng(a,q,a.formatter.get(b),!0),q=new d(o).split(q),a.formatter.remove(b,c,q),p.moveToBookmark(j);else{n=s(m);var u=r(o,!1),w=z(t,u);n?x(a,u,n):x(a,u,m),v(o,p,n,!1),p.setCursorLocation(w,1),o.isEmpty(m)&&o.remove(m)}},D=function(a){var b=a.dom,c=a.selection;if(!a._hasCaretEvents){var d,e;a.on("BeforeGetContent",function(a){d&&"raw"!==a.format&&d()}),a.on("mouseup keydown",function(a){e&&e(a)}),d=function(){var a,d=[];if(p(s(c.getStart()),d))for(a=d.length;a--;)b.setAttrib(d[a],"data-mce-bogus","1")},e=function(a){var d=a.keyCode;w(b,c,null,!1),8===d&&c.isCollapsed()&&c.getStart().innerHTML===l&&w(b,c,s(c.getStart())),37!==d&&39!==d||w(b,c,s(c.getStart())),t(b,c)},a.on("SetContent",function(a){a.selection&&t(b,c)}),a._hasCaretEvents=!0}};return{applyCaretFormat:B,removeCaretFormat:C,isCaretNode:o}}),g("tinymce.core.fmt.Hooks",["tinymce.core.util.Arr","tinymce.core.dom.NodeType","tinymce.core.dom.DomQuery"],function(a,b,c){function d(a,b){var c=f[a];c||(f[a]=c=[]),f[a].push(b)}function e(a,b){h(f[a],function(a){a(b)})}var f={},g=a.filter,h=a.each;return d("pre",function(d){function e(b){return i(b.previousSibling)&&a.indexOf(j,b.previousSibling)!==-1}function f(a,b){c(b).remove(),c(a).append("<br><br>").append(b.childNodes)}var i,j,k=d.selection.getRng();i=b.matchNodeNames("pre"),k.collapsed||(j=d.selection.getSelectedBlocks(),h(g(g(j,i),e),function(a){f(a.previousSibling,a)}))}),{postProcess:e}}),g("tinymce.core.dom.ElementUtils",["tinymce.core.dom.BookmarkManager","tinymce.core.util.Tools"],function(a,b){function c(b){this.compare=function(c,e){function f(a){var c={};return d(b.getAttribs(a),function(d){var e=d.nodeName.toLowerCase();0!==e.indexOf("_")&&"style"!==e&&0!==e.indexOf("data-")&&(c[e]=b.getAttrib(a,e))}),c}function g(a,b){var c,d;for(d in a)if(a.hasOwnProperty(d)){if(c=b[d],"undefined"==typeof c)return!1;if(a[d]!=c)return!1;delete b[d]}for(d in b)if(b.hasOwnProperty(d))return!1;return!0}return c.nodeName==e.nodeName&&(!!g(f(c),f(e))&&(!!g(b.parseStyle(b.getAttrib(c,"style")),b.parseStyle(b.getAttrib(e,"style")))&&(!a.isBookmarkNode(c)&&!a.isBookmarkNode(e))))}}var d=b.each;return c}),g("tinymce.core.fmt.RemoveFormat",["ephox.katamari.api.Fun","tinymce.core.dom.BookmarkManager","tinymce.core.dom.RangeUtils","tinymce.core.dom.TreeWalker","tinymce.core.fmt.CaretFormat","tinymce.core.fmt.ExpandRange","tinymce.core.fmt.FormatUtils","tinymce.core.fmt.MatchFormat","tinymce.core.util.Tools"],function(a,b,c,d,e,f,g,h,i){var j=/^(src|href|style)$/,k=i.each,l=g.isEq,m=function(a){return/^(TH|TD)$/.test(a.nodeName)},n=function(a,b,c){var e,f,g;return e=b[c?"startContainer":"endContainer"],f=b[c?"startOffset":"endOffset"],1===e.nodeType&&(g=e.childNodes.length-1,!c&&f&&f--,e=e.childNodes[f>g?g:f]),3===e.nodeType&&c&&f>=e.nodeValue.length&&(e=new d(e,a.getBody()).next()||e),3!==e.nodeType||c||0!==f||(e=new d(e,a.getBody()).prev()||e),e},o=function(a,b,c,d){var e=a.create(c,d);return b.parentNode.insertBefore(e,b),e.appendChild(b),e},p=function(a,b,c){return!!l(b,c.inline)||(!!l(b,c.block)||(c.selector?1===b.nodeType&&a.is(b,c.selector):void 0))},q=function(a,b){return b.links&&"A"===a.tagName},r=function(a,b,c,d){return b=g.getNonWhiteSpaceSibling(b,c,d),!b||"BR"===b.nodeName||a.isBlock(b)},s=function(a,b,c){var d,e=b.parentNode,f=a.dom,h=a.settings.forced_root_block;c.block&&(h?e===f.getRoot()&&(c.list_block&&l(b,c.list_block)||k(i.grep(b.childNodes),function(b){g.isValid(a,h,b.nodeName.toLowerCase())?d?d.appendChild(b):(d=o(f,b,h),f.setAttribs(d,a.settings.forced_root_block_attrs)):d=0})):f.isBlock(b)&&!f.isBlock(e)&&(r(f,b,!1)||r(f,b.firstChild,!0,1)||b.insertBefore(f.create("br"),b.firstChild),r(f,b,!0)||r(f,b.lastChild,!1,1)||b.appendChild(f.create("br")))),c.selector&&c.inline&&!l(c.inline,b)||f.remove(b,1)},t=function(a,b,c,d,e){var f,h,i,m=a.dom;if(!p(m,d,b)&&!q(d,b))return!1;if("all"!==b.remove)for(k(b.styles,function(a,f){a=g.normalizeStyleValue(m,g.replaceVars(a,c),f),"number"==typeof f&&(f=a,e=0),(b.remove_similar||!e||l(g.getStyle(m,e,f),a))&&m.setStyle(d,f,""),i=1}),i&&""===m.getAttrib(d,"style")&&(d.removeAttribute("style"),d.removeAttribute("data-mce-style")),k(b.attributes,function(a,b){var f;if(a=g.replaceVars(a,c),"number"==typeof b&&(b=a,e=0),!e||l(m.getAttrib(e,b),a)){if("class"===b&&(a=m.getAttrib(d,b),a&&(f="",k(a.split(/\s+/),function(a){/mce\-\w+/.test(a)&&(f+=(f?" ":"")+a)}),f)))return void m.setAttrib(d,b,f);"class"===b&&d.removeAttribute("className"),j.test(b)&&d.removeAttribute("data-mce-"+b),d.removeAttribute(b)}}),k(b.classes,function(a){a=g.replaceVars(a,c),e&&!m.hasClass(e,a)||m.removeClass(d,a)}),h=m.getAttribs(d),f=0;f<h.length;f++){var n=h[f].nodeName;if(0!==n.indexOf("_")&&0!==n.indexOf("data-"))return!1}return"none"!==b.remove?(s(a,d,b),!0):void 0},u=function(a,b,c,d,e){var f;return k(g.getParents(a.dom,b.parentNode).reverse(),function(b){var g;f||"_start"===b.id||"_end"===b.id||(g=h.matchNode(a,b,c,d,e),g&&g.split!==!1&&(f=b))}),f},v=function(a,b,c,d,e,f,g,h){var i,j,k,l,m,n,o=a.dom;if(c){for(n=c.parentNode,i=d.parentNode;i&&i!==n;i=i.parentNode){for(j=o.clone(i,!1),m=0;m<b.length;m++)if(t(a,b[m],h,j,j)){j=0;break}j&&(k&&j.appendChild(k),l||(l=j),k=j)}!f||g.mixed&&o.isBlock(c)||(d=o.split(c,d)),k&&(e.parentNode.insertBefore(k,e),l.appendChild(e))}return d},w=function(a,d,j,l,p){var q,r,s=a.formatter.get(d),w=s[0],x=!0,y=a.dom,z=a.selection,A=function(b){var c=u(a,b,d,j,p);return v(a,s,c,b,b,!0,w,j)},B=function(b){var c,d,e,f,g;if(1===b.nodeType&&y.getContentEditable(b)&&(f=x,x="true"===y.getContentEditable(b),g=!0),c=i.grep(b.childNodes),x&&!g)for(d=0,e=s.length;d<e&&!t(a,s[d],j,b,b);d++);if(w.deep&&c.length){for(d=0,e=c.length;d<e;d++)B(c[d]);g&&(x=f)}},C=function(a){var c=y.get(a?"_start":"_end"),d=c[a?"firstChild":"lastChild"];return b.isBookmarkNode(d)&&(d=d[a?"firstChild":"lastChild"]), -3===d.nodeType&&0===d.data.length&&(d=a?c.previousSibling||c.nextSibling:c.nextSibling||c.previousSibling),y.remove(c,!0),d},D=function(b){var d,e,h=b.commonAncestorContainer;if(b=f.expandRng(a,b,s,!0),w.split){if(d=n(a,b,!0),e=n(a,b),d!==e){if(/^(TR|TH|TD)$/.test(d.nodeName)&&d.firstChild&&(d="TR"===d.nodeName?d.firstChild.firstChild||d:d.firstChild||d),h&&/^T(HEAD|BODY|FOOT|R)$/.test(h.nodeName)&&m(e)&&e.firstChild&&(e=e.firstChild||e),y.isChildOf(d,e)&&!y.isBlock(e)&&!m(d)&&!m(e))return d=o(y,d,"span",{id:"_start","data-mce-type":"bookmark"}),A(d),void(d=C(!0));d=o(y,d,"span",{id:"_start","data-mce-type":"bookmark"}),e=o(y,e,"span",{id:"_end","data-mce-type":"bookmark"}),A(d),A(e),d=C(!0),e=C()}else d=e=A(d);b.startContainer=d.parentNode?d.parentNode:d,b.startOffset=y.nodeIndex(d),b.endContainer=e.parentNode?e.parentNode:e,b.endOffset=y.nodeIndex(e)+1}new c(y).walk(b,function(b){k(b,function(b){B(b),1===b.nodeType&&"underline"===a.dom.getStyle(b,"text-decoration")&&b.parentNode&&"underline"===g.getTextDecoration(y,b.parentNode)&&t(a,{deep:!1,exact:!0,inline:"span",styles:{textDecoration:"underline"}},null,b)})})};if(l)return void(l.nodeType?(r=y.createRng(),r.setStartBefore(l),r.setEndAfter(l),D(r)):D(l));if("false"!==y.getContentEditable(z.getNode()))z.isCollapsed()&&w.inline&&!y.select("td[data-mce-selected],th[data-mce-selected]").length?e.removeCaretFormat(a,d,j,p):(q=z.getBookmark(),D(z.getRng(!0)),z.moveToBookmark(q),w.inline&&h.match(a,d,j,z.getStart())&&g.moveStart(y,z,z.getRng(!0)),a.nodeChanged());else{l=z.getNode();for(var E=0,F=s.length;E<F&&(!s[E].ceFalseOverride||!t(a,s[E],j,l,l));E++);}};return{removeFormat:t,remove:w}}),g("tinymce.core.fmt.MergeFormats",["ephox.katamari.api.Fun","tinymce.core.dom.BookmarkManager","tinymce.core.dom.ElementUtils","tinymce.core.dom.NodeType","tinymce.core.fmt.CaretFormat","tinymce.core.fmt.FormatUtils","tinymce.core.fmt.MatchFormat","tinymce.core.fmt.RemoveFormat","tinymce.core.util.Tools"],function(a,b,c,d,e,f,g,h,i){var j=i.each,k=function(a){return a&&1===a.nodeType&&!b.isBookmarkNode(a)&&!e.isCaretNode(a)&&!d.isBogus(a)},l=function(a,c){var d;for(d=a;d;d=d[c]){if(3===d.nodeType&&0!==d.nodeValue.length)return a;if(1===d.nodeType&&!b.isBookmarkNode(d))return d}return a},m=function(a,b,d){var e,f,g=new c(a);if(b&&d&&(b=l(b,"previousSibling"),d=l(d,"nextSibling"),g.compare(b,d))){for(e=b.nextSibling;e&&e!==d;)f=e,e=e.nextSibling,b.appendChild(f);return a.remove(d),i.each(i.grep(d.childNodes),function(a){b.appendChild(a)}),b}return d},n=function(a,b,c){j(a.childNodes,function(a){k(a)&&(b(a)&&c(a),a.hasChildNodes()&&n(a,b,c))})},o=function(b,c){return a.curry(function(a,c){return!(!c||!f.getStyle(b,c,a))},c)},p=function(b,c,d){return a.curry(function(a,c,d){b.setStyle(d,a,c),""===d.getAttribute("style")&&d.removeAttribute("style"),q(b,d)},c,d)},q=function(a,b){"SPAN"===b.nodeName&&0===a.getAttribs(b).length&&a.remove(b,!0)},r=function(a,b){var c;1===b.nodeType&&b.parentNode&&1===b.parentNode.nodeType&&(c=f.getTextDecoration(a,b.parentNode),a.getStyle(b,"color")&&c?a.setStyle(b,"text-decoration",c):a.getStyle(b,"text-decoration")===c&&a.setStyle(b,"text-decoration",null))},s=function(b,c,d,e){(c.styles.color||c.styles.textDecoration)&&(i.walk(e,a.curry(r,b),"childNodes"),r(b,e))},t=function(a,b,c,d){b.styles&&b.styles.backgroundColor&&n(d,o(a,"fontSize"),p(a,"backgroundColor",f.replaceVars(b.styles.backgroundColor,c)))},u=function(a,b,c,d){"sub"!==b.inline&&"sup"!==b.inline||(n(d,o(a,"fontSize"),p(a,"fontSize","")),a.remove(a.select("sup"===b.inline?"sub":"sup",d),!0))},v=function(a,b,c,d){d&&b.merge_siblings!==!1&&(d=m(a,f.getNonWhiteSpaceSibling(d),d),d=m(a,d,f.getNonWhiteSpaceSibling(d,!0)))},w=function(a,b,c){if(b.clear_child_styles){var d=b.links?"*:not(a)":"*";j(a.select(d,c),function(c){k(c)&&j(b.styles,function(b,d){a.setStyle(c,d,"")})})}},x=function(a,b,c,d){j(b,function(b){j(a.dom.select(b.inline,d),function(d){k(d)&&h.removeFormat(a,b,c,d,b.exact?d:null)}),w(a.dom,b,d)})},y=function(a,b,c,d,e){g.matchNode(a,e.parentNode,c,d)&&h.removeFormat(a,b,d,e)||b.merge_with_parents&&a.dom.getParent(e.parentNode,function(f){if(g.matchNode(a,f,c,d))return h.removeFormat(a,b,d,e),!0})};return{mergeWithChildren:x,mergeUnderlineAndColor:s,mergeBackgroundColorAndFontSize:t,mergeSubSup:u,mergeSiblings:v,mergeWithParents:y}}),g("tinymce.core.fmt.ApplyFormat",["tinymce.core.dom.BookmarkManager","tinymce.core.dom.NodeType","tinymce.core.dom.RangeNormalizer","tinymce.core.dom.RangeUtils","tinymce.core.fmt.CaretFormat","tinymce.core.fmt.ExpandRange","tinymce.core.fmt.FormatUtils","tinymce.core.fmt.Hooks","tinymce.core.fmt.MatchFormat","tinymce.core.fmt.MergeFormats","tinymce.core.util.Tools"],function(a,b,c,d,e,f,g,h,i,j,k){var l=k.each,m=function(c){return c&&1===c.nodeType&&!a.isBookmarkNode(c)&&!e.isCaretNode(c)&&!b.isBogus(c)},n=function(b,o,p,q){var r,s,t=b.formatter.get(o),u=t[0],v=!q&&b.selection.isCollapsed(),w=b.dom,x=b.selection,y=function(a,b){if(b=b||u,a){if(b.onformat&&b.onformat(a,b,p,q),l(b.styles,function(b,c){w.setStyle(a,c,g.replaceVars(b,p))}),b.styles){var c=w.getAttrib(a,"style");c&&a.setAttribute("data-mce-style",c)}l(b.attributes,function(b,c){w.setAttrib(a,c,g.replaceVars(b,p))}),l(b.classes,function(b){b=g.replaceVars(b,p),w.hasClass(a,b)||w.addClass(a,b)})}},z=function(a,b){var c=!1;return!!u.selector&&(l(a,function(a){if(!("collapsed"in a&&a.collapsed!==v))return w.is(b,a.selector)&&!e.isCaretNode(b)?(y(b,a),c=!0,!1):void 0}),c)},A=function(c,f,h,n){var q,r,s=[],v=!0;q=u.inline||u.block,r=c.create(q),y(r),new d(c).walk(f,function(a){var d,f=function(a){var h,j,m,w;if(w=v,h=a.nodeName.toLowerCase(),j=a.parentNode.nodeName.toLowerCase(),1===a.nodeType&&c.getContentEditable(a)&&(w=v,v="true"===c.getContentEditable(a),m=!0),g.isEq(h,"br"))return d=0,void(u.block&&c.remove(a));if(u.wrapper&&i.matchNode(b,a,o,p))return void(d=0);if(v&&!m&&u.block&&!u.wrapper&&g.isTextBlock(b,h)&&g.isValid(b,j,q))return a=c.rename(a,q),y(a),s.push(a),void(d=0);if(u.selector){var x=z(t,a);if(!u.inline||x)return void(d=0)}!v||m||!g.isValid(b,q,h)||!g.isValid(b,j,q)||!n&&3===a.nodeType&&1===a.nodeValue.length&&65279===a.nodeValue.charCodeAt(0)||e.isCaretNode(a)||u.inline&&c.isBlock(a)?(d=0,l(k.grep(a.childNodes),f),m&&(v=w),d=0):(d||(d=c.clone(r,!1),a.parentNode.insertBefore(d,a),s.push(d)),d.appendChild(a))};l(a,f)}),u.links===!0&&l(s,function(a){var b=function(a){"A"===a.nodeName&&y(a,u),l(k.grep(a.childNodes),b)};b(a)}),l(s,function(d){var e,f=function(b){var c=0;return l(b.childNodes,function(b){g.isWhiteSpaceNode(b)||a.isBookmarkNode(b)||c++}),c},h=function(a){var b=!1;return l(a.childNodes,function(a){if(m(a))return b=a,!1}),b},k=function(b){var d,e;return d=h(b),d&&!a.isBookmarkNode(d)&&i.matchName(c,d,u)&&(e=c.clone(d,!1),y(e),c.replace(e,b,!0),c.remove(d,1)),e||b};return e=f(d),(s.length>1||!c.isBlock(d))&&0===e?void c.remove(d,1):void((u.inline||u.wrapper)&&(u.exact||1!==e||(d=k(d)),j.mergeWithChildren(b,t,p,d),j.mergeWithParents(b,u,o,p,d),j.mergeBackgroundColorAndFontSize(c,u,p,d),j.mergeSubSup(c,u,p,d),j.mergeSiblings(c,u,p,d)))})};if("false"!==w.getContentEditable(x.getNode())){if(u){if(q)q.nodeType?z(t,q)||(s=w.createRng(),s.setStartBefore(q),s.setEndAfter(q),A(w,f.expandRng(b,s,t),null,!0)):A(w,q,null,!0);else if(v&&u.inline&&!w.select("td[data-mce-selected],th[data-mce-selected]").length)e.applyCaretFormat(b,o,p);else{var B=b.selection.getNode();b.settings.forced_root_block||!t[0].defaultBlock||w.getParent(B,w.isBlock)||n(b,t[0].defaultBlock),b.selection.setRng(c.normalize(b.selection.getRng())),r=x.getBookmark(),A(w,f.expandRng(b,x.getRng(!0),t),r),u.styles&&j.mergeUnderlineAndColor(w,u,p,B),x.moveToBookmark(r),g.moveStart(w,x,x.getRng(!0)),b.nodeChanged()}h.postProcess(o,b)}}else{q=x.getNode();for(var C=0,D=t.length;C<D;C++)if(t[C].ceFalseOverride&&w.is(q,t[C].selector))return void y(q,t[C])}};return{applyFormat:n}}),g("tinymce.core.fmt.FormatChanged",["ephox.katamari.api.Cell","tinymce.core.fmt.FormatUtils","tinymce.core.fmt.MatchFormat","tinymce.core.util.Tools"],function(a,b,c,d){var e=d.each,f=function(a,f){var g={};a.set({}),f.on("NodeChange",function(h){var i=b.getParents(f.dom,h.element),j={};i=d.grep(i,function(a){return 1===a.nodeType&&!a.getAttribute("data-mce-bogus")}),e(a.get(),function(a,b){e(i,function(d){return f.formatter.matchNode(d,b,{},a.similar)?(g[b]||(e(a,function(a){a(!0,{node:d,format:b,parents:i})}),g[b]=a),j[b]=a,!1):!c.matchesUnInheritedFormatSelector(f,d,b)&&void 0})}),e(g,function(a,b){j[b]||(delete g[b],e(a,function(a){a(!1,{node:h.element,format:b,parents:i})}))})})},g=function(a,b,c,d){var f=a.get();e(b.split(","),function(a){f[a]||(f[a]=[],f[a].similar=d),f[a].push(c)}),a.set(f)},h=function(a,b,c,d,e){null===b.get()&&f(b,a),g(b,c,d,e)};return{formatChanged:h}}),g("tinymce.core.fmt.DefaultFormats",["tinymce.core.util.Tools"],function(a){var b=function(b){var c={valigntop:[{selector:"td,th",styles:{verticalAlign:"top"}}],valignmiddle:[{selector:"td,th",styles:{verticalAlign:"middle"}}],valignbottom:[{selector:"td,th",styles:{verticalAlign:"bottom"}}],alignleft:[{selector:"figure.image",collapsed:!1,classes:"align-left",ceFalseOverride:!0,preview:"font-family font-size"},{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"left"},inherit:!1,preview:!1,defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"left"},preview:"font-family font-size"}],aligncenter:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"center"},inherit:!1,preview:"font-family font-size",defaultBlock:"div"},{selector:"figure.image",collapsed:!1,classes:"align-center",ceFalseOverride:!0,preview:"font-family font-size"},{selector:"img",collapsed:!1,styles:{display:"block",marginLeft:"auto",marginRight:"auto"},preview:!1},{selector:"table",collapsed:!1,styles:{marginLeft:"auto",marginRight:"auto"},preview:"font-family font-size"}],alignright:[{selector:"figure.image",collapsed:!1,classes:"align-right",ceFalseOverride:!0,preview:"font-family font-size"},{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"right"},inherit:!1,preview:"font-family font-size",defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"right"},preview:"font-family font-size"}],alignjustify:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"justify"},inherit:!1,defaultBlock:"div",preview:"font-family font-size"}],bold:[{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}},{inline:"b",remove:"all"}],italic:[{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}},{inline:"i",remove:"all"}],underline:[{inline:"span",styles:{textDecoration:"underline"},exact:!0},{inline:"u",remove:"all"}],strikethrough:[{inline:"span",styles:{textDecoration:"line-through"},exact:!0},{inline:"strike",remove:"all"}],forecolor:{inline:"span",styles:{color:"%value"},links:!0,remove_similar:!0,clear_child_styles:!0},hilitecolor:{inline:"span",styles:{backgroundColor:"%value"},links:!0,remove_similar:!0,clear_child_styles:!0},fontname:{inline:"span",styles:{fontFamily:"%value"},clear_child_styles:!0},fontsize:{inline:"span",styles:{fontSize:"%value"},clear_child_styles:!0},fontsize_class:{inline:"span",attributes:{"class":"%value"}},blockquote:{block:"blockquote",wrapper:1,remove:"all"},subscript:{inline:"sub"},superscript:{inline:"sup"},code:{inline:"code"},link:{inline:"a",selector:"a",remove:"all",split:!0,deep:!0,onmatch:function(){return!0},onformat:function(c,d,e){a.each(e,function(a,d){b.setAttrib(c,d,a)})}},removeformat:[{selector:"b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q,del,ins",remove:"all",split:!0,expand:!1,block_expand:!0,deep:!0},{selector:"span",attributes:["style","class"],remove:"empty",split:!0,expand:!1,deep:!0},{selector:"*",attributes:["style","class"],split:!1,expand:!1,deep:!0}]};return a.each("p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp".split(/\s/),function(a){c[a]={block:a,remove:"all"}}),c};return{get:b}}),g("tinymce.core.fmt.FormatRegistry",["tinymce.core.fmt.DefaultFormats","tinymce.core.util.Tools"],function(a,b){return function(c){var d={},e=function(a){return a?d[a]:d},f=function(a,c){a&&("string"!=typeof a?b.each(a,function(a,b){f(b,a)}):(c=c.length?c:[c],b.each(c,function(a){"undefined"==typeof a.deep&&(a.deep=!a.selector),"undefined"==typeof a.split&&(a.split=!a.selector||a.inline),"undefined"==typeof a.remove&&a.selector&&!a.inline&&(a.remove="none"),a.selector&&a.inline&&(a.mixed=!0,a.block_expand=!0),"string"==typeof a.classes&&(a.classes=a.classes.split(/\s+/))}),d[a]=c))},g=function(a){return a&&d[a]&&delete d[a],d};return f(a.get(c.dom)),f(c.settings.formats),{get:e,register:f,unregister:g}}}),g("tinymce.core.fmt.Preview",["tinymce.core.dom.DOMUtils","tinymce.core.util.Tools","tinymce.core.html.Schema"],function(a,b,c){function d(a,d){function e(a,b){b.classes.length&&j.addClass(a,b.classes.join(" ")),j.setAttribs(a,b.attrs)}function f(a){var b;return k="string"==typeof a?{name:a,classes:[],attrs:{}}:a,b=j.create(k.name),e(b,k),b}function g(a,c){var d="string"!=typeof a?a.nodeName.toLowerCase():a,e=m.getElementRule(d),f=e&&e.parentsRequired;return!(!f||!f.length)&&(c&&b.inArray(f,c)!==-1?c:f[0])}function h(a,c,d){var e,i,k,l=c.length>0&&c[0],m=l&&l.name;if(k=g(a,m))m===k?(i=c[0],c=c.slice(1)):i=k;else if(l)i=c[0],c=c.slice(1);else if(!d)return a;return i&&(e=f(i),e.appendChild(a)),d&&(e||(e=j.create("div"),e.appendChild(a)),b.each(d,function(b){var c=f(b);e.insertBefore(c,a)})),h(e,c,i&&i.siblings)}var i,k,l,m=d&&d.schema||new c({});return a&&a.length?(k=a[0],i=f(k),l=j.create("div"),l.appendChild(h(i,a.slice(1),k.siblings)),l):""}function e(a,b){return d(g(a),b)}function f(a){var c,d={classes:[],attrs:{}};return a=d.selector=b.trim(a),"*"!==a&&(c=a.replace(/(?:([#\.]|::?)([\w\-]+)|(\[)([^\]]+)\]?)/g,function(a,c,e,f,g){switch(c){case"#":d.attrs.id=e;break;case".":d.classes.push(e);break;case":":b.inArray("checked disabled enabled read-only required".split(" "),e)!==-1&&(d.attrs[e]=e)}if("["===f){var h=g.match(/([\w\-]+)(?:\=\"([^\"]+))?/);h&&(d.attrs[h[1]]=h[2])}return""})),d.name=c||"div",d}function g(a){return a&&"string"==typeof a?(a=a.split(/\s*,\s*/)[0],a=a.replace(/\s*(~\+|~|\+|>)\s*/g,"$1"),b.map(a.split(/(?:>|\s+(?![^\[\]]+\]))/),function(a){var c=b.map(a.split(/(?:~\+|~|\+)/),f),d=c.pop();return c.length&&(d.siblings=c),d}).reverse()):[]}function h(a,b){function c(a){return a.replace(/%(\w+)/g,"")}var e,f,h,k,l,m,n="";if(m=a.settings.preview_styles,m===!1)return"";if("string"!=typeof m&&(m="font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow"),"string"==typeof b){if(b=a.formatter.get(b),!b)return;b=b[0]}return"preview"in b&&(m=b.preview,m===!1)?"":(e=b.block||b.inline||"span",k=g(b.selector),k.length?(k[0].name||(k[0].name=e),e=b.selector,f=d(k,a)):f=d([e],a),h=j.select(e,f)[0]||f.firstChild,i(b.styles,function(a,b){a=c(a),a&&j.setStyle(h,b,a)}),i(b.attributes,function(a,b){a=c(a),a&&j.setAttrib(h,b,a)}),i(b.classes,function(a){a=c(a),j.hasClass(h,a)||j.addClass(h,a)}),a.fire("PreviewFormats"),j.setStyles(f,{position:"absolute",left:-65535}),a.getBody().appendChild(f),l=j.getStyle(a.getBody(),"fontSize",!0),l=/px$/.test(l)?parseInt(l,10):0,i(m.split(" "),function(b){var c=j.getStyle(h,b,!0);if(!("background-color"===b&&/transparent|rgba\s*\([^)]+,\s*0\)/.test(c)&&(c=j.getStyle(a.getBody(),b,!0),"#ffffff"===j.toHex(c).toLowerCase())||"color"===b&&"#000000"===j.toHex(c).toLowerCase())){if("font-size"===b&&/em|%$/.test(c)){if(0===l)return;c=parseFloat(c,10)/(/%$/.test(c)?100:1),c=c*l+"px"}"border"===b&&c&&(n+="padding:0 2px;"),n+=b+":"+c+";"}}),a.fire("AfterPreviewFormats"),j.remove(f),n)}var i=b.each,j=a.DOM;return{getCssText:h,parseSelector:g,selectorToHtml:e}}),g("tinymce.core.fmt.ToggleFormat",["tinymce.core.fmt.ApplyFormat","tinymce.core.fmt.MatchFormat","tinymce.core.fmt.RemoveFormat"],function(a,b,c){var d=function(d,e,f,g,h){var i=e.get(f);!b.match(d,f,g,h)||"toggle"in i[0]&&!i[0].toggle?a.applyFormat(d,f,g,h):c.remove(d,f,g,h)};return{toggle:d}}),g("tinymce.core.keyboard.FormatShortcuts",[],function(){var a=function(a){a.addShortcut("meta+b","","Bold"),a.addShortcut("meta+i","","Italic"),a.addShortcut("meta+u","","Underline");for(var b=1;b<=6;b++)a.addShortcut("access+"+b,"",["FormatBlock",!1,"h"+b]);a.addShortcut("access+7","",["FormatBlock",!1,"p"]),a.addShortcut("access+8","",["FormatBlock",!1,"div"]),a.addShortcut("access+9","",["FormatBlock",!1,"address"])};return{setup:a}}),g("tinymce.core.api.Formatter",["ephox.katamari.api.Cell","ephox.katamari.api.Fun","tinymce.core.fmt.ApplyFormat","tinymce.core.fmt.FormatChanged","tinymce.core.fmt.FormatRegistry","tinymce.core.fmt.MatchFormat","tinymce.core.fmt.Preview","tinymce.core.fmt.RemoveFormat","tinymce.core.fmt.ToggleFormat","tinymce.core.keyboard.FormatShortcuts"],function(a,b,c,d,e,f,g,h,i,j){return function(k){var l=e(k),m=a(null);return j.setup(k),{get:l.get,register:l.register,unregister:l.unregister,apply:b.curry(c.applyFormat,k),remove:b.curry(h.remove,k),toggle:b.curry(i.toggle,k,l),match:b.curry(f.match,k),matchAll:b.curry(f.matchAll,k),matchNode:b.curry(f.matchNode,k),canApply:b.curry(f.canApply,k),formatChanged:b.curry(d.formatChanged,k,m),getCssText:b.curry(g.getCssText,k)}}}),g("ephox.sugar.api.properties.Attr",["ephox.katamari.api.Type","ephox.katamari.api.Arr","ephox.katamari.api.Obj","ephox.sugar.api.node.Node","global!Error","global!console"],function(a,b,c,d,e,f){var g=function(b,c,d){if(!(a.isString(d)||a.isBoolean(d)||a.isNumber(d)))throw f.error("Invalid call to Attr.set. Key ",c,":: Value ",d,":: Element ",b),new e("Attribute value was not simple");b.setAttribute(c,d+"")},h=function(a,b,c){g(a.dom(),b,c)},i=function(a,b){var d=a.dom();c.each(b,function(a,b){g(d,b,a)})},j=function(a,b){var c=a.dom().getAttribute(b);return null===c?void 0:c},k=function(a,b){var c=a.dom();return!(!c||!c.hasAttribute)&&c.hasAttribute(b)},l=function(a,b){a.dom().removeAttribute(b)},m=function(a){var b=a.dom().attributes;return void 0===b||null===b||0===b.length},n=function(a){return b.foldl(a.dom().attributes,function(a,b){return a[b.name]=b.value,a},{})},o=function(a,b,c){k(a,c)&&!k(b,c)&&h(b,c,j(a,c))},p=function(a,c,e){d.isElement(a)&&d.isElement(c)&&b.each(e,function(b){o(a,c,b)})};return{clone:n,set:h,setAll:i,get:j,has:k,remove:l,hasNone:m,transfer:p}}),g("ephox.sugar.impl.Style",[],function(){var a=function(a){return void 0!==a.style};return{isSupported:a}}),h("global!window",window),g("ephox.sugar.api.properties.Css",["ephox.katamari.api.Type","ephox.katamari.api.Arr","ephox.katamari.api.Obj","ephox.katamari.api.Option","ephox.sugar.api.properties.Attr","ephox.sugar.api.node.Body","ephox.sugar.api.node.Element","ephox.sugar.api.node.Node","ephox.sugar.impl.Style","ephox.katamari.api.Strings","global!Error","global!console","global!window"],function(a,b,c,d,e,f,g,h,i,j,k,l,m){var n=function(b,c,d){if(!a.isString(d))throw l.error("Invalid call to CSS.set. Property ",c,":: Value ",d,":: Element ",b),new k("CSS value must be a string: "+d);i.isSupported(b)&&b.style.setProperty(c,d)},o=function(a,b){i.isSupported(a)&&a.style.removeProperty(b)},p=function(a,b,c){var d=a.dom();n(d,b,c)},q=function(a,b){var d=a.dom();c.each(b,function(a,b){n(d,b,a)})},r=function(a,b){var d=a.dom();c.each(b,function(a,b){a.fold(function(){o(d,b)},function(a){n(d,b,a)})})},s=function(a,b){var c=a.dom(),d=m.getComputedStyle(c),e=d.getPropertyValue(b),g=""!==e||f.inBody(a)?e:t(c,b);return null===g?void 0:g},t=function(a,b){return i.isSupported(a)?a.style.getPropertyValue(b):""},u=function(a,b){var c=a.dom(),e=t(c,b);return d.from(e).filter(function(a){return a.length>0})},v=function(a,b,c){var d=g.fromTag(a);p(d,b,c);var e=u(d,b);return e.isSome()},w=function(a,b){var c=a.dom();o(c,b),e.has(a,"style")&&""===j.trim(e.get(a,"style"))&&e.remove(a,"style")},x=function(a,b){var c=e.get(a,"style"),d=b(a),f=void 0===c?e.remove:e.set;return f(a,"style",c),d},y=function(a,b){var c=a.dom(),d=b.dom();i.isSupported(c)&&i.isSupported(d)&&(d.style.cssText=c.style.cssText)},z=function(a){return a.dom().offsetWidth},A=function(a,b,c){u(a,c).each(function(a){u(b,c).isNone()&&p(b,c,a)})},B=function(a,c,d){h.isElement(a)&&h.isElement(c)&&b.each(d,function(b){A(a,c,b)})};return{copy:y,set:p,preserve:x,setAll:q,setOptions:r,remove:w,get:s,getRaw:u,isValidValue:v,reflow:z,transfer:B}}),g("tinymce.core.EditorView",["ephox.katamari.api.Fun","ephox.katamari.api.Option","ephox.sugar.api.dom.Compare","ephox.sugar.api.node.Element","ephox.sugar.api.properties.Css","ephox.sugar.api.search.Traverse"],function(a,b,c,d,e,f){var g=function(a,b){var c=b.dom();return c[a]},h=function(a,b){return parseInt(e.get(b,a),10)},i=a.curry(g,"clientWidth"),j=a.curry(g,"clientHeight"),k=a.curry(h,"margin-top"),l=a.curry(h,"margin-left"),m=function(a){return a.dom().getBoundingClientRect()},n=function(a,b,c){var d=i(a),e=j(a);return b>=0&&c>=0&&b<=d&&c<=e},o=function(a,b,c,d){var e=m(b),f=a?e.left+b.dom().clientLeft+l(b):0,g=a?e.top+b.dom().clientTop+k(b):0,h=c-f,i=d-g;return{x:h,y:i}},p=function(a,b,c){var e=d.fromDom(a.getBody()),g=a.inline?e:f.documentElement(e),h=o(a.inline,g,b,c);return n(g,h.x,h.y)},q=function(a){return b.from(a).map(d.fromDom)},r=function(a){var b=a.inline?a.getBody():a.getContentAreaContainer();return q(b).map(function(a){return c.contains(f.owner(a),a)}).getOr(!1)};return{isXYInContentArea:p,isEditorAttachedToDom:r}}),g("tinymce.core.ui.DomUtils",["tinymce.core.Env","tinymce.core.util.Tools","tinymce.core.dom.DOMUtils"],function(a,b,c){"use strict";var d=0,e={id:function(){return"mceu_"+d++},create:function(a,d,e){var f=document.createElement(a);return c.DOM.setAttribs(f,d),"string"==typeof e?f.innerHTML=e:b.each(e,function(a){a.nodeType&&f.appendChild(a)}),f},createFragment:function(a){return c.DOM.createFragment(a)},getWindowSize:function(){return c.DOM.getViewPort()},getSize:function(a){var b,c;if(a.getBoundingClientRect){var d=a.getBoundingClientRect();b=Math.max(d.width||d.right-d.left,a.offsetWidth),c=Math.max(d.height||d.bottom-d.bottom,a.offsetHeight)}else b=a.offsetWidth,c=a.offsetHeight;return{width:b,height:c}},getPos:function(a,b){return c.DOM.getPos(a,b||e.getContainer())},getContainer:function(){return a.container?a.container:document.body},getViewPort:function(a){return c.DOM.getViewPort(a)},get:function(a){return document.getElementById(a)},addClass:function(a,b){return c.DOM.addClass(a,b)},removeClass:function(a,b){return c.DOM.removeClass(a,b)},hasClass:function(a,b){return c.DOM.hasClass(a,b)},toggleClass:function(a,b,d){return c.DOM.toggleClass(a,b,d)},css:function(a,b,d){return c.DOM.setStyle(a,b,d)},getRuntimeStyle:function(a,b){return c.DOM.getStyle(a,b,!0)},on:function(a,b,d,e){return c.DOM.bind(a,b,d,e)},off:function(a,b,d){return c.DOM.unbind(a,b,d)},fire:function(a,b,d){return c.DOM.fire(a,b,d)},innerHtml:function(a,b){c.DOM.setHTML(a,b)}};return e}),g("tinymce.core.util.Class",["tinymce.core.util.Tools"],function(a){function b(){}var c,d,e=a.each,f=a.extend;return b.extend=c=function(a){function b(){var a,b,c,e=this;if(!d&&(e.init&&e.init.apply(e,arguments),b=e.Mixins))for(a=b.length;a--;)c=b[a],c.init&&c.init.apply(e,arguments)}function g(){return this}function h(a,b){return function(){var c,d=this,e=d._super;return d._super=m[a],c=b.apply(d,arguments),d._super=e,c}}var i,j,k,l=this,m=l.prototype;d=!0,i=new l,d=!1,a.Mixins&&(e(a.Mixins,function(b){for(var c in b)"init"!==c&&(a[c]=b[c])}),m.Mixins&&(a.Mixins=m.Mixins.concat(a.Mixins))),a.Methods&&e(a.Methods.split(","),function(b){a[b]=g}),a.Properties&&e(a.Properties.split(","),function(b){var c="_"+b;a[b]=function(a){var b,d=this;return a!==b?(d[c]=a,d):d[c]}}),a.Statics&&e(a.Statics,function(a,c){b[c]=a}),a.Defaults&&m.Defaults&&(a.Defaults=f({},m.Defaults,a.Defaults));for(j in a)k=a[j],"function"==typeof k&&m[j]?i[j]=h(j,k):i[j]=k;return b.prototype=i,b.constructor=b,b.extend=c,b},b}),g("tinymce.core.util.EventDispatcher",["tinymce.core.util.Tools"],function(a){function b(b){function c(){return!1}function d(){return!0}function e(a,e){var f,h,i,k;if(a=a.toLowerCase(),e=e||{},e.type=a,e.target||(e.target=j),e.preventDefault||(e.preventDefault=function(){e.isDefaultPrevented=d},e.stopPropagation=function(){e.isPropagationStopped=d},e.stopImmediatePropagation=function(){e.isImmediatePropagationStopped=d},e.isDefaultPrevented=c,e.isPropagationStopped=c,e.isImmediatePropagationStopped=c),b.beforeFire&&b.beforeFire(e),f=m[a])for(h=0,i=f.length;h<i;h++){if(k=f[h],k.once&&g(a,k.func),e.isImmediatePropagationStopped())return e.stopPropagation(),e;if(k.func.call(j,e)===!1)return e.preventDefault(),e}return e}function f(b,d,e,f){var g,h,i;if(d===!1&&(d=c),d)for(d={func:d},f&&a.extend(d,f),h=b.toLowerCase().split(" "),i=h.length;i--;)b=h[i],g=m[b],g||(g=m[b]=[],k(b,!0)),e?g.unshift(d):g.push(d);return l}function g(a,b){var c,d,e,f,g;if(a)for(f=a.toLowerCase().split(" "),c=f.length;c--;){if(a=f[c],d=m[a],!a){for(e in m)k(e,!1),delete m[e];return l}if(d){if(b)for(g=d.length;g--;)d[g].func===b&&(d=d.slice(0,g).concat(d.slice(g+1)),m[a]=d);else d.length=0;d.length||(k(a,!1),delete m[a])}}else{for(a in m)k(a,!1);m={}}return l}function h(a,b,c){return f(a,b,c,{once:!0})}function i(a){return a=a.toLowerCase(),!(!m[a]||0===m[a].length)}var j,k,l=this,m={};b=b||{},j=b.scope||l,k=b.toggleEvent||c,l.fire=e,l.on=f,l.off=g,l.once=h,l.has=i}var c=a.makeMap("focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange mouseout mouseenter mouseleave wheel keydown keypress keyup input contextmenu dragstart dragend dragover draggesture dragdrop drop drag submit compositionstart compositionend compositionupdate touchstart touchmove touchend"," ");return b.isNative=function(a){return!!c[a.toLowerCase()]},b}),g("tinymce.core.data.Binding",[],function(){function a(a){this.create=a.create}return a.create=function(b,c){return new a({create:function(a,d){function e(b){a.set(d,b.value)}function f(a){b.set(c,a.value)}var g;return a.on("change:"+d,f),b.on("change:"+c,e),g=a._bindings,g||(g=a._bindings=[],a.on("destroy",function(){for(var a=g.length;a--;)g[a]()})),g.push(function(){b.off("change:"+c,e)}),b.get(c)}})},a}),g("tinymce.core.util.Observable",["tinymce.core.util.EventDispatcher"],function(a){function b(b){return b._eventDispatcher||(b._eventDispatcher=new a({scope:b,toggleEvent:function(c,d){a.isNative(c)&&b.toggleNativeEvent&&b.toggleNativeEvent(c,d)}})),b._eventDispatcher}return{fire:function(a,c,d){var e=this;if(e.removed&&"remove"!==a)return c;if(c=b(e).fire(a,c,d),d!==!1&&e.parent)for(var f=e.parent();f&&!c.isPropagationStopped();)f.fire(a,c,!1),f=f.parent();return c},on:function(a,c,d){return b(this).on(a,c,d)},off:function(a,c){return b(this).off(a,c)},once:function(a,c){return b(this).once(a,c)},hasEventListeners:function(a){return b(this).has(a)}}}),g("tinymce.core.data.ObservableObject",["tinymce.core.data.Binding","tinymce.core.util.Class","tinymce.core.util.Observable","tinymce.core.util.Tools"],function(a,b,c,d){function e(a){return a.nodeType>0}function f(a,b){var c,g;if(a===b)return!0;if(null===a||null===b)return a===b;if("object"!=typeof a||"object"!=typeof b)return a===b;if(d.isArray(b)){if(a.length!==b.length)return!1;for(c=a.length;c--;)if(!f(a[c],b[c]))return!1}if(e(a)||e(b))return a===b;g={};for(c in b){if(!f(a[c],b[c]))return!1;g[c]=!0}for(c in a)if(!g[c]&&!f(a[c],b[c]))return!1;return!0}return b.extend({Mixins:[c],init:function(b){var c,d;b=b||{};for(c in b)d=b[c],d instanceof a&&(b[c]=d.create(this,c));this.data=b},set:function(b,c){var d,e,g=this.data[b];if(c instanceof a&&(c=c.create(this,b)),"object"==typeof b){for(d in b)this.set(d,b[d]);return this}return f(g,c)||(this.data[b]=c,e={target:this,name:b,value:c,oldValue:g},this.fire("change:"+b,e),this.fire("change",e)),this},get:function(a){return this.data[a]},has:function(a){return a in this.data},bind:function(b){return a.create(this,b)},destroy:function(){this.fire("destroy")}})}),g("tinymce.core.ui.Selector",["tinymce.core.util.Class"],function(a){"use strict";function b(a){for(var b,c=[],d=a.length;d--;)b=a[d],b.__checked||(c.push(b),b.__checked=1);for(d=c.length;d--;)delete c[d].__checked;return c}var c,d=/^([\w\\*]+)?(?:#([\w\-\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i,e=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,f=/^\s*|\s*$/g,g=a.extend({init:function(a){function b(a){if(a)return a=a.toLowerCase(),function(b){return"*"===a||b.type===a}}function c(a){if(a)return function(b){return b._name===a}}function g(a){if(a)return a=a.split("."),function(b){for(var c=a.length;c--;)if(!b.classes.contains(a[c]))return!1;return!0}}function h(a,b,c){if(a)return function(d){var e=d[a]?d[a]():"";return b?"="===b?e===c:"*="===b?e.indexOf(c)>=0:"~="===b?(" "+e+" ").indexOf(" "+c+" ")>=0:"!="===b?e!=c:"^="===b?0===e.indexOf(c):"$="===b&&e.substr(e.length-c.length)===c:!!c}}function i(a){var b;if(a)return a=/(?:not\((.+)\))|(.+)/i.exec(a),a[1]?(b=k(a[1],[]),function(a){return!l(a,b)}):(a=a[2],function(b,c,d){return"first"===a?0===c:"last"===a?c===d-1:"even"===a?c%2===0:"odd"===a?c%2===1:!!b[a]&&b[a]()})}function j(a,e,j){function k(a){a&&e.push(a)}var l;return l=d.exec(a.replace(f,"")),k(b(l[1])),k(c(l[2])),k(g(l[3])),k(h(l[4],l[5],l[6])),k(i(l[7])),e.pseudo=!!l[7],e.direct=j,e}function k(a,b){var c,d,f,g=[];do if(e.exec(""),d=e.exec(a),d&&(a=d[3],g.push(d[1]),d[2])){c=d[3];break}while(d);for(c&&k(c,b),a=[],f=0;f<g.length;f++)">"!=g[f]&&a.push(j(g[f],[],">"===g[f-1]));return b.push(a),b}var l=this.match;this._selectors=k(a,[])},match:function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;for(b=b||this._selectors,c=0,d=b.length;c<d;c++){for(g=b[c],f=g.length,o=a,n=0,e=f-1;e>=0;e--)for(j=g[e];o;){if(j.pseudo)for(m=o.parent().items(),k=l=m.length;k--&&m[k]!==o;);for(h=0,i=j.length;h<i;h++)if(!j[h](o,k,l)){h=i+1;break}if(h===i){n++;break}if(e===f-1)break;o=o.parent()}if(n===f)return!0}return!1},find:function(a){function d(a,b,c){var e,f,g,i,j,k=b[c];for(e=0,f=a.length;e<f;e++){for(j=a[e],g=0,i=k.length;g<i;g++)if(!k[g](j,e,f)){g=i+1;break}if(g===i)c==b.length-1?h.push(j):j.items&&d(j.items(),b,c+1);else if(k.direct)return;j.items&&d(j.items(),b,c)}}var e,f,h=[],i=this._selectors;if(a.items){for(e=0,f=i.length;e<f;e++)d(a.items(),i[e],0);f>1&&(h=b(h))}return c||(c=g.Collection),new c(h)}});return g}),g("tinymce.core.ui.Collection",["tinymce.core.util.Tools","tinymce.core.ui.Selector","tinymce.core.util.Class"],function(a,b,c){"use strict";var d,e,f=Array.prototype.push,g=Array.prototype.slice;return e={length:0,init:function(a){a&&this.add(a)},add:function(b){var c=this;return a.isArray(b)?f.apply(c,b):b instanceof d?c.add(b.toArray()):f.call(c,b),c},set:function(a){var b,c=this,d=c.length;for(c.length=0,c.add(a),b=c.length;b<d;b++)delete c[b];return c},filter:function(a){var c,e,f,g,h=this,i=[];for("string"==typeof a?(a=new b(a),g=function(b){return a.match(b)}):g=a,c=0,e=h.length;c<e;c++)f=h[c],g(f)&&i.push(f);return new d(i)},slice:function(){return new d(g.apply(this,arguments))},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},each:function(b){return a.each(this,b),this},toArray:function(){return a.toArray(this)},indexOf:function(a){for(var b=this,c=b.length;c--&&b[c]!==a;);return c},reverse:function(){return new d(a.toArray(this).reverse())},hasClass:function(a){return!!this[0]&&this[0].classes.contains(a)},prop:function(a,b){var c,d,e=this;return b!==c?(e.each(function(c){c[a]&&c[a](b)}),e):(d=e[0],d&&d[a]?d[a]():void 0)},exec:function(b){var c=this,d=a.toArray(arguments).slice(1);return c.each(function(a){a[b]&&a[b].apply(a,d)}),c},remove:function(){for(var a=this.length;a--;)this[a].remove();return this; -},addClass:function(a){return this.each(function(b){b.classes.add(a)})},removeClass:function(a){return this.each(function(b){b.classes.remove(a)})}},a.each("fire on off show hide append prepend before after reflow".split(" "),function(b){e[b]=function(){var c=a.toArray(arguments);return this.each(function(a){b in a&&a[b].apply(a,c)}),this}}),a.each("text name disabled active selected checked visible parent value data".split(" "),function(a){e[a]=function(b){return this.prop(a,b)}}),d=c.extend(e),b.Collection=d,d}),g("tinymce.core.ui.BoxUtils",[],function(){"use strict";return{parseBox:function(a){var b,c=10;if(a)return"number"==typeof a?(a=a||0,{top:a,left:a,bottom:a,right:a}):(a=a.split(" "),b=a.length,1===b?a[1]=a[2]=a[3]=a[0]:2===b?(a[2]=a[0],a[3]=a[1]):3===b&&(a[3]=a[1]),{top:parseInt(a[0],c)||0,right:parseInt(a[1],c)||0,bottom:parseInt(a[2],c)||0,left:parseInt(a[3],c)||0})},measureBox:function(a,b){function c(b){var c=document.defaultView;return c?(b=b.replace(/[A-Z]/g,function(a){return"-"+a}),c.getComputedStyle(a,null).getPropertyValue(b)):a.currentStyle[b]}function d(a){var b=parseFloat(c(a),10);return isNaN(b)?0:b}return{top:d(b+"TopWidth"),right:d(b+"RightWidth"),bottom:d(b+"BottomWidth"),left:d(b+"LeftWidth")}}}}),g("tinymce.core.ui.ClassList",["tinymce.core.util.Tools"],function(a){"use strict";function b(){}function c(a){this.cls=[],this.cls._map={},this.onchange=a||b,this.prefix=""}return a.extend(c.prototype,{add:function(a){return a&&!this.contains(a)&&(this.cls._map[a]=!0,this.cls.push(a),this._change()),this},remove:function(a){if(this.contains(a)){for(var b=0;b<this.cls.length&&this.cls[b]!==a;b++);this.cls.splice(b,1),delete this.cls._map[a],this._change()}return this},toggle:function(a,b){var c=this.contains(a);return c!==b&&(c?this.remove(a):this.add(a),this._change()),this},contains:function(a){return!!this.cls._map[a]},_change:function(){delete this.clsValue,this.onchange.call(this)}}),c.prototype.toString=function(){var a;if(this.clsValue)return this.clsValue;a="";for(var b=0;b<this.cls.length;b++)b>0&&(a+=" "),a+=this.prefix+this.cls[b];return a},c}),g("tinymce.core.ui.ReflowQueue",["tinymce.core.util.Delay"],function(a){var b,c={};return{add:function(d){var e=d.parent();if(e){if(!e._layout||e._layout.isNative())return;c[e._id]||(c[e._id]=e),b||(b=!0,a.requestAnimationFrame(function(){var a,d;b=!1;for(a in c)d=c[a],d.state.get("rendered")&&d.reflow();c={}},document.body))}},remove:function(a){c[a._id]&&delete c[a._id]}}}),g("tinymce.core.ui.Control",["tinymce.core.util.Class","tinymce.core.util.Tools","tinymce.core.util.EventDispatcher","tinymce.core.data.ObservableObject","tinymce.core.ui.Collection","tinymce.core.ui.DomUtils","tinymce.core.dom.DomQuery","tinymce.core.ui.BoxUtils","tinymce.core.ui.ClassList","tinymce.core.ui.ReflowQueue"],function(a,b,c,d,e,f,g,h,i,j){"use strict";function k(a){return a._eventDispatcher||(a._eventDispatcher=new c({scope:a,toggleEvent:function(b,d){d&&c.isNative(b)&&(a._nativeEvents||(a._nativeEvents={}),a._nativeEvents[b]=!0,a.state.get("rendered")&&l(a))}})),a._eventDispatcher}function l(a){function b(b){var c=a.getParentCtrl(b.target);c&&c.fire(b.type,b)}function c(){var a=j._lastHoverCtrl;a&&(a.fire("mouseleave",{target:a.getEl()}),a.parents().each(function(a){a.fire("mouseleave",{target:a.getEl()})}),j._lastHoverCtrl=null)}function d(b){var c,d,e,f=a.getParentCtrl(b.target),g=j._lastHoverCtrl,h=0;if(f!==g){if(j._lastHoverCtrl=f,d=f.parents().toArray().reverse(),d.push(f),g){for(e=g.parents().toArray().reverse(),e.push(g),h=0;h<e.length&&d[h]===e[h];h++);for(c=e.length-1;c>=h;c--)g=e[c],g.fire("mouseleave",{target:g.getEl()})}for(c=h;c<d.length;c++)f=d[c],f.fire("mouseenter",{target:f.getEl()})}}function e(b){b.preventDefault(),"mousewheel"==b.type?(b.deltaY=-.025*b.wheelDelta,b.wheelDeltaX&&(b.deltaX=-.025*b.wheelDeltaX)):(b.deltaX=0,b.deltaY=b.detail),b=a.fire("wheel",b)}var f,h,i,j,k,l;if(k=a._nativeEvents){for(i=a.parents().toArray(),i.unshift(a),f=0,h=i.length;!j&&f<h;f++)j=i[f]._eventsRoot;for(j||(j=i[i.length-1]||a),a._eventsRoot=j,h=f,f=0;f<h;f++)i[f]._eventsRoot=j;var m=j._delegates;m||(m=j._delegates={});for(l in k){if(!k)return!1;"wheel"!==l||o?("mouseenter"===l||"mouseleave"===l?j._hasMouseEnter||(g(j.getEl()).on("mouseleave",c).on("mouseover",d),j._hasMouseEnter=1):m[l]||(g(j.getEl()).on(l,b),m[l]=!0),k[l]=!1):n?g(a.getEl()).on("mousewheel",e):g(a.getEl()).on("DOMMouseScroll",e)}}}var m,n="onmousewheel"in document,o=!1,p="mce-",q=0,r={Statics:{classPrefix:p},isRtl:function(){return m.rtl},classPrefix:p,init:function(a){function c(a){var b;for(a=a.split(" "),b=0;b<a.length;b++)j.classes.add(a[b])}var e,f,j=this;j.settings=a=b.extend({},j.Defaults,a),j._id=a.id||"mceu_"+q++,j._aria={role:a.role},j._elmCache={},j.$=g,j.state=new d({visible:!0,active:!1,disabled:!1,value:""}),j.data=new d(a.data),j.classes=new i(function(){j.state.get("rendered")&&(j.getEl().className=this.toString())}),j.classes.prefix=j.classPrefix,e=a.classes,e&&(j.Defaults&&(f=j.Defaults.classes,f&&e!=f&&c(f)),c(e)),b.each("title text name visible disabled active value".split(" "),function(b){b in a&&j[b](a[b])}),j.on("click",function(){if(j.disabled())return!1}),j.settings=a,j.borderBox=h.parseBox(a.border),j.paddingBox=h.parseBox(a.padding),j.marginBox=h.parseBox(a.margin),a.hidden&&j.hide()},Properties:"parent,name",getContainerElm:function(){return f.getContainer()},getParentCtrl:function(a){for(var b,c=this.getRoot().controlIdLookup;a&&c&&!(b=c[a.id]);)a=a.parentNode;return b},initLayoutRect:function(){var a,b,c,d,e,g,i,j,k,l,m=this,n=m.settings,o=m.getEl();a=m.borderBox=m.borderBox||h.measureBox(o,"border"),m.paddingBox=m.paddingBox||h.measureBox(o,"padding"),m.marginBox=m.marginBox||h.measureBox(o,"margin"),l=f.getSize(o),j=n.minWidth,k=n.minHeight,e=j||l.width,g=k||l.height,c=n.width,d=n.height,i=n.autoResize,i="undefined"!=typeof i?i:!c&&!d,c=c||e,d=d||g;var p=a.left+a.right,q=a.top+a.bottom,r=n.maxWidth||65535,s=n.maxHeight||65535;return m._layoutRect=b={x:n.x||0,y:n.y||0,w:c,h:d,deltaW:p,deltaH:q,contentW:c-p,contentH:d-q,innerW:c-p,innerH:d-q,startMinWidth:j||0,startMinHeight:k||0,minW:Math.min(e,r),minH:Math.min(g,s),maxW:r,maxH:s,autoResize:i,scrollW:0},m._lastLayoutRect={},b},layoutRect:function(a){var b,c,d,e,f,g,h=this,i=h._layoutRect;return i||(i=h.initLayoutRect()),a?(d=i.deltaW,e=i.deltaH,a.x!==f&&(i.x=a.x),a.y!==f&&(i.y=a.y),a.minW!==f&&(i.minW=a.minW),a.minH!==f&&(i.minH=a.minH),c=a.w,c!==f&&(c=c<i.minW?i.minW:c,c=c>i.maxW?i.maxW:c,i.w=c,i.innerW=c-d),c=a.h,c!==f&&(c=c<i.minH?i.minH:c,c=c>i.maxH?i.maxH:c,i.h=c,i.innerH=c-e),c=a.innerW,c!==f&&(c=c<i.minW-d?i.minW-d:c,c=c>i.maxW-d?i.maxW-d:c,i.innerW=c,i.w=c+d),c=a.innerH,c!==f&&(c=c<i.minH-e?i.minH-e:c,c=c>i.maxH-e?i.maxH-e:c,i.innerH=c,i.h=c+e),a.contentW!==f&&(i.contentW=a.contentW),a.contentH!==f&&(i.contentH=a.contentH),b=h._lastLayoutRect,b.x===i.x&&b.y===i.y&&b.w===i.w&&b.h===i.h||(g=m.repaintControls,g&&g.map&&!g.map[h._id]&&(g.push(h),g.map[h._id]=!0),b.x=i.x,b.y=i.y,b.w=i.w,b.h=i.h),h):i},repaint:function(){var a,b,c,d,e,f,g,h,i,j,k=this;i=document.createRange?function(a){return a}:Math.round,a=k.getEl().style,d=k._layoutRect,h=k._lastRepaintRect||{},e=k.borderBox,f=e.left+e.right,g=e.top+e.bottom,d.x!==h.x&&(a.left=i(d.x)+"px",h.x=d.x),d.y!==h.y&&(a.top=i(d.y)+"px",h.y=d.y),d.w!==h.w&&(j=i(d.w-f),a.width=(j>=0?j:0)+"px",h.w=d.w),d.h!==h.h&&(j=i(d.h-g),a.height=(j>=0?j:0)+"px",h.h=d.h),k._hasBody&&d.innerW!==h.innerW&&(j=i(d.innerW),c=k.getEl("body"),c&&(b=c.style,b.width=(j>=0?j:0)+"px"),h.innerW=d.innerW),k._hasBody&&d.innerH!==h.innerH&&(j=i(d.innerH),c=c||k.getEl("body"),c&&(b=b||c.style,b.height=(j>=0?j:0)+"px"),h.innerH=d.innerH),k._lastRepaintRect=h,k.fire("repaint",{},!1)},updateLayoutRect:function(){var a=this;a.parent()._lastRect=null,f.css(a.getEl(),{width:"",height:""}),a._layoutRect=a._lastRepaintRect=a._lastLayoutRect=null,a.initLayoutRect()},on:function(a,b){function c(a){var b,c;return"string"!=typeof a?a:function(e){return b||d.parentsAndSelf().each(function(d){var e=d.settings.callbacks;if(e&&(b=e[a]))return c=d,!1}),b?b.call(c,e):(e.action=a,void this.fire("execute",e))}}var d=this;return k(d).on(a,c(b)),d},off:function(a,b){return k(this).off(a,b),this},fire:function(a,b,c){var d=this;if(b=b||{},b.control||(b.control=d),b=k(d).fire(a,b),c!==!1&&d.parent)for(var e=d.parent();e&&!b.isPropagationStopped();)e.fire(a,b,!1),e=e.parent();return b},hasEventListeners:function(a){return k(this).has(a)},parents:function(a){var b,c=this,d=new e;for(b=c.parent();b;b=b.parent())d.add(b);return a&&(d=d.filter(a)),d},parentsAndSelf:function(a){return new e(this).add(this.parents(a))},next:function(){var a=this.parent().items();return a[a.indexOf(this)+1]},prev:function(){var a=this.parent().items();return a[a.indexOf(this)-1]},innerHtml:function(a){return this.$el.html(a),this},getEl:function(a){var b=a?this._id+"-"+a:this._id;return this._elmCache[b]||(this._elmCache[b]=g("#"+b)[0]),this._elmCache[b]},show:function(){return this.visible(!0)},hide:function(){return this.visible(!1)},focus:function(){try{this.getEl().focus()}catch(a){}return this},blur:function(){return this.getEl().blur(),this},aria:function(a,b){var c=this,d=c.getEl(c.ariaTarget);return"undefined"==typeof b?c._aria[a]:(c._aria[a]=b,c.state.get("rendered")&&d.setAttribute("role"==a?a:"aria-"+a,b),c)},encode:function(a,b){return b!==!1&&(a=this.translate(a)),(a||"").replace(/[&<>"]/g,function(a){return"&#"+a.charCodeAt(0)+";"})},translate:function(a){return m.translate?m.translate(a):a},before:function(a){var b=this,c=b.parent();return c&&c.insert(a,c.items().indexOf(b),!0),b},after:function(a){var b=this,c=b.parent();return c&&c.insert(a,c.items().indexOf(b)),b},remove:function(){var a,b,c=this,d=c.getEl(),e=c.parent();if(c.items){var f=c.items().toArray();for(b=f.length;b--;)f[b].remove()}e&&e.items&&(a=[],e.items().each(function(b){b!==c&&a.push(b)}),e.items().set(a),e._lastRect=null),c._eventsRoot&&c._eventsRoot==c&&g(d).off();var h=c.getRoot().controlIdLookup;return h&&delete h[c._id],d&&d.parentNode&&d.parentNode.removeChild(d),c.state.set("rendered",!1),c.state.destroy(),c.fire("remove"),c},renderBefore:function(a){return g(a).before(this.renderHtml()),this.postRender(),this},renderTo:function(a){return g(a||this.getContainerElm()).append(this.renderHtml()),this.postRender(),this},preRender:function(){},render:function(){},renderHtml:function(){return'<div id="'+this._id+'" class="'+this.classes+'"></div>'},postRender:function(){var a,b,c,d,e,f=this,h=f.settings;f.$el=g(f.getEl()),f.state.set("rendered",!0);for(d in h)0===d.indexOf("on")&&f.on(d.substr(2),h[d]);if(f._eventsRoot){for(c=f.parent();!e&&c;c=c.parent())e=c._eventsRoot;if(e)for(d in e._nativeEvents)f._nativeEvents[d]=!0}l(f),h.style&&(a=f.getEl(),a&&(a.setAttribute("style",h.style),a.style.cssText=h.style)),f.settings.border&&(b=f.borderBox,f.$el.css({"border-top-width":b.top,"border-right-width":b.right,"border-bottom-width":b.bottom,"border-left-width":b.left}));var i=f.getRoot();i.controlIdLookup||(i.controlIdLookup={}),i.controlIdLookup[f._id]=f;for(var k in f._aria)f.aria(k,f._aria[k]);f.state.get("visible")===!1&&(f.getEl().style.display="none"),f.bindStates(),f.state.on("change:visible",function(a){var b,c=a.value;f.state.get("rendered")&&(f.getEl().style.display=c===!1?"none":"",f.getEl().getBoundingClientRect()),b=f.parent(),b&&(b._lastRect=null),f.fire(c?"show":"hide"),j.add(f)}),f.fire("postrender",{},!1)},bindStates:function(){},scrollIntoView:function(a){function b(a,b){var c,d,e=a;for(c=d=0;e&&e!=b&&e.nodeType;)c+=e.offsetLeft||0,d+=e.offsetTop||0,e=e.offsetParent;return{x:c,y:d}}var c,d,e,f,g,h,i=this.getEl(),j=i.parentNode,k=b(i,j);return c=k.x,d=k.y,e=i.offsetWidth,f=i.offsetHeight,g=j.clientWidth,h=j.clientHeight,"end"==a?(c-=g-e,d-=h-f):"center"==a&&(c-=g/2-e/2,d-=h/2-f/2),j.scrollLeft=c,j.scrollTop=d,this},getRoot:function(){for(var a,b=this,c=[];b;){if(b.rootControl){a=b.rootControl;break}c.push(b),a=b,b=b.parent()}a||(a=this);for(var d=c.length;d--;)c[d].rootControl=a;return a},reflow:function(){j.remove(this);var a=this.parent();return a&&a._layout&&!a._layout.isNative()&&a.reflow(),this}};return b.each("text title visible disabled active value".split(" "),function(a){r[a]=function(b){return 0===arguments.length?this.state.get(a):("undefined"!=typeof b&&this.state.set(a,b),this)}}),m=a.extend(r)}),g("tinymce.core.ui.Movable",["tinymce.core.ui.DomUtils"],function(a){"use strict";function b(b,c,d){var e,f,g,h,i,j,k,l,m,n;return m=a.getViewPort(),f=a.getPos(c),g=f.x,h=f.y,b.state.get("fixed")&&"static"==a.getRuntimeStyle(document.body,"position")&&(g-=m.x,h-=m.y),e=b.getEl(),n=a.getSize(e),i=n.width,j=n.height,n=a.getSize(c),k=n.width,l=n.height,d=(d||"").split(""),"b"===d[0]&&(h+=l),"r"===d[1]&&(g+=k),"c"===d[0]&&(h+=Math.round(l/2)),"c"===d[1]&&(g+=Math.round(k/2)),"b"===d[3]&&(h-=j),"r"===d[4]&&(g-=i),"c"===d[3]&&(h-=Math.round(j/2)),"c"===d[4]&&(g-=Math.round(i/2)),{x:g,y:h,w:i,h:j}}return{testMoveRel:function(c,d){for(var e=a.getViewPort(),f=0;f<d.length;f++){var g=b(this,c,d[f]);if(this.state.get("fixed")){if(g.x>0&&g.x+g.w<e.w&&g.y>0&&g.y+g.h<e.h)return d[f]}else if(g.x>e.x&&g.x+g.w<e.w+e.x&&g.y>e.y&&g.y+g.h<e.h+e.y)return d[f]}return d[0]},moveRel:function(a,c){"string"!=typeof c&&(c=this.testMoveRel(a,c));var d=b(this,a,c);return this.moveTo(d.x,d.y)},moveBy:function(a,b){var c=this,d=c.layoutRect();return c.moveTo(d.x+a,d.y+b),c},moveTo:function(b,c){function d(a,b,c){return a<0?0:a+c>b?(a=b-c,a<0?0:a):a}var e=this;if(e.settings.constrainToViewport){var f=a.getViewPort(window),g=e.layoutRect();b=d(b,f.w+f.x,g.w),c=d(c,f.h+f.y,g.h)}return e.state.get("rendered")?e.layoutRect({x:b,y:c}).repaint():(e.settings.x=b,e.settings.y=c),e.fire("move",{x:b,y:c}),e}}}),g("tinymce.core.ui.Tooltip",["tinymce.core.ui.Control","tinymce.core.ui.Movable"],function(a,b){return a.extend({Mixins:[b],Defaults:{classes:"widget tooltip tooltip-n"},renderHtml:function(){var a=this,b=a.classPrefix;return'<div id="'+a._id+'" class="'+a.classes+'" role="presentation"><div class="'+b+'tooltip-arrow"></div><div class="'+b+'tooltip-inner">'+a.encode(a.state.get("text"))+"</div></div>"},bindStates:function(){var a=this;return a.state.on("change:text",function(b){a.getEl().lastChild.innerHTML=a.encode(b.value)}),a._super()},repaint:function(){var a,b,c=this;a=c.getEl().style,b=c._layoutRect,a.left=b.x+"px",a.top=b.y+"px",a.zIndex=131070}})}),g("tinymce.core.ui.Widget",["tinymce.core.ui.Control","tinymce.core.ui.Tooltip"],function(a,b){"use strict";var c,d=a.extend({init:function(a){var b=this;b._super(a),a=b.settings,b.canFocus=!0,a.tooltip&&d.tooltips!==!1&&(b.on("mouseenter",function(c){var d=b.tooltip().moveTo(-65535);if(c.control==b){var e=d.text(a.tooltip).show().testMoveRel(b.getEl(),["bc-tc","bc-tl","bc-tr"]);d.classes.toggle("tooltip-n","bc-tc"==e),d.classes.toggle("tooltip-nw","bc-tl"==e),d.classes.toggle("tooltip-ne","bc-tr"==e),d.moveRel(b.getEl(),e)}else d.hide()}),b.on("mouseleave mousedown click",function(){b.tooltip().hide()})),b.aria("label",a.ariaLabel||a.tooltip)},tooltip:function(){return c||(c=new b({type:"tooltip"}),c.renderTo()),c},postRender:function(){var a=this,b=a.settings;a._super(),a.parent()||!b.width&&!b.height||(a.initLayoutRect(),a.repaint()),b.autofocus&&a.focus()},bindStates:function(){function a(a){c.aria("disabled",a),c.classes.toggle("disabled",a)}function b(a){c.aria("pressed",a),c.classes.toggle("active",a)}var c=this;return c.state.on("change:disabled",function(b){a(b.value)}),c.state.on("change:active",function(a){b(a.value)}),c.state.get("disabled")&&a(!0),c.state.get("active")&&b(!0),c._super()},remove:function(){this._super(),c&&(c.remove(),c=null)}});return d}),g("tinymce.core.ui.Progress",["tinymce.core.ui.Widget"],function(a){"use strict";return a.extend({Defaults:{value:0},init:function(a){var b=this;b._super(a),b.classes.add("progress"),b.settings.filter||(b.settings.filter=function(a){return Math.round(a)})},renderHtml:function(){var a=this,b=a._id,c=this.classPrefix;return'<div id="'+b+'" class="'+a.classes+'"><div class="'+c+'bar-container"><div class="'+c+'bar"></div></div><div class="'+c+'text">0%</div></div>'},postRender:function(){var a=this;return a._super(),a.value(a.settings.value),a},bindStates:function(){function a(a){a=b.settings.filter(a),b.getEl().lastChild.innerHTML=a+"%",b.getEl().firstChild.firstChild.style.width=a+"%"}var b=this;return b.state.on("change:value",function(b){a(b.value)}),a(b.state.get("value")),b._super()}})}),g("tinymce.core.ui.Notification",["tinymce.core.ui.Control","tinymce.core.ui.Movable","tinymce.core.ui.Progress","tinymce.core.util.Delay"],function(a,b,c,d){var e=function(a,b){a.getEl().lastChild.textContent=b+(a.progressBar?" "+a.progressBar.value()+"%":"")};return a.extend({Mixins:[b],Defaults:{classes:"widget notification"},init:function(a){var b=this;b._super(a),b.maxWidth=a.maxWidth,a.text&&b.text(a.text),a.icon&&(b.icon=a.icon),a.color&&(b.color=a.color),a.type&&b.classes.add("notification-"+a.type),a.timeout&&(a.timeout<0||a.timeout>0)&&!a.closeButton?b.closeButton=!1:(b.classes.add("has-close"),b.closeButton=!0),a.progressBar&&(b.progressBar=new c),b.on("click",function(a){a.target.className.indexOf(b.classPrefix+"close")!=-1&&b.close()})},renderHtml:function(){var a=this,b=a.classPrefix,c="",d="",e="",f="";return a.icon&&(c='<i class="'+b+"ico "+b+"i-"+a.icon+'"></i>'),f=' style="max-width: '+a.maxWidth+"px;"+(a.color?"background-color: "+a.color+';"':'"'),a.closeButton&&(d='<button type="button" class="'+b+'close" aria-hidden="true">\xd7</button>'),a.progressBar&&(e=a.progressBar.renderHtml()),'<div id="'+a._id+'" class="'+a.classes+'"'+f+' role="presentation">'+c+'<div class="'+b+'notification-inner">'+a.state.get("text")+"</div>"+e+d+'<div style="clip: rect(1px, 1px, 1px, 1px);height: 1px;overflow: hidden;position: absolute;width: 1px;" aria-live="assertive" aria-relevant="additions" aria-atomic="true"></div></div>'},postRender:function(){var a=this;return d.setTimeout(function(){a.$el.addClass(a.classPrefix+"in"),e(a,a.state.get("text"))},100),a._super()},bindStates:function(){var a=this;return a.state.on("change:text",function(b){a.getEl().firstChild.innerHTML=b.value,e(a,b.value)}),a.progressBar&&(a.progressBar.bindStates(),a.progressBar.state.on("change:value",function(b){e(a,a.state.get("text"))})),a._super()},close:function(){var a=this;return a.fire("close").isDefaultPrevented()||a.remove(),a},repaint:function(){var a,b,c=this;a=c.getEl().style,b=c._layoutRect,a.left=b.x+"px",a.top=b.y+"px",a.zIndex=65534}})}),g("tinymce.core.ui.NotificationManagerImpl",["ephox.katamari.api.Arr","tinymce.core.ui.DomUtils","tinymce.core.ui.Notification","tinymce.core.util.Tools"],function(a,b,c,d){return function(e){var f=function(a){return a.inline?a.getElement():a.getContentAreaContainer()},g=function(){var a=f(e);return b.getSize(a).width},h=function(b){a.each(b,function(a){a.moveTo(0,0)})},i=function(b){if(b.length>0){var c=b.slice(0,1)[0],d=f(e);c.moveRel(d,"tc-tc"),a.each(b,function(a,c){c>0&&a.moveRel(b[c-1].getEl(),"bc-tc")})}},j=function(a){h(a),i(a)},k=function(a,b){var e=d.extend(a,{maxWidth:g()}),f=new c(e);return f.args=e,e.timeout>0&&(f.timer=setTimeout(function(){f.close(),b()},e.timeout)),f.on("close",function(){b()}),f.renderTo(),f},l=function(a){a.close()},m=function(a){return a.args};return{open:k,close:l,reposition:j,getArgs:m}}}),g("tinymce.core.api.NotificationManager",["ephox.katamari.api.Arr","ephox.katamari.api.Option","tinymce.core.EditorView","tinymce.core.ui.NotificationManagerImpl","tinymce.core.util.Delay"],function(a,b,c,d,e){return function(f){var g=[],h=function(){var a=f.theme;return a&&a.getNotificationManagerImpl?a.getNotificationManagerImpl():d(f)},i=function(){return b.from(g[0])},j=function(a,b){return!(a.type!==b.type||a.text!==b.text||a.progressBar||a.timeout||b.progressBar||b.timeout)},k=function(){g.length>0&&h().reposition(g)},l=function(a){g.push(a)},m=function(b){a.findIndex(g,function(a){return a===b}).each(function(a){g.splice(a,1)})},n=function(b){if(!f.removed&&c.isEditorAttachedToDom(f))return a.find(g,function(a){return j(h().getArgs(a),b)}).getOrThunk(function(){f.editorManager.setActive(f);var a=h().open(b,function(){m(a),k()});return l(a),k(),a})},o=function(){i().each(function(a){h().close(a),m(a),k()})},p=function(){return g},q=function(b){b.on("SkinLoaded",function(){var a=b.settings.service_message;a&&n({text:a,type:"warning",timeout:0,icon:""})}),b.on("ResizeEditor ResizeWindow",function(){e.requestAnimationFrame(k)}),b.on("remove",function(){a.each(g,function(a){h().close(a)})})};return q(f),{open:n,close:o,getNotifications:p}}}),g("tinymce.core.ui.Factory",[],function(){"use strict";var a={};return{add:function(b,c){a[b.toLowerCase()]=c},has:function(b){return!!a[b.toLowerCase()]},get:function(b){var c=b.toLowerCase(),d=a.hasOwnProperty(c)?a[c]:null;if(null===d)throw new Error("Could not find module for type: "+b);return d},create:function(b,c){var d;if("string"==typeof b?(c=c||{},c.type=b):(c=b,b=c.type),b=b.toLowerCase(),d=a[b],!d)throw new Error("Could not find control by type: "+b);return d=new d(c),d.type=b,d}}}),g("tinymce.core.ui.KeyboardNavigation",[],function(){"use strict";var a=function(a){return!!a.getAttribute("data-mce-tabstop")};return function(b){function c(a){return a&&1===a.nodeType}function d(a){return a=a||u,c(a)?a.getAttribute("role"):null}function e(a){for(var b,c=a||u;c=c.parentNode;)if(b=d(c))return b}function f(a){var b=u;if(c(b))return b.getAttribute("aria-"+a)}function g(a){var b=a.tagName.toUpperCase();return"INPUT"==b||"TEXTAREA"==b||"SELECT"==b}function h(b){return!(!g(b)||b.hidden)||(!!a(b)||!!/^(button|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell|slider)$/.test(d(b)))}function i(a){function b(a){if(1==a.nodeType&&"none"!=a.style.display&&!a.disabled){h(a)&&c.push(a);for(var d=0;d<a.childNodes.length;d++)b(a.childNodes[d])}}var c=[];return b(a||w.getEl()),c}function j(a){var b,c;a=a||v,c=a.parents().toArray(),c.unshift(a);for(var d=0;d<c.length&&(b=c[d],!b.settings.ariaRoot);d++);return b}function k(a){var b=j(a),c=i(b.getEl());b.settings.ariaRemember&&"lastAriaIndex"in b?l(b.lastAriaIndex,c):l(0,c)}function l(a,b){return a<0?a=b.length-1:a>=b.length&&(a=0),b[a]&&b[a].focus(),a}function m(a,b){var c=-1,d=j();b=b||i(d.getEl());for(var e=0;e<b.length;e++)b[e]===u&&(c=e);c+=a,d.lastAriaIndex=l(c,b)}function n(){var a=e();"tablist"==a?m(-1,i(u.parentNode)):v.parent().submenu?s():m(-1)}function o(){var a=d(),b=e();"tablist"==b?m(1,i(u.parentNode)):"menuitem"==a&&"menu"==b&&f("haspopup")?t():m(1)}function p(){m(-1)}function q(){var a=d(),b=e();"menuitem"==a&&"menubar"==b?t():"button"==a&&f("haspopup")?t({key:"down"}):m(1)}function r(a){var b=e();if("tablist"==b){var c=i(v.getEl("body"))[0];c&&c.focus()}else m(a.shiftKey?-1:1)}function s(){v.fire("cancel")}function t(a){a=a||{},v.fire("click",{target:u,aria:a})}var u,v,w=b.root;try{u=document.activeElement}catch(x){u=document.body}return v=w.getParentCtrl(u),w.on("keydown",function(b){function c(b,c){g(u)||a(u)||"slider"!==d(u)&&c(b)!==!1&&b.preventDefault()}if(!b.isDefaultPrevented())switch(b.keyCode){case 37:c(b,n);break;case 39:c(b,o);break;case 38:c(b,p);break;case 40:c(b,q);break;case 27:s();break;case 14:case 13:case 32:c(b,t);break;case 9:r(b)!==!1&&b.preventDefault()}}),w.on("focusin",function(a){u=a.target,v=a.control}),{focusFirst:k}}}),g("tinymce.core.ui.Container",["tinymce.core.ui.Control","tinymce.core.ui.Collection","tinymce.core.ui.Selector","tinymce.core.ui.Factory","tinymce.core.ui.KeyboardNavigation","tinymce.core.util.Tools","tinymce.core.dom.DomQuery","tinymce.core.ui.ClassList","tinymce.core.ui.ReflowQueue"],function(a,b,c,d,e,f,g,h,i){"use strict";var j={};return a.extend({init:function(a){var c=this;c._super(a),a=c.settings,a.fixed&&c.state.set("fixed",!0),c._items=new b,c.isRtl()&&c.classes.add("rtl"),c.bodyClasses=new h(function(){c.state.get("rendered")&&(c.getEl("body").className=this.toString())}),c.bodyClasses.prefix=c.classPrefix,c.classes.add("container"),c.bodyClasses.add("container-body"),a.containerCls&&c.classes.add(a.containerCls),c._layout=d.create((a.layout||"")+"layout"),c.settings.items?c.add(c.settings.items):c.add(c.render()),c._hasBody=!0},items:function(){return this._items},find:function(a){return a=j[a]=j[a]||new c(a),a.find(this)},add:function(a){var b=this;return b.items().add(b.create(a)).parent(b),b},focus:function(a){var b,c,d,e=this;return a&&(c=e.keyboardNav||e.parents().eq(-1)[0].keyboardNav)?void c.focusFirst(e):(d=e.find("*"),e.statusbar&&d.add(e.statusbar.items()),d.each(function(a){return a.settings.autofocus?(b=null,!1):void(a.canFocus&&(b=b||a))}),b&&b.focus(),e)},replace:function(a,b){for(var c,d=this.items(),e=d.length;e--;)if(d[e]===a){d[e]=b;break}e>=0&&(c=b.getEl(),c&&c.parentNode.removeChild(c),c=a.getEl(),c&&c.parentNode.removeChild(c)),b.parent(this)},create:function(b){var c,e=this,g=[];return f.isArray(b)||(b=[b]),f.each(b,function(b){b&&(b instanceof a||("string"==typeof b&&(b={type:b}),c=f.extend({},e.settings.defaults,b),b.type=c.type=c.type||b.type||e.settings.defaultType||(c.defaults?c.defaults.type:null),b=d.create(c)),g.push(b))}),g},renderNew:function(){var a=this;return a.items().each(function(b,c){var d;b.parent(a),b.state.get("rendered")||(d=a.getEl("body"),d.hasChildNodes()&&c<=d.childNodes.length-1?g(d.childNodes[c]).before(b.renderHtml()):g(d).append(b.renderHtml()),b.postRender(),i.add(b))}),a._layout.applyClasses(a.items().filter(":visible")),a._lastRect=null,a},append:function(a){return this.add(a).renderNew()},prepend:function(a){var b=this;return b.items().set(b.create(a).concat(b.items().toArray())),b.renderNew()},insert:function(a,b,c){var d,e,f,g=this;return a=g.create(a),d=g.items(),!c&&b<d.length-1&&(b+=1),b>=0&&b<d.length&&(e=d.slice(0,b).toArray(),f=d.slice(b).toArray(),d.set(e.concat(a,f))),g.renderNew()},fromJSON:function(a){var b=this;for(var c in a)b.find("#"+c).value(a[c]);return b},toJSON:function(){var a=this,b={};return a.find("*").each(function(a){var c=a.name(),d=a.value();c&&"undefined"!=typeof d&&(b[c]=d)}),b},renderHtml:function(){var a=this,b=a._layout,c=this.settings.role;return a.preRender(),b.preRender(a),'<div id="'+a._id+'" class="'+a.classes+'"'+(c?' role="'+this.settings.role+'"':"")+'><div id="'+a._id+'-body" class="'+a.bodyClasses+'">'+(a.settings.html||"")+b.renderHtml(a)+"</div></div>"},postRender:function(){var a,b=this;return b.items().exec("postRender"),b._super(),b._layout.postRender(b),b.state.set("rendered",!0),b.settings.style&&b.$el.css(b.settings.style),b.settings.border&&(a=b.borderBox,b.$el.css({"border-top-width":a.top,"border-right-width":a.right,"border-bottom-width":a.bottom,"border-left-width":a.left})),b.parent()||(b.keyboardNav=new e({root:b})),b},initLayoutRect:function(){var a=this,b=a._super();return a._layout.recalc(a),b},recalc:function(){var a=this,b=a._layoutRect,c=a._lastRect;if(!c||c.w!=b.w||c.h!=b.h)return a._layout.recalc(a),b=a.layoutRect(),a._lastRect={x:b.x,y:b.y,w:b.w,h:b.h},!0},reflow:function(){var b;if(i.remove(this),this.visible()){for(a.repaintControls=[],a.repaintControls.map={},this.recalc(),b=a.repaintControls.length;b--;)a.repaintControls[b].repaint();"flow"!==this.settings.layout&&"stack"!==this.settings.layout&&this.repaint(),a.repaintControls=[]}return this}})}),g("tinymce.core.ui.DragHelper",["tinymce.core.dom.DomQuery"],function(a){"use strict";function b(a){var b,c,d,e,f,g,h,i,j=Math.max;return b=a.documentElement,c=a.body,d=j(b.scrollWidth,c.scrollWidth),e=j(b.clientWidth,c.clientWidth),f=j(b.offsetWidth,c.offsetWidth),g=j(b.scrollHeight,c.scrollHeight),h=j(b.clientHeight,c.clientHeight),i=j(b.offsetHeight,c.offsetHeight),{width:d<f?e:d,height:g<i?h:g}}function c(a){var b,c;if(a.changedTouches)for(b="screenX screenY pageX pageY clientX clientY".split(" "),c=0;c<b.length;c++)a[b[c]]=a.changedTouches[0][b[c]]}return function(d,e){function f(){return n.getElementById(e.handle||d)}var g,h,i,j,k,l,m,n=e.document||document;e=e||{},i=function(d){var i,o,p=b(n);c(d),d.preventDefault(),h=d.button,i=f(),l=d.screenX,m=d.screenY,o=window.getComputedStyle?window.getComputedStyle(i,null).getPropertyValue("cursor"):i.runtimeStyle.cursor,g=a("<div></div>").css({position:"absolute",top:0,left:0,width:p.width,height:p.height,zIndex:2147483647,opacity:1e-4,cursor:o}).appendTo(n.body),a(n).on("mousemove touchmove",k).on("mouseup touchend",j),e.start(d)},k=function(a){return c(a),a.button!==h?j(a):(a.deltaX=a.screenX-l,a.deltaY=a.screenY-m,a.preventDefault(),void e.drag(a))},j=function(b){c(b),a(n).off("mousemove touchmove",k).off("mouseup touchend",j),g.remove(),e.stop&&e.stop(b)},this.destroy=function(){a(f()).off()},a(f()).on("mousedown touchstart",i)}}),g("tinymce.core.ui.Scrollable",["tinymce.core.dom.DomQuery","tinymce.core.ui.DragHelper"],function(a,b){"use strict";return{init:function(){var a=this;a.on("repaint",a.renderScroll)},renderScroll:function(){function c(){function b(b,g,h,i,j,k){var l,m,n,o,p,q,r,s,t;if(m=e.getEl("scroll"+b)){if(s=g.toLowerCase(),t=h.toLowerCase(),a(e.getEl("absend")).css(s,e.layoutRect()[i]-1),!j)return void a(m).css("display","none");a(m).css("display","block"),l=e.getEl("body"),n=e.getEl("scroll"+b+"t"),o=l["client"+h]-2*f,o-=c&&d?m["client"+k]:0,p=l["scroll"+h],q=o/p,r={},r[s]=l["offset"+g]+f,r[t]=o,a(m).css(r),r={},r[s]=l["scroll"+g]*q,r[t]=o*q,a(n).css(r)}}var c,d,g;g=e.getEl("body"),c=g.scrollWidth>g.clientWidth,d=g.scrollHeight>g.clientHeight,b("h","Left","Width","contentW",c,"Height"),b("v","Top","Height","contentH",d,"Width")}function d(){function c(c,d,g,h,i){var j,k=e._id+"-scroll"+c,l=e.classPrefix;a(e.getEl()).append('<div id="'+k+'" class="'+l+"scrollbar "+l+"scrollbar-"+c+'"><div id="'+k+'t" class="'+l+'scrollbar-thumb"></div></div>'),e.draghelper=new b(k+"t",{start:function(){j=e.getEl("body")["scroll"+d],a("#"+k).addClass(l+"active")},drag:function(a){var b,k,l,m,n=e.layoutRect();k=n.contentW>n.innerW,l=n.contentH>n.innerH,m=e.getEl("body")["client"+g]-2*f,m-=k&&l?e.getEl("scroll"+c)["client"+i]:0,b=m/e.getEl("body")["scroll"+g],e.getEl("body")["scroll"+d]=j+a["delta"+h]/b},stop:function(){a("#"+k).removeClass(l+"active")}})}e.classes.add("scroll"),c("v","Top","Height","Y","Width"),c("h","Left","Width","X","Height")}var e=this,f=2;e.settings.autoScroll&&(e._hasScroll||(e._hasScroll=!0,d(),e.on("wheel",function(a){var b=e.getEl("body");b.scrollLeft+=10*(a.deltaX||0),b.scrollTop+=10*a.deltaY,c()}),a(e.getEl("body")).on("scroll",c)),c())}}}),g("tinymce.core.ui.Panel",["tinymce.core.ui.Container","tinymce.core.ui.Scrollable"],function(a,b){"use strict";return a.extend({Defaults:{layout:"fit",containerCls:"panel"},Mixins:[b],renderHtml:function(){var a=this,b=a._layout,c=a.settings.html;return a.preRender(),b.preRender(a),"undefined"==typeof c?c='<div id="'+a._id+'-body" class="'+a.bodyClasses+'">'+b.renderHtml(a)+"</div>":("function"==typeof c&&(c=c.call(a)),a._hasBody=!1),'<div id="'+a._id+'" class="'+a.classes+'" hidefocus="1" tabindex="-1" role="group">'+(a._preBodyHtml||"")+c+"</div>"}})}),g("tinymce.core.ui.Resizable",["tinymce.core.ui.DomUtils"],function(a){"use strict";return{resizeToContent:function(){this._layoutRect.autoResize=!0,this._lastRect=null,this.reflow()},resizeTo:function(b,c){if(b<=1||c<=1){var d=a.getWindowSize();b=b<=1?b*d.w:b,c=c<=1?c*d.h:c}return this._layoutRect.autoResize=!1,this.layoutRect({minW:b,minH:c,w:b,h:c}).reflow()},resizeBy:function(a,b){var c=this,d=c.layoutRect();return c.resizeTo(d.w+a,d.h+b)}}}),g("tinymce.core.ui.FloatPanel",["tinymce.core.ui.Panel","tinymce.core.ui.Movable","tinymce.core.ui.Resizable","tinymce.core.ui.DomUtils","tinymce.core.dom.DomQuery","tinymce.core.util.Delay"],function(a,b,c,d,e,f){"use strict";function g(a,b){for(;a;){if(a==b)return!0;a=a.parent()}}function h(a){for(var b=s.length;b--;){var c=s[b],d=c.getParentCtrl(a.target);if(c.settings.autohide){ -if(d&&(g(d,c)||c.parent()===d))continue;a=c.fire("autohide",{target:a.target}),a.isDefaultPrevented()||c.hide()}}}function i(){o||(o=function(a){2!=a.button&&h(a)},e(document).on("click touchstart",o))}function j(){p||(p=function(){var a;for(a=s.length;a--;)l(s[a])},e(window).on("scroll",p))}function k(){if(!q){var a=document.documentElement,b=a.clientWidth,c=a.clientHeight;q=function(){document.all&&b==a.clientWidth&&c==a.clientHeight||(b=a.clientWidth,c=a.clientHeight,u.hideAll())},e(window).on("resize",q)}}function l(a){function b(b,c){for(var d,e=0;e<s.length;e++)if(s[e]!=a)for(d=s[e].parent();d&&(d=d.parent());)d==a&&s[e].fixed(b).moveBy(0,c).repaint()}var c=d.getViewPort().y;a.settings.autofix&&(a.state.get("fixed")?a._autoFixY>c&&(a.fixed(!1).layoutRect({y:a._autoFixY}).repaint(),b(!1,a._autoFixY-c)):(a._autoFixY=a.layoutRect().y,a._autoFixY<c&&(a.fixed(!0).layoutRect({y:0}).repaint(),b(!0,c-a._autoFixY))))}function m(a,b){var c,d,f=u.zIndex||65535;if(a)t.push(b);else for(c=t.length;c--;)t[c]===b&&t.splice(c,1);if(t.length)for(c=0;c<t.length;c++)t[c].modal&&(f++,d=t[c]),t[c].getEl().style.zIndex=f,t[c].zIndex=f,f++;var g=e("#"+b.classPrefix+"modal-block",b.getContainerElm())[0];d?e(g).css("z-index",d.zIndex-1):g&&(g.parentNode.removeChild(g),r=!1),u.currentZIndex=f}function n(a){var b;for(b=s.length;b--;)s[b]===a&&s.splice(b,1);for(b=t.length;b--;)t[b]===a&&t.splice(b,1)}var o,p,q,r,s=[],t=[],u=a.extend({Mixins:[b,c],init:function(a){var b=this;b._super(a),b._eventsRoot=b,b.classes.add("floatpanel"),a.autohide&&(i(),k(),s.push(b)),a.autofix&&(j(),b.on("move",function(){l(this)})),b.on("postrender show",function(a){if(a.control==b){var c,d=b.classPrefix;b.modal&&!r&&(c=e("#"+d+"modal-block",b.getContainerElm()),c[0]||(c=e('<div id="'+d+'modal-block" class="'+d+"reset "+d+'fade"></div>').appendTo(b.getContainerElm())),f.setTimeout(function(){c.addClass(d+"in"),e(b.getEl()).addClass(d+"in")}),r=!0),m(!0,b)}}),b.on("show",function(){b.parents().each(function(a){if(a.state.get("fixed"))return b.fixed(!0),!1})}),a.popover&&(b._preBodyHtml='<div class="'+b.classPrefix+'arrow"></div>',b.classes.add("popover").add("bottom").add(b.isRtl()?"end":"start")),b.aria("label",a.ariaLabel),b.aria("labelledby",b._id),b.aria("describedby",b.describedBy||b._id+"-none")},fixed:function(a){var b=this;if(b.state.get("fixed")!=a){if(b.state.get("rendered")){var c=d.getViewPort();a?b.layoutRect().y-=c.y:b.layoutRect().y+=c.y}b.classes.toggle("fixed",a),b.state.set("fixed",a)}return b},show:function(){var a,b=this,c=b._super();for(a=s.length;a--&&s[a]!==b;);return a===-1&&s.push(b),c},hide:function(){return n(this),m(!1,this),this._super()},hideAll:function(){u.hideAll()},close:function(){var a=this;return a.fire("close").isDefaultPrevented()||(a.remove(),m(!1,a)),a},remove:function(){n(this),this._super()},postRender:function(){var a=this;return a.settings.bodyRole&&this.getEl("body").setAttribute("role",a.settings.bodyRole),a._super()}});return u.hideAll=function(){for(var a=s.length;a--;){var b=s[a];b&&b.settings.autohide&&(b.hide(),s.splice(a,1))}},u}),g("tinymce.core.ui.Window",["tinymce.core.ui.FloatPanel","tinymce.core.ui.Panel","tinymce.core.ui.DomUtils","tinymce.core.dom.DomQuery","tinymce.core.ui.DragHelper","tinymce.core.ui.BoxUtils","tinymce.core.Env","tinymce.core.util.Delay"],function(a,b,c,d,e,f,g,h){"use strict";function i(a){var b,c="width=device-width,initial-scale=1.0,user-scalable=0,minimum-scale=1.0,maximum-scale=1.0",e=d("meta[name=viewport]")[0];g.overrideViewPort!==!1&&(e||(e=document.createElement("meta"),e.setAttribute("name","viewport"),document.getElementsByTagName("head")[0].appendChild(e)),b=e.getAttribute("content"),b&&"undefined"!=typeof n&&(n=b),e.setAttribute("content",a?c:n))}function j(a,b){k()&&b===!1&&d([document.documentElement,document.body]).removeClass(a+"fullscreen")}function k(){for(var a=0;a<m.length;a++)if(m[a]._fullscreen)return!0;return!1}function l(){function a(){var a,b,d=c.getWindowSize();for(a=0;a<m.length;a++)b=m[a].layoutRect(),m[a].moveTo(m[a].settings.x||Math.max(0,d.w/2-b.w/2),m[a].settings.y||Math.max(0,d.h/2-b.h/2))}if(!g.desktop){var b={w:window.innerWidth,h:window.innerHeight};h.setInterval(function(){var a=window.innerWidth,c=window.innerHeight;b.w==a&&b.h==c||(b={w:a,h:c},d(window).trigger("resize"))},100)}d(window).on("resize",a)}var m=[],n="",o=a.extend({modal:!0,Defaults:{border:1,layout:"flex",containerCls:"panel",role:"dialog",callbacks:{submit:function(){this.fire("submit",{data:this.toJSON()})},close:function(){this.close()}}},init:function(a){var d=this;d._super(a),d.isRtl()&&d.classes.add("rtl"),d.classes.add("window"),d.bodyClasses.add("window-body"),d.state.set("fixed",!0),a.buttons&&(d.statusbar=new b({layout:"flex",border:"1 0 0 0",spacing:3,padding:10,align:"center",pack:d.isRtl()?"start":"end",defaults:{type:"button"},items:a.buttons}),d.statusbar.classes.add("foot"),d.statusbar.parent(d)),d.on("click",function(a){var b=d.classPrefix+"close";(c.hasClass(a.target,b)||c.hasClass(a.target.parentNode,b))&&d.close()}),d.on("cancel",function(){d.close()}),d.aria("describedby",d.describedBy||d._id+"-none"),d.aria("label",a.title),d._fullscreen=!1},recalc:function(){var a,b,d,e,f=this,g=f.statusbar;f._fullscreen&&(f.layoutRect(c.getWindowSize()),f.layoutRect().contentH=f.layoutRect().innerH),f._super(),a=f.layoutRect(),f.settings.title&&!f._fullscreen&&(b=a.headerW,b>a.w&&(d=a.x-Math.max(0,b/2),f.layoutRect({w:b,x:d}),e=!0)),g&&(g.layoutRect({w:f.layoutRect().innerW}).recalc(),b=g.layoutRect().minW+a.deltaW,b>a.w&&(d=a.x-Math.max(0,b-a.w),f.layoutRect({w:b,x:d}),e=!0)),e&&f.recalc()},initLayoutRect:function(){var a,b=this,d=b._super(),e=0;if(b.settings.title&&!b._fullscreen){a=b.getEl("head");var f=c.getSize(a);d.headerW=f.width,d.headerH=f.height,e+=d.headerH}b.statusbar&&(e+=b.statusbar.layoutRect().h),d.deltaH+=e,d.minH+=e,d.h+=e;var g=c.getWindowSize();return d.x=b.settings.x||Math.max(0,g.w/2-d.w/2),d.y=b.settings.y||Math.max(0,g.h/2-d.h/2),d},renderHtml:function(){var a=this,b=a._layout,c=a._id,d=a.classPrefix,e=a.settings,f="",g="",h=e.html;return a.preRender(),b.preRender(a),e.title&&(f='<div id="'+c+'-head" class="'+d+'window-head"><div id="'+c+'-title" class="'+d+'title">'+a.encode(e.title)+'</div><div id="'+c+'-dragh" class="'+d+'dragh"></div><button type="button" class="'+d+'close" aria-hidden="true"><i class="mce-ico mce-i-remove"></i></button></div>'),e.url&&(h='<iframe src="'+e.url+'" tabindex="-1"></iframe>'),"undefined"==typeof h&&(h=b.renderHtml(a)),a.statusbar&&(g=a.statusbar.renderHtml()),'<div id="'+c+'" class="'+a.classes+'" hidefocus="1"><div class="'+a.classPrefix+'reset" role="application">'+f+'<div id="'+c+'-body" class="'+a.bodyClasses+'">'+h+"</div>"+g+"</div></div>"},fullscreen:function(a){var b,e,g=this,i=document.documentElement,j=g.classPrefix;if(a!=g._fullscreen)if(d(window).on("resize",function(){var a;if(g._fullscreen)if(b)g._timer||(g._timer=h.setTimeout(function(){var a=c.getWindowSize();g.moveTo(0,0).resizeTo(a.w,a.h),g._timer=0},50));else{a=(new Date).getTime();var d=c.getWindowSize();g.moveTo(0,0).resizeTo(d.w,d.h),(new Date).getTime()-a>50&&(b=!0)}}),e=g.layoutRect(),g._fullscreen=a,a){g._initial={x:e.x,y:e.y,w:e.w,h:e.h},g.borderBox=f.parseBox("0"),g.getEl("head").style.display="none",e.deltaH-=e.headerH+2,d([i,document.body]).addClass(j+"fullscreen"),g.classes.add("fullscreen");var k=c.getWindowSize();g.moveTo(0,0).resizeTo(k.w,k.h)}else g.borderBox=f.parseBox(g.settings.border),g.getEl("head").style.display="",e.deltaH+=e.headerH,d([i,document.body]).removeClass(j+"fullscreen"),g.classes.remove("fullscreen"),g.moveTo(g._initial.x,g._initial.y).resizeTo(g._initial.w,g._initial.h);return g.reflow()},postRender:function(){var a,b=this;setTimeout(function(){b.classes.add("in"),b.fire("open")},0),b._super(),b.statusbar&&b.statusbar.postRender(),b.focus(),this.dragHelper=new e(b._id+"-dragh",{start:function(){a={x:b.layoutRect().x,y:b.layoutRect().y}},drag:function(c){b.moveTo(a.x+c.deltaX,a.y+c.deltaY)}}),b.on("submit",function(a){a.isDefaultPrevented()||b.close()}),m.push(b),i(!0)},submit:function(){return this.fire("submit",{data:this.toJSON()})},remove:function(){var a,b=this;for(b.dragHelper.destroy(),b._super(),b.statusbar&&this.statusbar.remove(),j(b.classPrefix,!1),a=m.length;a--;)m[a]===b&&m.splice(a,1);i(m.length>0)},getContentWindow:function(){var a=this.getEl().getElementsByTagName("iframe")[0];return a?a.contentWindow:null}});return l(),o}),g("tinymce.core.ui.MessageBox",["tinymce.core.ui.Window"],function(a){"use strict";var b=a.extend({init:function(a){a={border:1,padding:20,layout:"flex",pack:"center",align:"center",containerCls:"panel",autoScroll:!0,buttons:{type:"button",text:"Ok",action:"ok"},items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200}},this._super(a)},Statics:{OK:1,OK_CANCEL:2,YES_NO:3,YES_NO_CANCEL:4,msgBox:function(c){function d(a,b,c){return{type:"button",text:a,subtype:c?"primary":"",onClick:function(a){a.control.parents()[1].close(),f(b)}}}var e,f=c.callback||function(){};switch(c.buttons){case b.OK_CANCEL:e=[d("Ok",!0,!0),d("Cancel",!1)];break;case b.YES_NO:case b.YES_NO_CANCEL:e=[d("Yes",1,!0),d("No",0)],c.buttons==b.YES_NO_CANCEL&&e.push(d("Cancel",-1));break;default:e=[d("Ok",!0,!0)]}return new a({padding:20,x:c.x,y:c.y,minWidth:300,minHeight:100,layout:"flex",pack:"center",align:"center",buttons:e,title:c.title,role:"alertdialog",items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200,text:c.text},onPostRender:function(){this.aria("describedby",this.items()[0]._id)},onClose:c.onClose,onCancel:function(){f(!1)}}).renderTo(document.body).reflow()},alert:function(a,c){return"string"==typeof a&&(a={text:a}),a.callback=c,b.msgBox(a)},confirm:function(a,c){return"string"==typeof a&&(a={text:a}),a.callback=c,a.buttons=b.OK_CANCEL,b.msgBox(a)}}});return b}),g("tinymce.core.ui.WindowManagerImpl",["tinymce.core.ui.Window","tinymce.core.ui.MessageBox"],function(a,b){return function(c){var d=function(b,c,d){var e;return b.title=b.title||" ",b.url=b.url||b.file,b.url&&(b.width=parseInt(b.width||320,10),b.height=parseInt(b.height||240,10)),b.body&&(b.items={defaults:b.defaults,type:b.bodyType||"form",items:b.body,data:b.data,callbacks:b.commands}),b.url||b.buttons||(b.buttons=[{text:"Ok",subtype:"primary",onclick:function(){e.find("form")[0].submit()}},{text:"Cancel",onclick:function(){e.close()}}]),e=new a(b),e.on("close",function(){d(e)}),b.data&&e.on("postRender",function(){this.find("*").each(function(a){var c=a.name();c in b.data&&a.value(b.data[c])})}),e.features=b||{},e.params=c||{},e=e.renderTo().reflow()},e=function(a,c,d){var e;return e=b.alert(a,function(){c()}),e.on("close",function(){d(e)}),e},f=function(a,c,d){var e;return e=b.confirm(a,function(a){c(a)}),e.on("close",function(){d(e)}),e},g=function(a){a.close()},h=function(a){return a.params},i=function(a,b){a.params=b};return{open:d,alert:e,confirm:f,close:g,getParams:h,setParams:i}}}),g("tinymce.core.api.WindowManager",["ephox.katamari.api.Arr","ephox.katamari.api.Option","tinymce.core.ui.WindowManagerImpl"],function(a,b,c){return function(d){var e=[],f=function(){var a=d.theme;return a&&a.getWindowManagerImpl?a.getWindowManagerImpl():c(d)},g=function(a,b){return function(){return b?b.apply(a,arguments):void 0}},h=function(a){d.fire("OpenWindow",{win:a})},i=function(a){d.fire("CloseWindow",{win:a})},j=function(a){e.push(a),h(a)},k=function(b){a.findIndex(e,function(a){return a===b}).each(function(a){e.splice(a,1),i(b),0===e.length&&d.focus()})},l=function(){return b.from(e[e.length-1])},m=function(a,b){d.editorManager.setActive(d),0===e.length&&d.nodeChanged();var c=f().open(a,b,k);return j(c),c},n=function(a,b,c){var d=f().alert(a,g(c?c:this,b),k);j(d)},o=function(a,b,c){var d=f().confirm(a,g(c?c:this,b),k);j(d)},p=function(){l().each(function(a){f().close(a),k(a)})},q=function(){return l().map(f().getParams).getOr(null)},r=function(a){l().each(function(b){f().setParams(b,a)})},s=function(){return e};return d.on("remove",function(){a.each(e.slice(0),function(a){f().close(a)})}),{windows:e,open:m,alert:n,confirm:o,close:p,getParams:q,setParams:r,getWindows:s}}}),g("tinymce.core.dom.RangePoint",["ephox.katamari.api.Arr","tinymce.core.geom.ClientRect"],function(a,b){var c=function(c,d,e){return!e.collapsed&&a.foldl(e.getClientRects(),function(a,e){return a||b.containsXY(e,c,d)},!1)};return{isXYWithinRange:c}}),g("tinymce.core.util.VK",["tinymce.core.Env"],function(a){return{BACKSPACE:8,DELETE:46,DOWN:40,ENTER:13,LEFT:37,RIGHT:39,SPACEBAR:32,TAB:9,UP:38,modifierPressed:function(a){return a.shiftKey||a.ctrlKey||a.altKey||this.metaKeyPressed(a)},metaKeyPressed:function(b){return a.mac?b.metaKey:b.ctrlKey&&!b.altKey}}}),g("tinymce.core.dom.ControlSelection",["ephox.katamari.api.Fun","ephox.sugar.api.node.Element","ephox.sugar.api.search.Selectors","tinymce.core.dom.NodeType","tinymce.core.dom.RangePoint","tinymce.core.Env","tinymce.core.util.Delay","tinymce.core.util.Tools","tinymce.core.util.VK"],function(a,b,c,d,e,f,g,h,i){function j(a,b){for(;b&&b!=a;){if(l(b)||k(b))return b;b=b.parentNode}return null}var k=d.isContentEditableFalse,l=d.isContentEditableTrue,m=function(a){return a&&"IMG"===a.nodeName},n=function(a,b){return m(a.target)&&!e.isXYWithinRange(a.clientX,a.clientY,b)},o=function(a,b){var c=b.target;n(b,a.selection.getRng())&&!b.isDefaultPrevented()&&(b.preventDefault(),a.selection.select(c))};return function(d,e){function l(a){var d=e.settings.object_resizing;return d!==!1&&!f.iOS&&("string"!=typeof d&&(d="table,img,div"),"false"!==a.getAttribute("data-mce-resize")&&(a!=e.getBody()&&c.is(b.fromDom(a),d)))}function m(a){var b,c,d,f,g;b=a.screenX-J,c=a.screenY-K,R=b*H[2]+N,S=c*H[3]+O,R=R<5?5:R,S=S<5?5:S,d="IMG"==D.nodeName&&e.settings.resize_img_proportional!==!1?!i.modifierPressed(a):i.modifierPressed(a)||"IMG"==D.nodeName&&H[2]*H[3]!==0,d&&($(b)>$(c)?(S=_(R*P),R=_(S/P)):(R=_(S/P),S=_(R*P))),V.setStyles(E,{width:R,height:S}),f=H.startPos.x+b,g=H.startPos.y+c,f=f>0?f:0,g=g>0?g:0,V.setStyles(F,{left:f,top:g,display:"block"}),F.innerHTML=R+" × "+S,H[2]<0&&E.clientWidth<=R&&V.setStyle(E,"left",L+(N-R)),H[3]<0&&E.clientHeight<=S&&V.setStyle(E,"top",M+(O-S)),b=aa.scrollWidth-T,c=aa.scrollHeight-U,b+c!==0&&V.setStyles(F,{left:f-b,top:g-c}),Q||(e.fire("ObjectResizeStart",{target:D,width:N,height:O}),Q=!0)}function n(){function a(a,b){b&&(D.style[a]||!e.schema.isValid(D.nodeName.toLowerCase(),a)?V.setStyle(D,a,b):V.setAttrib(D,a,b))}Q=!1,a("width",R),a("height",S),V.unbind(X,"mousemove",m),V.unbind(X,"mouseup",n),Y!=X&&(V.unbind(Y,"mousemove",m),V.unbind(Y,"mouseup",n)),V.remove(E),V.remove(F),Z&&"TABLE"!=D.nodeName||p(D),e.fire("ObjectResized",{target:D,width:R,height:S}),V.setAttrib(D,"style",V.getAttrib(D,"style")),e.nodeChanged()}function p(a,b,c){var d,g,h,i,j;q(),z(),d=V.getPos(a,aa),L=d.x,M=d.y,j=a.getBoundingClientRect(),g=j.width||j.right-j.left,h=j.height||j.bottom-j.top,D!=a&&(y(),D=a,R=S=0),i=e.fire("ObjectSelected",{target:a}),l(a)&&!i.isDefaultPrevented()?W(G,function(a,d){function e(b){J=b.screenX,K=b.screenY,N=D.clientWidth,O=D.clientHeight,P=O/N,H=a,a.startPos={x:g*a[0]+L,y:h*a[1]+M},T=aa.scrollWidth,U=aa.scrollHeight,E=D.cloneNode(!0),V.addClass(E,"mce-clonedresizable"),V.setAttrib(E,"data-mce-bogus","all"),E.contentEditable=!1,E.unSelectabe=!0,V.setStyles(E,{left:L,top:M,margin:0}),E.removeAttribute("data-mce-selected"),aa.appendChild(E),V.bind(X,"mousemove",m),V.bind(X,"mouseup",n),Y!=X&&(V.bind(Y,"mousemove",m),V.bind(Y,"mouseup",n)),F=V.add(aa,"div",{"class":"mce-resize-helper","data-mce-bogus":"all"},N+" × "+O)}var i;return b?void(d==b&&e(c)):(i=V.get("mceResizeHandle"+d),i&&V.remove(i),i=V.add(aa,"div",{id:"mceResizeHandle"+d,"data-mce-bogus":"all","class":"mce-resizehandle",unselectable:!0,style:"cursor:"+d+"-resize; margin:0; padding:0"}),f.ie&&(i.contentEditable=!1),V.bind(i,"mousedown",function(a){a.stopImmediatePropagation(),a.preventDefault(),e(a)}),a.elm=i,void V.setStyles(i,{left:g*a[0]+L-i.offsetWidth/2,top:h*a[1]+M-i.offsetHeight/2}))}):q(),D.setAttribute("data-mce-selected","1")}function q(){var a,b;z(),D&&D.removeAttribute("data-mce-selected");for(a in G)b=V.get("mceResizeHandle"+a),b&&(V.unbind(b),V.remove(b))}function r(a){function b(a,b){if(a)do if(a===b)return!0;while(a=a.parentNode)}var c,f;if(!Q&&!e.removed)return W(V.select("img[data-mce-selected],hr[data-mce-selected]"),function(a){a.removeAttribute("data-mce-selected")}),f="mousedown"==a.type?a.target:d.getNode(),f=V.$(f).closest(Z?"table":"table,img,hr")[0],b(f,aa)&&(A(),c=d.getStart(!0),b(c,f)&&b(d.getEnd(!0),f)&&(!Z||f!=c&&"IMG"!==c.nodeName))?void p(f):void q()}function s(a,b,c){a&&a.attachEvent&&a.attachEvent("on"+b,c)}function t(a,b,c){a&&a.detachEvent&&a.detachEvent("on"+b,c)}function u(a){var b,c,d,f,g,h,i,j=a.srcElement;b=j.getBoundingClientRect(),h=I.clientX-b.left,i=I.clientY-b.top;for(c in G)if(d=G[c],f=j.offsetWidth*d[0],g=j.offsetHeight*d[1],$(f-h)<8&&$(g-i)<8){H=d;break}Q=!0,e.fire("ObjectResizeStart",{target:D,width:D.clientWidth,height:D.clientHeight}),e.getDoc().selection.empty(),p(j,c,I)}function v(a){a.preventDefault?a.preventDefault():a.returnValue=!1}function w(a){return k(j(e.getBody(),a))}function x(a){var b=a.srcElement;if(w(b))return void v(a);if(b!=D){if(e.fire("ObjectSelected",{target:b}),y(),0===b.id.indexOf("mceResizeHandle"))return void(a.returnValue=!1);"IMG"!=b.nodeName&&"TABLE"!=b.nodeName||(q(),D=b,s(b,"resizestart",u))}}function y(){t(D,"resizestart",u)}function z(){for(var a in G){var b=G[a];b.elm&&(V.unbind(b.elm),delete b.elm)}}function A(){try{e.getDoc().execCommand("enableObjectResizing",!1,!1)}catch(a){}}function B(a){var b;if(Z){b=X.body.createControlRange();try{return b.addElement(a),b.select(),!0}catch(c){}}}function C(){D=E=null,Z&&(y(),t(aa,"controlselect",x))}var D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V=e.dom,W=h.each,X=e.getDoc(),Y=document,Z=f.ie&&f.ie<11,$=Math.abs,_=Math.round,aa=e.getBody();G={nw:[0,0,-1,-1],ne:[1,0,1,-1],se:[1,1,1,1],sw:[0,1,-1,1]};var ba=".mce-content-body";return e.contentStyles.push(ba+" div.mce-resizehandle {position: absolute;border: 1px solid black;box-sizing: box-sizing;background: #FFF;width: 7px;height: 7px;z-index: 10000}"+ba+" .mce-resizehandle:hover {background: #000}"+ba+" img[data-mce-selected],"+ba+" hr[data-mce-selected] {outline: 1px solid black;resize: none}"+ba+" .mce-clonedresizable {position: absolute;"+(f.gecko?"":"outline: 1px dashed black;")+"opacity: .5;filter: alpha(opacity=50);z-index: 10000}"+ba+" .mce-resize-helper {background: #555;background: rgba(0,0,0,0.75);border-radius: 3px;border: 1px;color: white;display: none;font-family: sans-serif;font-size: 12px;white-space: nowrap;line-height: 14px;margin: 5px 10px;padding: 5px;position: absolute;z-index: 10001}"),e.on("init",function(){Z?(e.on("ObjectResized",function(a){"TABLE"!=a.target.nodeName&&(q(),B(a.target))}),s(aa,"controlselect",x),e.on("mousedown",function(a){I=a})):(A(),f.ie>=11&&(e.on("mousedown click",function(a){var b=a.target,c=b.nodeName;Q||!/^(TABLE|IMG|HR)$/.test(c)||w(b)||(2!==a.button&&e.selection.select(b,"TABLE"==c),"mousedown"==a.type&&e.nodeChanged())}),e.dom.bind(aa,"mscontrolselect",function(a){function b(a){g.setEditorTimeout(e,function(){e.selection.select(a)})}return w(a.target)?(a.preventDefault(),void b(a.target)):void(/^(TABLE|IMG|HR)$/.test(a.target.nodeName)&&(a.preventDefault(),"IMG"==a.target.tagName&&b(a.target)))})));var b=g.throttle(function(a){e.composing||r(a)});e.on("nodechange ResizeEditor ResizeWindow drop",b),e.on("keyup compositionend",function(a){D&&"TABLE"==D.nodeName&&b(a)}),e.on("hide blur",q),e.on("contextmenu",a.curry(o,e))}),e.on("remove",z),{isResizable:l,showResizeRect:p,hideResizeRect:q,updateResizeRect:r,controlSelect:B,destroy:C}}}),g("tinymce.core.dom.ScrollIntoView",["tinymce.core.dom.NodeType"],function(a){var b=function(a){for(var b=0,c=0,d=a;d&&d.nodeType;)b+=d.offsetLeft||0,c+=d.offsetTop||0,d=d.offsetParent;return{x:b,y:c}},c=function(a,b,c){var d={elm:b,alignToTop:c};return a.fire("scrollIntoView",d),d.isDefaultPrevented()},d=function(d,e,f){var g,h,i,j,k=d.dom,l=k.getRoot(),m=0;if(!c(d,e,f)&&a.isElement(e)){if(f===!1&&(m=e.offsetHeight),"BODY"!==l.nodeName){var n=d.selection.getScrollContainer();if(n)return g=b(e).y-b(n).y+m,j=n.clientHeight,i=n.scrollTop,void((g<i||g+25>i+j)&&(n.scrollTop=g<i?g:g-j+25))}h=k.getViewPort(d.getWin()),g=k.getPos(e).y+m,i=h.y,j=h.h,(g<h.y||g+25>i+j)&&d.getWin().scrollTo(0,g<i?g:g-j+25)}};return{scrollIntoView:d}}),g("tinymce.core.dom.TridentSelection",[],function(){function a(a){function b(b,c){var d,e,f,g,h,i,j,k,l=0,m=-1;if(d=b.duplicate(),d.collapse(c),k=d.parentElement(),k.ownerDocument===a.dom.doc){for(;"false"===k.contentEditable;)k=k.parentNode;if(!k.hasChildNodes())return{node:k,inside:1};for(g=k.children,e=g.length-1;l<=e;)if(j=Math.floor((l+e)/2),h=g[j],d.moveToElementText(h),m=d.compareEndPoints(c?"StartToStart":"EndToEnd",b),m>0)e=j-1;else{if(!(m<0))return{node:h};l=j+1}if(m<0)for(h?d.collapse(!1):(d.moveToElementText(k),d.collapse(!0),h=k,f=!0),i=0;0!==d.compareEndPoints(c?"StartToStart":"StartToEnd",b)&&0!==d.move("character",1)&&k==d.parentElement();)i++;else for(d.collapse(!0),i=0;0!==d.compareEndPoints(c?"StartToStart":"StartToEnd",b)&&0!==d.move("character",-1)&&k==d.parentElement();)i++;return{node:h,position:m,offset:i,inside:f}}}function c(){function c(a){var c,d,e,f,g,h=b(k,a),i=0;if(c=h.node,d=h.offset,h.inside&&!c.hasChildNodes())return void l[a?"setStart":"setEnd"](c,0);if(d===f)return void l[a?"setStartBefore":"setEndAfter"](c);if(h.position<0){if(e=h.inside?c.firstChild:c.nextSibling,!e)return void l[a?"setStartAfter":"setEndAfter"](c);if(!d)return void(3==e.nodeType?l[a?"setStart":"setEnd"](e,0):l[a?"setStartBefore":"setEndBefore"](e));for(;e;){if(3==e.nodeType&&(g=e.nodeValue,i+=g.length,i>=d)){c=e,i-=d,i=g.length-i;break}e=e.nextSibling}}else{if(e=c.previousSibling,!e)return l[a?"setStartBefore":"setEndBefore"](c);if(!d)return void(3==c.nodeType?l[a?"setStart":"setEnd"](e,c.nodeValue.length):l[a?"setStartAfter":"setEndAfter"](e));for(;e;){if(3==e.nodeType&&(i+=e.nodeValue.length,i>=d)){c=e,i-=d;break}e=e.previousSibling}}l[a?"setStart":"setEnd"](c,i)}var f,g,h,i,j,k=a.getRng(),l=e.createRng();if(f=k.item?k.item(0):k.parentElement(),f.ownerDocument!=e.doc)return l;if(g=a.isCollapsed(),k.item)return l.setStart(f.parentNode,e.nodeIndex(f)),l.setEnd(l.startContainer,l.startOffset+1),l;try{c(!0),g||c()}catch(m){if(m.number!=-2147024809)throw m;j=d.getBookmark(2),h=k.duplicate(),h.collapse(!0),f=h.parentElement(),g||(h=k.duplicate(),h.collapse(!1),i=h.parentElement(),i.innerHTML=i.innerHTML),f.innerHTML=f.innerHTML,d.moveToBookmark(j),k=a.getRng(),c(!0),g||c()}return l}var d=this,e=a.dom,f=!1;this.getBookmark=function(c){function d(a){var b,c,d,f,g=[];for(b=a.parentNode,c=e.getRoot().parentNode;b!=c&&9!==b.nodeType;){for(d=b.children,f=d.length;f--;)if(a===d[f]){g.push(f);break}a=b,b=b.parentNode}return g}function f(a){var c;if(c=b(g,a))return{position:c.position,offset:c.offset,indexes:d(c.node),inside:c.inside}}var g=a.getRng(),h={};return 2===c&&(g.item?h.start={ctrl:!0,indexes:d(g.item(0))}:(h.start=f(!0),a.isCollapsed()||(h.end=f()))),h},this.moveToBookmark=function(a){function b(a){var b,c,d,f;for(b=e.getRoot(),c=a.length-1;c>=0;c--)f=b.children,d=a[c],d<=f.length-1&&(b=f[d]);return b}function c(c){var e,g,h,i,j=a[c?"start":"end"];j&&(e=j.position>0,g=f.createTextRange(),g.moveToElementText(b(j.indexes)),i=j.offset,i!==h?(g.collapse(j.inside||e),g.moveStart("character",e?-i:i)):g.collapse(c),d.setEndPoint(c?"StartToStart":"EndToStart",g),c&&d.collapse(!0))}var d,f=e.doc.body;a.start&&(a.start.ctrl?(d=f.createControlRange(),d.addElement(b(a.start.indexes)),d.select()):(d=f.createTextRange(),c(!0),c(),d.select()))},this.addRange=function(b){function c(a){var b,c,g,l,m;g=e.create("a"),b=a?h:j,c=a?i:k,l=d.duplicate(),b!=o&&b!=o.documentElement||(b=p,c=0),3==b.nodeType?(b.parentNode.insertBefore(g,b),l.moveToElementText(g),l.moveStart("character",c),e.remove(g),d.setEndPoint(a?"StartToStart":"EndToEnd",l)):(m=b.childNodes,m.length?(c>=m.length?e.insertAfter(g,m[m.length-1]):b.insertBefore(g,m[c]),l.moveToElementText(g)):b.canHaveHTML&&(b.innerHTML="<span></span>",g=b.firstChild,l.moveToElementText(g),l.collapse(f)),d.setEndPoint(a?"StartToStart":"EndToEnd",l),e.remove(g))}var d,g,h,i,j,k,l,m,n,o=a.dom.doc,p=o.body;if(h=b.startContainer,i=b.startOffset,j=b.endContainer,k=b.endOffset,d=p.createTextRange(),h==j&&1==h.nodeType){if(i==k&&!h.hasChildNodes()){if(h.canHaveHTML)return l=h.previousSibling,l&&!l.hasChildNodes()&&e.isBlock(l)?l.innerHTML="":l=null,h.innerHTML="<span></span><span></span>",d.moveToElementText(h.lastChild),d.select(),e.doc.selection.clear(),h.innerHTML="",void(l&&(l.innerHTML=""));i=e.nodeIndex(h),h=h.parentNode}if(i==k-1)try{if(n=h.childNodes[i],g=p.createControlRange(),g.addElement(n),g.select(),m=a.getRng(),m.item&&n===m.item(0))return}catch(q){}}c(!0),c(),d.select()},this.getRangeAt=c}return a}),g("ephox.sugar.api.dom.Replication",["ephox.sugar.api.properties.Attr","ephox.sugar.api.node.Element","ephox.sugar.api.dom.Insert","ephox.sugar.api.dom.InsertAll","ephox.sugar.api.dom.Remove","ephox.sugar.api.search.Traverse"],function(a,b,c,d,e,f){var g=function(a,c){return b.fromDom(a.dom().cloneNode(c))},h=function(a){return g(a,!1)},i=function(a){return g(a,!0)},j=function(c,d){var e=b.fromTag(d),f=a.clone(c);return a.setAll(e,f),e},k=function(a,b){var c=j(a,b),e=f.children(i(a));return d.append(c,e),c},l=function(a,b){var g=j(a,b);c.before(a,g);var h=f.children(a);return d.append(g,h),e.remove(a),g};return{shallow:h,shallowAs:j,deep:i,copy:k,mutate:l}}),g("ephox.sugar.api.node.Fragment",["ephox.katamari.api.Arr","ephox.sugar.api.node.Element","global!document"],function(a,b,c){var d=function(d,e){var f=e||c,g=f.createDocumentFragment();return a.each(d,function(a){g.appendChild(a.dom())}),b.fromDom(g)};return{fromElements:d}}),g("ephox.sugar.impl.ClosestOrAncestor",["ephox.katamari.api.Type","ephox.katamari.api.Option"],function(a,b){return function(c,d,e,f,g){return c(e,f)?b.some(e):a.isFunction(g)&&g(e)?b.none():d(e,f,g)}}),g("ephox.sugar.api.search.PredicateFind",["ephox.katamari.api.Type","ephox.katamari.api.Arr","ephox.katamari.api.Fun","ephox.katamari.api.Option","ephox.sugar.api.node.Body","ephox.sugar.api.dom.Compare","ephox.sugar.api.node.Element","ephox.sugar.impl.ClosestOrAncestor"],function(a,b,c,d,e,f,g,h){var i=function(a){return n(e.body(),a)},j=function(b,e,f){for(var h=b.dom(),i=a.isFunction(f)?f:c.constant(!1);h.parentNode;){h=h.parentNode;var j=g.fromDom(h);if(e(j))return d.some(j);if(i(j))break}return d.none()},k=function(a,b,c){var d=function(a){return b(a)};return h(d,j,a,b,c)},l=function(a,b){var c=a.dom();return c.parentNode?m(g.fromDom(c.parentNode),function(c){return!f.eq(a,c)&&b(c)}):d.none()},m=function(a,d){var e=b.find(a.dom().childNodes,c.compose(d,g.fromDom));return e.map(g.fromDom)},n=function(a,b){var c=function(a){for(var e=0;e<a.childNodes.length;e++){if(b(g.fromDom(a.childNodes[e])))return d.some(g.fromDom(a.childNodes[e]));var f=c(a.childNodes[e]);if(f.isSome())return f}return d.none()};return c(a.dom())};return{first:i,ancestor:j,closest:k,sibling:l,child:m,descendant:n}}),g("ephox.sugar.api.search.SelectorFind",["ephox.sugar.api.search.PredicateFind","ephox.sugar.api.search.Selectors","ephox.sugar.impl.ClosestOrAncestor"],function(a,b,c){var d=function(a){return b.one(a)},e=function(c,d,e){return a.ancestor(c,function(a){return b.is(a,d)},e)},f=function(c,d){return a.sibling(c,function(a){return b.is(a,d)})},g=function(c,d){return a.child(c,function(a){return b.is(a,d)})},h=function(a,c){return b.one(c,a)},i=function(a,d,f){return c(b.is,e,a,d,f)};return{first:d,ancestor:e,sibling:f,child:g,descendant:h,closest:i}}),g("tinymce.core.dom.Parents",["ephox.katamari.api.Fun","ephox.sugar.api.dom.Compare","ephox.sugar.api.search.Traverse"],function(a,b,c){var d=function(a){return a.slice(0,-1)},e=function(a,e,f){return b.contains(e,a)?d(c.parents(a,function(a){return f(a)||b.eq(a,e)})):[]},f=function(b,c){return e(b,c,a.constant(!1))},g=function(a,b){return[a].concat(f(a,b))};return{parentsUntil:e,parents:f,parentsAndSelf:g}}),g("ephox.katamari.api.Options",["ephox.katamari.api.Option"],function(a){var b=function(a){for(var b=[],c=function(a){b.push(a)},d=0;d<a.length;d++)a[d].each(c);return b},c=function(b,c){for(var d=0;d<b.length;d++){var e=c(b[d],d);if(e.isSome())return e}return a.none()},d=function(b,c){for(var d=[],e=0;e<b.length;e++){var f=b[e];if(!f.isSome())return a.none();d.push(f.getOrDie())}return a.some(c.apply(null,d))};return{cat:b,findMap:c,liftN:d}}),g("tinymce.core.selection.SelectionUtils",["ephox.katamari.api.Arr","ephox.katamari.api.Fun","ephox.katamari.api.Option","ephox.katamari.api.Options","ephox.sugar.api.dom.Compare","ephox.sugar.api.node.Element","ephox.sugar.api.node.Node","ephox.sugar.api.search.Traverse","tinymce.core.dom.NodeType"],function(a,b,c,d,e,f,g,h,i){var j=function(a){var b=a.startContainer,d=a.startOffset;return i.isText(b)?0===d?c.some(f.fromDom(b)):c.none():c.from(b.childNodes[d]).map(f.fromDom)},k=function(a){var b=a.endContainer,d=a.endOffset;return i.isText(b)?d===b.data.length?c.some(f.fromDom(b)):c.none():c.from(b.childNodes[d-1]).map(f.fromDom)},l=function(a){return h.firstChild(a).fold(b.constant([a]),function(b){return[a].concat(l(b))})},m=function(a){return h.lastChild(a).fold(b.constant([a]),function(b){return"br"===g.name(b)?h.prevSibling(b).map(function(b){return[a].concat(m(b))}).getOr([]):[a].concat(m(b))})},n=function(c,f){return d.liftN([j(f),k(f)],function(d,f){var g=a.find(l(c),b.curry(e.eq,d)),h=a.find(m(c),b.curry(e.eq,f));return g.isSome()&&h.isSome()}).getOr(!1)};return{hasAllContentsSelected:n}}),g("tinymce.core.selection.SimpleTableModel",["ephox.katamari.api.Arr","ephox.katamari.api.Option","ephox.katamari.api.Struct","ephox.sugar.api.dom.Compare","ephox.sugar.api.dom.Insert","ephox.sugar.api.dom.InsertAll","ephox.sugar.api.dom.Replication","ephox.sugar.api.node.Element","ephox.sugar.api.properties.Attr","ephox.sugar.api.search.SelectorFilter"],function(a,b,c,d,e,f,g,h,i,j){var k=c.immutable("element","width","rows"),l=c.immutable("element","cells"),m=c.immutable("x","y"),n=function(a,b){var c=parseInt(i.get(a,b),10);return isNaN(c)?1:c},o=function(a,b,c,d,e){for(var f=n(e,"rowspan"),h=n(e,"colspan"),i=a.rows(),j=c;j<c+f;j++){i[j]||(i[j]=l(g.deep(d),[]));for(var k=b;k<b+h;k++){var m=i[j].cells();m[k]=j==c&&k==b?e:g.shallow(e)}}},p=function(a,b,c){var d=a.rows(),e=d[c]?d[c].cells():[];return!!e[b]},q=function(a,b,c){for(;p(a,b,c);)b++;return b},r=function(b){return a.foldl(b,function(a,b){return b.cells().length>a?b.cells().length:a},0)},s=function(a,c){for(var e=a.rows(),f=0;f<e.length;f++)for(var g=e[f].cells(),h=0;h<g.length;h++)if(d.eq(g[h],c))return b.some(m(h,f));return b.none()},t=function(a,b,c,d,e){for(var f=[],g=a.rows(),h=c;h<=e;h++){var i=g[h].cells(),j=b<d?i.slice(b,d+1):i.slice(d,b+1);f.push(l(g[h].element(),j))}return f},u=function(a,b,c){var d=b.x(),e=b.y(),f=c.x(),g=c.y(),h=e<g?t(a,d,e,f,g):t(a,d,g,f,e);return k(a.element(),r(h),h)},v=function(a,b){var c=g.shallow(a.element()),d=h.fromTag("tbody");return f.append(d,b),e.append(c,d),c},w=function(b){return a.map(b.rows(),function(b){var c=a.map(b.cells(),function(a){var b=g.deep(a);return i.remove(b,"colspan"),i.remove(b,"rowspan"),b}),d=g.shallow(b.element());return f.append(d,c),d})},x=function(b){var c=k(g.shallow(b),0,[]);return a.each(j.descendants(b,"tr"),function(b,d){a.each(j.descendants(b,"td,th"),function(a,e){o(c,q(c,e,d),d,b,a)})}),k(c.element(),r(c.rows()),c.rows())},y=function(a){return v(a,w(a))},z=function(a,b,c){return s(a,b).bind(function(b){return s(a,c).map(function(c){return u(a,b,c)})})};return{fromDom:x,toDom:y,subsection:z}}),g("tinymce.core.selection.MultiRange",["ephox.katamari.api.Arr","ephox.sugar.api.node.Element","tinymce.core.dom.RangeUtils"],function(a,b,c){ -var d=function(a){var b=[];if(a)for(var c=0;c<a.rangeCount;c++)b.push(a.getRangeAt(c));return b},e=function(d){return a.bind(d,function(a){var d=c.getSelectedNode(a);return d?[b.fromDom(d)]:[]})},f=function(a){return d(a).length>1};return{getRanges:d,getSelectedNodes:e,hasMultipleRanges:f}}),g("tinymce.core.selection.TableCellSelection",["ephox.katamari.api.Arr","ephox.sugar.api.node.Element","ephox.sugar.api.search.SelectorFilter","tinymce.core.dom.ElementType","tinymce.core.selection.MultiRange"],function(a,b,c,d,e){var f=function(b){return a.filter(e.getSelectedNodes(b),d.isTableCell)},g=function(a){var b=c.descendants(a,"td[data-mce-selected],th[data-mce-selected]");return b},h=function(a,b){var c=g(b),d=f(a);return c.length>0?c:d},i=function(a){return h(e.getRanges(a.selection.getSel()),b.fromDom(a.getBody()))};return{getCellsFromRanges:f,getCellsFromElement:g,getCellsFromElementOrRanges:h,getCellsFromEditor:i}}),g("tinymce.core.selection.FragmentReader",["ephox.katamari.api.Arr","ephox.katamari.api.Fun","ephox.sugar.api.dom.Compare","ephox.sugar.api.dom.Insert","ephox.sugar.api.dom.Replication","ephox.sugar.api.node.Element","ephox.sugar.api.node.Fragment","ephox.sugar.api.node.Node","ephox.sugar.api.search.SelectorFind","ephox.sugar.api.search.Traverse","tinymce.core.dom.ElementType","tinymce.core.dom.Parents","tinymce.core.selection.SelectionUtils","tinymce.core.selection.SimpleTableModel","tinymce.core.selection.TableCellSelection"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){var p=function(b){return a.find(b,function(a){return"ul"===h.name(a)||"ol"===h.name(a)})},q=function(c,d){return a.find(c,function(a){return"li"===h.name(a)&&m.hasAllContentsSelected(a,d)}).fold(b.constant([]),function(a){return p(c).map(function(a){return[f.fromTag("li"),f.fromTag(h.name(a))]}).getOr([])})},r=function(b,c){var e=a.foldl(c,function(a,b){return d.append(b,a),b},b);return c.length>0?g.fromElements([e]):e},s=function(a){return k.isListItem(a)?j.parent(a).filter(k.isList).fold(b.constant([]),function(b){return[a,b]}):k.isList(a)?[a]:[]},t=function(b,c){var d=f.fromDom(c.commonAncestorContainer),g=l.parentsAndSelf(d,b),h=a.filter(g,function(a){return k.isInline(a)||k.isHeading(a)}),i=q(g,c),j=h.concat(i.length?i:s(d));return a.map(j,e.shallow)},u=function(){return g.fromElements([])},v=function(a,b){return r(f.fromDom(b.cloneContents()),t(a,b))},w=function(a,d){return i.ancestor(d,"table",b.curry(c.eq,a))},x=function(a,b){return w(a,b[0]).bind(function(a){var c=b[0],d=b[b.length-1],e=n.fromDom(a);return n.subsection(e,c,d).map(function(a){return g.fromElements([n.toDom(a)])})}).getOrThunk(u)},y=function(a,b){return b.length>0&&b[0].collapsed?u():v(a,b[0])},z=function(a,b){var c=o.getCellsFromElementOrRanges(b,a);return c.length>0?x(a,c):y(a,b)};return{read:z}}),g("tinymce.core.dom.Selection",["ephox.katamari.api.Arr","ephox.sugar.api.dom.Compare","ephox.sugar.api.node.Element","tinymce.core.caret.CaretPosition","tinymce.core.dom.BookmarkManager","tinymce.core.dom.ControlSelection","tinymce.core.dom.NodeType","tinymce.core.dom.RangeUtils","tinymce.core.dom.ScrollIntoView","tinymce.core.dom.TreeWalker","tinymce.core.dom.TridentSelection","tinymce.core.Env","tinymce.core.selection.FragmentReader","tinymce.core.selection.MultiRange","tinymce.core.text.Zwsp","tinymce.core.util.Tools"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p){function q(a,b,c,d){var g=this;g.dom=a,g.win=b,g.serializer=c,g.editor=d,g.bookmarkManager=new e(g),g.controlSelection=new f(g,d),g.win.getSelection||(g.tridentSel=new k(g))}var r=p.each,s=p.trim,t=l.ie,u=function(a){return!(!a||!a.ownerDocument)&&b.contains(c.fromDom(a.ownerDocument),c.fromDom(a))},v=function(a){return!!a&&(!!a.select||u(a.startContainer)&&u(a.endContainer))},w=function(b,c){return a.map(c,function(a){var c=b.fire("GetSelectionRange",{range:a});return c.range!==a?c.range:a})};return q.prototype={setCursorLocation:function(a,b){var c=this,d=c.dom.createRng();a?(d.setStart(a,b),d.setEnd(a,b),c.setRng(d),c.collapse(!1)):(c._moveEndPoint(d,c.editor.getBody(),!0),c.setRng(d))},getContent:function(a){var b,d,e,f=this,g=f.getRng(),h=f.dom.create("body"),i=f.getSel(),j=w(f.editor,n.getRanges(this.getSel()));return a=a||{},b=d="",a.get=!0,a.format=a.format||"html",a.selection=!0,f.editor.fire("BeforeGetContent",a),"text"===a.format?f.isCollapsed()?"":o.trim(g.text||(i.toString?i.toString():"")):(g.cloneContents?(e=a.contextual?m.read(c.fromDom(f.editor.getBody()),j).dom():g.cloneContents(),e&&h.appendChild(e)):void 0!==g.item||void 0!==g.htmlText?(h.innerHTML="<br>"+(g.item?g.item(0).outerHTML:g.htmlText),h.removeChild(h.firstChild)):h.innerHTML=g.toString(),/^\s/.test(h.innerHTML)&&(b=" "),/\s+$/.test(h.innerHTML)&&(d=" "),a.getInner=!0,a.content=f.isCollapsed()?"":b+f.serializer.serialize(h,a)+d,f.editor.fire("GetContent",a),a.content)},setContent:function(a,b){var c,d,e,f=this,g=f.getRng(),h=f.win.document;if(b=b||{format:"html"},b.set=!0,b.selection=!0,b.content=a,b.no_events||f.editor.fire("BeforeSetContent",b),a=b.content,g.insertNode){a+='<span id="__caret">_</span>',g.startContainer==h&&g.endContainer==h?h.body.innerHTML=a:(g.deleteContents(),0===h.body.childNodes.length?h.body.innerHTML=a:g.createContextualFragment?g.insertNode(g.createContextualFragment(a)):(d=h.createDocumentFragment(),e=h.createElement("div"),d.appendChild(e),e.outerHTML=a,g.insertNode(d))),c=f.dom.get("__caret"),g=h.createRange(),g.setStartBefore(c),g.setEndBefore(c),f.setRng(g),f.dom.remove("__caret");try{f.setRng(g)}catch(i){}}else g.item&&(h.execCommand("Delete",!1,null),g=f.getRng()),/^\s+/.test(a)?(g.pasteHTML('<span id="__mce_tmp">_</span>'+a),f.dom.remove("__mce_tmp")):g.pasteHTML(a);b.no_events||f.editor.fire("SetContent",b)},getStart:function(a){var b,c,d,e,f=this,g=f.getRng();if(g.duplicate||g.item){if(g.item)return g.item(0);for(d=g.duplicate(),d.collapse(1),b=d.parentElement(),b.ownerDocument!==f.dom.doc&&(b=f.dom.getRoot()),c=e=g.parentElement();e=e.parentNode;)if(e==b){b=c;break}return b}return b=g.startContainer,1==b.nodeType&&b.hasChildNodes()&&(a&&g.collapsed||(b=b.childNodes[Math.min(b.childNodes.length-1,g.startOffset)])),b&&3==b.nodeType?b.parentNode:b},getEnd:function(a){var b,c,d=this,e=d.getRng();return e.duplicate||e.item?e.item?e.item(0):(e=e.duplicate(),e.collapse(0),b=e.parentElement(),b.ownerDocument!==d.dom.doc&&(b=d.dom.getRoot()),b&&"BODY"==b.nodeName?b.lastChild||b:b):(b=e.endContainer,c=e.endOffset,1==b.nodeType&&b.hasChildNodes()&&(a&&e.collapsed||(b=b.childNodes[c>0?c-1:c])),b&&3==b.nodeType?b.parentNode:b)},getBookmark:function(a,b){return this.bookmarkManager.getBookmark(a,b)},moveToBookmark:function(a){return this.bookmarkManager.moveToBookmark(a)},select:function(a,b){var c,d=this,e=d.dom,f=e.createRng();if(d.lastFocusBookmark=null,a){if(!b&&d.controlSelection.controlSelect(a))return;c=e.nodeIndex(a),f.setStart(a.parentNode,c),f.setEnd(a.parentNode,c+1),b&&(d._moveEndPoint(f,a,!0),d._moveEndPoint(f,a)),d.setRng(f)}return a},isCollapsed:function(){var a=this,b=a.getRng(),c=a.getSel();return!(!b||b.item)&&(b.compareEndPoints?0===b.compareEndPoints("StartToEnd",b):!c||b.collapsed)},collapse:function(a){var b,c=this,d=c.getRng();d.item&&(b=d.item(0),d=c.win.document.body.createTextRange(),d.moveToElementText(b)),d.collapse(!!a),c.setRng(d)},getSel:function(){var a=this.win;return a.getSelection?a.getSelection():a.document.selection},getRng:function(a){function b(a,b,c){try{return b.compareBoundaryPoints(a,c)}catch(d){return-1}}var c,d,e,f,g,h=this;if(!h.win)return null;if(f=h.win.document,"undefined"==typeof f||null===f)return null;if(!a&&h.lastFocusBookmark){var i=h.lastFocusBookmark;return i.startContainer?(d=f.createRange(),d.setStart(i.startContainer,i.startOffset),d.setEnd(i.endContainer,i.endOffset)):d=i,d}if(a&&h.tridentSel)return h.tridentSel.getRangeAt(0);try{(c=h.getSel())&&(d=c.rangeCount>0?c.getRangeAt(0):c.createRange?c.createRange():f.createRange())}catch(j){}if(d=w(h.editor,[d])[0],t&&d&&d.setStart&&f.selection){try{g=f.selection.createRange()}catch(j){}g&&g.item&&(e=g.item(0),d=f.createRange(),d.setStartBefore(e),d.setEndAfter(e))}return d||(d=f.createRange?f.createRange():f.body.createTextRange()),d.setStart&&9===d.startContainer.nodeType&&d.collapsed&&(e=h.dom.getRoot(),d.setStart(e,0),d.setEnd(e,0)),h.selectedRange&&h.explicitRange&&(0===b(d.START_TO_START,d,h.selectedRange)&&0===b(d.END_TO_END,d,h.selectedRange)?d=h.explicitRange:(h.selectedRange=null,h.explicitRange=null)),d},setRng:function(a,b){var c,d,e,f=this;if(v(a))if(a.select){f.explicitRange=null;try{a.select()}catch(g){}}else if(f.tridentSel){if(a.cloneRange)try{f.tridentSel.addRange(a)}catch(g){}}else{if(c=f.getSel(),e=f.editor.fire("SetSelectionRange",{range:a,forward:b}),a=e.range,c){f.explicitRange=a;try{c.removeAllRanges(),c.addRange(a)}catch(g){}b===!1&&c.extend&&(c.collapse(a.endContainer,a.endOffset),c.extend(a.startContainer,a.startOffset)),f.selectedRange=c.rangeCount>0?c.getRangeAt(0):null}a.collapsed||a.startContainer!==a.endContainer||!c.setBaseAndExtent||l.ie||a.endOffset-a.startOffset<2&&a.startContainer.hasChildNodes()&&(d=a.startContainer.childNodes[a.startOffset],d&&"IMG"===d.tagName&&(c.setBaseAndExtent(a.startContainer,a.startOffset,a.endContainer,a.endOffset),c.anchorNode===a.startContainer&&c.focusNode===a.endContainer||c.setBaseAndExtent(d,0,d,1))),f.editor.fire("AfterSetSelectionRange",{range:a,forward:b})}},setNode:function(a){var b=this;return b.setContent(b.dom.getOuterHTML(a)),a},getNode:function(){function a(a,b){for(var c=a;a&&3===a.nodeType&&0===a.length;)a=b?a.nextSibling:a.previousSibling;return a||c}var b,c,d,e,f,g=this,h=g.getRng(),i=g.dom.getRoot();return h?(c=h.startContainer,d=h.endContainer,e=h.startOffset,f=h.endOffset,h.setStart?(b=h.commonAncestorContainer,!h.collapsed&&(c==d&&f-e<2&&c.hasChildNodes()&&(b=c.childNodes[e]),3===c.nodeType&&3===d.nodeType&&(c=c.length===e?a(c.nextSibling,!0):c.parentNode,d=0===f?a(d.previousSibling,!1):d.parentNode,c&&c===d))?c:b&&3==b.nodeType?b.parentNode:b):(b=h.item?h.item(0):h.parentElement(),b.ownerDocument!==g.win.document&&(b=i),b)):i},getSelectedBlocks:function(a,b){var c,d,e=this,f=e.dom,g=[];if(d=f.getRoot(),a=f.getParent(a||e.getStart(),f.isBlock),b=f.getParent(b||e.getEnd(),f.isBlock),a&&a!=d&&g.push(a),a&&b&&a!=b){c=a;for(var h=new j(a,d);(c=h.next())&&c!=b;)f.isBlock(c)&&g.push(c)}return b&&a!=b&&b!=d&&g.push(b),g},isForward:function(){var a,b,c=this.dom,d=this.getSel();return!(d&&d.anchorNode&&d.focusNode)||(a=c.createRng(),a.setStart(d.anchorNode,d.anchorOffset),a.collapse(!0),b=c.createRng(),b.setStart(d.focusNode,d.focusOffset),b.collapse(!0),a.compareBoundaryPoints(a.START_TO_START,b)<=0)},normalize:function(){var a=this,b=a.getRng();return new h(a.dom).normalize(b)&&!n.hasMultipleRanges(a.getSel())&&a.setRng(b,a.isForward()),b},selectorChanged:function(a,b){var c,d=this;return d.selectorChangedData||(d.selectorChangedData={},c={},d.editor.on("NodeChange",function(a){var b=a.element,e=d.dom,f=e.getParents(b,null,e.getRoot()),g={};r(d.selectorChangedData,function(a,b){r(f,function(d){if(e.is(d,b))return c[b]||(r(a,function(a){a(!0,{node:d,selector:b,parents:f})}),c[b]=a),g[b]=a,!1})}),r(c,function(a,d){g[d]||(delete c[d],r(a,function(a){a(!1,{node:b,selector:d,parents:f})}))})})),d.selectorChangedData[a]||(d.selectorChangedData[a]=[]),d.selectorChangedData[a].push(b),d},getScrollContainer:function(){for(var a,b=this.dom.getRoot();b&&"BODY"!=b.nodeName;){if(b.scrollHeight>b.clientHeight){a=b;break}b=b.parentNode}return a},scrollIntoView:function(a,b){i.scrollIntoView(this.editor,a,b)},placeCaretAt:function(a,b){this.setRng(h.getCaretRangeFromPoint(a,b,this.editor.getDoc()))},_moveEndPoint:function(a,b,c){var d=b,e=new j(b,d),f=this.dom.schema.getNonEmptyElements();do{if(3==b.nodeType&&0!==s(b.nodeValue).length)return void(c?a.setStart(b,0):a.setEnd(b,b.nodeValue.length));if(f[b.nodeName]&&!/^(TD|TH)$/.test(b.nodeName))return void(c?a.setStartBefore(b):"BR"==b.nodeName?a.setEndBefore(b):a.setEndAfter(b));if(l.ie&&l.ie<11&&this.dom.isBlock(b)&&this.dom.isEmpty(b))return void(c?a.setStart(b,0):a.setEnd(b,0))}while(b=c?e.next():e.prev());"BODY"==d.nodeName&&(c?a.setStart(d,0):a.setEnd(d,d.childNodes.length))},getBoundingClientRect:function(){var a=this.getRng();return a.collapsed?d.fromRangeStart(a).getClientRects()[0]:a.getBoundingClientRect()},destroy:function(){this.win=null,this.controlSelection.destroy()}},q}),g("tinymce.core.html.Node",[],function(){function a(a,b,c){var d,e,f=c?"lastChild":"firstChild",g=c?"prev":"next";if(a[f])return a[f];if(a!==b){if(d=a[g])return d;for(e=a.parent;e&&e!==b;e=e.parent)if(d=e[g])return d}}function b(a,b){this.name=a,this.type=b,1===b&&(this.attributes=[],this.attributes.map={})}var c=/^[ \t\r\n]*$/,d={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11};return b.prototype={replace:function(a){var b=this;return a.parent&&a.remove(),b.insert(a,b),b.remove(),b},attr:function(a,b){var c,d,e,f=this;if("string"!=typeof a){for(d in a)f.attr(d,a[d]);return f}if(c=f.attributes){if(b!==e){if(null===b){if(a in c.map)for(delete c.map[a],d=c.length;d--;)if(c[d].name===a)return c=c.splice(d,1),f;return f}if(a in c.map){for(d=c.length;d--;)if(c[d].name===a){c[d].value=b;break}}else c.push({name:a,value:b});return c.map[a]=b,f}return c.map[a]}},clone:function(){var a,c,d,e,f,g=this,h=new b(g.name,g.type);if(d=g.attributes){for(f=[],f.map={},a=0,c=d.length;a<c;a++)e=d[a],"id"!==e.name&&(f[f.length]={name:e.name,value:e.value},f.map[e.name]=e.value);h.attributes=f}return h.value=g.value,h.shortEnded=g.shortEnded,h},wrap:function(a){var b=this;return b.parent.insert(a,b),a.append(b),b},unwrap:function(){var a,b,c=this;for(a=c.firstChild;a;)b=a.next,c.insert(a,c,!0),a=b;c.remove()},remove:function(){var a=this,b=a.parent,c=a.next,d=a.prev;return b&&(b.firstChild===a?(b.firstChild=c,c&&(c.prev=null)):d.next=c,b.lastChild===a?(b.lastChild=d,d&&(d.next=null)):c.prev=d,a.parent=a.next=a.prev=null),a},append:function(a){var b,c=this;return a.parent&&a.remove(),b=c.lastChild,b?(b.next=a,a.prev=b,c.lastChild=a):c.lastChild=c.firstChild=a,a.parent=c,a},insert:function(a,b,c){var d;return a.parent&&a.remove(),d=b.parent||this,c?(b===d.firstChild?d.firstChild=a:b.prev.next=a,a.prev=b.prev,a.next=b,b.prev=a):(b===d.lastChild?d.lastChild=a:b.next.prev=a,a.next=b.next,a.prev=b,b.next=a),a.parent=d,a},getAll:function(b){var c,d=this,e=[];for(c=d.firstChild;c;c=a(c,d))c.name===b&&e.push(c);return e},empty:function(){var b,c,d,e=this;if(e.firstChild){for(b=[],d=e.firstChild;d;d=a(d,e))b.push(d);for(c=b.length;c--;)d=b[c],d.parent=d.firstChild=d.lastChild=d.next=d.prev=null}return e.firstChild=e.lastChild=null,e},isEmpty:function(b,d,e){var f,g,h=this,i=h.firstChild;if(d=d||{},i)do{if(1===i.type){if(i.attributes.map["data-mce-bogus"])continue;if(b[i.name])return!1;for(f=i.attributes.length;f--;)if(g=i.attributes[f].name,"name"===g||0===g.indexOf("data-mce-bookmark"))return!1}if(8===i.type)return!1;if(3===i.type&&!c.test(i.value))return!1;if(3===i.type&&i.parent&&d[i.parent.name]&&c.test(i.value))return!1;if(e&&e(i))return!1}while(i=a(i,h));return!0},walk:function(b){return a(this,null,b)}},b.create=function(a,c){var e,f;if(e=new b(a,d[a]||1),c)for(f in c)e.attr(f,c[f]);return e},b}),g("tinymce.core.html.SaxParser",["tinymce.core.html.Schema","tinymce.core.html.Entities","tinymce.core.util.Tools"],function(a,b,c){function d(a,b,c){var d,e,f,g,h=1;for(g=a.getShortEndedElements(),f=/<([!?\/])?([A-Za-z0-9\-_\:\.]+)((?:\s+[^"\'>]+(?:(?:"[^"]*")|(?:\'[^\']*\')|[^>]*))*|\/|\s+)>/g,f.lastIndex=d=c;e=f.exec(b);){if(d=f.lastIndex,"/"===e[1])h--;else if(!e[1]){if(e[2]in g)continue;h++}if(0===h)break}return d}function e(e,i){function j(){}var k=this;e=e||{},k.schema=i=i||new a,e.fix_self_closing!==!1&&(e.fix_self_closing=!0),f("comment cdata text start end pi doctype".split(" "),function(a){a&&(k[a]=e[a]||j)}),k.parse=function(a){function f(a){var b,c;for(b=Q.length;b--&&Q[b].name!==a;);if(b>=0){for(c=Q.length-1;c>=b;c--)a=Q[c],a.valid&&O.end(a.name);Q.length=b}}function j(a,b,c,d,f){var h,i,j=/[\s\u0000-\u001F]+/g;if(b=b.toLowerCase(),c=b in u?b:S(c||d||f||""),w&&!r&&g(b)===!1){if(h=B[b],!h&&C){for(i=C.length;i--&&(h=C[i],!h.pattern.test(b)););i===-1&&(h=null)}if(!h)return;if(h.validValues&&!(c in h.validValues))return}if(T[b]&&!e.allow_script_urls){var k=c.replace(j,"");try{k=decodeURIComponent(k)}catch(l){k=unescape(k)}if(U.test(k))return;if(!e.allow_html_data_urls&&V.test(k)&&!/^data:image\//i.test(k))return}r&&(b in T||0===b.indexOf("on"))||(n.map[b]=c,n.push({name:b,value:c}))}var k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O=this,P=0,Q=[],R=0,S=b.decode,T=c.makeMap("src,href,data,background,formaction,poster"),U=/((java|vb)script|mhtml):/i,V=/^data:/i;for(J=new RegExp("<(?:(?:!--([\\w\\W]*?)-->)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([A-Za-z][A-Za-z0-9\\-_\\:\\.]*)>)|(?:([A-Za-z][A-Za-z0-9\\-_\\:\\.]*)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))","g"),K=/([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g,t=i.getShortEndedElements(),I=e.self_closing_elements||i.getSelfClosingElements(),u=i.getBoolAttrs(),w=e.validate,s=e.remove_internals,N=e.fix_self_closing,L=i.getSpecialElements(),G=a+">";k=J.exec(G);){if(P<k.index&&O.text(S(a.substr(P,k.index-P))),l=k[6])l=l.toLowerCase(),":"===l.charAt(0)&&(l=l.substr(1)),f(l);else if(l=k[7]){if(k.index+k[0].length>a.length){O.text(S(a.substr(k.index))),P=k.index+k[0].length;continue}if(l=l.toLowerCase(),":"===l.charAt(0)&&(l=l.substr(1)),v=l in t,N&&I[l]&&Q.length>0&&Q[Q.length-1].name===l&&f(l),!w||(x=i.getElementRule(l))){if(y=!0,w&&(B=x.attributes,C=x.attributePatterns),(A=k[8])?(r=A.indexOf("data-mce-type")!==-1,r&&s&&(y=!1),n=[],n.map={},A.replace(K,j)):(n=[],n.map={}),w&&!r){if(D=x.attributesRequired,E=x.attributesDefault,F=x.attributesForced,H=x.removeEmptyAttrs,H&&!n.length&&(y=!1),F)for(o=F.length;o--;)z=F[o],q=z.name,M=z.value,"{$uid}"===M&&(M="mce_"+R++),n.map[q]=M,n.push({name:q,value:M});if(E)for(o=E.length;o--;)z=E[o],q=z.name,q in n.map||(M=z.value,"{$uid}"===M&&(M="mce_"+R++),n.map[q]=M,n.push({name:q,value:M}));if(D){for(o=D.length;o--&&!(D[o]in n.map););o===-1&&(y=!1)}if(z=n.map["data-mce-bogus"]){if("all"===z){P=d(i,a,J.lastIndex),J.lastIndex=P;continue}y=!1}}y&&O.start(l,n,v)}else y=!1;if(m=L[l]){m.lastIndex=P=k.index+k[0].length,(k=m.exec(a))?(y&&(p=a.substr(P,k.index-P)),P=k.index+k[0].length):(p=a.substr(P),P=a.length),y&&(p.length>0&&O.text(p,!0),O.end(l)),J.lastIndex=P;continue}v||(A&&A.indexOf("/")==A.length-1?y&&O.end(l):Q.push({name:l,valid:y}))}else(l=k[1])?(">"===l.charAt(0)&&(l=" "+l),e.allow_conditional_comments||"[if"!==l.substr(0,3).toLowerCase()||(l=" "+l),O.comment(l)):(l=k[2])?O.cdata(h(l)):(l=k[3])?O.doctype(l):(l=k[4])&&O.pi(l,k[5]);P=k.index+k[0].length}for(P<a.length&&O.text(S(a.substr(P))),o=Q.length-1;o>=0;o--)l=Q[o],l.valid&&O.end(l.name)}}var f=c.each,g=function(a){return 0===a.indexOf("data-")||0===a.indexOf("aria-")},h=function(a){return a.replace(/<!--|-->/g,"")};return e.findEndTag=d,e}),g("tinymce.core.html.DomParser",["tinymce.core.html.Node","tinymce.core.html.Schema","tinymce.core.html.SaxParser","tinymce.core.util.Tools"],function(a,b,c,d){var e=d.makeMap,f=d.each,g=d.explode,h=d.extend,i=function(b,c){b.padd_empty_with_br?c.empty().append(new a("br","1")).shortEnded=!0:c.empty().append(new a("#text","3")).value="\xa0"},j=function(a,b){return a&&a.firstChild===a.lastChild&&a.firstChild.name===b},k=function(a,b){var c=a.getElementRule(b.name);return c&&c.paddEmpty},l=function(a,b,c,d){return d.isEmpty(b,c,function(b){return k(a,b)})};return function(k,m){function n(b){var c,d,f,g,h,i,k,n,p,q,r,s,t,u,v,w;for(s=e("tr,td,th,tbody,thead,tfoot,table"),q=m.getNonEmptyElements(),r=m.getWhiteSpaceElements(),t=m.getTextBlockElements(),u=m.getSpecialElements(),c=0;c<b.length;c++)if(d=b[c],d.parent&&!d.fixed)if(t[d.name]&&"li"==d.parent.name){for(v=d.next;v&&t[v.name];)v.name="li",v.fixed=!0,d.parent.insert(v,d.parent),v=v.next;d.unwrap(d)}else{for(g=[d],f=d.parent;f&&!m.isValidChild(f.name,d.name)&&!s[f.name];f=f.parent)g.push(f);if(f&&g.length>1){for(g.reverse(),h=i=o.filterNode(g[0].clone()),p=0;p<g.length-1;p++){for(m.isValidChild(i.name,g[p].name)?(k=o.filterNode(g[p].clone()),i.append(k)):k=i,n=g[p].firstChild;n&&n!=g[p+1];)w=n.next,k.append(n),n=w;i=k}l(m,q,r,h)?f.insert(d,g[0],!0):(f.insert(h,g[0],!0),f.insert(d,h)),f=g[0],(l(m,q,r,f)||j(f,"br"))&&f.empty().remove()}else if(d.parent){if("li"===d.name){if(v=d.prev,v&&("ul"===v.name||"ul"===v.name)){v.append(d);continue}if(v=d.next,v&&("ul"===v.name||"ul"===v.name)){v.insert(d,v.firstChild,!0);continue}d.wrap(o.filterNode(new a("ul",1)));continue}m.isValidChild(d.parent.name,"div")&&m.isValidChild("div",d.name)?d.wrap(o.filterNode(new a("div",1))):u[d.name]?d.empty().remove():d.unwrap()}}}var o=this,p={},q=[],r={},s={};k=k||{},k.validate=!("validate"in k)||k.validate,k.root_name=k.root_name||"body",o.schema=m=m||new b,o.filterNode=function(a){var b,c,d;c in p&&(d=r[c],d?d.push(a):r[c]=[a]),b=q.length;for(;b--;)c=q[b].name,c in a.attributes.map&&(d=s[c],d?d.push(a):s[c]=[a]);return a},o.addNodeFilter=function(a,b){f(g(a),function(a){var c=p[a];c||(p[a]=c=[]),c.push(b)})},o.addAttributeFilter=function(a,b){f(g(a),function(a){var c;for(c=0;c<q.length;c++)if(q[c].name===a)return void q[c].callbacks.push(b);q.push({name:a,callbacks:[b]})})},o.parse=function(b,d){function f(){function a(a){a&&(d=a.firstChild,d&&3==d.type&&(d.value=d.value.replace(F,"")),d=a.lastChild,d&&3==d.type&&(d.value=d.value.replace(H,"")))}var b,c,d=u.firstChild;if(m.isValidChild(u.name,N.toLowerCase())){for(;d;)b=d.next,3==d.type||1==d.type&&"p"!==d.name&&!E[d.name]&&!d.attr("data-mce-type")?c?c.append(d):(c=g(N,1),c.attr(k.forced_root_block_attrs),u.insert(c,d),c.append(d)):(a(c),c=null),d=b;a(c)}}function g(b,c){var d,e=new a(b,c);return b in p&&(d=r[b],d?d.push(e):r[b]=[e]),e}function j(a){var b,c,d,e,f=m.getBlockElements();for(b=a.prev;b&&3===b.type;){if(d=b.value.replace(H,""),d.length>0)return void(b.value=d);if(c=b.next){if(3==c.type&&c.value.length){b=b.prev;continue}if(!f[c.name]&&"script"!=c.name&&"style"!=c.name){b=b.prev;continue}}e=b.prev,b.remove(),b=e}}function o(a){var b,c={};for(b in a)"li"!==b&&"p"!=b&&(c[b]=a[b]);return c}var t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O=[];if(d=d||{},r={},s={},E=h(e("script,style,head,html,body,title,meta,param"),m.getBlockElements()),M=m.getNonEmptyElements(),L=m.children,D=k.validate,N="forced_root_block"in d?d.forced_root_block:k.forced_root_block,K=m.getWhiteSpaceElements(),F=/^[ \t\r\n]+/,H=/[ \t\r\n]+$/,I=/[ \t\r\n]+/g,J=/^[ \t\r\n]+$/,t=new c({validate:D,allow_script_urls:k.allow_script_urls,allow_conditional_comments:k.allow_conditional_comments,self_closing_elements:o(m.getSelfClosingElements()),cdata:function(a){v.append(g("#cdata",4)).value=a},text:function(a,b){var c;G||(a=a.replace(I," "),v.lastChild&&E[v.lastChild.name]&&(a=a.replace(F,""))),0!==a.length&&(c=g("#text",3),c.raw=!!b,v.append(c).value=a)},comment:function(a){v.append(g("#comment",8)).value=a},pi:function(a,b){v.append(g(a,7)).value=b,j(v)},doctype:function(a){var b;b=v.append(g("#doctype",10)),b.value=a,j(v)},start:function(a,b,c){var d,e,f,h,i;if(f=D?m.getElementRule(a):{}){for(d=g(f.outputName||a,1),d.attributes=b,d.shortEnded=c,v.append(d),i=L[v.name],i&&L[d.name]&&!i[d.name]&&O.push(d),e=q.length;e--;)h=q[e].name,h in b.map&&(B=s[h],B?B.push(d):s[h]=[d]);E[a]&&j(d),c||(v=d),!G&&K[a]&&(G=!0)}},end:function(a){var b,c,d,e,f;if(c=D?m.getElementRule(a):{}){if(E[a]&&!G){if(b=v.firstChild,b&&3===b.type)if(d=b.value.replace(F,""),d.length>0)b.value=d,b=b.next;else for(e=b.next,b.remove(),b=e;b&&3===b.type;)d=b.value,e=b.next,(0===d.length||J.test(d))&&(b.remove(),b=e),b=e;if(b=v.lastChild,b&&3===b.type)if(d=b.value.replace(H,""),d.length>0)b.value=d,b=b.prev;else for(e=b.prev,b.remove(),b=e;b&&3===b.type;)d=b.value,e=b.prev,(0===d.length||J.test(d))&&(b.remove(),b=e),b=e}if(G&&K[a]&&(G=!1),(c.removeEmpty||c.paddEmpty)&&l(m,M,K,v))if(c.paddEmpty)i(k,v);else if(!v.attributes.map.name&&!v.attributes.map.id)return f=v.parent,E[v.name]?v.empty().remove():v.unwrap(),void(v=f);v=v.parent}}},m),u=v=new a(d.context||k.root_name,11),t.parse(b),D&&O.length&&(d.context?d.invalid=!0:n(O)),N&&("body"==u.name||d.isRootContent)&&f(),!d.invalid){for(C in r){for(B=p[C],w=r[C],z=w.length;z--;)w[z].parent||w.splice(z,1);for(x=0,y=B.length;x<y;x++)B[x](w,C,d)}for(x=0,y=q.length;x<y;x++)if(B=q[x],B.name in s){for(w=s[B.name],z=w.length;z--;)w[z].parent||w.splice(z,1);for(z=0,A=B.callbacks.length;z<A;z++)B.callbacks[z](w,B.name,d)}}return u},k.remove_trailing_brs&&o.addNodeFilter("br",function(b){var c,d,e,f,g,j,n,o,p=b.length,q=h({},m.getBlockElements()),r=m.getNonEmptyElements(),s=m.getNonEmptyElements();for(q.body=1,c=0;c<p;c++)if(d=b[c],e=d.parent,q[d.parent.name]&&d===e.lastChild){for(g=d.prev;g;){if(j=g.name,"span"!==j||"bookmark"!==g.attr("data-mce-type")){if("br"!==j)break;if("br"===j){d=null;break}}g=g.prev}d&&(d.remove(),l(m,r,s,e)&&(n=m.getElementRule(e.name),n&&(n.removeEmpty?e.remove():n.paddEmpty&&i(k,e))))}else{for(f=d;e&&e.firstChild===f&&e.lastChild===f&&(f=e,!q[e.name]);)e=e.parent;f===e&&k.padd_empty_with_br!==!0&&(o=new a("#text",3),o.value="\xa0",d.replace(o))}}),o.addAttributeFilter("href",function(a){var b,c=a.length,e=function(a){var b=a.split(" ").filter(function(a){return a.length>0});return b.concat(["noopener"]).sort().join(" ")},f=function(a){var b=a?d.trim(a):"";return/\b(noopener)\b/g.test(b)?b:e(b)};if(!k.allow_unsafe_link_target)for(;c--;)b=a[c],"a"===b.name&&"_blank"===b.attr("target")&&b.attr("rel",f(b.attr("rel")))}),k.allow_html_in_named_anchor||o.addAttributeFilter("id,name",function(a){for(var b,c,d,e,f=a.length;f--;)if(e=a[f],"a"===e.name&&e.firstChild&&!e.attr("href")){d=e.parent,b=e.lastChild;do c=b.prev,d.insert(b,e),b=c;while(b)}}),k.fix_list_elements&&o.addNodeFilter("ul,ol",function(b){for(var c,d,e=b.length;e--;)if(c=b[e],d=c.parent,"ul"===d.name||"ol"===d.name)if(c.prev&&"li"===c.prev.name)c.prev.append(c);else{var f=new a("li",1);f.attr("style","list-style-type: none"),c.wrap(f)}}),k.validate&&m.getValidClasses()&&o.addAttributeFilter("class",function(a){for(var b,c,d,e,f,g,h,i=a.length,j=m.getValidClasses();i--;){for(b=a[i],c=b.attr("class").split(" "),f="",d=0;d<c.length;d++)e=c[d],h=!1,g=j["*"],g&&g[e]&&(h=!0),g=j[b.name],!h&&g&&g[e]&&(h=!0),h&&(f&&(f+=" "),f+=e);f.length||(f=null),b.attr("class",f)}})}}),g("tinymce.core.html.Writer",["tinymce.core.html.Entities","tinymce.core.util.Tools"],function(a,b){var c=b.makeMap;return function(b){var d,e,f,g,h,i=[];return b=b||{},d=b.indent,e=c(b.indent_before||""),f=c(b.indent_after||""),g=a.getEncodeFunc(b.entity_encoding||"raw",b.entities),h="html"==b.element_format,{start:function(a,b,c){var j,k,l,m;if(d&&e[a]&&i.length>0&&(m=i[i.length-1],m.length>0&&"\n"!==m&&i.push("\n")),i.push("<",a),b)for(j=0,k=b.length;j<k;j++)l=b[j],i.push(" ",l.name,'="',g(l.value,!0),'"');!c||h?i[i.length]=">":i[i.length]=" />",c&&d&&f[a]&&i.length>0&&(m=i[i.length-1],m.length>0&&"\n"!==m&&i.push("\n"))},end:function(a){var b;i.push("</",a,">"),d&&f[a]&&i.length>0&&(b=i[i.length-1],b.length>0&&"\n"!==b&&i.push("\n"))},text:function(a,b){a.length>0&&(i[i.length]=b?a:g(a))},cdata:function(a){i.push("<![CDATA[",a,"]]>")},comment:function(a){i.push("<!--",a,"-->")},pi:function(a,b){b?i.push("<?",a," ",g(b),"?>"):i.push("<?",a,"?>"),d&&i.push("\n")},doctype:function(a){i.push("<!DOCTYPE",a,">",d?"\n":"")},reset:function(){i.length=0},getContent:function(){return i.join("").replace(/\n$/,"")}}}}),g("tinymce.core.html.Serializer",["tinymce.core.html.Writer","tinymce.core.html.Schema"],function(a,b){return function(c,d){var e=this,f=new a(c);c=c||{},c.validate=!("validate"in c)||c.validate,e.schema=d=d||new b,e.writer=f,e.serialize=function(a){function b(a){var c,h,i,j,k,l,m,n,o,p=e[a.type];if(p)p(a);else{if(c=a.name,h=a.shortEnded,i=a.attributes,g&&i&&i.length>1&&(l=[],l.map={},o=d.getElementRule(a.name))){for(m=0,n=o.attributesOrder.length;m<n;m++)j=o.attributesOrder[m],j in i.map&&(k=i.map[j],l.map[j]=k,l.push({name:j,value:k}));for(m=0,n=i.length;m<n;m++)j=i[m].name,j in l.map||(k=i.map[j],l.map[j]=k,l.push({name:j,value:k}));i=l}if(f.start(a.name,i,h),!h){if(a=a.firstChild)do b(a);while(a=a.next);f.end(c)}}}var e,g;return g=c.validate,e={3:function(a){f.text(a.value,a.raw)},8:function(a){f.comment(a.value)},7:function(a){f.pi(a.name,a.value)},10:function(a){f.doctype(a.value)},4:function(a){f.cdata(a.value)},11:function(a){if(a=a.firstChild)do b(a);while(a=a.next)}},f.reset(),1!=a.type||c.inner?e[11](a):b(a),f.getContent()}}}),g("tinymce.core.dom.Serializer",["tinymce.core.dom.DOMUtils","tinymce.core.html.DomParser","tinymce.core.html.SaxParser","tinymce.core.html.Entities","tinymce.core.html.Serializer","tinymce.core.html.Node","tinymce.core.html.Schema","tinymce.core.Env","tinymce.core.util.Tools","tinymce.core.text.Zwsp"],function(a,b,c,d,e,f,g,h,i,j){function k(a){function b(a){return a&&"br"===a.name}var c,d;c=a.lastChild,b(c)&&(d=c.prev,b(d)&&(c.remove(),d.remove()))}var l=i.each,m=i.trim,n=a.DOM;return function(a,f){function o(a){var b=new RegExp(["<span[^>]+data-mce-bogus[^>]+>[\u200b\ufeff]+<\\/span>","\\s?("+v.join("|")+')="[^"]+"'].join("|"),"gi");return a=j.trim(a.replace(b,""))}function p(a){var b,d,e,g,h,i=a,j=/<(\w+) [^>]*data-mce-bogus="all"[^>]*>/g,k=f.schema;for(i=o(i),h=k.getShortEndedElements();g=j.exec(i);)d=j.lastIndex,e=g[0].length,b=h[g[1]]?d:c.findEndTag(k,i,d),i=i.substring(0,d-e)+i.substring(b),j.lastIndex=d-e;return i}function q(){return p(f.getBody().innerHTML)}function r(a){i.inArray(v,a)===-1&&(u.addAttributeFilter(a,function(a,b){for(var c=a.length;c--;)a[c].attr(b,null)}),v.push(a))}var s,t,u,v=["data-mce-selected"];return f&&(s=f.dom,t=f.schema),s=s||n,t=t||new g(a),a.entity_encoding=a.entity_encoding||"named",a.remove_trailing_brs=!("remove_trailing_brs"in a)||a.remove_trailing_brs,u=new b(a,t),u.addAttributeFilter("data-mce-tabindex",function(a,b){for(var c,d=a.length;d--;)c=a[d],c.attr("tabindex",c.attributes.map["data-mce-tabindex"]),c.attr(b,null)}),u.addAttributeFilter("src,href,style",function(b,c){for(var d,e,f,g=b.length,h="data-mce-"+c,i=a.url_converter,j=a.url_converter_scope;g--;)d=b[g],e=d.attributes.map[h],e!==f?(d.attr(c,e.length>0?e:null),d.attr(h,null)):(e=d.attributes.map[c],"style"===c?e=s.serializeStyle(s.parseStyle(e),d.name):i&&(e=i.call(j,e,c,d.name)),d.attr(c,e.length>0?e:null))}),u.addAttributeFilter("class",function(a){for(var b,c,d=a.length;d--;)b=a[d],c=b.attr("class"),c&&(c=b.attr("class").replace(/(?:^|\s)mce-item-\w+(?!\S)/g,""),b.attr("class",c.length>0?c:null))}),u.addAttributeFilter("data-mce-type",function(a,b,c){for(var d,e=a.length;e--;)d=a[e],"bookmark"!==d.attributes.map["data-mce-type"]||c.cleanup||d.remove()}),u.addNodeFilter("noscript",function(a){for(var b,c=a.length;c--;)b=a[c].firstChild,b&&(b.value=d.decode(b.value))}),u.addNodeFilter("script,style",function(a,b){function c(a){return a.replace(/(<!--\[CDATA\[|\]\]-->)/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi,"").replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")}for(var d,e,f,g=a.length;g--;)d=a[g],e=d.firstChild?d.firstChild.value:"","script"===b?(f=d.attr("type"),f&&d.attr("type","mce-no/type"==f?null:f.replace(/^mce\-/,"")),e.length>0&&(d.firstChild.value="// <![CDATA[\n"+c(e)+"\n// ]]>")):e.length>0&&(d.firstChild.value="<!--\n"+c(e)+"\n-->")}),u.addNodeFilter("#comment",function(a){for(var b,c=a.length;c--;)b=a[c],0===b.value.indexOf("[CDATA[")?(b.name="#cdata",b.type=4,b.value=b.value.replace(/^\[CDATA\[|\]\]$/g,"")):0===b.value.indexOf("mce:protected ")&&(b.name="#text", -b.type=3,b.raw=!0,b.value=unescape(b.value).substr(14))}),u.addNodeFilter("xml:namespace,input",function(a,b){for(var c,d=a.length;d--;)c=a[d],7===c.type?c.remove():1===c.type&&("input"!==b||"type"in c.attributes.map||c.attr("type","text"))}),u.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style,data-mce-selected,data-mce-expando,data-mce-type,data-mce-resize",function(a,b){for(var c=a.length;c--;)a[c].attr(b,null)}),{schema:t,addNodeFilter:u.addNodeFilter,addAttributeFilter:u.addAttributeFilter,serialize:function(b,c){var d,f,g,i,n,o,p=this;return h.ie&&s.select("script,style,select,map").length>0?(n=b.innerHTML,b=b.cloneNode(!1),s.setHTML(b,n)):b=b.cloneNode(!0),d=document.implementation,d.createHTMLDocument&&(f=d.createHTMLDocument(""),l("BODY"==b.nodeName?b.childNodes:[b],function(a){f.body.appendChild(f.importNode(a,!0))}),b="BODY"!=b.nodeName?f.body.firstChild:f.body,g=s.doc,s.doc=f),c=c||{},c.format=c.format||"html",c.selection&&(c.forced_root_block=""),c.no_events||(c.node=b,p.onPreProcess(c)),n=j.trim(m(c.getInner?b.innerHTML:s.getOuterHTML(b))),o=u.parse(n,c),k(o),i=new e(a,t),c.content=i.serialize(o),c.no_events||p.onPostProcess(c),g&&(s.doc=g),c.node=null,c.content},addRules:function(a){t.addValidElements(a)},setRules:function(a){t.setValidElements(a)},onPreProcess:function(a){f&&f.fire("PreProcess",a)},onPostProcess:function(a){f&&f.fire("PostProcess",a)},addTempAttr:r,trimHtml:o,getTrimmedContent:q,trimContent:p}}}),g("tinymce.core.delete.DeleteUtils",["ephox.katamari.api.Option","ephox.sugar.api.dom.Compare","ephox.sugar.api.node.Element","ephox.sugar.api.search.PredicateFind","tinymce.core.dom.ElementType"],function(a,b,c,d,e){var f=function(a){return function(d){return b.eq(a,c.fromDom(d.dom().parentNode))}},g=function(c,g){return b.contains(c,g)?d.closest(g,function(a){return e.isTextBlock(a)||e.isListItem(a)},f(c)):a.none()},h=function(a){var b=a.getBody(),c=b.firstChild&&a.dom.isBlock(b.firstChild)?b.firstChild:b;a.selection.setCursorLocation(c,0)},i=function(a){a.dom.isEmpty(a.getBody())&&(a.setContent(""),h(a))};return{getParentBlock:g,paddEmptyBody:i}}),g("ephox.sugar.api.search.SelectorExists",["ephox.sugar.api.search.SelectorFind"],function(a){var b=function(b){return a.first(b).isSome()},c=function(b,c,d){return a.ancestor(b,c,d).isSome()},d=function(b,c){return a.sibling(b,c).isSome()},e=function(b,c){return a.child(b,c).isSome()},f=function(b,c){return a.descendant(b,c).isSome()},g=function(b,c,d){return a.closest(b,c,d).isSome()};return{any:b,ancestor:c,sibling:d,child:e,descendant:f,closest:g}}),g("tinymce.core.dom.Empty",["ephox.katamari.api.Fun","ephox.sugar.api.dom.Compare","ephox.sugar.api.node.Element","ephox.sugar.api.search.SelectorExists","tinymce.core.caret.CaretCandidate","tinymce.core.dom.NodeType","tinymce.core.dom.TreeWalker"],function(a,b,c,d,e,f,g){var h=function(e,f){var g=c.fromDom(e),h=c.fromDom(f);return d.ancestor(h,"pre,code",a.curry(b.eq,g))},i=function(a,b){return f.isText(b)&&/^[ \t\r\n]*$/.test(b.data)&&h(a,b)===!1},j=function(a){return f.isElement(a)&&"A"===a.nodeName&&a.hasAttribute("name")},k=function(a,b){return e.isCaretCandidate(b)&&i(a,b)===!1||j(b)||l(b)},l=f.hasAttribute("data-mce-bookmark"),m=f.hasAttribute("data-mce-bogus"),n=f.hasAttributeValue("data-mce-bogus","all"),o=function(a){var b,c,d=0;if(k(a,a))return!1;if(c=a.firstChild,!c)return!0;b=new g(c,a);do if(n(c))c=b.next(!0);else if(m(c))c=b.next();else if(f.isBr(c))d++,c=b.next();else{if(k(a,c))return!1;c=b.next()}while(c);return d<=1},p=function(a){return o(a.dom())};return{isEmpty:p}}),g("tinymce.core.delete.BlockBoundary",["ephox.katamari.api.Arr","ephox.katamari.api.Fun","ephox.katamari.api.Option","ephox.katamari.api.Options","ephox.katamari.api.Struct","ephox.sugar.api.dom.Compare","ephox.sugar.api.node.Element","ephox.sugar.api.node.Node","ephox.sugar.api.search.PredicateFind","ephox.sugar.api.search.Traverse","tinymce.core.caret.CaretFinder","tinymce.core.caret.CaretPosition","tinymce.core.delete.DeleteUtils","tinymce.core.dom.Empty","tinymce.core.dom.NodeType"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){var p=e.immutable("block","position"),q=e.immutable("from","to"),r=function(a,b){var c=g.fromDom(a),d=g.fromDom(b.container());return m.getParentBlock(c,d).map(function(a){return p(a,b)})},s=function(a){return f.eq(a.from().block(),a.to().block())===!1},t=function(a){return j.parent(a.from().block()).bind(function(b){return j.parent(a.to().block()).filter(function(a){return f.eq(b,a)})}).isSome()},u=function(a){return o.isContentEditableFalse(a.from().block())===!1&&o.isContentEditableFalse(a.to().block())===!1},v=function(a,b,d){return o.isBr(d.position().getNode())&&n.isEmpty(d.block())===!1?k.positionIn(!1,d.block().dom()).bind(function(e){return e.isEqual(d.position())?k.fromPosition(b,a,e).bind(function(b){return r(a,b)}):c.some(d)}).getOr(d):d},w=function(a,b,c){var e=r(a,l.fromRangeStart(c)),f=e.bind(function(c){return k.fromPosition(b,a,c.position()).bind(function(c){return r(a,c).map(function(c){return v(a,b,c)})})});return d.liftN([e,f],q).filter(function(a){return s(a)&&t(a)&&u(a)})},x=function(a,b,d){return d.collapsed?w(a,b,d):c.none()};return{read:x}}),g("tinymce.core.delete.MergeBlocks",["ephox.katamari.api.Arr","ephox.katamari.api.Option","ephox.sugar.api.dom.Compare","ephox.sugar.api.dom.Insert","ephox.sugar.api.dom.Remove","ephox.sugar.api.node.Element","ephox.sugar.api.search.Traverse","tinymce.core.caret.CaretFinder","tinymce.core.caret.CaretPosition","tinymce.core.dom.ElementType","tinymce.core.dom.Empty","tinymce.core.dom.NodeType","tinymce.core.dom.Parents"],function(a,b,c,d,e,f,g,h,i,j,k,l,m){var n=function(b){var c=g.children(b);return a.findIndex(c,j.isBlock).fold(function(){return c},function(a){return c.slice(0,a)})},o=function(b){var c=n(b);return a.each(c,function(a){e.remove(a)}),c},p=function(a,b){h.positionIn(a,b.dom()).each(function(a){var b=a.getNode();l.isBr(b)&&e.remove(f.fromDom(b))})},q=function(b,c){var d=m.parentsAndSelf(c,b);return a.find(d.reverse(),k.isEmpty).each(e.remove)},r=function(a,d){var e=g.parents(d,function(b){return c.eq(b,a)});return b.from(e[e.length-2])},s=function(a,d){return c.contains(d,a)?g.parent(a).bind(function(e){return c.eq(e,d)?b.some(a):r(d,a)}):b.none()},t=function(b,c,f){if(k.isEmpty(f))return e.remove(f),h.firstPositionIn(c.dom());p(!0,c),p(!1,f);var g=o(c);return s(c,f).fold(function(){q(b,c);var e=h.lastPositionIn(f.dom());return a.each(g,function(a){d.append(f,a)}),e},function(e){var j=h.prevPosition(f.dom(),i.before(e.dom()));return a.each(g,function(a){d.before(e,a)}),q(b,c),j})},u=function(a,b,c,d){return b?t(a,d,c):t(a,c,d)};return{mergeBlocks:u}}),g("tinymce.core.delete.BlockBoundaryDelete",["ephox.sugar.api.node.Element","tinymce.core.delete.BlockBoundary","tinymce.core.delete.MergeBlocks"],function(a,b,c){var d=function(d,e){var f,g=a.fromDom(d.getBody());return f=b.read(g.dom(),e,d.selection.getRng()).bind(function(a){return c.mergeBlocks(g,e,a.from().block(),a.to().block())}),f.each(function(a){d.selection.setRng(a.toRange())}),f.isSome()};return{backspaceDelete:d}}),g("tinymce.core.delete.BlockRangeDelete",["ephox.katamari.api.Options","ephox.sugar.api.dom.Compare","ephox.sugar.api.node.Element","tinymce.core.caret.CaretFinder","tinymce.core.caret.CaretPosition","tinymce.core.delete.DeleteUtils","tinymce.core.delete.MergeBlocks"],function(a,b,c,d,e,f,g){var h=function(d,e){var h=e.getRng();return a.liftN([f.getParentBlock(d,c.fromDom(h.startContainer)),f.getParentBlock(d,c.fromDom(h.endContainer))],function(a,c){return b.eq(a,c)===!1&&(h.deleteContents(),g.mergeBlocks(d,!0,a,c).each(function(a){e.setRng(a.toRange())}),!0)}).getOr(!1)},i=function(a,b){var c=d.prevPosition(a.dom(),e.fromRangeStart(b)).isNone(),f=d.nextPosition(a.dom(),e.fromRangeEnd(b)).isNone();return c&&f},j=function(a){return a.setContent(""),a.selection.setCursorLocation(),!0},k=function(a){var b=c.fromDom(a.getBody()),d=a.selection.getRng();return i(b,d)?j(a):h(b,a.selection)},l=function(a,b){return!a.selection.isCollapsed()&&k(a,a.selection.getRng())};return{backspaceDelete:l}}),g("ephox.katamari.api.Adt",["ephox.katamari.api.Arr","ephox.katamari.api.Obj","ephox.katamari.api.Type","global!Array","global!Error","global!console"],function(a,b,c,d,e,f){var g=function(g){if(!c.isArray(g))throw new e("cases must be an array");if(0===g.length)throw new e("there must be at least one case");var h=[],i={};return a.each(g,function(j,k){var l=b.keys(j);if(1!==l.length)throw new e("one and only one name per case");var m=l[0],n=j[m];if(void 0!==i[m])throw new e("duplicate key detected:"+m);if("cata"===m)throw new e("cannot have a case named cata (sorry)");if(!c.isArray(n))throw new e("case arguments must be an array");h.push(m),i[m]=function(){var c=arguments.length;if(c!==n.length)throw new e("Wrong number of arguments to case "+m+". Expected "+n.length+" ("+n+"), got "+c);for(var i=new d(c),j=0;j<i.length;j++)i[j]=arguments[j];var l=function(c){var d=b.keys(c);if(h.length!==d.length)throw new e("Wrong number of arguments to match. Expected: "+h.join(",")+"\nActual: "+d.join(","));var f=a.forall(h,function(b){return a.contains(d,b)});if(!f)throw new e("Not all branches were specified when using match. Specified: "+d.join(", ")+"\nRequired: "+h.join(", "));return c[m].apply(null,i)};return{fold:function(){if(arguments.length!==g.length)throw new e("Wrong number of arguments to fold. Expected "+g.length+", got "+arguments.length);var a=arguments[k];return a.apply(null,i)},match:l,log:function(a){f.log(a,{constructors:h,constructor:m,params:i})}}}}),i};return{generate:g}}),g("tinymce.core.delete.CefDeleteAction",["ephox.katamari.api.Adt","ephox.katamari.api.Option","ephox.sugar.api.node.Element","tinymce.core.caret.CaretFinder","tinymce.core.caret.CaretPosition","tinymce.core.caret.CaretUtils","tinymce.core.delete.DeleteUtils","tinymce.core.dom.Empty","tinymce.core.dom.NodeType"],function(a,b,c,d,e,f,g,h,i){var j=a.generate([{remove:["element"]},{moveToElement:["element"]},{moveToPosition:["position"]}]),k=function(a,b){var c=b.getNode(a===!1),d=a?"after":"before";return i.isElement(c)&&c.getAttribute("data-mce-caret")===d},l=function(a,d,e,f){var i=f.getNode(d===!1);return g.getParentBlock(c.fromDom(a),c.fromDom(e.getNode())).map(function(a){return h.isEmpty(a)?j.remove(a.dom()):j.moveToElement(i)}).orThunk(function(){return b.some(j.moveToElement(i))})},m=function(a,c,e){return d.fromPosition(c,a,e).bind(function(d){return c&&i.isContentEditableFalse(d.getNode())?l(a,c,e,d):c===!1&&i.isContentEditableFalse(d.getNode(!0))?l(a,c,e,d):c&&f.isAfterContentEditableFalse(e)?b.some(j.moveToPosition(d)):c===!1&&f.isBeforeContentEditableFalse(e)?b.some(j.moveToPosition(d)):b.none()})},n=function(a,c){return a&&i.isContentEditableFalse(c.nextSibling)?b.some(j.moveToElement(c.nextSibling)):a===!1&&i.isContentEditableFalse(c.previousSibling)?b.some(j.moveToElement(c.previousSibling)):b.none()},o=function(a,c,d){return k(c,d)?n(c,d.getNode(c===!1)).fold(function(){return m(a,c,d)},b.some):m(a,c,d)},p=function(a,c,d){var g=f.normalizeRange(c?1:-1,a,d),h=e.fromRangeStart(g);return c===!1&&f.isAfterContentEditableFalse(h)?b.some(j.remove(h.getNode(!0))):c&&f.isBeforeContentEditableFalse(h)?b.some(j.remove(h.getNode())):o(a,c,h)};return{read:p}}),g("tinymce.core.delete.DeleteElement",["ephox.katamari.api.Fun","ephox.katamari.api.Option","ephox.katamari.api.Options","ephox.sugar.api.dom.Insert","ephox.sugar.api.dom.Remove","ephox.sugar.api.node.Element","ephox.sugar.api.node.Node","ephox.sugar.api.search.PredicateFind","ephox.sugar.api.search.Traverse","tinymce.core.caret.CaretCandidate","tinymce.core.caret.CaretFinder","tinymce.core.caret.CaretPosition","tinymce.core.dom.Empty","tinymce.core.dom.NodeType"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){var o=function(a,b){var c=a.container(),d=a.offset();return l.isTextPosition(a)===!1&&c===b.parentNode&&d>l.before(b).offset()},p=function(a,b){return o(b,a)?new l(b.container(),b.offset()-1):b},q=function(a){return n.isText(a)?new l(a,0):l.before(a)},r=function(a){return n.isText(a)?new l(a,a.data.length):l.after(a)},s=function(a){return j.isCaretCandidate(a.previousSibling)?b.some(r(a.previousSibling)):a.previousSibling?k.lastPositionIn(a.previousSibling):b.none()},t=function(a){return j.isCaretCandidate(a.nextSibling)?b.some(q(a.nextSibling)):a.nextSibling?k.firstPositionIn(a.nextSibling):b.none()},u=function(a,c){var d=l.before(c.previousSibling?c.previousSibling:c.parentNode);return k.prevPosition(a,d).fold(function(){return k.nextPosition(a,l.after(c))},b.some)},v=function(a,c){return k.nextPosition(a,l.after(c)).fold(function(){return k.prevPosition(a,l.before(c))},b.some)},w=function(a,b){return s(b).orThunk(function(){return t(b)}).orThunk(function(){return u(a,b)})},x=function(a,b){return t(b).orThunk(function(){return s(b)}).orThunk(function(){return v(a,b)})},y=function(a,b,c){return a?x(b,c):w(b,c)},z=function(b,c,d){return y(b,c,d).map(a.curry(p,d))},A=function(a,b,c){c.fold(function(){a.focus()},function(c){a.selection.setRng(c.toRange(),b)})},B=function(a){return function(b){return b.dom()===a}},C=function(a,b){return b&&a.schema.getBlockElements().hasOwnProperty(g.name(b))},D=function(a){if(m.isEmpty(a)){var c=f.fromHtml('<br data-mce-bogus="1">');return e.empty(a),d.append(a,c),b.some(l.before(c.dom()))}return b.none()},E=function(a,b){return c.liftN([i.prevSibling(a),i.nextSibling(a),b],function(b,c,d){var f,g=b.dom(),h=c.dom();return n.isText(g)&&n.isText(h)?(f=g.data.length,g.appendData(h.data),e.remove(c),e.remove(a),d.container()===h?new l(g,f):d):(e.remove(a),d)}).orThunk(function(){return e.remove(a),b})},F=function(c,d,e){var f=z(d,c.getBody(),e.dom()),g=h.ancestor(e,a.curry(C,c),B(c.getBody())),i=E(e,f);g.bind(D).fold(function(){A(c,d,i)},function(a){A(c,d,b.some(a))})};return{deleteElement:F}}),g("tinymce.core.delete.CefDelete",["ephox.katamari.api.Arr","ephox.sugar.api.dom.Remove","ephox.sugar.api.node.Element","ephox.sugar.api.search.SelectorFilter","tinymce.core.caret.CaretPosition","tinymce.core.delete.CefDeleteAction","tinymce.core.delete.DeleteElement","tinymce.core.delete.DeleteUtils","tinymce.core.dom.NodeType"],function(a,b,c,d,e,f,g,h,i){var j=function(a,b){return function(d){return g.deleteElement(a,b,c.fromDom(d)),!0}},k=function(a,b){return function(c){var d=b?e.before(c):e.after(c);return a.selection.setRng(d.toRange()),!0}},l=function(a){return function(b){return a.selection.setRng(b.toRange()),!0}},m=function(a,b){var c=f.read(a.getBody(),b,a.selection.getRng()).map(function(c){return c.fold(j(a,b),k(a,b),l(a))});return c.getOr(!1)},n=function(c){a.each(d.descendants(c,".mce-offscreen-selection"),b.remove)},o=function(a,b){var d=a.selection.getNode();return!!i.isContentEditableFalse(d)&&(n(c.fromDom(a.getBody())),g.deleteElement(a,b,c.fromDom(a.selection.getNode())),h.paddEmptyBody(a),!0)},p=function(a,b){for(;b&&b!==a;){if(i.isContentEditableTrue(b)||i.isContentEditableFalse(b))return b;b=b.parentNode}return null},q=function(a){var b,c=p(a.getBody(),a.selection.getNode());return i.isContentEditableTrue(c)&&a.dom.isBlock(c)&&a.dom.isEmpty(c)&&(b=a.dom.create("br",{"data-mce-bogus":"1"}),a.dom.setHTML(c,""),c.appendChild(b),a.selection.setRng(e.before(b).toRange())),!0},r=function(a,b){return a.selection.isCollapsed()?m(a,b):o(a,b)};return{backspaceDelete:r,paddEmptyElement:q}}),g("tinymce.core.caret.CaretContainerInline",["ephox.katamari.api.Fun","tinymce.core.dom.NodeType","tinymce.core.text.Zwsp"],function(a,b,c){var d=b.isText,e=function(a){return d(a)&&a.data[0]===c.ZWSP},f=function(a){return d(a)&&a.data[a.data.length-1]===c.ZWSP},g=function(a){return a.ownerDocument.createTextNode(c.ZWSP)},h=function(a){if(d(a.previousSibling))return f(a.previousSibling)?a.previousSibling:(a.previousSibling.appendData(c.ZWSP),a.previousSibling);if(d(a))return e(a)?a:(a.insertData(0,c.ZWSP),a);var b=g(a);return a.parentNode.insertBefore(b,a),b},i=function(a){if(d(a.nextSibling))return e(a.nextSibling)?a.nextSibling:(a.nextSibling.insertData(0,c.ZWSP),a.nextSibling);if(d(a))return f(a)?a:(a.appendData(c.ZWSP),a);var b=g(a);return a.nextSibling?a.parentNode.insertBefore(b,a.nextSibling):a.parentNode.appendChild(b),b},j=function(a,b){return a?h(b):i(b)};return{insertInline:j,insertInlineBefore:a.curry(j,!0),insertInlineAfter:a.curry(j,!1)}}),g("tinymce.core.caret.CaretContainerRemove",["ephox.katamari.api.Arr","tinymce.core.caret.CaretContainer","tinymce.core.caret.CaretPosition","tinymce.core.dom.NodeType","tinymce.core.text.Zwsp","tinymce.core.util.Tools"],function(a,b,c,d,e,f){var g=d.isElement,h=d.isText,i=function(a){var b=a.parentNode;b&&b.removeChild(a)},j=function(a){try{return a.nodeValue}catch(b){return""}},k=function(a,b){0===b.length?i(a):a.nodeValue=b},l=function(a){var b=e.trim(a);return{count:a.length-b.length,text:b}},m=function(a,b){return s(a),b},n=function(a,b){var d=l(a.data.substr(0,b.offset())),e=l(a.data.substr(b.offset())),f=d.text+e.text;return f.length>0?(k(a,f),new c(a,b.offset()-d.count)):b},o=function(b,d){var e=d.container(),f=a.indexOf(e.childNodes,b).map(function(a){return a<d.offset()?new c(e,d.offset()-1):d}).getOr(d);return s(b),f},p=function(a,b){return b.container()===a?n(a,b):m(a,b)},q=function(a,b){return b.container()===a.parentNode?o(a,b):m(a,b)},r=function(a,b){return c.isTextPosition(b)?p(a,b):q(a,b)},s=function(a){if(g(a)&&b.isCaretContainer(a)&&(b.hasContent(a)?a.removeAttribute("data-mce-caret"):i(a)),h(a)){var c=e.trim(j(a));k(a,c)}};return{removeAndReposition:r,remove:s}}),g("tinymce.core.EditorSettings",["ephox.katamari.api.Arr","ephox.katamari.api.Fun","ephox.katamari.api.Obj","ephox.katamari.api.Option","ephox.katamari.api.Strings","ephox.katamari.api.Struct","ephox.katamari.api.Type","ephox.sand.api.PlatformDetection","tinymce.core.util.Tools"],function(a,b,c,d,e,f,g,h,i){var j=f.immutable("sections","settings"),k=h.detect(),l=k.deviceType.isTouch(),m=["lists","autolink","autosave"],n=function(a){return g.isArray(a)?a.join(" "):a},o=function(c){var d=a.map(n(c).split(" "),e.trim);return a.filter(d,b.curry(a.contains,m)).join(" ")},p=function(b,d){var e=c.bifilter(d,function(c,d){return a.contains(b,d)});return j(e.t,e.f)},q=function(a,b){var c=a.sections();return c.hasOwnProperty(b)?c[b]:{}},r=function(a,b){return a.sections().hasOwnProperty(b)},s=function(a,b,c){return{id:a,theme:"modern",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:b,add_form_submit_trigger:!0,submit_patch:!0,add_unload_trigger:!0,convert_urls:!0,relative_urls:!0,remove_script_host:!0,object_resizing:!0,doctype:"<!DOCTYPE html>",visual:!0,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",forced_root_block:"p",hidden_input:!0,padd_empty_editor:!0,render_ui:!0,indentation:"30px",inline_styles:!0,convert_fonts_to_spans:!0,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",entity_encoding:"named",url_converter:c.convertURL,url_converter_scope:c,ie7_compat:!0}},t=function(a,b){var c=b.external_plugins?b.external_plugins:{};return a&&a.external_plugins?i.extend({},a.external_plugins,c):c},u=function(a,b,c){var d=p(["mobile"],c),e=d.settings().plugins,f=i.extend(a,b,d.settings(),l?q(d,"mobile"):{},{validate:!0,content_editable:d.settings().inline,external_plugins:t(b,d.settings())},l&&e&&r(d,"mobile")?{plugins:o(e)}:{});return f},v=function(a,b,c,d,e){var f=s(b,c,a);return u(f,d,e)},w=function(a,b){return d.from(a.settings[b])},x=function(a,b,c){return d.from(b.settings[c]).filter(a)};return{getEditorSettings:v,get:w,getString:b.curry(x,g.isString),filterMobilePlugins:o}}),g("tinymce.core.text.Bidi",[],function(){var a=/[\u0591-\u07FF\uFB1D-\uFDFF\uFE70-\uFEFC]/,b=function(b){return a.test(b)};return{hasStrongRtl:b}}),g("tinymce.core.keyboard.InlineUtils",["ephox.katamari.api.Arr","ephox.katamari.api.Fun","ephox.katamari.api.Option","ephox.katamari.api.Options","ephox.katamari.api.Type","ephox.sugar.api.node.Element","ephox.sugar.api.search.Selectors","tinymce.core.caret.CaretContainer","tinymce.core.caret.CaretFinder","tinymce.core.caret.CaretPosition","tinymce.core.caret.CaretUtils","tinymce.core.caret.CaretWalker","tinymce.core.dom.DOMUtils","tinymce.core.dom.NodeType","tinymce.core.EditorSettings","tinymce.core.text.Bidi"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p){var q=function(a,b){var c=o.getString(a,"inline_boundaries_selector").getOr("a[href],code");return g.is(f.fromDom(b),c)},r=function(a){return"rtl"===m.DOM.getStyle(a,"direction",!0)||p.hasStrongRtl(a.textContent)},s=function(b,c,d){return a.filter(m.DOM.getParents(d.container(),"*",c),b)},t=function(a,b,d){var e=s(a,b,d);return c.from(e[e.length-1])},u=function(a,b,c){var d=k.getParentBlock(b,a),e=k.getParentBlock(c,a);return d&&d===e},v=function(a){return h.isBeforeInline(a)||h.isAfterInline(a)},w=function(a,b){var c=b.container(),d=b.offset();return a?h.isCaretContainerInline(c)?n.isText(c.nextSibling)?new j(c.nextSibling,0):j.after(c):h.isBeforeInline(b)?new j(c,d+1):b:h.isCaretContainerInline(c)?n.isText(c.previousSibling)?new j(c.previousSibling,c.previousSibling.data.length):j.before(c):h.isAfterInline(b)?new j(c,d-1):b},x=b.curry(w,!0),y=b.curry(w,!1);return{isInlineTarget:q,findRootInline:t,isRtl:r,isAtZwsp:v,normalizePosition:w,normalizeForwards:x,normalizeBackwards:y,hasSameParentBlock:u}}),g("tinymce.core.keyboard.BoundaryCaret",["ephox.katamari.api.Option","tinymce.core.caret.CaretContainer","tinymce.core.caret.CaretContainerInline","tinymce.core.caret.CaretContainerRemove","tinymce.core.caret.CaretFinder","tinymce.core.caret.CaretPosition","tinymce.core.dom.NodeType","tinymce.core.keyboard.InlineUtils"],function(a,b,c,d,e,f,g,h){var i=function(a,b){return g.isText(a.container())?c.insertInline(b,a.container()):c.insertInline(b,a.getNode())},j=function(a,c){var d=c.get();return d&&a.container()===d&&b.isCaretContainerInline(d)},k=function(b,g){return g.fold(function(e){d.remove(b.get());var g=c.insertInlineBefore(e);return b.set(g),a.some(new f(g,g.length-1))},function(a){return e.firstPositionIn(a).map(function(a){if(j(a,b))return new f(b.get(),1);d.remove(b.get());var c=i(a,!0);return b.set(c),new f(c,1)})},function(a){return e.lastPositionIn(a).map(function(a){if(j(a,b))return new f(b.get(),b.get().length-1);d.remove(b.get());var c=i(a,!1);return b.set(c),new f(c,c.length-1)})},function(e){d.remove(b.get());var g=c.insertInlineAfter(e);return b.set(g),a.some(new f(g,1))})};return{renderCaret:k}}),g("tinymce.core.util.LazyEvaluator",["ephox.katamari.api.Option"],function(a){var b=function(b,c){for(var d=0;d<b.length;d++){var e=b[d].apply(null,c);if(e.isSome())return e}return a.none()};return{evaluateUntil:b}}),g("tinymce.core.keyboard.BoundaryLocation",["ephox.katamari.api.Adt","ephox.katamari.api.Fun","ephox.katamari.api.Option","ephox.katamari.api.Options","tinymce.core.caret.CaretContainer","tinymce.core.caret.CaretFinder","tinymce.core.caret.CaretPosition","tinymce.core.caret.CaretUtils","tinymce.core.dom.NodeType","tinymce.core.keyboard.InlineUtils","tinymce.core.util.LazyEvaluator"],function(a,b,c,d,e,f,g,h,i,j,k){var l=a.generate([{before:["element"]},{start:["element"]},{end:["element"]},{after:["element"]}]),m=function(a,b){var c=h.getParentBlock(b,a);return c?c:a},n=function(a,d,e){var g=j.normalizeForwards(e),h=m(d,g.container());return j.findRootInline(a,h,g).fold(function(){return f.nextPosition(h,g).bind(b.curry(j.findRootInline,a,h)).map(function(a){return l.before(a)})},c.none)},o=function(a,b,d){var e=j.normalizeBackwards(d);return j.findRootInline(a,b,e).bind(function(a){var b=f.prevPosition(a,e);return b.isNone()?c.some(l.start(a)):c.none()})},p=function(a,b,d){var e=j.normalizeForwards(d);return j.findRootInline(a,b,e).bind(function(a){var b=f.nextPosition(a,e);return b.isNone()?c.some(l.end(a)):c.none()})},q=function(a,d,e){var g=j.normalizeBackwards(e),h=m(d,g.container());return j.findRootInline(a,h,g).fold(function(){return f.prevPosition(h,g).bind(b.curry(j.findRootInline,a,h)).map(function(a){return l.after(a)})},c.none)},r=function(a){return j.isRtl(t(a))===!1},s=function(a,b,c){var d=k.evaluateUntil([n,o,p,q],[a,b,c]);return d.filter(r)},t=function(a){return a.fold(b.identity,b.identity,b.identity,b.identity)},u=function(a){return a.fold(b.constant("before"),b.constant("start"),b.constant("end"),b.constant("after"))},v=function(a){return a.fold(l.before,l.before,l.after,l.after)},w=function(a){return a.fold(l.start,l.start,l.end,l.end)},x=function(a,b){return u(a)===u(b)&&t(a)===t(b)},y=function(a,b,c,e,f,g){return d.liftN([j.findRootInline(b,c,e),j.findRootInline(b,c,f)],function(b,d){return b!==d&&j.hasSameParentBlock(c,b,d)?l.after(a?b:d):g}).getOr(g)},z=function(a,c){return a.fold(b.constant(!0),function(a){return!x(a,c)})},A=function(a,c,d,e,g){var h=j.normalizePosition(a,g),i=f.fromPosition(a,d,h).map(b.curry(j.normalizePosition,a)),k=i.fold(function(){return e.map(v)},function(f){return s(c,d,f).map(b.curry(y,a,c,d,h,f)).filter(b.curry(z,e))});return k.filter(r)},B=function(a,d){return a?d.fold(b.compose(c.some,l.start),c.none,b.compose(c.some,l.after),c.none):d.fold(c.none,b.compose(c.some,l.before),c.none,b.compose(c.some,l.end))},C=function(a,c,d,e){var f=j.normalizePosition(a,e),g=s(c,d,f);return s(c,d,f).bind(b.curry(B,a)).orThunk(function(){return A(a,c,d,g,e)})};return{readLocation:s,findLocation:C,prevLocation:b.curry(C,!1),nextLocation:b.curry(C,!0),getElement:t,outside:v,inside:w}}),g("tinymce.core.keyboard.BoundarySelection",["ephox.katamari.api.Arr","ephox.katamari.api.Cell","ephox.katamari.api.Fun","tinymce.core.caret.CaretContainerRemove","tinymce.core.caret.CaretPosition","tinymce.core.keyboard.BoundaryCaret","tinymce.core.keyboard.BoundaryLocation","tinymce.core.keyboard.InlineUtils"],function(a,b,c,d,e,f,g,h){var i=function(a,b){var c=a.dom.createRng();c.setStart(b.container(),b.offset()),c.setEnd(b.container(),b.offset()),a.selection.setRng(c)},j=function(a){return a.settings.inline_boundaries!==!1},k=function(a,b){a?b.setAttribute("data-mce-selected","1"):b.removeAttribute("data-mce-selected","1")},l=function(a,b,c){return f.renderCaret(b,c).map(function(b){return i(a,b),c})},m=function(a,b,d){var f=a.getBody(),i=e.fromRangeStart(a.selection.getRng()),j=c.curry(h.isInlineTarget,a),k=g.findLocation(d,j,f,i);return k.bind(function(c){return l(a,b,c)})},n=function(b,d,e){var f=a.filter(d.select("*[data-mce-selected]"),b),g=a.filter(e,b);a.each(a.difference(f,g),c.curry(k,!1)),a.each(a.difference(g,f),c.curry(k,!0))},o=function(a,b){if(a.selection.isCollapsed()&&a.composing!==!0&&b.get()){var c=e.fromRangeStart(a.selection.getRng());e.isTextPosition(c)&&h.isAtZwsp(c)===!1&&(i(a,d.removeAndReposition(b.get(),c)),b.set(null))}},p=function(b,c,d,f){if(c.selection.isCollapsed()){var h=a.filter(f,b);a.each(h,function(a){var f=e.fromRangeStart(c.selection.getRng());g.readLocation(b,c.getBody(),f).bind(function(a){return l(c,d,a)})})}},q=function(a,b,c){return function(){return!!j(a)&&m(a,b,c).isSome()}},r=function(a){var d=new b(null),e=c.curry(h.isInlineTarget,a);return a.on("NodeChange",function(b){j(a)&&(n(e,a.dom,b.parents),o(a,d),p(e,a,d,b.parents))}),d};return{move:q,setupSelectedState:r,setCaretPosition:i}}),g("tinymce.core.delete.InlineBoundaryDelete",["ephox.katamari.api.Fun","ephox.katamari.api.Option","ephox.katamari.api.Options","ephox.sugar.api.node.Element","tinymce.core.caret.CaretContainer","tinymce.core.caret.CaretFinder","tinymce.core.caret.CaretPosition","tinymce.core.caret.CaretUtils","tinymce.core.delete.DeleteElement","tinymce.core.keyboard.BoundaryCaret","tinymce.core.keyboard.BoundaryLocation","tinymce.core.keyboard.BoundarySelection","tinymce.core.keyboard.InlineUtils"],function(a,b,c,d,e,f,g,h,i,j,k,l,m){var n=function(a){return a.settings.inline_boundaries!==!1},o=function(a,b){var c=document.createRange();return c.setStart(a.container(),a.offset()),c.setEnd(b.container(),b.offset()),c},p=function(a){return c.liftN([f.firstPositionIn(a),f.lastPositionIn(a)],function(b,c){var d=m.normalizePosition(!0,b),e=m.normalizePosition(!1,c);return f.nextPosition(a,d).map(function(a){return a.isEqual(e)}).getOr(!0)}).getOr(!0)},q=function(a,b){return function(c){return j.renderCaret(b,c).map(function(b){return l.setCaretPosition(a,b),!0}).getOr(!1)}},r=function(b,c,d,e){var f=b.getBody(),h=a.curry(m.isInlineTarget,b);b.undoManager.ignore(function(){b.selection.setRng(o(d,e)),b.execCommand("Delete"),k.readLocation(h,f,g.fromRangeStart(b.selection.getRng())).map(k.inside).map(q(b,c))}),b.nodeChanged()},s=function(a,b){var c=h.getParentBlock(b,a);return c?c:a},t=function(c,e,g,h){var j=s(c.getBody(),h.container()),l=a.curry(m.isInlineTarget,c),n=k.readLocation(l,j,h);return n.bind(function(c){return g?c.fold(a.constant(b.some(k.inside(c))),b.none,a.constant(b.some(k.outside(c))),b.none):c.fold(b.none,a.constant(b.some(k.outside(c))),b.none,a.constant(b.some(k.inside(c))))}).map(q(c,e)).getOrThunk(function(){var a=f.navigate(g,j,h),b=a.bind(function(a){return k.readLocation(l,j,a)});return n.isSome()&&b.isSome()?m.findRootInline(l,j,h).map(function(a){return!!p(a)&&(i.deleteElement(c,g,d.fromDom(a)),!0)}).getOr(!1):b.bind(function(b){return a.map(function(a){return g?r(c,e,h,a):r(c,e,a,h),!0})}).getOr(!1)})},u=function(a,b,c){if(a.selection.isCollapsed()&&n(a)){var d=g.fromRangeStart(a.selection.getRng());return t(a,b,c,d)}return!1};return{backspaceDelete:u}}),g("tinymce.core.delete.TableDeleteAction",["ephox.katamari.api.Adt","ephox.katamari.api.Arr","ephox.katamari.api.Fun","ephox.katamari.api.Option","ephox.katamari.api.Options","ephox.katamari.api.Struct","ephox.sugar.api.dom.Compare","ephox.sugar.api.node.Element","ephox.sugar.api.search.SelectorFilter","ephox.sugar.api.search.SelectorFind"],function(a,b,c,d,e,f,g,h,i,j){var k=f.immutable("start","end"),l=f.immutable("rng","table","cells"),m=a.generate([{removeTable:["element"]},{emptyCells:["cells"]}]),n=function(a,b){return j.closest(h.fromDom(a),"td,th",b)},o=function(a,b){return j.ancestor(a,"table",b)},p=function(a){return g.eq(a.start(),a.end())===!1},q=function(a,b){return o(a.start(),b).bind(function(c){return o(a.end(),b).bind(function(a){return g.eq(c,a)?d.some(c):d.none()})})},r=function(a,b){return e.liftN([n(a.startContainer,b),n(a.endContainer,b)],k).filter(p)},s=function(a,b){return q(a,b).bind(function(b){var c=i.descendants(b,"td,th");return l(a,b,c)})},t=function(a,b){var d=c.curry(g.eq,a);return r(b,d).map(function(a){return s(a,d)})},u=function(a,c){return b.findIndex(a,function(a){return g.eq(a,c)})},v=function(a){return e.liftN([u(a.cells(),a.rng().start()),u(a.cells(),a.rng().end())],function(b,c){return a.cells().slice(b,c+1)})},w=function(a){return v(a).bind(function(b){var c=a.cells();return b.length===c.length?m.removeTable(a.table()):m.emptyCells(b)})},x=function(a){return m.emptyCells(a)},y=function(a,b){return t(a,b).map(w)};return{getActionFromRange:y,getActionFromCells:x}}),g("tinymce.core.delete.TableDelete",["ephox.katamari.api.Arr","ephox.katamari.api.Fun","ephox.sugar.api.node.Element","tinymce.core.delete.DeleteElement","tinymce.core.delete.TableDeleteAction","tinymce.core.dom.PaddingBr","tinymce.core.selection.TableCellSelection"],function(a,b,c,d,e,f,g){var h=function(b,c){return a.each(c,f.fillWithPaddingBr),b.selection.setCursorLocation(c[0].dom(),0),!0},i=function(a,b){return d.deleteElement(a,!1,b),!0},j=function(a,c,d){return e.getActionFromRange(c,d).map(function(c){return c.fold(b.curry(i,a),b.curry(h,a))}).getOr(!1)},k=function(a){ -var b=c.fromDom(a.getBody()),d=a.selection.getRng(),e=g.getCellsFromEditor(a);return 0!==e.length?h(a,e):j(a,b,d)},l=function(a){return!a.selection.isCollapsed()&&k(a)};return{backspaceDelete:l}}),g("tinymce.core.delete.DeleteCommands",["tinymce.core.delete.BlockBoundaryDelete","tinymce.core.delete.BlockRangeDelete","tinymce.core.delete.CefDelete","tinymce.core.delete.DeleteUtils","tinymce.core.delete.InlineBoundaryDelete","tinymce.core.delete.TableDelete"],function(a,b,c,d,e,f){var g=function(a,b){a.getDoc().execCommand(b,!1,null)},h=function(h){c.backspaceDelete(h,!1)||e.backspaceDelete(h,!1)||a.backspaceDelete(h,!1)||f.backspaceDelete(h)||b.backspaceDelete(h,!1)||(g(h,"Delete"),d.paddEmptyBody(h))},i=function(d){c.backspaceDelete(d,!0)||e.backspaceDelete(d,!0)||a.backspaceDelete(d,!0)||f.backspaceDelete(d)||b.backspaceDelete(d,!0)||g(d,"ForwardDelete")};return{deleteCommand:h,forwardDeleteCommand:i}}),g("tinymce.core.InsertList",["tinymce.core.util.Tools","tinymce.core.caret.CaretWalker","tinymce.core.caret.CaretPosition"],function(a,b,c){var d=function(a){return a.firstChild&&a.firstChild===a.lastChild},e=function(a){return"br"===a.name||"\xa0"===a.value},f=function(a,b){var c=a.getBlockElements();return c[b.name]&&d(b)&&e(b.firstChild)},g=function(a,b){var c=a.getNonEmptyElements();return b&&(b.isEmpty(c)||f(a,b))},h=function(a,b){var c=b.firstChild,d=b.lastChild;return c&&"meta"===c.name&&(c=c.next),d&&"mce_marker"===d.attr("id")&&(d=d.prev),g(a,d)&&(d=d.prev),!(!c||c!==d)&&("ul"===c.name||"ol"===c.name)},i=function(a){var b=a.firstChild,c=a.lastChild;return b&&"META"===b.nodeName&&b.parentNode.removeChild(b),c&&"mce_marker"===c.id&&c.parentNode.removeChild(c),a},j=function(a,b,c){var d=b.serialize(c),e=a.createFragment(d);return i(e)},k=function(b){return a.grep(b.childNodes,function(a){return"LI"===a.nodeName})},l=function(a){return!a.firstChild},m=function(a){return a.length>0&&l(a[a.length-1])?a.slice(0,-1):a},n=function(a,b){var c=a.getParent(b,a.isBlock);return c&&"LI"===c.nodeName?c:null},o=function(a,b){return!!n(a,b)},p=function(a,b){var c=b.cloneRange(),d=b.cloneRange();return c.setStartBefore(a),d.setEndAfter(a),[c.cloneContents(),d.cloneContents()]},q=function(a,d){var e=c.before(a),f=new b(d),g=f.next(e);return g?g.toRange():null},r=function(a,d){var e=c.after(a),f=new b(d),g=f.prev(e);return g?g.toRange():null},s=function(b,c,d,e){var f=p(b,e),g=b.parentNode;return g.insertBefore(f[0],b),a.each(c,function(a){g.insertBefore(a,b)}),g.insertBefore(f[1],b),g.removeChild(b),r(c[c.length-1],d)},t=function(b,c,d){var e=b.parentNode;return a.each(c,function(a){e.insertBefore(a,b)}),q(b,d)},u=function(a,b,c,d){return d.insertAfter(b.reverse(),a),r(b[0],c)},v=function(a,d,e,f){var g=j(d,a,f),h=n(d,e.startContainer),i=m(k(g.firstChild)),l=1,o=2,p=d.getRoot(),q=function(a){var f=c.fromRangeStart(e),g=new b(d.getRoot()),i=a===l?g.prev(f):g.next(f);return!i||n(d,i.getNode())!==h};return q(l)?t(h,i,p):q(o)?u(h,i,p,d):s(h,i,p,e)};return{isListFragment:h,insertAtCaret:v,isParentBlockLi:o,trimListItems:m,listItems:k}}),g("tinymce.core.InsertContent",["ephox.katamari.api.Option","ephox.sugar.api.node.Element","tinymce.core.caret.CaretPosition","tinymce.core.caret.CaretWalker","tinymce.core.dom.ElementUtils","tinymce.core.dom.NodeType","tinymce.core.dom.PaddingBr","tinymce.core.dom.RangeNormalizer","tinymce.core.Env","tinymce.core.html.Serializer","tinymce.core.InsertList","tinymce.core.util.Tools"],function(a,b,c,d,e,f,g,h,i,j,k,l){var m=f.matchNodeNames("td th"),n=function(a,b,c){if("all"===c.getAttribute("data-mce-bogus"))c.parentNode.insertBefore(a.dom.createFragment(b),c);else{var d=c.firstChild,e=c.lastChild;!d||d===e&&"BR"===d.nodeName?a.dom.setHTML(c,b):a.selection.setContent(b)}},o=function(c,d){a.from(c.getParent(d,"td,th")).map(b.fromDom).each(g.trimBlockTrailingBr)},p=function(a,b,f){function g(a){function b(a){return d[a]&&3==d[a].nodeType}var c,d,e;return c=J.getRng(!0),d=c.startContainer,e=c.startOffset,3==d.nodeType&&(e>0?a=a.replace(/^ /," "):b("previousSibling")||(a=a.replace(/^ /," ")),e<d.length?a=a.replace(/ (<br>|)$/," "):b("nextSibling")||(a=a.replace(/( | )(<br>|)$/," "))),a}function p(){var a,c,d;a=J.getRng(!0),c=a.startContainer,d=a.startOffset,3==c.nodeType&&a.collapsed&&("\xa0"===c.data[d]?(c.deleteData(d,1),/[\u00a0| ]$/.test(b)||(b+=" ")):"\xa0"===c.data[d-1]&&(c.deleteData(d-1,1),/[\u00a0| ]$/.test(b)||(b=" "+b)))}function q(){if(H){var b=a.getBody(),c=new e(K);l.each(K.select("*[data-mce-fragment]"),function(a){for(var d=a.parentNode;d&&d!=b;d=d.parentNode)I[a.nodeName.toLowerCase()]&&c.compare(d,a)&&K.remove(a,!0)})}}function r(a){for(var b=a;b=b.walk();)1===b.type&&b.attr("data-mce-fragment","1")}function s(a){l.each(a.getElementsByTagName("*"),function(a){a.removeAttribute("data-mce-fragment")})}function t(a){return!!a.getAttribute("data-mce-fragment")}function u(b){return b&&!a.schema.getShortEndedElements()[b.nodeName]}function v(b){function e(b){for(var c=a.getBody();b&&b!==c;b=b.parentNode)if("false"===a.dom.getContentEditable(b))return b;return null}function f(b){var e=c.fromRangeStart(b),f=new d(a.getBody());if(e=f.next(e))return e.toRange()}var g,h,j;if(b){if(J.scrollIntoView(b),g=e(b))return K.remove(b),void J.select(g);D=K.createRng(),E=b.previousSibling,E&&3==E.nodeType?(D.setStart(E,E.nodeValue.length),i.ie||(F=b.nextSibling,F&&3==F.nodeType&&(E.appendData(F.data),F.parentNode.removeChild(F)))):(D.setStartBefore(b),D.setEndBefore(b)),h=K.getParent(b,K.isBlock),K.remove(b),h&&K.isEmpty(h)&&(a.$(h).empty(),D.setStart(h,0),D.setEnd(h,0),m(h)||t(h)||!(j=f(D))?K.add(h,K.create("br",{"data-mce-bogus":"1"})):(D=j,K.remove(h))),J.setRng(D)}}var w,x,y,z,A,B,C,D,E,F,G,H,I=a.schema.getTextInlineElements(),J=a.selection,K=a.dom;/^ | $/.test(b)&&(b=g(b)),w=a.parser,H=f.merge,x=new j({validate:a.settings.validate},a.schema),G='<span id="mce_marker" data-mce-type="bookmark">​</span>',B={content:b,format:"html",selection:!0},a.fire("BeforeSetContent",B),b=B.content,b.indexOf("{$caret}")==-1&&(b+="{$caret}"),b=b.replace(/\{\$caret\}/,G),D=J.getRng();var L=D.startContainer||(D.parentElement?D.parentElement():null),M=a.getBody();L===M&&J.isCollapsed()&&K.isBlock(M.firstChild)&&u(M.firstChild)&&K.isEmpty(M.firstChild)&&(D=K.createRng(),D.setStart(M.firstChild,0),D.setEnd(M.firstChild,0),J.setRng(D)),J.isCollapsed()||(a.selection.setRng(h.normalize(a.selection.getRng())),a.getDoc().execCommand("Delete",!1,null),p()),y=J.getNode();var N={context:y.nodeName.toLowerCase(),data:f.data};if(A=w.parse(b,N),f.paste===!0&&k.isListFragment(a.schema,A)&&k.isParentBlockLi(K,y))return D=k.insertAtCaret(x,K,a.selection.getRng(!0),A),a.selection.setRng(D),void a.fire("SetContent",B);if(r(A),E=A.lastChild,"mce_marker"==E.attr("id"))for(C=E,E=E.prev;E;E=E.walk(!0))if(3==E.type||!K.isBlock(E.name)){a.schema.isValidChild(E.parent.name,"span")&&E.parent.insert(C,E,"br"===E.name);break}if(a._selectionOverrides.showBlockCaretContainer(y),N.invalid){for(J.setContent(G),y=J.getNode(),z=a.getBody(),9==y.nodeType?y=E=z:E=y;E!==z;)y=E,E=E.parentNode;b=y==z?z.innerHTML:K.getOuterHTML(y),b=x.serialize(w.parse(b.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i,function(){return x.serialize(A)}))),y==z?K.setHTML(z,b):K.setOuterHTML(y,b)}else b=x.serialize(A),n(a,b,y);q(),v(K.get("mce_marker")),s(a.getBody()),o(a.dom,a.selection.getStart()),a.fire("SetContent",B),a.addVisual()},q=function(a){var b;return"string"!=typeof a?(b=l.extend({paste:a.paste,data:{paste:a.paste}},a),{content:a.content,details:b}):{content:a,details:{}}},r=function(a,b){var c=q(b);p(a,c.content,c.details)};return{insertAtCaret:r}}),g("tinymce.core.EditorCommands",["tinymce.core.delete.DeleteCommands","tinymce.core.dom.NodeType","tinymce.core.dom.RangeUtils","tinymce.core.dom.TreeWalker","tinymce.core.Env","tinymce.core.InsertContent","tinymce.core.util.Tools"],function(a,b,c,d,e,f,g){var h=g.each,i=g.extend,j=g.map,k=g.inArray,l=g.explode,m=e.ie&&e.ie<11,n=!0,o=!1;return function(g){function p(a,b,c,d){var e,f,i=0;if(!g.removed){if(/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(a)||d&&d.skip_focus||g.focus(),d=g.fire("BeforeExecCommand",{command:a,ui:b,value:c}),d.isDefaultPrevented())return!1;if(f=a.toLowerCase(),e=H.exec[f])return e(f,b,c),g.fire("ExecCommand",{command:a,ui:b,value:c}),!0;if(h(g.plugins,function(d){if(d.execCommand&&d.execCommand(a,b,c))return g.fire("ExecCommand",{command:a,ui:b,value:c}),i=!0,!1}),i)return i;if(g.theme&&g.theme.execCommand&&g.theme.execCommand(a,b,c))return g.fire("ExecCommand",{command:a,ui:b,value:c}),!0;try{i=g.getDoc().execCommand(a,b,c)}catch(j){}return!!i&&(g.fire("ExecCommand",{command:a,ui:b,value:c}),!0)}}function q(a){var b;if(!g.quirks.isHidden()&&!g.removed){if(a=a.toLowerCase(),b=H.state[a])return b(a);try{return g.getDoc().queryCommandState(a)}catch(c){}return!1}}function r(a){var b;if(!g.quirks.isHidden()&&!g.removed){if(a=a.toLowerCase(),b=H.value[a])return b(a);try{return g.getDoc().queryCommandValue(a)}catch(c){}}}function s(a,b){b=b||"exec",h(a,function(a,c){h(c.toLowerCase().split(","),function(c){H[b][c]=a})})}function t(a,b,c){a=a.toLowerCase(),H.exec[a]=function(a,d,e,f){return b.call(c||g,d,e,f)}}function u(a){if(a=a.toLowerCase(),H.exec[a])return!0;try{return g.getDoc().queryCommandSupported(a)}catch(b){}return!1}function v(a,b,c){a=a.toLowerCase(),H.state[a]=function(){return b.call(c||g)}}function w(a,b,c){a=a.toLowerCase(),H.value[a]=function(){return b.call(c||g)}}function x(a){return a=a.toLowerCase(),!!H.exec[a]}function y(a,b,c){return void 0===b&&(b=o),void 0===c&&(c=null),g.getDoc().execCommand(a,b,c)}function z(a){return F.match(a)}function A(a,b){F.toggle(a,b?{value:b}:void 0),g.nodeChanged()}function B(a){G=E.getBookmark(a)}function C(){E.moveToBookmark(G)}var D,E,F,G,H={state:{},exec:{},value:{}},I=g.settings;g.on("PreInit",function(){D=g.dom,E=g.selection,I=g.settings,F=g.formatter}),i(this,{execCommand:p,queryCommandState:q,queryCommandValue:r,queryCommandSupported:u,addCommands:s,addCommand:t,addQueryStateHandler:v,addQueryValueHandler:w,hasCustomCommand:x}),s({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){g.undoManager.add()},"Cut,Copy,Paste":function(a){var b,c=g.getDoc();try{y(a)}catch(d){b=n}if("paste"!==a||c.queryCommandEnabled(a)||(b=!0),b||!c.queryCommandSupported(a)){var f=g.translate("Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.");e.mac&&(f=f.replace(/Ctrl\+/g,"\u2318+")),g.notificationManager.open({text:f,type:"error"})}},unlink:function(){if(E.isCollapsed()){var a=g.dom.getParent(g.selection.getStart(),"a");return void(a&&g.dom.remove(a,!0))}F.remove("link")},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull,JustifyNone":function(a){var b=a.substring(7);"full"==b&&(b="justify"),h("left,center,right,justify".split(","),function(a){b!=a&&F.remove("align"+a)}),"none"!=b&&A("align"+b)},"InsertUnorderedList,InsertOrderedList":function(a){var b,c;y(a),b=D.getParent(E.getNode(),"ol,ul"),b&&(c=b.parentNode,/^(H[1-6]|P|ADDRESS|PRE)$/.test(c.nodeName)&&(B(),D.split(c,b),C()))},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(a){A(a)},"ForeColor,HiliteColor,FontName":function(a,b,c){A(a,c)},FontSize:function(a,b,c){var d,e;c>=1&&c<=7&&(e=l(I.font_size_style_values),d=l(I.font_size_classes),c=d?d[c-1]||c:e[c-1]||c),A(a,c)},RemoveFormat:function(a){F.remove(a)},mceBlockQuote:function(){A("blockquote")},FormatBlock:function(a,b,c){return A(c||"p")},mceCleanup:function(){var a=E.getBookmark();g.setContent(g.getContent({cleanup:n}),{cleanup:n}),E.moveToBookmark(a)},mceRemoveNode:function(a,b,c){var d=c||E.getNode();d!=g.getBody()&&(B(),g.dom.remove(d,n),C())},mceSelectNodeDepth:function(a,b,c){var d=0;D.getParent(E.getNode(),function(a){if(1==a.nodeType&&d++==c)return E.select(a),o},g.getBody())},mceSelectNode:function(a,b,c){E.select(c)},mceInsertContent:function(a,b,c){f.insertAtCaret(g,c)},mceInsertRawHTML:function(a,b,c){E.setContent("tiny_mce_marker"),g.setContent(g.getContent().replace(/tiny_mce_marker/g,function(){return c}))},mceToggleFormat:function(a,b,c){A(c)},mceSetContent:function(a,b,c){g.setContent(c)},"Indent,Outdent":function(a){var b,c,d;b=I.indentation,c=/[a-z%]+$/i.exec(b),b=parseInt(b,10),q("InsertUnorderedList")||q("InsertOrderedList")?y(a):(I.forced_root_block||D.getParent(E.getNode(),D.isBlock)||F.apply("div"),h(E.getSelectedBlocks(),function(e){if("false"!==D.getContentEditable(e)&&"LI"!==e.nodeName){var f=g.getParam("indent_use_margin",!1)?"margin":"padding";f="TABLE"===e.nodeName?"margin":f,f+="rtl"==D.getStyle(e,"direction",!0)?"Right":"Left","outdent"==a?(d=Math.max(0,parseInt(e.style[f]||0,10)-b),D.setStyle(e,f,d?d+c:"")):(d=parseInt(e.style[f]||0,10)+b+c,D.setStyle(e,f,d))}}))},mceRepaint:function(){},InsertHorizontalRule:function(){g.execCommand("mceInsertContent",!1,"<hr />")},mceToggleVisualAid:function(){g.hasVisual=!g.hasVisual,g.addVisual()},mceReplaceContent:function(a,b,c){g.execCommand("mceInsertContent",!1,c.replace(/\{\$selection\}/g,E.getContent({format:"text"})))},mceInsertLink:function(a,b,c){var d;"string"==typeof c&&(c={href:c}),d=D.getParent(E.getNode(),"a"),c.href=c.href.replace(" ","%20"),d&&c.href||F.remove("link"),c.href&&F.apply("link",c,d)},selectAll:function(){var a,c=D.getRoot();if(E.getRng().setStart){var d=D.getParent(E.getStart(),b.isContentEditableTrue);d&&(a=D.createRng(),a.selectNodeContents(d),E.setRng(a))}else a=E.getRng(),a.item||(a.moveToElementText(c),a.select())},"delete":function(){a.deleteCommand(g)},forwardDelete:function(){a.forwardDeleteCommand(g)},mceNewDocument:function(){g.setContent("")},InsertLineBreak:function(a,b,e){function f(){for(var a,b=new d(p,r),c=g.schema.getNonEmptyElements();a=b.next();)if(c[a.nodeName.toLowerCase()]||a.length>0)return!0}var h,i,j,k=e,l=E.getRng(!0);new c(D).normalize(l);var o=l.startOffset,p=l.startContainer;if(1==p.nodeType&&p.hasChildNodes()){var q=o>p.childNodes.length-1;p=p.childNodes[Math.min(o,p.childNodes.length-1)]||p,o=q&&3==p.nodeType?p.nodeValue.length:0}var r=D.getParent(p,D.isBlock),s=r?r.nodeName.toUpperCase():"",t=r?D.getParent(r.parentNode,D.isBlock):null,u=t?t.nodeName.toUpperCase():"",v=k&&k.ctrlKey;"LI"!=u||v||(r=t,s=u),p&&3==p.nodeType&&o>=p.nodeValue.length&&(m||f()||(h=D.create("br"),l.insertNode(h),l.setStartAfter(h),l.setEndAfter(h),i=!0)),h=D.create("br"),l.insertNode(h);var w=D.doc.documentMode;return m&&"PRE"==s&&(!w||w<8)&&h.parentNode.insertBefore(D.doc.createTextNode("\r"),h),j=D.create("span",{}," "),h.parentNode.insertBefore(j,h),E.scrollIntoView(j),D.remove(j),i?(l.setStartBefore(h),l.setEndBefore(h)):(l.setStartAfter(h),l.setEndAfter(h)),E.setRng(l),g.undoManager.add(),n}}),s({"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(a){var b="align"+a.substring(7),c=E.isCollapsed()?[D.getParent(E.getNode(),D.isBlock)]:E.getSelectedBlocks(),d=j(c,function(a){return!!F.matchNode(a,b)});return k(d,n)!==-1},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(a){return z(a)},mceBlockQuote:function(){return z("blockquote")},Outdent:function(){var a;if(I.inline_styles){if((a=D.getParent(E.getStart(),D.isBlock))&&parseInt(a.style.paddingLeft,10)>0)return n;if((a=D.getParent(E.getEnd(),D.isBlock))&&parseInt(a.style.paddingLeft,10)>0)return n}return q("InsertUnorderedList")||q("InsertOrderedList")||!I.inline_styles&&!!D.getParent(E.getNode(),"BLOCKQUOTE")},"InsertUnorderedList,InsertOrderedList":function(a){var b=D.getParent(E.getNode(),"ul,ol");return b&&("insertunorderedlist"===a&&"UL"===b.tagName||"insertorderedlist"===a&&"OL"===b.tagName)}},"state"),s({"FontSize,FontName":function(a){var b,c=0;return(b=D.getParent(E.getNode(),"span"))&&(c="fontsize"==a?b.style.fontSize:b.style.fontFamily.replace(/, /g,",").replace(/[\'\"]/g,"").toLowerCase()),c}},"value"),s({Undo:function(){g.undoManager.undo()},Redo:function(){g.undoManager.redo()}})}}),g("tinymce.core.EditorFocus",["ephox.katamari.api.Option","ephox.sugar.api.dom.Compare","ephox.sugar.api.node.Element","tinymce.core.caret.CaretFinder","tinymce.core.dom.ElementType","tinymce.core.dom.RangeUtils","tinymce.core.Env"],function(a,b,c,d,e,f,g){var h=function(a,b){return a.dom.getParent(b,function(b){return"true"===a.dom.getContentEditable(b)})},i=function(b){return b.collapsed?a.from(f.getNode(b.startContainer,b.startOffset)).map(c.fromDom):a.none()},j=function(c,d){return i(d).bind(function(d){return e.isTableSection(d)?a.some(d):b.contains(c,d)===!1?a.some(c):a.none()})},k=function(a,b){j(c.fromDom(a.getBody()),b).bind(function(a){return d.firstPositionIn(a.dom())}).fold(function(){a.selection.normalize()},function(b){a.selection.setRng(b.toRange())})},l=function(a){if(a.setActive)try{a.setActive()}catch(b){a.focus()}else a.focus()},m=function(a){var b,c,d,e=a.selection,f=a.settings.content_editable,i=a.getDoc(),j=a.getBody();return b=e.getRng(),b.item&&(c=b.item(0)),a.quirks.refreshContentEditable(),d=h(a,e.getNode()),a.$.contains(j,d)?(l(d),k(a,b),void n(a)):(f||(g.opera||l(j),a.getWin().focus()),(g.gecko||f)&&(f&&document.activeElement!==j&&a.selection.setRng(a.lastRng),l(j),k(a,b)),c&&c.ownerDocument===i&&(b=i.body.createControlRange(),b.addElement(c),b.select()),void n(a))},n=function(a){a.editorManager.setActive(a)},o=function(a,b){a.removed||(b?n(a):m(a))};return{focus:o}}),g("tinymce.core.EditorObservable",["tinymce.core.util.Observable","tinymce.core.dom.DOMUtils","tinymce.core.util.Tools"],function(a,b,c){function d(a,b){return"selectionchange"==b?a.getDoc():!a.inline&&/^mouse|touch|click|contextmenu|drop|dragover|dragend/.test(b)?a.getDoc().documentElement:a.settings.event_root?(a.eventRoot||(a.eventRoot=g.select(a.settings.event_root)[0]),a.eventRoot):a.getBody()}function e(a,b){function c(a){return!a.hidden&&!a.readonly}var e,h;if(a.delegates||(a.delegates={}),!a.delegates[b]&&!a.removed)if(e=d(a,b),a.settings.event_root){if(f||(f={},a.editorManager.on("removeEditor",function(){var b;if(!a.editorManager.activeEditor&&f){for(b in f)a.dom.unbind(d(a,b));f=null}})),f[b])return;h=function(d){for(var e=d.target,f=a.editorManager.get(),h=f.length;h--;){var i=f[h].getBody();(i===e||g.isChildOf(e,i))&&c(f[h])&&f[h].fire(b,d)}},f[b]=h,g.bind(e,b,h)}else h=function(d){c(a)&&a.fire(b,d)},g.bind(e,b,h),a.delegates[b]=h}var f,g=b.DOM,h={bindPendingEventDelegates:function(){var a=this;c.each(a._pendingNativeEvents,function(b){e(a,b)})},toggleNativeEvent:function(a,b){var c=this;"focus"!=a&&"blur"!=a&&(b?c.initialized?e(c,a):c._pendingNativeEvents?c._pendingNativeEvents.push(a):c._pendingNativeEvents=[a]:c.initialized&&(c.dom.unbind(d(c,a),a,c.delegates[a]),delete c.delegates[a]))},unbindAllNativeEvents:function(){var a,b=this;if(b.delegates){for(a in b.delegates)b.dom.unbind(d(b,a),a,b.delegates[a]);delete b.delegates}b.inline||(b.getBody().onload=null,b.dom.unbind(b.getWin()),b.dom.unbind(b.getDoc())),b.dom.unbind(b.getBody()),b.dom.unbind(b.getContainer())}};return h=c.extend({},a,h)}),g("tinymce.core.ErrorReporter",["tinymce.core.AddOnManager"],function(a){var b=a.PluginManager,c=function(a,c){for(var d in b.urls){var e=b.urls[d]+"/plugin"+c+".js";if(e===a)return d}return null},d=function(a,b){var d=c(b,a.suffix);return d?"Failed to load plugin: "+d+" from url "+b:"Failed to load plugin url: "+b},e=function(a,b){a.notificationManager.open({type:"error",text:b})},f=function(a,b){a._skinLoaded?e(a,b):a.on("SkinLoaded",function(){e(a,b)})},g=function(a,b){f(a,"Failed to upload image: "+b)},h=function(a,b){f(a,d(a,b))},i=function(a){var b=window.console;b&&!window.test&&(b.error?b.error.apply(b,arguments):b.log.apply(b,arguments))};return{pluginLoadError:h,uploadError:g,displayError:f,initError:i}}),g("tinymce.core.caret.CaretContainerInput",["ephox.katamari.api.Fun","ephox.sugar.api.node.Element","ephox.sugar.api.search.SelectorFind","tinymce.core.caret.CaretContainer"],function(a,b,c,d){var e=function(d){return c.descendant(b.fromDom(d.getBody()),"*[data-mce-caret]").fold(a.constant(null),function(a){return a.dom()})},f=function(a){a.selection.setRng(a.selection.getRng())},g=function(a,b){b.hasAttribute("data-mce-caret")&&(d.showCaretContainerBlock(b),f(a),a.selection.scrollIntoView(b))},h=function(a,b){var c=e(a);if(c)return"compositionstart"===b.type?(b.preventDefault(),b.stopPropagation(),void g(c)):void(d.hasContent(c)&&g(a,c))},i=function(b){b.on("keyup compositionstart",a.curry(h,b))};return{setup:i}}),g("tinymce.core.file.Uploader",["tinymce.core.util.Promise","tinymce.core.util.Tools","tinymce.core.util.Fun"],function(a,b,c){return function(c,d){function e(a,b){return a?a.replace(/\/$/,"")+"/"+b.replace(/^\//,""):b}function f(a,b,c,f){var g,h;g=new XMLHttpRequest,g.open("POST",d.url),g.withCredentials=d.credentials,g.upload.onprogress=function(a){f(a.loaded/a.total*100)},g.onerror=function(){c("Image upload failed due to a XHR Transport error. Code: "+g.status)},g.onload=function(){var a;return g.status<200||g.status>=300?void c("HTTP Error: "+g.status):(a=JSON.parse(g.responseText),a&&"string"==typeof a.location?void b(e(d.basePath,a.location)):void c("Invalid JSON: "+g.responseText))},h=new FormData,h.append("file",a.blob(),a.filename()),g.send(h)}function g(){return new a(function(a){a([])})}function h(a,b){return{url:b,blobInfo:a,status:!0}}function i(a,b){return{url:"",blobInfo:a,status:!1,error:b}}function j(a,c){b.each(p[a],function(a){a(c)}),delete p[a]}function k(b,d,e){return c.markPending(b.blobUri()),new a(function(a){var f,g,k=function(){};try{var l=function(){f&&(f.close(),g=k)},m=function(d){l(),c.markUploaded(b.blobUri(),d),j(b.blobUri(),h(b,d)),a(h(b,d))},n=function(d){l(),c.removeFailed(b.blobUri()),j(b.blobUri(),i(b,d)),a(i(b,d))};g=function(a){a<0||a>100||(f||(f=e()),f.progressBar.value(a))},d(b,m,n,g)}catch(o){a(i(b,o.message))}})}function l(a){return a===f}function m(b){var c=b.blobUri();return new a(function(a){p[c]=p[c]||[],p[c].push(a)})}function n(e,f){return e=b.grep(e,function(a){return!c.isUploaded(a.blobUri())}),a.all(b.map(e,function(a){return c.isPending(a.blobUri())?m(a):k(a,d.handler,f)}))}function o(a,b){return!d.url&&l(d.handler)?g():n(a,b)}var p={};return d=b.extend({credentials:!1,handler:f},d),{upload:o}}}),g("ephox.sand.api.Window",["ephox.sand.util.Global"],function(a){var b=function(b){var c=a.getOrDie("requestAnimationFrame");c(b)},c=function(b){var c=a.getOrDie("atob");return c(b)};return{atob:c,requestAnimationFrame:b}}),g("tinymce.core.file.Conversions",["ephox.sand.api.Window","tinymce.core.util.Promise"],function(a,b){function c(a){return new b(function(b,c){var d=function(){c("Cannot convert "+a+" to Blob. Resource might not exist or is inaccessible.")};try{var e=new XMLHttpRequest;e.open("GET",a,!0),e.responseType="blob",e.onload=function(){200==this.status?b(this.response):d()},e.onerror=d,e.send()}catch(f){d()}})}function d(a){var b,c;return a=decodeURIComponent(a).split(","),c=/data:([^;]+)/.exec(a[0]),c&&(b=c[1]),{type:b,data:a[1]}}function e(c){return new b(function(b){var e,f,g;c=d(c);try{e=a.atob(c.data)}catch(h){return void b(new Blob([]))}for(f=new Uint8Array(e.length),g=0;g<f.length;g++)f[g]=e.charCodeAt(g);b(new Blob([f],{type:c.type}))})}function f(a){return 0===a.indexOf("blob:")?c(a):0===a.indexOf("data:")?e(a):null}function g(a){return new b(function(b){var c=new FileReader;c.onloadend=function(){b(c.result)},c.readAsDataURL(a)})}return{uriToBlob:f,blobToDataUri:g,parseDataUri:d}});g("tinymce.core.file.ImageScanner",["tinymce.core.util.Promise","tinymce.core.util.Arr","tinymce.core.util.Fun","tinymce.core.file.Conversions","tinymce.core.Env"],function(a,b,c,d,e){var f=0,g=function(a){return(a||"blobid")+f++},h=function(a,b,c,e){var f,h;return 0===b.src.indexOf("blob:")?(h=a.getByUri(b.src),void(h?c({image:b,blobInfo:h}):d.uriToBlob(b.src).then(function(e){d.blobToDataUri(e).then(function(i){f=d.parseDataUri(i).data,h=a.create(g(),e,f),a.add(h),c({image:b,blobInfo:h})})},function(a){e(a)}))):(f=d.parseDataUri(b.src).data,h=a.findFirst(function(a){return a.base64()===f}),void(h?c({image:b,blobInfo:h}):d.uriToBlob(b.src).then(function(d){h=a.create(g(),d,f),a.add(h),c({image:b,blobInfo:h})},function(a){e(a)})))},i=function(a){return a?a.getElementsByTagName("img"):[]};return function(d,f){function g(g,k){var l,m;return k||(k=c.constant(!0)),l=b.filter(i(g),function(a){var b=a.src;return!!e.fileApi&&(!a.hasAttribute("data-mce-bogus")&&(!a.hasAttribute("data-mce-placeholder")&&(!(!b||b==e.transparentSrc)&&(0===b.indexOf("blob:")?!d.isUploaded(b):0===b.indexOf("data:")&&k(a)))))}),m=b.map(l,function(b){var c;return j[b.src]?new a(function(a){j[b.src].then(function(c){return"string"==typeof c?c:void a({image:b,blobInfo:c.blobInfo})})}):(c=new a(function(a,c){h(f,b,a,c)}).then(function(a){return delete j[a.image.src],a})["catch"](function(a){return delete j[b.src],a}),j[b.src]=c,c)}),a.all(m)}var j={};return{findAll:g}}});g("ephox.sand.api.URL",["ephox.sand.util.Global"],function(a){var b=function(){return a.getOrDie("URL")},c=function(a){return b().createObjectURL(a)},d=function(a){b().revokeObjectURL(a)};return{createObjectURL:c,revokeObjectURL:d}}),g("tinymce.core.util.Uuid",[],function(){var a=0,b=function(){var a=function(){return Math.round(4294967295*Math.random()).toString(36)},b=(new Date).getTime();return"s"+b.toString(36)+a()+a()+a()},c=function(c){return c+a++ +b()};return{uuid:c}}),g("tinymce.core.file.BlobCache",["ephox.sand.api.URL","tinymce.core.util.Arr","tinymce.core.util.Fun","tinymce.core.util.Uuid"],function(a,b,c,d){return function(){function e(a){var b={"image/jpeg":"jpg","image/jpg":"jpg","image/gif":"gif","image/png":"png"};return b[a.toLowerCase()]||"dat"}function f(a,b,c,d){return g("object"==typeof a?a:{id:a,name:d,blob:b,base64:c})}function g(b){var c,f;if(!b.blob||!b.base64)throw"blob and base64 representations of the image are required for BlobInfo to be created";return c=b.id||d.uuid("blobid"),f=b.name||c,{id:o(c),name:o(f),filename:o(f+"."+e(b.blob.type)),blob:o(b.blob),base64:o(b.base64),blobUri:o(b.blobUri||a.createObjectURL(b.blob)),uri:o(b.uri)}}function h(a){i(a.id())||n.push(a)}function i(a){return j(function(b){return b.id()===a})}function j(a){return b.filter(n,a)[0]}function k(a){return j(function(b){return b.blobUri()==a})}function l(c){n=b.filter(n,function(b){return b.blobUri()!==c||(a.revokeObjectURL(b.blobUri()),!1)})}function m(){b.each(n,function(b){a.revokeObjectURL(b.blobUri())}),n=[]}var n=[],o=c.constant;return{create:f,add:h,get:i,getByUri:k,findFirst:j,removeByUri:l,destroy:m}}}),g("tinymce.core.file.UploadStatus",[],function(){return function(){function a(a,b){return{status:a,resultUri:b}}function b(a){return a in l}function c(a){var b=l[a];return b?b.resultUri:null}function d(a){return!!b(a)&&l[a].status===j}function e(a){return!!b(a)&&l[a].status===k}function f(b){l[b]=a(j,null)}function g(b,c){l[b]=a(k,c)}function h(a){delete l[a]}function i(){l={}}var j=1,k=2,l={};return{hasBlobUri:b,getResultUri:c,isPending:d,isUploaded:e,markPending:f,markUploaded:g,removeFailed:h,destroy:i}}}),g("tinymce.core.EditorUpload",["tinymce.core.util.Arr","tinymce.core.file.Uploader","tinymce.core.file.ImageScanner","tinymce.core.file.BlobCache","tinymce.core.file.UploadStatus","tinymce.core.ErrorReporter"],function(a,b,c,d,e,f){return function(g){function h(a){return function(b){return g.selection?a(b):[]}}function i(){return"?"+(new Date).getTime()}function j(a,b,c){var d=0;do d=a.indexOf(b,d),d!==-1&&(a=a.substring(0,d)+c+a.substr(d+b.length),d+=c.length-b.length+1);while(d!==-1);return a}function k(a,b,c){return a=j(a,'src="'+b+'"','src="'+c+'"'),a=j(a,'data-mce-src="'+b+'"','data-mce-src="'+c+'"')}function l(b,c){a.each(g.undoManager.data,function(d){"fragmented"===d.type?d.fragments=a.map(d.fragments,function(a){return k(a,b,c)}):d.content=k(d.content,b,c)})}function m(){return g.notificationManager.open({text:g.translate("Image uploading..."),type:"info",timeout:-1,progressBar:!0})}function n(a,b){w.removeByUri(a.src),l(a.src,b),g.$(a).attr({src:x.images_reuse_filename?b+i():b,"data-mce-src":g.convertURL(b,"src")})}function o(c){return u||(u=new b(y,{url:x.images_upload_url,basePath:x.images_upload_base_path,credentials:x.images_upload_credentials,handler:x.images_upload_handler})),r().then(h(function(b){var d;return d=a.map(b,function(a){return a.blobInfo}),u.upload(d,m).then(h(function(d){var e=a.map(d,function(a,c){var d=b[c].image;return a.status&&g.settings.images_replace_blob_uris!==!1?n(d,a.url):a.error&&f.uploadError(g,a.error),{element:d,status:a.status}});return c&&c(e),e}))}))}function p(a){if(x.automatic_uploads!==!1)return o(a)}function q(a){return!x.images_dataimg_filter||x.images_dataimg_filter(a)}function r(){return v||(v=new c(y,w)),v.findAll(g.getBody(),q).then(h(function(b){return b=a.filter(b,function(a){return"string"!=typeof a||(f.displayError(g,a),!1)}),a.each(b,function(a){l(a.image.src,a.blobInfo.blobUri()),a.image.src=a.blobInfo.blobUri(),a.image.removeAttribute("data-mce-src")}),b}))}function s(){w.destroy(),y.destroy(),v=u=null}function t(b){return b.replace(/src="(blob:[^"]+)"/g,function(b,c){var d=y.getResultUri(c);if(d)return'src="'+d+'"';var e=w.getByUri(c);return e||(e=a.reduce(g.editorManager.get(),function(a,b){return a||b.editorUpload&&b.editorUpload.blobCache.getByUri(c)},null)),e?'src="data:'+e.blob().type+";base64,"+e.base64()+'"':b})}var u,v,w=new d,x=g.settings,y=new e;return g.on("setContent",function(){g.settings.automatic_uploads!==!1?p():r()}),g.on("RawSaveContent",function(a){a.content=t(a.content)}),g.on("getContent",function(a){a.source_view||"raw"==a.format||(a.content=t(a.content))}),g.on("PostRender",function(){g.parser.addNodeFilter("img",function(b){a.each(b,function(a){var b=a.attr("src");if(!w.getByUri(b)){var c=y.getResultUri(b);c&&a.attr("src",c)}})})}),{blobCache:w,uploadImages:o,uploadImagesAuto:p,scanForImages:r,destroy:s}}}),g("tinymce.core.ForceBlocks",["ephox.katamari.api.Fun"],function(a){var b=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n=a.settings,o=a.dom,p=a.selection,q=a.schema,r=q.getBlockElements(),s=p.getStart(),t=a.getBody(),u=-16777215;if(m=n.forced_root_block,s&&1===s.nodeType&&m){for(;s&&s!==t;){if(r[s.nodeName])return;s=s.parentNode}if(b=p.getRng(),b.setStart){c=b.startContainer,d=b.startOffset,e=b.endContainer,f=b.endOffset;try{j=a.getDoc().activeElement===t}catch(v){}}else b.item&&(s=b.item(0),b=a.getDoc().body.createTextRange(),b.moveToElementText(s)),j=b.parentElement().ownerDocument===a.getDoc(),k=b.duplicate(),k.collapse(!0),d=k.move("character",u)*-1,k.collapsed||(k=b.duplicate(),k.collapse(!1),f=k.move("character",u)*-1-d);for(s=t.firstChild,l=t.nodeName.toLowerCase();s;)if((3===s.nodeType||1==s.nodeType&&!r[s.nodeName])&&q.isValidChild(l,m.toLowerCase())){if(3===s.nodeType&&0===s.nodeValue.length){h=s,s=s.nextSibling,o.remove(h);continue}g||(g=o.create(m,a.settings.forced_root_block_attrs),s.parentNode.insertBefore(g,s),i=!0),h=s,s=s.nextSibling,g.appendChild(h)}else g=null,s=s.nextSibling;if(i&&j){if(b.setStart)b.setStart(c,d),b.setEnd(e,f),p.setRng(b);else try{b=a.getDoc().body.createTextRange(),b.moveToElementText(t),b.collapse(!0),b.moveStart("character",d),f>0&&b.moveEnd("character",f),b.select()}catch(v){}a.nodeChanged()}}},c=function(c){c.settings.forced_root_block&&c.on("NodeChange",a.curry(b,c))};return{setup:c}}),g("tinymce.core.dom.Dimensions",["tinymce.core.util.Arr","tinymce.core.dom.NodeType","tinymce.core.geom.ClientRect"],function(a,b,c){function d(e){function f(b){return a.map(b,function(a){return a=c.clone(a),a.node=e,a})}if(a.isArray(e))return a.reduce(e,function(a,b){return a.concat(d(b))},[]);if(b.isElement(e))return f(e.getClientRects());if(b.isText(e)){var g=e.ownerDocument.createRange();return g.setStart(e,0),g.setEnd(e,e.data.length),f(g.getClientRects())}}return{getClientRects:d}}),g("tinymce.core.caret.LineUtils",["tinymce.core.util.Fun","tinymce.core.util.Arr","tinymce.core.dom.NodeType","tinymce.core.dom.Dimensions","tinymce.core.geom.ClientRect","tinymce.core.caret.CaretUtils","tinymce.core.caret.CaretCandidate"],function(a,b,c,d,e,f,g){ -function h(a,b){return Math.abs(a.left-b)}function i(a,b){return Math.abs(a.right-b)}function j(a,c){function d(a,b){return a>=b.left&&a<=b.right}return b.reduce(a,function(a,b){var e,f;return e=Math.min(h(a,c),i(a,c)),f=Math.min(h(b,c),i(b,c)),d(c,b)?b:d(c,a)?a:f==e&&p(b.node)?b:f<e?b:a})}function k(a,b,c,d){for(;d=q(d,a,g.isEditableCaretCandidate,b);)if(c(d))return}function l(a,c){function f(a,e){var f;return f=b.filter(d.getClientRects(e),function(b){return!a(b,c)}),g=g.concat(f),0===f.length}var g=[];return g.push(c),k(-1,a,r(f,e.isAbove),c.node),k(1,a,r(f,e.isBelow),c.node),g}function m(a){return b.filter(b.toArray(a.getElementsByTagName("*")),p)}function n(a,b){return{node:a.node,before:h(a,b)<i(a,b)}}function o(a,c,e){var f,g;return f=d.getClientRects(m(a)),f=b.filter(f,function(a){return e>=a.top&&e<=a.bottom}),g=j(f,c),g&&(g=j(l(a,g),c),g&&p(g.node))?n(g,c):null}var p=c.isContentEditableFalse,q=f.findNode,r=a.curry;return{findClosestClientRect:j,findLineNodeRects:l,closestCaret:o}}),g("tinymce.core.caret.LineWalker",["tinymce.core.util.Fun","tinymce.core.util.Arr","tinymce.core.dom.Dimensions","tinymce.core.caret.CaretCandidate","tinymce.core.caret.CaretUtils","tinymce.core.caret.CaretWalker","tinymce.core.caret.CaretPosition","tinymce.core.geom.ClientRect"],function(a,b,c,d,e,f,g,h){function i(a,b,c,f){for(;f=e.findNode(f,a,d.isEditableCaretCandidate,b);)if(c(f))return}function j(a,d,e,f,g,h){function j(f){var h,i,j;for(j=c.getClientRects(f),a==-1&&(j=j.reverse()),h=0;h<j.length;h++)if(i=j[h],!e(i,l)){if(n.length>0&&d(i,b.last(n))&&m++,i.line=m,g(i))return!0;n.push(i)}}var k,l,m=0,n=[];return(l=b.last(h.getClientRects()))?(k=h.getNode(),j(k),i(a,f,j,k),n):n}function k(a,b){return b.line>a}function l(a,b){return b.line===a}function m(a,c,d,e){function i(c){return 1==a?b.last(c.getClientRects()):b.last(c.getClientRects())}var j,k,l,m,n,o,p=new f(c),q=[],r=0;1==a?(j=p.next,k=h.isBelow,l=h.isAbove,m=g.after(e)):(j=p.prev,k=h.isAbove,l=h.isBelow,m=g.before(e)),o=i(m);do if(m.isVisible()&&(n=i(m),!l(n,o))){if(q.length>0&&k(n,b.last(q))&&r++,n=h.clone(n),n.position=m,n.line=r,d(n))return q;q.push(n)}while(m=j(m));return q}var n=a.curry,o=n(j,-1,h.isAbove,h.isBelow),p=n(j,1,h.isBelow,h.isAbove);return{upUntil:o,downUntil:p,positionsUntil:m,isAboveLine:n(k),isLine:n(l)}}),g("tinymce.core.keyboard.CefUtils",["tinymce.core.caret.CaretPosition","tinymce.core.caret.CaretUtils","tinymce.core.dom.NodeType","tinymce.core.util.Fun"],function(a,b,c,d){var e=c.isContentEditableTrue,f=c.isContentEditableFalse,g=function(a,b,c,d){return b._selectionOverrides.showCaret(a,c,d)},h=function(a){var b=a.ownerDocument.createRange();return b.selectNode(a),b},i=function(a,b){var c;return c=a.fire("BeforeObjectSelected",{target:b}),c.isDefaultPrevented()?null:h(b)},j=function(c,h){var i,j;return h=b.normalizeRange(1,c.getBody(),h),i=a.fromRangeStart(h),f(i.getNode())?g(1,c,i.getNode(),!i.isAtEnd()):f(i.getNode(!0))?g(1,c,i.getNode(!0),!1):(j=c.dom.getParent(i.getNode(),d.or(f,e)),f(j)?g(1,c,j,!1):null)},k=function(a,b){var c;return b&&b.collapsed?(c=j(a,b),c?c:b):b};return{showCaret:g,selectNode:i,renderCaretAtRange:j,renderRangeCaret:k}}),g("tinymce.core.keyboard.CefNavigation",["tinymce.core.caret.CaretContainer","tinymce.core.caret.CaretPosition","tinymce.core.caret.CaretUtils","tinymce.core.caret.CaretWalker","tinymce.core.caret.LineUtils","tinymce.core.caret.LineWalker","tinymce.core.dom.NodeType","tinymce.core.dom.RangeUtils","tinymce.core.Env","tinymce.core.keyboard.CefUtils","tinymce.core.util.Arr","tinymce.core.util.Fun"],function(a,b,c,d,e,f,g,h,i,j,k,l){var m=g.isContentEditableFalse,n=h.getSelectedNode,o=c.isAfterContentEditableFalse,p=c.isBeforeContentEditableFalse,q=function(a,b){for(;b=a(b);)if(b.isVisible())return b;return b},r=function(a,b){var d=c.isInSameBlock(a,b);return!(d||!g.isBr(a.getNode()))||d},s=function(b){return a.isCaretContainerBlock(b.startContainer)},t=function(a,d,e){return e=c.normalizeRange(a,d,e),a===-1?b.fromRangeStart(e):b.fromRangeEnd(e)},u=function(a,b,c,d,e){var f,g,h,i;return!e.collapsed&&(f=n(e),m(f))?j.showCaret(a,b,f,a===-1):(i=s(e),g=t(a,b.getBody(),e),d(g)?j.selectNode(b,g.getNode(a===-1)):(g=c(g))?d(g)?j.showCaret(a,b,g.getNode(a===-1),1===a):(h=c(g),d(h)&&r(g,h)?j.showCaret(a,b,h.getNode(a===-1),1===a):i?j.renderRangeCaret(b,g.toRange()):null):i?e:null)},v=function(a,b,c,d){var g,h,i,l,q,r,s,u,v;if(v=n(d),g=t(a,b.getBody(),d),h=c(b.getBody(),f.isAboveLine(1),g),i=k.filter(h,f.isLine(1)),q=k.last(g.getClientRects()),p(g)&&(v=g.getNode()),o(g)&&(v=g.getNode(!0)),!q)return null;if(r=q.left,l=e.findClosestClientRect(i,r),l&&m(l.node))return s=Math.abs(r-l.left),u=Math.abs(r-l.right),j.showCaret(a,b,l.node,s<u);if(v){var w=f.positionsUntil(a,b.getBody(),f.isAboveLine(1),v);if(l=e.findClosestClientRect(k.filter(w,f.isLine(1)),r))return j.renderRangeCaret(b,l.position.toRange());if(l=k.last(k.filter(w,f.isLine(0))))return j.renderRangeCaret(b,l.position.toRange())}},w=function(a){var b=a.dom.create(a.settings.forced_root_block);return(!i.ie||i.ie>=11)&&(b.innerHTML='<br data-mce-bogus="1">'),b},x=function(a,c,e){var f,g,h,i=new d(a.getBody()),j=l.curry(q,i.next),k=l.curry(q,i.prev);if(e.collapsed&&a.settings.forced_root_block){if(f=a.dom.getParent(e.startContainer,"PRE"),!f)return;g=1===c?j(b.fromRangeStart(e)):k(b.fromRangeStart(e)),g||(h=w(a),1===c?a.$(f).after(h):a.$(f).before(h),a.selection.select(h,!0),a.selection.collapse())}},y=function(a,b){var c,e=new d(a.getBody()),f=l.curry(q,e.next),g=l.curry(q,e.prev),h=b?1:-1,i=b?f:g,j=b?p:o,k=a.selection.getRng();return(c=u(h,a,i,j,k))?c:(c=x(a,h,k),c?c:null)},z=function(a,b){var c,d=b?1:-1,e=b?f.downUntil:f.upUntil,g=a.selection.getRng();return(c=v(d,a,e,g))?c:(c=x(a,d,g),c?c:null)},A=function(a,b){return function(){var c=y(a,b);return!!c&&(a.selection.setRng(c),!0)}},B=function(a,b){return function(){var c=z(a,b);return!!c&&(a.selection.setRng(c),!0)}};return{moveH:A,moveV:B}}),g("ephox.katamari.api.Merger",["ephox.katamari.api.Type","global!Array","global!Error"],function(a,b,c){var d=function(a,b){return b},e=function(b,c){var d=a.isObject(b)&&a.isObject(c);return d?g(b,c):c},f=function(a){return function(){for(var d=new b(arguments.length),e=0;e<d.length;e++)d[e]=arguments[e];if(0===d.length)throw new c("Can't merge zero objects");for(var f={},g=0;g<d.length;g++){var h=d[g];for(var i in h)h.hasOwnProperty(i)&&(f[i]=a(f[i],h[i]))}return f}},g=f(e),h=f(d);return{deepMerge:g,merge:h}}),g("tinymce.core.keyboard.MatchKeys",["ephox.katamari.api.Arr","ephox.katamari.api.Fun","ephox.katamari.api.Merger"],function(a,b,c){var d=function(d){return a.map(d,function(a){return c.merge({shiftKey:!1,altKey:!1,ctrlKey:!1,metaKey:!1,keyCode:0,action:b.noop},a)})},e=function(a,b){return b.keyCode===a.keyCode&&b.shiftKey===a.shiftKey&&b.altKey===a.altKey&&b.ctrlKey===a.ctrlKey&&b.metaKey===a.metaKey},f=function(b,c){return a.bind(d(b),function(a){return e(a,c)?[a]:[]})},g=function(a){var b=Array.prototype.slice.call(arguments,1);return function(){return a.apply(null,b)}},h=function(b,c){return a.find(f(b,c),function(a){return a.action()})};return{match:f,action:g,execute:h}}),g("tinymce.core.keyboard.ArrowKeys",["tinymce.core.keyboard.BoundarySelection","tinymce.core.keyboard.CefNavigation","tinymce.core.keyboard.MatchKeys","tinymce.core.util.VK"],function(a,b,c,d){var e=function(e,f,g){c.execute([{keyCode:d.RIGHT,action:b.moveH(e,!0)},{keyCode:d.LEFT,action:b.moveH(e,!1)},{keyCode:d.UP,action:b.moveV(e,!1)},{keyCode:d.DOWN,action:b.moveV(e,!0)},{keyCode:d.RIGHT,action:a.move(e,f,!0)},{keyCode:d.LEFT,action:a.move(e,f,!1)}],g).each(function(a){g.preventDefault()})},f=function(a,b){a.on("keydown",function(c){c.isDefaultPrevented()===!1&&e(a,b,c)})};return{setup:f}}),g("tinymce.core.keyboard.DeleteBackspaceKeys",["tinymce.core.delete.BlockBoundaryDelete","tinymce.core.delete.BlockRangeDelete","tinymce.core.delete.CefDelete","tinymce.core.delete.InlineBoundaryDelete","tinymce.core.keyboard.MatchKeys","tinymce.core.util.VK"],function(a,b,c,d,e,f){var g=function(g,h,i){e.execute([{keyCode:f.BACKSPACE,action:e.action(c.backspaceDelete,g,!1)},{keyCode:f.DELETE,action:e.action(c.backspaceDelete,g,!0)},{keyCode:f.BACKSPACE,action:e.action(d.backspaceDelete,g,h,!1)},{keyCode:f.DELETE,action:e.action(d.backspaceDelete,g,h,!0)},{keyCode:f.BACKSPACE,action:e.action(b.backspaceDelete,g,!1)},{keyCode:f.DELETE,action:e.action(b.backspaceDelete,g,!0)},{keyCode:f.BACKSPACE,action:e.action(a.backspaceDelete,g,!1)},{keyCode:f.DELETE,action:e.action(a.backspaceDelete,g,!0)}],i).each(function(a){i.preventDefault()})},h=function(a,b){e.execute([{keyCode:f.BACKSPACE,action:e.action(c.paddEmptyElement,a)},{keyCode:f.DELETE,action:e.action(c.paddEmptyElement,a)}],b)},i=function(a,b){a.on("keydown",function(c){c.isDefaultPrevented()===!1&&g(a,b,c)}),a.on("keyup",function(b){b.isDefaultPrevented()===!1&&h(a,b)})};return{setup:i}}),g("tinymce.core.keyboard.InsertNewLine",["tinymce.core.caret.CaretContainer","tinymce.core.dom.NodeType","tinymce.core.dom.RangeUtils","tinymce.core.dom.TreeWalker","tinymce.core.text.Zwsp","tinymce.core.util.Tools"],function(a,b,c,d,e,f){var g=function(a){return a&&"A"===a.nodeName&&0===f.trim(e.trim(a.innerText||a.textContent)).length},h=function(a){return a&&/^(TD|TH|CAPTION)$/.test(a.nodeName)},i=function(a,b){return a.firstChild&&a.firstChild.nodeName==b},j=function(a,b){return a&&a.parentNode&&a.parentNode.nodeName===b},k=function(a){a.innerHTML='<br data-mce-bogus="1">'},l=function(a,b){return a.nodeName===b||a.previousSibling&&a.previousSibling.nodeName===b},m=function(a){return a&&/^(OL|UL|LI)$/.test(a.nodeName)},n=function(a){return m(a)&&m(a.parentNode)},o=function(a,b){return b&&a.isBlock(b)&&!/^(TD|TH|CAPTION|FORM)$/.test(b.nodeName)&&!/^(fixed|absolute)/i.test(b.style.position)&&"true"!==a.getContentEditable(b)},p=function(a,b,c){var d,e=c,f=[];if(e){for(;e=e.firstChild;){if(a.isBlock(e))return;1!=e.nodeType||b[e.nodeName.toLowerCase()]||f.push(e)}for(d=f.length;d--;)e=f[d],!e.hasChildNodes()||e.firstChild==e.lastChild&&""===e.firstChild.nodeValue?a.remove(e):g(e)&&a.remove(e)}},q=function(a,c,d){return b.isText(c)===!1?d:a?1===d&&c.data.charAt(d-1)===e.ZWSP?0:d:d===c.data.length-1&&c.data.charAt(d)===e.ZWSP?c.data.length:d},r=function(a){var b=a.cloneRange();return b.setStart(a.startContainer,q(!0,a.startContainer,a.startOffset)),b.setEnd(a.endContainer,q(!1,a.endContainer,a.endOffset)),b},s=function(a){for(;a;){if(1===a.nodeType||3===a.nodeType&&a.data&&/[\r\n\s]/.test(a.data))return a;a=a.nextSibling}},t=function(a,b){a.execCommand("InsertLineBreak",!1,b)},u=function(a){do 3===a.nodeType&&(a.nodeValue=a.nodeValue.replace(/^[\r\n]+/,"")),a=a.firstChild;while(a)},v=function(a,b){var c,d,e=a.getRoot();for(c=b;c!==e&&"false"!==a.getContentEditable(c);)"true"===a.getContentEditable(c)&&(d=c),c=c.parentNode;return c!==e?d:e},w=function(a,b){var c=a.settings.forced_root_block;c&&c.toLowerCase()===b.tagName.toLowerCase()&&a.dom.setAttribs(b,a.settings.forced_root_block_attrs)},x=function(a,b,c,d,e){var f,g,i,j,k,l,m=b||"P",n=a.dom,p=v(n,d);if(g=n.getParent(d,n.isBlock),!g||!o(n,g)){if(g=g||p,l=g==a.getBody()||h(g)?g.nodeName.toLowerCase():g.parentNode.nodeName.toLowerCase(),!g.hasChildNodes())return f=n.create(m),w(a,f),g.appendChild(f),c.setStart(f,0),c.setEnd(f,0),f;for(j=d;j.parentNode!=g;)j=j.parentNode;for(;j&&!n.isBlock(j);)i=j,j=j.previousSibling;if(i&&a.schema.isValidChild(l,m.toLowerCase())){for(f=n.create(m),w(a,f),i.parentNode.insertBefore(f,i),j=i;j&&!n.isBlock(j);)k=j.nextSibling,f.appendChild(j),j=k;c.setStart(d,e),c.setEnd(d,e)}}return d},y=function(a,b){var c;b.normalize(),c=b.lastChild,c&&!/^(left|right)$/gi.test(a.getStyle(c,"float",!0))||a.add(b,"br")},z=function(a){var b=a.parentNode;return/^(LI|DT|DD)$/.test(b.nodeName)?b:a},A=function(a,b,c){for(var d=a[c?"firstChild":"lastChild"];d&&1!=d.nodeType;)d=d[c?"nextSibling":"previousSibling"];return d===b},B=function(b,e){function f(a){var b,c,e,f,g=a,h=S.getMoveCaretBeforeOnEnterElements();if(a){if(/^(LI|DT|DD)$/.test(a.nodeName)){var i=s(a.firstChild);i&&/^(UL|OL|DL)$/.test(i.nodeName)&&a.insertBefore(P.doc.createTextNode("\xa0"),a.firstChild)}if(e=P.createRng(),a.normalize(),a.hasChildNodes()){for(b=new d(a,a);c=b.current();){if(3==c.nodeType){e.setStart(c,0),e.setEnd(c,0);break}if(h[c.nodeName.toLowerCase()]){e.setStartBefore(c),e.setEndBefore(c);break}g=c,c=b.next()}c||(e.setStart(g,0),e.setEnd(g,0))}else"BR"==a.nodeName?a.nextSibling&&P.isBlock(a.nextSibling)?(e.setStartBefore(a),e.setEndBefore(a)):(e.setStartAfter(a),e.setEndAfter(a)):(e.setStart(a,0),e.setEnd(a,0));Q.setRng(e),P.remove(f),Q.scrollIntoView(a)}}function g(a){var c,d,e,f=E,g=S.getTextInlineElements();if(a||"TABLE"==L||"HR"==L?(c=P.create(a||N),w(b,c)):c=G.cloneNode(!1),e=c,R.keep_styles===!1)P.setAttrib(c,"style",null),P.setAttrib(c,"class",null);else do if(g[f.nodeName]){if("_mce_caret"==f.id)continue;d=f.cloneNode(!1),P.setAttrib(d,"id",""),c.hasChildNodes()?(d.appendChild(c.firstChild),c.appendChild(d)):(e=d,c.appendChild(d))}while((f=f.parentNode)&&f!=D);return k(e),c}function h(a){var b,c,e,f;if(f=q(a,E,F),3==E.nodeType&&(a?f>0:f<E.nodeValue.length))return!1;if(E.parentNode==G&&O&&!a)return!0;if(a&&1==E.nodeType&&E==G.firstChild)return!0;if(l(E,"TABLE")||l(E,"HR"))return O&&!a||!O&&a;for(b=new d(E,G),3==E.nodeType&&(a&&0===f?b.prev():a||f!=E.nodeValue.length||b.next());c=b.current();){if(1===c.nodeType){if(!c.getAttribute("data-mce-bogus")&&(e=c.nodeName.toLowerCase(),T[e]&&"br"!==e))return!1}else if(3===c.nodeType&&!/^[ \t\r\n]*$/.test(c.nodeValue))return!1;a?b.prev():b.next()}return!0}function m(){K!=b.getBody()&&(n(K)&&(N="LI"),I=N?g(N):P.create("BR"),A(K,G,!0)&&A(K,G,!1)?j(K,"LI")?P.insertAfter(I,z(K)):P.replace(I,K):A(K,G,!0)?j(K,"LI")?(P.insertAfter(I,z(K)),I.appendChild(P.doc.createTextNode(" ")),I.appendChild(K)):K.parentNode.insertBefore(I,K):A(K,G,!1)?P.insertAfter(I,z(K)):(K=z(K),C=U.cloneRange(),C.setStartAfter(G),C.setEndAfter(K),J=C.extractContents(),"LI"===N&&i(J,"LI")?(I=J.firstChild,P.insertAfter(J,K)):(P.insertAfter(J,K),P.insertAfter(I,K))),P.remove(G),f(I))}function B(){I=/^(H[1-6]|PRE|FIGURE)$/.test(L)&&"HGROUP"!=M?g(N):g(),R.end_container_on_empty_block&&o(P,K)&&P.isEmpty(G)?I=P.split(K,G):P.insertAfter(I,G),f(I)}var C,D,E,F,G,H,I,J,K,L,M,N,O,P=b.dom,Q=b.selection,R=b.settings,S=b.schema,T=S.getNonEmptyElements(),U=b.selection.getRng();if(new c(P).normalize(U),E=U.startContainer,F=U.startOffset,N=(R.force_p_newlines?"p":"")||R.forced_root_block,N=N?N.toUpperCase():"",H=e.shiftKey,1==E.nodeType&&E.hasChildNodes()&&(O=F>E.childNodes.length-1,E=E.childNodes[Math.min(F,E.childNodes.length-1)]||E,F=O&&3==E.nodeType?E.nodeValue.length:0),D=v(P,E)){if(!P.isBlock(D)&&D!=P.getRoot())return void(N&&!H||t(b,e));if((N&&!H||!N&&H)&&(E=x(b,N,U,E,F)),G=P.getParent(E,P.isBlock),K=G?P.getParent(G.parentNode,P.isBlock):null,L=G?G.nodeName.toUpperCase():"",M=K?K.nodeName.toUpperCase():"","LI"!=M||e.ctrlKey||(G=K,K=K.parentNode,L=M),/^(LI|DT|DD)$/.test(L)){if(!N&&H)return void t(b,e);if(P.isEmpty(G))return void m()}if("PRE"==L&&R.br_in_pre!==!1){if(!H)return void t(b,e)}else if(!N&&!H&&"LI"!=L||N&&H)return void t(b,e);N&&G===b.getBody()||(N=N||"P",a.isCaretContainerBlock(G)?(I=a.showCaretContainerBlock(G),P.isEmpty(G)&&k(G),f(I)):h()?B():h(!0)?(I=G.parentNode.insertBefore(g(),G),f(l(G,"HR")?I:G)):(C=r(U).cloneRange(),C.setEndAfter(G),J=C.extractContents(),u(J),I=J.firstChild,P.insertAfter(J,G),p(P,T,I),y(P,G),P.isEmpty(G)&&k(G),I.normalize(),P.isEmpty(I)?(P.remove(I),B()):f(I)),P.setAttrib(I,"id",""),b.fire("NewBlock",{newBlock:I}))}};return{insert:B}}),g("tinymce.core.keyboard.EnterKey",["tinymce.core.keyboard.InsertNewLine","tinymce.core.util.VK"],function(a,b){var c=function(a){a.typing&&(a.typing=!1,a.add())},d=function(b,d){d.isDefaultPrevented()||(d.preventDefault(),c(b.undoManager),b.undoManager.transact(function(){b.selection.isCollapsed()===!1&&b.execCommand("Delete"),a.insert(b,d)}))},e=function(a){a.on("keydown",function(c){c.keyCode===b.ENTER&&d(a,c)})};return{setup:e}}),g("tinymce.core.keyboard.InsertSpace",["ephox.katamari.api.Fun","tinymce.core.caret.CaretPosition","tinymce.core.dom.NodeType","tinymce.core.keyboard.BoundaryLocation","tinymce.core.keyboard.InlineUtils"],function(a,b,c,d,e){var f=function(a,b){return j(a)&&c.isText(b.container())},g=function(a,b){var c=b.container(),d=b.offset();c.insertData(d,"\xa0"),a.selection.setCursorLocation(c,d+1)},h=function(a,b,c){return!!f(c,b)&&(g(a,b),!0)},i=function(c){var f=a.curry(e.isInlineTarget,c),g=b.fromRangeStart(c.selection.getRng()),i=d.readLocation(f,c.getBody(),g);return i.map(a.curry(h,c,g)).getOr(!1)},j=function(b){return b.fold(a.constant(!1),a.constant(!0),a.constant(!0),a.constant(!1))},k=function(a){return!!a.selection.isCollapsed()&&i(a)};return{insertAtSelection:k}}),g("tinymce.core.keyboard.SpaceKey",["tinymce.core.keyboard.InsertSpace","tinymce.core.keyboard.MatchKeys","tinymce.core.util.VK"],function(a,b,c){var d=function(d,e){b.execute([{keyCode:c.SPACEBAR,action:b.action(a.insertAtSelection,d)}],e).each(function(a){e.preventDefault()})},e=function(a){a.on("keydown",function(b){b.isDefaultPrevented()===!1&&d(a,b)})};return{setup:e}}),g("tinymce.core.keyboard.KeyboardOverrides",["tinymce.core.keyboard.ArrowKeys","tinymce.core.keyboard.BoundarySelection","tinymce.core.keyboard.DeleteBackspaceKeys","tinymce.core.keyboard.EnterKey","tinymce.core.keyboard.SpaceKey"],function(a,b,c,d,e){var f=function(f){var g=b.setupSelectedState(f);a.setup(f,g),c.setup(f,g),d.setup(f),e.setup(f)};return{setup:f}}),g("tinymce.core.NodeChange",["tinymce.core.dom.RangeUtils","tinymce.core.Env","tinymce.core.util.Delay"],function(a,b,c){return function(d){function e(a){var b,c;if(c=d.$(a).parentsUntil(d.getBody()).add(a),c.length===g.length){for(b=c.length;b>=0&&c[b]===g[b];b--);if(b===-1)return g=c,!0}return g=c,!1}var f,g=[];"onselectionchange"in d.getDoc()||d.on("NodeChange Click MouseUp KeyUp Focus",function(b){var c,e;c=d.selection.getRng(),e={startContainer:c.startContainer,startOffset:c.startOffset,endContainer:c.endContainer,endOffset:c.endOffset},"nodechange"!=b.type&&a.compareRanges(e,f)||d.fire("SelectionChange"),f=e}),d.on("contextmenu",function(){d.fire("SelectionChange")}),d.on("SelectionChange",function(){var a=d.selection.getStart(!0);!a||!b.range&&d.selection.isCollapsed()||!e(a)&&d.dom.isChildOf(a,d.getBody())&&d.nodeChanged({selectionChange:!0})}),d.on("MouseUp",function(a){a.isDefaultPrevented()||("IMG"==d.selection.getNode().nodeName?c.setEditorTimeout(d,function(){d.nodeChanged()}):d.nodeChanged())}),this.nodeChanged=function(a){var b,c,e,f=d.selection;d.initialized&&f&&!d.settings.disable_nodechange&&!d.readonly&&(e=d.getBody(),b=f.getStart(!0)||e,b.ownerDocument==d.getDoc()&&d.dom.isChildOf(b,e)||(b=e),c=[],d.dom.getParent(b,function(a){return a===e||void c.push(a)}),a=a||{},a.element=b,a.parents=c,d.fire("NodeChange",a))}}}),g("tinymce.core.dom.MousePosition",[],function(){var a=function(a){var b,c,d,e;return e=a.getBoundingClientRect(),b=a.ownerDocument,c=b.documentElement,d=b.defaultView,{top:e.top+d.pageYOffset-c.clientTop,left:e.left+d.pageXOffset-c.clientLeft}},b=function(b){return b.inline?a(b.getBody()):{left:0,top:0}},c=function(a){var b=a.getBody();return a.inline?{left:b.scrollLeft,top:b.scrollTop}:{left:0,top:0}},d=function(a){var b=a.getBody(),c=a.getDoc().documentElement,d={left:b.scrollLeft,top:b.scrollTop},e={left:b.scrollLeft||c.scrollLeft,top:b.scrollTop||c.scrollTop};return a.inline?d:e},e=function(b,c){if(c.target.ownerDocument!==b.getDoc()){var e=a(b.getContentAreaContainer()),f=d(b);return{left:c.pageX-e.left+f.left,top:c.pageY-e.top+f.top}}return{left:c.pageX,top:c.pageY}},f=function(a,b,c){return{pageX:c.left-a.left+b.left,pageY:c.top-a.top+b.top}},g=function(a,d){return f(b(a),c(a),e(a,d))};return{calc:g}}),g("tinymce.core.DragDropOverrides",["tinymce.core.dom.NodeType","tinymce.core.util.Arr","tinymce.core.util.Fun","tinymce.core.util.Delay","tinymce.core.dom.DOMUtils","tinymce.core.dom.MousePosition"],function(a,b,c,d,e,f){var g=a.isContentEditableFalse,h=a.isContentEditableTrue,i=function(a,b){return g(b)&&b!==a},j=function(a,b,c){return b!==c&&!a.dom.isChildOf(b,c)&&!g(b)},k=function(a){var b=a.cloneNode(!0);return b.removeAttribute("data-mce-selected"),b},l=function(a,b,c,d){var e=b.cloneNode(!0);a.dom.setStyles(e,{width:c,height:d}),a.dom.setAttrib(e,"data-mce-selected",null);var f=a.dom.create("div",{"class":"mce-drag-container","data-mce-bogus":"all",unselectable:"on",contenteditable:"false"});return a.dom.setStyles(f,{position:"absolute",opacity:.5,overflow:"hidden",border:0,padding:0,margin:0,width:c,height:d}),a.dom.setStyles(e,{margin:0,boxSizing:"border-box"}),f.appendChild(e),f},m=function(a,b){a.parentNode!==b&&b.appendChild(a)},n=function(a,b,c,d,e,f){var g=0,h=0;a.style.left=b.pageX+"px",a.style.top=b.pageY+"px",b.pageX+c>e&&(g=b.pageX+c-e),b.pageY+d>f&&(h=b.pageY+d-f),a.style.width=c-g+"px",a.style.height=d-h+"px"},o=function(a){a&&a.parentNode&&a.parentNode.removeChild(a)},p=function(a){return 0===a.button},q=function(a){return a.element},r=function(a,b){return{pageX:b.pageX-a.relX,pageY:b.pageY+5}},s=function(a,d){return function(e){if(p(e)){var f=b.find(d.dom.getParents(e.target),c.or(g,h));if(i(d.getBody(),f)){var j=d.dom.getPos(f),k=d.getBody(),m=d.getDoc().documentElement;a.element=f,a.screenX=e.screenX,a.screenY=e.screenY,a.maxX=(d.inline?k.scrollWidth:m.offsetWidth)-2,a.maxY=(d.inline?k.scrollHeight:m.offsetHeight)-2,a.relX=e.pageX-j.x,a.relY=e.pageY-j.y,a.width=f.offsetWidth,a.height=f.offsetHeight,a.ghost=l(d,f,a.width,a.height)}}}},t=function(a,b){var c=d.throttle(function(a,c){b._selectionOverrides.hideFakeCaret(),b.selection.placeCaretAt(a,c)},0);return function(d){var e=Math.max(Math.abs(d.screenX-a.screenX),Math.abs(d.screenY-a.screenY));if(q(a)&&!a.dragging&&e>10){var g=b.fire("dragstart",{target:a.element});if(g.isDefaultPrevented())return;a.dragging=!0,b.focus()}if(a.dragging){var h=r(a,f.calc(b,d));m(a.ghost,b.getBody()),n(a.ghost,h,a.width,a.height,a.maxX,a.maxY),c(d.clientX,d.clientY)}}},u=function(a){var b=a.getSel().getRangeAt(0),c=b.startContainer;return 3===c.nodeType?c.parentNode:c},v=function(a,b){return function(c){if(a.dragging&&j(b,u(b.selection),a.element)){var d=k(a.element),e=b.fire("drop",{targetClone:d,clientX:c.clientX,clientY:c.clientY});e.isDefaultPrevented()||(d=e.targetClone,b.undoManager.transact(function(){o(a.element),b.insertContent(b.dom.getOuterHTML(d)),b._selectionOverrides.hideFakeCaret()}))}x(a)}},w=function(a,b){return function(){x(a),a.dragging&&b.fire("dragend")}},x=function(a){a.dragging=!1,a.element=null,o(a.ghost)},y=function(a){var b,c,d,f,g,h,i={};b=e.DOM,h=document,c=s(i,a),d=t(i,a),f=v(i,a),g=w(i,a),a.on("mousedown",c),a.on("mousemove",d),a.on("mouseup",f),b.bind(h,"mousemove",d),b.bind(h,"mouseup",g),a.on("remove",function(){b.unbind(h,"mousemove",d),b.unbind(h,"mouseup",g)})},z=function(a){a.on("drop",function(b){var c="undefined"!=typeof b.clientX?a.getDoc().elementFromPoint(b.clientX,b.clientY):null;(g(c)||g(a.dom.getContentEditableParent(c)))&&b.preventDefault()})},A=function(a){y(a),z(a)};return{init:A}}),g("tinymce.core.caret.FakeCaret",["tinymce.core.caret.CaretContainer","tinymce.core.caret.CaretContainerRemove","tinymce.core.caret.CaretPosition","tinymce.core.dom.DomQuery","tinymce.core.dom.NodeType","tinymce.core.dom.RangeUtils","tinymce.core.geom.ClientRect","tinymce.core.util.Delay"],function(a,b,c,d,e,f,g,h){var i=e.isContentEditableFalse,j=function(a){return a&&/^(TD|TH)$/i.test(a.nodeName)};return function(c,e){function f(a,b){var d,e,f,h,i,j=g.collapse(a.getBoundingClientRect(),b);return"BODY"==c.tagName?(d=c.ownerDocument.documentElement,e=c.scrollLeft||d.scrollLeft,f=c.scrollTop||d.scrollTop):(i=c.getBoundingClientRect(),e=c.scrollLeft-i.left,f=c.scrollTop-i.top),j.left+=e,j.right+=e,j.top+=f,j.bottom+=f,j.width=1,h=a.offsetWidth-a.clientWidth,h>0&&(b&&(h*=-1),j.left+=h,j.right+=h),j}function k(){var b,e,f,g,h;for(b=d("*[contentEditable=false]",c),g=0;g<b.length;g++)e=b[g],f=e.previousSibling,a.endsWithCaretContainer(f)&&(h=f.data,1==h.length?f.parentNode.removeChild(f):f.deleteData(h.length-1,1)),f=e.nextSibling,a.startsWithCaretContainer(f)&&(h=f.data,1==h.length?f.parentNode.removeChild(f):f.deleteData(0,1));return null}function l(b,g){var h,k;return m(),j(g)?null:e(g)?(s=a.insertBlock("p",g,b),h=f(g,b),d(s).css("top",h.top),r=d('<div class="mce-visual-caret" data-mce-bogus="all"></div>').css(h).appendTo(c),b&&r.addClass("mce-visual-caret-before"),n(),k=g.ownerDocument.createRange(),k.setStart(s,0),k.setEnd(s,0),k):(s=a.insertInline(g,b),k=g.ownerDocument.createRange(),i(s.nextSibling)?(k.setStart(s,0),k.setEnd(s,0)):(k.setStart(s,1),k.setEnd(s,1)),k)}function m(){k(),s&&(b.remove(s),s=null),r&&(r.remove(),r=null),clearInterval(q)}function n(){q=h.setInterval(function(){d("div.mce-visual-caret",c).toggleClass("mce-visual-caret-hidden")},500)}function o(){h.clearInterval(q)}function p(){return".mce-visual-caret {position: absolute;background-color: black;background-color: currentcolor;}.mce-visual-caret-hidden {display: none;}*[data-mce-caret] {position: absolute;left: -1000px;right: auto;top: 0;margin: 0;padding: 0;}"}var q,r,s;return{show:l,hide:m,getCss:p,destroy:o}}}),g("tinymce.core.SelectionOverrides",["ephox.katamari.api.Arr","ephox.sugar.api.dom.Remove","ephox.sugar.api.node.Element","ephox.sugar.api.properties.Attr","ephox.sugar.api.search.SelectorFilter","ephox.sugar.api.search.SelectorFind","tinymce.core.DragDropOverrides","tinymce.core.EditorView","tinymce.core.Env","tinymce.core.caret.CaretContainer","tinymce.core.caret.CaretPosition","tinymce.core.caret.CaretUtils","tinymce.core.caret.CaretWalker","tinymce.core.caret.FakeCaret","tinymce.core.caret.LineUtils","tinymce.core.dom.ElementType","tinymce.core.dom.NodeType","tinymce.core.dom.RangePoint","tinymce.core.keyboard.CefUtils","tinymce.core.util.Delay","tinymce.core.util.VK"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u){function v(q){function v(a){return q.dom.hasClass(a,"mce-offscreen-selection")}function A(){var a=q.dom.get(T);return a?a.getElementsByTagName("*")[0]:a}function B(a){return q.dom.isBlock(a)}function C(a){a&&q.selection.setRng(a)}function D(){return q.selection.getRng()}function E(a,b){q.selection.scrollIntoView(a,b)}function F(a,b,c){var d;return d=q.fire("ShowCaret",{target:b,direction:a,before:c}),d.isDefaultPrevented()?null:(E(b,a===-1),S.show(c,b))}function G(a,b){return b=l.normalizeRange(a,R,b),a==-1?k.fromRangeStart(b):k.fromRangeEnd(b)}function H(a){a.hasAttribute("data-mce-caret")&&(j.showCaretContainerBlock(a),C(D()),E(a[0]))}function I(){function a(a){for(var b=q.getBody();a&&a!=b;){if(w(a)||x(a))return a;a=a.parentNode}return null}function b(b){var c=!1;b.on("touchstart",function(){c=!1}),b.on("touchmove",function(){c=!0}),b.on("touchend",function(d){var e=a(d.target);x(e)&&(c||(d.preventDefault(),M(s.selectNode(b,e))))})}q.on("mouseup",function(a){var b=D();b.collapsed&&h.isXYInContentArea(q,a.clientX,a.clientY)&&C(s.renderCaretAtRange(q,b))}),q.on("click",function(b){var c;c=a(b.target),c&&(x(c)&&(b.preventDefault(),q.focus()),w(c)&&q.dom.isChildOf(c,q.selection.getNode())&&N())}),q.on("blur NewBlock",function(){N(),P()});var d=function(a){var b=new m(a);if(!a.firstChild)return!1;var c=k.before(a.firstChild),d=b.next(c);return d&&!z(d)&&!y(d)},e=function(a,b){var c=q.dom.getParent(a,q.dom.isBlock),d=q.dom.getParent(b,q.dom.isBlock);return c===d},f=function(a,b){var c=q.dom.getParent(a,q.dom.isBlock),f=q.dom.getParent(b,q.dom.isBlock);return c&&!e(c,f)&&d(c)};b(q),q.on("mousedown",function(b){var d;if(h.isXYInContentArea(q,b.clientX,b.clientY)!==!1)if(d=a(b.target))x(d)?(b.preventDefault(),M(s.selectNode(q,d))):(N(),w(d)&&b.shiftKey||r.isXYWithinRange(b.clientX,b.clientY,q.selection.getRng())||(p.isVoid(c.fromDom(b.target))?q.selection.select(b.target):q.selection.placeCaretAt(b.clientX,b.clientY)));else{N(),P();var e=o.closestCaret(R,b.clientX,b.clientY);e&&(f(b.target,e.node)||(b.preventDefault(),q.getBody().focus(),C(F(1,e.node,e.before))))}}),q.on("keypress",function(a){if(!u.modifierPressed(a))switch(a.keyCode){default:x(q.selection.getNode())&&a.preventDefault()}}),q.on("getSelectionRange",function(a){var b=a.range;if(Q){if(!Q.parentNode)return void(Q=null);b=b.cloneRange(),b.selectNode(Q),a.range=b}}),q.on("setSelectionRange",function(a){var b;b=M(a.range,a.forward),b&&(a.range=b)}),q.on("AfterSetSelectionRange",function(a){var b=a.range;L(b)||P(),v(b.startContainer.parentNode)||N()}),q.on("focus",function(){t.setEditorTimeout(q,function(){q.selection.setRng(s.renderRangeCaret(q,q.selection.getRng()))},0)}),q.on("copy",function(a){var b=a.clipboardData;if(!a.isDefaultPrevented()&&a.clipboardData&&!i.ie){var c=A();c&&(a.preventDefault(),b.clearData(),b.setData("text/html",c.outerHTML),b.setData("text/plain",c.outerText))}}),g.init(q)}function J(){var a=q.contentStyles,b=".mce-content-body";a.push(S.getCss()),a.push(b+" .mce-offscreen-selection {position: absolute;left: -9999999999px;max-width: 1000000px;}"+b+" *[contentEditable=false] {cursor: default;}"+b+" *[contentEditable=true] {cursor: text;}")}function K(a){return j.isCaretContainer(a)||j.startsWithCaretContainer(a)||j.endsWithCaretContainer(a)}function L(a){return K(a.startContainer)||K(a.endContainer)}function M(b,g){var h,j,k,l,m,n,o,p,r,s,t=q.$,u=q.dom;if(!b)return null;if(b.collapsed){if(!L(b))if(g===!1){if(p=G(-1,b),x(p.getNode(!0)))return F(-1,p.getNode(!0),!1);if(x(p.getNode()))return F(-1,p.getNode(),!p.isAtEnd())}else{if(p=G(1,b),x(p.getNode()))return F(1,p.getNode(),!p.isAtEnd());if(x(p.getNode(!0)))return F(1,p.getNode(!0),!1)}return null}return l=b.startContainer,m=b.startOffset,n=b.endOffset,3==l.nodeType&&0==m&&x(l.parentNode)&&(l=l.parentNode,m=u.nodeIndex(l),l=l.parentNode),1!=l.nodeType?null:(n==m+1&&(h=l.childNodes[m]),x(h)?(r=s=h.cloneNode(!0),o=q.fire("ObjectSelected",{target:h,targetClone:r}),o.isDefaultPrevented()?null:(j=f.descendant(c.fromDom(q.getBody()),"#"+T).fold(function(){return t([])},function(a){return t([a.dom()])}),r=o.targetClone,0===j.length&&(j=t('<div data-mce-bogus="all" class="mce-offscreen-selection"></div>').attr("id",T),j.appendTo(q.getBody())),b=q.dom.createRng(),r===s&&i.ie?(j.empty().append('<p style="font-size: 0" data-mce-bogus="all">\xa0</p>').append(r),b.setStartAfter(j[0].firstChild.firstChild),b.setEndAfter(r)):(j.empty().append("\xa0").append(r).append("\xa0"),b.setStart(j[0].firstChild,1),b.setEnd(j[0].lastChild,0)),j.css({top:u.getPos(h,q.getBody()).y}),j[0].focus(),k=q.selection.getSel(),k.removeAllRanges(),k.addRange(b),a.each(e.descendants(c.fromDom(q.getBody()),"*[data-mce-selected]"),function(a){d.remove(a,"data-mce-selected")}),h.setAttribute("data-mce-selected",1),Q=h,P(),b)):null)}function N(){Q&&(Q.removeAttribute("data-mce-selected"),f.descendant(c.fromDom(q.getBody()),"#"+T).each(b.remove),Q=null)}function O(){S.destroy(),Q=null}function P(){S.hide()}var Q,R=q.getBody(),S=new n(q.getBody(),B),T="sel-"+q.dom.uniqueId();return i.ceFalse&&(I(),J()),{showCaret:F,showBlockCaretContainer:H,hideFakeCaret:P,destroy:O}}var w=q.isContentEditableTrue,x=q.isContentEditableFalse,y=l.isAfterContentEditableFalse,z=l.isBeforeContentEditableFalse;return v}),g("tinymce.core.undo.Diff",[],function(){var a=0,b=1,c=2,d=function(d,e){var f=d.length+e.length+2,g=new Array(f),h=new Array(f),i=function(a,b,c){return{start:a,end:b,diag:c}},j=function(f,g,h,i,k){var m=l(f,g,h,i);if(null===m||m.start===g&&m.diag===g-i||m.end===f&&m.diag===f-h)for(var n=f,o=h;n<g||o<i;)n<g&&o<i&&d[n]===e[o]?(k.push([a,d[n]]),++n,++o):g-f>i-h?(k.push([c,d[n]]),++n):(k.push([b,e[o]]),++o);else{j(f,m.start,h,m.start-m.diag,k);for(var p=m.start;p<m.end;++p)k.push([a,d[p]]);j(m.end,g,m.end-m.diag,i,k)}},k=function(a,b,c,f){for(var g=a;g-b<f&&g<c&&d[g]===e[g-b];)++g;return i(a,g,b)},l=function(a,b,c,f){ -var i=b-a,j=f-c;if(0===i||0===j)return null;var l=i-j,m=j+i,n=(m%2===0?m:m+1)/2;g[1+n]=a,h[1+n]=b+1;for(var o=0;o<=n;++o){for(var p=-o;p<=o;p+=2){var q=p+n;p===-o||p!=o&&g[q-1]<g[q+1]?g[q]=g[q+1]:g[q]=g[q-1]+1;for(var r=g[q],s=r-a+c-p;r<b&&s<f&&d[r]===e[s];)g[q]=++r,++s;if(l%2!=0&&l-o<=p&&p<=l+o&&h[q-l]<=g[q])return k(h[q-l],p+a-c,b,f)}for(p=l-o;p<=l+o;p+=2){for(q=p+n-l,p===l-o||p!=l+o&&h[q+1]<=h[q-1]?h[q]=h[q+1]-1:h[q]=h[q-1],r=h[q]-1,s=r-a+c-p;r>=a&&s>=c&&d[r]===e[s];)h[q]=r--,s--;if(l%2===0&&-o<=p&&p<=o&&h[q]<=g[q+l])return k(h[q],p+a-c,b,f)}}},m=[];return j(0,d.length,0,e.length,m),m};return{KEEP:a,DELETE:c,INSERT:b,diff:d}}),g("tinymce.core.undo.Fragments",["tinymce.core.util.Arr","tinymce.core.html.Entities","tinymce.core.undo.Diff"],function(a,b,c){var d=function(a){return 1===a.nodeType?a.outerHTML:3===a.nodeType?b.encodeRaw(a.data,!1):8===a.nodeType?"<!--"+a.data+"-->":""},e=function(a){var b,c,d;for(d=document.createElement("div"),b=document.createDocumentFragment(),a&&(d.innerHTML=a);c=d.firstChild;)b.appendChild(c);return b},f=function(a,b,c){var d=e(b);if(a.hasChildNodes()&&c<a.childNodes.length){var f=a.childNodes[c];f.parentNode.insertBefore(d,f)}else a.appendChild(d)},g=function(a,b){if(a.hasChildNodes()&&b<a.childNodes.length){var c=a.childNodes[b];c.parentNode.removeChild(c)}},h=function(b,d){var e=0;a.each(b,function(a){a[0]===c.KEEP?e++:a[0]===c.INSERT?(f(d,a[1],e),e++):a[0]===c.DELETE&&g(d,e)})},i=function(b){return a.filter(a.map(b.childNodes,d),function(a){return a.length>0})},j=function(b,e){var f=a.map(e.childNodes,d);return h(c.diff(f,b),e),e};return{read:i,write:j}}),g("tinymce.core.undo.Levels",["tinymce.core.util.Arr","tinymce.core.undo.Fragments"],function(a,b){var c=function(a){return a.indexOf("</iframe>")!==-1},d=function(a){return{type:"fragmented",fragments:a,content:"",bookmark:null,beforeBookmark:null}},e=function(a){return{type:"complete",fragments:null,content:a,bookmark:null,beforeBookmark:null}},f=function(f){var g,h,i;return g=b.read(f.getBody()),i=a.map(g,function(a){return f.serializer.trimContent(a)}),h=i.join(""),c(h)?d(i):e(h)},g=function(a,c,d){"fragmented"===c.type?b.write(c.fragments,a.getBody()):a.setContent(c.content,{format:"raw"}),a.selection.moveToBookmark(d?c.beforeBookmark:c.bookmark)},h=function(a){return"fragmented"===a.type?a.fragments.join(""):a.content},i=function(a,b){return!!a&&!!b&&h(a)===h(b)};return{createFragmentedLevel:d,createCompleteLevel:e,createFromEditor:f,applyToEditor:g,isEq:i}}),g("tinymce.core.UndoManager",["tinymce.core.util.VK","tinymce.core.util.Tools","tinymce.core.undo.Levels"],function(a,b,c){return function(a){function d(b){a.setDirty(b)}function e(a){n(!1),i.add({},a)}function f(){i.typing&&(n(!1),i.add())}var g,h,i=this,j=0,k=[],l=0,m=function(){return 0===l},n=function(a){m()&&(i.typing=a)};return a.on("init",function(){i.add()}),a.on("BeforeExecCommand",function(a){var b=a.command;"Undo"!==b&&"Redo"!==b&&"mceRepaint"!==b&&(f(),i.beforeChange())}),a.on("ExecCommand",function(a){var b=a.command;"Undo"!==b&&"Redo"!==b&&"mceRepaint"!==b&&e(a)}),a.on("ObjectResizeStart Cut",function(){i.beforeChange()}),a.on("SaveContent ObjectResized blur",e),a.on("DragEnd",e),a.on("KeyUp",function(b){var f=b.keyCode;b.isDefaultPrevented()||((f>=33&&f<=36||f>=37&&f<=40||45===f||b.ctrlKey)&&(e(),a.nodeChanged()),46!==f&&8!==f||a.nodeChanged(),h&&i.typing&&c.isEq(c.createFromEditor(a),k[0])===!1&&(a.isDirty()===!1&&(d(!0),a.fire("change",{level:k[0],lastLevel:null})),a.fire("TypingUndo"),h=!1,a.nodeChanged()))}),a.on("KeyDown",function(a){var b=a.keyCode;if(!a.isDefaultPrevented()){if(b>=33&&b<=36||b>=37&&b<=40||45===b)return void(i.typing&&e(a));var c=a.ctrlKey&&!a.altKey||a.metaKey;!(b<16||b>20)||224===b||91===b||i.typing||c||(i.beforeChange(),n(!0),i.add({},a),h=!0)}}),a.on("MouseDown",function(a){i.typing&&e(a)}),a.addShortcut("meta+z","","Undo"),a.addShortcut("meta+y,meta+shift+z","","Redo"),a.on("AddUndo Undo Redo ClearUndos",function(b){b.isDefaultPrevented()||a.nodeChanged()}),i={data:k,typing:!1,beforeChange:function(){m()&&(g=a.selection.getBookmark(2,!0))},add:function(e,f){var h,i,l,n=a.settings;if(l=c.createFromEditor(a),e=e||{},e=b.extend(e,l),m()===!1||a.removed)return null;if(i=k[j],a.fire("BeforeAddUndo",{level:e,lastLevel:i,originalEvent:f}).isDefaultPrevented())return null;if(i&&c.isEq(i,e))return null;if(k[j]&&(k[j].beforeBookmark=g),n.custom_undo_redo_levels&&k.length>n.custom_undo_redo_levels){for(h=0;h<k.length-1;h++)k[h]=k[h+1];k.length--,j=k.length}e.bookmark=a.selection.getBookmark(2,!0),j<k.length-1&&(k.length=j+1),k.push(e),j=k.length-1;var o={level:e,lastLevel:i,originalEvent:f};return a.fire("AddUndo",o),j>0&&(d(!0),a.fire("change",o)),e},undo:function(){var b;return i.typing&&(i.add(),i.typing=!1,n(!1)),j>0&&(b=k[--j],c.applyToEditor(a,b,!0),d(!0),a.fire("undo",{level:b})),b},redo:function(){var b;return j<k.length-1&&(b=k[++j],c.applyToEditor(a,b,!1),d(!0),a.fire("redo",{level:b})),b},clear:function(){k=[],j=0,i.typing=!1,i.data=k,a.fire("ClearUndos")},hasUndo:function(){return j>0||i.typing&&k[0]&&!c.isEq(c.createFromEditor(a),k[0])},hasRedo:function(){return j<k.length-1&&!i.typing},transact:function(a){return f(),i.beforeChange(),i.ignore(a),i.add()},ignore:function(a){try{l++,a()}finally{l--}},extra:function(b,d){var e,f;i.transact(b)&&(f=k[j].bookmark,e=k[j-1],c.applyToEditor(a,e,!0),i.transact(d)&&(k[j-1].beforeBookmark=f))}}}}),g("tinymce.core.dom.NodePath",["tinymce.core.dom.DOMUtils"],function(a){function b(b,c,d){for(var e=[];c&&c!=b;c=c.parentNode)e.push(a.nodeIndex(c,d));return e}function c(a,b){var c,d,e;for(d=a,c=b.length-1;c>=0;c--){if(e=d.childNodes,b[c]>e.length-1)return null;d=e[b[c]]}return d}return{create:b,resolve:c}}),g("tinymce.core.util.Quirks",["tinymce.core.util.VK","tinymce.core.dom.RangeUtils","tinymce.core.dom.TreeWalker","tinymce.core.dom.NodePath","tinymce.core.html.Node","tinymce.core.html.Entities","tinymce.core.Env","tinymce.core.util.Tools","tinymce.core.util.Delay","tinymce.core.caret.CaretContainer","tinymce.core.caret.CaretPosition","tinymce.core.caret.CaretWalker"],function(a,b,c,d,e,f,g,h,i,j,k,l){return function(c){function d(a,b){try{c.getDoc().execCommand(a,!1,b)}catch(d){}}function k(){var a=c.getDoc().documentMode;return a?a:6}function l(a){return a.isDefaultPrevented()}function m(a){var b,d;a.dataTransfer&&(c.selection.isCollapsed()&&"IMG"==a.target.tagName&&Y.select(a.target),b=c.selection.getContent(),b.length>0&&(d=da+escape(c.id)+","+escape(b),a.dataTransfer.setData(ea,d)))}function n(a){var b;return a.dataTransfer&&(b=a.dataTransfer.getData(ea),b&&b.indexOf(da)>=0)?(b=b.substr(da.length).split(","),{id:unescape(b[0]),html:unescape(b[1])}):null}function o(a,b){c.queryCommandSupported("mceInsertClipboardContent")?c.execCommand("mceInsertClipboardContent",!1,{content:a,internal:b}):c.execCommand("mceInsertContent",!1,a)}function p(){function a(a){var b=X.create("body"),c=a.cloneContents();return b.appendChild(c),Y.serializer.serialize(b,{format:"html"})}function d(d){if(!d.setStart){if(d.item)return!1;var e=d.duplicate();return e.moveToElementText(c.getBody()),b.compareRanges(d,e)}var f=a(d),g=X.createRng();g.selectNode(c.getBody());var h=a(g);return f===h}c.on("keydown",function(a){var b,e,f=a.keyCode;if(!l(a)&&(f==W||f==V)){if(b=c.selection.isCollapsed(),e=c.getBody(),b&&!X.isEmpty(e))return;if(!b&&!d(c.selection.getRng()))return;a.preventDefault(),c.setContent(""),e.firstChild&&X.isBlock(e.firstChild)?c.selection.setCursorLocation(e.firstChild,0):c.selection.setCursorLocation(e,0),c.nodeChanged()}})}function q(){c.shortcuts.add("meta+a",null,"SelectAll")}function r(){c.settings.content_editable||X.bind(c.getDoc(),"mousedown mouseup",function(a){var b;if(a.target==c.getDoc().documentElement)if(b=Y.getRng(),c.getBody().focus(),"mousedown"==a.type){if(j.isCaretContainer(b.startContainer))return;Y.placeCaretAt(a.clientX,a.clientY)}else Y.setRng(b)})}function s(){c.on("keydown",function(a){if(!l(a)&&a.keyCode===V){if(!c.getBody().getElementsByTagName("hr").length)return;if(Y.isCollapsed()&&0===Y.getRng(!0).startOffset){var b=Y.getNode(),d=b.previousSibling;if("HR"==b.nodeName)return X.remove(b),void a.preventDefault();d&&d.nodeName&&"hr"===d.nodeName.toLowerCase()&&(X.remove(d),a.preventDefault())}}})}function t(){window.Range.prototype.getClientRects||c.on("mousedown",function(a){if(!l(a)&&"HTML"===a.target.nodeName){var b=c.getBody();b.blur(),i.setEditorTimeout(c,function(){b.focus()})}})}function u(){c.on("click",function(a){var b=a.target;/^(IMG|HR)$/.test(b.nodeName)&&"false"!==X.getContentEditableParent(b)&&(a.preventDefault(),c.selection.select(b),c.nodeChanged()),"A"==b.nodeName&&X.hasClass(b,"mce-item-anchor")&&(a.preventDefault(),Y.select(b))})}function v(){function a(){var a=X.getAttribs(Y.getStart().cloneNode(!1));return function(){var b=Y.getStart();b!==c.getBody()&&(X.setAttrib(b,"style",null),U(a,function(a){b.setAttributeNode(a.cloneNode(!0))}))}}function b(){return!Y.isCollapsed()&&X.getParent(Y.getStart(),X.isBlock)!=X.getParent(Y.getEnd(),X.isBlock)}c.on("keypress",function(d){var e;if(!l(d)&&(8==d.keyCode||46==d.keyCode)&&b())return e=a(),c.getDoc().execCommand("delete",!1,null),e(),d.preventDefault(),!1}),X.bind(c.getDoc(),"cut",function(d){var e;!l(d)&&b()&&(e=a(),i.setEditorTimeout(c,function(){e()}))})}function w(){document.body.setAttribute("role","application")}function x(){c.on("keydown",function(a){if(!l(a)&&a.keyCode===V&&Y.isCollapsed()&&0===Y.getRng(!0).startOffset){var b=Y.getNode().previousSibling;if(b&&b.nodeName&&"table"===b.nodeName.toLowerCase())return a.preventDefault(),!1}})}function y(){k()>7||(d("RespectVisibilityInDesign",!0),c.contentStyles.push(".mceHideBrInPre pre br {display: none}"),X.addClass(c.getBody(),"mceHideBrInPre"),$.addNodeFilter("pre",function(a){for(var b,c,d,f,g=a.length;g--;)for(b=a[g].getAll("br"),c=b.length;c--;)d=b[c],f=d.prev,f&&3===f.type&&"\n"!=f.value.charAt(f.value-1)?f.value+="\n":d.parent.insert(new e("#text",3),d,!0).value="\n"}),_.addNodeFilter("pre",function(a){for(var b,c,d,e,f=a.length;f--;)for(b=a[f].getAll("br"),c=b.length;c--;)d=b[c],e=d.prev,e&&3==e.type&&(e.value=e.value.replace(/\r?\n$/,""))}))}function z(){X.bind(c.getBody(),"mouseup",function(){var a,b=Y.getNode();"IMG"==b.nodeName&&((a=X.getStyle(b,"width"))&&(X.setAttrib(b,"width",a.replace(/[^0-9%]+/g,"")),X.setStyle(b,"width","")),(a=X.getStyle(b,"height"))&&(X.setAttrib(b,"height",a.replace(/[^0-9%]+/g,"")),X.setStyle(b,"height","")))})}function A(){c.on("keydown",function(b){var d,e,f,g,h;if(!l(b)&&b.keyCode==a.BACKSPACE&&(d=Y.getRng(),e=d.startContainer,f=d.startOffset,g=X.getRoot(),h=e,d.collapsed&&0===f)){for(;h&&h.parentNode&&h.parentNode.firstChild==h&&h.parentNode!=g;)h=h.parentNode;"BLOCKQUOTE"===h.tagName&&(c.formatter.toggle("blockquote",null,h),d=X.createRng(),d.setStart(e,0),d.setEnd(e,0),Y.setRng(d))}})}function B(){function a(){S(),d("StyleWithCSS",!1),d("enableInlineTableEditing",!1),Z.object_resizing||d("enableObjectResizing",!1)}Z.readonly||c.on("BeforeExecCommand MouseDown",a)}function C(){function a(){U(X.select("a"),function(a){var b=a.parentNode,c=X.getRoot();if(b.lastChild===a){for(;b&&!X.isBlock(b);){if(b.parentNode.lastChild!==b||b===c)return;b=b.parentNode}X.add(b,"br",{"data-mce-bogus":1})}})}c.on("SetContent ExecCommand",function(b){"setcontent"!=b.type&&"mceInsertLink"!==b.command||a()})}function D(){Z.forced_root_block&&c.on("init",function(){d("DefaultParagraphSeparator",Z.forced_root_block)})}function E(){c.on("keydown",function(a){var b;l(a)||a.keyCode!=V||(b=c.getDoc().selection.createRange(),b&&b.item&&(a.preventDefault(),c.undoManager.beforeChange(),X.remove(b.item(0)),c.undoManager.add()))})}function F(){var a;k()>=10&&(a="",U("p div h1 h2 h3 h4 h5 h6".split(" "),function(b,c){a+=(c>0?",":"")+b+":empty"}),c.contentStyles.push(a+"{padding-right: 1px !important}"))}function G(){k()<9&&($.addNodeFilter("noscript",function(a){for(var b,c,d=a.length;d--;)b=a[d],c=b.firstChild,c&&b.attr("data-mce-innertext",c.value)}),_.addNodeFilter("noscript",function(a){for(var b,c,d,g=a.length;g--;)b=a[g],c=a[g].firstChild,c?c.value=f.decode(c.value):(d=b.attributes.map["data-mce-innertext"],d&&(b.attr("data-mce-innertext",null),c=new e("#text",3),c.value=d,c.raw=!0,b.append(c)))}))}function H(){function a(a,b){var c=h.createTextRange();try{c.moveToPoint(a,b)}catch(d){c=null}return c}function b(b){var d;b.button?(d=a(b.x,b.y),d&&(d.compareEndPoints("StartToStart",e)>0?d.setEndPoint("StartToStart",e):d.setEndPoint("EndToEnd",e),d.select())):c()}function c(){var a=g.selection.createRange();e&&!a.item&&0===a.compareEndPoints("StartToEnd",a)&&e.select(),X.unbind(g,"mouseup",c),X.unbind(g,"mousemove",b),e=d=0}var d,e,f,g=X.doc,h=g.body;g.documentElement.unselectable=!0,X.bind(g,"mousedown contextmenu",function(h){if("HTML"===h.target.nodeName){if(d&&c(),f=g.documentElement,f.scrollHeight>f.clientHeight)return;d=1,e=a(h.x,h.y),e&&(X.bind(g,"mouseup",c),X.bind(g,"mousemove",b),X.getRoot().focus(),e.select())}})}function I(){c.on("keyup focusin mouseup",function(b){65==b.keyCode&&a.metaKeyPressed(b)||("keyup"!==b.type||c.selection.isCollapsed())&&Y.normalize()},!0)}function J(){c.contentStyles.push("img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}")}function K(){c.inline||c.on("keydown",function(){document.activeElement==document.body&&c.getWin().focus()})}function L(){c.inline||(c.contentStyles.push("body {min-height: 150px}"),c.on("click",function(a){var b;if("HTML"==a.target.nodeName){if(g.ie>11)return void c.getBody().focus();b=c.selection.getRng(),c.getBody().focus(),c.selection.setRng(b),c.selection.normalize(),c.nodeChanged()}}))}function M(){g.mac&&c.on("keydown",function(b){!a.metaKeyPressed(b)||b.shiftKey||37!=b.keyCode&&39!=b.keyCode||(b.preventDefault(),c.selection.getSel().modify("move",37==b.keyCode?"backward":"forward","lineboundary"))})}function N(){d("AutoUrlDetect",!1)}function O(){c.on("click",function(a){var b=a.target;do if("A"===b.tagName)return void a.preventDefault();while(b=b.parentNode)}),c.contentStyles.push(".mce-content-body {-webkit-touch-callout: none}")}function P(){c.on("init",function(){c.dom.bind(c.getBody(),"submit",function(a){a.preventDefault()})})}function Q(){$.addNodeFilter("br",function(a){for(var b=a.length;b--;)"Apple-interchange-newline"==a[b].attr("class")&&a[b].remove()})}function R(){c.on("dragstart",function(a){m(a)}),c.on("drop",function(a){if(!l(a)){var d=n(a);if(d&&d.id!=c.id){a.preventDefault();var e=b.getCaretRangeFromPoint(a.x,a.y,c.getDoc());Y.setRng(e),o(d.html,!0)}}})}function S(){}function T(){var a;return!aa||c.removed?0:(a=c.selection.getSel(),!a||!a.rangeCount||0===a.rangeCount)}var U=h.each,V=a.BACKSPACE,W=a.DELETE,X=c.dom,Y=c.selection,Z=c.settings,$=c.parser,_=c.serializer,aa=g.gecko,ba=g.ie,ca=g.webkit,da="data:text/mce-internal,",ea=ba?"Text":"URL";return A(),p(),g.windowsPhone||I(),ca&&(r(),u(),D(),P(),x(),Q(),g.iOS?(K(),L(),O()):q()),ba&&g.ie<11&&(s(),w(),y(),z(),E(),F(),G(),H()),g.ie>=11&&(L(),x()),g.ie&&(q(),N(),R()),aa&&(s(),t(),v(),B(),C(),J(),M(),x()),{refreshContentEditable:S,isHidden:T}}}),g("tinymce.core.init.InitContentBody",["ephox.sugar.api.dom.Insert","ephox.sugar.api.node.Element","ephox.sugar.api.properties.Attr","global!document","global!window","tinymce.core.api.Formatter","tinymce.core.caret.CaretContainerInput","tinymce.core.dom.DOMUtils","tinymce.core.dom.Selection","tinymce.core.dom.Serializer","tinymce.core.EditorUpload","tinymce.core.ErrorReporter","tinymce.core.ForceBlocks","tinymce.core.html.DomParser","tinymce.core.html.Node","tinymce.core.html.Schema","tinymce.core.keyboard.KeyboardOverrides","tinymce.core.NodeChange","tinymce.core.SelectionOverrides","tinymce.core.UndoManager","tinymce.core.util.Delay","tinymce.core.util.Quirks","tinymce.core.util.Tools"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w){var x=h.DOM,y=function(d,e){var f=b.fromDom(d.getDoc().head),g=b.fromTag("style");c.set(g,"type","text/css"),a.append(g,b.fromText(e)),a.append(f,g)},z=function(a){var b=new n(a.settings,a.schema);return b.addAttributeFilter("src,href,style,tabindex",function(b,c){for(var d,e,f,g=b.length,h=a.dom;g--;)if(d=b[g],e=d.attr(c),f="data-mce-"+c,!d.attributes.map[f]){if(0===e.indexOf("data:")||0===e.indexOf("blob:"))continue;"style"===c?(e=h.serializeStyle(h.parseStyle(e),d.name),e.length||(e=null),d.attr(f,e),d.attr(c,e)):"tabindex"===c?(d.attr(f,e),d.attr(c,null)):d.attr(f,a.convertURL(e,c,d.name))}}),b.addNodeFilter("script",function(a){for(var b,c,d=a.length;d--;)b=a[d],c=b.attr("type")||"no/type",0!==c.indexOf("mce-")&&b.attr("type","mce-"+c)}),b.addNodeFilter("#cdata",function(a){for(var b,c=a.length;c--;)b=a[c],b.type=8,b.name="#comment",b.value="[CDATA["+b.value+"]]"}),b.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(b){for(var c,d=b.length,e=a.schema.getNonEmptyElements();d--;)c=b[d],c.isEmpty(e)&&0===c.getAll("br").length&&(c.append(new o("br",1)).shortEnded=!0)}),b},A=function(a){a.settings.auto_focus&&u.setEditorTimeout(a,function(){var b;b=a.settings.auto_focus===!0?a:a.editorManager.get(a.settings.auto_focus),b.destroyed||b.focus()},100)},B=function(a){a.bindPendingEventDelegates(),a.initialized=!0,a.fire("init"),a.focus(!0),a.nodeChanged({initial:!0}),a.execCallback("init_instance_callback",a),A(a)},C=function(a){return a.inline?x.styleSheetLoader:a.dom.styleSheetLoader},D=function(a,b){var c,l,n=a.settings,o=a.getElement(),u=a.getDoc();n.inline||(a.getElement().style.visibility=a.orgVisibility),b||n.content_editable||(u.open(),u.write(a.iframeHTML),u.close()),n.content_editable&&(a.on("remove",function(){var a=this.getBody();x.removeClass(a,"mce-content-body"),x.removeClass(a,"mce-edit-focus"),x.setAttrib(a,"contentEditable",null)}),x.addClass(o,"mce-content-body"),a.contentDocument=u=n.content_document||d,a.contentWindow=n.content_window||e,a.bodyElement=o,n.content_document=n.content_window=null,n.root_name=o.nodeName.toLowerCase()),c=a.getBody(),c.disabled=!0,a.readonly=n.readonly,a.readonly||(a.inline&&"static"===x.getStyle(c,"position",!0)&&(c.style.position="relative"),c.contentEditable=a.getParam("content_editable_state",!0)),c.disabled=!1,a.editorUpload=new k(a),a.schema=new p(n),a.dom=new h(u,{keep_values:!0,url_converter:a.convertURL,url_converter_scope:a,hex_colors:n.force_hex_style_colors,class_filter:n.class_filter,update_styles:!0,root_element:a.inline?a.getBody():null,collect:n.content_editable,schema:a.schema,onSetAttrib:function(b){a.fire("SetAttrib",b)}}),a.parser=z(a),a.serializer=new j(n,a),a.selection=new i(a.dom,a.getWin(),a.serializer,a),a.formatter=new f(a),a.undoManager=new t(a),a._nodeChangeDispatcher=new r(a),a._selectionOverrides=new s(a),g.setup(a),q.setup(a),m.setup(a),a.fire("PreInit"),n.browser_spellcheck||n.gecko_spellcheck||(u.body.spellcheck=!1,x.setAttrib(c,"spellcheck","false")),a.quirks=new v(a),a.fire("PostRender"),n.directionality&&(c.dir=n.directionality),n.nowrap&&(c.style.whiteSpace="nowrap"),n.protect&&a.on("BeforeSetContent",function(a){w.each(n.protect,function(b){a.content=a.content.replace(b,function(a){return"<!--mce:protected "+escape(a)+"-->"})})}),a.on("SetContent",function(){a.addVisual(a.getBody())}),n.padd_empty_editor&&a.on("PostProcess",function(a){a.content=a.content.replace(/^(<p[^>]*>( | |\s|\u00a0|<br \/>|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/,"")}),a.load({initial:!0,format:"html"}),a.startContent=a.getContent({format:"raw"}),a.on("compositionstart compositionend",function(b){a.composing="compositionstart"===b.type}),a.contentStyles.length>0&&(l="",w.each(a.contentStyles,function(a){l+=a+"\r\n"}),a.dom.addStyle(l)),C(a).loadAll(a.contentCSS,function(b){B(a)},function(b){B(a)}),n.content_style&&y(a,n.content_style)};return{initContentBody:D}}),g("tinymce.core.PluginManager",["tinymce.core.AddOnManager"],function(a){return a.PluginManager}),g("tinymce.core.ThemeManager",["tinymce.core.AddOnManager"],function(a){return a.ThemeManager}),g("tinymce.core.init.Init",["global!document","global!window","tinymce.core.dom.DOMUtils","tinymce.core.Env","tinymce.core.init.InitContentBody","tinymce.core.PluginManager","tinymce.core.ThemeManager","tinymce.core.util.Tools","tinymce.core.util.Uuid"],function(a,b,c,d,e,f,g,h,i){var j=c.DOM,k=function(a,b,c){var d,e,g=f.get(c);if(d=f.urls[c]||a.documentBaseUrl.replace(/\/$/,""),c=h.trim(c),g&&h.inArray(b,c)===-1){if(h.each(f.dependencies(c),function(c){k(a,b,c)}),a.plugins[c])return;e=new g(a,d,a.$),a.plugins[c]=e,e.init&&(e.init(a,d),b.push(c))}},l=function(a){return a.replace(/^\-/,"")},m=function(a){var b=[];h.each(a.settings.plugins.split(/[ ,]/),function(c){k(a,b,l(c))})},n=function(a){var b,c=a.settings;c.theme&&("function"!=typeof c.theme?(c.theme=l(c.theme),b=g.get(c.theme),a.theme=new b(a,g.urls[c.theme]),a.theme.init&&a.theme.init(a,g.urls[c.theme]||a.documentBaseUrl.replace(/\/$/,""),a.$)):a.theme=c.theme)},o=function(a){var b,c,d,e,f,g=a.settings,h=a.getElement();return g.render_ui&&a.theme&&(a.orgDisplay=h.style.display,"function"!=typeof g.theme?(b=g.width||j.getStyle(h,"width")||"100%",c=g.height||j.getStyle(h,"height")||h.offsetHeight,d=g.min_height||100,e=/^[0-9\.]+(|px)$/i,e.test(""+b)&&(b=Math.max(parseInt(b,10),100)),e.test(""+c)&&(c=Math.max(parseInt(c,10),d)),f=a.theme.renderUI({targetNode:h,width:b,height:c,deltaWidth:g.delta_width,deltaHeight:g.delta_height}),g.content_editable||(c=(f.iframeHeight||c)+("number"==typeof c?f.deltaHeight||0:""),c<d&&(c=d))):(f=g.theme(a,h),f.editorContainer.nodeType&&(f.editorContainer.id=f.editorContainer.id||a.id+"_parent"),f.iframeContainer.nodeType&&(f.iframeContainer.id=f.iframeContainer.id||a.id+"_iframecontainer"),c=f.iframeHeight||h.offsetHeight),a.editorContainer=f.editorContainer,f.height=c),f},p=function(c,f){if(a.domain!==b.location.hostname&&d.ie&&d.ie<12){var g=i.uuid("mce");c[g]=function(){e.initContentBody(c)};var h='javascript:(function(){document.open();document.domain="'+a.domain+'";var ed = window.parent.tinymce.get("'+c.id+'");document.write(ed.iframeHTML);document.close();ed.'+g+"(true);})()";return j.setAttrib(f,"src",h),!0}return!1},q=function(a,b){var c,e,f=a.settings;a.iframeHTML=f.doctype+"<html><head>",f.document_base_url!=a.documentBaseUrl&&(a.iframeHTML+='<base href="'+a.documentBaseURI.getURI()+'" />'),!d.caretAfter&&f.ie7_compat&&(a.iframeHTML+='<meta http-equiv="X-UA-Compatible" content="IE=7" />'),a.iframeHTML+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />',c=f.body_id||"tinymce",c.indexOf("=")!=-1&&(c=a.getParam("body_id","","hash"),c=c[a.id]||c),e=f.body_class||"",e.indexOf("=")!=-1&&(e=a.getParam("body_class","","hash"),e=e[a.id]||""),f.content_security_policy&&(a.iframeHTML+='<meta http-equiv="Content-Security-Policy" content="'+f.content_security_policy+'" />'),a.iframeHTML+='</head><body id="'+c+'" class="mce-content-body '+e+'" data-id="'+a.id+'"><br></body></html>';var g=j.create("iframe",{id:a.id+"_ifr",frameBorder:"0",allowTransparency:"true",title:a.editorManager.translate("Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help"),style:{width:"100%",height:b.height,display:"block"}});g.onload=function(){g.onload=null,a.fire("load")};var h=p(a,g);return a.contentAreaContainer=b.iframeContainer,a.iframeElement=g,j.add(b.iframeContainer,g),h},r=function(a){var b,c=a.settings,d=a.getElement();if(a.rtl=c.rtl_ui||a.editorManager.i18n.rtl,a.editorManager.i18n.setCode(c.language),c.aria_label=c.aria_label||j.getAttrib(d,"aria-label",a.getLang("aria.rich_text_area")),a.fire("ScriptsLoaded"),n(a),m(a),b=o(a),c.content_css&&h.each(h.explode(c.content_css),function(b){a.contentCSS.push(a.documentBaseURI.toAbsolute(b))}),c.content_editable)return e.initContentBody(a);var f=q(a,b);b.editorContainer&&(j.get(b.editorContainer).style.display=a.orgDisplay,a.hidden=j.isHidden(b.editorContainer)),a.getElement().style.display="none",j.setAttrib(a.id,"aria-hidden",!0),f||e.initContentBody(a)};return{init:r}}),g("tinymce.core.init.Render",["global!window","tinymce.core.api.NotificationManager","tinymce.core.api.WindowManager","tinymce.core.dom.DOMUtils","tinymce.core.dom.EventUtils","tinymce.core.dom.ScriptLoader","tinymce.core.Env","tinymce.core.ErrorReporter","tinymce.core.init.Init","tinymce.core.PluginManager","tinymce.core.ThemeManager","tinymce.core.util.Tools"],function(a,b,c,d,e,f,g,h,i,j,k,l){var m=d.DOM,n=function(a,b){var c=a.settings,d=f.ScriptLoader;if(c.language&&"en"!=c.language&&!c.language_url&&(c.language_url=a.editorManager.baseURL+"/langs/"+c.language+".js"),c.language_url&&d.add(c.language_url),c.theme&&"function"!=typeof c.theme&&"-"!=c.theme.charAt(0)&&!k.urls[c.theme]){var e=c.theme_url;e=e?a.documentBaseURI.toAbsolute(e):"themes/"+c.theme+"/theme"+b+".js",k.load(c.theme,e)}l.isArray(c.plugins)&&(c.plugins=c.plugins.join(" ")),l.each(c.external_plugins,function(a,b){j.load(b,a),c.plugins+=" "+b}),l.each(c.plugins.split(/[ ,]/),function(a){if(a=l.trim(a),a&&!j.urls[a])if("-"===a.charAt(0)){a=a.substr(1,a.length);var c=j.dependencies(a);l.each(c,function(a){var c={prefix:"plugins/",resource:a,suffix:"/plugin"+b+".js"};a=j.createUrl(c,a),j.load(a.resource,a)})}else j.load(a,{prefix:"plugins/",resource:a,suffix:"/plugin"+b+".js"})}),d.loadQueue(function(){a.removed||i.init(a)},a,function(b){h.pluginLoadError(a,b[0]),a.removed||i.init(a)})},o=function(d){function f(){m.unbind(a,"ready",f),d.render()}var h=d.settings,i=d.id;if(!e.Event.domLoaded)return void m.bind(a,"ready",f);if(d.getElement()&&g.contentEditable){h.inline?d.inline=!0:(d.orgVisibility=d.getElement().style.visibility,d.getElement().style.visibility="hidden");var j=d.getElement().form||m.getParent(i,"form");j&&(d.formElement=j,h.hidden_input&&!/TEXTAREA|INPUT/i.test(d.getElement().nodeName)&&(m.insertAfter(m.create("input",{type:"hidden",name:i}),i),d.hasHiddenInput=!0),d.formEventDelegate=function(a){d.fire(a.type,a)},m.bind(j,"submit reset",d.formEventDelegate),d.on("reset",function(){d.setContent(d.startContent,{format:"raw"})}),!h.submit_patch||j.submit.nodeType||j.submit.length||j._mceOldSubmit||(j._mceOldSubmit=j.submit,j.submit=function(){return d.editorManager.triggerSave(),d.setDirty(!1),j._mceOldSubmit(j)})),d.windowManager=new c(d),d.notificationManager=new b(d),"xml"===h.encoding&&d.on("GetContent",function(a){a.save&&(a.content=m.encode(a.content))}),h.add_form_submit_trigger&&d.on("submit",function(){d.initialized&&d.save()}),h.add_unload_trigger&&(d._beforeUnload=function(){!d.initialized||d.destroyed||d.isHidden()||d.save({format:"raw",no_events:!0,set_dirty:!1})},d.editorManager.on("BeforeUnload",d._beforeUnload)),d.editorManager.add(d),n(d,d.suffix)}};return{render:o}}),g("tinymce.core.Mode",[],function(){function a(a,b,c){try{a.getDoc().execCommand(b,!1,c)}catch(d){}}function b(a){var b,c;return b=a.getBody(),c=function(b){a.dom.getParents(b.target,"a").length>0&&b.preventDefault()},a.dom.bind(b,"click",c),{unbind:function(){a.dom.unbind(b,"click",c)}}}function c(c,d){c._clickBlocker&&(c._clickBlocker.unbind(),c._clickBlocker=null),d?(c._clickBlocker=b(c),c.selection.controlSelection.hideResizeRect(),c.readonly=!0,c.getBody().contentEditable=!1):(c.readonly=!1,c.getBody().contentEditable=!0,a(c,"StyleWithCSS",!1),a(c,"enableInlineTableEditing",!1),a(c,"enableObjectResizing",!1),c.focus(),c.nodeChanged())}function d(a,b){var d=a.readonly?"readonly":"design";b!=d&&(a.initialized?c(a,"readonly"==b):a.on("init",function(){c(a,"readonly"==b)}),a.fire("SwitchMode",{mode:b}))}return{setMode:d}}),g("tinymce.core.Shortcuts",["tinymce.core.util.Tools","tinymce.core.Env"],function(a,b){var c=a.each,d=a.explode,e={f9:120,f10:121,f11:122},f=a.makeMap("alt,ctrl,shift,meta,access");return function(g){function h(a){var g,h,i={};c(d(a,"+"),function(a){a in f?i[a]=!0:/^[0-9]{2,}$/.test(a)?i.keyCode=parseInt(a,10):(i.charCode=a.charCodeAt(0),i.keyCode=e[a]||a.toUpperCase().charCodeAt(0))}),g=[i.keyCode];for(h in f)i[h]?g.push(h):i[h]=!1;return i.id=g.join(","),i.access&&(i.alt=!0,b.mac?i.ctrl=!0:i.shift=!0),i.meta&&(b.mac?i.meta=!0:(i.ctrl=!0,i.meta=!1)),i}function i(b,c,e,f){var i;return i=a.map(d(b,">"),h),i[i.length-1]=a.extend(i[i.length-1],{func:e,scope:f||g}),a.extend(i[0],{desc:g.translate(c),subpatterns:i.slice(1)})}function j(a){return a.altKey||a.ctrlKey||a.metaKey}function k(a){return"keydown"===a.type&&a.keyCode>=112&&a.keyCode<=123}function l(a,b){return!!b&&(b.ctrl==a.ctrlKey&&b.meta==a.metaKey&&(b.alt==a.altKey&&b.shift==a.shiftKey&&(!!(a.keyCode==b.keyCode||a.charCode&&a.charCode==b.charCode)&&(a.preventDefault(),!0))))}function m(a){return a.func?a.func.call(a.scope):null}var n=this,o={},p=[];g.on("keyup keypress keydown",function(a){!j(a)&&!k(a)||a.isDefaultPrevented()||(c(o,function(b){if(l(a,b))return p=b.subpatterns.slice(0),"keydown"==a.type&&m(b),!0}),l(a,p[0])&&(1===p.length&&"keydown"==a.type&&m(p[0]),p.shift()))}),n.add=function(b,e,f,h){var j;return j=f,"string"==typeof f?f=function(){g.execCommand(j,!1,null)}:a.isArray(j)&&(f=function(){g.execCommand(j[0],j[1],j[2])}),c(d(a.trim(b.toLowerCase())),function(a){var b=i(a,e,f,h);o[b.id]=b}),!0},n.remove=function(a){var b=i(a);return!!o[b.id]&&(delete o[b.id],!0)}}}),g("tinymce.core.ui.Sidebar",[],function(){var a=function(a,b,c){var d=a.sidebars?a.sidebars:[];d.push({name:b,settings:c}),a.sidebars=d};return{add:a}}),g("tinymce.core.util.URI",["global!document","tinymce.core.util.Tools"],function(a,b){function c(b,g){var h,i,j=this;if(b=e(b),g=j.settings=g||{},h=g.base_uri,/^([\w\-]+):([^\/]{2})/i.test(b)||/^\s*#/.test(b))return void(j.source=b);var k=0===b.indexOf("//");0!==b.indexOf("/")||k||(b=(h?h.protocol||"http":"http")+"://mce_host"+b),/^[\w\-]*:?\/\//.test(b)||(i=g.base_uri?g.base_uri.path:new c(a.location.href).directory,""===g.base_uri.protocol?b="//mce_host"+j.toAbsPath(i,b):(b=/([^#?]*)([#?]?.*)/.exec(b),b=(h&&h.protocol||"http")+"://mce_host"+j.toAbsPath(i,b[1])+b[2])),b=b.replace(/@@/g,"(mce_at)"),b=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(b),d(f,function(a,c){var d=b[c];d&&(d=d.replace(/\(mce_at\)/g,"@@")),j[a]=d}),h&&(j.protocol||(j.protocol=h.protocol),j.userInfo||(j.userInfo=h.userInfo),j.port||"mce_host"!==j.host||(j.port=h.port),j.host&&"mce_host"!==j.host||(j.host=h.host),j.source=""),k&&(j.protocol="")}var d=b.each,e=b.trim,f="source protocol authority userInfo user password host port relative path directory file query anchor".split(" "),g={ftp:21,http:80,https:443,mailto:25};return c.prototype={setPath:function(a){var b=this;a=/^(.*?)\/?(\w+)?$/.exec(a),b.path=a[0],b.directory=a[1],b.file=a[2],b.source="",b.getURI()},toRelative:function(a){var b,d=this;if("./"===a)return a;if(a=new c(a,{base_uri:d}),"mce_host"!=a.host&&d.host!=a.host&&a.host||d.port!=a.port||d.protocol!=a.protocol&&""!==a.protocol)return a.getURI();var e=d.getURI(),f=a.getURI();return e==f||"/"==e.charAt(e.length-1)&&e.substr(0,e.length-1)==f?e:(b=d.toRelPath(d.path,a.path),a.query&&(b+="?"+a.query),a.anchor&&(b+="#"+a.anchor),b)},toAbsolute:function(a,b){return a=new c(a,{base_uri:this}),a.getURI(b&&this.isSameOrigin(a))},isSameOrigin:function(a){if(this.host==a.host&&this.protocol==a.protocol){if(this.port==a.port)return!0;var b=g[this.protocol];if(b&&(this.port||b)==(a.port||b))return!0}return!1},toRelPath:function(a,b){var c,d,e,f=0,g="";if(a=a.substring(0,a.lastIndexOf("/")),a=a.split("/"),c=b.split("/"),a.length>=c.length)for(d=0,e=a.length;d<e;d++)if(d>=c.length||a[d]!=c[d]){f=d+1;break}if(a.length<c.length)for(d=0,e=c.length;d<e;d++)if(d>=a.length||a[d]!=c[d]){f=d+1;break}if(1===f)return b;for(d=0,e=a.length-(f-1);d<e;d++)g+="../";for(d=f-1,e=c.length;d<e;d++)g+=d!=f-1?"/"+c[d]:c[d];return g},toAbsPath:function(a,b){var c,e,f,g=0,h=[];for(e=/\/$/.test(b)?"/":"",a=a.split("/"),b=b.split("/"),d(a,function(a){a&&h.push(a); -}),a=h,c=b.length-1,h=[];c>=0;c--)0!==b[c].length&&"."!==b[c]&&(".."!==b[c]?g>0?g--:h.push(b[c]):g++);return c=a.length-g,f=c<=0?h.reverse().join("/"):a.slice(0,c).join("/")+"/"+h.reverse().join("/"),0!==f.indexOf("/")&&(f="/"+f),e&&f.lastIndexOf("/")!==f.length-1&&(f+=e),f},getURI:function(a){var b,c=this;return c.source&&!a||(b="",a||(b+=c.protocol?c.protocol+"://":"//",c.userInfo&&(b+=c.userInfo+"@"),c.host&&(b+=c.host),c.port&&(b+=":"+c.port)),c.path&&(b+=c.path),c.query&&(b+="?"+c.query),c.anchor&&(b+="#"+c.anchor),c.source=b),c.source}},c.parseDataUri=function(a){var b,c;return a=decodeURIComponent(a).split(","),c=/data:([^;]+)/.exec(a[0]),c&&(b=c[1]),{type:b,data:a[1]}},c.getDocumentBaseUrl=function(a){var b;return b=0!==a.protocol.indexOf("http")&&"file:"!==a.protocol?a.href:a.protocol+"//"+a.host+a.pathname,/^[^:]+:\/\/\/?[^\/]+\//.test(b)&&(b=b.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(b)||(b+="/")),b},c}),g("tinymce.core.Editor",["tinymce.core.AddOnManager","tinymce.core.dom.DomQuery","tinymce.core.dom.DOMUtils","tinymce.core.EditorCommands","tinymce.core.EditorFocus","tinymce.core.EditorObservable","tinymce.core.EditorSettings","tinymce.core.Env","tinymce.core.html.Serializer","tinymce.core.init.Render","tinymce.core.Mode","tinymce.core.Shortcuts","tinymce.core.ui.Sidebar","tinymce.core.util.Tools","tinymce.core.util.URI","tinymce.core.util.Uuid"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p){function q(c,e,f){var i,j,k=this;i=k.documentBaseUrl=f.documentBaseURL,j=f.baseURI,e=g.getEditorSettings(k,c,i,f.defaultSettings,e),k.settings=e,a.language=e.language||"en",a.languageLoad=e.language_load,a.baseURL=f.baseURL,k.id=c,k.setDirty(!1),k.plugins={},k.documentBaseURI=new o(e.document_base_url,{base_uri:j}),k.baseURI=j,k.contentCSS=[],k.contentStyles=[],k.shortcuts=new l(k),k.loadedCSS={},k.editorCommands=new d(k),k.suffix=f.suffix,k.editorManager=f,k.inline=e.inline,e.cache_suffix&&(h.cacheSuffix=e.cache_suffix.replace(/^[\?\&]+/,"")),e.override_viewport===!1&&(h.overrideViewPort=!1),f.fire("SetupEditor",k),k.execCallback("setup",k),k.$=b.overrideDefaults(function(){return{context:k.inline?k.getBody():k.getDoc(),element:k.getBody()}})}var r=c.DOM,s=n.extend,t=n.each,u=n.trim,v=n.resolve,w=h.ie;return q.prototype={render:function(){j.render(this)},focus:function(a){e.focus(this,a)},execCallback:function(a){var b,c=this,d=c.settings[a];if(d)return c.callbackLookup&&(b=c.callbackLookup[a])&&(d=b.func,b=b.scope),"string"==typeof d&&(b=d.replace(/\.\w+$/,""),b=b?v(b):0,d=v(d),c.callbackLookup=c.callbackLookup||{},c.callbackLookup[a]={func:d,scope:b}),d.apply(b||c,Array.prototype.slice.call(arguments,1))},translate:function(a){if(a&&n.is(a,"string")){var b=this.settings.language||"en",c=this.editorManager.i18n;a=c.data[b+"."+a]||a.replace(/\{\#([^\}]+)\}/g,function(a,d){return c.data[b+"."+d]||"{#"+d+"}"})}return this.editorManager.translate(a)},getLang:function(a,b){return this.editorManager.i18n.data[(this.settings.language||"en")+"."+a]||(void 0!==b?b:"{#"+a+"}")},getParam:function(a,b,c){var d,e=a in this.settings?this.settings[a]:b;return"hash"===c?(d={},"string"==typeof e?t(e.indexOf("=")>0?e.split(/[;,](?![^=;,]*(?:[;,]|$))/):e.split(","),function(a){a=a.split("="),a.length>1?d[u(a[0])]=u(a[1]):d[u(a[0])]=u(a)}):d=e,d):e},nodeChanged:function(a){this._nodeChangeDispatcher.nodeChanged(a)},addButton:function(a,b){var c=this;b.cmd&&(b.onclick=function(){c.execCommand(b.cmd)}),b.text||b.icon||(b.icon=a),c.buttons=c.buttons||{},b.tooltip=b.tooltip||b.title,c.buttons[a]=b},addSidebar:function(a,b){return m.add(this,a,b)},addMenuItem:function(a,b){var c=this;b.cmd&&(b.onclick=function(){c.execCommand(b.cmd)}),c.menuItems=c.menuItems||{},c.menuItems[a]=b},addContextToolbar:function(a,b){var c,d=this;d.contextToolbars=d.contextToolbars||[],"string"==typeof a&&(c=a,a=function(a){return d.dom.is(a,c)}),d.contextToolbars.push({id:p.uuid("mcet"),predicate:a,items:b})},addCommand:function(a,b,c){this.editorCommands.addCommand(a,b,c)},addQueryStateHandler:function(a,b,c){this.editorCommands.addQueryStateHandler(a,b,c)},addQueryValueHandler:function(a,b,c){this.editorCommands.addQueryValueHandler(a,b,c)},addShortcut:function(a,b,c,d){this.shortcuts.add(a,b,c,d)},execCommand:function(a,b,c,d){return this.editorCommands.execCommand(a,b,c,d)},queryCommandState:function(a){return this.editorCommands.queryCommandState(a)},queryCommandValue:function(a){return this.editorCommands.queryCommandValue(a)},queryCommandSupported:function(a){return this.editorCommands.queryCommandSupported(a)},show:function(){var a=this;a.hidden&&(a.hidden=!1,a.inline?a.getBody().contentEditable=!0:(r.show(a.getContainer()),r.hide(a.id)),a.load(),a.fire("show"))},hide:function(){var a=this,b=a.getDoc();a.hidden||(w&&b&&!a.inline&&b.execCommand("SelectAll"),a.save(),a.inline?(a.getBody().contentEditable=!1,a==a.editorManager.focusedEditor&&(a.editorManager.focusedEditor=null)):(r.hide(a.getContainer()),r.setStyle(a.id,"display",a.orgDisplay)),a.hidden=!0,a.fire("hide"))},isHidden:function(){return!!this.hidden},setProgressState:function(a,b){this.fire("ProgressState",{state:a,time:b})},load:function(a){var b,c=this,d=c.getElement();return c.removed?"":d?(a=a||{},a.load=!0,b=c.setContent(void 0!==d.value?d.value:d.innerHTML,a),a.element=d,a.no_events||c.fire("LoadContent",a),a.element=d=null,b):void 0},save:function(a){var b,c,d=this,e=d.getElement();if(e&&d.initialized&&!d.removed)return a=a||{},a.save=!0,a.element=e,b=a.content=d.getContent(a),a.no_events||d.fire("SaveContent",a),"raw"==a.format&&d.fire("RawSaveContent",a),b=a.content,/TEXTAREA|INPUT/i.test(e.nodeName)?e.value=b:(d.inline||(e.innerHTML=b),(c=r.getParent(d.id,"form"))&&t(c.elements,function(a){if(a.name==d.id)return a.value=b,!1})),a.element=e=null,a.set_dirty!==!1&&d.setDirty(!1),b},setContent:function(a,b){var c,d,e=this,f=e.getBody();return b=b||{},b.format=b.format||"html",b.set=!0,b.content=a,b.no_events||e.fire("BeforeSetContent",b),a=b.content,0===a.length||/^\s+$/.test(a)?(d=w&&w<11?"":'<br data-mce-bogus="1">',"TABLE"==f.nodeName?a="<tr><td>"+d+"</td></tr>":/^(UL|OL)$/.test(f.nodeName)&&(a="<li>"+d+"</li>"),c=e.settings.forced_root_block,c&&e.schema.isValidChild(f.nodeName.toLowerCase(),c.toLowerCase())?(a=d,a=e.dom.createHTML(c,e.settings.forced_root_block_attrs,a)):w||a||(a='<br data-mce-bogus="1">'),e.dom.setHTML(f,a),e.fire("SetContent",b)):("raw"!==b.format&&(a=new i({validate:e.validate},e.schema).serialize(e.parser.parse(a,{isRootContent:!0}))),b.content=u(a),e.dom.setHTML(f,b.content),b.no_events||e.fire("SetContent",b)),b.content},getContent:function(a){var b,c=this,d=c.getBody();return c.removed?"":(a=a||{},a.format=a.format||"html",a.get=!0,a.getInner=!0,a.no_events||c.fire("BeforeGetContent",a),b="raw"==a.format?n.trim(c.serializer.getTrimmedContent()):"text"==a.format?d.innerText||d.textContent:c.serializer.serialize(d,a),"text"!=a.format?a.content=u(b):a.content=b,a.no_events||c.fire("GetContent",a),a.content)},insertContent:function(a,b){b&&(a=s({content:a},b)),this.execCommand("mceInsertContent",!1,a)},isDirty:function(){return!this.isNotDirty},setDirty:function(a){var b=!this.isNotDirty;this.isNotDirty=!a,a&&a!=b&&this.fire("dirty")},setMode:function(a){k.setMode(this,a)},getContainer:function(){var a=this;return a.container||(a.container=r.get(a.editorContainer||a.id+"_parent")),a.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return this.targetElm||(this.targetElm=r.get(this.id)),this.targetElm},getWin:function(){var a,b=this;return b.contentWindow||(a=b.iframeElement,a&&(b.contentWindow=a.contentWindow)),b.contentWindow},getDoc:function(){var a,b=this;return b.contentDocument||(a=b.getWin(),a&&(b.contentDocument=a.document)),b.contentDocument},getBody:function(){var a=this.getDoc();return this.bodyElement||(a?a.body:null)},convertURL:function(a,b,c){var d=this,e=d.settings;return e.urlconverter_callback?d.execCallback("urlconverter_callback",a,c,!0,b):!e.convert_urls||c&&"LINK"==c.nodeName||0===a.indexOf("file:")||0===a.length?a:e.relative_urls?d.documentBaseURI.toRelative(a):a=d.documentBaseURI.toAbsolute(a,e.remove_script_host)},addVisual:function(a){var b,c=this,d=c.settings,e=c.dom;a=a||c.getBody(),void 0===c.hasVisual&&(c.hasVisual=d.visual),t(e.select("table,a",a),function(a){var f;switch(a.nodeName){case"TABLE":return b=d.visual_table_class||"mce-item-table",f=e.getAttrib(a,"border"),void(f&&"0"!=f||!c.hasVisual?e.removeClass(a,b):e.addClass(a,b));case"A":return void(e.getAttrib(a,"href",!1)||(f=e.getAttrib(a,"name")||a.id,b=d.visual_anchor_class||"mce-item-anchor",f&&c.hasVisual?e.addClass(a,b):e.removeClass(a,b)))}}),c.fire("VisualAid",{element:a,hasVisual:c.hasVisual})},remove:function(){var a=this;a.removed||(a.save(),a.removed=1,a.unbindAllNativeEvents(),a.hasHiddenInput&&r.remove(a.getElement().nextSibling),a.inline||(w&&w<10&&a.getDoc().execCommand("SelectAll",!1,null),r.setStyle(a.id,"display",a.orgDisplay),a.getBody().onload=null),a.fire("remove"),a.editorManager.remove(a),r.remove(a.getContainer()),a._selectionOverrides.destroy(),a.editorUpload.destroy(),a.destroy())},destroy:function(a){var b,c=this;if(!c.destroyed){if(!a&&!c.removed)return void c.remove();a||(c.editorManager.off("beforeunload",c._beforeUnload),c.theme&&c.theme.destroy&&c.theme.destroy(),c.selection.destroy(),c.dom.destroy()),b=c.formElement,b&&(b._mceOldSubmit&&(b.submit=b._mceOldSubmit,b._mceOldSubmit=null),r.unbind(b,"submit reset",c.formEventDelegate)),c.contentAreaContainer=c.formElement=c.container=c.editorContainer=null,c.bodyElement=c.contentDocument=c.contentWindow=null,c.iframeElement=c.targetElm=null,c.selection&&(c.selection=c.selection.win=c.selection.dom=c.selection.dom.doc=null),c.destroyed=1}},uploadImages:function(a){return this.editorUpload.uploadImages(a)},_scanForImages:function(){return this.editorUpload.scanForImages()}},s(q.prototype,f),q}),g("tinymce.core.FocusManager",["tinymce.core.dom.DOMUtils","tinymce.core.util.Delay","tinymce.core.Env"],function(a,b,c){function d(a){function d(){try{return document.activeElement}catch(a){return document.body}}function j(a,b){if(b&&b.startContainer){if(!a.isChildOf(b.startContainer,a.getRoot())||!a.isChildOf(b.endContainer,a.getRoot()))return;return{startContainer:b.startContainer,startOffset:b.startOffset,endContainer:b.endContainer,endOffset:b.endOffset}}return b}function l(a,b){var c;return b.startContainer?(c=a.getDoc().createRange(),c.setStart(b.startContainer,b.startOffset),c.setEnd(b.endContainer,b.endOffset)):c=b,c}function m(e){var m=e.editor;m.on("init",function(){(m.inline||c.ie)&&("onbeforedeactivate"in document&&c.ie<9?m.dom.bind(m.getBody(),"beforedeactivate",function(a){if(a.target==m.getBody())try{m.lastRng=m.selection.getRng()}catch(b){}}):m.on("nodechange mouseup keyup",function(a){var b=d();"nodechange"==a.type&&a.selectionChange||(b&&b.id==m.id+"_ifr"&&(b=m.getBody()),m.dom.isChildOf(b,m.getBody())&&(m.lastRng=m.selection.getRng()))}))}),m.on("setcontent",function(){m.lastRng=null}),m.on("mousedown",function(){m.selection.lastFocusBookmark=null}),m.on("focusin",function(){var b,c=a.focusedEditor;m.selection.lastFocusBookmark&&(b=l(m,m.selection.lastFocusBookmark),m.selection.lastFocusBookmark=null,m.selection.setRng(b)),c!=m&&(c&&c.fire("blur",{focusedEditor:m}),a.setActive(m),a.focusedEditor=m,m.fire("focus",{blurredEditor:c}),m.focus(!0)),m.lastRng=null}),m.on("focusout",function(){b.setEditorTimeout(m,function(){var b=a.focusedEditor;i(m,d())||b!=m||(m.fire("blur",{focusedEditor:null}),a.focusedEditor=null,m.selection&&(m.selection.lastFocusBookmark=null))})}),f||(f=function(b){var c,d=a.activeEditor;c=b.target,d&&c.ownerDocument===document&&(d.selection&&c!==d.getBody()&&k(m,c)&&(d.selection.lastFocusBookmark=j(d.dom,d.lastRng)),c===document.body||i(d,c)||a.focusedEditor!==d||(d.fire("blur",{focusedEditor:null}),a.focusedEditor=null))},h.bind(document,"focusin",f)),m.inline&&!g&&(g=function(b){var c=a.activeEditor,d=c.dom;if(c.inline&&d&&!d.isChildOf(b.target,c.getBody())){var e=c.selection.getRng();e.collapsed||(c.lastRng=e)}},h.bind(document,"mouseup",g))}function n(b){a.focusedEditor==b.editor&&(a.focusedEditor=null),a.activeEditor||(h.unbind(document,"selectionchange",e),h.unbind(document,"focusin",f),h.unbind(document,"mouseup",g),e=f=g=null)}a.on("AddEditor",m),a.on("RemoveEditor",n)}var e,f,g,h=a.DOM,i=function(a,b){var c=a?a.settings.custom_ui_selector:"",e=h.getParent(b,function(b){return d.isEditorUIElement(b)||!!c&&a.dom.is(b,c)});return null!==e},j=function(a){return a.inline===!0},k=function(a,b){return j(a)===!1||a.dom.isChildOf(b,a.getBody())===!1};return d.isEditorUIElement=function(a){return a.className.toString().indexOf("mce-")!==-1},d._isUIElement=i,d}),g("tinymce.core.LegacyInput",["tinymce.core.util.Tools"],function(a){var b=a.each,c=a.explode,d=function(a){a.on("AddEditor",function(a){var d=a.editor;d.on("preInit",function(){function a(a,c){b(c,function(b,c){b&&h.setStyle(a,c,b)}),h.rename(a,"span")}function e(a){h=d.dom,i.convert_fonts_to_spans&&b(h.select("font,u,strike",a.node),function(a){f[a.nodeName.toLowerCase()](h,a)})}var f,g,h,i=d.settings;i.inline_styles&&(g=c(i.font_size_legacy_values),f={font:function(b,c){a(c,{backgroundColor:c.style.backgroundColor,color:c.color,fontFamily:c.face,fontSize:g[parseInt(c.size,10)-1]})},u:function(b,c){"html4"===d.settings.schema&&a(c,{textDecoration:"underline"})},strike:function(b,c){a(c,{textDecoration:"line-through"})}},d.on("PreProcess SetContent",e))})})};return{register:d}}),g("tinymce.core.util.I18n",["tinymce.core.util.Tools"],function(a){"use strict";var b={},c="en";return{setCode:function(a){a&&(c=a,this.rtl=!!this.data[a]&&"rtl"===this.data[a]._dir)},getCode:function(){return c},rtl:!1,add:function(a,c){var d=b[a];d||(b[a]=d={});for(var e in c)d[e]=c[e];this.setCode(a)},translate:function(d){function e(b){return a.is(b,"function")?Object.prototype.toString.call(b):f(b)?"":""+b}function f(b){return""===b||null===b||a.is(b,"undefined")}function g(b){return b=e(b),a.hasOwn(h,b)?e(h[b]):b}var h=b[c]||{};if(f(d))return"";if(a.is(d,"object")&&a.hasOwn(d,"raw"))return e(d.raw);if(a.is(d,"array")){var i=d.slice(1);d=g(d[0]).replace(/\{([0-9]+)\}/g,function(b,c){return a.hasOwn(i,c)?e(i[c]):b})}return g(d).replace(/{context:\w+}$/,"")},data:b}}),g("tinymce.core.EditorManager",["ephox.katamari.api.Arr","ephox.katamari.api.Type","tinymce.core.AddOnManager","tinymce.core.dom.DomQuery","tinymce.core.dom.DOMUtils","tinymce.core.Editor","tinymce.core.Env","tinymce.core.ErrorReporter","tinymce.core.FocusManager","tinymce.core.LegacyInput","tinymce.core.util.I18n","tinymce.core.util.Observable","tinymce.core.util.Promise","tinymce.core.util.Tools","tinymce.core.util.URI"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){function p(a){x(u.get(),function(b){"scroll"===a.type?b.fire("ScrollWindow",a):b.fire("ResizeWindow",a)})}function q(a){a!==A&&(a?d(window).on("resize scroll",p):d(window).off("resize scroll",p),A=a)}function r(b){var c=C;delete B[b.id];for(var d=0;d<B.length;d++)if(B[d]===b){B.splice(d,1);break}return C=a.filter(C,function(a){return b!==a}),u.activeEditor===b&&(u.activeEditor=C.length>0?C[0]:null),u.focusedEditor===b&&(u.focusedEditor=null),c.length!==C.length}function s(a){return a&&a.initialized&&!(a.getContainer()||a.getBody()).parentNode&&(r(a),a.unbindAllNativeEvents(),a.destroy(!0),a.removed=!0,a=null),a}var t,u,v=e.DOM,w=n.explode,x=n.each,y=n.extend,z=0,A=!1,B=[],C=[],D=function(a){return"length"!==a};return u={$:d,majorVersion:"4",minorVersion:"6.7",releaseDate:"2017-09-18",editors:B,i18n:k,activeEditor:null,settings:{},setup:function(){var a,b,c,d,e=this,f="";if(b=o.getDocumentBaseUrl(document.location),/^[^:]+:\/\/\/?[^\/]+\//.test(b)&&(b=b.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(b)||(b+="/")),c=window.tinymce||window.tinyMCEPreInit)a=c.base||c.baseURL,f=c.suffix;else{for(var g=document.getElementsByTagName("script"),h=0;h<g.length;h++){d=g[h].src;var j=d.substring(d.lastIndexOf("/"));if(/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(d)){j.indexOf(".min")!=-1&&(f=".min"),a=d.substring(0,d.lastIndexOf("/"));break}}!a&&document.currentScript&&(d=document.currentScript.src,d.indexOf(".min")!=-1&&(f=".min"),a=d.substring(0,d.lastIndexOf("/")))}e.baseURL=new o(b).toAbsolute(a),e.documentBaseURL=b,e.baseURI=new o(e.baseURL),e.suffix=f,e.focusManager=new i(e)},overrideDefaults:function(a){var b,d;b=a.base_url,b&&(this.baseURL=new o(this.documentBaseURL).toAbsolute(b.replace(/\/+$/,"")),this.baseURI=new o(this.baseURL)),d=a.suffix,a.suffix&&(this.suffix=d),this.defaultSettings=a;var e=a.plugin_base_urls;for(var f in e)c.PluginManager.urls[f]=e[f]},init:function(a){function b(a,b){return a.inline&&b.tagName.toLowerCase()in o}function c(a){var b=a.id;return b||(b=a.name,b=b&&!v.get(b)?a.name:v.uniqueId(),a.setAttribute("id",b)),b}function e(b){var c=a[b];if(c)return c.apply(p,Array.prototype.slice.call(arguments,2))}function i(a,b){return b.constructor===RegExp?b.test(a.className):v.hasClass(a,b)}function j(a){var b,c=[];if(g.ie&&g.ie<11)return h.initError("TinyMCE does not support the browser you are using. For a list of supported browsers please see: https://www.tinymce.com/docs/get-started/system-requirements/"),[];if(a.types)return x(a.types,function(a){c=c.concat(v.select(a.selector))}),c;if(a.selector)return v.select(a.selector);if(a.target)return[a.target];switch(a.mode){case"exact":b=a.elements||"",b.length>0&&x(w(b),function(a){var b;(b=v.get(a))?c.push(b):x(document.forms,function(b){x(b.elements,function(b){b.name===a&&(a="mce_editor_"+z++,v.setAttrib(b,"id",a),c.push(b))})})});break;case"textareas":case"specific_textareas":x(v.select("textarea"),function(b){a.editor_deselector&&i(b,a.editor_deselector)||a.editor_selector&&!i(b,a.editor_selector)||c.push(b)})}return c}function k(){function g(a,b,c){var d=new f(a,b,p);m.push(d),d.on("init",function(){++l===i.length&&q(m)}),d.targetElm=d.targetElm||c,d.render()}var i,l=0,m=[];return v.unbind(window,"ready",k),e("onpageload"),i=d.unique(j(a)),a.types?void x(a.types,function(b){n.each(i,function(d){return!v.is(d,b.selector)||(g(c(d),y({},a,b),d),!1)})}):(n.each(i,function(a){s(p.get(a.id))}),i=n.grep(i,function(a){return!p.get(a.id)}),void(0===i.length?q([]):x(i,function(d){b(a,d)?h.initError("Could not initialize inline editor on invalid inline target element",d):g(c(d),a,d)})))}var l,o,p=this;o=n.makeMap("area base basefont br col frame hr img input isindex link meta param embed source wbr track colgroup option tbody tfoot thead tr script noscript style textarea video audio iframe object menu"," ");var q=function(a){l=a};return p.settings=a,v.bind(window,"ready",k),new m(function(a){l?a(l):q=function(b){a(b)}})},get:function(c){return 0===arguments.length?C.slice(0):b.isString(c)?a.find(C,function(a){return a.id===c}).getOr(null):b.isNumber(c)&&C[c]?C[c]:null},add:function(a){var b,c=this;return b=B[a.id],b===a?a:(null===c.get(a.id)&&(D(a.id)&&(B[a.id]=a),B.push(a),C.push(a)),q(!0),c.activeEditor=a,c.fire("AddEditor",{editor:a}),t||(t=function(){c.fire("BeforeUnload")},v.bind(window,"beforeunload",t)),a)},createEditor:function(a,b){return this.add(new f(a,b,this))},remove:function(a){var c,d,e=this;{if(a)return b.isString(a)?(a=a.selector||a,void x(v.select(a),function(a){d=e.get(a.id),d&&e.remove(d)})):(d=a,b.isNull(e.get(d.id))?null:(r(d)&&e.fire("RemoveEditor",{editor:d}),0===C.length&&v.unbind(window,"beforeunload",t),d.remove(),q(C.length>0),d));for(c=C.length-1;c>=0;c--)e.remove(C[c])}},execCommand:function(a,b,c){var d=this,e=d.get(c);switch(a){case"mceAddEditor":return d.get(c)||new f(c,d.settings,d).render(),!0;case"mceRemoveEditor":return e&&e.remove(),!0;case"mceToggleEditor":return e?(e.isHidden()?e.show():e.hide(),!0):(d.execCommand("mceAddEditor",0,c),!0)}return!!d.activeEditor&&d.activeEditor.execCommand(a,b,c)},triggerSave:function(){x(C,function(a){a.save()})},addI18n:function(a,b){k.add(a,b)},translate:function(a){return k.translate(a)},setActive:function(a){var b=this.activeEditor;this.activeEditor!=a&&(b&&b.fire("deactivate",{relatedTarget:a}),a.fire("activate",{relatedTarget:b})),this.activeEditor=a}},y(u,l),u.setup(),j.register(u),u}),g("tinymce.core.geom.Rect",[],function(){"use strict";function a(a,b,c){var d,e,g,h,i,k;return d=b.x,e=b.y,g=a.w,h=a.h,i=b.w,k=b.h,c=(c||"").split(""),"b"===c[0]&&(e+=k),"r"===c[1]&&(d+=i),"c"===c[0]&&(e+=j(k/2)),"c"===c[1]&&(d+=j(i/2)),"b"===c[3]&&(e-=h),"r"===c[4]&&(d-=g),"c"===c[3]&&(e-=j(h/2)),"c"===c[4]&&(d-=j(g/2)),f(d,e,g,h)}function b(b,c,d,e){var f,g;for(g=0;g<e.length;g++)if(f=a(b,c,e[g]),f.x>=d.x&&f.x+f.w<=d.w+d.x&&f.y>=d.y&&f.y+f.h<=d.h+d.y)return e[g];return null}function c(a,b,c){return f(a.x-b,a.y-c,a.w+2*b,a.h+2*c)}function d(a,b){var c,d,e,g;return c=i(a.x,b.x),d=i(a.y,b.y),e=h(a.x+a.w,b.x+b.w),g=h(a.y+a.h,b.y+b.h),e-c<0||g-d<0?null:f(c,d,e-c,g-d)}function e(a,b,c){var d,e,g,h,j,k,l,m,n,o;return j=a.x,k=a.y,l=a.x+a.w,m=a.y+a.h,n=b.x+b.w,o=b.y+b.h,d=i(0,b.x-j),e=i(0,b.y-k),g=i(0,l-n),h=i(0,m-o),j+=d,k+=e,c&&(l+=d,m+=e,j-=g,k-=h),l-=g,m-=h,f(j,k,l-j,m-k)}function f(a,b,c,d){return{x:a,y:b,w:c,h:d}}function g(a){return f(a.left,a.top,a.width,a.height)}var h=Math.min,i=Math.max,j=Math.round;return{inflate:c,relativePosition:a,findBestRelativePosition:b,intersect:d,clamp:e,create:f,fromClientRect:g}}),g("tinymce.core.ui.Layout",["tinymce.core.util.Class","tinymce.core.util.Tools"],function(a,b){"use strict";return a.extend({Defaults:{firstControlClass:"first",lastControlClass:"last"},init:function(a){this.settings=b.extend({},this.Defaults,a)},preRender:function(a){a.bodyClasses.add(this.settings.containerClass)},applyClasses:function(a){var b,c,d,e,f=this,g=f.settings;b=g.firstControlClass,c=g.lastControlClass,a.each(function(a){a.classes.remove(b).remove(c).add(g.controlClass),a.visible()&&(d||(d=a),e=a)}),d&&d.classes.add(b),e&&e.classes.add(c)},renderHtml:function(a){var b=this,c="";return b.applyClasses(a.items()),a.items().each(function(a){c+=a.renderHtml()}),c},recalc:function(){},postRender:function(){},isNative:function(){return!1}})}),g("tinymce.core.ui.AbsoluteLayout",["tinymce.core.ui.Layout"],function(a){"use strict";return a.extend({Defaults:{containerClass:"abs-layout",controlClass:"abs-layout-item"},recalc:function(a){a.items().filter(":visible").each(function(a){var b=a.settings;a.layoutRect({x:b.x,y:b.y,w:b.w,h:b.h}),a.recalc&&a.recalc()})},renderHtml:function(a){return'<div id="'+a._id+'-absend" class="'+a.classPrefix+'abs-end"></div>'+this._super(a)}})}),g("tinymce.core.ui.Button",["tinymce.core.ui.Widget"],function(a){"use strict";return a.extend({Defaults:{classes:"widget btn",role:"button"},init:function(a){var b,c=this;c._super(a),a=c.settings,b=c.settings.size,c.on("click mousedown",function(a){a.preventDefault()}),c.on("touchstart",function(a){c.fire("click",a),a.preventDefault()}),a.subtype&&c.classes.add(a.subtype),b&&c.classes.add("btn-"+b),a.icon&&c.icon(a.icon)},icon:function(a){return arguments.length?(this.state.set("icon",a),this):this.state.get("icon")},repaint:function(){var a,b=this.getEl().firstChild;b&&(a=b.style,a.width=a.height="100%"),this._super()},renderHtml:function(){var a,b=this,c=b._id,d=b.classPrefix,e=b.state.get("icon"),f=b.state.get("text"),g="";return a=b.settings.image,a?(e="none","string"!=typeof a&&(a=window.getSelection?a[0]:a[1]),a=" style=\"background-image: url('"+a+"')\""):a="",f&&(b.classes.add("btn-has-text"),g='<span class="'+d+'txt">'+b.encode(f)+"</span>"),e=e?d+"ico "+d+"i-"+e:"",'<div id="'+c+'" class="'+b.classes+'" tabindex="-1"><button id="'+c+'-button" role="presentation" type="button" tabindex="-1">'+(e?'<i class="'+e+'"'+a+"></i>":"")+g+"</button></div>"},bindStates:function(){function a(a){var e=c("span."+d,b.getEl());a?(e[0]||(c("button:first",b.getEl()).append('<span class="'+d+'"></span>'),e=c("span."+d,b.getEl())),e.html(b.encode(a))):e.remove(),b.classes.toggle("btn-has-text",!!a)}var b=this,c=b.$,d=b.classPrefix+"txt";return b.state.on("change:text",function(b){a(b.value)}),b.state.on("change:icon",function(c){var d=c.value,e=b.classPrefix;b.settings.icon=d,d=d?e+"ico "+e+"i-"+b.settings.icon:"";var f=b.getEl().firstChild,g=f.getElementsByTagName("i")[0];d?(g&&g==f.firstChild||(g=document.createElement("i"),f.insertBefore(g,f.firstChild)),g.className=d):g&&f.removeChild(g),a(b.state.get("text"))}),b._super()}})}),g("tinymce.core.ui.ButtonGroup",["tinymce.core.ui.Container"],function(a){"use strict";return a.extend({Defaults:{defaultType:"button",role:"group"},renderHtml:function(){var a=this,b=a._layout;return a.classes.add("btn-group"),a.preRender(),b.preRender(a),'<div id="'+a._id+'" class="'+a.classes+'"><div id="'+a._id+'-body">'+(a.settings.html||"")+b.renderHtml(a)+"</div></div>"}})}),g("tinymce.core.ui.Checkbox",["tinymce.core.ui.Widget"],function(a){"use strict";return a.extend({Defaults:{classes:"checkbox",role:"checkbox",checked:!1},init:function(a){var b=this;b._super(a),b.on("click mousedown",function(a){a.preventDefault()}),b.on("click",function(a){a.preventDefault(),b.disabled()||b.checked(!b.checked())}),b.checked(b.settings.checked)},checked:function(a){return arguments.length?(this.state.set("checked",a),this):this.state.get("checked")},value:function(a){return arguments.length?this.checked(a):this.checked()},renderHtml:function(){var a=this,b=a._id,c=a.classPrefix;return'<div id="'+b+'" class="'+a.classes+'" unselectable="on" aria-labelledby="'+b+'-al" tabindex="-1"><i class="'+c+"ico "+c+'i-checkbox"></i><span id="'+b+'-al" class="'+c+'label">'+a.encode(a.state.get("text"))+"</span></div>"},bindStates:function(){function a(a){b.classes.toggle("checked",a),b.aria("checked",a)}var b=this;return b.state.on("change:text",function(a){b.getEl("al").firstChild.data=b.translate(a.value)}),b.state.on("change:checked change:value",function(c){b.fire("change"),a(c.value)}),b.state.on("change:icon",function(a){var c=a.value,d=b.classPrefix;if("undefined"==typeof c)return b.settings.icon;b.settings.icon=c,c=c?d+"ico "+d+"i-"+b.settings.icon:"";var e=b.getEl().firstChild,f=e.getElementsByTagName("i")[0];c?(f&&f==e.firstChild||(f=document.createElement("i"),e.insertBefore(f,e.firstChild)),f.className=c):f&&e.removeChild(f)}),b.state.get("checked")&&a(!0),b._super()}})}),g("tinymce.core.ui.ComboBox",["tinymce.core.ui.Widget","tinymce.core.ui.Factory","tinymce.core.ui.DomUtils","tinymce.core.dom.DomQuery","tinymce.core.util.VK","tinymce.core.util.Tools"],function(a,b,c,d,e,f){"use strict";return a.extend({init:function(a){var b=this;b._super(a),a=b.settings,b.classes.add("combobox"),b.subinput=!0,b.ariaTarget="inp",a.menu=a.menu||a.values,a.menu&&(a.icon="caret"),b.on("click",function(c){var e=c.target,f=b.getEl();if(d.contains(f,e)||e==f)for(;e&&e!=f;)e.id&&e.id.indexOf("-open")!=-1&&(b.fire("action"),a.menu&&(b.showMenu(),c.aria&&b.menu.items()[0].focus())),e=e.parentNode}),b.on("keydown",function(a){var c;13==a.keyCode&&"INPUT"===a.target.nodeName&&(a.preventDefault(),b.parents().reverse().each(function(a){if(a.toJSON)return c=a,!1}),b.fire("submit",{data:c.toJSON()}))}),b.on("keyup",function(a){if("INPUT"==a.target.nodeName){var c=b.state.get("value"),d=a.target.value;d!==c&&(b.state.set("value",d),b.fire("autocomplete",a))}}),b.on("mouseover",function(a){var c=b.tooltip().moveTo(-65535);if(b.statusLevel()&&a.target.className.indexOf(b.classPrefix+"status")!==-1){var d=b.statusMessage()||"Ok",e=c.text(d).show().testMoveRel(a.target,["bc-tc","bc-tl","bc-tr"]);c.classes.toggle("tooltip-n","bc-tc"==e),c.classes.toggle("tooltip-nw","bc-tl"==e),c.classes.toggle("tooltip-ne","bc-tr"==e),c.moveRel(a.target,e)}})},statusLevel:function(a){return arguments.length>0&&this.state.set("statusLevel",a),this.state.get("statusLevel")},statusMessage:function(a){return arguments.length>0&&this.state.set("statusMessage",a),this.state.get("statusMessage")},showMenu:function(){var a,c=this,d=c.settings;c.menu||(a=d.menu||[],a.length?a={type:"menu",items:a}:a.type=a.type||"menu",c.menu=b.create(a).parent(c).renderTo(c.getContainerElm()),c.fire("createmenu"),c.menu.reflow(),c.menu.on("cancel",function(a){a.control===c.menu&&c.focus()}),c.menu.on("show hide",function(a){a.control.items().each(function(a){a.active(a.value()==c.value())})}).fire("show"),c.menu.on("select",function(a){c.value(a.control.value())}),c.on("focusin",function(a){"INPUT"==a.target.tagName.toUpperCase()&&c.menu.hide()}),c.aria("expanded",!0)),c.menu.show(),c.menu.layoutRect({w:c.layoutRect().w}),c.menu.moveRel(c.getEl(),c.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])},focus:function(){this.getEl("inp").focus()},repaint:function(){var a,b,e=this,f=e.getEl(),g=e.getEl("open"),h=e.layoutRect(),i=0,j=f.firstChild;e.statusLevel()&&"none"!==e.statusLevel()&&(i=parseInt(c.getRuntimeStyle(j,"padding-right"),10)-parseInt(c.getRuntimeStyle(j,"padding-left"),10)),a=g?h.w-c.getSize(g).width-10:h.w-10;var k=document;return k.all&&(!k.documentMode||k.documentMode<=8)&&(b=e.layoutRect().h-2+"px"),d(j).css({width:a-i,lineHeight:b}),e._super(),e},postRender:function(){var a=this;return d(this.getEl("inp")).on("change",function(b){a.state.set("value",b.target.value),a.fire("change",b)}),a._super()},renderHtml:function(){var a,b,c=this,d=c._id,e=c.settings,f=c.classPrefix,g=c.state.get("value")||"",h="",i="",j="";return"spellcheck"in e&&(i+=' spellcheck="'+e.spellcheck+'"'),e.maxLength&&(i+=' maxlength="'+e.maxLength+'"'),e.size&&(i+=' size="'+e.size+'"'),e.subtype&&(i+=' type="'+e.subtype+'"'),j='<i id="'+d+'-status" class="mce-status mce-ico" style="display: none"></i>',c.disabled()&&(i+=' disabled="disabled"'),a=e.icon,a&&"caret"!=a&&(a=f+"ico "+f+"i-"+e.icon),b=c.state.get("text"),(a||b)&&(h='<div id="'+d+'-open" class="'+f+"btn "+f+'open" tabIndex="-1" role="button"><button id="'+d+'-action" type="button" hidefocus="1" tabindex="-1">'+("caret"!=a?'<i class="'+a+'"></i>':'<i class="'+f+'caret"></i>')+(b?(a?" ":"")+b:"")+"</button></div>",c.classes.add("has-open")),'<div id="'+d+'" class="'+c.classes+'"><input id="'+d+'-inp" class="'+f+'textbox" value="'+c.encode(g,!1)+'" hidefocus="1"'+i+' placeholder="'+c.encode(e.placeholder)+'" />'+j+h+"</div>"},value:function(a){return arguments.length?(this.state.set("value",a),this):(this.state.get("rendered")&&this.state.set("value",this.getEl("inp").value),this.state.get("value"))},showAutoComplete:function(a,c){var d=this;if(0===a.length)return void d.hideMenu();var e=function(a,b){return function(){d.fire("selectitem",{title:b,value:a})}};d.menu?d.menu.items().remove():d.menu=b.create({type:"menu",classes:"combobox-menu",layout:"flow"}).parent(d).renderTo(),f.each(a,function(a){d.menu.add({text:a.title,url:a.previewUrl,match:c,classes:"menu-item-ellipsis",onclick:e(a.value,a.title)})}),d.menu.renderNew(),d.hideMenu(),d.menu.on("cancel",function(a){a.control.parent()===d.menu&&(a.stopPropagation(),d.focus(),d.hideMenu())}),d.menu.on("select",function(){d.focus()});var g=d.layoutRect().w;d.menu.layoutRect({w:g,minW:0,maxW:g}),d.menu.reflow(),d.menu.show(),d.menu.moveRel(d.getEl(),d.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])},hideMenu:function(){this.menu&&this.menu.hide()},bindStates:function(){var a=this;a.state.on("change:value",function(b){a.getEl("inp").value!=b.value&&(a.getEl("inp").value=b.value)}),a.state.on("change:disabled",function(b){a.getEl("inp").disabled=b.value}),a.state.on("change:statusLevel",function(b){var d=a.getEl("status"),e=a.classPrefix,f=b.value;c.css(d,"display","none"===f?"none":""),c.toggleClass(d,e+"i-checkmark","ok"===f),c.toggleClass(d,e+"i-warning","warn"===f),c.toggleClass(d,e+"i-error","error"===f),a.classes.toggle("has-status","none"!==f),a.repaint()}),c.on(a.getEl("status"),"mouseleave",function(){a.tooltip().hide()}),a.on("cancel",function(b){a.menu&&a.menu.visible()&&(b.stopPropagation(),a.hideMenu())});var b=function(a,b){b&&b.items().length>0&&b.items().eq(a)[0].focus(); -};return a.on("keydown",function(c){var d=c.keyCode;"INPUT"===c.target.nodeName&&(d===e.DOWN?(c.preventDefault(),a.fire("autocomplete"),b(0,a.menu)):d===e.UP&&(c.preventDefault(),b(-1,a.menu)))}),a._super()},remove:function(){d(this.getEl("inp")).off(),this.menu&&this.menu.remove(),this._super()}})}),g("tinymce.core.ui.ColorBox",["tinymce.core.ui.ComboBox"],function(a){"use strict";return a.extend({init:function(a){var b=this;a.spellcheck=!1,a.onaction&&(a.icon="none"),b._super(a),b.classes.add("colorbox"),b.on("change keyup postrender",function(){b.repaintColor(b.value())})},repaintColor:function(a){var b=this.getEl("open"),c=b?b.getElementsByTagName("i")[0]:null;if(c)try{c.style.background=a}catch(d){}},bindStates:function(){var a=this;return a.state.on("change:value",function(b){a.state.get("rendered")&&a.repaintColor(b.value)}),a._super()}})}),g("tinymce.core.ui.PanelButton",["tinymce.core.ui.Button","tinymce.core.ui.FloatPanel"],function(a,b){"use strict";return a.extend({showPanel:function(){var a=this,c=a.settings;if(a.active(!0),a.panel)a.panel.show();else{var d=c.panel;d.type&&(d={layout:"grid",items:d}),d.role=d.role||"dialog",d.popover=!0,d.autohide=!0,d.ariaRoot=!0,a.panel=new b(d).on("hide",function(){a.active(!1)}).on("cancel",function(b){b.stopPropagation(),a.focus(),a.hidePanel()}).parent(a).renderTo(a.getContainerElm()),a.panel.fire("show"),a.panel.reflow()}var e=a.panel.testMoveRel(a.getEl(),c.popoverAlign||(a.isRtl()?["bc-tc","bc-tl","bc-tr"]:["bc-tc","bc-tr","bc-tl"]));a.panel.classes.toggle("start","bc-tl"===e),a.panel.classes.toggle("end","bc-tr"===e),a.panel.moveRel(a.getEl(),e)},hidePanel:function(){var a=this;a.panel&&a.panel.hide()},postRender:function(){var a=this;return a.aria("haspopup",!0),a.on("click",function(b){b.control===a&&(a.panel&&a.panel.visible()?a.hidePanel():(a.showPanel(),a.panel.focus(!!b.aria)))}),a._super()},remove:function(){return this.panel&&(this.panel.remove(),this.panel=null),this._super()}})}),g("tinymce.core.ui.ColorButton",["tinymce.core.ui.PanelButton","tinymce.core.dom.DOMUtils"],function(a,b){"use strict";var c=b.DOM;return a.extend({init:function(a){this._super(a),this.classes.add("colorbutton")},color:function(a){return a?(this._color=a,this.getEl("preview").style.backgroundColor=a,this):this._color},resetColor:function(){return this._color=null,this.getEl("preview").style.backgroundColor=null,this},renderHtml:function(){var a=this,b=a._id,c=a.classPrefix,d=a.state.get("text"),e=a.settings.icon?c+"ico "+c+"i-"+a.settings.icon:"",f=a.settings.image?" style=\"background-image: url('"+a.settings.image+"')\"":"",g="";return d&&(a.classes.add("btn-has-text"),g='<span class="'+c+'txt">'+a.encode(d)+"</span>"),'<div id="'+b+'" class="'+a.classes+'" role="button" tabindex="-1" aria-haspopup="true"><button role="presentation" hidefocus="1" type="button" tabindex="-1">'+(e?'<i class="'+e+'"'+f+"></i>":"")+'<span id="'+b+'-preview" class="'+c+'preview"></span>'+g+'</button><button type="button" class="'+c+'open" hidefocus="1" tabindex="-1"> <i class="'+c+'caret"></i></button></div>'},postRender:function(){var a=this,b=a.settings.onclick;return a.on("click",function(d){d.aria&&"down"==d.aria.key||d.control!=a||c.getParent(d.target,"."+a.classPrefix+"open")||(d.stopImmediatePropagation(),b.call(a,d))}),delete a.settings.onclick,a._super()}})}),g("tinymce.core.util.Color",[],function(){function a(a){function e(a,e,f){var g,h,i,j,k,l;return g=0,h=0,i=0,a/=255,e/=255,f/=255,k=b(a,b(e,f)),l=c(a,c(e,f)),k==l?(i=k,{h:0,s:0,v:100*i}):(j=a==k?e-f:f==k?a-e:f-a,g=a==k?3:f==k?1:5,g=60*(g-j/(l-k)),h=(l-k)/l,i=l,{h:d(g),s:d(100*h),v:d(100*i)})}function f(a,e,f){var g,h,i,j;if(a=(parseInt(a,10)||0)%360,e=parseInt(e,10)/100,f=parseInt(f,10)/100,e=c(0,b(e,1)),f=c(0,b(f,1)),0===e)return void(l=m=n=d(255*f));switch(g=a/60,h=f*e,i=h*(1-Math.abs(g%2-1)),j=f-h,Math.floor(g)){case 0:l=h,m=i,n=0;break;case 1:l=i,m=h,n=0;break;case 2:l=0,m=h,n=i;break;case 3:l=0,m=i,n=h;break;case 4:l=i,m=0,n=h;break;case 5:l=h,m=0,n=i;break;default:l=m=n=0}l=d(255*(l+j)),m=d(255*(m+j)),n=d(255*(n+j))}function g(){function a(a){return a=parseInt(a,10).toString(16),a.length>1?a:"0"+a}return"#"+a(l)+a(m)+a(n)}function h(){return{r:l,g:m,b:n}}function i(){return e(l,m,n)}function j(a){var b;return"object"==typeof a?"r"in a?(l=a.r,m=a.g,n=a.b):"v"in a&&f(a.h,a.s,a.v):(b=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)[^\)]*\)/gi.exec(a))?(l=parseInt(b[1],10),m=parseInt(b[2],10),n=parseInt(b[3],10)):(b=/#([0-F]{2})([0-F]{2})([0-F]{2})/gi.exec(a))?(l=parseInt(b[1],16),m=parseInt(b[2],16),n=parseInt(b[3],16)):(b=/#([0-F])([0-F])([0-F])/gi.exec(a))&&(l=parseInt(b[1]+b[1],16),m=parseInt(b[2]+b[2],16),n=parseInt(b[3]+b[3],16)),l=l<0?0:l>255?255:l,m=m<0?0:m>255?255:m,n=n<0?0:n>255?255:n,k}var k=this,l=0,m=0,n=0;a&&j(a),k.toRgb=h,k.toHsv=i,k.toHex=g,k.parse=j}var b=Math.min,c=Math.max,d=Math.round;return a}),g("tinymce.core.ui.ColorPicker",["tinymce.core.ui.Widget","tinymce.core.ui.DragHelper","tinymce.core.ui.DomUtils","tinymce.core.util.Color"],function(a,b,c,d){"use strict";return a.extend({Defaults:{classes:"widget colorpicker"},init:function(a){this._super(a)},postRender:function(){function a(a,b){var d,e,f=c.getPos(a);return d=b.pageX-f.x,e=b.pageY-f.y,d=Math.max(0,Math.min(d/a.clientWidth,1)),e=Math.max(0,Math.min(e/a.clientHeight,1)),{x:d,y:e}}function e(a,b){var e=(360-a.h)/360;c.css(j,{top:100*e+"%"}),b||c.css(l,{left:a.s+"%",top:100-a.v+"%"}),k.style.background=new d({s:100,v:100,h:a.h}).toHex(),m.color().parse({s:a.s,v:a.v,h:a.h})}function f(b){var c;c=a(k,b),h.s=100*c.x,h.v=100*(1-c.y),e(h),m.fire("change")}function g(b){var c;c=a(i,b),h=n.toHsv(),h.h=360*(1-c.y),e(h,!0),m.fire("change")}var h,i,j,k,l,m=this,n=m.color();i=m.getEl("h"),j=m.getEl("hp"),k=m.getEl("sv"),l=m.getEl("svp"),m._repaint=function(){h=n.toHsv(),e(h)},m._super(),m._svdraghelper=new b(m._id+"-sv",{start:f,drag:f}),m._hdraghelper=new b(m._id+"-h",{start:g,drag:g}),m._repaint()},rgb:function(){return this.color().toRgb()},value:function(a){var b=this;return arguments.length?(b.color().parse(a),void(b._rendered&&b._repaint())):b.color().toHex()},color:function(){return this._color||(this._color=new d),this._color},renderHtml:function(){function a(){var a,b,c,d,g="";for(c="filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=",d=f.split(","),a=0,b=d.length-1;a<b;a++)g+='<div class="'+e+'colorpicker-h-chunk" style="height:'+100/b+"%;"+c+d[a]+",endColorstr="+d[a+1]+");-ms-"+c+d[a]+",endColorstr="+d[a+1]+')"></div>';return g}var b,c=this,d=c._id,e=c.classPrefix,f="#ff0000,#ff0080,#ff00ff,#8000ff,#0000ff,#0080ff,#00ffff,#00ff80,#00ff00,#80ff00,#ffff00,#ff8000,#ff0000",g="background: -ms-linear-gradient(top,"+f+");background: linear-gradient(to bottom,"+f+");";return b='<div id="'+d+'-h" class="'+e+'colorpicker-h" style="'+g+'">'+a()+'<div id="'+d+'-hp" class="'+e+'colorpicker-h-marker"></div></div>','<div id="'+d+'" class="'+c.classes+'"><div id="'+d+'-sv" class="'+e+'colorpicker-sv"><div class="'+e+'colorpicker-overlay1"><div class="'+e+'colorpicker-overlay2"><div id="'+d+'-svp" class="'+e+'colorpicker-selector1"><div class="'+e+'colorpicker-selector2"></div></div></div></div></div>'+b+"</div>"}})}),g("tinymce.core.ui.Path",["tinymce.core.ui.Widget"],function(a){"use strict";return a.extend({init:function(a){var b=this;a.delimiter||(a.delimiter="\xbb"),b._super(a),b.classes.add("path"),b.canFocus=!0,b.on("click",function(a){var c,d=a.target;(c=d.getAttribute("data-index"))&&b.fire("select",{value:b.row()[c],index:c})}),b.row(b.settings.row)},focus:function(){var a=this;return a.getEl().firstChild.focus(),a},row:function(a){return arguments.length?(this.state.set("row",a),this):this.state.get("row")},renderHtml:function(){var a=this;return'<div id="'+a._id+'" class="'+a.classes+'">'+a._getDataPathHtml(a.state.get("row"))+"</div>"},bindStates:function(){var a=this;return a.state.on("change:row",function(b){a.innerHtml(a._getDataPathHtml(b.value))}),a._super()},_getDataPathHtml:function(a){var b,c,d=this,e=a||[],f="",g=d.classPrefix;for(b=0,c=e.length;b<c;b++)f+=(b>0?'<div class="'+g+'divider" aria-hidden="true"> '+d.settings.delimiter+" </div>":"")+'<div role="button" class="'+g+"path-item"+(b==c-1?" "+g+"last":"")+'" data-index="'+b+'" tabindex="-1" id="'+d._id+"-"+b+'" aria-level="'+(b+1)+'">'+e[b].name+"</div>";return f||(f='<div class="'+g+'path-item">\xa0</div>'),f}})}),g("tinymce.core.ui.ElementPath",["tinymce.core.ui.Path"],function(a){return a.extend({postRender:function(){function a(a){if(1===a.nodeType){if("BR"==a.nodeName||a.getAttribute("data-mce-bogus"))return!0;if("bookmark"===a.getAttribute("data-mce-type"))return!0}return!1}var b=this,c=b.settings.editor;return c.settings.elementpath!==!1&&(b.on("select",function(a){c.focus(),c.selection.select(this.row()[a.index].element),c.nodeChanged()}),c.on("nodeChange",function(d){for(var e=[],f=d.parents,g=f.length;g--;)if(1==f[g].nodeType&&!a(f[g])){var h=c.fire("ResolveName",{name:f[g].nodeName.toLowerCase(),target:f[g]});if(h.isDefaultPrevented()||e.push({name:h.name,element:f[g]}),h.isPropagationStopped())break}b.row(e)})),b._super()}})}),g("tinymce.core.ui.FormItem",["tinymce.core.ui.Container"],function(a){"use strict";return a.extend({Defaults:{layout:"flex",align:"center",defaults:{flex:1}},renderHtml:function(){var a=this,b=a._layout,c=a.classPrefix;return a.classes.add("formitem"),b.preRender(a),'<div id="'+a._id+'" class="'+a.classes+'" hidefocus="1" tabindex="-1">'+(a.settings.title?'<div id="'+a._id+'-title" class="'+c+'title">'+a.settings.title+"</div>":"")+'<div id="'+a._id+'-body" class="'+a.bodyClasses+'">'+(a.settings.html||"")+b.renderHtml(a)+"</div></div>"}})}),g("tinymce.core.ui.Form",["tinymce.core.ui.Container","tinymce.core.ui.FormItem","tinymce.core.util.Tools"],function(a,b,c){"use strict";return a.extend({Defaults:{containerCls:"form",layout:"flex",direction:"column",align:"stretch",flex:1,padding:20,labelGap:30,spacing:10,callbacks:{submit:function(){this.submit()}}},preRender:function(){var a=this,d=a.items();a.settings.formItemDefaults||(a.settings.formItemDefaults={layout:"flex",autoResize:"overflow",defaults:{flex:1}}),d.each(function(d){var e,f=d.settings.label;f&&(e=new b(c.extend({items:{type:"label",id:d._id+"-l",text:f,flex:0,forId:d._id,disabled:d.disabled()}},a.settings.formItemDefaults)),e.type="formitem",d.aria("labelledby",d._id+"-l"),"undefined"==typeof d.settings.flex&&(d.settings.flex=1),a.replace(d,e),e.add(d))})},submit:function(){return this.fire("submit",{data:this.toJSON()})},postRender:function(){var a=this;a._super(),a.fromJSON(a.settings.data)},bindStates:function(){function a(){var a,c,d,e=0,f=[];if(b.settings.labelGapCalc!==!1)for(d="children"==b.settings.labelGapCalc?b.find("formitem"):b.items(),d.filter("formitem").each(function(a){var b=a.items()[0],c=b.getEl().clientWidth;e=c>e?c:e,f.push(b)}),c=b.settings.labelGap||0,a=f.length;a--;)f[a].settings.minWidth=e+c}var b=this;b._super(),b.on("show",a),a()}})}),g("tinymce.core.ui.FieldSet",["tinymce.core.ui.Form"],function(a){"use strict";return a.extend({Defaults:{containerCls:"fieldset",layout:"flex",direction:"column",align:"stretch",flex:1,padding:"25 15 5 15",labelGap:30,spacing:10,border:1},renderHtml:function(){var a=this,b=a._layout,c=a.classPrefix;return a.preRender(),b.preRender(a),'<fieldset id="'+a._id+'" class="'+a.classes+'" hidefocus="1" tabindex="-1">'+(a.settings.title?'<legend id="'+a._id+'-title" class="'+c+'fieldset-title">'+a.settings.title+"</legend>":"")+'<div id="'+a._id+'-body" class="'+a.bodyClasses+'">'+(a.settings.html||"")+b.renderHtml(a)+"</div></fieldset>"}})}),g("tinymce.core.content.LinkTargets",["ephox.sugar.api.node.Element","ephox.sugar.api.search.SelectorFilter","tinymce.core.dom.DOMUtils","tinymce.core.dom.NodeType","tinymce.core.util.Arr","tinymce.core.util.Fun","tinymce.core.util.Tools","tinymce.core.util.Uuid"],function(a,b,c,d,e,f,g,h){var i=g.trim,j=function(a,b,c,d,e){return{type:a,title:b,url:c,level:d,attach:e}},k=function(a){for(;a=a.parentNode;){var b=a.contentEditable;if(b&&"inherit"!==b)return d.isContentEditableTrue(a)}return!1},l=function(c,d){return e.map(b.descendants(a.fromDom(d),c),function(a){return a.dom()})},m=function(a){return a.innerText||a.textContent},n=function(a){return a.id?a.id:h.uuid("h")},o=function(a){return a&&"A"===a.nodeName&&(a.id||a.name)},p=function(a){return o(a)&&r(a)},q=function(a){return a&&/^(H[1-6])$/.test(a.nodeName)},r=function(a){return k(a)&&!d.isContentEditableFalse(a)},s=function(a){return q(a)&&r(a)},t=function(a){return q(a)?parseInt(a.nodeName.substr(1),10):0},u=function(a){var b=n(a),c=function(){a.id=b};return j("header",m(a),"#"+b,t(a),c)},v=function(a){var b=a.id||a.name,c=m(a);return j("anchor",c?c:"#"+b,"#"+b,0,f.noop)},w=function(a){return e.map(e.filter(a,s),u)},x=function(a){return e.map(e.filter(a,p),v)},y=function(a){var b=l("h1,h2,h3,h4,h5,h6,a:not([href])",a);return b},z=function(a){return i(a.title).length>0},A=function(a){var b=y(a);return e.filter(w(b).concat(x(b)),z)};return{find:A}}),g("tinymce.core.ui.FilePicker",["ephox.katamari.api.Arr","ephox.katamari.api.Fun","global!window","tinymce.core.content.LinkTargets","tinymce.core.EditorManager","tinymce.core.ui.ComboBox","tinymce.core.util.Tools"],function(a,b,c,d,e,f,g){"use strict";var h=function(){return c.tinymce?c.tinymce.activeEditor:e.activeEditor},i={},j=5,k=function(a){return{title:a.title,value:{title:{raw:a.title},url:a.url,attach:a.attach}}},l=function(a){return g.map(a,k)},m=function(a,c){return{title:a,value:{title:a,url:c,attach:b.noop}}},n=function(b,c){var d=a.exists(c,function(a){return a.url===b});return!d},o=function(a,b,c){var d=b in a?a[b]:c;return d===!1?null:d},p=function(c,d,e,f){var h={title:"-"},j=function(c){var f=c.hasOwnProperty(e)?c[e]:[],h=a.filter(f,function(a){return n(a,d)});return g.map(h,function(a){return{title:a,value:{title:a,url:a,attach:b.noop}}})},k=function(b){var c=a.filter(d,function(a){return a.type===b});return l(c)},p=function(){var a=k("anchor"),b=o(f,"anchor_top","#top"),c=o(f,"anchor_bottom","#bottom");return null!==b&&a.unshift(m("<top>",b)),null!==c&&a.push(m("<bottom>",c)),a},q=function(b){return a.foldl(b,function(a,b){var c=0===a.length||0===b.length;return c?a.concat(b):a.concat(h,b)},[])};return f.typeahead_urls===!1?[]:"file"===e?q([r(c,j(i)),r(c,k("header")),r(c,p())]):r(c,j(i))},q=function(b,c){var d=i[c];/^https?/.test(b)&&(d?a.indexOf(d,b)===-1&&(i[c]=d.slice(0,j).concat(b)):i[c]=[b])},r=function(a,b){var c=a.toLowerCase(),d=g.grep(b,function(a){return a.title.toLowerCase().indexOf(c)!==-1});return 1===d.length&&d[0].title===a?[]:d},s=function(a){var b=a.title;return b.raw?b.raw:b},t=function(a,b,c,e){var f=function(f){var g=d.find(c),h=p(f,g,e,b);a.showAutoComplete(h,f)};a.on("autocomplete",function(){f(a.value())}),a.on("selectitem",function(b){var c=b.value;a.value(c.url);var d=s(c);"image"===e?a.fire("change",{meta:{alt:d,attach:c.attach}}):a.fire("change",{meta:{text:d,attach:c.attach}}),a.focus()}),a.on("click",function(b){0===a.value().length&&"INPUT"===b.target.nodeName&&f("")}),a.on("PostRender",function(){a.getRoot().on("submit",function(b){b.isDefaultPrevented()||q(a.value(),e)})})},u=function(a){var b=a.status,c=a.message;return"valid"===b?{status:"ok",message:c}:"unknown"===b?{status:"warn",message:c}:"invalid"===b?{status:"warn",message:c}:{status:"none",message:""}},v=function(a,b,c){var d=b.filepicker_validator_handler;if(d){var e=function(b){return 0===b.length?void a.statusLevel("none"):void d({url:b,type:c},function(b){var c=u(b);a.statusMessage(c.message),a.statusLevel(c.status)})};a.state.on("change:value",function(a){e(a.value)})}};return f.extend({init:function(a){var b,d,e,f=this,i=h(),j=i.settings,k=a.filetype;a.spellcheck=!1,e=j.file_picker_types||j.file_browser_callback_types,e&&(e=g.makeMap(e,/[, ]/)),e&&!e[k]||(d=j.file_picker_callback,!d||e&&!e[k]?(d=j.file_browser_callback,!d||e&&!e[k]||(b=function(){d(f.getEl("inp").id,f.value(),k,c)})):b=function(){var a=f.fire("beforecall").meta;a=g.extend({filetype:k},a),d.call(i,function(a,b){f.value(a).fire("change",{meta:b})},f.value(),a)}),b&&(a.icon="browse",a.onaction=b),f._super(a),t(f,j,i.getBody(),k),v(f,j,k)}})}),g("tinymce.core.ui.FitLayout",["tinymce.core.ui.AbsoluteLayout"],function(a){"use strict";return a.extend({recalc:function(a){var b=a.layoutRect(),c=a.paddingBox;a.items().filter(":visible").each(function(a){a.layoutRect({x:c.left,y:c.top,w:b.innerW-c.right-c.left,h:b.innerH-c.top-c.bottom}),a.recalc&&a.recalc()})}})}),g("tinymce.core.ui.FlexLayout",["tinymce.core.ui.AbsoluteLayout"],function(a){"use strict";return a.extend({recalc:function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N=[],O=Math.max,P=Math.min;for(d=a.items().filter(":visible"),e=a.layoutRect(),f=a.paddingBox,g=a.settings,m=a.isRtl()?g.direction||"row-reversed":g.direction,h=g.align,i=a.isRtl()?g.pack||"end":g.pack,j=g.spacing||0,"row-reversed"!=m&&"column-reverse"!=m||(d=d.set(d.toArray().reverse()),m=m.split("-")[0]),"column"==m?(z="y",x="h",y="minH",A="maxH",C="innerH",B="top",D="deltaH",E="contentH",J="left",H="w",F="x",G="innerW",I="minW",K="right",L="deltaW",M="contentW"):(z="x",x="w",y="minW",A="maxW",C="innerW",B="left",D="deltaW",E="contentW",J="top",H="h",F="y",G="innerH",I="minH",K="bottom",L="deltaH",M="contentH"),l=e[C]-f[B]-f[B],w=k=0,b=0,c=d.length;b<c;b++)n=d[b],o=n.layoutRect(),p=n.settings,q=p.flex,l-=b<c-1?j:0,q>0&&(k+=q,o[A]&&N.push(n),o.flex=q),l-=o[y],r=f[J]+o[I]+f[K],r>w&&(w=r);if(u={},l<0?u[y]=e[y]-l+e[D]:u[y]=e[C]-l+e[D],u[I]=w+e[L],u[E]=e[C]-l,u[M]=w,u.minW=P(u.minW,e.maxW),u.minH=P(u.minH,e.maxH),u.minW=O(u.minW,e.startMinWidth),u.minH=O(u.minH,e.startMinHeight),!e.autoResize||u.minW==e.minW&&u.minH==e.minH){for(t=l/k,b=0,c=N.length;b<c;b++)n=N[b],o=n.layoutRect(),s=o[A],r=o[y]+o.flex*t,r>s?(l-=o[A]-o[y],k-=o.flex,o.flex=0,o.maxFlexSize=s):o.maxFlexSize=0;for(t=l/k,v=f[B],u={},0===k&&("end"==i?v=l+f[B]:"center"==i?(v=Math.round(e[C]/2-(e[C]-l)/2)+f[B],v<0&&(v=f[B])):"justify"==i&&(v=f[B],j=Math.floor(l/(d.length-1)))),u[F]=f[J],b=0,c=d.length;b<c;b++)n=d[b],o=n.layoutRect(),r=o.maxFlexSize||o[y],"center"===h?u[F]=Math.round(e[G]/2-o[H]/2):"stretch"===h?(u[H]=O(o[I]||0,e[G]-f[J]-f[K]),u[F]=f[J]):"end"===h&&(u[F]=e[G]-o[H]-f.top),o.flex>0&&(r+=o.flex*t),u[x]=r,u[z]=v,n.layoutRect(u),n.recalc&&n.recalc(),v+=r+j}else if(u.w=u.minW,u.h=u.minH,a.layoutRect(u),this.recalc(a),null===a._lastRect){var Q=a.parent();Q&&(Q._lastRect=null,Q.recalc())}}})}),g("tinymce.core.ui.FlowLayout",["tinymce.core.ui.Layout"],function(a){return a.extend({Defaults:{containerClass:"flow-layout",controlClass:"flow-layout-item",endClass:"break"},recalc:function(a){a.items().filter(":visible").each(function(a){a.recalc&&a.recalc()})},isNative:function(){return!0}})}),g("tinymce.core.fmt.FontInfo",["ephox.katamari.api.Fun","ephox.katamari.api.Option","ephox.sugar.api.node.Element","ephox.sugar.api.node.Node","tinymce.core.dom.DOMUtils"],function(a,b,c,d,e){var f=function(a,c,d){for(;d!==c;){if(d.style[a]){var e=d.style[a];return""!==e?b.some(e):b.none()}d=d.parentNode}return b.none()},g=function(a){return/[0-9.]+px$/.test(a)?Math.round(72*parseInt(a,10)/96)+"pt":a},h=function(a){return a.replace(/[\'\"]/g,"").replace(/,\s+/g,",")},i=function(a,c){return b.from(e.DOM.getStyle(c,a,!0))},j=function(a){return function(e,g){return b.from(g).map(c.fromDom).filter(d.isElement).bind(function(b){return f(a,e,b.dom()).or(i(a,b.dom()))}).getOr("")}};return{getFontSize:j("fontSize"),getFontFamily:a.compose(h,j("fontFamily")),toPt:g}}),g("tinymce.core.ui.FormatControls",["ephox.katamari.api.Arr","ephox.katamari.api.Fun","ephox.sugar.api.node.Element","ephox.sugar.api.search.SelectorFind","tinymce.core.dom.DOMUtils","tinymce.core.EditorManager","tinymce.core.Env","tinymce.core.fmt.FontInfo","tinymce.core.ui.Control","tinymce.core.ui.FloatPanel","tinymce.core.ui.Widget","tinymce.core.util.Tools"],function(a,b,c,d,e,f,g,h,i,j,k,l){function m(a){a.settings.ui_container&&(g.container=d.descendant(c.fromDom(document.body),a.settings.ui_container).fold(b.constant(null),function(a){return a.dom()}))}function n(a){a.on("ScriptsLoaded",function(){a.rtl&&(i.rtl=!0)})}function o(a){function b(b,c){return function(){var d=this;a.on("nodeChange",function(e){var f=a.formatter,g=null;p(e.parents,function(a){if(p(b,function(b){if(c?f.matchNode(a,c,{value:b.value})&&(g=b.value):f.matchNode(a,b.value)&&(g=b.value),g)return!1}),g)return!1}),d.value(g)})}}function c(b){return function(){var c=this,d=function(a){return a?a.split(",")[0]:""};a.on("init nodeChange",function(e){var f,g=null;f=h.getFontFamily(a.getBody(),e.element),p(b,function(a){a.value.toLowerCase()===f.toLowerCase()&&(g=a.value)}),p(b,function(a){g||d(a.value).toLowerCase()!==d(f).toLowerCase()||(g=a.value)}),c.value(g),!g&&f&&c.text(d(f))})}}function d(b){return function(){var c=this;a.on("init nodeChange",function(d){var e,f,g=null;e=h.getFontSize(a.getBody(),d.element),f=h.toPt(e),p(b,function(a){a.value===e?g=e:a.value===f&&(g=f)}),c.value(g),g||c.text(f)})}}function e(a){a=a.replace(/;$/,"").split(";");for(var b=a.length;b--;)a[b]=a[b].split("=");return a}function f(){function b(a){var c=[];if(a)return p(a,function(a){var f={text:a.title,icon:a.icon};if(a.items)f.menu=b(a.items);else{var g=a.format||"custom"+d++;a.format||(a.name=g,e.push(a)),f.format=g,f.cmd=a.cmd}c.push(f)}),c}function c(){var c;return c=b(a.settings.style_formats_merge?a.settings.style_formats?f.concat(a.settings.style_formats):f:a.settings.style_formats||f)}var d=0,e=[],f=[{title:"Headings",items:[{title:"Heading 1",format:"h1"},{title:"Heading 2",format:"h2"},{title:"Heading 3",format:"h3"},{title:"Heading 4",format:"h4"},{title:"Heading 5",format:"h5"},{title:"Heading 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}];return a.on("init",function(){p(e,function(b){a.formatter.register(b.name,b)})}),{type:"menu",items:c(),onPostRender:function(b){a.fire("renderFormatsMenu",{control:b.control})},itemDefaults:{preview:!0,textStyle:function(){if(this.settings.format)return a.formatter.getCssText(this.settings.format)},onPostRender:function(){var b=this;b.parent().on("show",function(){var c,d;c=b.settings.format,c&&(b.disabled(!a.formatter.canApply(c)),b.active(a.formatter.match(c))),d=b.settings.cmd,d&&b.active(a.queryCommandState(d))})},onclick:function(){this.settings.format&&m(this.settings.format),this.settings.cmd&&a.execCommand(this.settings.cmd)}}}}function g(b){return function(){var c=this;a.formatter?a.formatter.formatChanged(b,function(a){c.active(a)}):a.on("init",function(){a.formatter.formatChanged(b,function(a){c.active(a)})})}}function i(b){return function(){function c(){var c="redo"==b?"hasRedo":"hasUndo";return!!a.undoManager&&a.undoManager[c]()}var d=this;d.disabled(!c()),a.on("Undo Redo AddUndo TypingUndo ClearUndos SwitchMode",function(){d.disabled(a.readonly||!c())})}}function k(){var b=this;a.on("VisualAid",function(a){b.active(a.hasVisual)}),b.active(a.hasVisual)}function m(b){b.control&&(b=b.control.value()),b&&a.execCommand("mceToggleFormat",!1,b)}function n(b){var c=b.length;return l.each(b,function(b){b.menu&&(b.hidden=0===n(b.menu));var d=b.format;d&&(b.hidden=!a.formatter.canApply(d)),b.hidden&&c--}),c}function o(b){var c=b.items().length;return b.items().each(function(b){b.menu&&b.visible(o(b.menu)>0),!b.menu&&b.settings.menu&&b.visible(n(b.settings.menu)>0);var d=b.settings.format;d&&b.visible(a.formatter.canApply(d)),b.visible()||c--}),c}var r;r=f(),p({bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript"},function(b,c){a.addButton(c,{tooltip:b,onPostRender:g(c),onclick:function(){m(c)}})}),p({outdent:["Decrease indent","Outdent"],indent:["Increase indent","Indent"],cut:["Cut","Cut"],copy:["Copy","Copy"],paste:["Paste","Paste"],help:["Help","mceHelp"],selectall:["Select all","SelectAll"],removeformat:["Clear formatting","RemoveFormat"],visualaid:["Visual aids","mceToggleVisualAid"],newdocument:["New document","mceNewDocument"]},function(b,c){a.addButton(c,{tooltip:b[0],cmd:b[1]})}),p({blockquote:["Blockquote","mceBlockQuote"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],alignleft:["Align left","JustifyLeft"],aligncenter:["Align center","JustifyCenter"],alignright:["Align right","JustifyRight"],alignjustify:["Justify","JustifyFull"],alignnone:["No alignment","JustifyNone"]},function(b,c){a.addButton(c,{tooltip:b[0],cmd:b[1],onPostRender:g(c)})});var s=function(a){var b=a;return b.length>0&&"-"===b[0].text&&(b=b.slice(1)),b.length>0&&"-"===b[b.length-1].text&&(b=b.slice(0,b.length-1)),b},t=function(b){var c,d;if("string"==typeof b)d=b.split(" ");else if(l.isArray(b))return q(l.map(b,t));return c=l.grep(d,function(b){return"|"===b||b in a.menuItems}),l.map(c,function(b){return"|"===b?{text:"-"}:a.menuItems[b]})},u=function(b){var c=[{text:"-"}],d=l.grep(a.menuItems,function(a){return a.context===b});return l.each(d,function(a){"before"==a.separator&&c.push({text:"|"}),a.prependToContext?c.unshift(a):c.push(a),"after"==a.separator&&c.push({text:"|"})}),c},v=function(a){return s(a.insert_button_items?t(a.insert_button_items):u("insert"))};a.addButton("undo",{tooltip:"Undo",onPostRender:i("undo"),cmd:"undo"}),a.addButton("redo",{tooltip:"Redo",onPostRender:i("redo"),cmd:"redo"}),a.addMenuItem("newdocument",{text:"New document",icon:"newdocument",cmd:"mceNewDocument"}),a.addMenuItem("undo",{text:"Undo",icon:"undo",shortcut:"Meta+Z",onPostRender:i("undo"),cmd:"undo"}),a.addMenuItem("redo",{text:"Redo",icon:"redo",shortcut:"Meta+Y",onPostRender:i("redo"),cmd:"redo"}),a.addMenuItem("visualaid",{text:"Visual aids",selectable:!0,onPostRender:k,cmd:"mceToggleVisualAid"}),a.addButton("remove",{tooltip:"Remove",icon:"remove",cmd:"Delete"}),a.addButton("insert",{type:"menubutton",icon:"insert",menu:[],oncreatemenu:function(){this.menu.add(v(a.settings)),this.menu.renderNew()}}),p({cut:["Cut","Cut","Meta+X"],copy:["Copy","Copy","Meta+C"],paste:["Paste","Paste","Meta+V"],selectall:["Select all","SelectAll","Meta+A"],bold:["Bold","Bold","Meta+B"],italic:["Italic","Italic","Meta+I"],underline:["Underline","Underline","Meta+U"],strikethrough:["Strikethrough","Strikethrough"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],removeformat:["Clear formatting","RemoveFormat"]},function(b,c){a.addMenuItem(c,{text:b[0],icon:c,shortcut:b[2],cmd:b[1]})}),a.on("mousedown",function(){j.hideAll()}),a.addButton("styleselect",{type:"menubutton",text:"Formats",menu:r,onShowMenu:function(){a.settings.style_formats_autohide&&o(this.menu)}}),a.addButton("formatselect",function(){var c=[],d=e(a.settings.block_formats||"Paragraph=p;Heading 1=h1;Heading 2=h2;Heading 3=h3;Heading 4=h4;Heading 5=h5;Heading 6=h6;Preformatted=pre");return p(d,function(b){c.push({text:b[0],value:b[1],textStyle:function(){return a.formatter.getCssText(b[1])}})}),{type:"listbox",text:d[0][0],values:c,fixedWidth:!0,onselect:m,onPostRender:b(c)}}),a.addButton("fontselect",function(){var b="Andale Mono=andale mono,monospace;Arial=arial,helvetica,sans-serif;Arial Black=arial black,sans-serif;Book Antiqua=book antiqua,palatino,serif;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,palatino,serif;Helvetica=helvetica,arial,sans-serif;Impact=impact,sans-serif;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco,monospace;Times New Roman=times new roman,times,serif;Trebuchet MS=trebuchet ms,geneva,sans-serif;Verdana=verdana,geneva,sans-serif;Webdings=webdings;Wingdings=wingdings,zapf dingbats",d=[],f=e(a.settings.font_formats||b);return p(f,function(a){d.push({text:{raw:a[0]},value:a[1],textStyle:a[1].indexOf("dings")==-1?"font-family:"+a[1]:""})}),{type:"listbox",text:"Font Family",tooltip:"Font Family",values:d,fixedWidth:!0,onPostRender:c(d),onselect:function(b){b.control.settings.value&&a.execCommand("FontName",!1,b.control.settings.value)}}}),a.addButton("fontsizeselect",function(){var b=[],c="8pt 10pt 12pt 14pt 18pt 24pt 36pt",e=a.settings.fontsize_formats||c;return p(e.split(" "),function(a){var c=a,d=a,e=a.split("=");e.length>1&&(c=e[0],d=e[1]),b.push({text:c,value:d})}),{type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:b,fixedWidth:!0,onPostRender:d(b),onclick:function(b){b.control.settings.value&&a.execCommand("FontSize",!1,b.control.settings.value)}}}),a.addMenuItem("formats",{text:"Formats",menu:r})}var p=l.each,q=function(b){return a.foldl(b,function(a,b){return a.concat(b)},[])};return f.on("AddEditor",function(a){var b=a.editor;n(b),o(b),m(b)}),i.translate=function(a){return f.translate(a)},k.tooltips=!g.iOS,{}}),g("tinymce.core.ui.GridLayout",["tinymce.core.ui.AbsoluteLayout"],function(a){"use strict";return a.extend({recalc:function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E=[],F=[];b=a.settings,e=a.items().filter(":visible"),f=a.layoutRect(),d=b.columns||Math.ceil(Math.sqrt(e.length)),c=Math.ceil(e.length/d),s=b.spacingH||b.spacing||0,t=b.spacingV||b.spacing||0,u=b.alignH||b.align,v=b.alignV||b.align,q=a.paddingBox,C="reverseRows"in b?b.reverseRows:a.isRtl(),u&&"string"==typeof u&&(u=[u]),v&&"string"==typeof v&&(v=[v]);for(l=0;l<d;l++)E.push(0);for(m=0;m<c;m++)F.push(0);for(m=0;m<c;m++)for(l=0;l<d&&(k=e[m*d+l],k);l++)j=k.layoutRect(),y=j.minW,z=j.minH,E[l]=y>E[l]?y:E[l],F[m]=z>F[m]?z:F[m];for(A=f.innerW-q.left-q.right,w=0,l=0;l<d;l++)w+=E[l]+(l>0?s:0),A-=(l>0?s:0)+E[l];for(B=f.innerH-q.top-q.bottom,x=0,m=0;m<c;m++)x+=F[m]+(m>0?t:0),B-=(m>0?t:0)+F[m];if(w+=q.left+q.right,x+=q.top+q.bottom,i={},i.minW=w+(f.w-f.innerW),i.minH=x+(f.h-f.innerH),i.contentW=i.minW-f.deltaW,i.contentH=i.minH-f.deltaH,i.minW=Math.min(i.minW,f.maxW),i.minH=Math.min(i.minH,f.maxH),i.minW=Math.max(i.minW,f.startMinWidth),i.minH=Math.max(i.minH,f.startMinHeight),!f.autoResize||i.minW==f.minW&&i.minH==f.minH){f.autoResize&&(i=a.layoutRect(i),i.contentW=i.minW-f.deltaW,i.contentH=i.minH-f.deltaH);var G;G="start"==b.packV?0:B>0?Math.floor(B/c):0;var H=0,I=b.flexWidths;if(I)for(l=0;l<I.length;l++)H+=I[l];else H=d;var J=A/H;for(l=0;l<d;l++)E[l]+=I?I[l]*J:J;for(o=q.top,m=0;m<c;m++){for(n=q.left,h=F[m]+G,l=0;l<d&&(D=C?m*d+d-1-l:m*d+l,k=e[D],k);l++)p=k.settings,j=k.layoutRect(),g=Math.max(E[l],j.startMinWidth),j.x=n,j.y=o,r=p.alignH||(u?u[l]||u[0]:null),"center"==r?j.x=n+g/2-j.w/2:"right"==r?j.x=n+g-j.w:"stretch"==r&&(j.w=g),r=p.alignV||(v?v[l]||v[0]:null),"center"==r?j.y=o+h/2-j.h/2:"bottom"==r?j.y=o+h-j.h:"stretch"==r&&(j.h=h),k.layoutRect(j),n+=g+s,k.recalc&&k.recalc();o+=h+t}}else if(i.w=i.minW,i.h=i.minH,a.layoutRect(i),this.recalc(a),null===a._lastRect){var K=a.parent();K&&(K._lastRect=null,K.recalc())}}})}),g("tinymce.core.ui.Iframe",["tinymce.core.ui.Widget","tinymce.core.util.Delay"],function(a,b){"use strict";return a.extend({renderHtml:function(){var a=this;return a.classes.add("iframe"),a.canFocus=!1,'<iframe id="'+a._id+'" class="'+a.classes+'" tabindex="-1" src="'+(a.settings.url||"javascript:''")+'" frameborder="0"></iframe>'},src:function(a){this.getEl().src=a},html:function(a,c){ -var d=this,e=this.getEl().contentWindow.document.body;return e?(e.innerHTML=a,c&&c()):b.setTimeout(function(){d.html(a)}),this}})}),g("tinymce.core.ui.InfoBox",["tinymce.core.ui.Widget"],function(a){"use strict";return a.extend({init:function(a){var b=this;b._super(a),b.classes.add("widget").add("infobox"),b.canFocus=!1},severity:function(a){this.classes.remove("error"),this.classes.remove("warning"),this.classes.remove("success"),this.classes.add(a)},help:function(a){this.state.set("help",a)},renderHtml:function(){var a=this,b=a.classPrefix;return'<div id="'+a._id+'" class="'+a.classes+'"><div id="'+a._id+'-body">'+a.encode(a.state.get("text"))+'<button role="button" tabindex="-1"><i class="'+b+"ico "+b+'i-help"></i></button></div></div>'},bindStates:function(){var a=this;return a.state.on("change:text",function(b){a.getEl("body").firstChild.data=a.encode(b.value),a.state.get("rendered")&&a.updateLayoutRect()}),a.state.on("change:help",function(b){a.classes.toggle("has-help",b.value),a.state.get("rendered")&&a.updateLayoutRect()}),a._super()}})}),g("tinymce.core.ui.Label",["tinymce.core.ui.Widget","tinymce.core.ui.DomUtils"],function(a,b){"use strict";return a.extend({init:function(a){var b=this;b._super(a),b.classes.add("widget").add("label"),b.canFocus=!1,a.multiline&&b.classes.add("autoscroll"),a.strong&&b.classes.add("strong")},initLayoutRect:function(){var a=this,c=a._super();if(a.settings.multiline){var d=b.getSize(a.getEl());d.width>c.maxW&&(c.minW=c.maxW,a.classes.add("multiline")),a.getEl().style.width=c.minW+"px",c.startMinH=c.h=c.minH=Math.min(c.maxH,b.getSize(a.getEl()).height)}return c},repaint:function(){var a=this;return a.settings.multiline||(a.getEl().style.lineHeight=a.layoutRect().h+"px"),a._super()},severity:function(a){this.classes.remove("error"),this.classes.remove("warning"),this.classes.remove("success"),this.classes.add(a)},renderHtml:function(){var a,b,c=this,d=c.settings.forId,e=c.settings.html?c.settings.html:c.encode(c.state.get("text"));return!d&&(b=c.settings.forName)&&(a=c.getRoot().find("#"+b)[0],a&&(d=a._id)),d?'<label id="'+c._id+'" class="'+c.classes+'"'+(d?' for="'+d+'"':"")+">"+e+"</label>":'<span id="'+c._id+'" class="'+c.classes+'">'+e+"</span>"},bindStates:function(){var a=this;return a.state.on("change:text",function(b){a.innerHtml(a.encode(b.value)),a.state.get("rendered")&&a.updateLayoutRect()}),a._super()}})}),g("tinymce.core.ui.Toolbar",["tinymce.core.ui.Container"],function(a){"use strict";return a.extend({Defaults:{role:"toolbar",layout:"flow"},init:function(a){var b=this;b._super(a),b.classes.add("toolbar")},postRender:function(){var a=this;return a.items().each(function(a){a.classes.add("toolbar-item")}),a._super()}})}),g("tinymce.core.ui.MenuBar",["tinymce.core.ui.Toolbar"],function(a){"use strict";return a.extend({Defaults:{role:"menubar",containerCls:"menubar",ariaRoot:!0,defaults:{type:"menubutton"}}})}),g("tinymce.core.ui.MenuButton",["tinymce.core.ui.Button","tinymce.core.ui.Factory","tinymce.core.ui.MenuBar"],function(a,b,c){"use strict";function d(a,b){for(;a;){if(b===a)return!0;a=a.parentNode}return!1}var e=a.extend({init:function(a){var b=this;b._renderOpen=!0,b._super(a),a=b.settings,b.classes.add("menubtn"),a.fixedWidth&&b.classes.add("fixed-width"),b.aria("haspopup",!0),b.state.set("menu",a.menu||b.render())},showMenu:function(a){var c,d=this;return d.menu&&d.menu.visible()&&a!==!1?d.hideMenu():(d.menu||(c=d.state.get("menu")||[],c.length?c={type:"menu",items:c}:c.type=c.type||"menu",c.renderTo?d.menu=c.parent(d).show().renderTo():d.menu=b.create(c).parent(d).renderTo(),d.fire("createmenu"),d.menu.reflow(),d.menu.on("cancel",function(a){a.control.parent()===d.menu&&(a.stopPropagation(),d.focus(),d.hideMenu())}),d.menu.on("select",function(){d.focus()}),d.menu.on("show hide",function(a){a.control==d.menu&&d.activeMenu("show"==a.type),d.aria("expanded","show"==a.type)}).fire("show")),d.menu.show(),d.menu.layoutRect({w:d.layoutRect().w}),d.menu.moveRel(d.getEl(),d.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"]),void d.fire("showmenu"))},hideMenu:function(){var a=this;a.menu&&(a.menu.items().each(function(a){a.hideMenu&&a.hideMenu()}),a.menu.hide())},activeMenu:function(a){this.classes.toggle("active",a)},renderHtml:function(){var a,b=this,d=b._id,e=b.classPrefix,f=b.settings.icon,g=b.state.get("text"),h="";return a=b.settings.image,a?(f="none","string"!=typeof a&&(a=window.getSelection?a[0]:a[1]),a=" style=\"background-image: url('"+a+"')\""):a="",g&&(b.classes.add("btn-has-text"),h='<span class="'+e+'txt">'+b.encode(g)+"</span>"),f=b.settings.icon?e+"ico "+e+"i-"+f:"",b.aria("role",b.parent()instanceof c?"menuitem":"button"),'<div id="'+d+'" class="'+b.classes+'" tabindex="-1" aria-labelledby="'+d+'"><button id="'+d+'-open" role="presentation" type="button" tabindex="-1">'+(f?'<i class="'+f+'"'+a+"></i>":"")+h+' <i class="'+e+'caret"></i></button></div>'},postRender:function(){var a=this;return a.on("click",function(b){b.control===a&&d(b.target,a.getEl())&&(a.focus(),a.showMenu(!b.aria),b.aria&&a.menu.items().filter(":visible")[0].focus())}),a.on("mouseenter",function(b){var c,d=b.control,f=a.parent();d&&f&&d instanceof e&&d.parent()==f&&(f.items().filter("MenuButton").each(function(a){a.hideMenu&&a!=d&&(a.menu&&a.menu.visible()&&(c=!0),a.hideMenu())}),c&&(d.focus(),d.showMenu()))}),a._super()},bindStates:function(){var a=this;return a.state.on("change:menu",function(){a.menu&&a.menu.remove(),a.menu=null}),a._super()},remove:function(){this._super(),this.menu&&this.menu.remove()}});return e}),g("tinymce.core.ui.MenuItem",["tinymce.core.ui.Widget","tinymce.core.ui.Factory","tinymce.core.Env","tinymce.core.util.Delay"],function(a,b,c,d){"use strict";return a.extend({Defaults:{border:0,role:"menuitem"},init:function(a){var b,c=this;c._super(a),a=c.settings,c.classes.add("menu-item"),a.menu&&c.classes.add("menu-item-expand"),a.preview&&c.classes.add("menu-item-preview"),b=c.state.get("text"),"-"!==b&&"|"!==b||(c.classes.add("menu-item-sep"),c.aria("role","separator"),c.state.set("text","-")),a.selectable&&(c.aria("role","menuitemcheckbox"),c.classes.add("menu-item-checkbox"),a.icon="selected"),a.preview||a.selectable||c.classes.add("menu-item-normal"),c.on("mousedown",function(a){a.preventDefault()}),a.menu&&!a.ariaHideMenu&&c.aria("haspopup",!0)},hasMenus:function(){return!!this.settings.menu},showMenu:function(){var a,c=this,d=c.settings,e=c.parent();if(e.items().each(function(a){a!==c&&a.hideMenu()}),d.menu){a=c.menu,a?a.show():(a=d.menu,a.length?a={type:"menu",items:a}:a.type=a.type||"menu",e.settings.itemDefaults&&(a.itemDefaults=e.settings.itemDefaults),a=c.menu=b.create(a).parent(c).renderTo(),a.reflow(),a.on("cancel",function(b){b.stopPropagation(),c.focus(),a.hide()}),a.on("show hide",function(a){a.control.items&&a.control.items().each(function(a){a.active(a.settings.selected)})}).fire("show"),a.on("hide",function(b){b.control===a&&c.classes.remove("selected")}),a.submenu=!0),a._parentMenu=e,a.classes.add("menu-sub");var f=a.testMoveRel(c.getEl(),c.isRtl()?["tl-tr","bl-br","tr-tl","br-bl"]:["tr-tl","br-bl","tl-tr","bl-br"]);a.moveRel(c.getEl(),f),a.rel=f,f="menu-sub-"+f,a.classes.remove(a._lastRel).add(f),a._lastRel=f,c.classes.add("selected"),c.aria("expanded",!0)}},hideMenu:function(){var a=this;return a.menu&&(a.menu.items().each(function(a){a.hideMenu&&a.hideMenu()}),a.menu.hide(),a.aria("expanded",!1)),a},renderHtml:function(){function a(a){var b,d,e={};for(e=c.mac?{alt:"⌥",ctrl:"⌘",shift:"⇧",meta:"⌘"}:{meta:"Ctrl"},a=a.split("+"),b=0;b<a.length;b++)d=e[a[b].toLowerCase()],d&&(a[b]=d);return a.join("+")}function b(a){return a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function d(a){var c=h.match||"";return c?a.replace(new RegExp(b(c),"gi"),function(a){return"!mce~match["+a+"]mce~match!"}):a}function e(a){return a.replace(new RegExp(b("!mce~match["),"g"),"<b>").replace(new RegExp(b("]mce~match!"),"g"),"</b>")}var f=this,g=f._id,h=f.settings,i=f.classPrefix,j=f.state.get("text"),k=f.settings.icon,l="",m=h.shortcut,n=f.encode(h.url),o="";return k&&f.parent().classes.add("menu-has-icons"),h.image&&(l=" style=\"background-image: url('"+h.image+"')\""),m&&(m=a(m)),k=i+"ico "+i+"i-"+(f.settings.icon||"none"),o="-"!==j?'<i class="'+k+'"'+l+"></i>\xa0":"",j=e(f.encode(d(j))),n=e(f.encode(d(n))),'<div id="'+g+'" class="'+f.classes+'" tabindex="-1">'+o+("-"!==j?'<span id="'+g+'-text" class="'+i+'text">'+j+"</span>":"")+(m?'<div id="'+g+'-shortcut" class="'+i+'menu-shortcut">'+m+"</div>":"")+(h.menu?'<div class="'+i+'caret"></div>':"")+(n?'<div class="'+i+'menu-item-link">'+n+"</div>":"")+"</div>"},postRender:function(){var a=this,b=a.settings,c=b.textStyle;if("function"==typeof c&&(c=c.call(this)),c){var e=a.getEl("text");e&&e.setAttribute("style",c)}return a.on("mouseenter click",function(c){c.control===a&&(b.menu||"click"!==c.type?(a.showMenu(),c.aria&&a.menu.focus(!0)):(a.fire("select"),d.requestAnimationFrame(function(){a.parent().hideAll()})))}),a._super(),a},hover:function(){var a=this;return a.parent().items().each(function(a){a.classes.remove("selected")}),a.classes.toggle("selected",!0),a},active:function(a){return"undefined"!=typeof a&&this.aria("checked",a),this._super(a)},remove:function(){this._super(),this.menu&&this.menu.remove()}})}),g("tinymce.core.ui.Throbber",["tinymce.core.dom.DomQuery","tinymce.core.ui.Control","tinymce.core.util.Delay"],function(a,b,c){"use strict";return function(d,e){var f,g,h=this,i=b.classPrefix;h.show=function(b,j){function k(){f&&(a(d).append('<div class="'+i+"throbber"+(e?" "+i+"throbber-inline":"")+'"></div>'),j&&j())}return h.hide(),f=!0,b?g=c.setTimeout(k,b):k(),h},h.hide=function(){var a=d.lastChild;return c.clearTimeout(g),a&&a.className.indexOf("throbber")!=-1&&a.parentNode.removeChild(a),f=!1,h}}}),g("tinymce.core.ui.Menu",["tinymce.core.ui.FloatPanel","tinymce.core.ui.MenuItem","tinymce.core.ui.Throbber","tinymce.core.util.Tools"],function(a,b,c,d){"use strict";return a.extend({Defaults:{defaultType:"menuitem",border:1,layout:"stack",role:"application",bodyRole:"menu",ariaRoot:!0},init:function(a){var b=this;if(a.autohide=!0,a.constrainToViewport=!0,"function"==typeof a.items&&(a.itemsFactory=a.items,a.items=[]),a.itemDefaults)for(var c=a.items,e=c.length;e--;)c[e]=d.extend({},a.itemDefaults,c[e]);b._super(a),b.classes.add("menu")},repaint:function(){return this.classes.toggle("menu-align",!0),this._super(),this.getEl().style.height="",this.getEl("body").style.height="",this},cancel:function(){var a=this;a.hideAll(),a.fire("select")},load:function(){function a(){e.throbber&&(e.throbber.hide(),e.throbber=null)}var b,d,e=this;d=e.settings.itemsFactory,d&&(e.throbber||(e.throbber=new c(e.getEl("body"),!0),0===e.items().length?(e.throbber.show(),e.fire("loading")):e.throbber.show(100,function(){e.items().remove(),e.fire("loading")}),e.on("hide close",a)),e.requestTime=b=(new Date).getTime(),e.settings.itemsFactory(function(c){return 0===c.length?void e.hide():void(e.requestTime===b&&(e.getEl().style.width="",e.getEl("body").style.width="",a(),e.items().remove(),e.getEl("body").innerHTML="",e.add(c),e.renderNew(),e.fire("loaded")))}))},hideAll:function(){var a=this;return this.find("menuitem").exec("hideMenu"),a._super()},preRender:function(){var a=this;return a.items().each(function(b){var c=b.settings;if(c.icon||c.image||c.selectable)return a._hasIcons=!0,!1}),a.settings.itemsFactory&&a.on("postrender",function(){a.settings.itemsFactory&&a.load()}),a._super()}})}),g("tinymce.core.ui.ListBox",["tinymce.core.ui.MenuButton","tinymce.core.ui.Menu"],function(a,b){"use strict";return a.extend({init:function(a){function b(c){for(var f=0;f<c.length;f++){if(d=c[f].selected||a.value===c[f].value)return e=e||c[f].text,g.state.set("value",c[f].value),!0;if(c[f].menu&&b(c[f].menu))return!0}}var c,d,e,f,g=this;g._super(a),a=g.settings,g._values=c=a.values,c&&("undefined"!=typeof a.value&&b(c),!d&&c.length>0&&(e=c[0].text,g.state.set("value",c[0].value)),g.state.set("menu",c)),g.state.set("text",a.text||e),g.classes.add("listbox"),g.on("select",function(b){var c=b.control;f&&(b.lastControl=f),a.multiple?c.active(!c.active()):g.value(b.control.value()),f=c})},bindStates:function(){function a(a,c){a instanceof b&&a.items().each(function(a){a.hasMenus()||a.active(a.value()===c)})}function c(a,b){var d;if(a)for(var e=0;e<a.length;e++){if(a[e].value===b)return a[e];if(a[e].menu&&(d=c(a[e].menu,b)))return d}}var d=this;return d.on("show",function(b){a(b.control,d.value())}),d.state.on("change:value",function(a){var b=c(d.state.get("menu"),a.value);b?d.text(b.text):d.text(d.settings.text)}),d._super()}})}),g("tinymce.core.ui.Radio",["tinymce.core.ui.Checkbox"],function(a){"use strict";return a.extend({Defaults:{classes:"radio",role:"radio"}})}),g("tinymce.core.ui.ResizeHandle",["tinymce.core.ui.Widget","tinymce.core.ui.DragHelper"],function(a,b){"use strict";return a.extend({renderHtml:function(){var a=this,b=a.classPrefix;return a.classes.add("resizehandle"),"both"==a.settings.direction&&a.classes.add("resizehandle-both"),a.canFocus=!1,'<div id="'+a._id+'" class="'+a.classes+'"><i class="'+b+"ico "+b+'i-resize"></i></div>'},postRender:function(){var a=this;a._super(),a.resizeDragHelper=new b(this._id,{start:function(){a.fire("ResizeStart")},drag:function(b){"both"!=a.settings.direction&&(b.deltaX=0),a.fire("Resize",b)},stop:function(){a.fire("ResizeEnd")}})},remove:function(){return this.resizeDragHelper&&this.resizeDragHelper.destroy(),this._super()}})}),g("tinymce.core.ui.SelectBox",["tinymce.core.ui.Widget"],function(a){"use strict";function b(a){var b="";if(a)for(var c=0;c<a.length;c++)b+='<option value="'+a[c]+'">'+a[c]+"</option>";return b}return a.extend({Defaults:{classes:"selectbox",role:"selectbox",options:[]},init:function(a){var b=this;b._super(a),b.settings.size&&(b.size=b.settings.size),b.settings.options&&(b._options=b.settings.options),b.on("keydown",function(a){var c;13==a.keyCode&&(a.preventDefault(),b.parents().reverse().each(function(a){if(a.toJSON)return c=a,!1}),b.fire("submit",{data:c.toJSON()}))})},options:function(a){return arguments.length?(this.state.set("options",a),this):this.state.get("options")},renderHtml:function(){var a,c=this,d="";return a=b(c._options),c.size&&(d=' size = "'+c.size+'"'),'<select id="'+c._id+'" class="'+c.classes+'"'+d+">"+a+"</select>"},bindStates:function(){var a=this;return a.state.on("change:options",function(c){a.getEl().innerHTML=b(c.value)}),a._super()}})}),g("tinymce.core.ui.Slider",["tinymce.core.ui.Widget","tinymce.core.ui.DragHelper","tinymce.core.ui.DomUtils"],function(a,b,c){"use strict";function d(a,b,c){return a<b&&(a=b),a>c&&(a=c),a}function e(a,b,c){a.setAttribute("aria-"+b,c)}function f(a,b){var d,f,g,h,i,j;"v"==a.settings.orientation?(h="top",g="height",f="h"):(h="left",g="width",f="w"),j=a.getEl("handle"),d=(a.layoutRect()[f]||100)-c.getSize(j)[g],i=d*((b-a._minValue)/(a._maxValue-a._minValue))+"px",j.style[h]=i,j.style.height=a.layoutRect().h+"px",e(j,"valuenow",b),e(j,"valuetext",""+a.settings.previewFilter(b)),e(j,"valuemin",a._minValue),e(j,"valuemax",a._maxValue)}return a.extend({init:function(a){var b=this;a.previewFilter||(a.previewFilter=function(a){return Math.round(100*a)/100}),b._super(a),b.classes.add("slider"),"v"==a.orientation&&b.classes.add("vertical"),b._minValue=a.minValue||0,b._maxValue=a.maxValue||100,b._initValue=b.state.get("value")},renderHtml:function(){var a=this,b=a._id,c=a.classPrefix;return'<div id="'+b+'" class="'+a.classes+'"><div id="'+b+'-handle" class="'+c+'slider-handle" role="slider" tabindex="-1"></div></div>'},reset:function(){this.value(this._initValue).repaint()},postRender:function(){function a(a,b,c){return(c+a)/(b-a)}function e(a,b,c){return c*(b-a)-a}function f(b,c){function f(f){var g;g=n.value(),g=e(b,c,a(b,c,g)+.05*f),g=d(g,b,c),n.value(g),n.fire("dragstart",{value:g}),n.fire("drag",{value:g}),n.fire("dragend",{value:g})}n.on("keydown",function(a){switch(a.keyCode){case 37:case 38:f(-1);break;case 39:case 40:f(1)}})}function g(a,e,f){var g,h,i,o,p;n._dragHelper=new b(n._id,{handle:n._id+"-handle",start:function(a){g=a[j],h=parseInt(n.getEl("handle").style[k],10),i=(n.layoutRect()[m]||100)-c.getSize(f)[l],n.fire("dragstart",{value:p})},drag:function(b){var c=b[j]-g;o=d(h+c,0,i),f.style[k]=o+"px",p=a+o/i*(e-a),n.value(p),n.tooltip().text(""+n.settings.previewFilter(p)).show().moveRel(f,"bc tc"),n.fire("drag",{value:p})},stop:function(){n.tooltip().hide(),n.fire("dragend",{value:p})}})}var h,i,j,k,l,m,n=this;h=n._minValue,i=n._maxValue,"v"==n.settings.orientation?(j="screenY",k="top",l="height",m="h"):(j="screenX",k="left",l="width",m="w"),n._super(),f(h,i,n.getEl("handle")),g(h,i,n.getEl("handle"))},repaint:function(){this._super(),f(this,this.value())},bindStates:function(){var a=this;return a.state.on("change:value",function(b){f(a,b.value)}),a._super()}})}),g("tinymce.core.ui.Spacer",["tinymce.core.ui.Widget"],function(a){"use strict";return a.extend({renderHtml:function(){var a=this;return a.classes.add("spacer"),a.canFocus=!1,'<div id="'+a._id+'" class="'+a.classes+'"></div>'}})}),g("tinymce.core.ui.SplitButton",["tinymce.core.ui.MenuButton","tinymce.core.ui.DomUtils","tinymce.core.dom.DomQuery"],function(a,b,c){return a.extend({Defaults:{classes:"widget btn splitbtn",role:"button"},repaint:function(){var a,d,e=this,f=e.getEl(),g=e.layoutRect();return e._super(),a=f.firstChild,d=f.lastChild,c(a).css({width:g.w-b.getSize(d).width,height:g.h-2}),c(d).css({height:g.h-2}),e},activeMenu:function(a){var b=this;c(b.getEl().lastChild).toggleClass(b.classPrefix+"active",a)},renderHtml:function(){var a,b=this,c=b._id,d=b.classPrefix,e=b.state.get("icon"),f=b.state.get("text"),g="";return a=b.settings.image,a?(e="none","string"!=typeof a&&(a=window.getSelection?a[0]:a[1]),a=" style=\"background-image: url('"+a+"')\""):a="",e=b.settings.icon?d+"ico "+d+"i-"+e:"",f&&(b.classes.add("btn-has-text"),g='<span class="'+d+'txt">'+b.encode(f)+"</span>"),'<div id="'+c+'" class="'+b.classes+'" role="button" tabindex="-1"><button type="button" hidefocus="1" tabindex="-1">'+(e?'<i class="'+e+'"'+a+"></i>":"")+g+'</button><button type="button" class="'+d+'open" hidefocus="1" tabindex="-1">'+(b._menuBtnText?(e?"\xa0":"")+b._menuBtnText:"")+' <i class="'+d+'caret"></i></button></div>'},postRender:function(){var a=this,b=a.settings.onclick;return a.on("click",function(a){var c=a.target;if(a.control==this)for(;c;){if(a.aria&&"down"!=a.aria.key||"BUTTON"==c.nodeName&&c.className.indexOf("open")==-1)return a.stopImmediatePropagation(),void(b&&b.call(this,a));c=c.parentNode}}),delete a.settings.onclick,a._super()}})}),g("tinymce.core.ui.StackLayout",["tinymce.core.ui.FlowLayout"],function(a){"use strict";return a.extend({Defaults:{containerClass:"stack-layout",controlClass:"stack-layout-item",endClass:"break"},isNative:function(){return!0}})}),g("tinymce.core.ui.TabPanel",["tinymce.core.ui.Panel","tinymce.core.dom.DomQuery","tinymce.core.ui.DomUtils"],function(a,b,c){"use strict";return a.extend({Defaults:{layout:"absolute",defaults:{type:"panel"}},activateTab:function(a){var c;this.activeTabId&&(c=this.getEl(this.activeTabId),b(c).removeClass(this.classPrefix+"active"),c.setAttribute("aria-selected","false")),this.activeTabId="t"+a,c=this.getEl("t"+a),c.setAttribute("aria-selected","true"),b(c).addClass(this.classPrefix+"active"),this.items()[a].show().fire("showtab"),this.reflow(),this.items().each(function(b,c){a!=c&&b.hide()})},renderHtml:function(){var a=this,b=a._layout,c="",d=a.classPrefix;return a.preRender(),b.preRender(a),a.items().each(function(b,e){var f=a._id+"-t"+e;b.aria("role","tabpanel"),b.aria("labelledby",f),c+='<div id="'+f+'" class="'+d+'tab" unselectable="on" role="tab" aria-controls="'+b._id+'" aria-selected="false" tabIndex="-1">'+a.encode(b.settings.title)+"</div>"}),'<div id="'+a._id+'" class="'+a.classes+'" hidefocus="1" tabindex="-1"><div id="'+a._id+'-head" class="'+d+'tabs" role="tablist">'+c+'</div><div id="'+a._id+'-body" class="'+a.bodyClasses+'">'+b.renderHtml(a)+"</div></div>"},postRender:function(){var a=this;a._super(),a.settings.activeTab=a.settings.activeTab||0,a.activateTab(a.settings.activeTab),this.on("click",function(b){var c=b.target.parentNode;if(c&&c.id==a._id+"-head")for(var d=c.childNodes.length;d--;)c.childNodes[d]==b.target&&a.activateTab(d)})},initLayoutRect:function(){var a,b,d,e=this;b=c.getSize(e.getEl("head")).width,b=b<0?0:b,d=0,e.items().each(function(a){b=Math.max(b,a.layoutRect().minW),d=Math.max(d,a.layoutRect().minH)}),e.items().each(function(a){a.settings.x=0,a.settings.y=0,a.settings.w=b,a.settings.h=d,a.layoutRect({x:0,y:0,w:b,h:d})});var f=c.getSize(e.getEl("head")).height;return e.settings.minWidth=b,e.settings.minHeight=d+f,a=e._super(),a.deltaH+=f,a.innerH=a.h-a.deltaH,a}})}),g("tinymce.core.ui.TextBox",["tinymce.core.ui.Widget","tinymce.core.util.Tools","tinymce.core.ui.DomUtils"],function(a,b,c){return a.extend({init:function(a){var b=this;b._super(a),b.classes.add("textbox"),a.multiline?b.classes.add("multiline"):(b.on("keydown",function(a){var c;13==a.keyCode&&(a.preventDefault(),b.parents().reverse().each(function(a){if(a.toJSON)return c=a,!1}),b.fire("submit",{data:c.toJSON()}))}),b.on("keyup",function(a){b.state.set("value",a.target.value)}))},repaint:function(){var a,b,c,d,e,f=this,g=0;a=f.getEl().style,b=f._layoutRect,e=f._lastRepaintRect||{};var h=document;return!f.settings.multiline&&h.all&&(!h.documentMode||h.documentMode<=8)&&(a.lineHeight=b.h-g+"px"),c=f.borderBox,d=c.left+c.right+8,g=c.top+c.bottom+(f.settings.multiline?8:0),b.x!==e.x&&(a.left=b.x+"px",e.x=b.x),b.y!==e.y&&(a.top=b.y+"px",e.y=b.y),b.w!==e.w&&(a.width=b.w-d+"px",e.w=b.w),b.h!==e.h&&(a.height=b.h-g+"px",e.h=b.h),f._lastRepaintRect=e,f.fire("repaint",{},!1),f},renderHtml:function(){var a,d,e=this,f=e.settings;return a={id:e._id,hidefocus:"1"},b.each(["rows","spellcheck","maxLength","size","readonly","min","max","step","list","pattern","placeholder","required","multiple"],function(b){a[b]=f[b]}),e.disabled()&&(a.disabled="disabled"),f.subtype&&(a.type=f.subtype),d=c.create(f.multiline?"textarea":"input",a),d.value=e.state.get("value"),d.className=e.classes,d.outerHTML},value:function(a){return arguments.length?(this.state.set("value",a),this):(this.state.get("rendered")&&this.state.set("value",this.getEl().value),this.state.get("value"))},postRender:function(){var a=this;a.getEl().value=a.state.get("value"),a._super(),a.$el.on("change",function(b){a.state.set("value",b.target.value),a.fire("change",b)})},bindStates:function(){var a=this;return a.state.on("change:value",function(b){a.getEl().value!=b.value&&(a.getEl().value=b.value)}),a.state.on("change:disabled",function(b){a.getEl().disabled=b.value}),a._super()},remove:function(){this.$el.off(),this._super()}})}),h("global!RegExp",RegExp),g("tinymce.core.ui.DropZone",["tinymce.core.ui.Widget","tinymce.core.util.Tools","tinymce.core.ui.DomUtils","global!RegExp"],function(a,b,c,d){return a.extend({init:function(a){var c=this;a=b.extend({height:100,text:"Drop an image here",multiple:!1,accept:null},a),c._super(a),c.classes.add("dropzone"),a.multiple&&c.classes.add("multiple")},renderHtml:function(){var a,b,d=this,e=d.settings;return a={id:d._id,hidefocus:"1"},b=c.create("div",a,"<span>"+this.translate(e.text)+"</span>"),e.height&&c.css(b,"height",e.height+"px"),e.width&&c.css(b,"width",e.width+"px"),b.className=d.classes,b.outerHTML},postRender:function(){var a=this,c=function(b){b.preventDefault(),a.classes.toggle("dragenter"),a.getEl().className=a.classes},e=function(c){var e=a.settings.accept;if("string"!=typeof e)return c;var f=new d("("+e.split(/\s*,\s*/).join("|")+")$","i");return b.grep(c,function(a){return f.test(a.name)})};a._super(),a.$el.on("dragover",function(a){a.preventDefault()}),a.$el.on("dragenter",c),a.$el.on("dragleave",c),a.$el.on("drop",function(b){if(b.preventDefault(),!a.state.get("disabled")){var c=e(b.dataTransfer.files);a.value=function(){return c.length?a.settings.multiple?c:c[0]:null},c.length&&a.fire("change",b)}})},remove:function(){this.$el.off(),this._super()}})}),g("tinymce.core.ui.BrowseButton",["tinymce.core.ui.Button","tinymce.core.util.Tools","tinymce.core.ui.DomUtils","tinymce.core.dom.DomQuery","global!RegExp"],function(a,b,c,d,e){return a.extend({init:function(a){var c=this;a=b.extend({text:"Browse...",multiple:!1,accept:null},a),c._super(a),c.classes.add("browsebutton"),a.multiple&&c.classes.add("multiple")},postRender:function(){var a=this,b=c.create("input",{type:"file",id:a._id+"-browse",accept:a.settings.accept});a._super(),d(b).on("change",function(b){var c=b.target.files;a.value=function(){return c.length?a.settings.multiple?c:c[0]:null},b.preventDefault(),c.length&&a.fire("change",b)}),d(b).on("click",function(a){a.stopPropagation()}),d(a.getEl("button")).on("click",function(a){a.stopPropagation(),b.click()}),a.getEl().appendChild(b)},remove:function(){d(this.getEl("button")).off(),d(this.getEl("input")).off(),this._super()}})}),g("tinymce.core.ui.Api",["tinymce.core.ui.Selector","tinymce.core.ui.Collection","tinymce.core.ui.ReflowQueue","tinymce.core.ui.Control","tinymce.core.ui.Factory","tinymce.core.ui.KeyboardNavigation","tinymce.core.ui.Container","tinymce.core.ui.DragHelper","tinymce.core.ui.Scrollable","tinymce.core.ui.Panel","tinymce.core.ui.Movable","tinymce.core.ui.Resizable","tinymce.core.ui.FloatPanel","tinymce.core.ui.Window","tinymce.core.ui.MessageBox","tinymce.core.ui.Tooltip","tinymce.core.ui.Widget","tinymce.core.ui.Progress","tinymce.core.ui.Notification","tinymce.core.ui.Layout","tinymce.core.ui.AbsoluteLayout","tinymce.core.ui.Button","tinymce.core.ui.ButtonGroup","tinymce.core.ui.Checkbox","tinymce.core.ui.ComboBox","tinymce.core.ui.ColorBox","tinymce.core.ui.PanelButton","tinymce.core.ui.ColorButton","tinymce.core.ui.ColorPicker","tinymce.core.ui.Path","tinymce.core.ui.ElementPath","tinymce.core.ui.FormItem","tinymce.core.ui.Form","tinymce.core.ui.FieldSet","tinymce.core.ui.FilePicker","tinymce.core.ui.FitLayout","tinymce.core.ui.FlexLayout","tinymce.core.ui.FlowLayout","tinymce.core.ui.FormatControls","tinymce.core.ui.GridLayout","tinymce.core.ui.Iframe","tinymce.core.ui.InfoBox","tinymce.core.ui.Label","tinymce.core.ui.Toolbar","tinymce.core.ui.MenuBar","tinymce.core.ui.MenuButton","tinymce.core.ui.MenuItem","tinymce.core.ui.Throbber","tinymce.core.ui.Menu","tinymce.core.ui.ListBox","tinymce.core.ui.Radio","tinymce.core.ui.ResizeHandle","tinymce.core.ui.SelectBox","tinymce.core.ui.Slider","tinymce.core.ui.Spacer","tinymce.core.ui.SplitButton","tinymce.core.ui.StackLayout","tinymce.core.ui.TabPanel","tinymce.core.ui.TextBox","tinymce.core.ui.DropZone","tinymce.core.ui.BrowseButton"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,_,aa,ba,ca,da,ea,fa,ga){"use strict";var ha=function(a,b){e.add(a.split(".").pop(),b)},ia=function(a,b,c){var d,e;for(e=b.split(/[.\/]/),d=0;d<e.length-1;++d)void 0===a[e[d]]&&(a[e[d]]={}),a=a[e[d]];a[e[e.length-1]]=c,ha(b,c)},ja=function(ha){ia(ha,"ui.Selector",a),ia(ha,"ui.Collection",b),ia(ha,"ui.ReflowQueue",c),ia(ha,"ui.Control",d),ia(ha,"ui.Factory",e),ia(ha,"ui.KeyboardNavigation",f),ia(ha,"ui.Container",g),ia(ha,"ui.DragHelper",h),ia(ha,"ui.Scrollable",i),ia(ha,"ui.Panel",j),ia(ha,"ui.Movable",k),ia(ha,"ui.Resizable",l),ia(ha,"ui.FloatPanel",m),ia(ha,"ui.Window",n),ia(ha,"ui.MessageBox",o),ia(ha,"ui.Tooltip",p),ia(ha,"ui.Widget",q),ia(ha,"ui.Progress",r),ia(ha,"ui.Notification",s),ia(ha,"ui.Layout",t),ia(ha,"ui.AbsoluteLayout",u),ia(ha,"ui.Button",v),ia(ha,"ui.ButtonGroup",w),ia(ha,"ui.Checkbox",x),ia(ha,"ui.ComboBox",y),ia(ha,"ui.ColorBox",z),ia(ha,"ui.PanelButton",A),ia(ha,"ui.ColorButton",B),ia(ha,"ui.ColorPicker",C),ia(ha,"ui.Path",D),ia(ha,"ui.ElementPath",E),ia(ha,"ui.FormItem",F),ia(ha,"ui.Form",G),ia(ha,"ui.FieldSet",H),ia(ha,"ui.FilePicker",I),ia(ha,"ui.FitLayout",J),ia(ha,"ui.FlexLayout",K),ia(ha,"ui.FlowLayout",L),ia(ha,"ui.FormatControls",M),ia(ha,"ui.GridLayout",N),ia(ha,"ui.Iframe",O),ia(ha,"ui.InfoBox",P),ia(ha,"ui.Label",Q),ia(ha,"ui.Toolbar",R),ia(ha,"ui.MenuBar",S),ia(ha,"ui.MenuButton",T),ia(ha,"ui.MenuItem",U),ia(ha,"ui.Throbber",V),ia(ha,"ui.Menu",W),ia(ha,"ui.ListBox",X),ia(ha,"ui.Radio",Y),ia(ha,"ui.ResizeHandle",Z),ia(ha,"ui.SelectBox",$),ia(ha,"ui.Slider",_),ia(ha,"ui.Spacer",aa),ia(ha,"ui.SplitButton",ba),ia(ha,"ui.StackLayout",ca),ia(ha,"ui.TabPanel",da),ia(ha,"ui.TextBox",ea),ia(ha,"ui.DropZone",fa),ia(ha,"ui.BrowseButton",ga),ia(ha,"ui.Api",ka)},ka={appendTo:ja};return ka}),g("tinymce.core.util.JSON",[],function(){function a(b,c){var d,e,f,g;if(c=c||'"',null===b)return"null";if(f=typeof b,"string"==f)return e="\bb\tt\nn\ff\rr\"\"''\\\\",c+b.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(a,b){return'"'===c&&"'"===a?a:(d=e.indexOf(b),d+1?"\\"+e.charAt(d+1):(a=b.charCodeAt().toString(16),"\\u"+"0000".substring(a.length)+a))})+c;if("object"==f){if(b.hasOwnProperty&&"[object Array]"===Object.prototype.toString.call(b)){for(d=0,e="[";d<b.length;d++)e+=(d>0?",":"")+a(b[d],c);return e+"]"}e="{";for(g in b)b.hasOwnProperty(g)&&(e+="function"!=typeof b[g]?(e.length>1?","+c:c)+g+c+":"+a(b[g],c):"");return e+"}"}return""+b}return{serialize:a,parse:function(a){try{return window[String.fromCharCode(101)+"val"]("("+a+")")}catch(b){}}}}),g("tinymce.core.util.JSONP",["tinymce.core.dom.DOMUtils"],function(a){return{callbacks:{},count:0,send:function(b){var c=this,d=a.DOM,e=void 0!==b.count?b.count:c.count,f="tinymce_jsonp_"+e;c.callbacks[e]=function(a){d.remove(f),delete c.callbacks[e],b.callback(a)},d.add(d.doc.body,"script",{id:f,src:b.url,type:"text/javascript"}),c.count++}}}),g("tinymce.core.util.XHR",["tinymce.core.util.Observable","tinymce.core.util.Tools"],function(a,b){var c={send:function(a){function d(){!a.async||4==e.readyState||f++>1e4?(a.success&&f<1e4&&200==e.status?a.success.call(a.success_scope,""+e.responseText,e,a):a.error&&a.error.call(a.error_scope,f>1e4?"TIMED_OUT":"GENERAL",e,a),e=null):setTimeout(d,10)}var e,f=0;if(a.scope=a.scope||this,a.success_scope=a.success_scope||a.scope,a.error_scope=a.error_scope||a.scope,a.async=a.async!==!1,a.data=a.data||"",c.fire("beforeInitialize",{settings:a}),e=new XMLHttpRequest){if(e.overrideMimeType&&e.overrideMimeType(a.content_type),e.open(a.type||(a.data?"POST":"GET"),a.url,a.async),a.crossDomain&&(e.withCredentials=!0),a.content_type&&e.setRequestHeader("Content-Type",a.content_type),a.requestheaders&&b.each(a.requestheaders,function(a){e.setRequestHeader(a.key,a.value)}),e.setRequestHeader("X-Requested-With","XMLHttpRequest"),e=c.fire("beforeSend",{xhr:e,settings:a}).xhr,e.send(a.data),!a.async)return d();setTimeout(d,10)}}};return b.extend(c,a),c}),g("tinymce.core.util.JSONRequest",["tinymce.core.util.JSON","tinymce.core.util.XHR","tinymce.core.util.Tools"],function(a,b,c){function d(a){this.settings=e({},a),this.count=0}var e=c.extend;return d.sendRPC=function(a){return(new d).send(a)},d.prototype={send:function(c){var d=c.error,f=c.success;c=e(this.settings,c),c.success=function(b,e){b=a.parse(b),"undefined"==typeof b&&(b={error:"JSON Parse error."}),b.error?d.call(c.error_scope||c.scope,b.error,e):f.call(c.success_scope||c.scope,b.result)},c.error=function(a,b){d&&d.call(c.error_scope||c.scope,a,b)},c.data=a.serialize({id:c.id||"c"+this.count++,method:c.method,params:c.params}),c.content_type="application/json",b.send(c)}},d}),g("tinymce.core.util.LocalStorage",[],function(){function a(){g=[];for(var a in f)g.push(a);d.length=g.length}function b(){function b(a){var b,c;return c=void 0!==a?j+a:d.indexOf(",",j),c===-1||c>d.length?null:(b=d.substring(j,c),j=c+1,b)}var c,d,g,j=0;if(f={},i){e.load(h),d=e.getAttribute(h)||"";do{var k=b();if(null===k)break;if(c=b(parseInt(k,32)||0),null!==c){if(k=b(),null===k)break;g=b(parseInt(k,32)||0),c&&(f[c]=g)}}while(null!==c);a()}}function c(){var b,c="";if(i){for(var d in f)b=f[d],c+=(c?",":"")+d.length.toString(32)+","+d+","+b.length.toString(32)+","+b; -e.setAttribute(h,c);try{e.save(h)}catch(g){}a()}}var d,e,f,g,h,i;try{if(window.localStorage)return localStorage}catch(j){}return h="tinymce",e=document.documentElement,i=!!e.addBehavior,i&&e.addBehavior("#default#userData"),d={key:function(a){return g[a]},getItem:function(a){return a in f?f[a]:null},setItem:function(a,b){f[a]=""+b,c()},removeItem:function(a){delete f[a],c()},clear:function(){f={},c()}},b(),d}),g("tinymce.core.api.Tinymce",["tinymce.core.AddOnManager","tinymce.core.api.Formatter","tinymce.core.api.NotificationManager","tinymce.core.api.WindowManager","tinymce.core.dom.BookmarkManager","tinymce.core.dom.ControlSelection","tinymce.core.dom.DomQuery","tinymce.core.dom.DOMUtils","tinymce.core.dom.EventUtils","tinymce.core.dom.RangeUtils","tinymce.core.dom.ScriptLoader","tinymce.core.dom.Selection","tinymce.core.dom.Serializer","tinymce.core.dom.Sizzle","tinymce.core.dom.TreeWalker","tinymce.core.Editor","tinymce.core.EditorCommands","tinymce.core.EditorManager","tinymce.core.EditorObservable","tinymce.core.Env","tinymce.core.FocusManager","tinymce.core.geom.Rect","tinymce.core.html.DomParser","tinymce.core.html.Entities","tinymce.core.html.Node","tinymce.core.html.SaxParser","tinymce.core.html.Schema","tinymce.core.html.Serializer","tinymce.core.html.Styles","tinymce.core.html.Writer","tinymce.core.Shortcuts","tinymce.core.ui.Api","tinymce.core.UndoManager","tinymce.core.util.Class","tinymce.core.util.Color","tinymce.core.util.Delay","tinymce.core.util.EventDispatcher","tinymce.core.util.I18n","tinymce.core.util.JSON","tinymce.core.util.JSONP","tinymce.core.util.JSONRequest","tinymce.core.util.LocalStorage","tinymce.core.util.Observable","tinymce.core.util.Promise","tinymce.core.util.Tools","tinymce.core.util.URI","tinymce.core.util.VK","tinymce.core.util.XHR"],function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V){var W=r,X={geom:{Rect:v},util:{Promise:R,Delay:J,Tools:S,VK:U,URI:T,Class:H,EventDispatcher:K,Observable:Q,I18n:L,XHR:V,JSON:M,JSONRequest:O,JSONP:N,LocalStorage:P,Color:I},dom:{EventUtils:i,Sizzle:n,DomQuery:g,TreeWalker:o,DOMUtils:h,ScriptLoader:k,RangeUtils:j,Serializer:m,ControlSelection:f,BookmarkManager:e,Selection:l,Event:i.Event},html:{Styles:C,Entities:x,Node:y,Schema:A,SaxParser:z,DomParser:w,Writer:D,Serializer:B},Env:t,AddOnManager:a,Formatter:b,UndoManager:G,EditorCommands:q,WindowManager:d,NotificationManager:c,EditorObservable:s,Shortcuts:E,Editor:p,FocusManager:u,EditorManager:r,DOM:h.DOM,ScriptLoader:k.ScriptLoader,PluginManager:a.PluginManager,ThemeManager:a.ThemeManager,trim:S.trim,isArray:S.isArray,is:S.is,toArray:S.toArray,makeMap:S.makeMap,each:S.each,map:S.map,grep:S.grep,inArray:S.inArray,extend:S.extend,create:S.create,walk:S.walk,createNS:S.createNS,resolve:S.resolve,explode:S.explode,_addCacheSuffix:S._addCacheSuffix,isOpera:t.opera,isWebKit:t.webkit,isIE:t.ie,isGecko:t.gecko,isMac:t.mac};return W=S.extend(W,X),F.appendTo(W),W}),g("tinymce.core.api.Main",["ephox.katamari.api.Fun","tinymce.core.api.Tinymce"],function(a,b){var c=this||window,d=function(b){"function"!=typeof c.define||c.define.amd||(c.define("ephox/tinymce",[],a.constant(b)),c.define("tinymce.core.EditorManager",[],a.constant(b))),"object"==typeof module&&(module.exports=b)},e=function(a){window.tinymce=a,window.tinyMCE=a};return function(){return e(b),d(b),b}}),d("tinymce.core.api.Main")()}(); \ No newline at end of file +// 4.7.11 (2018-04-11) +!function(){"use strict";var e,t,n,r,o,i,a,u,s,c,l,f,d,m,p,g,h,v=function(e){return function(){return e}},V={noop:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t]},noarg:function(n){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n()}},compose:function(n,r){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n(r.apply(null,arguments))}},constant:v,identity:function(e){return e},tripleEquals:function(e,t){return e===t},curry:function(i){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];for(var a=new Array(arguments.length-1),n=1;n<arguments.length;n++)a[n-1]=arguments[n];return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=new Array(arguments.length),r=0;r<n.length;r++)n[r]=arguments[r];var o=a.concat(n);return i.apply(null,o)}},not:function(n){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return!n.apply(null,arguments)}},die:function(e){return function(){throw new Error(e)}},apply:function(e){return e()},call:function(e){e()},never:v(!1),always:v(!0)},y=V.never,b=V.always,C=function(){return x},x=(r={fold:function(e,t){return e()},is:y,isSome:y,isNone:b,getOr:n=function(e){return e},getOrThunk:t=function(e){return e()},getOrDie:function(e){throw new Error(e||"error: getOrDie called on none.")},or:n,orThunk:t,map:C,ap:C,each:function(){},bind:C,flatten:C,exists:y,forall:b,filter:C,equals:e=function(e){return e.isNone()},equals_:e,toArray:function(){return[]},toString:V.constant("none()")},Object.freeze&&Object.freeze(r),r),w=function(n){var e=function(){return n},t=function(){return o},r=function(e){return e(n)},o={fold:function(e,t){return t(n)},is:function(e){return n===e},isSome:b,isNone:y,getOr:e,getOrThunk:e,getOrDie:e,or:t,orThunk:t,map:function(e){return w(e(n))},ap:function(e){return e.fold(C,function(e){return w(e(n))})},each:function(e){e(n)},bind:r,flatten:e,exists:r,forall:r,filter:function(e){return e(n)?o:x},equals:function(e){return e.is(n)},equals_:function(e,t){return e.fold(y,function(e){return t(n,e)})},toArray:function(){return[n]},toString:function(){return"some("+n+")"}};return o},A={some:w,none:C,from:function(e){return null===e||e===undefined?x:w(e)}},N=function(t){return function(e){return function(e){if(null===e)return"null";var t=typeof e;return"object"===t&&Array.prototype.isPrototypeOf(e)?"array":"object"===t&&String.prototype.isPrototypeOf(e)?"string":t}(e)===t}},E={isString:N("string"),isObject:N("object"),isArray:N("array"),isNull:N("null"),isBoolean:N("boolean"),isUndefined:N("undefined"),isFunction:N("function"),isNumber:N("number")},S=(o=Array.prototype.indexOf)===undefined?function(e,t){return O(e,t)}:function(e,t){return o.call(e,t)},k=function(e,t){return-1<S(e,t)},T=function(e,t){for(var n=e.length,r=new Array(n),o=0;o<n;o++){var i=e[o];r[o]=t(i,o,e)}return r},R=function(e,t){for(var n=0,r=e.length;n<r;n++)t(e[n],n,e)},B=function(e,t){for(var n=e.length-1;0<=n;n--)t(e[n],n,e)},_=function(e,t){for(var n=[],r=0,o=e.length;r<o;r++){var i=e[r];t(i,r,e)&&n.push(i)}return n},D=function(e,t){for(var n=0,r=e.length;n<r;n++)if(t(e[n],n,e))return A.some(n);return A.none()},O=function(e,t){for(var n=0,r=e.length;n<r;++n)if(e[n]===t)return n;return-1},P=Array.prototype.push,L=function(e){for(var t=[],n=0,r=e.length;n<r;++n){if(!Array.prototype.isPrototypeOf(e[n]))throw new Error("Arr.flatten item "+n+" was not an array, input: "+e);P.apply(t,e[n])}return t},I=function(e,t){for(var n=0,r=e.length;n<r;++n)if(!0!==t(e[n],n,e))return!1;return!0},M=Array.prototype.slice,F=E.isFunction(Array.from)?Array.from:function(e){return M.call(e)},H={map:T,each:R,eachr:B,partition:function(e,t){for(var n=[],r=[],o=0,i=e.length;o<i;o++){var a=e[o];(t(a,o,e)?n:r).push(a)}return{pass:n,fail:r}},filter:_,groupBy:function(e,t){if(0===e.length)return[];for(var n=t(e[0]),r=[],o=[],i=0,a=e.length;i<a;i++){var u=e[i],s=t(u);s!==n&&(r.push(o),o=[]),n=s,o.push(u)}return 0!==o.length&&r.push(o),r},indexOf:function(e,t){var n=S(e,t);return-1===n?A.none():A.some(n)},foldr:function(e,t,n){return B(e,function(e){n=t(n,e)}),n},foldl:function(e,t,n){return R(e,function(e){n=t(n,e)}),n},find:function(e,t){for(var n=0,r=e.length;n<r;n++){var o=e[n];if(t(o,n,e))return A.some(o)}return A.none()},findIndex:D,flatten:L,bind:function(e,t){var n=T(e,t);return L(n)},forall:I,exists:function(e,t){return D(e,t).isSome()},contains:k,equal:function(e,n){return e.length===n.length&&I(e,function(e,t){return e===n[t]})},reverse:function(e){var t=M.call(e,0);return t.reverse(),t},chunk:function(e,t){for(var n=[],r=0;r<e.length;r+=t){var o=e.slice(r,r+t);n.push(o)}return n},difference:function(e,t){return _(e,function(e){return!k(t,e)})},mapToObject:function(e,t){for(var n={},r=0,o=e.length;r<o;r++){var i=e[r];n[String(i)]=t(i,r)}return n},pure:function(e){return[e]},sort:function(e,t){var n=M.call(e,0);return n.sort(t),n},range:function(e,t){for(var n=[],r=0;r<e;r++)n.push(t(r));return n},head:function(e){return 0===e.length?A.none():A.some(e[0])},last:function(e){return 0===e.length?A.none():A.some(e[e.length-1])},from:F},z="undefined"!=typeof window?window:Function("return this;")(),U=function(e,t){for(var n=t!==undefined&&null!==t?t:z,r=0;r<e.length&&n!==undefined&&null!==n;++r)n=n[e[r]];return n},q=function(e,t){var n=e.split(".");return U(n,t)},j={getOrDie:function(e,t){var n=q(e,t);if(n===undefined||null===n)throw e+" not available on this browser";return n}},$=function(){return j.getOrDie("URL")},W={createObjectURL:function(e){return $().createObjectURL(e)},revokeObjectURL:function(e){$().revokeObjectURL(e)}},K=navigator,X=K.userAgent,Y=function(e){return"matchMedia"in window&&matchMedia(e).matches};d=/Android/.test(X),a=(a=!(i=/WebKit/.test(X))&&/MSIE/gi.test(X)&&/Explorer/gi.test(K.appName))&&/MSIE (\w+)\./.exec(X)[1],u=-1!==X.indexOf("Trident/")&&(-1!==X.indexOf("rv:")||-1!==K.appName.indexOf("Netscape"))&&11,s=-1!==X.indexOf("Edge/")&&!a&&!u&&12,a=a||u||s,c=!i&&!u&&/Gecko/.test(X),l=-1!==X.indexOf("Mac"),f=/(iPad|iPhone)/.test(X),m="FormData"in window&&"FileReader"in window&&"URL"in window&&!!W.createObjectURL,p=Y("only screen and (max-device-width: 480px)")&&(d||f),g=Y("only screen and (min-width: 800px)")&&(d||f),h=-1!==X.indexOf("Windows Phone"),s&&(i=!1);var G,J,Q,Z,ee,te,ne,re,oe,ie,ae,ue,se,ce,le,fe,de,me,pe,ge={opera:!1,webkit:i,ie:a,gecko:c,mac:l,iOS:f,android:d,contentEditable:!f||m||534<=parseInt(X.match(/AppleWebKit\/(\d*)/)[1],10),transparentSrc:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",caretAfter:8!==a,range:window.getSelection&&"Range"in window,documentMode:a&&!s?document.documentMode||7:10,fileApi:m,ceFalse:!1===a||8<a,cacheSuffix:null,container:null,overrideViewPort:null,experimentalShadowDom:!1,canHaveCSP:!1===a||11<a,desktop:!p&&!g,windowsPhone:h},he=window.Promise?window.Promise:function(){function r(e,t){return function(){e.apply(t,arguments)}}var e=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},i=function(e){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],l(e,r(o,this),r(u,this))},t=i.immediateFn||"function"==typeof setImmediate&&setImmediate||function(e){setTimeout(e,1)};function a(r){var o=this;null!==this._state?t(function(){var e=o._state?r.onFulfilled:r.onRejected;if(null!==e){var t;try{t=e(o._value)}catch(n){return void r.reject(n)}r.resolve(t)}else(o._state?r.resolve:r.reject)(o._value)}):this._deferreds.push(r)}function o(e){try{if(e===this)throw new TypeError("A promise cannot be resolved with itself.");if(e&&("object"==typeof e||"function"==typeof e)){var t=e.then;if("function"==typeof t)return void l(r(t,e),r(o,this),r(u,this))}this._state=!0,this._value=e,s.call(this)}catch(n){u.call(this,n)}}function u(e){this._state=!1,this._value=e,s.call(this)}function s(){for(var e=0,t=this._deferreds.length;e<t;e++)a.call(this,this._deferreds[e]);this._deferreds=null}function c(e,t,n,r){this.onFulfilled="function"==typeof e?e:null,this.onRejected="function"==typeof t?t:null,this.resolve=n,this.reject=r}function l(e,t,n){var r=!1;try{e(function(e){r||(r=!0,t(e))},function(e){r||(r=!0,n(e))})}catch(o){if(r)return;r=!0,n(o)}}return i.prototype["catch"]=function(e){return this.then(null,e)},i.prototype.then=function(n,r){var o=this;return new i(function(e,t){a.call(o,new c(n,r,e,t))})},i.all=function(){var s=Array.prototype.slice.call(1===arguments.length&&e(arguments[0])?arguments[0]:arguments);return new i(function(o,i){if(0===s.length)return o([]);var a=s.length;function u(t,e){try{if(e&&("object"==typeof e||"function"==typeof e)){var n=e.then;if("function"==typeof n)return void n.call(e,function(e){u(t,e)},i)}s[t]=e,0==--a&&o(s)}catch(r){i(r)}}for(var e=0;e<s.length;e++)u(e,s[e])})},i.resolve=function(t){return t&&"object"==typeof t&&t.constructor===i?t:new i(function(e){e(t)})},i.reject=function(n){return new i(function(e,t){t(n)})},i.race=function(o){return new i(function(e,t){for(var n=0,r=o.length;n<r;n++)o[n].then(e,t)})},i}(),ve=function(e,t){return"number"!=typeof t&&(t=0),setTimeout(e,t)},ye=function(e,t){return"number"!=typeof t&&(t=1),setInterval(e,t)},be=function(t,n){var r,e;return(e=function(){var e=arguments;clearTimeout(r),r=ve(function(){t.apply(this,e)},n)}).stop=function(){clearTimeout(r)},e},Ce={requestAnimationFrame:function(e,t){G?G.then(e):G=new he(function(e){t||(t=document.body),function(e,t){var n,r=window.requestAnimationFrame,o=["ms","moz","webkit"];for(n=0;n<o.length&&!r;n++)r=window[o[n]+"RequestAnimationFrame"];r||(r=function(e){window.setTimeout(e,0)}),r(e,t)}(e,t)}).then(e)},setTimeout:ve,setInterval:ye,setEditorTimeout:function(e,t,n){return ve(function(){e.removed||t()},n)},setEditorInterval:function(e,t,n){var r;return r=ye(function(){e.removed?clearInterval(r):t()},n)},debounce:be,throttle:be,clearInterval:function(e){return clearInterval(e)},clearTimeout:function(e){return clearTimeout(e)}},xe=/^(?:mouse|contextmenu)|click/,we={keyLocation:1,layerX:1,layerY:1,returnValue:1,webkitMovementX:1,webkitMovementY:1,keyIdentifier:1},Ne=function(){return!1},Ee=function(){return!0},Se=function(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r||!1):e.attachEvent&&e.attachEvent("on"+t,n)},ke=function(e,t,n,r){e.removeEventListener?e.removeEventListener(t,n,r||!1):e.detachEvent&&e.detachEvent("on"+t,n)},Te=function(e,t){var n,r,o,i,a,u,s=t||{};for(n in e)we[n]||(s[n]=e[n]);if(s.target||(s.target=s.srcElement||document),ge.experimentalShadowDom&&(s.target=(r=e,o=s.target,a=o,(i=r.path)&&0<i.length&&(a=i[0]),r.composedPath&&(i=r.composedPath())&&0<i.length&&(a=i[0]),a)),e&&xe.test(e.type)&&e.pageX===undefined&&e.clientX!==undefined){var c=s.target.ownerDocument||document,l=c.documentElement,f=c.body;s.pageX=e.clientX+(l&&l.scrollLeft||f&&f.scrollLeft||0)-(l&&l.clientLeft||f&&f.clientLeft||0),s.pageY=e.clientY+(l&&l.scrollTop||f&&f.scrollTop||0)-(l&&l.clientTop||f&&f.clientTop||0)}return s.preventDefault=function(){s.isDefaultPrevented=Ee,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},s.stopPropagation=function(){s.isPropagationStopped=Ee,e&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0)},!(s.stopImmediatePropagation=function(){s.isImmediatePropagationStopped=Ee,s.stopPropagation()})==((u=s).isDefaultPrevented===Ee||u.isDefaultPrevented===Ne)&&(s.isDefaultPrevented=Ne,s.isPropagationStopped=Ne,s.isImmediatePropagationStopped=Ne),"undefined"==typeof s.metaKey&&(s.metaKey=!1),s},Ae=function(e,t,n){var r=e.document,o={type:"ready"};if(n.domLoaded)t(o);else{var i=function(){return"complete"===r.readyState||"interactive"===r.readyState&&r.body},a=function(){n.domLoaded||(n.domLoaded=!0,t(o))},u=function(){i()&&(ke(r,"readystatechange",u),a())},s=function(){try{r.documentElement.doScroll("left")}catch(e){return void Ce.setTimeout(s)}a()};!r.addEventListener||ge.ie&&ge.ie<11?(Se(r,"readystatechange",u),r.documentElement.doScroll&&e.self===e.top&&s()):i()?a():Se(e,"DOMContentLoaded",a),Se(e,"load",a)}},Re=function(){var m,p,g,h,v,y=this,b={};p="mce-data-"+(+new Date).toString(32),h="onmouseenter"in document.documentElement,g="onfocusin"in document.documentElement,v={mouseenter:"mouseover",mouseleave:"mouseout"},m=1,y.domLoaded=!1,y.events=b;var C=function(e,t){var n,r,o,i,a=b[t];if(n=a&&a[e.type])for(r=0,o=n.length;r<o;r++)if((i=n[r])&&!1===i.func.call(i.scope,e)&&e.preventDefault(),e.isImmediatePropagationStopped())return};y.bind=function(e,t,n,r){var o,i,a,u,s,c,l,f=window,d=function(e){C(Te(e||f.event),o)};if(e&&3!==e.nodeType&&8!==e.nodeType){for(e[p]?o=e[p]:(o=m++,e[p]=o,b[o]={}),r=r||e,a=(t=t.split(" ")).length;a--;)c=d,s=l=!1,"DOMContentLoaded"===(u=t[a])&&(u="ready"),y.domLoaded&&"ready"===u&&"complete"===e.readyState?n.call(r,Te({type:u})):(h||(s=v[u])&&(c=function(e){var t,n;if(t=e.currentTarget,(n=e.relatedTarget)&&t.contains)n=t.contains(n);else for(;n&&n!==t;)n=n.parentNode;n||((e=Te(e||f.event)).type="mouseout"===e.type?"mouseleave":"mouseenter",e.target=t,C(e,o))}),g||"focusin"!==u&&"focusout"!==u||(l=!0,s="focusin"===u?"focus":"blur",c=function(e){(e=Te(e||f.event)).type="focus"===e.type?"focusin":"focusout",C(e,o)}),(i=b[o][u])?"ready"===u&&y.domLoaded?n({type:u}):i.push({func:n,scope:r}):(b[o][u]=i=[{func:n,scope:r}],i.fakeName=s,i.capture=l,i.nativeHandler=c,"ready"===u?Ae(e,c,y):Se(e,s||u,c,l)));return e=i=0,n}},y.unbind=function(e,t,n){var r,o,i,a,u,s;if(!e||3===e.nodeType||8===e.nodeType)return y;if(r=e[p]){if(s=b[r],t){for(i=(t=t.split(" ")).length;i--;)if(o=s[u=t[i]]){if(n)for(a=o.length;a--;)if(o[a].func===n){var c=o.nativeHandler,l=o.fakeName,f=o.capture;(o=o.slice(0,a).concat(o.slice(a+1))).nativeHandler=c,o.fakeName=l,o.capture=f,s[u]=o}n&&0!==o.length||(delete s[u],ke(e,o.fakeName||u,o.nativeHandler,o.capture))}}else{for(u in s)o=s[u],ke(e,o.fakeName||u,o.nativeHandler,o.capture);s={}}for(u in s)return y;delete b[r];try{delete e[p]}catch(d){e[p]=null}}return y},y.fire=function(e,t,n){var r;if(!e||3===e.nodeType||8===e.nodeType)return y;for((n=Te(null,n)).type=t,n.target=e;(r=e[p])&&C(n,r),(e=e.parentNode||e.ownerDocument||e.defaultView||e.parentWindow)&&!n.isPropagationStopped(););return y},y.clean=function(e){var t,n,r=y.unbind;if(!e||3===e.nodeType||8===e.nodeType)return y;if(e[p]&&r(e),e.getElementsByTagName||(e=e.document),e&&e.getElementsByTagName)for(r(e),t=(n=e.getElementsByTagName("*")).length;t--;)(e=n[t])[p]&&r(e);return y},y.destroy=function(){b={}},y.cancel=function(e){return e&&(e.preventDefault(),e.stopImmediatePropagation()),!1}};Re.Event=new Re,Re.Event.bind(window,"ready",function(){});var Be="sizzle"+-new Date,_e=window.document,De=0,Oe=0,Pe=mt(),Le=mt(),Ie=mt(),Me=function(e,t){return e===t&&(ue=!0),0},Fe=typeof undefined,ze=1<<31,Ue={}.hasOwnProperty,qe=[],Ve=qe.pop,He=qe.push,je=qe.push,$e=qe.slice,We=qe.indexOf||function(e){for(var t=0,n=this.length;t<n;t++)if(this[t]===e)return t;return-1},Ke="[\\x20\\t\\r\\n\\f]",Xe="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",Ye="\\["+Ke+"*("+Xe+")(?:"+Ke+"*([*^$|!~]?=)"+Ke+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+Xe+"))|)"+Ke+"*\\]",Ge=":("+Xe+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+Ye+")*)|.*)\\)|)",Je=new RegExp("^"+Ke+"+|((?:^|[^\\\\])(?:\\\\.)*)"+Ke+"+$","g"),Qe=new RegExp("^"+Ke+"*,"+Ke+"*"),Ze=new RegExp("^"+Ke+"*([>+~]|"+Ke+")"+Ke+"*"),et=new RegExp("="+Ke+"*([^\\]'\"]*?)"+Ke+"*\\]","g"),tt=new RegExp(Ge),nt=new RegExp("^"+Xe+"$"),rt={ID:new RegExp("^#("+Xe+")"),CLASS:new RegExp("^\\.("+Xe+")"),TAG:new RegExp("^("+Xe+"|[*])"),ATTR:new RegExp("^"+Ye),PSEUDO:new RegExp("^"+Ge),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+Ke+"*(even|odd|(([+-]|)(\\d*)n|)"+Ke+"*(?:([+-]|)"+Ke+"*(\\d+)|))"+Ke+"*\\)|)","i"),bool:new RegExp("^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$","i"),needsContext:new RegExp("^"+Ke+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+Ke+"*((?:-\\d)?\\d*)"+Ke+"*\\)|)(?=[^-]|$)","i")},ot=/^(?:input|select|textarea|button)$/i,it=/^h\d$/i,at=/^[^{]+\{\s*\[native \w/,ut=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,st=/[+~]/,ct=/'|\\/g,lt=new RegExp("\\\\([\\da-f]{1,6}"+Ke+"?|("+Ke+")|.)","ig"),ft=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)};try{je.apply(qe=$e.call(_e.childNodes),_e.childNodes),qe[_e.childNodes.length].nodeType}catch(Zx){je={apply:qe.length?function(e,t){He.apply(e,$e.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}var dt=function(e,t,n,r){var o,i,a,u,s,c,l,f,d,m;if((t?t.ownerDocument||t:_e)!==ce&&se(t),n=n||[],!e||"string"!=typeof e)return n;if(1!==(u=(t=t||ce).nodeType)&&9!==u)return[];if(fe&&!r){if(o=ut.exec(e))if(a=o[1]){if(9===u){if(!(i=t.getElementById(a))||!i.parentNode)return n;if(i.id===a)return n.push(i),n}else if(t.ownerDocument&&(i=t.ownerDocument.getElementById(a))&&pe(t,i)&&i.id===a)return n.push(i),n}else{if(o[2])return je.apply(n,t.getElementsByTagName(e)),n;if((a=o[3])&&Q.getElementsByClassName)return je.apply(n,t.getElementsByClassName(a)),n}if(Q.qsa&&(!de||!de.test(e))){if(f=l=Be,d=t,m=9===u&&e,1===u&&"object"!==t.nodeName.toLowerCase()){for(c=ne(e),(l=t.getAttribute("id"))?f=l.replace(ct,"\\$&"):t.setAttribute("id",f),f="[id='"+f+"'] ",s=c.length;s--;)c[s]=f+xt(c[s]);d=st.test(e)&&bt(t.parentNode)||t,m=c.join(",")}if(m)try{return je.apply(n,d.querySelectorAll(m)),n}catch(p){}finally{l||t.removeAttribute("id")}}}return oe(e.replace(Je,"$1"),t,n,r)};function mt(){var r=[];return function e(t,n){return r.push(t+" ")>Z.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function pt(e){return e[Be]=!0,e}function gt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||ze)-(~e.sourceIndex||ze);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function ht(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function vt(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function yt(a){return pt(function(i){return i=+i,pt(function(e,t){for(var n,r=a([],e.length,i),o=r.length;o--;)e[n=r[o]]&&(e[n]=!(t[n]=e[n]))})})}function bt(e){return e&&typeof e.getElementsByTagName!==Fe&&e}for(J in Q=dt.support={},te=dt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},se=dt.setDocument=function(e){var t,s=e?e.ownerDocument||e:_e,n=s.defaultView;return s!==ce&&9===s.nodeType&&s.documentElement?(le=(ce=s).documentElement,fe=!te(s),n&&n!==function(e){try{return e.top}catch(t){}return null}(n)&&(n.addEventListener?n.addEventListener("unload",function(){se()},!1):n.attachEvent&&n.attachEvent("onunload",function(){se()})),Q.attributes=!0,Q.getElementsByTagName=!0,Q.getElementsByClassName=at.test(s.getElementsByClassName),Q.getById=!0,Z.find.ID=function(e,t){if(typeof t.getElementById!==Fe&&fe){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},Z.filter.ID=function(e){var t=e.replace(lt,ft);return function(e){return e.getAttribute("id")===t}},Z.find.TAG=Q.getElementsByTagName?function(e,t){if(typeof t.getElementsByTagName!==Fe)return t.getElementsByTagName(e)}:function(e,t){var n,r=[],o=0,i=t.getElementsByTagName(e);if("*"===e){for(;n=i[o++];)1===n.nodeType&&r.push(n);return r}return i},Z.find.CLASS=Q.getElementsByClassName&&function(e,t){if(fe)return t.getElementsByClassName(e)},me=[],de=[],Q.disconnectedMatch=!0,de=de.length&&new RegExp(de.join("|")),me=me.length&&new RegExp(me.join("|")),t=at.test(le.compareDocumentPosition),pe=t||at.test(le.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},Me=t?function(e,t){if(e===t)return ue=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!Q.sortDetached&&t.compareDocumentPosition(e)===n?e===s||e.ownerDocument===_e&&pe(_e,e)?-1:t===s||t.ownerDocument===_e&&pe(_e,t)?1:ae?We.call(ae,e)-We.call(ae,t):0:4&n?-1:1)}:function(e,t){if(e===t)return ue=!0,0;var n,r=0,o=e.parentNode,i=t.parentNode,a=[e],u=[t];if(!o||!i)return e===s?-1:t===s?1:o?-1:i?1:ae?We.call(ae,e)-We.call(ae,t):0;if(o===i)return gt(e,t);for(n=e;n=n.parentNode;)a.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;a[r]===u[r];)r++;return r?gt(a[r],u[r]):a[r]===_e?-1:u[r]===_e?1:0},s):ce},dt.matches=function(e,t){return dt(e,null,null,t)},dt.matchesSelector=function(e,t){if((e.ownerDocument||e)!==ce&&se(e),t=t.replace(et,"='$1']"),Q.matchesSelector&&fe&&(!me||!me.test(t))&&(!de||!de.test(t)))try{var n=(void 0).call(e,t);if(n||Q.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(Zx){}return 0<dt(t,ce,null,[e]).length},dt.contains=function(e,t){return(e.ownerDocument||e)!==ce&&se(e),pe(e,t)},dt.attr=function(e,t){(e.ownerDocument||e)!==ce&&se(e);var n=Z.attrHandle[t.toLowerCase()],r=n&&Ue.call(Z.attrHandle,t.toLowerCase())?n(e,t,!fe):undefined;return r!==undefined?r:Q.attributes||!fe?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},dt.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},dt.uniqueSort=function(e){var t,n=[],r=0,o=0;if(ue=!Q.detectDuplicates,ae=!Q.sortStable&&e.slice(0),e.sort(Me),ue){for(;t=e[o++];)t===e[o]&&(r=n.push(o));for(;r--;)e.splice(n[r],1)}return ae=null,e},ee=dt.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=ee(e)}else if(3===o||4===o)return e.nodeValue}else for(;t=e[r++];)n+=ee(t);return n},(Z=dt.selectors={cacheLength:50,createPseudo:pt,match:rt,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(lt,ft),e[3]=(e[3]||e[4]||e[5]||"").replace(lt,ft),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||dt.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&dt.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return rt.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&tt.test(n)&&(t=ne(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(lt,ft).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=Pe[e+" "];return t||(t=new RegExp("(^|"+Ke+")"+e+"("+Ke+"|$)"))&&Pe(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==Fe&&e.getAttribute("class")||"")})},ATTR:function(n,r,o){return function(e){var t=dt.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===o:"!="===r?t!==o:"^="===r?o&&0===t.indexOf(o):"*="===r?o&&-1<t.indexOf(o):"$="===r?o&&t.slice(-o.length)===o:"~="===r?-1<(" "+t+" ").indexOf(o):"|="===r&&(t===o||t.slice(0,o.length+1)===o+"-"))}},CHILD:function(m,e,t,p,g){var h="nth"!==m.slice(0,3),v="last"!==m.slice(-4),y="of-type"===e;return 1===p&&0===g?function(e){return!!e.parentNode}:function(e,t,n){var r,o,i,a,u,s,c=h!==v?"nextSibling":"previousSibling",l=e.parentNode,f=y&&e.nodeName.toLowerCase(),d=!n&&!y;if(l){if(h){for(;c;){for(i=e;i=i[c];)if(y?i.nodeName.toLowerCase()===f:1===i.nodeType)return!1;s=c="only"===m&&!s&&"nextSibling"}return!0}if(s=[v?l.firstChild:l.lastChild],v&&d){for(u=(r=(o=l[Be]||(l[Be]={}))[m]||[])[0]===De&&r[1],a=r[0]===De&&r[2],i=u&&l.childNodes[u];i=++u&&i&&i[c]||(a=u=0)||s.pop();)if(1===i.nodeType&&++a&&i===e){o[m]=[De,u,a];break}}else if(d&&(r=(e[Be]||(e[Be]={}))[m])&&r[0]===De)a=r[1];else for(;(i=++u&&i&&i[c]||(a=u=0)||s.pop())&&((y?i.nodeName.toLowerCase()!==f:1!==i.nodeType)||!++a||(d&&((i[Be]||(i[Be]={}))[m]=[De,a]),i!==e)););return(a-=g)===p||a%p==0&&0<=a/p}}},PSEUDO:function(e,i){var t,a=Z.pseudos[e]||Z.setFilters[e.toLowerCase()]||dt.error("unsupported pseudo: "+e);return a[Be]?a(i):1<a.length?(t=[e,e,"",i],Z.setFilters.hasOwnProperty(e.toLowerCase())?pt(function(e,t){for(var n,r=a(e,i),o=r.length;o--;)e[n=We.call(e,r[o])]=!(t[n]=r[o])}):function(e){return a(e,0,t)}):a}},pseudos:{not:pt(function(e){var r=[],o=[],u=re(e.replace(Je,"$1"));return u[Be]?pt(function(e,t,n,r){for(var o,i=u(e,null,r,[]),a=e.length;a--;)(o=i[a])&&(e[a]=!(t[a]=o))}):function(e,t,n){return r[0]=e,u(r,null,n,o),!o.pop()}}),has:pt(function(t){return function(e){return 0<dt(t,e).length}}),contains:pt(function(t){return t=t.replace(lt,ft),function(e){return-1<(e.textContent||e.innerText||ee(e)).indexOf(t)}}),lang:pt(function(n){return nt.test(n||"")||dt.error("unsupported lang: "+n),n=n.replace(lt,ft).toLowerCase(),function(e){var t;do{if(t=fe?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=window.location&&window.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===le},focus:function(e){return e===ce.activeElement&&(!ce.hasFocus||ce.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return!1===e.disabled},disabled:function(e){return!0===e.disabled},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!Z.pseudos.empty(e)},header:function(e){return it.test(e.nodeName)},input:function(e){return ot.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:yt(function(){return[0]}),last:yt(function(e,t){return[t-1]}),eq:yt(function(e,t,n){return[n<0?n+t:n]}),even:yt(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:yt(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:yt(function(e,t,n){for(var r=n<0?n+t:n;0<=--r;)e.push(r);return e}),gt:yt(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=Z.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})Z.pseudos[J]=ht(J);for(J in{submit:!0,reset:!0})Z.pseudos[J]=vt(J);function Ct(){}function xt(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function wt(a,e,t){var u=e.dir,s=t&&"parentNode"===u,c=Oe++;return e.first?function(e,t,n){for(;e=e[u];)if(1===e.nodeType||s)return a(e,t,n)}:function(e,t,n){var r,o,i=[De,c];if(n){for(;e=e[u];)if((1===e.nodeType||s)&&a(e,t,n))return!0}else for(;e=e[u];)if(1===e.nodeType||s){if((r=(o=e[Be]||(e[Be]={}))[u])&&r[0]===De&&r[1]===c)return i[2]=r[2];if((o[u]=i)[2]=a(e,t,n))return!0}}}function Nt(o){return 1<o.length?function(e,t,n){for(var r=o.length;r--;)if(!o[r](e,t,n))return!1;return!0}:o[0]}function Et(e,t,n,r,o){for(var i,a=[],u=0,s=e.length,c=null!=t;u<s;u++)(i=e[u])&&(n&&!n(i,r,o)||(a.push(i),c&&t.push(u)));return a}function St(m,p,g,h,v,e){return h&&!h[Be]&&(h=St(h)),v&&!v[Be]&&(v=St(v,e)),pt(function(e,t,n,r){var o,i,a,u=[],s=[],c=t.length,l=e||function(e,t,n){for(var r=0,o=t.length;r<o;r++)dt(e,t[r],n);return n}(p||"*",n.nodeType?[n]:n,[]),f=!m||!e&&p?l:Et(l,u,m,n,r),d=g?v||(e?m:c||h)?[]:t:f;if(g&&g(f,d,n,r),h)for(o=Et(d,s),h(o,[],n,r),i=o.length;i--;)(a=o[i])&&(d[s[i]]=!(f[s[i]]=a));if(e){if(v||m){if(v){for(o=[],i=d.length;i--;)(a=d[i])&&o.push(f[i]=a);v(null,d=[],o,r)}for(i=d.length;i--;)(a=d[i])&&-1<(o=v?We.call(e,a):u[i])&&(e[o]=!(t[o]=a))}}else d=Et(d===t?d.splice(c,d.length):d),v?v(null,t,d,r):je.apply(t,d)})}function kt(e){for(var r,t,n,o=e.length,i=Z.relative[e[0].type],a=i||Z.relative[" "],u=i?1:0,s=wt(function(e){return e===r},a,!0),c=wt(function(e){return-1<We.call(r,e)},a,!0),l=[function(e,t,n){return!i&&(n||t!==ie)||((r=t).nodeType?s(e,t,n):c(e,t,n))}];u<o;u++)if(t=Z.relative[e[u].type])l=[wt(Nt(l),t)];else{if((t=Z.filter[e[u].type].apply(null,e[u].matches))[Be]){for(n=++u;n<o&&!Z.relative[e[n].type];n++);return St(1<u&&Nt(l),1<u&&xt(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(Je,"$1"),t,u<n&&kt(e.slice(u,n)),n<o&&kt(e=e.slice(n)),n<o&&xt(e))}l.push(t)}return Nt(l)}Ct.prototype=Z.filters=Z.pseudos,Z.setFilters=new Ct,ne=dt.tokenize=function(e,t){var n,r,o,i,a,u,s,c=Le[e+" "];if(c)return t?0:c.slice(0);for(a=e,u=[],s=Z.preFilter;a;){for(i in n&&!(r=Qe.exec(a))||(r&&(a=a.slice(r[0].length)||a),u.push(o=[])),n=!1,(r=Ze.exec(a))&&(n=r.shift(),o.push({value:n,type:r[0].replace(Je," ")}),a=a.slice(n.length)),Z.filter)!(r=rt[i].exec(a))||s[i]&&!(r=s[i](r))||(n=r.shift(),o.push({value:n,type:i,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?dt.error(e):Le(e,u).slice(0)},re=dt.compile=function(e,t){var n,h,v,y,b,r,o=[],i=[],a=Ie[e+" "];if(!a){for(t||(t=ne(e)),n=t.length;n--;)(a=kt(t[n]))[Be]?o.push(a):i.push(a);(a=Ie(e,(h=i,y=0<(v=o).length,b=0<h.length,r=function(e,t,n,r,o){var i,a,u,s=0,c="0",l=e&&[],f=[],d=ie,m=e||b&&Z.find.TAG("*",o),p=De+=null==d?1:Math.random()||.1,g=m.length;for(o&&(ie=t!==ce&&t);c!==g&&null!=(i=m[c]);c++){if(b&&i){for(a=0;u=h[a++];)if(u(i,t,n)){r.push(i);break}o&&(De=p)}y&&((i=!u&&i)&&s--,e&&l.push(i))}if(s+=c,y&&c!==s){for(a=0;u=v[a++];)u(l,f,t,n);if(e){if(0<s)for(;c--;)l[c]||f[c]||(f[c]=Ve.call(r));f=Et(f)}je.apply(r,f),o&&!e&&0<f.length&&1<s+v.length&&dt.uniqueSort(r)}return o&&(De=p,ie=d),l},y?pt(r):r))).selector=e}return a},oe=dt.select=function(e,t,n,r){var o,i,a,u,s,c="function"==typeof e&&e,l=!r&&ne(e=c.selector||e);if(n=n||[],1===l.length){if(2<(i=l[0]=l[0].slice(0)).length&&"ID"===(a=i[0]).type&&Q.getById&&9===t.nodeType&&fe&&Z.relative[i[1].type]){if(!(t=(Z.find.ID(a.matches[0].replace(lt,ft),t)||[])[0]))return n;c&&(t=t.parentNode),e=e.slice(i.shift().value.length)}for(o=rt.needsContext.test(e)?0:i.length;o--&&(a=i[o],!Z.relative[u=a.type]);)if((s=Z.find[u])&&(r=s(a.matches[0].replace(lt,ft),st.test(i[0].type)&&bt(t.parentNode)||t))){if(i.splice(o,1),!(e=r.length&&xt(i)))return je.apply(n,r),n;break}}return(c||re(e,l))(r,t,!fe,n,st.test(e)&&bt(t.parentNode)||t),n},Q.sortStable=Be.split("").sort(Me).join("")===Be,Q.detectDuplicates=!!ue,se(),Q.sortDetached=!0;var Tt=Array.isArray,At=function(e,t,n){var r,o;if(!e)return 0;if(n=n||e,e.length!==undefined){for(r=0,o=e.length;r<o;r++)if(!1===t.call(n,e[r],r,e))return 0}else for(r in e)if(e.hasOwnProperty(r)&&!1===t.call(n,e[r],r,e))return 0;return 1},Rt=function(e,t,n){var r,o;for(r=0,o=e.length;r<o;r++)if(t.call(n,e[r],r,e))return r;return-1},Bt={isArray:Tt,toArray:function(e){var t,n,r=e;if(!Tt(e))for(r=[],t=0,n=e.length;t<n;t++)r[t]=e[t];return r},each:At,map:function(n,r){var o=[];return At(n,function(e,t){o.push(r(e,t,n))}),o},filter:function(n,r){var o=[];return At(n,function(e,t){r&&!r(e,t,n)||o.push(e)}),o},indexOf:function(e,t){var n,r;if(e)for(n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},reduce:function(e,t,n,r){var o=0;for(arguments.length<3&&(n=e[0]);o<e.length;o++)n=t.call(r,n,e[o],o);return n},findIndex:Rt,find:function(e,t,n){var r=Rt(e,t,n);return-1!==r?e[r]:undefined},last:function(e){return e[e.length-1]}},_t=/^\s*|\s*$/g,Dt=function(e){return null===e||e===undefined?"":(""+e).replace(_t,"")},Ot=function(e,t){return t?!("array"!==t||!Bt.isArray(e))||typeof e===t:e!==undefined},Pt=function(e,n,r,o){o=o||this,e&&(r&&(e=e[r]),Bt.each(e,function(e,t){if(!1===n.call(o,e,t,r))return!1;Pt(e,n,r,o)}))},Lt={trim:Dt,isArray:Bt.isArray,is:Ot,toArray:Bt.toArray,makeMap:function(e,t,n){var r;for(t=t||",","string"==typeof(e=e||[])&&(e=e.split(t)),n=n||{},r=e.length;r--;)n[e[r]]={};return n},each:Bt.each,map:Bt.map,grep:Bt.filter,inArray:Bt.indexOf,hasOwn:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},extend:function(e,t){for(var n,r,o,i=[],a=2;a<arguments.length;a++)i[a-2]=arguments[a];var u,s=arguments;for(n=1,r=s.length;n<r;n++)for(o in t=s[n])t.hasOwnProperty(o)&&(u=t[o])!==undefined&&(e[o]=u);return e},create:function(e,t,n){var r,o,i,a,u,s=this,c=0;if(e=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(e),i=e[3].match(/(^|\.)(\w+)$/i)[2],!(o=s.createNS(e[3].replace(/\.\w+$/,""),n))[i]){if("static"===e[2])return o[i]=t,void(this.onCreate&&this.onCreate(e[2],e[3],o[i]));t[i]||(t[i]=function(){},c=1),o[i]=t[i],s.extend(o[i].prototype,t),e[5]&&(r=s.resolve(e[5]).prototype,a=e[5].match(/\.(\w+)$/i)[1],u=o[i],o[i]=c?function(){return r[a].apply(this,arguments)}:function(){return this.parent=r[a],u.apply(this,arguments)},o[i].prototype[i]=o[i],s.each(r,function(e,t){o[i].prototype[t]=r[t]}),s.each(t,function(e,t){r[t]?o[i].prototype[t]=function(){return this.parent=r[t],e.apply(this,arguments)}:t!==i&&(o[i].prototype[t]=e)})),s.each(t["static"],function(e,t){o[i][t]=e})}},walk:Pt,createNS:function(e,t){var n,r;for(t=t||window,e=e.split("."),n=0;n<e.length;n++)t[r=e[n]]||(t[r]={}),t=t[r];return t},resolve:function(e,t){var n,r;for(t=t||window,n=0,r=(e=e.split(".")).length;n<r&&(t=t[e[n]]);n++);return t},explode:function(e,t){return!e||Ot(e,"array")?e:Bt.map(e.split(t||","),Dt)},_addCacheSuffix:function(e){var t=ge.cacheSuffix;return t&&(e+=(-1===e.indexOf("?")?"?":"&")+t),e}},It=document,Mt=Array.prototype.push,Ft=Array.prototype.slice,zt=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,Ut=Re.Event,qt=Lt.makeMap("children,contents,next,prev"),Vt=function(e){return void 0!==e},Ht=function(e){return"string"==typeof e},jt=function(e,t){var n,r,o;for(o=(t=t||It).createElement("div"),n=t.createDocumentFragment(),o.innerHTML=e;r=o.firstChild;)n.appendChild(r);return n},$t=function(e,t,n,r){var o;if(Ht(t))t=jt(t,an(e[0]));else if(t.length&&!t.nodeType){if(t=en.makeArray(t),r)for(o=t.length-1;0<=o;o--)$t(e,t[o],n,r);else for(o=0;o<t.length;o++)$t(e,t[o],n,r);return e}if(t.nodeType)for(o=e.length;o--;)n.call(e[o],t);return e},Wt=function(e,t){return e&&t&&-1!==(" "+e.className+" ").indexOf(" "+t+" ")},Kt=function(e,t,n){var r,o;return t=en(t)[0],e.each(function(){var e=this;n&&r===e.parentNode||(r=e.parentNode,o=t.cloneNode(!1),e.parentNode.insertBefore(o,e)),o.appendChild(e)}),e},Xt=Lt.makeMap("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"," "),Yt=Lt.makeMap("checked compact declare defer disabled ismap multiple nohref noshade nowrap readonly selected"," "),Gt={"for":"htmlFor","class":"className",readonly:"readOnly"},Jt={"float":"cssFloat"},Qt={},Zt={},en=function(e,t){return new en.fn.init(e,t)},tn=/^\s*|\s*$/g,nn=function(e){return null===e||e===undefined?"":(""+e).replace(tn,"")},rn=function(e,t){var n,r,o,i;if(e)if((n=e.length)===undefined){for(r in e)if(e.hasOwnProperty(r)&&(i=e[r],!1===t.call(i,r,i)))break}else for(o=0;o<n&&(i=e[o],!1!==t.call(i,o,i));o++);return e},on=function(e,n){var r=[];return rn(e,function(e,t){n(t,e)&&r.push(t)}),r},an=function(e){return e?9===e.nodeType?e:e.ownerDocument:It};en.fn=en.prototype={constructor:en,selector:"",context:null,length:0,init:function(e,t){var n,r,o=this;if(!e)return o;if(e.nodeType)return o.context=o[0]=e,o.length=1,o;if(t&&t.nodeType)o.context=t;else{if(t)return en(e).attr(t);o.context=t=document}if(Ht(e)){if(!(n="<"===(o.selector=e).charAt(0)&&">"===e.charAt(e.length-1)&&3<=e.length?[null,e,null]:zt.exec(e)))return en(t).find(e);if(n[1])for(r=jt(e,an(t)).firstChild;r;)Mt.call(o,r),r=r.nextSibling;else{if(!(r=an(t).getElementById(n[2])))return o;if(r.id!==n[2])return o.find(e);o.length=1,o[0]=r}}else this.add(e,!1);return o},toArray:function(){return Lt.toArray(this)},add:function(e,t){var n,r,o=this;if(Ht(e))return o.add(en(e));if(!1!==t)for(n=en.unique(o.toArray().concat(en.makeArray(e))),o.length=n.length,r=0;r<n.length;r++)o[r]=n[r];else Mt.apply(o,en.makeArray(e));return o},attr:function(t,n){var e,r=this;if("object"==typeof t)rn(t,function(e,t){r.attr(e,t)});else{if(!Vt(n)){if(r[0]&&1===r[0].nodeType){if((e=Qt[t])&&e.get)return e.get(r[0],t);if(Yt[t])return r.prop(t)?t:undefined;null===(n=r[0].getAttribute(t,2))&&(n=undefined)}return n}this.each(function(){var e;if(1===this.nodeType){if((e=Qt[t])&&e.set)return void e.set(this,n);null===n?this.removeAttribute(t,2):this.setAttribute(t,n,2)}})}return r},removeAttr:function(e){return this.attr(e,null)},prop:function(e,t){var n=this;if("object"==typeof(e=Gt[e]||e))rn(e,function(e,t){n.prop(e,t)});else{if(!Vt(t))return n[0]&&n[0].nodeType&&e in n[0]?n[0][e]:t;this.each(function(){1===this.nodeType&&(this[e]=t)})}return n},css:function(n,r){var e,o,i=this,t=function(e){return e.replace(/-(\D)/g,function(e,t){return t.toUpperCase()})},a=function(e){return e.replace(/[A-Z]/g,function(e){return"-"+e})};if("object"==typeof n)rn(n,function(e,t){i.css(e,t)});else if(Vt(r))n=t(n),"number"!=typeof r||Xt[n]||(r=r.toString()+"px"),i.each(function(){var e=this.style;if((o=Zt[n])&&o.set)o.set(this,r);else{try{this.style[Jt[n]||n]=r}catch(t){}null!==r&&""!==r||(e.removeProperty?e.removeProperty(a(n)):e.removeAttribute(n))}});else{if(e=i[0],(o=Zt[n])&&o.get)return o.get(e);if(!e.ownerDocument.defaultView)return e.currentStyle?e.currentStyle[t(n)]:"";try{return e.ownerDocument.defaultView.getComputedStyle(e,null).getPropertyValue(a(n))}catch(u){return undefined}}return i},remove:function(){for(var e,t=this.length;t--;)e=this[t],Ut.clean(e),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var e,t=this.length;t--;)for(e=this[t];e.firstChild;)e.removeChild(e.firstChild);return this},html:function(e){var t,n=this;if(Vt(e)){t=n.length;try{for(;t--;)n[t].innerHTML=e}catch(r){en(n[t]).empty().append(e)}return n}return n[0]?n[0].innerHTML:""},text:function(e){var t,n=this;if(Vt(e)){for(t=n.length;t--;)"innerText"in n[t]?n[t].innerText=e:n[0].textContent=e;return n}return n[0]?n[0].innerText||n[0].textContent:""},append:function(){return $t(this,arguments,function(e){(1===this.nodeType||this.host&&1===this.host.nodeType)&&this.appendChild(e)})},prepend:function(){return $t(this,arguments,function(e){(1===this.nodeType||this.host&&1===this.host.nodeType)&&this.insertBefore(e,this.firstChild)},!0)},before:function(){return this[0]&&this[0].parentNode?$t(this,arguments,function(e){this.parentNode.insertBefore(e,this)}):this},after:function(){return this[0]&&this[0].parentNode?$t(this,arguments,function(e){this.parentNode.insertBefore(e,this.nextSibling)},!0):this},appendTo:function(e){return en(e).append(this),this},prependTo:function(e){return en(e).prepend(this),this},replaceWith:function(e){return this.before(e).remove()},wrap:function(e){return Kt(this,e)},wrapAll:function(e){return Kt(this,e,!0)},wrapInner:function(e){return this.each(function(){en(this).contents().wrapAll(e)}),this},unwrap:function(){return this.parent().each(function(){en(this).replaceWith(this.childNodes)})},clone:function(){var e=[];return this.each(function(){e.push(this.cloneNode(!0))}),en(e)},addClass:function(e){return this.toggleClass(e,!0)},removeClass:function(e){return this.toggleClass(e,!1)},toggleClass:function(o,i){var e=this;return"string"!=typeof o||(-1!==o.indexOf(" ")?rn(o.split(" "),function(){e.toggleClass(this,i)}):e.each(function(e,t){var n,r;(r=Wt(t,o))!==i&&(n=t.className,r?t.className=nn((" "+n+" ").replace(" "+o+" "," ")):t.className+=n?" "+o:o)})),e},hasClass:function(e){return Wt(this[0],e)},each:function(e){return rn(this,e)},on:function(e,t){return this.each(function(){Ut.bind(this,e,t)})},off:function(e,t){return this.each(function(){Ut.unbind(this,e,t)})},trigger:function(e){return this.each(function(){"object"==typeof e?Ut.fire(this,e.type,e):Ut.fire(this,e)})},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},slice:function(){return new en(Ft.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},find:function(e){var t,n,r=[];for(t=0,n=this.length;t<n;t++)en.find(e,this[t],r);return en(r)},filter:function(n){return en("function"==typeof n?on(this.toArray(),function(e,t){return n(t,e)}):en.filter(n,this.toArray()))},closest:function(n){var r=[];return n instanceof en&&(n=n[0]),this.each(function(e,t){for(;t;){if("string"==typeof n&&en(t).is(n)){r.push(t);break}if(t===n){r.push(t);break}t=t.parentNode}}),en(r)},offset:function(e){var t,n,r,o,i=0,a=0;return e?this.css(e):((t=this[0])&&(r=(n=t.ownerDocument).documentElement,t.getBoundingClientRect&&(i=(o=t.getBoundingClientRect()).left+(r.scrollLeft||n.body.scrollLeft)-r.clientLeft,a=o.top+(r.scrollTop||n.body.scrollTop)-r.clientTop)),{left:i,top:a})},push:Mt,sort:[].sort,splice:[].splice},Lt.extend(en,{extend:Lt.extend,makeArray:function(e){return(t=e)&&t===t.window||e.nodeType?[e]:Lt.toArray(e);var t},inArray:function(e,t){var n;if(t.indexOf)return t.indexOf(e);for(n=t.length;n--;)if(t[n]===e)return n;return-1},isArray:Lt.isArray,each:rn,trim:nn,grep:on,find:dt,expr:dt.selectors,unique:dt.uniqueSort,text:dt.getText,contains:dt.contains,filter:function(e,t,n){var r=t.length;for(n&&(e=":not("+e+")");r--;)1!==t[r].nodeType&&t.splice(r,1);return t=1===t.length?en.find.matchesSelector(t[0],e)?[t[0]]:[]:en.find.matches(e,t)}});var un=function(e,t,n){var r=[],o=e[t];for("string"!=typeof n&&n instanceof en&&(n=n[0]);o&&9!==o.nodeType;){if(n!==undefined){if(o===n)break;if("string"==typeof n&&en(o).is(n))break}1===o.nodeType&&r.push(o),o=o[t]}return r},sn=function(e,t,n,r){var o=[];for(r instanceof en&&(r=r[0]);e;e=e[t])if(!n||e.nodeType===n){if(r!==undefined){if(e===r)break;if("string"==typeof r&&en(e).is(r))break}o.push(e)}return o},cn=function(e,t,n){for(e=e[t];e;e=e[t])if(e.nodeType===n)return e;return null};rn({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return un(e,"parentNode")},next:function(e){return cn(e,"nextSibling",1)},prev:function(e){return cn(e,"previousSibling",1)},children:function(e){return sn(e.firstChild,"nextSibling",1)},contents:function(e){return Lt.toArray(("iframe"===e.nodeName?e.contentDocument||e.contentWindow.document:e).childNodes)}},function(e,r){en.fn[e]=function(t){var n=[];return this.each(function(){var e=r.call(n,this,t,n);e&&(en.isArray(e)?n.push.apply(n,e):n.push(e))}),1<this.length&&(qt[e]||(n=en.unique(n)),0===e.indexOf("parents")&&(n=n.reverse())),n=en(n),t?n.filter(t):n}}),rn({parentsUntil:function(e,t){return un(e,"parentNode",t)},nextUntil:function(e,t){return sn(e,"nextSibling",1,t).slice(1)},prevUntil:function(e,t){return sn(e,"previousSibling",1,t).slice(1)}},function(r,o){en.fn[r]=function(t,e){var n=[];return this.each(function(){var e=o.call(n,this,t,n);e&&(en.isArray(e)?n.push.apply(n,e):n.push(e))}),1<this.length&&(n=en.unique(n),0!==r.indexOf("parents")&&"prevUntil"!==r||(n=n.reverse())),n=en(n),e?n.filter(e):n}}),en.fn.is=function(e){return!!e&&0<this.filter(e).length},en.fn.init.prototype=en.fn,en.overrideDefaults=function(n){var r,o=function(e,t){return r=r||n(),0===arguments.length&&(e=r.element),t||(t=r.context),new o.fn.init(e,t)};return en.extend(o,this),o};var ln=function(n,r,e){rn(e,function(e,t){n[e]=n[e]||{},n[e][r]=t})};ge.ie&&ge.ie<8&&(ln(Qt,"get",{maxlength:function(e){var t=e.maxLength;return 2147483647===t?undefined:t},size:function(e){var t=e.size;return 20===t?undefined:t},"class":function(e){return e.className},style:function(e){var t=e.style.cssText;return 0===t.length?undefined:t}}),ln(Qt,"set",{"class":function(e,t){e.className=t},style:function(e,t){e.style.cssText=t}})),ge.ie&&ge.ie<9&&(Jt["float"]="styleFloat",ln(Zt,"set",{opacity:function(e,t){var n=e.style;null===t||""===t?n.removeAttribute("filter"):(n.zoom=1,n.filter="alpha(opacity="+100*t+")")}})),en.attrHooks=Qt,en.cssHooks=Zt;var fn,dn=function(e){var t,n=!1;return function(){return n||(n=!0,t=e.apply(null,arguments)),t}},mn=function(e,t){var n=function(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(r.test(t))return r}return undefined}(e,t);if(!n)return{major:0,minor:0};var r=function(e){return Number(t.replace(n,"$"+e))};return gn(r(1),r(2))},pn=function(){return gn(0,0)},gn=function(e,t){return{major:e,minor:t}},hn={nu:gn,detect:function(e,t){var n=String(t).toLowerCase();return 0===e.length?pn():mn(e,n)},unknown:pn},vn="Firefox",yn=function(e,t){return function(){return t===e}},bn=function(e){var t=e.current;return{current:t,version:e.version,isEdge:yn("Edge",t),isChrome:yn("Chrome",t),isIE:yn("IE",t),isOpera:yn("Opera",t),isFirefox:yn(vn,t),isSafari:yn("Safari",t)}},Cn={unknown:function(){return bn({current:undefined,version:hn.unknown()})},nu:bn,edge:V.constant("Edge"),chrome:V.constant("Chrome"),ie:V.constant("IE"),opera:V.constant("Opera"),firefox:V.constant(vn),safari:V.constant("Safari")},xn="Windows",wn="Android",Nn="Solaris",En="FreeBSD",Sn=function(e,t){return function(){return t===e}},kn=function(e){var t=e.current;return{current:t,version:e.version,isWindows:Sn(xn,t),isiOS:Sn("iOS",t),isAndroid:Sn(wn,t),isOSX:Sn("OSX",t),isLinux:Sn("Linux",t),isSolaris:Sn(Nn,t),isFreeBSD:Sn(En,t)}},Tn={unknown:function(){return kn({current:undefined,version:hn.unknown()})},nu:kn,windows:V.constant(xn),ios:V.constant("iOS"),android:V.constant(wn),linux:V.constant("Linux"),osx:V.constant("OSX"),solaris:V.constant(Nn),freebsd:V.constant(En)},An=function(e,t){var n=String(t).toLowerCase();return H.find(e,function(e){return e.search(n)})},Rn=function(e,n){return An(e,n).map(function(e){var t=hn.detect(e.versionRegexes,n);return{current:e.name,version:t}})},Bn=function(e,n){return An(e,n).map(function(e){var t=hn.detect(e.versionRegexes,n);return{current:e.name,version:t}})},_n=function(e,t){return-1!==e.indexOf(t)},Dn=function(e){return e.replace(/^\s+|\s+$/g,"")},On=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,Pn=function(t){return function(e){return _n(e,t)}},Ln=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:function(e){return _n(e,"edge/")&&_n(e,"chrome")&&_n(e,"safari")&&_n(e,"applewebkit")}},{name:"Chrome",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,On],search:function(e){return _n(e,"chrome")&&!_n(e,"chromeframe")}},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:function(e){return _n(e,"msie")||_n(e,"trident")}},{name:"Opera",versionRegexes:[On,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:Pn("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:Pn("firefox")},{name:"Safari",versionRegexes:[On,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:function(e){return(_n(e,"safari")||_n(e,"mobile/"))&&_n(e,"applewebkit")}}],In=[{name:"Windows",search:Pn("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:function(e){return _n(e,"iphone")||_n(e,"ipad")},versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:Pn("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"OSX",search:Pn("os x"),versionRegexes:[/.*?os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:Pn("linux"),versionRegexes:[]},{name:"Solaris",search:Pn("sunos"),versionRegexes:[]},{name:"FreeBSD",search:Pn("freebsd"),versionRegexes:[]}],Mn={browsers:V.constant(Ln),oses:V.constant(In)},Fn=function(e){var t,n,r,o,i,a,u,s,c,l,f,d=Mn.browsers(),m=Mn.oses(),p=Rn(d,e).fold(Cn.unknown,Cn.nu),g=Bn(m,e).fold(Tn.unknown,Tn.nu);return{browser:p,os:g,deviceType:(n=p,r=e,o=(t=g).isiOS()&&!0===/ipad/i.test(r),i=t.isiOS()&&!o,a=t.isAndroid()&&3===t.version.major,u=t.isAndroid()&&4===t.version.major,s=o||a||u&&!0===/mobile/i.test(r),c=t.isiOS()||t.isAndroid(),l=c&&!s,f=n.isSafari()&&t.isiOS()&&!1===/safari/i.test(r),{isiPad:V.constant(o),isiPhone:V.constant(i),isTablet:V.constant(s),isPhone:V.constant(l),isTouch:V.constant(c),isAndroid:t.isAndroid,isiOS:t.isiOS,isWebView:V.constant(f)})}},zn={detect:dn(function(){var e=navigator.userAgent;return Fn(e)})},Un=function(e){if(null===e||e===undefined)throw new Error("Node cannot be null or undefined");return{dom:V.constant(e)}},qn={fromHtml:function(e,t){var n=(t||document).createElement("div");if(n.innerHTML=e,!n.hasChildNodes()||1<n.childNodes.length)throw console.error("HTML does not have a single root node",e),"HTML must have a single root node";return Un(n.childNodes[0])},fromTag:function(e,t){var n=(t||document).createElement(e);return Un(n)},fromText:function(e,t){var n=(t||document).createTextNode(e);return Un(n)},fromDom:Un,fromPoint:function(e,t,n){return A.from(e.dom().elementFromPoint(t,n)).map(Un)}},Vn=8,Hn=9,jn=1,$n=3,Wn=function(e){return e.dom().nodeName.toLowerCase()},Kn=function(e){return e.dom().nodeType},Xn=function(t){return function(e){return Kn(e)===t}},Yn=Xn(jn),Gn=Xn($n),Jn=Xn(Hn),Qn={name:Wn,type:Kn,value:function(e){return e.dom().nodeValue},isElement:Yn,isText:Gn,isDocument:Jn,isComment:function(e){return Kn(e)===Vn||"#comment"===Wn(e)}},Zn=(fn=Object.keys)===undefined?function(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(n);return t}:fn,er=function(e,t){for(var n=Zn(e),r=0,o=n.length;r<o;r++){var i=n[r];t(e[i],i,e)}},tr=function(r,o){var i={};return er(r,function(e,t){var n=o(e,t,r);i[n.k]=n.v}),i},nr=function(e,n){var r=[];return er(e,function(e,t){r.push(n(e,t))}),r},rr=function(e){return nr(e,function(e){return e})},or={bifilter:function(e,n){var r={},o={};return er(e,function(e,t){(n(e,t)?r:o)[t]=e}),{t:r,f:o}},each:er,map:function(e,r){return tr(e,function(e,t,n){return{k:t,v:r(e,t,n)}})},mapToArray:nr,tupleMap:tr,find:function(e,t){for(var n=Zn(e),r=0,o=n.length;r<o;r++){var i=n[r],a=e[i];if(t(a,i,e))return A.some(a)}return A.none()},keys:Zn,values:rr,size:function(e){return rr(e).length}},ir=function(e,t,n){if(!(E.isString(n)||E.isBoolean(n)||E.isNumber(n)))throw console.error("Invalid call to Attr.set. Key ",t,":: Value ",n,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,n+"")},ar=function(e,t,n){ir(e.dom(),t,n)},ur=function(e,t){var n=e.dom().getAttribute(t);return null===n?undefined:n},sr=function(e,t){var n=e.dom();return!(!n||!n.hasAttribute)&&n.hasAttribute(t)},cr={clone:function(e){return H.foldl(e.dom().attributes,function(e,t){return e[t.name]=t.value,e},{})},set:ar,setAll:function(e,t){var n=e.dom();or.each(t,function(e,t){ir(n,t,e)})},get:ur,has:sr,remove:function(e,t){e.dom().removeAttribute(t)},hasNone:function(e){var t=e.dom().attributes;return t===undefined||null===t||0===t.length},transfer:function(o,i,e){Qn.isElement(o)&&Qn.isElement(i)&&H.each(e,function(e){var t,n,r;n=i,sr(t=o,r=e)&&!sr(n,r)&&ar(n,r,ur(t,r))})}},lr=dn(function(){return fr(qn.fromDom(document))}),fr=function(e){var t=e.dom().body;if(null===t||t===undefined)throw"Body is not available yet";return qn.fromDom(t)},dr={body:lr,getBody:fr,inBody:function(e){var t=Qn.isText(e)?e.dom().parentNode:e.dom();return t!==undefined&&null!==t&&t.ownerDocument.body.contains(t)}},mr=function(e){return e.style!==undefined},pr=function(e,t,n){if(!E.isString(n))throw console.error("Invalid call to CSS.set. Property ",t,":: Value ",n,":: Element ",e),new Error("CSS value must be a string: "+n);mr(e)&&e.style.setProperty(t,n)},gr=function(e,t){return mr(e)?e.style.getPropertyValue(t):""},hr=function(e,t){var n=e.dom(),r=gr(n,t);return A.from(r).filter(function(e){return 0<e.length})},vr=function(e,t){var n=e.dom();or.each(t,function(e,t){pr(n,t,e)})},yr=function(e,t){var n=e.dom(),r=window.getComputedStyle(n).getPropertyValue(t),o=""!==r||dr.inBody(e)?r:gr(n,t);return null===o?undefined:o},br=hr,Cr=function(e){return e.slice(0).sort()},xr={sort:Cr,reqMessage:function(e,t){throw new Error("All required keys ("+Cr(e).join(", ")+") were not specified. Specified keys were: "+Cr(t).join(", ")+".")},unsuppMessage:function(e){throw new Error("Unsupported keys for object: "+Cr(e).join(", "))},validateStrArr:function(t,e){if(!E.isArray(e))throw new Error("The "+t+" fields must be an array. Was: "+e+".");H.each(e,function(e){if(!E.isString(e))throw new Error("The value "+e+" in the "+t+" fields was not a string.")})},invalidTypeMessage:function(e,t){throw new Error("All values need to be of type: "+t+". Keys ("+Cr(e).join(", ")+") were not.")},checkDupes:function(e){var n=Cr(e);H.find(n,function(e,t){return t<n.length-1&&e===n[t+1]}).each(function(e){throw new Error("The field: "+e+" occurs more than once in the combined fields: ["+n.join(", ")+"].")})}},wr={immutable:function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];if(t.length!==n.length)throw new Error('Wrong number of arguments to struct. Expected "['+t.length+']", got '+n.length+" arguments");var r={};return H.each(t,function(e,t){r[e]=V.constant(n[t])}),r}},immutableBag:function(o,i){var a=o.concat(i);if(0===a.length)throw new Error("You must specify at least one required or optional field.");return xr.validateStrArr("required",o),xr.validateStrArr("optional",i),xr.checkDupes(a),function(t){var n=or.keys(t);H.forall(o,function(e){return H.contains(n,e)})||xr.reqMessage(o,n);var e=H.filter(n,function(e){return!H.contains(a,e)});0<e.length&&xr.unsuppMessage(e);var r={};return H.each(o,function(e){r[e]=V.constant(t[e])}),H.each(i,function(e){r[e]=V.constant(Object.prototype.hasOwnProperty.call(t,e)?A.some(t[e]):A.none())}),r}}},Nr=function(e,t){for(var n=[],r=function(e){return n.push(e),t(e)},o=t(e);(o=o.bind(r)).isSome(););return n},Er=function(){return j.getOrDie("Node")},Sr=function(e,t,n){return 0!=(e.compareDocumentPosition(t)&n)},kr=function(e,t){return Sr(e,t,Er().DOCUMENT_POSITION_CONTAINED_BY)},Tr=jn,Ar=Hn,Rr=function(e){return e.nodeType!==Tr&&e.nodeType!==Ar||0===e.childElementCount},Br={all:function(e,t){var n=t===undefined?document:t.dom();return Rr(n)?[]:H.map(n.querySelectorAll(e),qn.fromDom)},is:function(e,t){var n=e.dom();if(n.nodeType!==Tr)return!1;if(n.matches!==undefined)return n.matches(t);if(n.msMatchesSelector!==undefined)return n.msMatchesSelector(t);if(n.webkitMatchesSelector!==undefined)return n.webkitMatchesSelector(t);if(n.mozMatchesSelector!==undefined)return n.mozMatchesSelector(t);throw new Error("Browser lacks native selectors")},one:function(e,t){var n=t===undefined?document:t.dom();return Rr(n)?A.none():A.from(n.querySelector(e)).map(qn.fromDom)}},_r=function(e,t){return e.dom()===t.dom()},Dr=zn.detect().browser.isIE()?function(e,t){return kr(e.dom(),t.dom())}:function(e,t){var n=e.dom(),r=t.dom();return n!==r&&n.contains(r)},Or={eq:_r,isEqualNode:function(e,t){return e.dom().isEqualNode(t.dom())},member:function(e,t){return H.exists(t,V.curry(_r,e))},contains:Dr,is:Br.is},Pr=function(e){return qn.fromDom(e.dom().ownerDocument)},Lr=function(e){var t=e.dom();return A.from(t.parentNode).map(qn.fromDom)},Ir=function(e){var t=e.dom();return A.from(t.previousSibling).map(qn.fromDom)},Mr=function(e){var t=e.dom();return A.from(t.nextSibling).map(qn.fromDom)},Fr=function(e){var t=e.dom();return H.map(t.childNodes,qn.fromDom)},zr=function(e,t){var n=e.dom().childNodes;return A.from(n[t]).map(qn.fromDom)},Ur=wr.immutable("element","offset"),qr={owner:Pr,defaultView:function(e){var t=e.dom().ownerDocument.defaultView;return qn.fromDom(t)},documentElement:function(e){var t=Pr(e);return qn.fromDom(t.dom().documentElement)},parent:Lr,findIndex:function(n){return Lr(n).bind(function(e){var t=Fr(e);return H.findIndex(t,function(e){return Or.eq(n,e)})})},parents:function(e,t){for(var n=E.isFunction(t)?t:V.constant(!1),r=e.dom(),o=[];null!==r.parentNode&&r.parentNode!==undefined;){var i=r.parentNode,a=qn.fromDom(i);if(o.push(a),!0===n(a))break;r=i}return o},siblings:function(t){return Lr(t).map(Fr).map(function(e){return H.filter(e,function(e){return!Or.eq(t,e)})}).getOr([])},prevSibling:Ir,offsetParent:function(e){var t=e.dom();return A.from(t.offsetParent).map(qn.fromDom)},prevSiblings:function(e){return H.reverse(Nr(e,Ir))},nextSibling:Mr,nextSiblings:function(e){return Nr(e,Mr)},children:Fr,child:zr,firstChild:function(e){return zr(e,0)},lastChild:function(e){return zr(e,e.dom().childNodes.length-1)},childNodesCount:function(e){return e.dom().childNodes.length},hasChildNodes:function(e){return e.dom().hasChildNodes()},leaf:function(e,t){var n=Fr(e);return 0<n.length&&t<n.length?Ur(n[t],0):Ur(e,t)}},Vr=zn.detect().browser,Hr=function(e){return H.find(e,Qn.isElement)},jr={getPos:function(e,t,n){var r,o,i,a=0,u=0,s=e.ownerDocument;if(n=n||e,t){if(n===e&&t.getBoundingClientRect&&"static"===yr(qn.fromDom(e),"position"))return{x:a=(o=t.getBoundingClientRect()).left+(s.documentElement.scrollLeft||e.scrollLeft)-s.documentElement.clientLeft,y:u=o.top+(s.documentElement.scrollTop||e.scrollTop)-s.documentElement.clientTop};for(r=t;r&&r!==n&&r.nodeType;)a+=r.offsetLeft||0,u+=r.offsetTop||0,r=r.offsetParent;for(r=t.parentNode;r&&r!==n&&r.nodeType;)a-=r.scrollLeft||0,u-=r.scrollTop||0,r=r.parentNode;u+=(i=qn.fromDom(t),Vr.isFirefox()&&"table"===Qn.name(i)?Hr(qr.children(i)).filter(function(e){return"caption"===Qn.name(e)}).bind(function(o){return Hr(qr.nextSiblings(o)).map(function(e){var t=e.dom().offsetTop,n=o.dom().offsetTop,r=o.dom().offsetHeight;return t<=n?-r:0})}).getOr(0):0)}return{x:a,y:u}}},$r=function(e){var n=A.none(),t=[],r=function(e){o()?a(e):t.push(e)},o=function(){return n.isSome()},i=function(e){H.each(e,a)},a=function(t){n.each(function(e){setTimeout(function(){t(e)},0)})};return e(function(e){n=A.some(e),i(t),t=[]}),{get:r,map:function(n){return $r(function(t){r(function(e){t(n(e))})})},isReady:o}},Wr={nu:$r,pure:function(t){return $r(function(e){e(t)})}},Kr=function(n){return function(){var e=Array.prototype.slice.call(arguments),t=this;setTimeout(function(){n.apply(t,e)},0)}},Xr=function(t){var e=function(e){t(Kr(e))};return{map:function(r){return Xr(function(n){e(function(e){var t=r(e);n(t)})})},bind:function(n){return Xr(function(t){e(function(e){n(e).get(t)})})},anonBind:function(n){return Xr(function(t){e(function(e){n.get(t)})})},toLazy:function(){return Wr.nu(e)},get:e}},Yr={nu:Xr,pure:function(t){return Xr(function(e){e(t)})}},Gr=function(a,e){return e(function(r){var o=[],i=0;0===a.length?r([]):H.each(a,function(e,t){var n;e.get((n=t,function(e){o[n]=e,++i>=a.length&&r(o)}))})})},Jr=function(e){return Gr(e,Yr.nu)},Qr={par:Jr,mapM:function(e,t){var n=H.map(e,t);return Jr(n)},compose:function(t,n){return function(e){return n(e).bind(t)}}},Zr=function(n){return{is:function(e){return n===e},isValue:V.always,isError:V.never,getOr:V.constant(n),getOrThunk:V.constant(n),getOrDie:V.constant(n),or:function(e){return Zr(n)},orThunk:function(e){return Zr(n)},fold:function(e,t){return t(n)},map:function(e){return Zr(e(n))},each:function(e){e(n)},bind:function(e){return e(n)},exists:function(e){return e(n)},forall:function(e){return e(n)},toOption:function(){return A.some(n)}}},eo=function(n){return{is:V.never,isValue:V.never,isError:V.always,getOr:V.identity,getOrThunk:function(e){return e()},getOrDie:function(){return V.die(String(n))()},or:function(e){return e},orThunk:function(e){return e()},fold:function(e,t){return e(n)},map:function(e){return eo(n)},each:V.noop,bind:function(e){return eo(n)},exists:V.never,forall:V.always,toOption:A.none}},to={value:Zr,error:eo};function no(e,u){var t=e,n=function(e,t,n,r){var o,i;if(e){if(!r&&e[t])return e[t];if(e!==u){if(o=e[n])return o;for(i=e.parentNode;i&&i!==u;i=i.parentNode)if(o=i[n])return o}}};this.current=function(){return t},this.next=function(e){return t=n(t,"firstChild","nextSibling",e)},this.prev=function(e){return t=n(t,"lastChild","previousSibling",e)},this.prev2=function(e){return t=function(e,t,n,r){var o,i,a;if(e){if(o=e[n],u&&o===u)return;if(o){if(!r)for(a=o[t];a;a=a[t])if(!a[t])return a;return o}if((i=e.parentNode)&&i!==u)return i}}(t,"lastChild","previousSibling",e)}}var ro,oo,io,ao=function(t){var n;return function(e){return(n=n||H.mapToObject(t,V.constant(!0))).hasOwnProperty(Qn.name(e))}},uo=ao(["h1","h2","h3","h4","h5","h6"]),so=ao(["article","aside","details","div","dt","figcaption","footer","form","fieldset","header","hgroup","html","main","nav","section","summary","body","p","dl","multicol","dd","figure","address","center","blockquote","h1","h2","h3","h4","h5","h6","listing","xmp","pre","plaintext","menu","dir","ul","ol","li","hr","table","tbody","thead","tfoot","th","tr","td","caption"]),co=function(e){return Qn.isElement(e)&&!so(e)},lo=function(e){return Qn.isElement(e)&&"br"===Qn.name(e)},fo=ao(["h1","h2","h3","h4","h5","h6","p","div","address","pre","form","blockquote","center","dir","fieldset","header","footer","article","section","hgroup","aside","nav","figure"]),mo=ao(["ul","ol","dl"]),po=ao(["li","dd","dt"]),go=ao(["area","base","basefont","br","col","frame","hr","img","input","isindex","link","meta","param","embed","source","wbr","track"]),ho=ao(["thead","tbody","tfoot"]),vo=ao(["td","th"]),yo=function(t){return function(e){return!!e&&e.nodeType===t}},bo=yo(1),Co=function(e){var r=e.toLowerCase().split(" ");return function(e){var t,n;if(e&&e.nodeType)for(n=e.nodeName.toLowerCase(),t=0;t<r.length;t++)if(n===r[t])return!0;return!1}},xo=function(t){return function(e){if(bo(e)){if(e.contentEditable===t)return!0;if(e.getAttribute("data-mce-contenteditable")===t)return!0}return!1}},wo=yo(3),No=yo(8),Eo=yo(9),So=Co("br"),ko=xo("true"),To=xo("false"),Ao={isText:wo,isElement:bo,isComment:No,isDocument:Eo,isBr:So,isContentEditableTrue:ko,isContentEditableFalse:To,matchNodeNames:Co,hasPropValue:function(t,n){return function(e){return bo(e)&&e[t]===n}},hasAttribute:function(t,e){return function(e){return bo(e)&&e.hasAttribute(t)}},hasAttributeValue:function(t,n){return function(e){return bo(e)&&e.getAttribute(t)===n}},matchStyleValues:function(r,e){var o=e.toLowerCase().split(" ");return function(e){var t;if(bo(e))for(t=0;t<o.length;t++){var n=e.ownerDocument.defaultView.getComputedStyle(e,null);if((n?n.getPropertyValue(r):null)===o[t])return!0}return!1}},isBogus:function(e){return bo(e)&&e.hasAttribute("data-mce-bogus")},isBogusAll:function(e){return bo(e)&&"all"===e.getAttribute("data-mce-bogus")},isTable:function(e){return bo(e)&&"TABLE"===e.tagName}},Ro=function(e){return e&&"SPAN"===e.tagName&&"bookmark"===e.getAttribute("data-mce-type")},Bo=function(e,t){var n,r=t.childNodes;if(!Ao.isElement(t)||!Ro(t)){for(n=r.length-1;0<=n;n--)Bo(e,r[n]);if(!1===Ao.isDocument(t)){if(Ao.isText(t)&&0<t.nodeValue.length){var o=Lt.trim(t.nodeValue).length;if(e.isBlock(t.parentNode)||0<o)return;if(0===o&&(a=(i=t).previousSibling&&"SPAN"===i.previousSibling.nodeName,u=i.nextSibling&&"SPAN"===i.nextSibling.nodeName,a&&u))return}else if(Ao.isElement(t)&&(1===(r=t.childNodes).length&&Ro(r[0])&&t.parentNode.insertBefore(r[0],t),r.length||go(qn.fromDom(t))))return;e.remove(t)}var i,a,u;return t}},_o={trimNode:Bo},Do=Lt.makeMap,Oo=/[&<>\"\u0060\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Po=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,Lo=/[<>&\"\']/g,Io=/&#([a-z0-9]+);?|&([a-z0-9]+);/gi,Mo={128:"\u20ac",130:"\u201a",131:"\u0192",132:"\u201e",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02c6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017d",145:"\u2018",146:"\u2019",147:"\u201c",148:"\u201d",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02dc",153:"\u2122",154:"\u0161",155:"\u203a",156:"\u0153",158:"\u017e",159:"\u0178"};oo={'"':""","'":"'","<":"<",">":">","&":"&","`":"`"},io={"<":"<",">":">","&":"&",""":'"',"'":"'"};var Fo=function(e,t){var n,r,o,i={};if(e){for(e=e.split(","),t=t||10,n=0;n<e.length;n+=2)r=String.fromCharCode(parseInt(e[n],t)),oo[r]||(o="&"+e[n+1]+";",i[r]=o,i[o]=r);return i}};ro=Fo("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32);var zo=function(e,t){return e.replace(t?Oo:Po,function(e){return oo[e]||e})},Uo=function(e,t){return e.replace(t?Oo:Po,function(e){return 1<e.length?"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";":oo[e]||"&#"+e.charCodeAt(0)+";"})},qo=function(e,t,n){return n=n||ro,e.replace(t?Oo:Po,function(e){return oo[e]||n[e]||e})},Vo={encodeRaw:zo,encodeAllRaw:function(e){return(""+e).replace(Lo,function(e){return oo[e]||e})},encodeNumeric:Uo,encodeNamed:qo,getEncodeFunc:function(e,t){var n=Fo(t)||ro,r=Do(e.replace(/\+/g,","));return r.named&&r.numeric?function(e,t){return e.replace(t?Oo:Po,function(e){return oo[e]!==undefined?oo[e]:n[e]!==undefined?n[e]:1<e.length?"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";":"&#"+e.charCodeAt(0)+";"})}:r.named?t?function(e,t){return qo(e,t,n)}:qo:r.numeric?Uo:zo},decode:function(e){return e.replace(Io,function(e,t){return t?65535<(t="x"===t.charAt(0).toLowerCase()?parseInt(t.substr(1),16):parseInt(t,10))?(t-=65536,String.fromCharCode(55296+(t>>10),56320+(1023&t))):Mo[t]||String.fromCharCode(t):io[e]||ro[e]||(n=e,(r=qn.fromTag("div").dom()).innerHTML=n,r.textContent||r.innerText||n);var n,r})}},Ho={},jo={},$o=Lt.makeMap,Wo=Lt.each,Ko=Lt.extend,Xo=Lt.explode,Yo=Lt.inArray,Go=function(e,t){return(e=Lt.trim(e))?e.split(t||" "):[]},Jo=function(e){var u,t,n,r,o,i,s={},a=function(e,t,n){var r,o,i,a=function(e,t){var n,r,o={};for(n=0,r=e.length;n<r;n++)o[e[n]]=t||{};return o};for(t=t||"","string"==typeof(n=n||[])&&(n=Go(n)),r=(e=Go(e)).length;r--;)i={attributes:a(o=Go([u,t].join(" "))),attributesOrder:o,children:a(n,jo)},s[e[r]]=i},c=function(e,t){var n,r,o,i;for(n=(e=Go(e)).length,t=Go(t);n--;)for(r=s[e[n]],o=0,i=t.length;o<i;o++)r.attributes[t[o]]={},r.attributesOrder.push(t[o])};return Ho[e]?Ho[e]:(u="id accesskey class dir lang style tabindex title role",t="address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul",n="a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd label map noscript object q s samp script select small span strong sub sup textarea u var #text #comment","html4"!==e&&(u+=" contenteditable contextmenu draggable dropzone hidden spellcheck translate",t+=" article aside details dialog figure header footer hgroup section nav",n+=" audio canvas command datalist mark meter output picture progress time wbr video ruby bdi keygen"),"html5-strict"!==e&&(u+=" xml:lang",n=[n,i="acronym applet basefont big font strike tt"].join(" "),Wo(Go(i),function(e){a(e,"",n)}),t=[t,o="center dir isindex noframes"].join(" "),r=[t,n].join(" "),Wo(Go(o),function(e){a(e,"",r)})),r=r||[t,n].join(" "),a("html","manifest","head body"),a("head","","base command link meta noscript script style title"),a("title hr noscript br"),a("base","href target"),a("link","href rel media hreflang type sizes hreflang"),a("meta","name http-equiv content charset"),a("style","media type scoped"),a("script","src async defer type charset"),a("body","onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload onmessage onoffline ononline onpagehide onpageshow onpopstate onresize onscroll onstorage onunload",r),a("address dt dd div caption","",r),a("h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn","",n),a("blockquote","cite",r),a("ol","reversed start type","li"),a("ul","","li"),a("li","value",r),a("dl","","dt dd"),a("a","href target rel media hreflang type",n),a("q","cite",n),a("ins del","cite datetime",r),a("img","src sizes srcset alt usemap ismap width height"),a("iframe","src name width height",r),a("embed","src type width height"),a("object","data type typemustmatch name usemap form width height",[r,"param"].join(" ")),a("param","name value"),a("map","name",[r,"area"].join(" ")),a("area","alt coords shape href target rel media hreflang type"),a("table","border","caption colgroup thead tfoot tbody tr"+("html4"===e?" col":"")),a("colgroup","span","col"),a("col","span"),a("tbody thead tfoot","","tr"),a("tr","","td th"),a("td","colspan rowspan headers",r),a("th","colspan rowspan headers scope abbr",r),a("form","accept-charset action autocomplete enctype method name novalidate target",r),a("fieldset","disabled form name",[r,"legend"].join(" ")),a("label","form for",n),a("input","accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate formtarget height list max maxlength min multiple name pattern readonly required size src step type value width"),a("button","disabled form formaction formenctype formmethod formnovalidate formtarget name type value","html4"===e?r:n),a("select","disabled form multiple name required size","option optgroup"),a("optgroup","disabled label","option"),a("option","disabled label selected value"),a("textarea","cols dirname disabled form maxlength name readonly required rows wrap"),a("menu","type label",[r,"li"].join(" ")),a("noscript","",r),"html4"!==e&&(a("wbr"),a("ruby","",[n,"rt rp"].join(" ")),a("figcaption","",r),a("mark rt rp summary bdi","",n),a("canvas","width height",r),a("video","src crossorigin poster preload autoplay mediagroup loop muted controls width height buffered",[r,"track source"].join(" ")),a("audio","src crossorigin preload autoplay mediagroup loop muted controls buffered volume",[r,"track source"].join(" ")),a("picture","","img source"),a("source","src srcset type media sizes"),a("track","kind src srclang label default"),a("datalist","",[n,"option"].join(" ")),a("article section nav aside header footer","",r),a("hgroup","","h1 h2 h3 h4 h5 h6"),a("figure","",[r,"figcaption"].join(" ")),a("time","datetime",n),a("dialog","open",r),a("command","type label icon disabled checked radiogroup command"),a("output","for form name",n),a("progress","value max",n),a("meter","value min max low high optimum",n),a("details","open",[r,"summary"].join(" ")),a("keygen","autofocus challenge disabled form keytype name")),"html5-strict"!==e&&(c("script","language xml:space"),c("style","xml:space"),c("object","declare classid code codebase codetype archive standby align border hspace vspace"),c("embed","align name hspace vspace"),c("param","valuetype type"),c("a","charset name rev shape coords"),c("br","clear"),c("applet","codebase archive code object alt name width height align hspace vspace"),c("img","name longdesc align border hspace vspace"),c("iframe","longdesc frameborder marginwidth marginheight scrolling align"),c("font basefont","size color face"),c("input","usemap align"),c("select","onchange"),c("textarea"),c("h1 h2 h3 h4 h5 h6 div p legend caption","align"),c("ul","type compact"),c("li","type"),c("ol dl menu dir","compact"),c("pre","width xml:space"),c("hr","align noshade size width"),c("isindex","prompt"),c("table","summary width frame rules cellspacing cellpadding align bgcolor"),c("col","width align char charoff valign"),c("colgroup","width align char charoff valign"),c("thead","align char charoff valign"),c("tr","align char charoff valign bgcolor"),c("th","axis align char charoff valign nowrap bgcolor width height"),c("form","accept"),c("td","abbr axis scope align char charoff valign nowrap bgcolor width height"),c("tfoot","align char charoff valign"),c("tbody","align char charoff valign"),c("area","nohref"),c("body","background bgcolor text link vlink alink")),"html4"!==e&&(c("input button select textarea","autofocus"),c("input textarea","placeholder"),c("a","download"),c("link script img","crossorigin"),c("iframe","sandbox seamless allowfullscreen")),Wo(Go("a form meter progress dfn"),function(e){s[e]&&delete s[e].children[e]}),delete s.caption.children.table,delete s.script,Ho[e]=s)},Qo=function(e,n){var r;return e&&(r={},"string"==typeof e&&(e={"*":e}),Wo(e,function(e,t){r[t]=r[t.toUpperCase()]="map"===n?$o(e,/[, ]/):Xo(e,/[, ]/)})),r};function Zo(i){var e,t,n,r,o,a,u,s,c,l,f,d,m,N={},p={},E=[],g={},h={},v=function(e,t,n){var r=i[e];return r?r=$o(r,/[, ]/,$o(r.toUpperCase(),/[, ]/)):(r=Ho[e])||(r=$o(t," ",$o(t.toUpperCase()," ")),r=Ko(r,n),Ho[e]=r),r};n=Jo((i=i||{}).schema),!1===i.verify_html&&(i.valid_elements="*[*]"),e=Qo(i.valid_styles),t=Qo(i.invalid_styles,"map"),s=Qo(i.valid_classes,"map"),r=v("whitespace_elements","pre script noscript style textarea video audio iframe object code"),o=v("self_closing_elements","colgroup dd dt li option p td tfoot th thead tr"),a=v("short_ended_elements","area base basefont br col frame hr img input isindex link meta param embed source wbr track"),u=v("boolean_attributes","checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls"),l=v("non_empty_elements","td th iframe video audio object script pre code",a),f=v("move_caret_before_on_enter_elements","table",l),d=v("text_block_elements","h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside nav figure"),c=v("block_elements","hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex option datalist select optgroup figcaption",d),m=v("text_inline_elements","span strong b em i font strike u var cite dfn code mark q sup sub samp"),Wo((i.special||"script noscript noframes noembed title style textarea xmp").split(" "),function(e){h[e]=new RegExp("</"+e+"[^>]*>","gi")});var S=function(e){return new RegExp("^"+e.replace(/([?+*])/g,".$1")+"$")},y=function(e){var t,n,r,o,i,a,u,s,c,l,f,d,m,p,g,h,v,y,b,C=/^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/,x=/^([!\-])?(\w+[\\:]:\w+|[^=:<]+)?(?:([=:<])(.*))?$/,w=/[*?+]/;if(e)for(e=Go(e,","),N["@"]&&(h=N["@"].attributes,v=N["@"].attributesOrder),t=0,n=e.length;t<n;t++)if(i=C.exec(e[t])){if(p=i[1],c=i[2],g=i[3],s=i[5],a={attributes:d={},attributesOrder:m=[]},"#"===p&&(a.paddEmpty=!0),"-"===p&&(a.removeEmpty=!0),"!"===i[4]&&(a.removeEmptyAttrs=!0),h){for(y in h)d[y]=h[y];m.push.apply(m,v)}if(s)for(r=0,o=(s=Go(s,"|")).length;r<o;r++)if(i=x.exec(s[r])){if(u={},f=i[1],l=i[2].replace(/[\\:]:/g,":"),p=i[3],b=i[4],"!"===f&&(a.attributesRequired=a.attributesRequired||[],a.attributesRequired.push(l),u.required=!0),"-"===f){delete d[l],m.splice(Yo(m,l),1);continue}p&&("="===p&&(a.attributesDefault=a.attributesDefault||[],a.attributesDefault.push({name:l,value:b}),u.defaultValue=b),":"===p&&(a.attributesForced=a.attributesForced||[],a.attributesForced.push({name:l,value:b}),u.forcedValue=b),"<"===p&&(u.validValues=$o(b,"?"))),w.test(l)?(a.attributePatterns=a.attributePatterns||[],u.pattern=S(l),a.attributePatterns.push(u)):(d[l]||m.push(l),d[l]=u)}h||"@"!==c||(h=d,v=m),g&&(a.outputName=c,N[g]=a),w.test(c)?(a.pattern=S(c),E.push(a)):N[c]=a}},b=function(e){N={},E=[],y(e),Wo(n,function(e,t){p[t]=e.children})},C=function(e){var a=/^(~)?(.+)$/;e&&(Ho.text_block_elements=Ho.block_elements=null,Wo(Go(e,","),function(e){var t=a.exec(e),n="~"===t[1],r=n?"span":"div",o=t[2];if(p[o]=p[r],g[o]=r,n||(c[o.toUpperCase()]={},c[o]={}),!N[o]){var i=N[r];delete(i=Ko({},i)).removeEmptyAttrs,delete i.removeEmpty,N[o]=i}Wo(p,function(e,t){e[r]&&(p[t]=e=Ko({},p[t]),e[o]=e[r])})}))},x=function(e){var o=/^([+\-]?)(\w+)\[([^\]]+)\]$/;Ho[i.schema]=null,e&&Wo(Go(e,","),function(e){var t,n,r=o.exec(e);r&&(n=r[1],t=n?p[r[2]]:p[r[2]]={"#comment":{}},t=p[r[2]],Wo(Go(r[3],"|"),function(e){"-"===n?delete t[e]:t[e]={}}))})},w=function(e){var t,n=N[e];if(n)return n;for(t=E.length;t--;)if((n=E[t]).pattern.test(e))return n};return i.valid_elements?b(i.valid_elements):(Wo(n,function(e,t){N[t]={attributes:e.attributes,attributesOrder:e.attributesOrder},p[t]=e.children}),"html5"!==i.schema&&Wo(Go("strong/b em/i"),function(e){e=Go(e,"/"),N[e[1]].outputName=e[0]}),Wo(Go("ol ul sub sup blockquote span font a table tbody tr strong em b i"),function(e){N[e]&&(N[e].removeEmpty=!0)}),Wo(Go("p h1 h2 h3 h4 h5 h6 th td pre div address caption li"),function(e){N[e].paddEmpty=!0}),Wo(Go("span"),function(e){N[e].removeEmptyAttrs=!0})),C(i.custom_elements),x(i.valid_children),y(i.extended_valid_elements),x("+ol[ul|ol],+ul[ul|ol]"),Wo({dd:"dl",dt:"dl",li:"ul ol",td:"tr",th:"tr",tr:"tbody thead tfoot",tbody:"table",thead:"table",tfoot:"table",legend:"fieldset",area:"map",param:"video audio object"},function(e,t){N[t]&&(N[t].parentsRequired=Go(e))}),i.invalid_elements&&Wo(Xo(i.invalid_elements),function(e){N[e]&&delete N[e]}),w("span")||y("span[!data-mce-type|*]"),{children:p,elements:N,getValidStyles:function(){return e},getValidClasses:function(){return s},getBlockElements:function(){return c},getInvalidStyles:function(){return t},getShortEndedElements:function(){return a},getTextBlockElements:function(){return d},getTextInlineElements:function(){return m},getBoolAttrs:function(){return u},getElementRule:w,getSelfClosingElements:function(){return o},getNonEmptyElements:function(){return l},getMoveCaretBeforeOnEnterElements:function(){return f},getWhiteSpaceElements:function(){return r},getSpecialElements:function(){return h},isValidChild:function(e,t){var n=p[e.toLowerCase()];return!(!n||!n[t.toLowerCase()])},isValid:function(e,t){var n,r,o=w(e);if(o){if(!t)return!0;if(o.attributes[t])return!0;if(n=o.attributePatterns)for(r=n.length;r--;)if(n[r].pattern.test(e))return!0}return!1},getCustomElements:function(){return g},addValidElements:y,setValidElements:b,addCustomElements:C,addValidChildren:x}}var ei=function(e,t,n,r){var o=function(e){return 1<(e=parseInt(e,10).toString(16)).length?e:"0"+e};return"#"+o(t)+o(n)+o(r)};function ti(b,e){var C,t,c,l,x=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,w=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,N=/\s*([^:]+):\s*([^;]+);?/g,E=/\s+$/,S={},k="\ufeff";for(b=b||{},e&&(c=e.getValidStyles(),l=e.getInvalidStyles()),t=("\\\" \\' \\; \\: ; : "+k).split(" "),C=0;C<t.length;C++)S[t[C]]=k+C,S[k+C]=t[C];return{toHex:function(e){return e.replace(x,ei)},parse:function(e){var t,n,r,o,i,a,u,s,c={},l=b.url_converter,f=b.url_converter_scope||this,d=function(e,t,n){var r,o,i,a;if((r=c[e+"-top"+t])&&(o=c[e+"-right"+t])&&(i=c[e+"-bottom"+t])&&(a=c[e+"-left"+t])){var u=[r,o,i,a];for(C=u.length-1;C--&&u[C]===u[C+1];);-1<C&&n||(c[e+t]=-1===C?u[0]:u.join(" "),delete c[e+"-top"+t],delete c[e+"-right"+t],delete c[e+"-bottom"+t],delete c[e+"-left"+t])}},m=function(e){var t,n=c[e];if(n){for(t=(n=n.split(" ")).length;t--;)if(n[t]!==n[0])return!1;return c[e]=n[0],!0}},p=function(e){return o=!0,S[e]},g=function(e,t){return o&&(e=e.replace(/\uFEFF[0-9]/g,function(e){return S[e]})),t||(e=e.replace(/\\([\'\";:])/g,"$1")),e},h=function(e){return String.fromCharCode(parseInt(e.slice(1),16))},v=function(e){return e.replace(/\\[0-9a-f]+/gi,h)},y=function(e,t,n,r,o,i){if(o=o||i)return"'"+(o=g(o)).replace(/\'/g,"\\'")+"'";if(t=g(t||n||r),!b.allow_script_urls){var a=t.replace(/[\s\r\n]+/g,"");if(/(java|vb)script:/i.test(a))return"";if(!b.allow_svg_data_urls&&/^data:image\/svg/i.test(a))return""}return l&&(t=l.call(f,t,"style")),"url('"+t.replace(/\'/g,"\\'")+"')"};if(e){for(e=(e=e.replace(/[\u0000-\u001F]/g,"")).replace(/\\[\"\';:\uFEFF]/g,p).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(e){return e.replace(/[;:]/g,p)});t=N.exec(e);)if(N.lastIndex=t.index+t[0].length,n=t[1].replace(E,"").toLowerCase(),r=t[2].replace(E,""),n&&r){if(n=v(n),r=v(r),-1!==n.indexOf(k)||-1!==n.indexOf('"'))continue;if(!b.allow_script_urls&&("behavior"===n||/expression\s*\(|\/\*|\*\//.test(r)))continue;"font-weight"===n&&"700"===r?r="bold":"color"!==n&&"background-color"!==n||(r=r.toLowerCase()),r=(r=r.replace(x,ei)).replace(w,y),c[n]=o?g(r,!0):r}d("border","",!0),d("border","-width"),d("border","-color"),d("border","-style"),d("padding",""),d("margin",""),i="border",u="border-style",s="border-color",m(a="border-width")&&m(u)&&m(s)&&(c[i]=c[a]+" "+c[u]+" "+c[s],delete c[a],delete c[u],delete c[s]),"medium none"===c.border&&delete c.border,"none"===c["border-image"]&&delete c["border-image"]}return c},serialize:function(i,e){var t,n,r,o,a,u="",s=function(e){var t,n,r,o;if(t=c[e])for(n=0,r=t.length;n<r;n++)e=t[n],(o=i[e])&&(u+=(0<u.length?" ":"")+e+": "+o+";")};if(e&&c)s("*"),s(e);else for(t in i)!(n=i[t])||l&&(r=t,o=e,a=void 0,(a=l["*"])&&a[r]||(a=l[o])&&a[r])||(u+=(0<u.length?" ":"")+t+": "+n+";");return u}}}var ni,ri=Lt.each,oi=Lt.grep,ii=ge.ie,ai=/^([a-z0-9],?)+$/i,ui=/^[ \t\r\n]*$/,si=function(n,r,o){var e={},i=r.keep_values,t={set:function(e,t,n){r.url_converter&&(t=r.url_converter.call(r.url_converter_scope||o(),t,n,e[0])),e.attr("data-mce-"+n,t).attr(n,t)},get:function(e,t){return e.attr("data-mce-"+t)||e.attr(t)}};return e={style:{set:function(e,t){null===t||"object"!=typeof t?(i&&e.attr("data-mce-style",t),e.attr("style",t)):e.css(t)},get:function(e){var t=e.attr("data-mce-style")||e.attr("style");return t=n.serialize(n.parse(t),e[0].nodeName)}}},i&&(e.href=e.src=t),e},ci=function(e,t){var n=t.attr("style"),r=e.serialize(e.parse(n),t[0].nodeName);r||(r=null),t.attr("data-mce-style",r)},li=function(e,t){var n,r,o=0;if(e)for(n=e.nodeType,e=e.previousSibling;e;e=e.previousSibling)r=e.nodeType,(!t||3!==r||r!==n&&e.nodeValue.length)&&(o++,n=r);return o};function fi(a,u){var s,c=this;void 0===u&&(u={});var r={},i=window,o={},t=0,e=function(m,e){var p,g=0,h={};p=(e=e||{}).maxLoadTime||5e3;var v=function(e){m.getElementsByTagName("head")[0].appendChild(e)},n=function(e,t,n){var o,r,i,a,u=function(){for(var e=a.passed,t=e.length;t--;)e[t]();a.status=2,a.passed=[],a.failed=[]},s=function(){for(var e=a.failed,t=e.length;t--;)e[t]();a.status=3,a.passed=[],a.failed=[]},c=function(e,t){e()||((new Date).getTime()-i<p?Ce.setTimeout(t):s())},l=function(){c(function(){for(var e,t,n=m.styleSheets,r=n.length;r--;)if((t=(e=n[r]).ownerNode?e.ownerNode:e.owningElement)&&t.id===o.id)return u(),!0},l)},f=function(){c(function(){try{var e=r.sheet.cssRules;return u(),!!e}catch(t){}},f)};if(e=Lt._addCacheSuffix(e),h[e]?a=h[e]:(a={passed:[],failed:[]},h[e]=a),t&&a.passed.push(t),n&&a.failed.push(n),1!==a.status)if(2!==a.status)if(3!==a.status){if(a.status=1,(o=m.createElement("link")).rel="stylesheet",o.type="text/css",o.id="u"+g++,o.async=!1,o.defer=!1,i=(new Date).getTime(),"onload"in o&&!((d=navigator.userAgent.match(/WebKit\/(\d*)/))&&parseInt(d[1],10)<536))o.onload=l,o.onerror=s;else{if(0<navigator.userAgent.indexOf("Firefox"))return(r=m.createElement("style")).textContent='@import "'+e+'"',f(),void v(r);l()}var d;v(o),o.href=e}else s();else u()},t=function(t){return Yr.nu(function(e){n(t,V.compose(e,V.constant(to.value(t))),V.compose(e,V.constant(to.error(t))))})},o=function(e){return e.fold(V.identity,V.identity)};return{load:n,loadAll:function(e,n,r){Qr.par(H.map(e,t)).get(function(e){var t=H.partition(e,function(e){return e.isValue()});0<t.fail.length?r(t.fail.map(o)):n(t.pass.map(o))})}}}(a),l=[],f=u.schema?u.schema:Zo({}),d=ti({url_converter:u.url_converter,url_converter_scope:u.url_converter_scope},u.schema),m=u.ownEvents?new Re(u.proxy):Re.Event,n=f.getBlockElements(),p=en.overrideDefaults(function(){return{context:a,element:q.getRoot()}}),g=function(e){if(e&&a&&"string"==typeof e){var t=a.getElementById(e);return t&&t.id!==e?a.getElementsByName(e)[1]:t}return e},h=function(e){return"string"==typeof e&&(e=g(e)),p(e)},v=function(e,t,n){var r,o,i=h(e);return i.length&&(o=(r=s[t])&&r.get?r.get(i,t):i.attr(t)),void 0===o&&(o=n||""),o},y=function(e){var t=g(e);return t?t.attributes:[]},b=function(e,t,n){var r,o;""===n&&(n=null);var i=h(e);r=i.attr(t),i.length&&((o=s[t])&&o.set?o.set(i,n,t):i.attr(t,n),r!==n&&u.onSetAttrib&&u.onSetAttrib({attrElm:i,attrName:t,attrValue:n}))},C=function(){return u.root_element||a.body},x=function(e,t){return jr.getPos(a.body,g(e),t)},w=function(e,t,n){var r=h(e);return n?r.css(t):("float"===(t=t.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}))&&(t=ge.ie&&ge.ie<12?"styleFloat":"cssFloat"),r[0]&&r[0].style?r[0].style[t]:undefined)},N=function(e){var t,n;return e=g(e),t=w(e,"width"),n=w(e,"height"),-1===t.indexOf("px")&&(t=0),-1===n.indexOf("px")&&(n=0),{w:parseInt(t,10)||e.offsetWidth||e.clientWidth,h:parseInt(n,10)||e.offsetHeight||e.clientHeight}},E=function(e,t){var n;if(!e)return!1;if(!Array.isArray(e)){if("*"===t)return 1===e.nodeType;if(ai.test(t)){var r=t.toLowerCase().split(/,/),o=e.nodeName.toLowerCase();for(n=r.length-1;0<=n;n--)if(r[n]===o)return!0;return!1}if(e.nodeType&&1!==e.nodeType)return!1}var i=Array.isArray(e)?e:[e];return 0<dt(t,i[0].ownerDocument||i[0],null,i).length},S=function(e,t,n,r){var o,i=[],a=g(e);for(r=r===undefined,n=n||("BODY"!==C().nodeName?C().parentNode:null),Lt.is(t,"string")&&(t="*"===(o=t)?function(e){return 1===e.nodeType}:function(e){return E(e,o)});a&&a!==n&&a.nodeType&&9!==a.nodeType;){if(!t||"function"==typeof t&&t(a)){if(!r)return[a];i.push(a)}a=a.parentNode}return r?i:null},k=function(e,t,n){var r=t;if(e)for("string"==typeof t&&(r=function(e){return E(e,t)}),e=e[n];e;e=e[n])if("function"==typeof r&&r(e))return e;return null},T=function(e,n,r){var o,t="string"==typeof e?g(e):e;if(!t)return!1;if(Lt.isArray(t)&&(t.length||0===t.length))return o=[],ri(t,function(e,t){e&&("string"==typeof e&&(e=g(e)),o.push(n.call(r,e,t)))}),o;var i=r||c;return n.call(i,t)},A=function(e,t){h(e).each(function(e,n){ri(t,function(e,t){b(n,t,e)})})},R=function(e,r){var t=h(e);ii?t.each(function(e,t){if(!1!==t.canHaveHTML){for(;t.firstChild;)t.removeChild(t.firstChild);try{t.innerHTML="<br>"+r,t.removeChild(t.firstChild)}catch(n){en("<div></div>").html("<br>"+r).contents().slice(1).appendTo(t)}return r}}):t.html(r)},B=function(e,n,r,o,i){return T(e,function(e){var t="string"==typeof n?a.createElement(n):n;return A(t,r),o&&("string"!=typeof o&&o.nodeType?t.appendChild(o):"string"==typeof o&&R(t,o)),i?t:e.appendChild(t)})},_=function(e,t,n){return B(a.createElement(e),e,t,n,!0)},D=Vo.decode,O=Vo.encodeAllRaw,P=function(e,t){var n=h(e);return t?n.each(function(){for(var e;e=this.firstChild;)3===e.nodeType&&0===e.data.length?this.removeChild(e):this.parentNode.insertBefore(e,this)}).remove():n.remove(),1<n.length?n.toArray():n[0]},L=function(e,t,n){h(e).toggleClass(t,n).each(function(){""===this.className&&en(this).attr("class",null)})},I=function(t,e,n){return T(e,function(e){return Lt.is(e,"array")&&(t=t.cloneNode(!0)),n&&ri(oi(e.childNodes),function(e){t.appendChild(e)}),e.parentNode.replaceChild(t,e)})},M=function(){return a.createRange()},F=function(e,t,n,r){if(Lt.isArray(e)){for(var o=e.length;o--;)e[o]=F(e[o],t,n,r);return e}return!u.collect||e!==a&&e!==i||l.push([e,t,n,r]),m.bind(e,t,n,r||q)},z=function(e,t,n){var r;if(Lt.isArray(e)){for(r=e.length;r--;)e[r]=z(e[r],t,n);return e}if(l&&(e===a||e===i))for(r=l.length;r--;){var o=l[r];e!==o[0]||t&&t!==o[1]||n&&n!==o[2]||m.unbind(o[0],o[1],o[2])}return m.unbind(e,t,n)},U=function(e){if(e&&Ao.isElement(e)){var t=e.getAttribute("data-mce-contenteditable");return t&&"inherit"!==t?t:"inherit"!==e.contentEditable?e.contentEditable:null}return null},q={doc:a,settings:u,win:i,files:o,stdMode:!0,boxModel:!0,styleSheetLoader:e,boundEvents:l,styles:d,schema:f,events:m,isBlock:function(e){if("string"==typeof e)return!!n[e];if(e){var t=e.nodeType;if(t)return!(1!==t||!n[e.nodeName])}return!1},$:p,$$:h,root:null,clone:function(t,e){if(!ii||1!==t.nodeType||e)return t.cloneNode(e);if(!e){var n=a.createElement(t.nodeName);return ri(y(t),function(e){b(n,e.nodeName,v(t,e.nodeName))}),n}return null},getRoot:C,getViewPort:function(e){var t=e||i,n=t.document,r=n.documentElement;return{x:t.pageXOffset||r.scrollLeft,y:t.pageYOffset||r.scrollTop,w:t.innerWidth||r.clientWidth,h:t.innerHeight||r.clientHeight}},getRect:function(e){var t,n;return e=g(e),t=x(e),n=N(e),{x:t.x,y:t.y,w:n.w,h:n.h}},getSize:N,getParent:function(e,t,n){var r=S(e,t,n,!1);return r&&0<r.length?r[0]:null},getParents:S,get:g,getNext:function(e,t){return k(e,t,"nextSibling")},getPrev:function(e,t){return k(e,t,"previousSibling")},select:function(e,t){return dt(e,g(t)||u.root_element||a,[])},is:E,add:B,create:_,createHTML:function(e,t,n){var r,o="";for(r in o+="<"+e,t)t.hasOwnProperty(r)&&null!==t[r]&&"undefined"!=typeof t[r]&&(o+=" "+r+'="'+O(t[r])+'"');return void 0!==n?o+">"+n+"</"+e+">":o+" />"},createFragment:function(e){var t,n=a.createElement("div"),r=a.createDocumentFragment();for(e&&(n.innerHTML=e);t=n.firstChild;)r.appendChild(t);return r},remove:P,setStyle:function(e,t,n){var r=h(e).css(t,n);u.update_styles&&ci(d,r)},getStyle:w,setStyles:function(e,t){var n=h(e).css(t);u.update_styles&&ci(d,n)},removeAllAttribs:function(e){return T(e,function(e){var t,n=e.attributes;for(t=n.length-1;0<=t;t--)e.removeAttributeNode(n.item(t))})},setAttrib:b,setAttribs:A,getAttrib:v,getPos:x,parseStyle:function(e){return d.parse(e)},serializeStyle:function(e,t){return d.serialize(e,t)},addStyle:function(e){var t,n;if(q!==fi.DOM&&a===document){if(r[e])return;r[e]=!0}(n=a.getElementById("mceDefaultStyles"))||((n=a.createElement("style")).id="mceDefaultStyles",n.type="text/css",(t=a.getElementsByTagName("head")[0]).firstChild?t.insertBefore(n,t.firstChild):t.appendChild(n)),n.styleSheet?n.styleSheet.cssText+=e:n.appendChild(a.createTextNode(e))},loadCSS:function(e){var n;q===fi.DOM||a!==document?(e||(e=""),n=a.getElementsByTagName("head")[0],ri(e.split(","),function(e){var t;e=Lt._addCacheSuffix(e),o[e]||(o[e]=!0,t=_("link",{rel:"stylesheet",href:e}),n.appendChild(t))})):fi.DOM.loadCSS(e)},addClass:function(e,t){h(e).addClass(t)},removeClass:function(e,t){L(e,t,!1)},hasClass:function(e,t){return h(e).hasClass(t)},toggleClass:L,show:function(e){h(e).show()},hide:function(e){h(e).hide()},isHidden:function(e){return"none"===h(e).css("display")},uniqueId:function(e){return(e||"mce_")+t++},setHTML:R,getOuterHTML:function(e){var t="string"==typeof e?g(e):e;return Ao.isElement(t)?t.outerHTML:en("<div></div>").append(en(t).clone()).html()},setOuterHTML:function(e,t){h(e).each(function(){try{if("outerHTML"in this)return void(this.outerHTML=t)}catch(e){}P(en(this).html(t),!0)})},decode:D,encode:O,insertAfter:function(e,t){var r=g(t);return T(e,function(e){var t,n;return t=r.parentNode,(n=r.nextSibling)?t.insertBefore(e,n):t.appendChild(e),e})},replace:I,rename:function(t,e){var n;return t.nodeName!==e.toUpperCase()&&(n=_(e),ri(y(t),function(e){b(n,e.nodeName,v(t,e.nodeName))}),I(n,t,!0)),n||t},findCommonAncestor:function(e,t){for(var n,r=e;r;){for(n=t;n&&r!==n;)n=n.parentNode;if(r===n)break;r=r.parentNode}return!r&&e.ownerDocument?e.ownerDocument.documentElement:r},toHex:function(e){return d.toHex(Lt.trim(e))},run:T,getAttribs:y,isEmpty:function(e,t){var n,r,o,i,a,u,s=0;if(e=e.firstChild){a=new no(e,e.parentNode),t=t||(f?f.getNonEmptyElements():null),i=f?f.getWhiteSpaceElements():{};do{if(o=e.nodeType,Ao.isElement(e)){var c=e.getAttribute("data-mce-bogus");if(c){e=a.next("all"===c);continue}if(u=e.nodeName.toLowerCase(),t&&t[u]){if("br"===u){s++,e=a.next();continue}return!1}for(n=(r=y(e)).length;n--;)if("name"===(u=r[n].nodeName)||"data-mce-bookmark"===u)return!1}if(8===o)return!1;if(3===o&&!ui.test(e.nodeValue))return!1;if(3===o&&e.parentNode&&i[e.parentNode.nodeName]&&ui.test(e.nodeValue))return!1;e=a.next()}while(e)}return s<=1},createRng:M,nodeIndex:li,split:function(e,t,n){var r,o,i,a=M();if(e&&t)return a.setStart(e.parentNode,li(e)),a.setEnd(t.parentNode,li(t)),r=a.extractContents(),(a=M()).setStart(t.parentNode,li(t)+1),a.setEnd(e.parentNode,li(e)+1),o=a.extractContents(),(i=e.parentNode).insertBefore(_o.trimNode(q,r),e),n?i.insertBefore(n,e):i.insertBefore(t,e),i.insertBefore(_o.trimNode(q,o),e),P(e),n||t},bind:F,unbind:z,fire:function(e,t,n){return m.fire(e,t,n)},getContentEditable:U,getContentEditableParent:function(e){for(var t=C(),n=null;e&&e!==t&&null===(n=U(e));e=e.parentNode);return n},destroy:function(){if(l)for(var e=l.length;e--;){var t=l[e];m.unbind(t[0],t[1],t[2])}dt.setDocument&&dt.setDocument()},isChildOf:function(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1},dumpRng:function(e){return"startContainer: "+e.startContainer.nodeName+", startOffset: "+e.startOffset+", endContainer: "+e.endContainer.nodeName+", endOffset: "+e.endOffset}};return s=si(d,u,function(){return q}),q}(ni=fi||(fi={})).DOM=ni(document),ni.nodeIndex=li;var di=fi,mi=di.DOM,pi=Lt.each,gi=Lt.grep,hi=function(e){return"function"==typeof e},vi=function(){var f={},o=[],i={},a=[],d=0;this.isDone=function(e){return 2===f[e]},this.markDone=function(e){f[e]=2},this.add=this.load=function(e,t,n,r){f[e]===undefined&&(o.push(e),f[e]=0),t&&(i[e]||(i[e]=[]),i[e].push({success:t,failure:r,scope:n||this}))},this.remove=function(e){delete f[e],delete i[e]},this.loadQueue=function(e,t,n){this.loadScripts(o,e,t,n)},this.loadScripts=function(n,e,t,r){var s,c=[],l=function(t,e){pi(i[e],function(e){hi(e[t])&&e[t].call(e.scope)}),i[e]=undefined};a.push({success:e,failure:r,scope:t||this}),(s=function(){var e=gi(n);if(n.length=0,pi(e,function(e){var t,n,r,o,i,a,u;2!==f[e]?3!==f[e]?1!==f[e]&&(f[e]=1,d++,t=e,n=function(){f[e]=2,d--,l("success",e),s()},r=function(){f[e]=3,d--,c.push(e),l("failure",e),s()},u=function(){a.remove(i),o&&(o.onreadystatechange=o.onload=o=null),n()},i=(a=mi).uniqueId(),(o=document.createElement("script")).id=i,o.type="text/javascript",o.src=Lt._addCacheSuffix(t),"onreadystatechange"in o?o.onreadystatechange=function(){/loaded|complete/.test(o.readyState)&&u()}:o.onload=u,o.onerror=function(){hi(r)?r():"undefined"!=typeof console&&console.log&&console.log("Failed to load script: "+t)},(document.getElementsByTagName("head")[0]||document.body).appendChild(o)):l("failure",e):l("success",e)}),!d){var t=a.slice(0);a.length=0,pi(t,function(e){0===c.length?hi(e.success)&&e.success.call(e.scope):hi(e.failure)&&e.failure.call(e.scope,c)})}})()}};vi.ScriptLoader=new vi;var yi,bi=Lt.each;function Ci(){var r=this,o=[],a={},u={},i=[],s=function(e){var t;return u[e]&&(t=u[e].dependencies),t||[]},c=function(e,t){return"object"==typeof t?t:"string"==typeof e?{prefix:"",resource:t,suffix:""}:{prefix:e.prefix,resource:t,suffix:e.suffix}},l=function(n,e,t){var r=s(name);bi(r,function(e){var t=c(n,e);f(t.resource,t,undefined,undefined)}),e&&(t?e.call(t):e.call(vi))},f=function(e,t,n,r,o){if(!a[e]){var i="string"==typeof t?t:t.prefix+t.resource+t.suffix;0!==i.indexOf("/")&&-1===i.indexOf("://")&&(i=Ci.baseURL+"/"+i),a[e]=i.substring(0,i.lastIndexOf("/")),u[e]?l(t,n,r):vi.ScriptLoader.add(i,function(){return l(t,n,r)},r,o)}};return{items:o,urls:a,lookup:u,_listeners:i,get:function(e){return u[e]?u[e].instance:undefined},dependencies:s,requireLangPack:function(e,t){var n=Ci.language;if(n&&!1!==Ci.languageLoad){if(t)if(-1!==(t=","+t+",").indexOf(","+n.substr(0,2)+","))n=n.substr(0,2);else if(-1===t.indexOf(","+n+","))return;vi.ScriptLoader.add(a[e]+"/langs/"+n+".js")}},add:function(t,e,n){o.push(e),u[t]={instance:e,dependencies:n};var r=H.partition(i,function(e){return e.name===t});return i=r.fail,bi(r.pass,function(e){e.callback()}),e},remove:function(e){delete a[e],delete u[e]},createUrl:c,addComponents:function(e,t){var n=r.urls[e];bi(t,function(e){vi.ScriptLoader.add(n+"/"+e)})},load:f,waitFor:function(e,t){u.hasOwnProperty(e)?t():i.push({name:e,callback:t})}}}(yi=Ci||(Ci={})).PluginManager=yi(),yi.ThemeManager=yi();var xi,wi="\ufeff",Ni=function(e){return e===wi},Ei=wi,Si=function(e){return e.replace(new RegExp(wi,"g"),"")},ki=Ao.isElement,Ti=Ao.isText,Ai=function(e){return Ti(e)&&(e=e.parentNode),ki(e)&&e.hasAttribute("data-mce-caret")},Ri=function(e){return Ti(e)&&Ni(e.data)},Bi=function(e){return Ai(e)||Ri(e)},_i=function(e){return e.firstChild!==e.lastChild||!Ao.isBr(e.firstChild)},Di=function(e){var t=e.container();return e&&Ao.isText(t)&&t.data.charAt(e.offset())===Ei},Oi=function(e){var t=e.container();return e&&Ao.isText(t)&&t.data.charAt(e.offset()-1)===Ei},Pi=function(e,t,n){var r,o,i;return(r=t.ownerDocument.createElement(e)).setAttribute("data-mce-caret",n?"before":"after"),r.setAttribute("data-mce-bogus","all"),r.appendChild(((i=document.createElement("br")).setAttribute("data-mce-bogus","1"),i)),o=t.parentNode,n?o.insertBefore(r,t):t.nextSibling?o.insertBefore(r,t.nextSibling):o.appendChild(r),r},Li=function(e){return Ti(e)&&e.data[0]===Ei},Ii=function(e){return Ti(e)&&e.data[e.data.length-1]===Ei},Mi=function(e){return e&&e.hasAttribute("data-mce-caret")?(t=e.getElementsByTagName("br"),n=t[t.length-1],Ao.isBogus(n)&&n.parentNode.removeChild(n),e.removeAttribute("data-mce-caret"),e.removeAttribute("data-mce-bogus"),e.removeAttribute("style"),e.removeAttribute("_moz_abspos"),e):null;var t,n},Fi=Ao.isContentEditableTrue,zi=Ao.isContentEditableFalse,Ui=Ao.isBr,qi=Ao.isText,Vi=Ao.matchNodeNames("script style textarea"),Hi=Ao.matchNodeNames("img input textarea hr iframe video audio object"),ji=Ao.matchNodeNames("table"),$i=Bi,Wi=function(e){return!$i(e)&&(qi(e)?!Vi(e.parentNode):Hi(e)||Ui(e)||ji(e)||Ki(e))},Ki=function(e){return!1===(t=e,Ao.isElement(t)&&"true"===t.getAttribute("unselectable"))&&zi(e);var t},Xi=function(e,t){return Wi(e)&&function(e,t){for(e=e.parentNode;e&&e!==t;e=e.parentNode){if(Ki(e))return!1;if(Fi(e))return!0}return!0}(e,t)},Yi=Math.round,Gi=function(e){return e?{left:Yi(e.left),top:Yi(e.top),bottom:Yi(e.bottom),right:Yi(e.right),width:Yi(e.width),height:Yi(e.height)}:{left:0,top:0,bottom:0,right:0,width:0,height:0}},Ji=function(e,t){return e=Gi(e),t||(e.left=e.left+e.width),e.right=e.left,e.width=0,e},Qi=function(e,t,n){return 0<=e&&e<=Math.min(t.height,n.height)/2},Zi=function(e,t){return e.bottom-e.height/2<t.top||!(e.top>t.bottom)&&Qi(t.top-e.bottom,e,t)},ea=function(e,t){return e.top>t.bottom||!(e.bottom<t.top)&&Qi(t.bottom-e.top,e,t)},ta=function(e){var t=e.startContainer,n=e.startOffset;return t.hasChildNodes()&&e.endOffset===n+1?t.childNodes[n]:null},na=function(e,t){return 1===e.nodeType&&e.hasChildNodes()&&(t>=e.childNodes.length&&(t=e.childNodes.length-1),e=e.childNodes[t]),e},ra=new RegExp("[\u0300-\u036f\u0483-\u0487\u0488-\u0489\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u0610-\u061a\u064b-\u065f\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e3-\u0902\u093a\u093c\u0941-\u0948\u094d\u0951-\u0957\u0962-\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2-\u09e3\u0a01-\u0a02\u0a3c\u0a41-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a70-\u0a71\u0a75\u0a81-\u0a82\u0abc\u0ac1-\u0ac5\u0ac7-\u0ac8\u0acd\u0ae2-\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62-\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c00\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c62-\u0c63\u0c81\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc-\u0ccd\u0cd5-\u0cd6\u0ce2-\u0ce3\u0d01\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62-\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb-\u0ebc\u0ec8-\u0ecd\u0f18-\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86-\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039-\u103a\u103d-\u103e\u1058-\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085-\u1086\u108d\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752-\u1753\u1772-\u1773\u17b4-\u17b5\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927-\u1928\u1932\u1939-\u193b\u1a17-\u1a18\u1a1b\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1ab0-\u1abd\u1abe\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80-\u1b81\u1ba2-\u1ba5\u1ba8-\u1ba9\u1bab-\u1bad\u1be6\u1be8-\u1be9\u1bed\u1bef-\u1bf1\u1c2c-\u1c33\u1c36-\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1cf4\u1cf8-\u1cf9\u1dc0-\u1df5\u1dfc-\u1dff\u200c-\u200d\u20d0-\u20dc\u20dd-\u20e0\u20e1\u20e2-\u20e4\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302d\u302e-\u302f\u3099-\u309a\ua66f\ua670-\ua672\ua674-\ua67d\ua69e-\ua69f\ua6f0-\ua6f1\ua802\ua806\ua80b\ua825-\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\ua9e5\uaa29-\uaa2e\uaa31-\uaa32\uaa35-\uaa36\uaa43\uaa4c\uaa7c\uaab0\uaab2-\uaab4\uaab7-\uaab8\uaabe-\uaabf\uaac1\uaaec-\uaaed\uaaf6\uabe5\uabe8\uabed\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\uff9e-\uff9f]"),oa=function(e){return"string"==typeof e&&768<=e.charCodeAt(0)&&ra.test(e)},ia=[].slice,aa=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r=ia.call(arguments);return r.length-1>=e.length?e.apply(this,r.slice(1)):function(){var e=r.concat([].slice.call(arguments));return aa.apply(this,e)}},ua={constant:function(e){return function(){return e}},negate:function(t){return function(e){return!t(e)}},and:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=ia.call(arguments);return function(e){for(var t=0;t<n.length;t++)if(!n[t](e))return!1;return!0}},or:function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var n=ia.call(arguments);return function(e){for(var t=0;t<n.length;t++)if(n[t](e))return!0;return!1}},curry:aa,compose:function(t,n){return function(e){return t(n(e))}},noop:function(){}},sa=function(e,t){for(var n=[],r=0;r<e.length;r++){var o=e[r];if(!o.isSome())return A.none();n.push(o.getOrDie())}return A.some(t.apply(null,n))},ca=Ao.isElement,la=Wi,fa=Ao.matchStyleValues("display","block table"),da=Ao.matchStyleValues("float","left right"),ma=ua.and(ca,la,ua.negate(da)),pa=ua.negate(Ao.matchStyleValues("white-space","pre pre-line pre-wrap")),ga=Ao.isText,ha=Ao.isBr,va=di.nodeIndex,ya=na,ba=function(e){return"createRange"in e?e.createRange():di.DOM.createRng()},Ca=function(e){return e&&/[\r\n\t ]/.test(e)},xa=function(e){return!!e.setStart&&!!e.setEnd},wa=function(e){var t,n=e.startContainer,r=e.startOffset;return!!(Ca(e.toString())&&pa(n.parentNode)&&Ao.isText(n)&&(t=n.data,Ca(t[r-1])||Ca(t[r+1])))},Na=function(e){return 0===e.left&&0===e.right&&0===e.top&&0===e.bottom},Ea=function(e){var t,n,r,o,i,a,u,s;return t=0<(n=e.getClientRects()).length?Gi(n[0]):Gi(e.getBoundingClientRect()),!xa(e)&&ha(e)&&Na(t)?(i=(r=e).ownerDocument,a=ba(i),u=i.createTextNode("\xa0"),(s=r.parentNode).insertBefore(u,r),a.setStart(u,0),a.setEnd(u,1),o=Gi(a.getBoundingClientRect()),s.removeChild(u),o):Na(t)&&xa(e)?function(e){var t=e.startContainer,n=e.endContainer,r=e.startOffset,o=e.endOffset;if(t===n&&Ao.isText(n)&&0===r&&1===o){var i=e.cloneRange();return i.setEndAfter(n),Ea(i)}return null}(e):t},Sa=function(e,t){var n=Ji(e,t);return n.width=1,n.right=n.left+1,n},ka=function(e){var t,n,r=[],o=function(e){var t,n;0!==e.height&&(0<r.length&&(t=e,n=r[r.length-1],t.left===n.left&&t.top===n.top&&t.bottom===n.bottom&&t.right===n.right)||r.push(e))},i=function(e,t){var n=ba(e.ownerDocument);if(t<e.data.length){if(oa(e.data[t]))return r;if(oa(e.data[t-1])&&(n.setStart(e,t),n.setEnd(e,t+1),!wa(n)))return o(Sa(Ea(n),!1)),r}0<t&&(n.setStart(e,t-1),n.setEnd(e,t),wa(n)||o(Sa(Ea(n),!1))),t<e.data.length&&(n.setStart(e,t),n.setEnd(e,t+1),wa(n)||o(Sa(Ea(n),!0)))};if(ga(e.container()))return i(e.container(),e.offset()),r;if(ca(e.container()))if(e.isAtEnd())n=ya(e.container(),e.offset()),ga(n)&&i(n,n.data.length),ma(n)&&!ha(n)&&o(Sa(Ea(n),!1));else{if(n=ya(e.container(),e.offset()),ga(n)&&i(n,0),ma(n)&&e.isAtEnd())return o(Sa(Ea(n),!1)),r;t=ya(e.container(),e.offset()-1),ma(t)&&!ha(t)&&(fa(t)||fa(n)||!ma(n))&&o(Sa(Ea(t),!1)),ma(n)&&o(Sa(Ea(n),!0))}return r};function Ta(t,n,e){var r=function(){return e||(e=ka(Ta(t,n))),e};return{container:ua.constant(t),offset:ua.constant(n),toRange:function(){var e;return(e=ba(t.ownerDocument)).setStart(t,n),e.setEnd(t,n),e},getClientRects:r,isVisible:function(){return 0<r().length},isAtStart:function(){return ga(t),0===n},isAtEnd:function(){return ga(t)?n>=t.data.length:n>=t.childNodes.length},isEqual:function(e){return e&&t===e.container()&&n===e.offset()},getNode:function(e){return ya(t,e?n-1:n)}}}(xi=Ta||(Ta={})).fromRangeStart=function(e){return xi(e.startContainer,e.startOffset)},xi.fromRangeEnd=function(e){return xi(e.endContainer,e.endOffset)},xi.after=function(e){return xi(e.parentNode,va(e)+1)},xi.before=function(e){return xi(e.parentNode,va(e))},xi.isAbove=function(e,t){return sa([H.head(t.getClientRects()),H.last(e.getClientRects())],Zi).getOr(!1)},xi.isBelow=function(e,t){return sa([H.last(t.getClientRects()),H.head(e.getClientRects())],ea).getOr(!1)},xi.isAtStart=function(e){return!!e&&e.isAtStart()},xi.isAtEnd=function(e){return!!e&&e.isAtEnd()},xi.isTextPosition=function(e){return!!e&&Ao.isText(e.container())},xi.isElementPosition=function(e){return!1===xi.isTextPosition(e)};var Aa,Ra,Ba=Ta,_a=Ao.isElement,Da=Ao.isText,Oa=function(e){var t=e.parentNode;t&&t.removeChild(e)},Pa=function(e,t){0===t.length?Oa(e):e.nodeValue=t},La=function(e){var t=Si(e);return{count:e.length-t.length,text:t}},Ia=function(e,t){return za(e),t},Ma=function(e,t){return Da(e)&&t.container()===e?(r=t,o=La((n=e).data.substr(0,r.offset())),i=La(n.data.substr(r.offset())),0<(a=o.text+i.text).length?(Pa(n,a),Ba(n,r.offset()-o.count)):r):Ia(e,t);var n,r,o,i,a},Fa=function(e,t){return t.container()===e.parentNode?(n=e,o=(r=t).container(),i=H.indexOf(H.from(o.childNodes),n).map(function(e){return e<r.offset()?Ba(o,r.offset()-1):r}).getOr(r),za(n),i):Ia(e,t);var n,r,o,i},za=function(e){if(_a(e)&&Bi(e)&&(_i(e)?e.removeAttribute("data-mce-caret"):Oa(e)),Da(e)){var t=Si(function(e){try{return e.nodeValue}catch(t){return""}}(e));Pa(e,t)}},Ua={removeAndReposition:function(e,t){return Ba.isTextPosition(t)?Ma(e,t):Fa(e,t)},remove:za},qa=function(e){return Ba.isTextPosition(e)?0===e.offset():Wi(e.getNode())},Va=function(e){if(Ba.isTextPosition(e)){var t=e.container();return e.offset()===t.data.length}return Wi(e.getNode(!0))},Ha=function(e,t){return!Ba.isTextPosition(e)&&!Ba.isTextPosition(t)&&e.getNode()===t.getNode(!0)},ja=function(e,t,n){return e?!Ha(t,n)&&(r=t,!(!Ba.isTextPosition(r)&&Ao.isBr(r.getNode())))&&Va(t)&&qa(n):!Ha(n,t)&&qa(t)&&Va(n);var r},$a=function(e,t,n){var r=js(t);return A.from(e?r.next(n):r.prev(n))},Wa=function(e,t){var n,r,o,i,a,u=e?t.firstChild:t.lastChild;return Ao.isText(u)?A.some(Ba(u,e?0:u.data.length)):u?Wi(u)?A.some(e?Ba.before(u):(a=u,Ao.isBr(a)?Ba.before(a):Ba.after(a))):(r=t,o=u,i=(n=e)?Ba.before(o):Ba.after(o),$a(n,r,i)):A.none()},Ka={fromPosition:$a,nextPosition:V.curry($a,!0),prevPosition:V.curry($a,!1),navigate:function(t,n,r){return $a(t,n,r).bind(function(e){return ps(r,e,n)&&ja(t,r,e)?$a(t,n,e):A.some(e)})},positionIn:Wa,firstPositionIn:V.curry(Wa,!0),lastPositionIn:V.curry(Wa,!1)},Xa=Ao.isContentEditableTrue,Ya=Ao.isContentEditableFalse,Ga=function(e,t,n,r,o){return t._selectionOverrides.showCaret(e,n,r,o)},Ja=function(e,t){var n,r;return e.fire("BeforeObjectSelected",{target:t}).isDefaultPrevented()?null:((r=(n=t).ownerDocument.createRange()).selectNode(n),r)},Qa=function(e,t,n){var r=Cs(1,e.getBody(),t),o=Ba.fromRangeStart(r),i=o.getNode();if(Ya(i))return Ga(1,e,i,!o.isAtEnd(),!1);var a=o.getNode(!0);if(Ya(a))return Ga(1,e,a,!1,!1);var u=e.dom.getParent(o.getNode(),function(e){return Ya(e)||Xa(e)});return Ya(u)?Ga(1,e,u,!1,n):null},Za=function(e,t,n){if(!t||!t.collapsed)return t;var r=Qa(e,t,n);return r||t};(Ra=Aa||(Aa={}))[Ra.Br=0]="Br",Ra[Ra.Block=1]="Block",Ra[Ra.Wrap=2]="Wrap",Ra[Ra.Eol=3]="Eol";var eu,tu,nu=function(e,t){return e===eu.Backwards?t.reverse():t},ru=function(e,t,n,r){for(var o,i,a,u,s,c,l=js(n),f=r,d=[];f&&(s=l,c=f,o=t===eu.Forwards?s.next(c):s.prev(c));){if(Ao.isBr(o.getNode(!1)))return t===eu.Forwards?{positions:nu(t,d).concat([o]),breakType:Aa.Br,breakAt:A.some(o)}:{positions:nu(t,d),breakType:Aa.Br,breakAt:A.some(o)};if(o.isVisible()){if(e(f,o)){var m=(i=t,a=f,u=o,Ao.isBr(u.getNode(i===eu.Forwards))?Aa.Br:!1===ps(a,u)?Aa.Block:Aa.Wrap);return{positions:nu(t,d),breakType:m,breakAt:A.some(o)}}d.push(o),f=o}else f=o}return{positions:nu(t,d),breakType:Aa.Eol,breakAt:A.none()}},ou=function(n,r,o,e){return r(o,e).breakAt.map(function(e){var t=r(o,e).positions;return n===eu.Backwards?t.concat(e):[e].concat(t)}).getOr([])},iu=function(e,i){return H.foldl(e,function(e,o){return e.fold(function(){return A.some(o)},function(r){return sa([H.head(r.getClientRects()),H.head(o.getClientRects())],function(e,t){var n=Math.abs(i-e.left);return Math.abs(i-t.left)<=n?o:r}).or(e)})},A.none())},au=function(t,e){return H.head(e.getClientRects()).bind(function(e){return iu(t,e.left)})},uu=V.curry(ru,Ta.isAbove,-1),su=V.curry(ru,Ta.isBelow,1),cu=V.curry(ou,-1,uu),lu=V.curry(ou,1,su),fu=function(e,t){return Br.all(t,e)},du=function(e,t,n,r,o){var i,a,u,s,c,l=fu(qn.fromDom(n),"td,th").map(function(e){return e.dom()}),f=H.filter((i=e,a=l,H.bind(a,function(e){var t,n,r=(t=e.getBoundingClientRect(),n=-1,{left:t.left-n,top:t.top-n,right:t.right+2*n,bottom:t.bottom+2*n,width:t.width+n,height:t.height+n});return[{x:r.left,y:i(r),cell:e},{x:r.right,y:i(r),cell:e}]})),function(e){return t(e,o)});return(u=f,s=r,c=o,H.foldl(u,function(e,r){return e.fold(function(){return A.some(r)},function(e){var t=Math.sqrt(Math.abs(e.x-s)+Math.abs(e.y-c)),n=Math.sqrt(Math.abs(r.x-s)+Math.abs(r.y-c));return A.some(n<t?r:e)})},A.none())).map(function(e){return e.cell})},mu=V.curry(du,function(e){return e.bottom},function(e,t){return e.y<t}),pu=V.curry(du,function(e){return e.top},function(e,t){return e.y>t}),gu=function(t,n){return H.head(n.getClientRects()).bind(function(e){return mu(t,e.left,e.top)}).bind(function(e){return au((t=e,Ka.lastPositionIn(t).map(function(e){return uu(t,e).positions.concat(e)}).getOr([])),n);var t})},hu=function(t,n){return H.last(n.getClientRects()).bind(function(e){return pu(t,e.left,e.top)}).bind(function(e){return au((t=e,Ka.firstPositionIn(t).map(function(e){return[e].concat(su(t,e).positions)}).getOr([])),n);var t})},vu=function(e){for(var t=0,n=0,r=e;r&&r.nodeType;)t+=r.offsetLeft||0,n+=r.offsetTop||0,r=r.offsetParent;return{x:t,y:n}},yu=function(e,t,n){var r,o,i,a,u,s=e.dom,c=s.getRoot(),l=0;if(u={elm:t,alignToTop:n},e.fire("scrollIntoView",u),!u.isDefaultPrevented()&&Ao.isElement(t)){if(!1===n&&(l=t.offsetHeight),"BODY"!==c.nodeName){var f=e.selection.getScrollContainer();if(f)return r=vu(t).y-vu(f).y+l,a=f.clientHeight,void((r<(i=f.scrollTop)||i+a<r+25)&&(f.scrollTop=r<i?r:r-a+25))}o=s.getViewPort(e.getWin()),r=s.getPos(t).y+l,i=o.y,a=o.h,(r<o.y||i+a<r+25)&&e.getWin().scrollTo(0,r<i?r:r-a+25)}},bu=function(d,e){H.head(Ta.fromRangeStart(e).getClientRects()).each(function(e){var t,n,r,o,i,a,u,s,c,l=function(e){if(e.inline)return e.getBody().getBoundingClientRect();var t=e.getWin();return{left:0,right:t.innerWidth,top:0,bottom:t.innerHeight,width:t.innerWidth,height:t.innerHeight}}(d),f={x:(i=t=l,a=n=e,a.left>i.left&&a.right<i.right?0:a.left<i.left?a.left-i.left:a.right-i.right),y:(r=t,o=n,o.top>r.top&&o.bottom<r.bottom?0:o.top<r.top?o.top-r.top:o.bottom-r.bottom)};s=0!==f.x?0<f.x?f.x+4:f.x-4:0,c=0!==f.y?0<f.y?f.y+4:f.y-4:0,(u=d).inline?(u.getBody().scrollLeft+=s,u.getBody().scrollTop+=c):u.getWin().scrollBy(s,c)})},Cu=function(e,t,n){var r=e.getParam(t,n);if(-1!==r.indexOf("=")){var o=e.getParam(t,"","hash");return o.hasOwnProperty(e.id)?o[e.id]:n}return r},xu=function(e){return e.getParam("iframe_attrs",{})},wu=function(e){return e.getParam("doctype","<!DOCTYPE html>")},Nu=function(e){return e.getParam("document_base_url","")},Eu=function(e){return Cu(e,"body_id","tinymce")},Su=function(e){return Cu(e,"body_class","")},ku=function(e){return e.getParam("content_security_policy","")},Tu=function(e){return e.getParam("br_in_pre",!0)},Au=function(e){if(e.getParam("force_p_newlines",!1))return"p";var t=e.getParam("forced_root_block","p");return!1===t?"":t},Ru=function(e){return e.getParam("forced_root_block_attrs",{})},Bu=function(e){return e.getParam("br_newline_selector",".mce-toc h2,figcaption,caption")},_u=function(e){return e.getParam("no_newline_selector","")},Du=function(e){return e.getParam("keep_styles",!0)},Ou=function(e){return e.getParam("end_container_on_empty_block",!1)},Pu=function(e){return Lt.explode(e.getParam("font_size_style_values",""))},Lu=function(e){return Lt.explode(e.getParam("font_size_classes",""))},Iu=function(t,n){qr.parent(t).each(function(e){e.dom().insertBefore(n.dom(),t.dom())})},Mu=function(e,t){e.dom().appendChild(t.dom())},Fu={before:Iu,after:function(e,t){qr.nextSibling(e).fold(function(){qr.parent(e).each(function(e){Mu(e,t)})},function(e){Iu(e,t)})},prepend:function(t,n){qr.firstChild(t).fold(function(){Mu(t,n)},function(e){t.dom().insertBefore(n.dom(),e.dom())})},append:Mu,appendAt:function(e,t,n){qr.child(e,n).fold(function(){Mu(e,t)},function(e){Iu(e,t)})},wrap:function(e,t){Iu(e,t),Mu(t,e)}},zu=zn.detect().browser,Uu=function(){return zu.isIE()||zu.isEdge()||zu.isFirefox()},qu=function(e,t){e.selection.setRng(t),bu(e,t)},Vu=function(t,n,e){var r=t(n,e);return r.breakType===Aa.Wrap&&0===r.positions.length?r.breakAt.map(function(e){return t(n,e).breakAt.isNone()}).getOr(!0):r.breakAt.isNone()},Hu=ua.curry(Vu,uu),ju=ua.curry(Vu,su),$u=function(e,t,n,r){var o,i,a,u,s=e.selection.getRng(),c=t?1:-1;if(Uu()&&(o=t,i=s,a=n,u=Ba.fromRangeStart(i),Ka.positionIn(!o,a).map(function(e){return e.isEqual(u)}).getOr(!1))){var l=Ga(c,e,n,!t,!0);return qu(e,l),!0}return!1},Wu=function(e,t){var n=t.getNode(e);return Ao.isElement(n)&&"TABLE"===n.nodeName?A.some(n):A.none()},Ku=function(u,s,c){var e=Wu(!!s,c),t=!1===s;e.fold(function(){return qu(u,c.toRange())},function(a){return Ka.positionIn(t,u.getBody()).filter(function(e){return e.isEqual(c)}).fold(function(){return qu(u,c.toRange())},function(e){return n=s,o=a,t=c,void((i=Au(r=u))?r.undoManager.transact(function(){var e=qn.fromTag(i);cr.setAll(e,Ru(r)),Fu.append(e,qn.fromTag("br")),n?Fu.after(qn.fromDom(o),e):Fu.before(qn.fromDom(o),e);var t=r.dom.createRng();t.setStart(e.dom(),0),t.setEnd(e.dom(),0),qu(r,t)}):qu(r,t.toRange()));var n,r,o,t,i})})},Xu=function(e,t,n,r){var o,i,a,u,s,c,l=e.selection.getRng(),f=Ba.fromRangeStart(l),d=e.getBody();if(!t&&Hu(r,f)){var m=(u=d,gu(s=n,c=f).orThunk(function(){return H.head(c.getClientRects()).bind(function(e){return iu(cu(u,Ba.before(s)),e.left)})}).getOr(Ba.before(s)));return Ku(e,t,m),!0}return!(!t||!ju(r,f))&&(o=d,m=hu(i=n,a=f).orThunk(function(){return H.head(a.getClientRects()).bind(function(e){return iu(lu(o,Ba.after(i)),e.left)})}).getOr(Ba.after(i)),Ku(e,t,m),!0)},Yu=function(t,n){return function(){return A.from(t.dom.getParent(t.selection.getNode(),"td,th")).bind(function(e){return A.from(t.dom.getParent(e,"table")).map(function(e){return $u(t,n,e)})}).getOr(!1)}},Gu=function(n,r){return function(){return A.from(n.dom.getParent(n.selection.getNode(),"td,th")).bind(function(t){return A.from(n.dom.getParent(t,"table")).map(function(e){return Xu(n,r,e,t)})}).getOr(!1)}},Ju=function(e){var t=e,n=function(){return t};return{get:n,set:function(e){t=e},clone:function(){return Ju(n())}}},Qu=Ao.isContentEditableFalse,Zu=function(e,t,n){var r,o,i,a,u,s=Ji(t.getBoundingClientRect(),n);return"BODY"===e.tagName?(r=e.ownerDocument.documentElement,o=e.scrollLeft||r.scrollLeft,i=e.scrollTop||r.scrollTop):(u=e.getBoundingClientRect(),o=e.scrollLeft-u.left,i=e.scrollTop-u.top),s.left+=o,s.right+=o,s.top+=i,s.bottom+=i,s.width=1,0<(a=t.offsetWidth-t.clientWidth)&&(n&&(a*=-1),s.left+=a,s.right+=a),s},es=function(a,u,e){var t,s,c=Ju(A.none()),l=function(){!function(e){var t,n,r,o,i;for(t=en("*[contentEditable=false]",e),o=0;o<t.length;o++)r=(n=t[o]).previousSibling,Ii(r)&&(1===(i=r.data).length?r.parentNode.removeChild(r):r.deleteData(i.length-1,1)),r=n.nextSibling,Li(r)&&(1===(i=r.data).length?r.parentNode.removeChild(r):r.deleteData(0,1))}(a),s&&(Ua.remove(s),s=null),c.get().each(function(e){en(e.caret).remove(),c.set(A.none())}),clearInterval(t)},f=function(){t=Ce.setInterval(function(){e()?en("div.mce-visual-caret",a).toggleClass("mce-visual-caret-hidden"):en("div.mce-visual-caret",a).addClass("mce-visual-caret-hidden")},500)};return{show:function(t,e){var n,r,o;if(l(),o=e,Ao.isElement(o)&&/^(TD|TH)$/i.test(o.tagName))return null;if(!u(e))return s=function(e,t){var n,r,o;if(r=e.ownerDocument.createTextNode(Ei),o=e.parentNode,t){if(n=e.previousSibling,Ti(n)){if(Bi(n))return n;if(Ii(n))return n.splitText(n.data.length-1)}o.insertBefore(r,e)}else{if(n=e.nextSibling,Ti(n)){if(Bi(n))return n;if(Li(n))return n.splitText(1),n}e.nextSibling?o.insertBefore(r,e.nextSibling):o.appendChild(r)}return r}(e,t),r=e.ownerDocument.createRange(),Qu(s.nextSibling)?(r.setStart(s,0),r.setEnd(s,0)):(r.setStart(s,1),r.setEnd(s,1)),r;s=Pi("p",e,t),n=Zu(a,e,t),en(s).css("top",n.top);var i=en('<div class="mce-visual-caret" data-mce-bogus="all"></div>').css(n).appendTo(a)[0];return c.set(A.some({caret:i,element:e,before:t})),c.get().each(function(e){t&&en(e.caret).addClass("mce-visual-caret-before")}),f(),(r=e.ownerDocument.createRange()).setStart(s,0),r.setEnd(s,0),r},hide:l,getCss:function(){return".mce-visual-caret {position: absolute;background-color: black;background-color: currentcolor;}.mce-visual-caret-hidden {display: none;}*[data-mce-caret] {position: absolute;left: -1000px;right: auto;top: 0;margin: 0;padding: 0;}"},reposition:function(){c.get().each(function(e){var t=Zu(a,e.element,e.before);en(e.caret).css(t)})},destroy:function(){return Ce.clearInterval(t)}}},ts=function(e){return Qu(e)||Ao.isTable(e)&&Uu()},ns=Ao.isContentEditableFalse,rs=Ao.matchStyleValues("display","block table table-cell table-caption list-item"),os=Bi,is=Ai,as=ua.curry,us=Ao.isElement,ss=Wi,cs=function(e){return 0<e},ls=function(e){return e<0},fs=function(e,t){for(var n;n=e(t);)if(!is(n))return n;return null},ds=function(e,t,n,r,o){var i=new no(e,r);if(ls(t)){if((ns(e)||is(e))&&n(e=fs(i.prev,!0)))return e;for(;e=fs(i.prev,o);)if(n(e))return e}if(cs(t)){if((ns(e)||is(e))&&n(e=fs(i.next,!0)))return e;for(;e=fs(i.next,o);)if(n(e))return e}return null},ms=function(e,t){for(;e&&e!==t;){if(rs(e))return e;e=e.parentNode}return null},ps=function(e,t,n){return ms(e.container(),n)===ms(t.container(),n)},gs=function(e,t){var n,r;return t?(n=t.container(),r=t.offset(),us(n)?n.childNodes[r+e]:null):null},hs=function(e,t){var n=t.ownerDocument.createRange();return e?(n.setStartBefore(t),n.setEndBefore(t)):(n.setStartAfter(t),n.setEndAfter(t)),n},vs=function(e,t,n){var r,o,i,a;for(o=e?"previousSibling":"nextSibling";n&&n!==t;){if(r=n[o],os(r)&&(r=r[o]),ns(r)){if(a=n,ms(r,i=t)===ms(a,i))return r;break}if(ss(r))break;n=n.parentNode}return null},ys=as(hs,!0),bs=as(hs,!1),Cs=function(e,t,n){var r,o,i,a,u=as(vs,!0,t),s=as(vs,!1,t);if(o=n.startContainer,i=n.startOffset,Ai(o)){if(us(o)||(o=o.parentNode),"before"===(a=o.getAttribute("data-mce-caret"))&&(r=o.nextSibling,ts(r)))return ys(r);if("after"===a&&(r=o.previousSibling,ts(r)))return bs(r)}if(!n.collapsed)return n;if(Ao.isText(o)){if(os(o)){if(1===e){if(r=s(o))return ys(r);if(r=u(o))return bs(r)}if(-1===e){if(r=u(o))return bs(r);if(r=s(o))return ys(r)}return n}if(Ii(o)&&i>=o.data.length-1)return 1===e&&(r=s(o))?ys(r):n;if(Li(o)&&i<=1)return-1===e&&(r=u(o))?bs(r):n;if(i===o.data.length)return(r=s(o))?ys(r):n;if(0===i)return(r=u(o))?bs(r):n}return n},xs=function(e,t){var n=gs(e,t);return ns(n)&&!Ao.isBogusAll(n)},ws=function(e,t){return Ao.isTable(gs(e,t))},Ns=function(e,t){return A.from(gs(e?0:-1,t)).filter(ns)},Es=function(e,t,n){var r=Cs(e,t,n);return-1===e?Ta.fromRangeStart(r):Ta.fromRangeEnd(r)},Ss=as(xs,0),ks=as(xs,-1),Ts=as(ws,0),As=as(ws,-1);(tu=eu||(eu={}))[tu.Backwards=-1]="Backwards",tu[tu.Forwards=1]="Forwards";var Rs,Bs,_s,Ds,Os,Ps=Ao.isContentEditableFalse,Ls=Ao.isText,Is=Ao.isElement,Ms=Ao.isBr,Fs=Wi,zs=function(e){return Hi(e)||!!Ki(t=e)&&!0!==Bt.reduce(t.getElementsByTagName("*"),function(e,t){return e||Fi(t)},!1);var t},Us=Xi,qs=function(e,t){return e.hasChildNodes()&&t<e.childNodes.length?e.childNodes[t]:null},Vs=function(e,t){if(cs(e)){if(Fs(t.previousSibling)&&!Ls(t.previousSibling))return Ba.before(t);if(Ls(t))return Ba(t,0)}if(ls(e)){if(Fs(t.nextSibling)&&!Ls(t.nextSibling))return Ba.after(t);if(Ls(t))return Ba(t,t.data.length)}return ls(e)?Ms(t)?Ba.before(t):Ba.after(t):Ba.before(t)},Hs=function(e,t,n){var r,o,i,a,u;if(!Is(n)||!t)return null;if(t.isEqual(Ba.after(n))&&n.lastChild){if(u=Ba.after(n.lastChild),ls(e)&&Fs(n.lastChild)&&Is(n.lastChild))return Ms(n.lastChild)?Ba.before(n.lastChild):u}else u=t;var s,c,l,f=u.container(),d=u.offset();if(Ls(f)){if(ls(e)&&0<d)return Ba(f,--d);if(cs(e)&&d<f.length)return Ba(f,++d);r=f}else{if(ls(e)&&0<d&&(o=qs(f,d-1),Fs(o)))return!zs(o)&&(i=ds(o,e,Us,o))?Ls(i)?Ba(i,i.data.length):Ba.after(i):Ls(o)?Ba(o,o.data.length):Ba.before(o);if(cs(e)&&d<f.childNodes.length&&(o=qs(f,d),Fs(o)))return Ms(o)&&n.lastChild===o?null:(s=o,c=n,Ao.isBr(s)&&(l=Hs(1,Ba.after(s),c))&&!ps(Ba.before(s),Ba.before(l),c)?Hs(e,Ba.after(o),n):!zs(o)&&(i=ds(o,e,Us,o))?Ls(i)?Ba(i,0):Ba.before(i):Ls(o)?Ba(o,0):Ba.after(o));r=o||u.getNode()}return(cs(e)&&u.isAtEnd()||ls(e)&&u.isAtStart())&&(r=ds(r,e,ua.constant(!0),n,!0),Us(r,n))?Vs(e,r):(o=ds(r,e,Us,n),!(a=Bt.last(Bt.filter(function(e,t){for(var n=[];e&&e!==t;)n.push(e),e=e.parentNode;return n}(f,n),Ps)))||o&&a.contains(o)?o?Vs(e,o):null:u=cs(e)?Ba.after(a):Ba.before(a))},js=function(t){return{next:function(e){return Hs(eu.Forwards,e,t)},prev:function(e){return Hs(eu.Backwards,e,t)}}},$s=function(e){return Lt.grep(e.childNodes,function(e){return"LI"===e.nodeName})},Ws=function(e){return e&&e.firstChild&&e.firstChild===e.lastChild&&("\xa0"===(t=e.firstChild).data||Ao.isBr(t));var t},Ks=function(e){return 0<e.length&&(!(t=e[e.length-1]).firstChild||Ws(t))?e.slice(0,-1):e;var t},Xs=function(e,t){var n=e.getParent(t,e.isBlock);return n&&"LI"===n.nodeName?n:null},Ys=function(e,t){var n=Ba.after(e),r=js(t).prev(n);return r?r.toRange():null},Gs=function(t,e,n){var r,o,i,a,u=t.parentNode;return Lt.each(e,function(e){u.insertBefore(e,t)}),r=t,o=n,i=Ba.before(r),(a=js(o).next(i))?a.toRange():null},Js=function(e,t){var n,r,o,i,a,u,s=t.firstChild,c=t.lastChild;return s&&"meta"===s.name&&(s=s.next),c&&"mce_marker"===c.attr("id")&&(c=c.prev),r=c,u=(n=e).getNonEmptyElements(),r&&(r.isEmpty(u)||(o=r,n.getBlockElements()[o.name]&&(a=o).firstChild&&a.firstChild===a.lastChild&&("br"===(i=o.firstChild).name||"\xa0"===i.value)))&&(c=c.prev),!(!s||s!==c||"ul"!==s.name&&"ol"!==s.name)},Qs=function(e,o,i,t){var n,r,a,u,s,c,l,f,d,m,p,g,h,v,y,b,C,x,w,N=(n=o,r=t,c=e.serialize(r),l=n.createFragment(c),u=(a=l).firstChild,s=a.lastChild,u&&"META"===u.nodeName&&u.parentNode.removeChild(u),s&&"mce_marker"===s.id&&s.parentNode.removeChild(s),a),E=Xs(o,i.startContainer),S=Ks($s(N.firstChild)),k=o.getRoot(),T=function(e){var t=Ba.fromRangeStart(i),n=js(o.getRoot()),r=1===e?n.prev(t):n.next(t);return!r||Xs(o,r.getNode())!==E};return T(1)?Gs(E,S,k):T(2)?(f=E,d=S,m=k,o.insertAfter(d.reverse(),f),Ys(d[0],m)):(g=S,h=k,v=p=E,b=(y=i).cloneRange(),C=y.cloneRange(),b.setStartBefore(v),C.setEndAfter(v),x=[b.cloneContents(),C.cloneContents()],(w=p.parentNode).insertBefore(x[0],p),Lt.each(g,function(e){w.insertBefore(e,p)}),w.insertBefore(x[1],p),w.removeChild(p),Ys(g[g.length-1],h))},Zs=function(e,t){return!!Xs(e,t)},ec=Ao.isText,tc=Ao.isBogus,nc=di.nodeIndex,rc=function(e){var t=e.parentNode;return tc(t)?rc(t):t},oc=function(e){return e?Bt.reduce(e.childNodes,function(e,t){return tc(t)&&"BR"!==t.nodeName?e=e.concat(oc(t)):e.push(t),e},[]):[]},ic=function(t){return function(e){return t===e}},ac=function(e){var t,r,n,o;return(ec(e)?"text()":e.nodeName.toLowerCase())+"["+(r=oc(rc(t=e)),n=Bt.findIndex(r,ic(t),t),r=r.slice(0,n+1),o=Bt.reduce(r,function(e,t,n){return ec(t)&&ec(r[n-1])&&e++,e},0),r=Bt.filter(r,Ao.matchNodeNames(t.nodeName)),(n=Bt.findIndex(r,ic(t),t))-o)+"]"},uc=function(e,t){var n,r,o,i,a,u=[];return n=t.container(),r=t.offset(),ec(n)?o=function(e,t){for(;(e=e.previousSibling)&&ec(e);)t+=e.data.length;return t}(n,r):(r>=(i=n.childNodes).length?(o="after",r=i.length-1):o="before",n=i[r]),u.push(ac(n)),a=function(e,t,n){var r=[];for(t=t.parentNode;!(t===e||n&&n(t));t=t.parentNode)r.push(t);return r}(e,n),a=Bt.filter(a,ua.negate(Ao.isBogus)),(u=u.concat(Bt.map(a,function(e){return ac(e)}))).reverse().join("/")+","+o},sc=function(e,t){var n,r,o;return t?(t=(n=t.split(","))[0].split("/"),o=1<n.length?n[1]:"before",(r=Bt.reduce(t,function(e,t){return(t=/([\w\-\(\)]+)\[([0-9]+)\]/.exec(t))?("text()"===t[1]&&(t[1]="#text"),n=e,r=t[1],o=parseInt(t[2],10),i=oc(n),i=Bt.filter(i,function(e,t){return!ec(e)||!ec(i[t-1])}),(i=Bt.filter(i,Ao.matchNodeNames(r)))[o]):null;var n,r,o,i},e))?ec(r)?function(e,t){for(var n,r=e,o=0;ec(r);){if(n=r.data.length,o<=t&&t<=o+n){e=r,t-=o;break}if(!ec(r.nextSibling)){e=r,t=n;break}o+=n,r=r.nextSibling}return ec(e)&&t>e.data.length&&(t=e.data.length),Ba(e,t)}(r,parseInt(o,10)):(o="after"===o?nc(r)+1:nc(r),Ba(r.parentNode,o)):null):null},cc=Ao.isContentEditableFalse,lc=function(e,t,n,r,o){var i,a=r[o?"startContainer":"endContainer"],u=r[o?"startOffset":"endOffset"],s=[],c=0,l=e.getRoot();for(Ao.isText(a)?s.push(n?function(e,t,n){var r,o;for(o=e(t.data.slice(0,n)).length,r=t.previousSibling;r&&Ao.isText(r);r=r.previousSibling)o+=e(r.data).length;return o}(t,a,u):u):(u>=(i=a.childNodes).length&&i.length&&(c=1,u=Math.max(0,i.length-1)),s.push(e.nodeIndex(i[u],n)+c));a&&a!==l;a=a.parentNode)s.push(e.nodeIndex(a,n));return s},fc=function(e){Ao.isText(e)&&0===e.data.length&&e.parentNode.removeChild(e)},dc=function(e,t,n){var r=0;return Lt.each(e.select(t),function(e){if("all"!==e.getAttribute("data-mce-bogus"))return e!==n&&void r++}),r},mc=function(e,t){var n,r,o,i=t?"start":"end";n=e[i+"Container"],r=e[i+"Offset"],Ao.isElement(n)&&"TR"===n.nodeName&&(n=(o=n.childNodes)[Math.min(t?r:r-1,o.length-1)])&&(r=t?0:n.childNodes.length,e["set"+(t?"Start":"End")](n,r))},pc=function(e){return mc(e,!0),mc(e,!1),e},gc=function(e,t){var n;if(Ao.isElement(e)&&(e=na(e,t),cc(e)))return e;if(Bi(e)){if(Ao.isText(e)&&Ai(e)&&(e=e.parentNode),n=e.previousSibling,cc(n))return n;if(n=e.nextSibling,cc(n))return n}},hc=function(e,t,n){var r=n.getNode(),o=r?r.nodeName:null,i=n.getRng();if(cc(r)||"IMG"===o)return{name:o,index:dc(n.dom,o,r)};var a,u,s,c,l,f,d,m=gc((a=i).startContainer,a.startOffset)||gc(a.endContainer,a.endOffset);return m?{name:o=m.tagName,index:dc(n.dom,o,m)}:(u=e,c=t,l=i,f=(s=n).dom,(d={}).start=lc(f,u,c,l,!0),s.isCollapsed()||(d.end=lc(f,u,c,l,!1)),d)},vc=function(e,t,n){var r={"data-mce-type":"bookmark",id:t,style:"overflow:hidden;line-height:0px"};return n?e.create("span",r,""):e.create("span",r)},yc=function(e,t){var n=e.dom,r=e.getRng(),o=n.uniqueId(),i=e.isCollapsed(),a=e.getNode(),u=a.nodeName;if("IMG"===u)return{name:u,index:dc(n,u,a)};var s=pc(r.cloneRange());if(!i){s.collapse(!1);var c=vc(n,o+"_end",t);s.insertNode(c),fc(c.nextSibling)}(r=pc(r)).collapse(!0);var l=vc(n,o+"_start",t);return r.insertNode(l),fc(l.previousSibling),e.moveToBookmark({id:o,keep:1}),{id:o}},bc={getBookmark:function(e,t,n){return 2===t?hc(Si,n,e):3===t?(o=(r=e).getRng(),{start:uc(r.dom.getRoot(),Ba.fromRangeStart(o)),end:uc(r.dom.getRoot(),Ba.fromRangeEnd(o))}):t?{rng:e.getRng()}:yc(e,!1);var r,o},getUndoBookmark:V.curry(hc,V.identity,!0),getPersistentBookmark:yc},Cc="_mce_caret",xc=function(e){return Ao.isElement(e)&&e.id===Cc},wc=function(e,t){for(;t&&t!==e;){if(t.id===Cc)return t;t=t.parentNode}return null},Nc=function(e,t){return!e.isBlock(t)||t.innerHTML||ge.ie||(t.innerHTML='<br data-mce-bogus="1" />'),t},Ec=function(e,t){return Ka.lastPositionIn(e).fold(function(){return!1},function(e){return t.setStart(e.container(),e.offset()),t.setEnd(e.container(),e.offset()),!0})},Sc=function(e,t,n){return!(!1!==t.hasChildNodes()||!wc(e,t)||(o=n,i=(r=t).ownerDocument.createTextNode(Ei),r.appendChild(i),o.setStart(i,0),o.setEnd(i,0),0));var r,o,i},kc=function(e,t,n,r){var o,i,a,u,s=n[t?"start":"end"],c=e.getRoot();if(s){for(a=s[0],i=c,o=s.length-1;1<=o;o--){if(u=i.childNodes,Sc(c,i,r))return!0;if(s[o]>u.length-1)return!!Sc(c,i,r)||Ec(i,r);i=u[s[o]]}3===i.nodeType&&(a=Math.min(s[0],i.nodeValue.length)),1===i.nodeType&&(a=Math.min(s[0],i.childNodes.length)),t?r.setStart(i,a):r.setEnd(i,a)}return!0},Tc=function(e){return Ao.isText(e)&&0<e.data.length},Ac=function(e,t,n){var r,o,i,a,u,s,c=e.get(n.id+"_"+t),l=n.keep;if(c){if(r=c.parentNode,"start"===t?l?c.hasChildNodes()?(r=c.firstChild,o=1):Tc(c.nextSibling)?(r=c.nextSibling,o=0):Tc(c.previousSibling)?(r=c.previousSibling,o=c.previousSibling.data.length):(r=c.parentNode,o=e.nodeIndex(c)+1):o=e.nodeIndex(c):l?c.hasChildNodes()?(r=c.firstChild,o=1):Tc(c.previousSibling)?(r=c.previousSibling,o=c.previousSibling.data.length):(r=c.parentNode,o=e.nodeIndex(c)):o=e.nodeIndex(c),u=r,s=o,!l){for(a=c.previousSibling,i=c.nextSibling,Lt.each(Lt.grep(c.childNodes),function(e){Ao.isText(e)&&(e.nodeValue=e.nodeValue.replace(/\uFEFF/g,""))});c=e.get(n.id+"_"+t);)e.remove(c,!0);a&&i&&a.nodeType===i.nodeType&&Ao.isText(a)&&!ge.opera&&(o=a.nodeValue.length,a.appendData(i.nodeValue),e.remove(i),u=a,s=o)}return A.some(Ba(u,s))}return A.none()},Rc=function(e,t){var n,r,o,i,a,u,s,c,l,f,d,m,p,g,h,v,y=e.dom;if(t){if(v=t,Lt.isArray(v.start))return g=t,h=(p=y).createRng(),kc(p,!0,g,h)&&kc(p,!1,g,h)?A.some(h):A.none();if("string"==typeof t.start)return A.some((f=t,d=(l=y).createRng(),m=sc(l.getRoot(),f.start),d.setStart(m.container(),m.offset()),m=sc(l.getRoot(),f.end),d.setEnd(m.container(),m.offset()),d));if(t.hasOwnProperty("id"))return s=Ac(o=y,"start",i=t),c=Ac(o,"end",i),sa([s,(a=c,u=s,a.isSome()?a:u)],function(e,t){var n=o.createRng();return n.setStart(Nc(o,e.container()),e.offset()),n.setEnd(Nc(o,t.container()),t.offset()),n});if(t.hasOwnProperty("name"))return n=y,r=t,A.from(n.select(r.name)[r.index]).map(function(e){var t=n.createRng();return t.selectNode(e),t});if(t.hasOwnProperty("rng"))return A.some(t.rng)}return A.none()},Bc={getBookmark:function(e,t,n){return bc.getBookmark(e,t,n)},moveToBookmark:function(t,e){Rc(t,e).each(function(e){t.setRng(e)})},isBookmarkNode:function(e){return Ao.isElement(e)&&"SPAN"===e.tagName&&"bookmark"===e.getAttribute("data-mce-type")}},_c=Lt.each,Dc=function(o){this.compare=function(e,t){if(e.nodeName!==t.nodeName)return!1;var n=function(n){var r={};return _c(o.getAttribs(n),function(e){var t=e.nodeName.toLowerCase();0!==t.indexOf("_")&&"style"!==t&&0!==t.indexOf("data-")&&(r[t]=o.getAttrib(n,t))}),r},r=function(e,t){var n,r;for(r in e)if(e.hasOwnProperty(r)){if(void 0===(n=t[r]))return!1;if(e[r]!==n)return!1;delete t[r]}for(r in t)if(t.hasOwnProperty(r))return!1;return!0};return!(!r(n(e),n(t))||!r(o.parseStyle(o.getAttrib(e,"style")),o.parseStyle(o.getAttrib(t,"style")))||Bc.isBookmarkNode(e)||Bc.isBookmarkNode(t))}},Oc=function(t,e){H.each(e,function(e){Fu.before(t,e)})},Pc=function(t,e){H.each(e,function(e){Fu.append(t,e)})},Lc=function(e){var t=e.dom();null!==t.parentNode&&t.parentNode.removeChild(t)},Ic={empty:function(e){e.dom().textContent="",H.each(qr.children(e),function(e){Lc(e)})},remove:Lc,unwrap:function(e){var t=qr.children(e);0<t.length&&Oc(e,t),Lc(e)}},Mc=(Rs=Qn.isText,Bs="text",_s=function(e){return Rs(e)?A.from(e.dom().nodeValue):A.none()},Ds=zn.detect().browser,{get:function(e){if(!Rs(e))throw new Error("Can only get "+Bs+" value of a "+Bs+" node");return Os(e).getOr("")},getOption:Os=Ds.isIE()&&10===Ds.version.major?function(e){try{return _s(e)}catch(Zx){return A.none()}}:_s,set:function(e,t){if(!Rs(e))throw new Error("Can only set raw "+Bs+" value of a "+Bs+" node");e.dom().nodeValue=t}}),Fc=function(e){return Mc.get(e)},zc=function(e){var t=fu(e,"br"),n=H.filter(function(e){for(var t=[],n=e.dom();n;)t.push(qn.fromDom(n)),n=n.lastChild;return t}(e).slice(-1),lo);t.length===n.length&&H.each(n,Ic.remove)},Uc=function(e){Ic.empty(e),Fu.append(e,qn.fromHtml('<br data-mce-bogus="1">'))},qc=function(n){qr.lastChild(n).each(function(t){qr.prevSibling(t).each(function(e){so(n)&&lo(t)&&so(e)&&Ic.remove(t)})})},Vc=Lt.makeMap;function Hc(e){var u,s,c,l,f,d=[];return u=(e=e||{}).indent,s=Vc(e.indent_before||""),c=Vc(e.indent_after||""),l=Vo.getEncodeFunc(e.entity_encoding||"raw",e.entities),f="html"===e.element_format,{start:function(e,t,n){var r,o,i,a;if(u&&s[e]&&0<d.length&&0<(a=d[d.length-1]).length&&"\n"!==a&&d.push("\n"),d.push("<",e),t)for(r=0,o=t.length;r<o;r++)i=t[r],d.push(" ",i.name,'="',l(i.value,!0),'"');d[d.length]=!n||f?">":" />",n&&u&&c[e]&&0<d.length&&0<(a=d[d.length-1]).length&&"\n"!==a&&d.push("\n")},end:function(e){var t;d.push("</",e,">"),u&&c[e]&&0<d.length&&0<(t=d[d.length-1]).length&&"\n"!==t&&d.push("\n")},text:function(e,t){0<e.length&&(d[d.length]=t?e:l(e))},cdata:function(e){d.push("<![CDATA[",e,"]]>")},comment:function(e){d.push("\x3c!--",e,"--\x3e")},pi:function(e,t){t?d.push("<?",e," ",l(t),"?>"):d.push("<?",e,"?>"),u&&d.push("\n")},doctype:function(e){d.push("<!DOCTYPE",e,">",u?"\n":"")},reset:function(){d.length=0},getContent:function(){return d.join("").replace(/\n$/,"")}}}function jc(t,p){void 0===p&&(p=Zo());var g=Hc(t);return(t=t||{}).validate=!("validate"in t)||t.validate,{serialize:function(e){var f,d;d=t.validate,f={3:function(e){g.text(e.value,e.raw)},8:function(e){g.comment(e.value)},7:function(e){g.pi(e.name,e.value)},10:function(e){g.doctype(e.value)},4:function(e){g.cdata(e.value)},11:function(e){if(e=e.firstChild)for(;m(e),e=e.next;);}},g.reset();var m=function(e){var t,n,r,o,i,a,u,s,c,l=f[e.type];if(l)l(e);else{if(t=e.name,n=e.shortEnded,r=e.attributes,d&&r&&1<r.length&&((a=[]).map={},c=p.getElementRule(e.name))){for(u=0,s=c.attributesOrder.length;u<s;u++)(o=c.attributesOrder[u])in r.map&&(i=r.map[o],a.map[o]=i,a.push({name:o,value:i}));for(u=0,s=r.length;u<s;u++)(o=r[u].name)in a.map||(i=r.map[o],a.map[o]=i,a.push({name:o,value:i}));r=a}if(g.start(e.name,r,n),!n){if(e=e.firstChild)for(;m(e),e=e.next;);g.end(t)}}};return 1!==e.type||t.inner?f[11](e):m(e),g.getContent()}}}var $c=function(a){var u=Ba.fromRangeStart(a),s=Ba.fromRangeEnd(a),c=a.commonAncestorContainer;return Ka.fromPosition(!1,c,s).map(function(e){return!ps(u,s,c)&&ps(u,e,c)?(t=u.container(),n=u.offset(),r=e.container(),o=e.offset(),(i=document.createRange()).setStart(t,n),i.setEnd(r,o),i):a;var t,n,r,o,i}).getOr(a)},Wc=function(e){return e.collapsed?e:$c(e)},Kc=Ao.matchNodeNames("td th"),Xc=function(o,e,t){var n,r,i,a,u,s,c,l,f,d,m,p,g=o.schema.getTextInlineElements(),h=o.selection,v=o.dom;if(/^ | $/.test(e)&&(e=function(e){var t,n,r;t=h.getRng(),n=t.startContainer,r=t.startOffset;var o=function(e){return n[e]&&3===n[e].nodeType};return 3===n.nodeType&&(0<r?e=e.replace(/^ /," "):o("previousSibling")||(e=e.replace(/^ /," ")),r<n.length?e=e.replace(/ (<br>|)$/," "):o("nextSibling")||(e=e.replace(/( | )(<br>|)$/," "))),e}(e)),n=o.parser,p=t.merge,r=jc({validate:o.settings.validate},o.schema),m='<span id="mce_marker" data-mce-type="bookmark">​</span>',s={content:e,format:"html",selection:!0,paste:t.paste},(s=o.fire("BeforeSetContent",s)).isDefaultPrevented())o.fire("SetContent",{content:s.content,format:"html",selection:!0,paste:t.paste});else{-1===(e=s.content).indexOf("{$caret}")&&(e+="{$caret}"),e=e.replace(/\{\$caret\}/,m);var y,b,C,x,w=(l=h.getRng()).startContainer||(l.parentElement?l.parentElement():null),N=o.getBody();w===N&&h.isCollapsed()&&v.isBlock(N.firstChild)&&(y=N.firstChild)&&!o.schema.getShortEndedElements()[y.nodeName]&&v.isEmpty(N.firstChild)&&((l=v.createRng()).setStart(N.firstChild,0),l.setEnd(N.firstChild,0),h.setRng(l)),h.isCollapsed()||(o.selection.setRng(Wc(o.selection.getRng())),o.getDoc().execCommand("Delete",!1,null),C=(b=h.getRng()).startContainer,x=b.startOffset,3===C.nodeType&&b.collapsed&&("\xa0"===C.data[x]?(C.deleteData(x,1),/[\u00a0| ]$/.test(e)||(e+=" ")):"\xa0"===C.data[x-1]&&(C.deleteData(x-1,1),/[\u00a0| ]$/.test(e)||(e=" "+e))));var E,S,k,T={context:(i=h.getNode()).nodeName.toLowerCase(),data:t.data,insert:!0};if(u=n.parse(e,T),!0===t.paste&&Js(o.schema,u)&&Zs(v,i))return l=Qs(r,v,o.selection.getRng(),u),o.selection.setRng(l),void o.fire("SetContent",s);if(function(e){for(var t=e;t=t.walk();)1===t.type&&t.attr("data-mce-fragment","1")}(u),"mce_marker"===(f=u.lastChild).attr("id"))for(f=(c=f).prev;f;f=f.walk(!0))if(3===f.type||!v.isBlock(f.name)){o.schema.isValidChild(f.parent.name,"span")&&f.parent.insert(c,f,"br"===f.name);break}if(o._selectionOverrides.showBlockCaretContainer(i),T.invalid){for(h.setContent(m),i=h.getNode(),a=o.getBody(),9===i.nodeType?i=f=a:f=i;f!==a;)f=(i=f).parentNode;e=i===a?a.innerHTML:v.getOuterHTML(i),e=r.serialize(n.parse(e.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i,function(){return r.serialize(u)}))),i===a?v.setHTML(a,e):v.setOuterHTML(i,e)}else e=r.serialize(u),function(e,t,n){if("all"===n.getAttribute("data-mce-bogus"))n.parentNode.insertBefore(e.dom.createFragment(t),n);else{var r=n.firstChild,o=n.lastChild;!r||r===o&&"BR"===r.nodeName?e.dom.setHTML(n,t):e.selection.setContent(t)}}(o,e,i);!function(){if(p){var n=o.getBody(),r=new Dc(v);Lt.each(v.select("*[data-mce-fragment]"),function(e){for(var t=e.parentNode;t&&t!==n;t=t.parentNode)g[e.nodeName.toLowerCase()]&&r.compare(t,e)&&v.remove(e,!0)})}}(),function(e){var t,n,r;if(e){if(h.scrollIntoView(e),t=function(e){for(var t=o.getBody();e&&e!==t;e=e.parentNode)if("false"===o.dom.getContentEditable(e))return e;return null}(e))return v.remove(e),h.select(t);l=v.createRng(),(f=e.previousSibling)&&3===f.nodeType?(l.setStart(f,f.nodeValue.length),ge.ie||(d=e.nextSibling)&&3===d.nodeType&&(f.appendData(d.data),d.parentNode.removeChild(d))):(l.setStartBefore(e),l.setEndBefore(e)),n=v.getParent(e,v.isBlock),v.remove(e),n&&v.isEmpty(n)&&(o.$(n).empty(),l.setStart(n,0),l.setEnd(n,0),Kc(n)||n.getAttribute("data-mce-fragment")||!(r=function(e){var t=Ba.fromRangeStart(e);if(t=js(o.getBody()).next(t))return t.toRange()}(l))?v.add(n,v.create("br",{"data-mce-bogus":"1"})):(l=r,v.remove(n))),h.setRng(l)}}(v.get("mce_marker")),E=o.getBody(),Lt.each(E.getElementsByTagName("*"),function(e){e.removeAttribute("data-mce-fragment")}),S=o.dom,k=o.selection.getStart(),A.from(S.getParent(k,"td,th")).map(qn.fromDom).each(qc),o.fire("SetContent",s),o.addVisual()}},Yc={insertAtCaret:function(e,t){var n,r,o="string"!=typeof(n=t)?(r=Lt.extend({paste:n.paste,data:{paste:n.paste}},n),{content:n.content,details:r}):{content:n,details:{}};Xc(e,o.content,o.details)}};function Gc(e,t,n,r,o){return e(n,r)?A.some(n):E.isFunction(o)&&o(n)?A.none():t(n,r,o)}var Jc=function(e,t,n){for(var r=e.dom(),o=E.isFunction(n)?n:V.constant(!1);r.parentNode;){r=r.parentNode;var i=qn.fromDom(r);if(t(i))return A.some(i);if(o(i))break}return A.none()},Qc=function(e,t){return H.find(e.dom().childNodes,V.compose(t,qn.fromDom)).map(qn.fromDom)},Zc=function(e,r){var o=function(e){for(var t=0;t<e.childNodes.length;t++){if(r(qn.fromDom(e.childNodes[t])))return A.some(qn.fromDom(e.childNodes[t]));var n=o(e.childNodes[t]);if(n.isSome())return n}return A.none()};return o(e.dom())},el={first:function(e){return Zc(dr.body(),e)},ancestor:Jc,closest:function(e,t,n){return Gc(function(e){return t(e)},Jc,e,t,n)},sibling:function(t,n){var e=t.dom();return e.parentNode?Qc(qn.fromDom(e.parentNode),function(e){return!Or.eq(t,e)&&n(e)}):A.none()},child:Qc,descendant:Zc},tl=wr.immutable("sections","settings"),nl=zn.detect().deviceType.isTouch(),rl=["lists","autolink","autosave"],ol={theme:"mobile"},il=function(e){var t=E.isArray(e)?e.join(" "):e,n=H.map(E.isString(t)?t.split(" "):[],Dn);return H.filter(n,function(e){return 0<e.length})},al=function(e,t){return e.sections().hasOwnProperty(t)},ul=function(e,t,n,r){var o,i,a=il(n.forced_plugins),u=il(r.plugins),s=e&&al(t,"mobile")?(o=u,H.filter(o,V.curry(H.contains,rl))):u,c=(i=s,[].concat(il(a)).concat(il(i)));return Lt.extend(r,{plugins:c.join(" ")})},sl=function(e,t,n,r){var o,i,a,u,s,c,l,f,d,m,p,g,h,v=(o=["mobile"],i=r,a=or.bifilter(i,function(e,t){return H.contains(o,t)}),tl(a.t,a.f)),y=Lt.extend(t,n,v.settings(),(p=e,h=(g=v).settings().inline,p&&al(g,"mobile")&&!h?(l="mobile",f=ol,d=v.sections(),m=d.hasOwnProperty(l)?d[l]:{},Lt.extend({},f,m)):{}),{validate:!0,content_editable:v.settings().inline,external_plugins:(u=n,s=v.settings(),c=s.external_plugins?s.external_plugins:{},u&&u.external_plugins?Lt.extend({},u.external_plugins,c):c)});return ul(e,v,n,y)},cl=function(e,t,n){return A.from(t.settings[n]).filter(e)},ll=V.curry(cl,E.isString),fl=function(e,t,n,r){var o,i,a,u=t in e.settings?e.settings[t]:n;return"hash"===r?(a={},"string"==typeof(i=u)?H.each(0<i.indexOf("=")?i.split(/[;,](?![^=;,]*(?:[;,]|$))/):i.split(","),function(e){var t=e.split("=");1<t.length?a[Lt.trim(t[0])]=Lt.trim(t[1]):a[Lt.trim(t[0])]=Lt.trim(t)}):a=i,a):"string"===r?cl(E.isString,e,t).getOr(n):"number"===r?cl(E.isNumber,e,t).getOr(n):"boolean"===r?cl(E.isBoolean,e,t).getOr(n):"object"===r?cl(E.isObject,e,t).getOr(n):"array"===r?cl(E.isArray,e,t).getOr(n):"string[]"===r?cl((o=E.isString,function(e){return E.isArray(e)&&H.forall(e,o)}),e,t).getOr(n):"function"===r?cl(E.isFunction,e,t).getOr(n):u},dl=/[\u0591-\u07FF\uFB1D-\uFDFF\uFE70-\uFEFC]/,ml=function(e,t){var n=t.container(),r=t.offset();return e?Ri(n)?Ao.isText(n.nextSibling)?Ba(n.nextSibling,0):Ba.after(n):Di(t)?Ba(n,r+1):t:Ri(n)?Ao.isText(n.previousSibling)?Ba(n.previousSibling,n.previousSibling.data.length):Ba.before(n):Oi(t)?Ba(n,r-1):t},pl={isInlineTarget:function(e,t){var n=ll(e,"inline_boundaries_selector").getOr("a[href],code");return Br.is(qn.fromDom(t),n)},findRootInline:function(e,t,n){var r,o,i,a=(r=e,o=t,i=n,H.filter(di.DOM.getParents(i.container(),"*",o),r));return A.from(a[a.length-1])},isRtl:function(e){return"rtl"===di.DOM.getStyle(e,"direction",!0)||(t=e.textContent,dl.test(t));var t},isAtZwsp:function(e){return Di(e)||Oi(e)},normalizePosition:ml,normalizeForwards:V.curry(ml,!0),normalizeBackwards:V.curry(ml,!1),hasSameParentBlock:function(e,t,n){var r=ms(t,e),o=ms(n,e);return r&&r===o}},gl=function(e,t){return Or.contains(e,t)?el.closest(t,function(e){return fo(e)||po(e)},(n=e,function(e){return Or.eq(n,qn.fromDom(e.dom().parentNode))})):A.none();var n},hl=function(e){var t,n,r;e.dom.isEmpty(e.getBody())&&(e.setContent(""),n=(t=e).getBody(),r=n.firstChild&&t.dom.isBlock(n.firstChild)?n.firstChild:n,t.selection.setCursorLocation(r,0))},vl=function(i,a,u){return sa([Ka.firstPositionIn(u),Ka.lastPositionIn(u)],function(e,t){var n=pl.normalizePosition(!0,e),r=pl.normalizePosition(!1,t),o=pl.normalizePosition(!1,a);return i?Ka.nextPosition(u,o).map(function(e){return e.isEqual(r)&&a.isEqual(n)}).getOr(!1):Ka.prevPosition(u,o).map(function(e){return e.isEqual(n)&&a.isEqual(r)}).getOr(!1)}).getOr(!0)},yl=function(e,t,n){return el.ancestor(e,function(e){return Br.is(e,t)},n)},bl=yl,Cl=function(e,t){return Br.one(t,e)},xl=function(e,t,n){return Gc(Br.is,yl,e,t,n)},wl=function(e,t,n){return bl(e,t,n).isSome()},Nl=function(e,t){return Ao.isText(t)&&/^[ \t\r\n]*$/.test(t.data)&&!1===(n=e,r=t,o=qn.fromDom(n),i=qn.fromDom(r),wl(i,"pre,code",V.curry(Or.eq,o)));var n,r,o,i},El=function(e,t){return Wi(t)&&!1===Nl(e,t)||(n=t,Ao.isElement(n)&&"A"===n.nodeName&&n.hasAttribute("name"))||Sl(t);var n},Sl=Ao.hasAttribute("data-mce-bookmark"),kl=Ao.hasAttribute("data-mce-bogus"),Tl=Ao.hasAttributeValue("data-mce-bogus","all"),Al=function(e){return function(e){var t,n,r=0;if(El(e,e))return!1;if(!(n=e.firstChild))return!0;t=new no(n,e);do{if(Tl(n))n=t.next(!0);else if(kl(n))n=t.next();else if(Ao.isBr(n))r++,n=t.next();else{if(El(e,n))return!1;n=t.next()}}while(n);return r<=1}(e.dom())},Rl=wr.immutable("block","position"),Bl=wr.immutable("from","to"),_l=function(e,t){var n=qn.fromDom(e),r=qn.fromDom(t.container());return gl(n,r).map(function(e){return Rl(e,t)})},Dl=function(o,i,e){var t=_l(o,Ba.fromRangeStart(e)),n=t.bind(function(e){return Ka.fromPosition(i,o,e.position()).bind(function(e){return _l(o,e).map(function(e){return t=o,n=i,r=e,Ao.isBr(r.position().getNode())&&!1===Al(r.block())?Ka.positionIn(!1,r.block().dom()).bind(function(e){return e.isEqual(r.position())?Ka.fromPosition(n,t,e).bind(function(e){return _l(t,e)}):A.some(r)}).getOr(r):r;var t,n,r})})});return sa([t,n],Bl).filter(function(e){return r=e,!1===Or.eq(r.from().block(),r.to().block())&&(n=e,qr.parent(n.from().block()).bind(function(t){return qr.parent(n.to().block()).filter(function(e){return Or.eq(t,e)})}).isSome())&&(t=e,!1===Ao.isContentEditableFalse(t.from().block())&&!1===Ao.isContentEditableFalse(t.to().block()));var t,n,r})},Ol=function(e,t,n){return n.collapsed?Dl(e,t,n):A.none()},Pl=function(e,t,n){return Or.contains(t,e)?qr.parents(e,function(e){return n(e)||Or.eq(e,t)}).slice(0,-1):[]},Ll=function(e,t){return Pl(e,t,V.constant(!1))},Il=Ll,Ml=function(e,t){return[e].concat(Ll(e,t))},Fl=function(e){var t,n,r=(t=e,n=qr.children(t),H.findIndex(n,so).fold(function(){return n},function(e){return n.slice(0,e)}));return H.each(r,function(e){Ic.remove(e)}),r},zl=function(e,t){Ka.positionIn(e,t.dom()).each(function(e){var t=e.getNode();Ao.isBr(t)&&Ic.remove(qn.fromDom(t))})},Ul=function(e,t){var n=Ml(t,e);return H.find(n.reverse(),Al).each(Ic.remove)},ql=function(o,i){return Or.contains(i,o)?qr.parent(o).bind(function(e){return Or.eq(e,i)?A.some(o):(t=i,n=o,r=qr.parents(n,function(e){return Or.eq(e,t)}),A.from(r[r.length-2]));var t,n,r}):A.none()},Vl=function(n,r,o){if(Al(o))return Ic.remove(o),Al(r)&&Uc(r),Ka.firstPositionIn(r.dom());zl(!0,r),zl(!1,o);var i=Fl(r);return ql(r,o).fold(function(){Ul(n,r);var e=Ka.lastPositionIn(o.dom());return H.each(i,function(e){Fu.append(o,e)}),e},function(t){var e=Ka.prevPosition(o.dom(),Ba.before(t.dom()));return H.each(i,function(e){Fu.before(t,e)}),Ul(n,r),e})},Hl=function(e,t,n,r){return t?Vl(e,r,n):Vl(e,n,r)},jl=function(t,n){var e,r=qn.fromDom(t.getBody());return(e=Ol(r.dom(),n,t.selection.getRng()).bind(function(e){return Hl(r,n,e.from().block(),e.to().block())})).each(function(e){t.selection.setRng(e.toRange())}),e.isSome()},$l=function(e,t){var n=qn.fromDom(t),r=V.curry(Or.eq,e);return el.ancestor(n,vo,r).isSome()},Wl=function(e,t){var n,r,o=Ka.prevPosition(e.dom(),Ba.fromRangeStart(t)).isNone(),i=Ka.nextPosition(e.dom(),Ba.fromRangeEnd(t)).isNone();return!($l(n=e,(r=t).startContainer)||$l(n,r.endContainer))&&o&&i},Kl=function(e){var n,r,o,t,i=qn.fromDom(e.getBody()),a=e.selection.getRng();return Wl(i,a)?((t=e).setContent(""),t.selection.setCursorLocation(),!0):(n=i,r=e.selection,o=r.getRng(),sa([gl(n,qn.fromDom(o.startContainer)),gl(n,qn.fromDom(o.endContainer))],function(e,t){return!1===Or.eq(e,t)&&(o.deleteContents(),Hl(n,!0,e,t).each(function(e){r.setRng(e.toRange())}),!0)}).getOr(!1))},Xl=function(e,t){return!e.selection.isCollapsed()&&Kl(e)},Yl=function(a){if(!E.isArray(a))throw new Error("cases must be an array");if(0===a.length)throw new Error("there must be at least one case");var u=[],n={};return H.each(a,function(e,r){var t=or.keys(e);if(1!==t.length)throw new Error("one and only one name per case");var o=t[0],i=e[o];if(n[o]!==undefined)throw new Error("duplicate key detected:"+o);if("cata"===o)throw new Error("cannot have a case named cata (sorry)");if(!E.isArray(i))throw new Error("case arguments must be an array");u.push(o),n[o]=function(){var e=arguments.length;if(e!==i.length)throw new Error("Wrong number of arguments to case "+o+". Expected "+i.length+" ("+i+"), got "+e);for(var n=new Array(e),t=0;t<n.length;t++)n[t]=arguments[t];return{fold:function(){if(arguments.length!==a.length)throw new Error("Wrong number of arguments to fold. Expected "+a.length+", got "+arguments.length);return arguments[r].apply(null,n)},match:function(e){var t=or.keys(e);if(u.length!==t.length)throw new Error("Wrong number of arguments to match. Expected: "+u.join(",")+"\nActual: "+t.join(","));if(!H.forall(u,function(e){return H.contains(t,e)}))throw new Error("Not all branches were specified when using match. Specified: "+t.join(", ")+"\nRequired: "+u.join(", "));return e[o].apply(null,n)},log:function(e){console.log(e,{constructors:u,constructor:o,params:n})}}}}),n},Gl=Yl([{remove:["element"]},{moveToElement:["element"]},{moveToPosition:["position"]}]),Jl=function(e,t,n,r){var o=r.getNode(!1===t);return gl(qn.fromDom(e),qn.fromDom(n.getNode())).map(function(e){return Al(e)?Gl.remove(e.dom()):Gl.moveToElement(o)}).orThunk(function(){return A.some(Gl.moveToElement(o))})},Ql=function(u,s,c){return Ka.fromPosition(s,u,c).bind(function(e){return a=e.getNode(),vo(qn.fromDom(a))||po(qn.fromDom(a))?A.none():(t=u,o=e,i=function(e){return co(qn.fromDom(e))&&!ps(r,o,t)},Ns(!(n=s),r=c).fold(function(){return Ns(n,o).fold(V.constant(!1),i)},i)?A.none():s&&Ao.isContentEditableFalse(e.getNode())?Jl(u,s,c,e):!1===s&&Ao.isContentEditableFalse(e.getNode(!0))?Jl(u,s,c,e):s&&ks(c)?A.some(Gl.moveToPosition(e)):!1===s&&Ss(c)?A.some(Gl.moveToPosition(e)):A.none());var t,n,r,o,i,a})},Zl=function(r,e,o){return i=e,a=o.getNode(!1===i),u=i?"after":"before",Ao.isElement(a)&&a.getAttribute("data-mce-caret")===u?(t=e,n=o.getNode(!1===e),t&&Ao.isContentEditableFalse(n.nextSibling)?A.some(Gl.moveToElement(n.nextSibling)):!1===t&&Ao.isContentEditableFalse(n.previousSibling)?A.some(Gl.moveToElement(n.previousSibling)):A.none()).fold(function(){return Ql(r,e,o)},A.some):Ql(r,e,o).bind(function(e){return t=r,n=o,e.fold(function(e){return A.some(Gl.remove(e))},function(e){return A.some(Gl.moveToElement(e))},function(e){return ps(n,e,t)?A.none():A.some(Gl.moveToPosition(e))});var t,n});var t,n,i,a,u},ef=function(e,t){return r=e,o=(n=t).container(),i=n.offset(),!1===Ba.isTextPosition(n)&&o===r.parentNode&&i>Ba.before(r).offset()?Ba(t.container(),t.offset()-1):t;var n,r,o,i},tf=function(e){return Wi(e.previousSibling)?A.some((t=e.previousSibling,Ao.isText(t)?Ba(t,t.data.length):Ba.after(t))):e.previousSibling?Ka.lastPositionIn(e.previousSibling):A.none();var t},nf=function(e){return Wi(e.nextSibling)?A.some((t=e.nextSibling,Ao.isText(t)?Ba(t,0):Ba.before(t))):e.nextSibling?Ka.firstPositionIn(e.nextSibling):A.none();var t},rf=function(r,o){return tf(o).orThunk(function(){return nf(o)}).orThunk(function(){return e=r,t=o,n=Ba.before(t.previousSibling?t.previousSibling:t.parentNode),Ka.prevPosition(e,n).fold(function(){return Ka.nextPosition(e,Ba.after(t))},A.some);var e,t,n})},of=function(n,r){return nf(r).orThunk(function(){return tf(r)}).orThunk(function(){return e=n,t=r,Ka.nextPosition(e,Ba.after(t)).fold(function(){return Ka.prevPosition(e,Ba.before(t))},A.some);var e,t})},af=function(e,t,n){return(r=e,o=t,i=n,r?of(o,i):rf(o,i)).map(V.curry(ef,n));var r,o,i},uf=function(t,n,e){e.fold(function(){t.focus()},function(e){t.selection.setRng(e.toRange(),n)})},sf=function(e,t){return t&&e.schema.getBlockElements().hasOwnProperty(Qn.name(t))},cf=function(e){if(Al(e)){var t=qn.fromHtml('<br data-mce-bogus="1">');return Ic.empty(e),Fu.append(e,t),A.some(Ba.before(t.dom()))}return A.none()},lf=function(t,n,e){var r,a,o,i=af(n,t.getBody(),e.dom()),u=el.ancestor(e,V.curry(sf,t),(r=t.getBody(),function(e){return e.dom()===r})),s=(a=e,o=i,sa([qr.prevSibling(a),qr.nextSibling(a),o],function(e,t,n){var r,o=e.dom(),i=t.dom();return Ao.isText(o)&&Ao.isText(i)?(r=o.data.length,o.appendData(i.data),Ic.remove(t),Ic.remove(a),n.container()===i?Ba(o,r):n):(Ic.remove(a),n)}).orThunk(function(){return Ic.remove(a),o}));t.dom.isEmpty(t.getBody())?(t.setContent(""),t.selection.setCursorLocation()):u.bind(cf).fold(function(){uf(t,n,s)},function(e){uf(t,n,A.some(e))})},ff=function(a,u){var e,t,n,r,o;return(e=a.getBody(),t=u,n=a.selection.getRng(),r=Cs(t?1:-1,e,n),o=Ba.fromRangeStart(r),!1===t&&ks(o)?A.some(Gl.remove(o.getNode(!0))):t&&Ss(o)?A.some(Gl.remove(o.getNode())):Zl(e,t,o)).map(function(e){return e.fold((o=a,i=u,function(e){return o._selectionOverrides.hideFakeCaret(),lf(o,i,qn.fromDom(e)),!0}),(n=a,r=u,function(e){var t=r?Ba.before(e):Ba.after(e);return n.selection.setRng(t.toRange()),!0}),(t=a,function(e){return t.selection.setRng(e.toRange()),!0}));var t,n,r,o,i}).getOr(!1)},df=function(e,t){var n,r=e.selection.getNode();return!!Ao.isContentEditableFalse(r)&&(n=qn.fromDom(e.getBody()),H.each(fu(n,".mce-offscreen-selection"),Ic.remove),lf(e,t,qn.fromDom(e.selection.getNode())),hl(e),!0)},mf=function(e,t){return e.selection.isCollapsed()?ff(e,t):df(e,t)},pf=function(e){var t,n=function(e,t){for(;t&&t!==e;){if(Ao.isContentEditableTrue(t)||Ao.isContentEditableFalse(t))return t;t=t.parentNode}return null}(e.getBody(),e.selection.getNode());return Ao.isContentEditableTrue(n)&&e.dom.isBlock(n)&&e.dom.isEmpty(n)&&(t=e.dom.create("br",{"data-mce-bogus":"1"}),e.dom.setHTML(n,""),n.appendChild(t),e.selection.setRng(Ba.before(t).toRange())),!0},gf=Ao.isText,hf=function(e){return gf(e)&&e.data[0]===Ei},vf=function(e){return gf(e)&&e.data[e.data.length-1]===Ei},yf=function(e){return e.ownerDocument.createTextNode(Ei)},bf=function(e,t){return e?function(e){if(gf(e.previousSibling))return vf(e.previousSibling)||e.previousSibling.appendData(Ei),e.previousSibling;if(gf(e))return hf(e)||e.insertData(0,Ei),e;var t=yf(e);return e.parentNode.insertBefore(t,e),t}(t):function(e){if(gf(e.nextSibling))return hf(e.nextSibling)||e.nextSibling.insertData(0,Ei),e.nextSibling;if(gf(e))return vf(e)||e.appendData(Ei),e;var t=yf(e);return e.nextSibling?e.parentNode.insertBefore(t,e.nextSibling):e.parentNode.appendChild(t),t}(t)},Cf=V.curry(bf,!0),xf=V.curry(bf,!1),wf=function(e,t){return Ao.isText(e.container())?bf(t,e.container()):bf(t,e.getNode())},Nf=function(e,t){var n=t.get();return n&&e.container()===n&&Ri(n)},Ef=function(n,e){return e.fold(function(e){Ua.remove(n.get());var t=Cf(e);return n.set(t),A.some(Ba(t,t.length-1))},function(e){return Ka.firstPositionIn(e).map(function(e){if(Nf(e,n))return Ba(n.get(),1);Ua.remove(n.get());var t=wf(e,!0);return n.set(t),Ba(t,1)})},function(e){return Ka.lastPositionIn(e).map(function(e){if(Nf(e,n))return Ba(n.get(),n.get().length-1);Ua.remove(n.get());var t=wf(e,!1);return n.set(t),Ba(t,t.length-1)})},function(e){Ua.remove(n.get());var t=xf(e);return n.set(t),A.some(Ba(t,1))})},Sf=function(e,t){for(var n=0;n<e.length;n++){var r=e[n].apply(null,t);if(r.isSome())return r}return A.none()},kf=Yl([{before:["element"]},{start:["element"]},{end:["element"]},{after:["element"]}]),Tf=function(e,t){var n=ms(t,e);return n||e},Af=function(e,t,n){var r=pl.normalizeForwards(n),o=Tf(t,r.container());return pl.findRootInline(e,o,r).fold(function(){return Ka.nextPosition(o,r).bind(V.curry(pl.findRootInline,e,o)).map(function(e){return kf.before(e)})},A.none)},Rf=function(e,t){return null===wc(e,t)},Bf=function(e,t,n){return pl.findRootInline(e,t,n).filter(V.curry(Rf,t))},_f=function(e,t,n){var r=pl.normalizeBackwards(n);return Bf(e,t,r).bind(function(e){return Ka.prevPosition(e,r).isNone()?A.some(kf.start(e)):A.none()})},Df=function(e,t,n){var r=pl.normalizeForwards(n);return Bf(e,t,r).bind(function(e){return Ka.nextPosition(e,r).isNone()?A.some(kf.end(e)):A.none()})},Of=function(e,t,n){var r=pl.normalizeBackwards(n),o=Tf(t,r.container());return pl.findRootInline(e,o,r).fold(function(){return Ka.prevPosition(o,r).bind(V.curry(pl.findRootInline,e,o)).map(function(e){return kf.after(e)})},A.none)},Pf=function(e){return!1===pl.isRtl(If(e))},Lf=function(e,t,n){return Sf([Af,_f,Df,Of],[e,t,n]).filter(Pf)},If=function(e){return e.fold(V.identity,V.identity,V.identity,V.identity)},Mf=function(e){return e.fold(V.constant("before"),V.constant("start"),V.constant("end"),V.constant("after"))},Ff=function(e){return e.fold(kf.before,kf.before,kf.after,kf.after)},zf=function(n,e,r,t,o,i){return sa([pl.findRootInline(e,r,t),pl.findRootInline(e,r,o)],function(e,t){return e!==t&&pl.hasSameParentBlock(r,e,t)?kf.after(n?e:t):i}).getOr(i)},Uf=function(e,r){return e.fold(V.constant(!0),function(e){return n=r,!(Mf(t=e)===Mf(n)&&If(t)===If(n));var t,n})},qf=function(e,t){return e?t.fold(V.compose(A.some,kf.start),A.none,V.compose(A.some,kf.after),A.none):t.fold(A.none,V.compose(A.some,kf.before),A.none,V.compose(A.some,kf.end))},Vf=function(a,u,s,c){var e=pl.normalizePosition(a,c),l=Lf(u,s,e);return Lf(u,s,e).bind(V.curry(qf,a)).orThunk(function(){return t=a,n=u,r=s,o=l,e=c,i=pl.normalizePosition(t,e),Ka.fromPosition(t,r,i).map(V.curry(pl.normalizePosition,t)).fold(function(){return o.map(Ff)},function(e){return Lf(n,r,e).map(V.curry(zf,t,n,r,i,e)).filter(V.curry(Uf,o))}).filter(Pf);var t,n,r,o,e,i})},Hf=Lf,jf=Vf,$f=(V.curry(Vf,!1),V.curry(Vf,!0),Ff),Wf=function(e){return e.fold(kf.start,kf.start,kf.end,kf.end)},Kf=function(e){return E.isFunction(e.selection.getSel().modify)},Xf=function(e,t,n){var r=e?1:-1;return t.setRng(Ba(n.container(),n.offset()+r).toRange()),t.getSel().modify("move",e?"forward":"backward","word"),!0},Yf=function(e,t){var n=t.selection.getRng(),r=e?Ba.fromRangeEnd(n):Ba.fromRangeStart(n);return!!Kf(t)&&(e&&Di(r)?Xf(!0,t.selection,r):!(e||!Oi(r))&&Xf(!1,t.selection,r))},Gf=function(e,t){var n=e.dom.createRng();n.setStart(t.container(),t.offset()),n.setEnd(t.container(),t.offset()),e.selection.setRng(n)},Jf=function(e){return!1!==e.settings.inline_boundaries},Qf=function(e,t){e?t.setAttribute("data-mce-selected","inline-boundary"):t.removeAttribute("data-mce-selected")},Zf=function(t,e,n){return Ef(e,n).map(function(e){return Gf(t,e),n})},ed=function(e,t,n){return function(){return!!Jf(t)&&Yf(e,t)}},td={move:function(a,u,s){return function(){return!!Jf(a)&&(t=a,n=u,e=s,r=t.getBody(),o=Ba.fromRangeStart(t.selection.getRng()),i=V.curry(pl.isInlineTarget,t),jf(e,i,r,o).bind(function(e){return Zf(t,n,e)})).isSome();var t,n,e,r,o,i}},moveNextWord:V.curry(ed,!0),movePrevWord:V.curry(ed,!1),setupSelectedState:function(a){var u=Ju(null),s=V.curry(pl.isInlineTarget,a);return a.on("NodeChange",function(e){var t,n,r,o,i;Jf(a)&&(t=s,n=a.dom,r=e.parents,o=H.filter(n.select('*[data-mce-selected="inline-boundary"]'),t),i=H.filter(r,t),H.each(H.difference(o,i),V.curry(Qf,!1)),H.each(H.difference(i,o),V.curry(Qf,!0)),function(e,t){if(e.selection.isCollapsed()&&!0!==e.composing&&t.get()){var n=Ba.fromRangeStart(e.selection.getRng());Ba.isTextPosition(n)&&!1===pl.isAtZwsp(n)&&(Gf(e,Ua.removeAndReposition(t.get(),n)),t.set(null))}}(a,u),function(n,r,o,e){if(r.selection.isCollapsed()){var t=H.filter(e,n);H.each(t,function(e){var t=Ba.fromRangeStart(r.selection.getRng());Hf(n,r.getBody(),t).bind(function(e){return Zf(r,o,e)})})}}(s,a,u,e.parents))}),u},setCaretPosition:Gf},nd=function(t,n){return function(e){return Ef(n,e).map(function(e){return td.setCaretPosition(t,e),!0}).getOr(!1)}},rd=function(r,o,i,a){var u=r.getBody(),s=V.curry(pl.isInlineTarget,r);r.undoManager.ignore(function(){var e,t,n;r.selection.setRng((e=i,t=a,(n=document.createRange()).setStart(e.container(),e.offset()),n.setEnd(t.container(),t.offset()),n)),r.execCommand("Delete"),Hf(s,u,Ba.fromRangeStart(r.selection.getRng())).map(Wf).map(nd(r,o))}),r.nodeChanged()},od=function(n,r,i,o){var e,t,a=(e=n.getBody(),t=o.container(),ms(t,e)||e),u=V.curry(pl.isInlineTarget,n),s=Hf(u,a,o);return s.bind(function(e){return i?e.fold(V.constant(A.some(Wf(e))),A.none,V.constant(A.some($f(e))),A.none):e.fold(A.none,V.constant(A.some($f(e))),A.none,V.constant(A.some(Wf(e))))}).map(nd(n,r)).getOrThunk(function(){var t=Ka.navigate(i,a,o),e=t.bind(function(e){return Hf(u,a,e)});return s.isSome()&&e.isSome()?pl.findRootInline(u,a,o).map(function(e){return o=e,!!sa([Ka.firstPositionIn(o),Ka.lastPositionIn(o)],function(e,t){var n=pl.normalizePosition(!0,e),r=pl.normalizePosition(!1,t);return Ka.nextPosition(o,n).map(function(e){return e.isEqual(r)}).getOr(!0)}).getOr(!0)&&(lf(n,i,qn.fromDom(e)),!0);var o}).getOr(!1):e.bind(function(e){return t.map(function(e){return i?rd(n,r,o,e):rd(n,r,e,o),!0})}).getOr(!1)})},id=function(e,t,n){if(e.selection.isCollapsed()&&!1!==e.settings.inline_boundaries){var r=Ba.fromRangeStart(e.selection.getRng());return od(e,t,n,r)}return!1},ad=wr.immutable("start","end"),ud=wr.immutable("rng","table","cells"),sd=Yl([{removeTable:["element"]},{emptyCells:["cells"]}]),cd=function(e,t){return xl(qn.fromDom(e),"td,th",t)},ld=function(e,t){return bl(e,"table",t)},fd=function(e){return!1===Or.eq(e.start(),e.end())},dd=function(e,n){return ld(e.start(),n).bind(function(t){return ld(e.end(),n).bind(function(e){return Or.eq(t,e)?A.some(t):A.none()})})},md=function(e){return fu(e,"td,th")},pd=function(r,e){var t=cd(e.startContainer,r),n=cd(e.endContainer,r);return e.collapsed?A.none():sa([t,n],ad).fold(function(){return t.fold(function(){return n.bind(function(t){return ld(t,r).bind(function(e){return H.head(md(e)).map(function(e){return ad(e,t)})})})},function(t){return ld(t,r).bind(function(e){return H.last(md(e)).map(function(e){return ad(t,e)})})})},function(e){return gd(r,e)?A.none():(n=r,ld((t=e).start(),n).bind(function(e){return H.last(md(e)).map(function(e){return ad(t.start(),e)})}));var t,n})},gd=function(e,t){return dd(t,e).isSome()},hd=function(e,t){var n,r,o,i,a,u=(n=e,V.curry(Or.eq,n));return(r=t,o=u,i=cd(r.startContainer,o),a=cd(r.endContainer,o),sa([i,a],ad).filter(fd).filter(function(e){return gd(o,e)}).orThunk(function(){return pd(o,r)})).bind(function(e){return dd(t=e,u).map(function(e){return ud(t,e,md(e))});var t})},vd=function(e,t){return H.findIndex(e,function(e){return Or.eq(e,t)})},yd=function(n){return(r=n,sa([vd(r.cells(),r.rng().start()),vd(r.cells(),r.rng().end())],function(e,t){return r.cells().slice(e,t+1)})).map(function(e){var t=n.cells();return e.length===t.length?sd.removeTable(n.table()):sd.emptyCells(e)});var r},bd=function(e,t){return hd(e,t).bind(yd)},Cd=function(e){var t=[];if(e)for(var n=0;n<e.rangeCount;n++)t.push(e.getRangeAt(n));return t},xd=Cd,wd=function(e){return H.bind(e,function(e){var t=ta(e);return t?[qn.fromDom(t)]:[]})},Nd=function(e){return 1<Cd(e).length},Ed=function(e){return H.filter(wd(e),vo)},Sd=function(e){return fu(e,"td[data-mce-selected],th[data-mce-selected]")},kd=function(e,t){var n=Sd(t),r=Ed(e);return 0<n.length?n:r},Td=kd,Ad=function(e){return kd(xd(e.selection.getSel()),qn.fromDom(e.getBody()))},Rd=function(e,t){return H.each(t,Uc),e.selection.setCursorLocation(t[0].dom(),0),!0},Bd=function(e,t){return lf(e,!1,t),!0},_d=function(n,e,r,t){return Od(e,t).fold(function(){return t=n,bd(e,r).map(function(e){return e.fold(V.curry(Bd,t),V.curry(Rd,t))});var t},function(e){return Pd(n,e)}).getOr(!1)},Dd=function(e,t){return H.find(Ml(t,e),vo)},Od=function(e,t){return H.find(Ml(t,e),function(e){return"caption"===Qn.name(e)})},Pd=function(e,t){return Uc(t),e.selection.setCursorLocation(t.dom(),0),A.some(!0)},Ld=function(u,s,c,l,f){return Ka.navigate(c,u.getBody(),f).bind(function(e){return r=l,o=c,i=f,a=e,Ka.firstPositionIn(r.dom()).bind(function(t){return Ka.lastPositionIn(r.dom()).map(function(e){return o?i.isEqual(t)&&a.isEqual(e):i.isEqual(e)&&a.isEqual(t)})}).getOr(!0)?Pd(u,l):(t=l,n=e,Od(s,qn.fromDom(n.getNode())).map(function(e){return!1===Or.eq(e,t)}));var t,n,r,o,i,a}).or(A.some(!0))},Id=function(a,u,s,e){var c=Ba.fromRangeStart(a.selection.getRng());return Dd(s,e).bind(function(e){return Al(e)?Pd(a,e):(t=a,n=s,r=u,o=e,i=c,Ka.navigate(r,t.getBody(),i).bind(function(e){return Dd(n,qn.fromDom(e.getNode())).map(function(e){return!1===Or.eq(e,o)})}));var t,n,r,o,i})},Md=function(a,u,e){var s=qn.fromDom(a.getBody());return Od(s,e).fold(function(){return Id(a,u,s,e)},function(e){return t=a,n=u,r=s,o=e,i=Ba.fromRangeStart(t.selection.getRng()),Al(o)?Pd(t,o):Ld(t,r,n,o,i);var t,n,r,o,i}).getOr(!1)},Fd=function(e,t){var n,r,o,i,a,u=qn.fromDom(e.selection.getStart(!0)),s=Ad(e);return e.selection.isCollapsed()&&0===s.length?Md(e,t,u):(n=e,r=u,o=qn.fromDom(n.getBody()),i=n.selection.getRng(),0!==(a=Ad(n)).length?Rd(n,a):_d(n,o,i,r))},zd=function(e,t){e.getDoc().execCommand(t,!1,null)},Ud={deleteCommand:function(e){mf(e,!1)||id(e,!1)||jl(e,!1)||Fd(e)||Xl(e,!1)||(zd(e,"Delete"),hl(e))},forwardDeleteCommand:function(e){mf(e,!0)||id(e,!0)||jl(e,!0)||Fd(e)||Xl(e,!0)||zd(e,"ForwardDelete")}},qd=function(s){return function(u,e){return A.from(e).map(qn.fromDom).filter(Qn.isElement).bind(function(e){return(r=s,o=u,i=e.dom(),a=function(e){return br(e,r)},el.closest(qn.fromDom(i),function(e){return a(e).isSome()},function(e){return Or.eq(qn.fromDom(o),e)}).bind(a)).or((t=s,n=e.dom(),A.from(di.DOM.getStyle(n,t,!0))));var t,n,r,o,i,a}).getOr("")}},Vd={getFontSize:qd("font-size"),getFontFamily:V.compose(function(e){return e.replace(/[\'\"\\]/g,"").replace(/,\s+/g,",")},qd("font-family")),toPt:function(e,t){return/[0-9.]+px$/.test(e)?(n=72*parseInt(e,10)/96,r=t||0,o=Math.pow(10,r),Math.round(n*o)/o+"pt"):e;var n,r,o}},Hd=function(e){return Ka.firstPositionIn(e.getBody()).map(function(e){var t=e.container();return Ao.isText(t)?t.parentNode:t})},jd=function(o){return A.from(o.selection.getRng()).bind(function(e){var t,n,r=o.getBody();return n=r,(t=e).startContainer===n&&0===t.startOffset?A.none():A.from(o.selection.getStart(!0))})},$d=function(e,t){var n=parseInt(t,10);if(1<=n&&n<=7){var r=Pu(e),o=Lu(e);return o?o[n-1]||t:r[n-1]||t}return t},Wd=function(e,t){e.formatter.toggle("fontname",{value:$d(e,t)}),e.nodeChanged()},Kd=function(t){return jd(t).fold(function(){return Hd(t).map(function(e){return Vd.getFontFamily(t.getBody(),e)}).getOr("")},function(e){return Vd.getFontFamily(t.getBody(),e)})},Xd=function(e,t){e.formatter.toggle("fontsize",{value:$d(e,t)}),e.nodeChanged()},Yd=function(t){return jd(t).fold(function(){return Hd(t).map(function(e){return Vd.getFontSize(t.getBody(),e)}).getOr("")},function(e){return Vd.getFontSize(t.getBody(),e)})},Gd={isEq:function(e,t){return e&&t&&e.startContainer===t.startContainer&&e.startOffset===t.startOffset&&e.endContainer===t.endContainer&&e.endOffset===t.endOffset}},Jd=function(e,t,n){return null!==function(e,t,n){for(;e&&e!==t;){if(n(e))return e;e=e.parentNode}return null}(e,t,n)},Qd=function(e,t,n){return Jd(e,t,function(e){return e.nodeName===n})},Zd=function(e){return e&&"TABLE"===e.nodeName},em=function(e,t,n){for(var r=new no(t,e.getParent(t.parentNode,e.isBlock)||e.getRoot());t=r[n?"prev":"next"]();)if(Ao.isBr(t))return!0},tm=function(e,t,n,r,o){var i,a,u,s,c,l,f=e.getRoot(),d=e.schema.getNonEmptyElements();if(u=e.getParent(o.parentNode,e.isBlock)||f,r&&Ao.isBr(o)&&t&&e.isEmpty(u))return A.some(Ta(o.parentNode,e.nodeIndex(o)));for(i=new no(o,u);s=i[r?"prev":"next"]();){if("false"===e.getContentEditableParent(s)||(l=f,Bi(c=s)&&!1===Jd(c,l,xc)))return A.none();if(Ao.isText(s)&&0<s.nodeValue.length)return!1===Qd(s,f,"A")?A.some(Ta(s,r?s.nodeValue.length:0)):A.none();if(e.isBlock(s)||d[s.nodeName.toLowerCase()])return A.none();a=s}return n&&a?A.some(Ta(a,0)):A.none()},nm=function(e,t,n,r){var o,i,a,u,s,c,l,f,d,m,p=e.getRoot(),g=!1;if(o=r[(n?"start":"end")+"Container"],i=r[(n?"start":"end")+"Offset"],l=Ao.isElement(o)&&i===o.childNodes.length,s=e.schema.getNonEmptyElements(),c=n,Bi(o))return A.none();if(Ao.isElement(o)&&i>o.childNodes.length-1&&(c=!1),Ao.isDocument(o)&&(o=p,i=0),o===p){if(c&&(u=o.childNodes[0<i?i-1:0])){if(Bi(u))return A.none();if(s[u.nodeName]||Zd(u))return A.none()}if(o.hasChildNodes()){if(i=Math.min(!c&&0<i?i-1:i,o.childNodes.length-1),o=o.childNodes[i],i=Ao.isText(o)&&l?o.data.length:0,!t&&o===p.lastChild&&Zd(o))return A.none();if(function(e,t){for(;t&&t!==e;){if(Ao.isContentEditableFalse(t))return!0;t=t.parentNode}return!1}(p,o)||Bi(o))return A.none();if(o.hasChildNodes()&&!1===Zd(o)){a=new no(u=o,p);do{if(Ao.isContentEditableFalse(u)||Bi(u)){g=!1;break}if(Ao.isText(u)&&0<u.nodeValue.length){i=c?0:u.nodeValue.length,o=u,g=!0;break}if(s[u.nodeName.toLowerCase()]&&(!(f=u)||!/^(TD|TH|CAPTION)$/.test(f.nodeName))){i=e.nodeIndex(u),o=u.parentNode,c||i++,g=!0;break}}while(u=c?a.next():a.prev())}}}return t&&(Ao.isText(o)&&0===i&&tm(e,l,t,!0,o).each(function(e){o=e.container(),i=e.offset(),g=!0}),Ao.isElement(o)&&((u=o.childNodes[i])||(u=o.childNodes[i-1]),!u||!Ao.isBr(u)||(m="A",(d=u).previousSibling&&d.previousSibling.nodeName===m)||em(e,u,!1)||em(e,u,!0)||tm(e,l,t,!0,u).each(function(e){o=e.container(),i=e.offset(),g=!0}))),c&&!t&&Ao.isText(o)&&i===o.nodeValue.length&&tm(e,l,t,!1,o).each(function(e){o=e.container(),i=e.offset(),g=!0}),g?A.some(Ta(o,i)):A.none()},rm={normalize:function(e,t){var n=t.collapsed,r=t.cloneRange(),o=Ta.fromRangeStart(t);return nm(e,n,!0,r).each(function(e){n&&Ta.isAbove(o,e)||r.setStart(e.container(),e.offset())}),n||nm(e,n,!1,r).each(function(e){r.setEnd(e.container(),e.offset())}),n&&r.collapse(!0),Gd.isEq(t,r)?A.none():A.some(r)}},om=function(e,t,n){var r=e.create("span",{}," ");n.parentNode.insertBefore(r,n),t.scrollIntoView(r),e.remove(r)},im=function(e,t,n,r){var o=e.createRng();r?(o.setStartBefore(n),o.setEndBefore(n)):(o.setStartAfter(n),o.setEndAfter(n)),t.setRng(o)},am=function(e,t){var n,r,o=e.selection,i=e.dom,a=o.getRng();rm.normalize(i,a).each(function(e){a.setStart(e.startContainer,e.startOffset),a.setEnd(e.endContainer,e.endOffset)});var u=a.startOffset,s=a.startContainer;if(1===s.nodeType&&s.hasChildNodes()){var c=u>s.childNodes.length-1;s=s.childNodes[Math.min(u,s.childNodes.length-1)]||s,u=c&&3===s.nodeType?s.nodeValue.length:0}var l=i.getParent(s,i.isBlock),f=l?i.getParent(l.parentNode,i.isBlock):null,d=f?f.nodeName.toUpperCase():"",m=t&&t.ctrlKey;"LI"!==d||m||(l=f),s&&3===s.nodeType&&u>=s.nodeValue.length&&(function(e,t,n){for(var r,o=new no(t,n),i=e.getNonEmptyElements();r=o.next();)if(i[r.nodeName.toLowerCase()]||0<r.length)return!0}(e.schema,s,l)||(n=i.create("br"),a.insertNode(n),a.setStartAfter(n),a.setEndAfter(n),r=!0)),n=i.create("br"),a.insertNode(n),om(i,o,n),im(i,o,n,r),e.undoManager.add()},um=function(e,t){var n=qn.fromTag("br");Fu.before(qn.fromDom(t),n),e.undoManager.add()},sm=function(e,t){cm(e.getBody(),t)||Fu.after(qn.fromDom(t),qn.fromTag("br"));var n=qn.fromTag("br");Fu.after(qn.fromDom(t),n),om(e.dom,e.selection,n.dom()),im(e.dom,e.selection,n.dom(),!1),e.undoManager.add()},cm=function(e,t){return n=Ba.after(t),!!Ao.isBr(n.getNode())||Ka.nextPosition(e,Ba.after(t)).map(function(e){return Ao.isBr(e.getNode())}).getOr(!1);var n},lm=function(e){return e&&"A"===e.nodeName&&"href"in e},fm=function(e){return e.fold(V.constant(!1),lm,lm,V.constant(!1))},dm=function(e,t){t.fold(V.noop,V.curry(um,e),V.curry(sm,e),V.noop)},mm={insert:function(e,t){var n,r,o,i=(n=e,r=V.curry(pl.isInlineTarget,n),o=Ba.fromRangeStart(n.selection.getRng()),Hf(r,n.getBody(),o).filter(fm));i.isSome()?i.each(V.curry(dm,e)):am(e,t)}},pm=Yl([{before:["element"]},{on:["element","offset"]},{after:["element"]}]),gm=(pm.before,pm.on,pm.after,function(e){return e.fold(V.identity,V.identity,V.identity)}),hm=Yl([{domRange:["rng"]},{relative:["startSitu","finishSitu"]},{exact:["start","soffset","finish","foffset"]}]),vm=wr.immutable("start","soffset","finish","foffset"),ym={domRange:hm.domRange,relative:hm.relative,exact:hm.exact,exactFromRange:function(e){return hm.exact(e.start(),e.soffset(),e.finish(),e.foffset())},range:vm,getWin:function(e){var t=e.match({domRange:function(e){return qn.fromDom(e.startContainer)},relative:function(e,t){return gm(e)},exact:function(e,t,n,r){return e}});return qr.defaultView(t)}},bm=zn.detect().browser,Cm=function(e,t){var n=Qn.isText(t)?Fc(t).length:qr.children(t).length+1;return n<e?n:e<0?0:e},xm=function(e){return ym.range(e.start(),Cm(e.soffset(),e.start()),e.finish(),Cm(e.foffset(),e.finish()))},wm=function(e,t){return Or.contains(e,t)||Or.eq(e,t)},Nm=function(t){return function(e){return wm(t,e.start())&&wm(t,e.finish())}},Em=function(e){return!0===e.inline||bm.isIE()},Sm=function(e){return ym.range(qn.fromDom(e.startContainer),e.startOffset,qn.fromDom(e.endContainer),e.endOffset)},km=function(e){var t=e.getSelection();return(t&&0!==t.rangeCount?A.from(t.getRangeAt(0)):A.none()).map(Sm)},Tm=function(e){var t=qr.defaultView(e);return km(t.dom()).filter(Nm(e))},Am=function(e,t){return A.from(t).filter(Nm(e)).map(xm)},Rm=function(e){var t=document.createRange();try{return t.setStart(e.start().dom(),e.soffset()),t.setEnd(e.finish().dom(),e.foffset()),A.some(t)}catch(n){return A.none()}},Bm=function(e){return(e.bookmark?e.bookmark:A.none()).bind(V.curry(Am,qn.fromDom(e.getBody()))).bind(Rm)},_m={store:function(e){var t=Em(e)?Tm(qn.fromDom(e.getBody())):A.none();e.bookmark=t.isSome()?t:e.bookmark},storeNative:function(e,t){var n=qn.fromDom(e.getBody()),r=(Em(e)?A.from(t):A.none()).map(Sm).filter(Nm(n));e.bookmark=r.isSome()?r:e.bookmark},readRange:km,restore:function(t){Bm(t).each(function(e){t.selection.setRng(e)})},getRng:Bm,getBookmark:Tm,validate:Am},Dm=function(e,t){var n=e.settings,r=e.dom,o=e.selection,i=e.formatter,a=/[a-z%]+$/i.exec(n.indentation)[0],u=parseInt(n.indentation,10),s=e.getParam("indent_use_margin",!1);e.queryCommandState("InsertUnorderedList")||e.queryCommandState("InsertOrderedList")||(n.forced_root_block||r.getParent(o.getNode(),r.isBlock)||i.apply("div"),H.each(o.getSelectedBlocks(),function(e){return function(e,t,n,r,o,i){if("false"!==e.getContentEditable(i)&&"LI"!==i.nodeName){var a=n?"margin":"padding";if(a="TABLE"===i.nodeName?"margin":a,a+="rtl"===e.getStyle(i,"direction",!0)?"Right":"Left","outdent"===t){var u=Math.max(0,parseInt(i.style[a]||0,10)-r);e.setStyle(i,a,u?u+o:"")}else u=parseInt(i.style[a]||0,10)+r+o,e.setStyle(i,a,u)}}(r,t,s,u,a,e)}))},Om=Lt.each,Pm=Lt.extend,Lm=Lt.map,Im=Lt.inArray;function Mm(s){var o,i,a,t,c={state:{},exec:{},value:{}},n=s.settings;s.on("PreInit",function(){o=s.dom,i=s.selection,n=s.settings,a=s.formatter});var r=function(e){var t;if(!s.quirks.isHidden()&&!s.removed){if(e=e.toLowerCase(),t=c.state[e])return t(e);try{return s.getDoc().queryCommandState(e)}catch(n){}return!1}},e=function(e,n){n=n||"exec",Om(e,function(t,e){Om(e.toLowerCase().split(","),function(e){c[n][e]=t})})},u=function(e,t,n){e=e.toLowerCase(),c.value[e]=function(){return t.call(n||s)}};Pm(this,{execCommand:function(t,n,r,e){var o,i,a=!1;if(!s.removed){if(/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(t)||e&&e.skip_focus?_m.restore(s):s.focus(),(e=s.fire("BeforeExecCommand",{command:t,ui:n,value:r})).isDefaultPrevented())return!1;if(i=t.toLowerCase(),o=c.exec[i])return o(i,n,r),s.fire("ExecCommand",{command:t,ui:n,value:r}),!0;if(Om(s.plugins,function(e){if(e.execCommand&&e.execCommand(t,n,r))return s.fire("ExecCommand",{command:t,ui:n,value:r}),!(a=!0)}),a)return a;if(s.theme&&s.theme.execCommand&&s.theme.execCommand(t,n,r))return s.fire("ExecCommand",{command:t,ui:n,value:r}),!0;try{a=s.getDoc().execCommand(t,n,r)}catch(u){}return!!a&&(s.fire("ExecCommand",{command:t,ui:n,value:r}),!0)}},queryCommandState:r,queryCommandValue:function(e){var t;if(!s.quirks.isHidden()&&!s.removed){if(e=e.toLowerCase(),t=c.value[e])return t(e);try{return s.getDoc().queryCommandValue(e)}catch(n){}}},queryCommandSupported:function(e){if(e=e.toLowerCase(),c.exec[e])return!0;try{return s.getDoc().queryCommandSupported(e)}catch(t){}return!1},addCommands:e,addCommand:function(e,o,i){e=e.toLowerCase(),c.exec[e]=function(e,t,n,r){return o.call(i||s,t,n,r)}},addQueryStateHandler:function(e,t,n){e=e.toLowerCase(),c.state[e]=function(){return t.call(n||s)}},addQueryValueHandler:u,hasCustomCommand:function(e){return e=e.toLowerCase(),!!c.exec[e]}});var l=function(e,t,n){return t===undefined&&(t=!1),n===undefined&&(n=null),s.getDoc().execCommand(e,t,n)},f=function(e){return a.match(e)},d=function(e,t){a.toggle(e,t?{value:t}:undefined),s.nodeChanged()},m=function(e){t=i.getBookmark(e)},p=function(){i.moveToBookmark(t)};e({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){s.undoManager.add()},"Cut,Copy,Paste":function(e){var t,n=s.getDoc();try{l(e)}catch(o){t=!0}if("paste"!==e||n.queryCommandEnabled(e)||(t=!0),t||!n.queryCommandSupported(e)){var r=s.translate("Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.");ge.mac&&(r=r.replace(/Ctrl\+/g,"\u2318+")),s.notificationManager.open({text:r,type:"error"})}},unlink:function(){if(i.isCollapsed()){var e=s.dom.getParent(s.selection.getStart(),"a");e&&s.dom.remove(e,!0)}else a.remove("link")},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull,JustifyNone":function(e){var t=e.substring(7);"full"===t&&(t="justify"),Om("left,center,right,justify".split(","),function(e){t!==e&&a.remove("align"+e)}),"none"!==t&&d("align"+t)},"InsertUnorderedList,InsertOrderedList":function(e){var t,n;l(e),(t=o.getParent(i.getNode(),"ol,ul"))&&(n=t.parentNode,/^(H[1-6]|P|ADDRESS|PRE)$/.test(n.nodeName)&&(m(),o.split(n,t),p()))},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){d(e)},"ForeColor,HiliteColor":function(e,t,n){d(e,n)},FontName:function(e,t,n){Wd(s,n)},FontSize:function(e,t,n){Xd(s,n)},RemoveFormat:function(e){a.remove(e)},mceBlockQuote:function(){d("blockquote")},FormatBlock:function(e,t,n){return d(n||"p")},mceCleanup:function(){var e=i.getBookmark();s.setContent(s.getContent()),i.moveToBookmark(e)},mceRemoveNode:function(e,t,n){var r=n||i.getNode();r!==s.getBody()&&(m(),s.dom.remove(r,!0),p())},mceSelectNodeDepth:function(e,t,n){var r=0;o.getParent(i.getNode(),function(e){if(1===e.nodeType&&r++===n)return i.select(e),!1},s.getBody())},mceSelectNode:function(e,t,n){i.select(n)},mceInsertContent:function(e,t,n){Yc.insertAtCaret(s,n)},mceInsertRawHTML:function(e,t,n){var r=s.getContent();i.setContent("tiny_mce_marker"),s.setContent(r.replace(/tiny_mce_marker/g,function(){return n}))},mceToggleFormat:function(e,t,n){d(n)},mceSetContent:function(e,t,n){s.setContent(n)},"Indent,Outdent":function(e){Dm(s,e)},mceRepaint:function(){},InsertHorizontalRule:function(){s.execCommand("mceInsertContent",!1,"<hr />")},mceToggleVisualAid:function(){s.hasVisual=!s.hasVisual,s.addVisual()},mceReplaceContent:function(e,t,n){s.execCommand("mceInsertContent",!1,n.replace(/\{\$selection\}/g,i.getContent({format:"text"})))},mceInsertLink:function(e,t,n){var r;"string"==typeof n&&(n={href:n}),r=o.getParent(i.getNode(),"a"),n.href=n.href.replace(" ","%20"),r&&n.href||a.remove("link"),n.href&&a.apply("link",n,r)},selectAll:function(){var e=o.getParent(i.getStart(),Ao.isContentEditableTrue);if(e){var t=o.createRng();t.selectNodeContents(e),i.setRng(t)}},"delete":function(){Ud.deleteCommand(s)},forwardDelete:function(){Ud.forwardDeleteCommand(s)},mceNewDocument:function(){s.setContent("")},InsertLineBreak:function(e,t,n){return mm.insert(s,n),!0}}),e({"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var t="align"+e.substring(7),n=i.isCollapsed()?[o.getParent(i.getNode(),o.isBlock)]:i.getSelectedBlocks(),r=Lm(n,function(e){return!!a.matchNode(e,t)});return-1!==Im(r,!0)},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){return f(e)},mceBlockQuote:function(){return f("blockquote")},Outdent:function(){var e;if(n.inline_styles){if((e=o.getParent(i.getStart(),o.isBlock))&&0<parseInt(e.style.paddingLeft,10))return!0;if((e=o.getParent(i.getEnd(),o.isBlock))&&0<parseInt(e.style.paddingLeft,10))return!0}return r("InsertUnorderedList")||r("InsertOrderedList")||!n.inline_styles&&!!o.getParent(i.getNode(),"BLOCKQUOTE")},"InsertUnorderedList,InsertOrderedList":function(e){var t=o.getParent(i.getNode(),"ul,ol");return t&&("insertunorderedlist"===e&&"UL"===t.tagName||"insertorderedlist"===e&&"OL"===t.tagName)}},"state"),e({Undo:function(){s.undoManager.undo()},Redo:function(){s.undoManager.redo()}}),u("FontName",function(){return Kd(s)},this),u("FontSize",function(){return Yd(s)},this)}var Fm=Lt.makeMap("focus blur focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange mouseout mouseenter mouseleave wheel keydown keypress keyup input contextmenu dragstart dragend dragover draggesture dragdrop drop drag submit compositionstart compositionend compositionupdate touchstart touchmove touchend"," "),zm=function(a){var u,s,c=this,l={},f=function(){return!1},d=function(){return!0};u=(a=a||{}).scope||c,s=a.toggleEvent||f;var r=function(e,t,n,r){var o,i,a;if(!1===t&&(t=f),t)for(t={func:t},r&&Lt.extend(t,r),a=(i=e.toLowerCase().split(" ")).length;a--;)e=i[a],(o=l[e])||(o=l[e]=[],s(e,!0)),n?o.unshift(t):o.push(t);return c},m=function(e,t){var n,r,o,i,a;if(e)for(n=(i=e.toLowerCase().split(" ")).length;n--;){if(e=i[n],r=l[e],!e){for(o in l)s(o,!1),delete l[o];return c}if(r){if(t)for(a=r.length;a--;)r[a].func===t&&(r=r.slice(0,a).concat(r.slice(a+1)),l[e]=r);else r.length=0;r.length||(s(e,!1),delete l[e])}}else{for(e in l)s(e,!1);l={}}return c};c.fire=function(e,t){var n,r,o,i;if(e=e.toLowerCase(),(t=t||{}).type=e,t.target||(t.target=u),t.preventDefault||(t.preventDefault=function(){t.isDefaultPrevented=d},t.stopPropagation=function(){t.isPropagationStopped=d},t.stopImmediatePropagation=function(){t.isImmediatePropagationStopped=d},t.isDefaultPrevented=f,t.isPropagationStopped=f,t.isImmediatePropagationStopped=f),a.beforeFire&&a.beforeFire(t),n=l[e])for(r=0,o=n.length;r<o;r++){if((i=n[r]).once&&m(e,i.func),t.isImmediatePropagationStopped())return t.stopPropagation(),t;if(!1===i.func.call(u,t))return t.preventDefault(),t}return t},c.on=r,c.off=m,c.once=function(e,t,n){return r(e,t,n,{once:!0})},c.has=function(e){return e=e.toLowerCase(),!(!l[e]||0===l[e].length)}};zm.isNative=function(e){return!!Fm[e.toLowerCase()]};var Um,qm=function(n){return n._eventDispatcher||(n._eventDispatcher=new zm({scope:n,toggleEvent:function(e,t){zm.isNative(e)&&n.toggleNativeEvent&&n.toggleNativeEvent(e,t)}})),n._eventDispatcher},Vm={fire:function(e,t,n){if(this.removed&&"remove"!==e)return t;if(t=qm(this).fire(e,t,n),!1!==n&&this.parent)for(var r=this.parent();r&&!t.isPropagationStopped();)r.fire(e,t,!1),r=r.parent();return t},on:function(e,t,n){return qm(this).on(e,t,n)},off:function(e,t){return qm(this).off(e,t)},once:function(e,t){return qm(this).once(e,t)},hasEventListeners:function(e){return qm(this).has(e)}},Hm=di.DOM,jm=function(e,t){return"selectionchange"===t?e.getDoc():!e.inline&&/^mouse|touch|click|contextmenu|drop|dragover|dragend/.test(t)?e.getDoc().documentElement:e.settings.event_root?(e.eventRoot||(e.eventRoot=Hm.select(e.settings.event_root)[0]),e.eventRoot):e.getBody()},$m=function(i,a){var e,t,u=function(e){return!e.hidden&&!e.readonly};if(i.delegates||(i.delegates={}),!i.delegates[a]&&!i.removed)if(e=jm(i,a),i.settings.event_root){if(Um||(Um={},i.editorManager.on("removeEditor",function(){var e;if(!i.editorManager.activeEditor&&Um){for(e in Um)i.dom.unbind(jm(i,e));Um=null}})),Um[a])return;t=function(e){for(var t=e.target,n=i.editorManager.get(),r=n.length;r--;){var o=n[r].getBody();(o===t||Hm.isChildOf(t,o))&&u(n[r])&&n[r].fire(a,e)}},Um[a]=t,Hm.bind(e,a,t)}else t=function(e){u(i)&&i.fire(a,e)},Hm.bind(e,a,t),i.delegates[a]=t},Wm={bindPendingEventDelegates:function(){var t=this;Lt.each(t._pendingNativeEvents,function(e){$m(t,e)})},toggleNativeEvent:function(e,t){var n=this;"focus"!==e&&"blur"!==e&&(t?n.initialized?$m(n,e):n._pendingNativeEvents?n._pendingNativeEvents.push(e):n._pendingNativeEvents=[e]:n.initialized&&(n.dom.unbind(jm(n,e),e,n.delegates[e]),delete n.delegates[e]))},unbindAllNativeEvents:function(){var e,t=this,n=t.getBody(),r=t.dom;if(t.delegates){for(e in t.delegates)t.dom.unbind(jm(t,e),e,t.delegates[e]);delete t.delegates}!t.inline&&n&&r&&(n.onload=null,r.unbind(t.getWin()),r.unbind(t.getDoc())),r&&(r.unbind(n),r.unbind(t.getContainer()))}},Km=Wm=Lt.extend({},Vm,Wm),Xm=function(e,t,n){try{e.getDoc().execCommand(t,!1,n)}catch(r){}},Ym=function(e,t){var n,r,o;e._clickBlocker&&(e._clickBlocker.unbind(),e._clickBlocker=null),t?(e._clickBlocker=(r=(n=e).getBody(),o=function(e){0<n.dom.getParents(e.target,"a").length&&e.preventDefault()},n.dom.bind(r,"click",o),{unbind:function(){n.dom.unbind(r,"click",o)}}),e.selection.controlSelection.hideResizeRect(),e.readonly=!0,e.getBody().contentEditable=!1):(e.readonly=!1,e.getBody().contentEditable=!0,Xm(e,"StyleWithCSS",!1),Xm(e,"enableInlineTableEditing",!1),Xm(e,"enableObjectResizing",!1),e.focus(),e.nodeChanged())},Gm=function(e,t){var n=e.readonly?"readonly":"design";t!==n&&(e.initialized?Ym(e,"readonly"===t):e.on("init",function(){Ym(e,"readonly"===t)}),e.fire("SwitchMode",{mode:t}))},Jm=Lt.each,Qm=Lt.explode,Zm={f9:120,f10:121,f11:122},ep=Lt.makeMap("alt,ctrl,shift,meta,access");function tp(i){var a={},r=[],u=function(e){var t,n,r={};for(n in Jm(Qm(e,"+"),function(e){e in ep?r[e]=!0:/^[0-9]{2,}$/.test(e)?r.keyCode=parseInt(e,10):(r.charCode=e.charCodeAt(0),r.keyCode=Zm[e]||e.toUpperCase().charCodeAt(0))}),t=[r.keyCode],ep)r[n]?t.push(n):r[n]=!1;return r.id=t.join(","),r.access&&(r.alt=!0,ge.mac?r.ctrl=!0:r.shift=!0),r.meta&&(ge.mac?r.meta=!0:(r.ctrl=!0,r.meta=!1)),r},s=function(e,t,n,r){var o;return(o=Lt.map(Qm(e,">"),u))[o.length-1]=Lt.extend(o[o.length-1],{func:n,scope:r||i}),Lt.extend(o[0],{desc:i.translate(t),subpatterns:o.slice(1)})},o=function(e,t){return!!t&&t.ctrl===e.ctrlKey&&t.meta===e.metaKey&&t.alt===e.altKey&&t.shift===e.shiftKey&&!!(e.keyCode===t.keyCode||e.charCode&&e.charCode===t.charCode)&&(e.preventDefault(),!0)},c=function(e){return e.func?e.func.call(e.scope):null};i.on("keyup keypress keydown",function(t){var e,n;((n=t).altKey||n.ctrlKey||n.metaKey||"keydown"===(e=t).type&&112<=e.keyCode&&e.keyCode<=123)&&!t.isDefaultPrevented()&&(Jm(a,function(e){if(o(t,e))return r=e.subpatterns.slice(0),"keydown"===t.type&&c(e),!0}),o(t,r[0])&&(1===r.length&&"keydown"===t.type&&c(r[0]),r.shift()))}),this.add=function(e,n,r,o){var t;return"string"==typeof(t=r)?r=function(){i.execCommand(t,!1,null)}:Lt.isArray(t)&&(r=function(){i.execCommand(t[0],t[1],t[2])}),Jm(Qm(Lt.trim(e.toLowerCase())),function(e){var t=s(e,n,r,o);a[t.id]=t}),!0},this.remove=function(e){var t=s(e);return!!a[t.id]&&(delete a[t.id],!0)}}var np=function(e){var t=e!==undefined?e.dom():document;return A.from(t.activeElement).map(qn.fromDom)},rp=function(e){var t=qr.owner(e).dom();return e.dom()===t.activeElement},op=function(t){return np(qr.owner(t)).filter(function(e){return t.dom().contains(e.dom())})},ip=function(t,e){return(n=e,n.collapsed?A.from(na(n.startContainer,n.startOffset)).map(qn.fromDom):A.none()).bind(function(e){return ho(e)?A.some(e):!1===Or.contains(t,e)?A.some(t):A.none()});var n},ap=function(t,e){ip(qn.fromDom(t.getBody()),e).bind(function(e){return Ka.firstPositionIn(e.dom())}).fold(function(){t.selection.normalize()},function(e){return t.selection.setRng(e.toRange())})},up=function(e){if(e.setActive)try{e.setActive()}catch(t){e.focus()}else e.focus()},sp=function(e){var t,n=e.getBody();return n&&(t=qn.fromDom(n),rp(t)||op(t).isSome())},cp=function(e){return e.inline?sp(e):(t=e).iframeElement&&rp(qn.fromDom(t.iframeElement));var t},lp=function(e){return e.editorManager.setActive(e)},fp=function(e,t){e.removed||(t?lp(e):function(t){var e=t.selection,n=t.settings.content_editable,r=t.getBody(),o=e.getRng();t.quirks.refreshContentEditable();var i,a,u=(i=t,a=e.getNode(),i.dom.getParent(a,function(e){return"true"===i.dom.getContentEditable(e)}));if(t.$.contains(r,u))return up(u),ap(t,o),lp(t);t.bookmark!==undefined&&!1===cp(t)&&_m.getRng(t).each(function(e){t.selection.setRng(e),o=e}),n||(ge.opera||up(r),t.getWin().focus()),(ge.gecko||n)&&(up(r),ap(t,o)),lp(t)}(e))},dp=cp,mp=function(e,t){return t.dom()[e]},pp=function(e,t){return parseInt(yr(t,e),10)},gp=V.curry(mp,"clientWidth"),hp=V.curry(mp,"clientHeight"),vp=V.curry(pp,"margin-top"),yp=V.curry(pp,"margin-left"),bp={isXYInContentArea:function(e,t,n){var r,o,i,a,u,s,c,l,f,d,m=qn.fromDom(e.getBody()),p=e.inline?m:qr.documentElement(m),g=(r=e.inline,i=t,a=n,u=(o=p).dom().getBoundingClientRect(),{x:i-(r?u.left+o.dom().clientLeft+yp(o):0),y:a-(r?u.top+o.dom().clientTop+vp(o):0)});return c=g.x,l=g.y,f=gp(s=p),d=hp(s),0<=c&&0<=l&&c<=f&&l<=d},isEditorAttachedToDom:function(e){var t,n=e.inline?e.getBody():e.getContentAreaContainer();return(t=n,A.from(t).map(qn.fromDom)).map(function(e){return Or.contains(qr.owner(e),e)}).getOr(!1)}};function Cp(n){var t,o=[],i=function(){var e,t=n.theme;return t&&t.getNotificationManagerImpl?t.getNotificationManagerImpl():{open:e=function(){throw new Error("Theme did not provide a NotificationManager implementation.")},close:e,reposition:e,getArgs:e}},a=function(){0<o.length&&i().reposition(o)},u=function(t){H.findIndex(o,function(e){return e===t}).each(function(e){o.splice(e,1)})},r=function(r){if(!n.removed&&bp.isEditorAttachedToDom(n))return H.find(o,function(e){return t=i().getArgs(e),n=r,!(t.type!==n.type||t.text!==n.text||t.progressBar||t.timeout||n.progressBar||n.timeout);var t,n}).getOrThunk(function(){n.editorManager.setActive(n);var e,t=i().open(r,function(){u(t),a()});return e=t,o.push(e),a(),t})};return(t=n).on("SkinLoaded",function(){var e=t.settings.service_message;e&&r({text:e,type:"warning",timeout:0,icon:""})}),t.on("ResizeEditor ResizeWindow",function(){Ce.requestAnimationFrame(a)}),t.on("remove",function(){H.each(o,function(e){i().close(e)})}),{open:r,close:function(){A.from(o[0]).each(function(e){i().close(e),u(e),a()})},getNotifications:function(){return o}}}function xp(r){var o=[],i=function(){var e,t=r.theme;return t&&t.getWindowManagerImpl?t.getWindowManagerImpl():{open:e=function(){throw new Error("Theme did not provide a WindowManager implementation.")},alert:e,confirm:e,close:e,getParams:e,setParams:e}},a=function(e,t){return function(){return t?t.apply(e,arguments):undefined}},u=function(e){var t;o.push(e),t=e,r.fire("OpenWindow",{win:t})},s=function(n){H.findIndex(o,function(e){return e===n}).each(function(e){var t;o.splice(e,1),t=n,r.fire("CloseWindow",{win:t}),0===o.length&&r.focus()})},e=function(){return A.from(o[o.length-1])};return r.on("remove",function(){H.each(o.slice(0),function(e){i().close(e)})}),{windows:o,open:function(e,t){r.editorManager.setActive(r),_m.store(r);var n=i().open(e,t,s);return u(n),n},alert:function(e,t,n){var r=i().alert(e,a(n||this,t),s);u(r)},confirm:function(e,t,n){var r=i().confirm(e,a(n||this,t),s);u(r)},close:function(){e().each(function(e){i().close(e),s(e)})},getParams:function(){return e().map(i().getParams).getOr(null)},setParams:function(t){e().each(function(e){i().setParams(e,t)})},getWindows:function(){return o}}}var wp=Ci.PluginManager,Np=function(e,t){var n=function(e,t){for(var n in wp.urls)if(wp.urls[n]+"/plugin"+t+".js"===e)return n;return null}(t,e.suffix);return n?"Failed to load plugin: "+n+" from url "+t:"Failed to load plugin url: "+t},Ep=function(e,t){e.notificationManager.open({type:"error",text:t})},Sp=function(e,t){e._skinLoaded?Ep(e,t):e.on("SkinLoaded",function(){Ep(e,t)})},kp={pluginLoadError:function(e,t){Sp(e,Np(e,t))},uploadError:function(e,t){Sp(e,"Failed to upload image: "+t)},displayError:Sp,initError:function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r=window.console;r&&(r.error?r.error.apply(r,arguments):r.log.apply(r,arguments))}},Tp=Ci.PluginManager,Ap=Ci.ThemeManager;function Rp(){return new(j.getOrDie("XMLHttpRequest"))}function Bp(u,s){var r={},n=function(e,r,o,t){var i,n;(i=new Rp).open("POST",s.url),i.withCredentials=s.credentials,i.upload.onprogress=function(e){t(e.loaded/e.total*100)},i.onerror=function(){o("Image upload failed due to a XHR Transport error. Code: "+i.status)},i.onload=function(){var e,t,n;i.status<200||300<=i.status?o("HTTP Error: "+i.status):(e=JSON.parse(i.responseText))&&"string"==typeof e.location?r((t=s.basePath,n=e.location,t?t.replace(/\/$/,"")+"/"+n.replace(/^\//,""):n)):o("Invalid JSON: "+i.responseText)},(n=new FormData).append("file",e.blob(),e.filename()),i.send(n)},c=function(e,t){return{url:t,blobInfo:e,status:!0}},l=function(e,t){return{url:"",blobInfo:e,status:!1,error:t}},f=function(e,t){Lt.each(r[e],function(e){e(t)}),delete r[e]},o=function(e,n){return e=Lt.grep(e,function(e){return!u.isUploaded(e.blobUri())}),he.all(Lt.map(e,function(e){return u.isPending(e.blobUri())?(t=e.blobUri(),new he(function(e){r[t]=r[t]||[],r[t].push(e)})):(o=e,i=s.handler,a=n,u.markPending(o.blobUri()),new he(function(t){var n;try{var r=function(){n&&n.close()};i(o,function(e){r(),u.markUploaded(o.blobUri(),e),f(o.blobUri(),c(o,e)),t(c(o,e))},function(e){r(),u.removeFailed(o.blobUri()),f(o.blobUri(),l(o,e)),t(l(o,e))},function(e){e<0||100<e||(n||(n=a()),n.progressBar.value(e))})}catch(e){t(l(o,e.message))}}));var o,i,a,t}))};return s=Lt.extend({credentials:!1,handler:n},s),{upload:function(e,t){return s.url||s.handler!==n?o(e,t):new he(function(e){e([])})}}}function _p(e,t){return new(j.getOrDie("Blob"))(e,t)}function Dp(){return new(j.getOrDie("FileReader"))}function Op(e){return new(j.getOrDie("Uint8Array"))(e)}var Pp=function(e){return j.getOrDie("atob")(e)},Lp=function(e){var t,n;return e=decodeURIComponent(e).split(","),(n=/data:([^;]+)/.exec(e[0]))&&(t=n[1]),{type:t,data:e[1]}},Ip=function(e){return 0===e.indexOf("blob:")?(i=e,new he(function(e,t){var n=function(){t("Cannot convert "+i+" to Blob. Resource might not exist or is inaccessible.")};try{var r=new Rp;r.open("GET",i,!0),r.responseType="blob",r.onload=function(){200===this.status?e(this.response):n()},r.onerror=n,r.send()}catch(o){n()}})):0===e.indexOf("data:")?(o=e,new he(function(e){var t,n,r;o=Lp(o);try{t=Pp(o.data)}catch(Zx){return void e(new _p([]))}for(n=new Op(t.length),r=0;r<n.length;r++)n[r]=t.charCodeAt(r);e(new _p([n],{type:o.type}))})):null;var i,o},Mp=function(n){return new he(function(e){var t=new Dp;t.onloadend=function(){e(t.result)},t.readAsDataURL(n)})},Fp=Lp,zp=0,Up=function(e){return(e||"blobid")+zp++},qp=function(n,r,o,t){var i,a;0!==r.src.indexOf("blob:")?(i=Fp(r.src).data,(a=n.findFirst(function(e){return e.base64()===i}))?o({image:r,blobInfo:a}):Ip(r.src).then(function(e){a=n.create(Up(),e,i),n.add(a),o({image:r,blobInfo:a})},function(e){t(e)})):(a=n.getByUri(r.src))?o({image:r,blobInfo:a}):Ip(r.src).then(function(t){Mp(t).then(function(e){i=Fp(e).data,a=n.create(Up(),t,i),n.add(a),o({image:r,blobInfo:a})})},function(e){t(e)})},Vp=function(e){return e?e.getElementsByTagName("img"):[]},Hp=0,jp={uuid:function(e){return e+Hp+++(t=function(){return Math.round(4294967295*Math.random()).toString(36)},"s"+(new Date).getTime().toString(36)+t()+t()+t());var t}};function $p(u){var n,o,i,t,e,a,r,s,c,l,f=(n=[],o=ua.constant,i=function(e){var t,n,r;if(!e.blob||!e.base64)throw new Error("blob and base64 representations of the image are required for BlobInfo to be created");return t=e.id||jp.uuid("blobid"),n=e.name||t,{id:o(t),name:o(n),filename:o(n+"."+(r=e.blob.type,{"image/jpeg":"jpg","image/jpg":"jpg","image/gif":"gif","image/png":"png"}[r.toLowerCase()]||"dat")),blob:o(e.blob),base64:o(e.base64),blobUri:o(e.blobUri||W.createObjectURL(e.blob)),uri:o(e.uri)}},{create:function(e,t,n,r){return i("object"==typeof e?e:{id:e,name:r,blob:t,base64:n})},add:function(e){t(e.id())||n.push(e)},get:t=function(t){return e(function(e){return e.id()===t})},getByUri:function(t){return e(function(e){return e.blobUri()===t})},findFirst:e=function(e){return Bt.filter(n,e)[0]},removeByUri:function(t){n=Bt.filter(n,function(e){return e.blobUri()!==t||(W.revokeObjectURL(e.blobUri()),!1)})},destroy:function(){Bt.each(n,function(e){W.revokeObjectURL(e.blobUri())}),n=[]}}),d=u.settings,m=(s={},c=function(e,t){return{status:e,resultUri:t}},{hasBlobUri:l=function(e){return e in s},getResultUri:function(e){var t=s[e];return t?t.resultUri:null},isPending:function(e){return!!l(e)&&1===s[e].status},isUploaded:function(e){return!!l(e)&&2===s[e].status},markPending:function(e){s[e]=c(1,null)},markUploaded:function(e,t){s[e]=c(2,t)},removeFailed:function(e){delete s[e]},destroy:function(){s={}}}),p=function(t){return function(e){return u.selection?t(e):[]}},g=function(e,t,n){for(var r=0;-1!==(r=e.indexOf(t,r))&&(e=e.substring(0,r)+n+e.substr(r+t.length),r+=n.length-t.length+1),-1!==r;);return e},h=function(e,t,n){return e=g(e,'src="'+t+'"','src="'+n+'"'),e=g(e,'data-mce-src="'+t+'"','data-mce-src="'+n+'"')},v=function(t,n){Bt.each(u.undoManager.data,function(e){"fragmented"===e.type?e.fragments=Bt.map(e.fragments,function(e){return h(e,t,n)}):e.content=h(e.content,t,n)})},y=function(){return u.notificationManager.open({text:u.translate("Image uploading..."),type:"info",timeout:-1,progressBar:!0})},b=function(e,t){f.removeByUri(e.src),v(e.src,t),u.$(e).attr({src:d.images_reuse_filename?t+"?"+(new Date).getTime():t,"data-mce-src":u.convertURL(t,"src")})},C=function(n){return a||(a=Bp(m,{url:d.images_upload_url,basePath:d.images_upload_base_path,credentials:d.images_upload_credentials,handler:d.images_upload_handler})),N().then(p(function(r){var e;return e=Bt.map(r,function(e){return e.blobInfo}),a.upload(e,y).then(p(function(e){var t=Bt.map(e,function(e,t){var n=r[t].image;return e.status&&!1!==u.settings.images_replace_blob_uris?b(n,e.url):e.error&&kp.uploadError(u,e.error),{element:n,status:e.status}});return n&&n(t),t}))}))},x=function(e){if(!1!==d.automatic_uploads)return C(e)},w=function(e){return!d.images_dataimg_filter||d.images_dataimg_filter(e)},N=function(){var o,i,a;return r||(o=m,i=f,a={},r={findAll:function(e,n){var t;n||(n=ua.constant(!0)),t=Bt.filter(Vp(e),function(e){var t=e.src;return!!ge.fileApi&&!e.hasAttribute("data-mce-bogus")&&!e.hasAttribute("data-mce-placeholder")&&!(!t||t===ge.transparentSrc)&&(0===t.indexOf("blob:")?!o.isUploaded(t):0===t.indexOf("data:")&&n(e))});var r=Bt.map(t,function(n){if(a[n.src])return new he(function(t){a[n.src].then(function(e){if("string"==typeof e)return e;t({image:n,blobInfo:e.blobInfo})})});var e=new he(function(e,t){qp(i,n,e,t)}).then(function(e){return delete a[e.image.src],e})["catch"](function(e){return delete a[n.src],e});return a[n.src]=e});return he.all(r)}}),r.findAll(u.getBody(),w).then(p(function(e){return e=Bt.filter(e,function(e){return"string"!=typeof e||(kp.displayError(u,e),!1)}),Bt.each(e,function(e){v(e.image.src,e.blobInfo.blobUri()),e.image.src=e.blobInfo.blobUri(),e.image.removeAttribute("data-mce-src")}),e}))},E=function(e){return e.replace(/src="(blob:[^"]+)"/g,function(e,n){var t=m.getResultUri(n);if(t)return'src="'+t+'"';var r=f.getByUri(n);return r||(r=Bt.reduce(u.editorManager.get(),function(e,t){return e||t.editorUpload&&t.editorUpload.blobCache.getByUri(n)},null)),r?'src="data:'+r.blob().type+";base64,"+r.base64()+'"':e})};return u.on("setContent",function(){!1!==u.settings.automatic_uploads?x():N()}),u.on("RawSaveContent",function(e){e.content=E(e.content)}),u.on("getContent",function(e){e.source_view||"raw"===e.format||(e.content=E(e.content))}),u.on("PostRender",function(){u.parser.addNodeFilter("img",function(e){Bt.each(e,function(e){var t=e.attr("src");if(!f.getByUri(t)){var n=m.getResultUri(t);n&&e.attr("src",n)}})})}),{blobCache:f,uploadImages:C,uploadImagesAuto:x,scanForImages:N,destroy:function(){f.destroy(),m.destroy(),r=a=null}}}var Wp=function(e,t){return e.hasOwnProperty(t.nodeName)},Kp=function(e,t){if(Ao.isText(t)){if(0===t.nodeValue.length)return!0;if(/^\s+$/.test(t.nodeValue)&&(!t.nextSibling||Wp(e,t.nextSibling)))return!0}return!1},Xp=function(e){var t,n,r,o,i,a,u,s,c,l,f,d=e.settings,m=e.dom,p=e.selection,g=e.schema,h=g.getBlockElements(),v=p.getStart(),y=e.getBody();if(f=d.forced_root_block,v&&Ao.isElement(v)&&f&&(l=y.nodeName.toLowerCase(),g.isValidChild(l,f.toLowerCase())&&(b=h,C=y,x=v,!H.exists(Il(qn.fromDom(x),qn.fromDom(C)),function(e){return Wp(b,e.dom())})))){var b,C,x,w,N;for(n=(t=p.getRng()).startContainer,r=t.startOffset,o=t.endContainer,i=t.endOffset,c=dp(e),v=y.firstChild;v;)if(w=h,N=v,Ao.isText(N)||Ao.isElement(N)&&!Wp(w,N)&&!Bc.isBookmarkNode(N)){if(Kp(h,v)){v=(u=v).nextSibling,m.remove(u);continue}a||(a=m.create(f,e.settings.forced_root_block_attrs),v.parentNode.insertBefore(a,v),s=!0),v=(u=v).nextSibling,a.appendChild(u)}else a=null,v=v.nextSibling;s&&c&&(t.setStart(n,r),t.setEnd(o,i),p.setRng(t),e.nodeChanged())}},Yp=function(e){e.settings.forced_root_block&&e.on("NodeChange",V.curry(Xp,e))};function Gp(i){var r,o=[];"onselectionchange"in i.getDoc()||i.on("NodeChange Click MouseUp KeyUp Focus",function(e){var t,n;n={startContainer:(t=i.selection.getRng()).startContainer,startOffset:t.startOffset,endContainer:t.endContainer,endOffset:t.endOffset},"nodechange"!==e.type&&Gd.isEq(n,r)||i.fire("SelectionChange"),r=n}),i.on("contextmenu",function(){i.fire("SelectionChange")}),i.on("SelectionChange",function(){var e=i.selection.getStart(!0);!e||!ge.range&&i.selection.isCollapsed()||!function(e){var t,n;if((n=i.$(e).parentsUntil(i.getBody()).add(e)).length===o.length){for(t=n.length;0<=t&&n[t]===o[t];t--);if(-1===t)return o=n,!0}return o=n,!1}(e)&&i.dom.isChildOf(e,i.getBody())&&i.nodeChanged({selectionChange:!0})}),i.on("MouseUp",function(e){e.isDefaultPrevented()||("IMG"===i.selection.getNode().nodeName?Ce.setEditorTimeout(i,function(){i.nodeChanged()}):i.nodeChanged())}),this.nodeChanged=function(e){var t,n,r,o=i.selection;i.initialized&&o&&!i.settings.disable_nodechange&&!i.readonly&&(r=i.getBody(),(t=o.getStart(!0)||r).ownerDocument===i.getDoc()&&i.dom.isChildOf(t,r)||(t=r),n=[],i.dom.getParent(t,function(e){if(e===r)return!0;n.push(e)}),(e=e||{}).element=t,e.parents=n,i.fire("NodeChange",e))}}var Jp,Qp,Zp=function(e){var t,n,r,o;return o=e.getBoundingClientRect(),n=(t=e.ownerDocument).documentElement,r=t.defaultView,{top:o.top+r.pageYOffset-n.clientTop,left:o.left+r.pageXOffset-n.clientLeft}},eg=function(e,t){return n=(u=e).inline?Zp(u.getBody()):{left:0,top:0},a=(i=e).getBody(),r=i.inline?{left:a.scrollLeft,top:a.scrollTop}:{left:0,top:0},{pageX:(o=function(e,t){if(t.target.ownerDocument!==e.getDoc()){var n=Zp(e.getContentAreaContainer()),r=(i=(o=e).getBody(),a=o.getDoc().documentElement,u={left:i.scrollLeft,top:i.scrollTop},s={left:i.scrollLeft||a.scrollLeft,top:i.scrollTop||a.scrollTop},o.inline?u:s);return{left:t.pageX-n.left+r.left,top:t.pageY-n.top+r.top}}var o,i,a,u,s;return{left:t.pageX,top:t.pageY}}(e,t)).left-n.left+r.left,pageY:o.top-n.top+r.top};var n,r,o,i,a,u},tg=Ao.isContentEditableFalse,ng=Ao.isContentEditableTrue,rg=function(e){e&&e.parentNode&&e.parentNode.removeChild(e)},og=function(u,s){return function(e){if(0===e.button){var t=Bt.find(s.dom.getParents(e.target),ua.or(tg,ng));if(i=s.getBody(),tg(a=t)&&a!==i){var n=s.dom.getPos(t),r=s.getBody(),o=s.getDoc().documentElement;u.element=t,u.screenX=e.screenX,u.screenY=e.screenY,u.maxX=(s.inline?r.scrollWidth:o.offsetWidth)-2,u.maxY=(s.inline?r.scrollHeight:o.offsetHeight)-2,u.relX=e.pageX-n.x,u.relY=e.pageY-n.y,u.width=t.offsetWidth,u.height=t.offsetHeight,u.ghost=function(e,t,n,r){var o=t.cloneNode(!0);e.dom.setStyles(o,{width:n,height:r}),e.dom.setAttrib(o,"data-mce-selected",null);var i=e.dom.create("div",{"class":"mce-drag-container","data-mce-bogus":"all",unselectable:"on",contenteditable:"false"});return e.dom.setStyles(i,{position:"absolute",opacity:.5,overflow:"hidden",border:0,padding:0,margin:0,width:n,height:r}),e.dom.setStyles(o,{margin:0,boxSizing:"border-box"}),i.appendChild(o),i}(s,t,u.width,u.height)}}var i,a}},ig=function(l,f){return function(e){if(l.dragging&&(s=(i=f).selection,c=s.getSel().getRangeAt(0).startContainer,a=3===c.nodeType?c.parentNode:c,u=l.element,a!==u&&!i.dom.isChildOf(a,u)&&!tg(a))){var t=(r=l.element,(o=r.cloneNode(!0)).removeAttribute("data-mce-selected"),o),n=f.fire("drop",{targetClone:t,clientX:e.clientX,clientY:e.clientY});n.isDefaultPrevented()||(t=n.targetClone,f.undoManager.transact(function(){rg(l.element),f.insertContent(f.dom.getOuterHTML(t)),f._selectionOverrides.hideFakeCaret()}))}var r,o,i,a,u,s,c;ag(l)}},ag=function(e){e.dragging=!1,e.element=null,rg(e.ghost)},ug=function(e){var t,n,r,o,i,a,g,h,v,u,s,c={};t=di.DOM,a=document,n=og(c,e),g=c,h=e,v=Ce.throttle(function(e,t){h._selectionOverrides.hideFakeCaret(),h.selection.placeCaretAt(e,t)},0),r=function(e){var t,n,r,o,i,a,u,s,c,l,f,d,m=Math.max(Math.abs(e.screenX-g.screenX),Math.abs(e.screenY-g.screenY));if(g.element&&!g.dragging&&10<m){if(h.fire("dragstart",{target:g.element}).isDefaultPrevented())return;g.dragging=!0,h.focus()}if(g.dragging){var p=(f=g,{pageX:(d=eg(h,e)).pageX-f.relX,pageY:d.pageY+5});c=g.ghost,l=h.getBody(),c.parentNode!==l&&l.appendChild(c),t=g.ghost,n=p,r=g.width,o=g.height,i=g.maxX,a=g.maxY,s=u=0,t.style.left=n.pageX+"px",t.style.top=n.pageY+"px",n.pageX+r>i&&(u=n.pageX+r-i),n.pageY+o>a&&(s=n.pageY+o-a),t.style.width=r-u+"px",t.style.height=o-s+"px",v(e.clientX,e.clientY)}},o=ig(c,e),u=c,i=function(){ag(u),u.dragging&&s.fire("dragend")},(s=e).on("mousedown",n),e.on("mousemove",r),e.on("mouseup",o),t.bind(a,"mousemove",r),t.bind(a,"mouseup",i),e.on("remove",function(){t.unbind(a,"mousemove",r),t.unbind(a,"mouseup",i)})},sg=function(e){var n;ug(e),(n=e).on("drop",function(e){var t="undefined"!=typeof e.clientX?n.getDoc().elementFromPoint(e.clientX,e.clientY):null;(tg(t)||tg(n.dom.getContentEditableParent(t)))&&e.preventDefault()})},cg=function(e){return Bt.reduce(e,function(e,t){return e.concat(function(t){var e=function(e){return Bt.map(e,function(e){return(e=Gi(e)).node=t,e})};if(Ao.isElement(t))return e(t.getClientRects());if(Ao.isText(t)){var n=t.ownerDocument.createRange();return n.setStart(t,0),n.setEnd(t,t.data.length),e(n.getClientRects())}}(t))},[])};(Qp=Jp||(Jp={}))[Qp.Up=-1]="Up",Qp[Qp.Down=1]="Down";var lg=function(o,i,a,e,u,t){var n,s,c=0,l=[],r=function(e){var t,n,r;for(r=cg([e]),-1===o&&(r=r.reverse()),t=0;t<r.length;t++)if(n=r[t],!a(n,s)){if(0<l.length&&i(n,Bt.last(l))&&c++,n.line=c,u(n))return!0;l.push(n)}};return(s=Bt.last(t.getClientRects()))&&(r(n=t.getNode()),function(e,t,n,r){for(;r=ds(r,e,Xi,t);)if(n(r))return}(o,e,r,n)),l},fg=V.curry(lg,Jp.Up,Zi,ea),dg=V.curry(lg,Jp.Down,ea,Zi),mg=function(n){return function(e){return t=n,e.line>t;var t}},pg=function(n){return function(e){return t=n,e.line===t;var t}},gg=Ao.isContentEditableFalse,hg=ds,vg=function(e,t){return Math.abs(e.left-t)},yg=function(e,t){return Math.abs(e.right-t)},bg=function(e,t){return e>=t.left&&e<=t.right},Cg=function(e,o){return Bt.reduce(e,function(e,t){var n,r;return n=Math.min(vg(e,o),yg(e,o)),r=Math.min(vg(t,o),yg(t,o)),bg(o,t)?t:bg(o,e)?e:r===n&&gg(t.node)?t:r<n?t:e})},xg=function(e,t,n,r){for(;r=hg(r,e,Xi,t);)if(n(r))return},wg=function(e,t,n){var r,o,i,a,u,s,c,l,f=cg((o=e,Bt.filter(Bt.toArray(o.getElementsByTagName("*")),ts))),d=Bt.filter(f,function(e){return n>=e.top&&n<=e.bottom});return(r=Cg(d,t))&&(r=Cg((u=e,l=function(t,e){var n;return n=Bt.filter(cg([e]),function(e){return!t(e,s)}),c=c.concat(n),0===n.length},(c=[]).push(s=r),xg(Jp.Up,u,V.curry(l,Zi),s.node),xg(Jp.Down,u,V.curry(l,ea),s.node),c),t))&&ts(r.node)?(a=t,{node:(i=r).node,before:vg(i,a)<yg(i,a)}):null},Ng=function(i,a,e){return!e.collapsed&&H.foldl(e.getClientRects(),function(e,t){return e||(o=a,(r=i)>=(n=t).left&&r<=n.right&&o>=n.top&&o<=n.bottom);var n,r,o},!1)},Eg=function(t,n){var r=null;return{cancel:function(){null!==r&&(clearTimeout(r),r=null)},throttle:function(){var e=arguments;null===r&&(r=setTimeout(function(){t.apply(null,e),e=r=null},n))}}},Sg=function(t){var e=Eg(function(){if(!t.removed&&t.selection.getRng().collapsed){var e=Za(t,t.selection.getRng(),!1);t.selection.setRng(e)}},0);t.on("focus",function(){e.throttle()}),t.on("blur",function(){e.cancel()})},kg={BACKSPACE:8,DELETE:46,DOWN:40,ENTER:13,LEFT:37,RIGHT:39,SPACEBAR:32,TAB:9,UP:38,modifierPressed:function(e){return e.shiftKey||e.ctrlKey||e.altKey||this.metaKeyPressed(e)},metaKeyPressed:function(e){return ge.mac?e.metaKey:e.ctrlKey&&!e.altKey}},Tg=Ao.isContentEditableTrue,Ag=Ao.isContentEditableFalse,Rg=ks,Bg=Ss,_g=function(e,t){for(var n=e.getBody();t&&t!==n;){if(Tg(t)||Ag(t))return t;t=t.parentNode}return null},Dg=function(p){var g,e,t,a=p.getBody(),o=es(p.getBody(),function(e){return p.dom.isBlock(e)},function(){return dp(p)}),h="sel-"+p.dom.uniqueId(),u=function(e){e&&p.selection.setRng(e)},s=function(){return p.selection.getRng()},v=function(e,t,n,r){return void 0===r&&(r=!0),p.fire("ShowCaret",{target:t,direction:e,before:n}).isDefaultPrevented()?null:(r&&p.selection.scrollIntoView(t,-1===e),o.show(n,t))},y=function(e,t){return t=Cs(e,a,t),-1===e?Ba.fromRangeStart(t):Ba.fromRangeEnd(t)},n=function(e){return Bi(e)||Li(e)||Ii(e)},b=function(e){return n(e.startContainer)||n(e.endContainer)},c=function(e,t){var n,r,o,i,a,u,s,c,l,f,d=p.$,m=p.dom;if(!e)return null;if(e.collapsed){if(!b(e))if(!1===t){if(c=y(-1,e),ts(c.getNode(!0)))return v(-1,c.getNode(!0),!1,!1);if(ts(c.getNode()))return v(-1,c.getNode(),!c.isAtEnd(),!1)}else{if(c=y(1,e),ts(c.getNode()))return v(1,c.getNode(),!c.isAtEnd(),!1);if(ts(c.getNode(!0)))return v(1,c.getNode(!0),!1,!1)}return null}return i=e.startContainer,a=e.startOffset,u=e.endOffset,3===i.nodeType&&0===a&&Ag(i.parentNode)&&(i=i.parentNode,a=m.nodeIndex(i),i=i.parentNode),1!==i.nodeType?null:(u===a+1&&(n=i.childNodes[a]),Ag(n)?(l=f=n.cloneNode(!0),(s=p.fire("ObjectSelected",{target:n,targetClone:l})).isDefaultPrevented()?null:(r=Cl(qn.fromDom(p.getBody()),"#"+h).fold(function(){return d([])},function(e){return d([e.dom()])}),l=s.targetClone,0===r.length&&(r=d('<div data-mce-bogus="all" class="mce-offscreen-selection"></div>').attr("id",h)).appendTo(p.getBody()),e=p.dom.createRng(),l===f&&ge.ie?(r.empty().append('<p style="font-size: 0" data-mce-bogus="all">\xa0</p>').append(l),e.setStartAfter(r[0].firstChild.firstChild),e.setEndAfter(l)):(r.empty().append("\xa0").append(l).append("\xa0"),e.setStart(r[0].firstChild,1),e.setEnd(r[0].lastChild,0)),r.css({top:m.getPos(n,p.getBody()).y}),r[0].focus(),(o=p.selection.getSel()).removeAllRanges(),o.addRange(e),H.each(fu(qn.fromDom(p.getBody()),"*[data-mce-selected]"),function(e){cr.remove(e,"data-mce-selected")}),n.setAttribute("data-mce-selected","1"),g=n,C(),e)):null)},l=function(){g&&(g.removeAttribute("data-mce-selected"),Cl(qn.fromDom(p.getBody()),"#"+h).each(Ic.remove),g=null)},C=function(){o.hide()};return ge.ceFalse&&(function(){p.on("mouseup",function(e){var t=s();t.collapsed&&bp.isXYInContentArea(p,e.clientX,e.clientY)&&u(Qa(p,t,!1))}),p.on("click",function(e){var t;(t=_g(p,e.target))&&(Ag(t)&&(e.preventDefault(),p.focus()),Tg(t)&&p.dom.isChildOf(t,p.selection.getNode())&&l())}),p.on("blur NewBlock",function(){l()}),p.on("ResizeWindow FullscreenStateChanged",function(){return o.reposition()});var n,r,i=function(e,t){var n,r,o=p.dom.getParent(e,p.dom.isBlock),i=p.dom.getParent(t,p.dom.isBlock);return!(!o||!p.dom.isChildOf(o,i)||!1!==Ag(_g(p,o)))||o&&(n=o,r=i,!(p.dom.getParent(n,p.dom.isBlock)===p.dom.getParent(r,p.dom.isBlock)))&&function(e){var t=js(e);if(!e.firstChild)return!1;var n=Ba.before(e.firstChild),r=t.next(n);return r&&!Bg(r)&&!Rg(r)}(o)};r=!1,(n=p).on("touchstart",function(){r=!1}),n.on("touchmove",function(){r=!0}),n.on("touchend",function(e){var t=_g(n,e.target);Ag(t)&&(r||(e.preventDefault(),c(Ja(n,t))))}),p.on("mousedown",function(e){var t,n=e.target;if((n===a||"HTML"===n.nodeName||p.dom.isChildOf(n,a))&&!1!==bp.isXYInContentArea(p,e.clientX,e.clientY))if(t=_g(p,n))Ag(t)?(e.preventDefault(),c(Ja(p,t))):(l(),Tg(t)&&e.shiftKey||Ng(e.clientX,e.clientY,p.selection.getRng())||p.selection.placeCaretAt(e.clientX,e.clientY));else if(!1===ts(n)){l(),C();var r=wg(a,e.clientX,e.clientY);if(r&&!i(e.target,r.node)){e.preventDefault();var o=v(1,r.node,r.before,!1);p.getBody().focus(),u(o)}}}),p.on("keypress",function(e){kg.modifierPressed(e)||(e.keyCode,Ag(p.selection.getNode())&&e.preventDefault())}),p.on("getSelectionRange",function(e){var t=e.range;if(g){if(!g.parentNode)return void(g=null);(t=t.cloneRange()).selectNode(g),e.range=t}}),p.on("setSelectionRange",function(e){var t;(t=c(e.range,e.forward))&&(e.range=t)}),p.on("AfterSetSelectionRange",function(e){var t,n=e.range;b(n)||C(),t=n.startContainer.parentNode,p.dom.hasClass(t,"mce-offscreen-selection")||l()}),p.on("copy",function(e){var t,n=e.clipboardData;if(!e.isDefaultPrevented()&&e.clipboardData&&!ge.ie){var r=(t=p.dom.get(h))?t.getElementsByTagName("*")[0]:t;r&&(e.preventDefault(),n.clearData(),n.setData("text/html",r.outerHTML),n.setData("text/plain",r.outerText))}}),sg(p),Sg(p)}(),e=p.contentStyles,t=".mce-content-body",e.push(o.getCss()),e.push(t+" .mce-offscreen-selection {position: absolute;left: -9999999999px;max-width: 1000000px;}"+t+" *[contentEditable=false] {cursor: default;}"+t+" *[contentEditable=true] {cursor: text;}")),{showCaret:v,showBlockCaretContainer:function(e){e.hasAttribute("data-mce-caret")&&(Mi(e),u(s()),p.selection.scrollIntoView(e[0]))},hideFakeCaret:C,destroy:function(){o.destroy(),g=null}}},Og=Lt.each,Pg=function(e){return 0===e.indexOf("data-")||0===e.indexOf("aria-")},Lg=function(e){return e.replace(/<!--|-->/g,"")},Ig=function(e,t,n){var r,o,i,a,u=1;for(a=e.getShortEndedElements(),(i=/<([!?\/])?([A-Za-z0-9\-_\:\.]+)((?:\s+[^"\'>]+(?:(?:"[^"]*")|(?:\'[^\']*\')|[^>]*))*|\/|\s+)>/g).lastIndex=r=n;o=i.exec(t);){if(r=i.lastIndex,"/"===o[1])u--;else if(!o[1]){if(o[2]in a)continue;u++}if(0===u)break}return r};function Mg(z,U){void 0===U&&(U=Zo());var t=function(){};!1!==(z=z||{}).fix_self_closing&&(z.fix_self_closing=!0),Og("comment cdata text start end pi doctype".split(" "),function(e){e&&(self[e]=z[e]||t)});var q=z.comment?z.comment:t,V=z.cdata?z.cdata:t,H=z.text?z.text:t,j=z.start?z.start:t,$=z.end?z.end:t,W=z.pi?z.pi:t,K=z.doctype?z.doctype:t;return{parse:function(e){var t,n,r,c,o,i,a,l,u,s,f,d,m,p,g,h,v,y,b,C,x,w,N,E,S,k,T,A,R,B=0,_=[],D=0,O=Vo.decode,P=Lt.makeMap("src,href,data,background,formaction,poster"),L=/((java|vb)script|mhtml):/i,I=/^data:/i,M=function(e){var t,n;for(t=_.length;t--&&_[t].name!==e;);if(0<=t){for(n=_.length-1;t<=n;n--)(e=_[n]).valid&&$(e.name);_.length=t}},F=function(e,t,n,r,o){var i,a;if(n=(t=t.toLowerCase())in f?t:O(n||r||o||""),m&&!l&&!1===Pg(t)){if(!(i=y[t])&&b){for(a=b.length;a--&&!(i=b[a]).pattern.test(t););-1===a&&(i=null)}if(!i)return;if(i.validValues&&!(n in i.validValues))return}if(P[t]&&!z.allow_script_urls){var u=n.replace(/[\s\u0000-\u001F]+/g,"");try{u=decodeURIComponent(u)}catch(s){u=unescape(u)}if(L.test(u))return;if(!z.allow_html_data_urls&&I.test(u)&&!/^data:image\//i.test(u))return}l&&(t in P||0===t.indexOf("on"))||(c.map[t]=n,c.push({name:t,value:n}))};for(S=new RegExp("<(?:(?:!--([\\w\\W]*?)--\x3e)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([A-Za-z][A-Za-z0-9\\-_\\:\\.]*)>)|(?:([A-Za-z][A-Za-z0-9\\-_\\:\\.]*)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))","g"),k=/([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g,s=U.getShortEndedElements(),E=z.self_closing_elements||U.getSelfClosingElements(),f=U.getBoolAttrs(),m=z.validate,u=z.remove_internals,R=z.fix_self_closing,T=U.getSpecialElements(),N=e+">";t=S.exec(N);){if(B<t.index&&H(O(e.substr(B,t.index-B))),n=t[6])":"===(n=n.toLowerCase()).charAt(0)&&(n=n.substr(1)),M(n);else if(n=t[7]){if(t.index+t[0].length>e.length){H(O(e.substr(t.index))),B=t.index+t[0].length;continue}if(":"===(n=n.toLowerCase()).charAt(0)&&(n=n.substr(1)),d=n in s,R&&E[n]&&0<_.length&&_[_.length-1].name===n&&M(n),!m||(p=U.getElementRule(n))){if(g=!0,m&&(y=p.attributes,b=p.attributePatterns),(v=t[8])?((l=-1!==v.indexOf("data-mce-type"))&&u&&(g=!1),(c=[]).map={},v.replace(k,F)):(c=[]).map={},m&&!l){if(C=p.attributesRequired,x=p.attributesDefault,w=p.attributesForced,p.removeEmptyAttrs&&!c.length&&(g=!1),w)for(o=w.length;o--;)a=(h=w[o]).name,"{$uid}"===(A=h.value)&&(A="mce_"+D++),c.map[a]=A,c.push({name:a,value:A});if(x)for(o=x.length;o--;)(a=(h=x[o]).name)in c.map||("{$uid}"===(A=h.value)&&(A="mce_"+D++),c.map[a]=A,c.push({name:a,value:A}));if(C){for(o=C.length;o--&&!(C[o]in c.map););-1===o&&(g=!1)}if(h=c.map["data-mce-bogus"]){if("all"===h){B=Ig(U,e,S.lastIndex),S.lastIndex=B;continue}g=!1}}g&&j(n,c,d)}else g=!1;if(r=T[n]){r.lastIndex=B=t.index+t[0].length,(t=r.exec(e))?(g&&(i=e.substr(B,t.index-B)),B=t.index+t[0].length):(i=e.substr(B),B=e.length),g&&(0<i.length&&H(i,!0),$(n)),S.lastIndex=B;continue}d||(v&&v.indexOf("/")===v.length-1?g&&$(n):_.push({name:n,valid:g}))}else(n=t[1])?(">"===n.charAt(0)&&(n=" "+n),z.allow_conditional_comments||"[if"!==n.substr(0,3).toLowerCase()||(n=" "+n),q(n)):(n=t[2])?V(Lg(n)):(n=t[3])?K(n):(n=t[4])&&W(n,t[5]);B=t.index+t[0].length}for(B<e.length&&H(O(e.substr(B))),o=_.length-1;0<=o;o--)(n=_[o]).valid&&$(n.name)}}}(Mg||(Mg={})).findEndTag=Ig;var Fg=Mg,zg=function(e,t){var n,r,o,i,a,u,s,c,l=t,f=/<(\w+) [^>]*data-mce-bogus="all"[^>]*>/g,d=e.schema;for(u=e.getTempAttrs(),s=l,c=new RegExp(["\\s?("+u.join("|")+')="[^"]+"'].join("|"),"gi"),l=s.replace(c,""),a=d.getShortEndedElements();i=f.exec(l);)r=f.lastIndex,o=i[0].length,n=a[i[1]]?r:Fg.findEndTag(d,l,r),l=l.substring(0,r-o)+l.substring(n),f.lastIndex=r-o;return Si(l)},Ug={trimExternal:zg,trimInternal:zg},qg=0,Vg=2,Hg=1,jg=function(p,g){var e=p.length+g.length+2,h=new Array(e),v=new Array(e),c=function(e,t,n,r,o){var i=l(e,t,n,r);if(null===i||i.start===t&&i.diag===t-r||i.end===e&&i.diag===e-n)for(var a=e,u=n;a<t||u<r;)a<t&&u<r&&p[a]===g[u]?(o.push([0,p[a]]),++a,++u):r-n<t-e?(o.push([2,p[a]]),++a):(o.push([1,g[u]]),++u);else{c(e,i.start,n,i.start-i.diag,o);for(var s=i.start;s<i.end;++s)o.push([0,p[s]]);c(i.end,t,i.end-i.diag,r,o)}},y=function(e,t,n,r){for(var o=e;o-t<r&&o<n&&p[o]===g[o-t];)++o;return{start:e,end:o,diag:t}},l=function(e,t,n,r){var o=t-e,i=r-n;if(0===o||0===i)return null;var a,u,s,c,l,f=o-i,d=i+o,m=(d%2==0?d:d+1)/2;for(h[1+m]=e,v[1+m]=t+1,a=0;a<=m;++a){for(u=-a;u<=a;u+=2){for(s=u+m,u===-a||u!==a&&h[s-1]<h[s+1]?h[s]=h[s+1]:h[s]=h[s-1]+1,l=(c=h[s])-e+n-u;c<t&&l<r&&p[c]===g[l];)h[s]=++c,++l;if(f%2!=0&&f-a<=u&&u<=f+a&&v[s-f]<=h[s])return y(v[s-f],u+e-n,t,r)}for(u=f-a;u<=f+a;u+=2){for(s=u+m-f,u===f-a||u!==f+a&&v[s+1]<=v[s-1]?v[s]=v[s+1]-1:v[s]=v[s-1],l=(c=v[s]-1)-e+n-u;e<=c&&n<=l&&p[c]===g[l];)v[s]=c--,l--;if(f%2==0&&-a<=u&&u<=a&&v[s]<=h[s+f])return y(v[s],u+e-n,t,r)}}},t=[];return c(0,p.length,0,g.length,t),t},$g=function(e){return Ao.isElement(e)?e.outerHTML:Ao.isText(e)?Vo.encodeRaw(e.data,!1):Ao.isComment(e)?"\x3c!--"+e.data+"--\x3e":""},Wg=function(e,t,n){var r=function(e){var t,n,r;for(r=document.createElement("div"),t=document.createDocumentFragment(),e&&(r.innerHTML=e);n=r.firstChild;)t.appendChild(n);return t}(t);if(e.hasChildNodes()&&n<e.childNodes.length){var o=e.childNodes[n];o.parentNode.insertBefore(r,o)}else e.appendChild(r)},Kg=function(e){return Bt.filter(Bt.map(e.childNodes,$g),function(e){return 0<e.length})},Xg=function(e,t){var n,r,o,i=Bt.map(t.childNodes,$g);return n=jg(i,e),r=t,o=0,Bt.each(n,function(e){e[0]===qg?o++:e[0]===Hg?(Wg(r,e[1],o),o++):e[0]===Vg&&function(e,t){if(e.hasChildNodes()&&t<e.childNodes.length){var n=e.childNodes[t];n.parentNode.removeChild(n)}}(r,o)}),t},Yg=function(e,t){var n=(t||document).createElement("div");return n.innerHTML=e,qr.children(qn.fromDom(n))},Gg=function(e){return e.dom().innerHTML},Jg=Gg,Qg=function(e,t){var n=qr.owner(e).dom(),r=qn.fromDom(n.createDocumentFragment()),o=Yg(t,n);Pc(r,o),Ic.empty(e),Fu.append(e,r)},Zg=function(e){return{type:"fragmented",fragments:e,content:"",bookmark:null,beforeBookmark:null}},eh=function(e){return{type:"complete",fragments:null,content:e,bookmark:null,beforeBookmark:null}},th=function(e){return"fragmented"===e.type?e.fragments.join(""):e.content},nh=function(e){var t=qn.fromTag("body");return Qg(t,th(e)),H.each(fu(t,"*[data-mce-bogus]"),Ic.unwrap),Jg(t)},rh={createFragmentedLevel:Zg,createCompleteLevel:eh,createFromEditor:function(n){var e,t,r;return e=Kg(n.getBody()),-1!==(t=(r=H.bind(e,function(e){var t=Ug.trimInternal(n.serializer,e);return 0<t.length?[t]:[]})).join("")).indexOf("</iframe>")?Zg(r):eh(t)},applyToEditor:function(e,t,n){"fragmented"===t.type?Xg(t.fragments,e.getBody()):e.setContent(t.content,{format:"raw"}),e.selection.moveToBookmark(n?t.beforeBookmark:t.bookmark)},isEq:function(e,t){return!(!e||!t)&&(r=t,th(e)===th(r)||(n=t,nh(e)===nh(n)));var n,r}};function oh(u){var s,r,o=this,c=0,l=[],t=0,f=function(){return 0===t},i=function(e){f()&&(o.typing=e)},d=function(e){u.setDirty(e)},a=function(e){i(!1),o.add({},e)},n=function(){o.typing&&(i(!1),o.add())};return u.on("init",function(){o.add()}),u.on("BeforeExecCommand",function(e){var t=e.command;"Undo"!==t&&"Redo"!==t&&"mceRepaint"!==t&&(n(),o.beforeChange())}),u.on("ExecCommand",function(e){var t=e.command;"Undo"!==t&&"Redo"!==t&&"mceRepaint"!==t&&a(e)}),u.on("ObjectResizeStart Cut",function(){o.beforeChange()}),u.on("SaveContent ObjectResized blur",a),u.on("DragEnd",a),u.on("KeyUp",function(e){var t=e.keyCode;e.isDefaultPrevented()||((33<=t&&t<=36||37<=t&&t<=40||45===t||e.ctrlKey)&&(a(),u.nodeChanged()),46!==t&&8!==t||u.nodeChanged(),r&&o.typing&&!1===rh.isEq(rh.createFromEditor(u),l[0])&&(!1===u.isDirty()&&(d(!0),u.fire("change",{level:l[0],lastLevel:null})),u.fire("TypingUndo"),r=!1,u.nodeChanged()))}),u.on("KeyDown",function(e){var t=e.keyCode;if(!e.isDefaultPrevented())if(33<=t&&t<=36||37<=t&&t<=40||45===t)o.typing&&a(e);else{var n=e.ctrlKey&&!e.altKey||e.metaKey;!(t<16||20<t)||224===t||91===t||o.typing||n||(o.beforeChange(),i(!0),o.add({},e),r=!0)}}),u.on("MouseDown",function(e){o.typing&&a(e)}),u.on("input",function(e){var t;e.inputType&&("insertReplacementText"===e.inputType||"insertText"===(t=e).inputType&&null===t.data)&&a(e)}),u.addShortcut("meta+z","","Undo"),u.addShortcut("meta+y,meta+shift+z","","Redo"),u.on("AddUndo Undo Redo ClearUndos",function(e){e.isDefaultPrevented()||u.nodeChanged()}),o={data:l,typing:!1,beforeChange:function(){f()&&(s=bc.getUndoBookmark(u.selection))},add:function(e,t){var n,r,o,i=u.settings;if(o=rh.createFromEditor(u),e=e||{},e=Lt.extend(e,o),!1===f()||u.removed)return null;if(r=l[c],u.fire("BeforeAddUndo",{level:e,lastLevel:r,originalEvent:t}).isDefaultPrevented())return null;if(r&&rh.isEq(r,e))return null;if(l[c]&&(l[c].beforeBookmark=s),i.custom_undo_redo_levels&&l.length>i.custom_undo_redo_levels){for(n=0;n<l.length-1;n++)l[n]=l[n+1];l.length--,c=l.length}e.bookmark=bc.getUndoBookmark(u.selection),c<l.length-1&&(l.length=c+1),l.push(e),c=l.length-1;var a={level:e,lastLevel:r,originalEvent:t};return u.fire("AddUndo",a),0<c&&(d(!0),u.fire("change",a)),e},undo:function(){var e;return o.typing&&(o.add(),o.typing=!1,i(!1)),0<c&&(e=l[--c],rh.applyToEditor(u,e,!0),d(!0),u.fire("undo",{level:e})),e},redo:function(){var e;return c<l.length-1&&(e=l[++c],rh.applyToEditor(u,e,!1),d(!0),u.fire("redo",{level:e})),e},clear:function(){l=[],c=0,o.typing=!1,o.data=l,u.fire("ClearUndos")},hasUndo:function(){return 0<c||o.typing&&l[0]&&!rh.isEq(rh.createFromEditor(u),l[0])},hasRedo:function(){return c<l.length-1&&!o.typing},transact:function(e){return n(),o.beforeChange(),o.ignore(e),o.add()},ignore:function(e){try{t++,e()}finally{t--}},extra:function(e,t){var n,r;o.transact(e)&&(r=l[c].bookmark,n=l[c-1],rh.applyToEditor(u,n,!0),o.transact(t)&&(l[c-1].beforeBookmark=r))}}}var ih,ah,uh=function(e){return e&&/^(IMG)$/.test(e.nodeName)},sh=function(e){return e&&3===e.nodeType&&/^([\t \r\n]+|)$/.test(e.nodeValue)},ch=function(e,t,n){return"color"!==n&&"backgroundColor"!==n||(t=e.toHex(t)),"fontWeight"===n&&700===t&&(t="bold"),"fontFamily"===n&&(t=t.replace(/[\'\"]/g,"").replace(/,\s+/g,",")),""+t},lh={isInlineBlock:uh,moveStart:function(e,t,n){var r,o,i,a=n.startOffset,u=n.startContainer;if((n.startContainer!==n.endContainer||!uh(n.startContainer.childNodes[n.startOffset]))&&1===u.nodeType)for(a<(i=u.childNodes).length?r=new no(u=i[a],e.getParent(u,e.isBlock)):(r=new no(u=i[i.length-1],e.getParent(u,e.isBlock))).next(!0),o=r.current();o;o=r.next())if(3===o.nodeType&&!sh(o))return n.setStart(o,0),void t.setRng(n)},getNonWhiteSpaceSibling:function(e,t,n){if(e)for(t=t?"nextSibling":"previousSibling",e=n?e:e[t];e;e=e[t])if(1===e.nodeType||!sh(e))return e},isTextBlock:function(e,t){return t.nodeType&&(t=t.nodeName),!!e.schema.getTextBlockElements()[t.toLowerCase()]},isValid:function(e,t,n){return e.schema.isValidChild(t,n)},isWhiteSpaceNode:sh,replaceVars:function(e,n){return"string"!=typeof e?e=e(n):n&&(e=e.replace(/%(\w+)/g,function(e,t){return n[t]||e})),e},isEq:function(e,t){return t=t||"",e=""+((e=e||"").nodeName||e),t=""+(t.nodeName||t),e.toLowerCase()===t.toLowerCase()},normalizeStyleValue:ch,getStyle:function(e,t,n){return ch(e,e.getStyle(t,n),n)},getTextDecoration:function(t,e){var n;return t.getParent(e,function(e){return(n=t.getStyle(e,"text-decoration"))&&"none"!==n}),n},getParents:function(e,t,n){return e.getParents(t,n,e.getRoot())}},fh=Bc.isBookmarkNode,dh=lh.getParents,mh=lh.isWhiteSpaceNode,ph=lh.isTextBlock,gh=function(e,t){for(void 0===t&&(t=3===e.nodeType?e.length:e.childNodes.length);e&&e.hasChildNodes();)(e=e.childNodes[t])&&(t=3===e.nodeType?e.length:e.childNodes.length);return{node:e,offset:t}},hh=function(e,t){for(var n=t;n;){if(1===n.nodeType&&e.getContentEditable(n))return"false"===e.getContentEditable(n)?n:t;n=n.parentNode}return t},vh=function(e,t,n,r){var o,i,a=n.nodeValue;return void 0===r&&(r=e?a.length:0),e?(o=a.lastIndexOf(" ",r),-1===(o=(i=a.lastIndexOf("\xa0",r))<o?o:i)||t||o++):(o=a.indexOf(" ",r),i=a.indexOf("\xa0",r),o=-1!==o&&(-1===i||o<i)?o:i),o},yh=function(e,t,n,r,o,i){var a,u,s,c;if(3===n.nodeType){if(-1!==(s=vh(o,i,n,r)))return{container:n,offset:s};c=n}for(a=new no(n,e.getParent(n,e.isBlock)||t);u=a[o?"prev":"next"]();)if(3===u.nodeType){if(-1!==(s=vh(o,i,c=u)))return{container:u,offset:s}}else if(e.isBlock(u))break;if(c)return{container:c,offset:r=o?0:c.length}},bh=function(e,t,n,r,o){var i,a,u,s;for(3===r.nodeType&&0===r.nodeValue.length&&r[o]&&(r=r[o]),i=dh(e,r),a=0;a<i.length;a++)for(u=0;u<t.length;u++)if(!("collapsed"in(s=t[u])&&s.collapsed!==n.collapsed)&&e.is(i[a],s.selector))return i[a];return r},Ch=function(t,e,n,r){var o,i=t.dom,a=i.getRoot();if(e[0].wrapper||(o=i.getParent(n,e[0].block,a)),!o){var u=i.getParent(n,"LI,TD,TH");o=i.getParent(3===n.nodeType?n.parentNode:n,function(e){return e!==a&&ph(t,e)},u)}if(o&&e[0].wrapper&&(o=dh(i,o,"ul,ol").reverse()[0]||o),!o)for(o=n;o[r]&&!i.isBlock(o[r])&&(o=o[r],!lh.isEq(o,"br")););return o||n},xh=function(e,t,n,r,o,i,a){var u,s,c,l,f,d;if(u=s=a?n:o,l=a?"previousSibling":"nextSibling",f=e.getRoot(),3===u.nodeType&&!mh(u)&&(a?0<r:i<u.nodeValue.length))return u;for(;;){if(!t[0].block_expand&&e.isBlock(s))return s;for(c=s[l];c;c=c[l])if(!fh(c)&&!mh(c)&&("BR"!==(d=c).nodeName||!d.getAttribute("data-mce-bogus")||d.nextSibling))return s;if(s===f||s.parentNode===f){u=s;break}s=s.parentNode}return u},wh=function(e,t,n,r){var o,i=t.startContainer,a=t.startOffset,u=t.endContainer,s=t.endOffset,c=e.dom;return 1===i.nodeType&&i.hasChildNodes()&&3===(i=na(i,a)).nodeType&&(a=0),1===u.nodeType&&u.hasChildNodes()&&3===(u=na(u,t.collapsed?s:s-1)).nodeType&&(s=u.nodeValue.length),i=hh(c,i),u=hh(c,u),(fh(i.parentNode)||fh(i))&&3===(i=(i=fh(i)?i:i.parentNode).nextSibling||i).nodeType&&(a=0),(fh(u.parentNode)||fh(u))&&3===(u=(u=fh(u)?u:u.parentNode).previousSibling||u).nodeType&&(s=u.length),n[0].inline&&(t.collapsed&&((o=yh(c,e.getBody(),i,a,!0,r))&&(i=o.container,a=o.offset),(o=yh(c,e.getBody(),u,s,!1,r))&&(u=o.container,s=o.offset)),u=r?u:function(e,t){var n=gh(e,t);if(n.node){for(;n.node&&0===n.offset&&n.node.previousSibling;)n=gh(n.node.previousSibling);n.node&&0<n.offset&&3===n.node.nodeType&&" "===n.node.nodeValue.charAt(n.offset-1)&&1<n.offset&&(e=n.node).splitText(n.offset-1)}return e}(u,s)),(n[0].inline||n[0].block_expand)&&(n[0].inline&&3===i.nodeType&&0!==a||(i=xh(c,n,i,a,u,s,!0)),n[0].inline&&3===u.nodeType&&s!==u.nodeValue.length||(u=xh(c,n,i,a,u,s,!1))),n[0].selector&&!1!==n[0].expand&&!n[0].inline&&(i=bh(c,n,t,i,"previousSibling"),u=bh(c,n,t,u,"nextSibling")),(n[0].block||n[0].selector)&&(i=Ch(e,n,i,"previousSibling"),u=Ch(e,n,u,"nextSibling"),n[0].block&&(c.isBlock(i)||(i=xh(c,n,i,a,u,s,!0)),c.isBlock(u)||(u=xh(c,n,i,a,u,s,!1)))),1===i.nodeType&&(a=c.nodeIndex(i),i=i.parentNode),1===u.nodeType&&(s=c.nodeIndex(u)+1,u=u.parentNode),{startContainer:i,startOffset:a,endContainer:u,endOffset:s}},Nh=lh.isEq,Eh=function(e,t,n){var r=e.formatter.get(n);if(r)for(var o=0;o<r.length;o++)if(!1===r[o].inherit&&e.dom.is(t,r[o].selector))return!0;return!1},Sh=function(t,e,n,r){var o=t.dom.getRoot();return e!==o&&(e=t.dom.getParent(e,function(e){return!!Eh(t,e,n)||e.parentNode===o||!!Ah(t,e,n,r,!0)}),Ah(t,e,n,r))},kh=function(e,t,n){return!!Nh(t,n.inline)||!!Nh(t,n.block)||(n.selector?1===t.nodeType&&e.is(t,n.selector):void 0)},Th=function(e,t,n,r,o,i){var a,u,s,c=n[r];if(n.onmatch)return n.onmatch(t,n,r);if(c)if("undefined"==typeof c.length){for(a in c)if(c.hasOwnProperty(a)){if(u="attributes"===r?e.getAttrib(t,a):lh.getStyle(e,t,a),o&&!u&&!n.exact)return;if((!o||n.exact)&&!Nh(u,lh.normalizeStyleValue(e,lh.replaceVars(c[a],i),a)))return}}else for(s=0;s<c.length;s++)if("attributes"===r?e.getAttrib(t,c[s]):lh.getStyle(e,t,c[s]))return n;return n},Ah=function(e,t,n,r,o){var i,a,u,s,c=e.formatter.get(n),l=e.dom;if(c&&t)for(a=0;a<c.length;a++)if(i=c[a],kh(e.dom,t,i)&&Th(l,t,i,"attributes",o,r)&&Th(l,t,i,"styles",o,r)){if(s=i.classes)for(u=0;u<s.length;u++)if(!e.dom.hasClass(t,s[u]))return;return i}},Rh={matchNode:Ah,matchName:kh,match:function(e,t,n,r){var o;return r?Sh(e,r,t,n):(r=e.selection.getNode(),!!Sh(e,r,t,n)||!((o=e.selection.getStart())===r||!Sh(e,o,t,n)))},matchAll:function(r,o,i){var e,a=[],u={};return e=r.selection.getStart(),r.dom.getParent(e,function(e){var t,n;for(t=0;t<o.length;t++)n=o[t],!u[n]&&Ah(r,e,n,i)&&(u[n]=!0,a.push(n))},r.dom.getRoot()),a},canApply:function(e,t){var n,r,o,i,a,u=e.formatter.get(t),s=e.dom;if(u)for(n=e.selection.getStart(),r=lh.getParents(s,n),i=u.length-1;0<=i;i--){if(!(a=u[i].selector)||u[i].defaultBlock)return!0;for(o=r.length-1;0<=o;o--)if(s.is(r[o],a))return!0}return!1},matchesUnInheritedFormatSelector:Eh},Bh=function(e,t){return e.splitText(t)},_h={split:function(e){var t=e.startContainer,n=e.startOffset,r=e.endContainer,o=e.endOffset;return t===r&&Ao.isText(t)?0<n&&n<t.nodeValue.length&&(t=(r=Bh(t,n)).previousSibling,n<o?(t=r=Bh(r,o-=n).previousSibling,o=r.nodeValue.length,n=0):o=0):(Ao.isText(t)&&0<n&&n<t.nodeValue.length&&(t=Bh(t,n),n=0),Ao.isText(r)&&0<o&&o<r.nodeValue.length&&(o=(r=Bh(r,o).previousSibling).nodeValue.length)),{startContainer:t,startOffset:n,endContainer:r,endOffset:o}}},Dh=Ei,Oh="_mce_caret",Ph=function(e){return 0<function(e){for(var t=[];e;){if(3===e.nodeType&&e.nodeValue!==Dh||1<e.childNodes.length)return[];1===e.nodeType&&t.push(e),e=e.firstChild}return t}(e).length},Lh=function(e){var t;if(e)for(e=(t=new no(e,e)).current();e;e=t.next())if(3===e.nodeType)return e;return null},Ih=function(e){var t=qn.fromTag("span");return cr.setAll(t,{id:Oh,"data-mce-bogus":"1","data-mce-type":"format-caret"}),e&&Fu.append(t,qn.fromText(Dh)),t},Mh=function(e,t,n,r){var o,i,a,u;o=t.getRng(!0),i=e.getParent(n,e.isBlock),Ph(n)?(!1!==r&&(o.setStartBefore(n),o.setEndBefore(n)),e.remove(n)):((u=Lh(n))&&u.nodeValue.charAt(0)===Dh&&u.deleteData(0,1),a=u,o.startContainer===a&&0<o.startOffset&&o.setStart(a,o.startOffset-1),o.endContainer===a&&0<o.endOffset&&o.setEnd(a,o.endOffset-1),e.remove(n,!0)),i&&e.isEmpty(i)&&Uc(qn.fromDom(i)),t.setRng(o)},Fh=function(e,t,n,r,o){if(r)Mh(t,n,r,o);else if(!(r=wc(e,n.getStart())))for(;r=t.get(Oh);)Mh(t,n,r,!1)},zh=function(e,t,n){var r=e.dom,o=r.getParent(n,ua.curry(lh.isTextBlock,e));o&&r.isEmpty(o)?n.parentNode.replaceChild(t,n):(zc(qn.fromDom(n)),r.isEmpty(n)?n.parentNode.replaceChild(t,n):r.insertAfter(t,n))},Uh=function(e,t){return e.appendChild(t),t},qh=function(e,t){var n=H.foldr(e,function(e,t){return Uh(e,t.cloneNode(!1))},t);return Uh(n,n.ownerDocument.createTextNode(Dh))},Vh=function(e){var i=e.dom,a=e.selection,u=e.getBody();e.on("mouseup keydown",function(e){var t,n,r,o;t=u,n=i,r=a,o=e.keyCode,Fh(t,n,r,null,!1),8===o&&r.isCollapsed()&&r.getStart().innerHTML===Dh&&Fh(t,n,r,wc(t,r.getStart())),37!==o&&39!==o||Fh(t,n,r,wc(t,r.getStart()))})},Hh=function(e,t){return e.schema.getTextInlineElements().hasOwnProperty(Qn.name(t))&&!xc(t.dom())&&!Ao.isBogus(t.dom())},jh={},$h=Bt.filter,Wh=Bt.each;ah=function(e){var t,n,r=e.selection.getRng();t=Ao.matchNodeNames("pre"),r.collapsed||(n=e.selection.getSelectedBlocks(),Wh($h($h(n,t),function(e){return t(e.previousSibling)&&-1!==Bt.indexOf(n,e.previousSibling)}),function(e){var t,n;t=e.previousSibling,en(n=e).remove(),en(t).append("<br><br>").append(n.childNodes)}))},jh[ih="pre"]||(jh[ih]=[]),jh[ih].push(ah);var Kh=function(e,t){Wh(jh[e],function(e){e(t)})},Xh=Lt.each,Yh={walk:function(e,t,o){var n,r,i,a,u,s,c,l=t.startContainer,f=t.startOffset,d=t.endContainer,m=t.endOffset;if(0<(c=e.select("td[data-mce-selected],th[data-mce-selected]")).length)Xh(c,function(e){o([e])});else{var p,g,h,v=function(e){var t;return 3===(t=e[0]).nodeType&&t===l&&f>=t.nodeValue.length&&e.splice(0,1),t=e[e.length-1],0===m&&0<e.length&&t===d&&3===t.nodeType&&e.splice(e.length-1,1),e},y=function(e,t,n){for(var r=[];e&&e!==n;e=e[t])r.push(e);return r},b=function(e,t){do{if(e.parentNode===t)return e;e=e.parentNode}while(e)},C=function(e,t,n){var r=n?"nextSibling":"previousSibling";for(u=(a=e).parentNode;a&&a!==t;a=u)u=a.parentNode,(s=y(a===e?a:a[r],r)).length&&(n||s.reverse(),o(v(s)))};if(1===l.nodeType&&l.hasChildNodes()&&(l=l.childNodes[f]),1===d.nodeType&&d.hasChildNodes()&&(g=m,h=(p=d).childNodes,--g>h.length-1?g=h.length-1:g<0&&(g=0),d=h[g]||p),l===d)return o(v([l]));for(n=e.findCommonAncestor(l,d),a=l;a;a=a.parentNode){if(a===d)return C(l,n,!0);if(a===n)break}for(a=d;a;a=a.parentNode){if(a===l)return C(d,n);if(a===n)break}r=b(l,n)||l,i=b(d,n)||d,C(l,r,!0),(s=y(r===l?r:r.nextSibling,"nextSibling",i===d?i.nextSibling:i)).length&&o(v(s)),C(d,i)}}},Gh=/^(src|href|style)$/,Jh=Lt.each,Qh=lh.isEq,Zh=function(e){return/^(TH|TD)$/.test(e.nodeName)},ev=function(e,t,n){var r,o,i;return r=t[n?"startContainer":"endContainer"],o=t[n?"startOffset":"endOffset"],Ao.isElement(r)&&(i=r.childNodes.length-1,!n&&o&&o--,r=r.childNodes[i<o?i:o]),Ao.isText(r)&&n&&o>=r.nodeValue.length&&(r=new no(r,e.getBody()).next()||r),Ao.isText(r)&&!n&&0===o&&(r=new no(r,e.getBody()).prev()||r),r},tv=function(e,t,n,r){var o=e.create(n,r);return t.parentNode.insertBefore(o,t),o.appendChild(t),o},nv=function(e,t,n,r){return!(t=lh.getNonWhiteSpaceSibling(t,n,r))||"BR"===t.nodeName||e.isBlock(t)},rv=function(e,n,r,o,i){var t,a,u,s,c,l,f,d,m,p,g,h,v,y,b=e.dom;if(c=b,!(Qh(l=o,(f=n).inline)||Qh(l,f.block)||(f.selector?Ao.isElement(l)&&c.is(l,f.selector):void 0)||(s=o,n.links&&"A"===s.tagName)))return!1;if("all"!==n.remove)for(Jh(n.styles,function(e,t){e=lh.normalizeStyleValue(b,lh.replaceVars(e,r),t),"number"==typeof t&&(t=e,i=0),(n.remove_similar||!i||Qh(lh.getStyle(b,i,t),e))&&b.setStyle(o,t,""),u=1}),u&&""===b.getAttrib(o,"style")&&(o.removeAttribute("style"),o.removeAttribute("data-mce-style")),Jh(n.attributes,function(e,t){var n;if(e=lh.replaceVars(e,r),"number"==typeof t&&(t=e,i=0),!i||Qh(b.getAttrib(i,t),e)){if("class"===t&&(e=b.getAttrib(o,t))&&(n="",Jh(e.split(/\s+/),function(e){/mce\-\w+/.test(e)&&(n+=(n?" ":"")+e)}),n))return void b.setAttrib(o,t,n);"class"===t&&o.removeAttribute("className"),Gh.test(t)&&o.removeAttribute("data-mce-"+t),o.removeAttribute(t)}}),Jh(n.classes,function(e){e=lh.replaceVars(e,r),i&&!b.hasClass(i,e)||b.removeClass(o,e)}),a=b.getAttribs(o),t=0;t<a.length;t++){var C=a[t].nodeName;if(0!==C.indexOf("_")&&0!==C.indexOf("data-"))return!1}return"none"!==n.remove?(d=e,p=n,h=(m=o).parentNode,v=d.dom,y=d.settings.forced_root_block,p.block&&(y?h===v.getRoot()&&(p.list_block&&Qh(m,p.list_block)||Jh(Lt.grep(m.childNodes),function(e){lh.isValid(d,y,e.nodeName.toLowerCase())?g?g.appendChild(e):(g=tv(v,e,y),v.setAttribs(g,d.settings.forced_root_block_attrs)):g=0})):v.isBlock(m)&&!v.isBlock(h)&&(nv(v,m,!1)||nv(v,m.firstChild,!0,1)||m.insertBefore(v.create("br"),m.firstChild),nv(v,m,!0)||nv(v,m.lastChild,!1,1)||m.appendChild(v.create("br")))),p.selector&&p.inline&&!Qh(p.inline,m)||v.remove(m,1),!0):void 0},ov={removeFormat:rv,remove:function(s,c,l,e,f){var t,n,d=s.formatter.get(c),m=d[0],a=!0,u=s.dom,r=s.selection,o=function(e){var n,t,r,o,i,a,u=(n=s,t=e,r=c,o=l,i=f,Jh(lh.getParents(n.dom,t.parentNode).reverse(),function(e){var t;a||"_start"===e.id||"_end"===e.id||(t=Rh.matchNode(n,e,r,o,i))&&!1!==t.split&&(a=e)}),a);return function(e,t,n,r,o,i,a,u){var s,c,l,f,d,m,p=e.dom;if(n){for(m=n.parentNode,s=r.parentNode;s&&s!==m;s=s.parentNode){for(c=p.clone(s,!1),d=0;d<t.length;d++)if(rv(e,t[d],u,c,c)){c=0;break}c&&(l&&c.appendChild(l),f||(f=c),l=c)}!i||a.mixed&&p.isBlock(n)||(r=p.split(n,r)),l&&(o.parentNode.insertBefore(l,o),f.appendChild(o))}return r}(s,d,u,e,e,!0,m,l)},p=function(e){var t,n,r,o,i;if(Ao.isElement(e)&&u.getContentEditable(e)&&(o=a,a="true"===u.getContentEditable(e),i=!0),t=Lt.grep(e.childNodes),a&&!i)for(n=0,r=d.length;n<r&&!rv(s,d[n],l,e,e);n++);if(m.deep&&t.length){for(n=0,r=t.length;n<r;n++)p(t[n]);i&&(a=o)}},i=function(e){var t=u.get(e?"_start":"_end"),n=t[e?"firstChild":"lastChild"];return Bc.isBookmarkNode(n)&&(n=n[e?"firstChild":"lastChild"]),Ao.isText(n)&&0===n.data.length&&(n=e?t.previousSibling||t.nextSibling:t.nextSibling||t.previousSibling),u.remove(t,!0),n},g=function(e){var t,n,r=e.commonAncestorContainer;if(e=wh(s,e,d,!0),m.split){if((t=ev(s,e,!0))!==(n=ev(s,e))){if(/^(TR|TH|TD)$/.test(t.nodeName)&&t.firstChild&&(t="TR"===t.nodeName?t.firstChild.firstChild||t:t.firstChild||t),r&&/^T(HEAD|BODY|FOOT|R)$/.test(r.nodeName)&&Zh(n)&&n.firstChild&&(n=n.firstChild||n),u.isChildOf(t,n)&&t!==n&&!u.isBlock(n)&&!Zh(t)&&!Zh(n))return t=tv(u,t,"span",{id:"_start","data-mce-type":"bookmark"}),o(t),void(t=i(!0));t=tv(u,t,"span",{id:"_start","data-mce-type":"bookmark"}),n=tv(u,n,"span",{id:"_end","data-mce-type":"bookmark"}),o(t),o(n),t=i(!0),n=i()}else t=n=o(t);e.startContainer=t.parentNode?t.parentNode:t,e.startOffset=u.nodeIndex(t),e.endContainer=n.parentNode?n.parentNode:n,e.endOffset=u.nodeIndex(n)+1}Yh.walk(u,e,function(e){Jh(e,function(e){p(e),Ao.isElement(e)&&"underline"===s.dom.getStyle(e,"text-decoration")&&e.parentNode&&"underline"===lh.getTextDecoration(u,e.parentNode)&&rv(s,{deep:!1,exact:!0,inline:"span",styles:{textDecoration:"underline"}},null,e)})})};if(e)e.nodeType?((n=u.createRng()).setStartBefore(e),n.setEndAfter(e),g(n)):g(e);else if("false"!==u.getContentEditable(r.getNode()))r.isCollapsed()&&m.inline&&!u.select("td[data-mce-selected],th[data-mce-selected]").length?function(e,t,n,r){var o,i,a,u,s,c,l,f=e.dom,d=e.selection,m=[],p=d.getRng();for(o=p.startContainer,i=p.startOffset,3===(s=o).nodeType&&(i!==o.nodeValue.length&&(u=!0),s=s.parentNode);s;){if(Rh.matchNode(e,s,t,n,r)){c=s;break}s.nextSibling&&(u=!0),m.push(s),s=s.parentNode}if(c)if(u){a=d.getBookmark(),p.collapse(!0);var g=wh(e,p,e.formatter.get(t),!0);g=_h.split(g),e.formatter.remove(t,n,g),d.moveToBookmark(a)}else{l=wc(e.getBody(),c);var h=Ih(!1).dom(),v=qh(m,h);zh(e,h,l||c),Mh(f,d,l,!1),d.setCursorLocation(v,1),f.isEmpty(c)&&f.remove(c)}}(s,c,l,f):(t=bc.getPersistentBookmark(s.selection,!0),g(r.getRng()),r.moveToBookmark(t),m.inline&&Rh.match(s,c,l,r.getStart())&&lh.moveStart(u,r,r.getRng()),s.nodeChanged());else{e=r.getNode();for(var h=0,v=d.length;h<v&&(!d[h].ceFalseOverride||!rv(s,d[h],l,e,e));h++);}}},iv=Lt.each,av=function(e){return e&&1===e.nodeType&&!Bc.isBookmarkNode(e)&&!xc(e)&&!Ao.isBogus(e)},uv=function(e,t){var n;for(n=e;n;n=n[t]){if(3===n.nodeType&&0!==n.nodeValue.length)return e;if(1===n.nodeType&&!Bc.isBookmarkNode(n))return n}return e},sv=function(e,t,n){var r,o,i=new Dc(e);if(t&&n&&(t=uv(t,"previousSibling"),n=uv(n,"nextSibling"),i.compare(t,n))){for(r=t.nextSibling;r&&r!==n;)r=(o=r).nextSibling,t.appendChild(o);return e.remove(n),Lt.each(Lt.grep(n.childNodes),function(e){t.appendChild(e)}),t}return n},cv=function(e,t,n){iv(e.childNodes,function(e){av(e)&&(t(e)&&n(e),e.hasChildNodes()&&cv(e,t,n))})},lv=function(n,e){return V.curry(function(e,t){return!(!t||!lh.getStyle(n,t,e))},e)},fv=function(r,e,t){return V.curry(function(e,t,n){r.setStyle(n,e,t),""===n.getAttribute("style")&&n.removeAttribute("style"),dv(r,n)},e,t)},dv=function(e,t){"SPAN"===t.nodeName&&0===e.getAttribs(t).length&&e.remove(t,!0)},mv=function(e,t){var n;1===t.nodeType&&t.parentNode&&1===t.parentNode.nodeType&&(n=lh.getTextDecoration(e,t.parentNode),e.getStyle(t,"color")&&n?e.setStyle(t,"text-decoration",n):e.getStyle(t,"text-decoration")===n&&e.setStyle(t,"text-decoration",null))},pv=function(n,e,r,o){iv(e,function(t){iv(n.dom.select(t.inline,o),function(e){av(e)&&ov.removeFormat(n,t,r,e,t.exact?e:null)}),function(r,e,t){if(e.clear_child_styles){var n=e.links?"*:not(a)":"*";iv(r.select(n,t),function(n){av(n)&&iv(e.styles,function(e,t){r.setStyle(n,t,"")})})}}(n.dom,t,o)})},gv=function(e,t,n,r){(t.styles.color||t.styles.textDecoration)&&(Lt.walk(r,V.curry(mv,e),"childNodes"),mv(e,r))},hv=function(e,t,n,r){t.styles&&t.styles.backgroundColor&&cv(r,lv(e,"fontSize"),fv(e,"backgroundColor",lh.replaceVars(t.styles.backgroundColor,n)))},vv=function(e,t,n,r){"sub"!==t.inline&&"sup"!==t.inline||(cv(r,lv(e,"fontSize"),fv(e,"fontSize","")),e.remove(e.select("sup"===t.inline?"sub":"sup",r),!0))},yv=function(e,t,n,r){r&&!1!==t.merge_siblings&&(r=sv(e,lh.getNonWhiteSpaceSibling(r),r),r=sv(e,r,lh.getNonWhiteSpaceSibling(r,!0)))},bv=function(t,n,r,o,i){Rh.matchNode(t,i.parentNode,r,o)&&ov.removeFormat(t,n,o,i)||n.merge_with_parents&&t.dom.getParent(i.parentNode,function(e){if(Rh.matchNode(t,e,r,o))return ov.removeFormat(t,n,o,i),!0})},Cv=Lt.each,xv=function(p,g,h,r){var e,t,v=p.formatter.get(g),y=v[0],o=!r&&p.selection.isCollapsed(),i=p.dom,n=p.selection,b=function(n,e){if(e=e||y,n){if(e.onformat&&e.onformat(n,e,h,r),Cv(e.styles,function(e,t){i.setStyle(n,t,lh.replaceVars(e,h))}),e.styles){var t=i.getAttrib(n,"style");t&&n.setAttribute("data-mce-style",t)}Cv(e.attributes,function(e,t){i.setAttrib(n,t,lh.replaceVars(e,h))}),Cv(e.classes,function(e){e=lh.replaceVars(e,h),i.hasClass(n,e)||i.addClass(n,e)})}},C=function(e,t){var n=!1;return!!y.selector&&(Cv(e,function(e){if(!("collapsed"in e&&e.collapsed!==o))return i.is(t,e.selector)&&!xc(t)?(b(t,e),!(n=!0)):void 0}),n)},a=function(s,e,t,c){var l,f,d=[],m=!0;l=y.inline||y.block,f=s.create(l),b(f),Yh.walk(s,e,function(e){var a,u=function(e){var t,n,r,o;if(o=m,t=e.nodeName.toLowerCase(),n=e.parentNode.nodeName.toLowerCase(),1===e.nodeType&&s.getContentEditable(e)&&(o=m,m="true"===s.getContentEditable(e),r=!0),lh.isEq(t,"br"))return a=0,void(y.block&&s.remove(e));if(y.wrapper&&Rh.matchNode(p,e,g,h))a=0;else{if(m&&!r&&y.block&&!y.wrapper&&lh.isTextBlock(p,t)&&lh.isValid(p,n,l))return e=s.rename(e,l),b(e),d.push(e),void(a=0);if(y.selector){var i=C(v,e);if(!y.inline||i)return void(a=0)}!m||r||!lh.isValid(p,l,t)||!lh.isValid(p,n,l)||!c&&3===e.nodeType&&1===e.nodeValue.length&&65279===e.nodeValue.charCodeAt(0)||xc(e)||y.inline&&s.isBlock(e)?(a=0,Cv(Lt.grep(e.childNodes),u),r&&(m=o),a=0):(a||(a=s.clone(f,!1),e.parentNode.insertBefore(a,e),d.push(a)),a.appendChild(e))}};Cv(e,u)}),!0===y.links&&Cv(d,function(e){var t=function(e){"A"===e.nodeName&&b(e,y),Cv(Lt.grep(e.childNodes),t)};t(e)}),Cv(d,function(e){var t,n,r,o,i,a=function(e){var n=!1;return Cv(e.childNodes,function(e){if((t=e)&&1===t.nodeType&&!Bc.isBookmarkNode(t)&&!xc(t)&&!Ao.isBogus(t))return n=e,!1;var t}),n};n=0,Cv(e.childNodes,function(e){lh.isWhiteSpaceNode(e)||Bc.isBookmarkNode(e)||n++}),t=n,!(1<d.length)&&s.isBlock(e)||0!==t?(y.inline||y.wrapper)&&(y.exact||1!==t||((o=a(r=e))&&!Bc.isBookmarkNode(o)&&Rh.matchName(s,o,y)&&(i=s.clone(o,!1),b(i),s.replace(i,r,!0),s.remove(o,1)),e=i||r),pv(p,v,h,e),bv(p,y,g,h,e),hv(s,y,h,e),vv(s,y,h,e),yv(s,y,h,e)):s.remove(e,1)})};if("false"!==i.getContentEditable(n.getNode())){if(y){if(r)r.nodeType?C(v,r)||((t=i.createRng()).setStartBefore(r),t.setEndAfter(r),a(i,wh(p,t,v),0,!0)):a(i,r,0,!0);else if(o&&y.inline&&!i.select("td[data-mce-selected],th[data-mce-selected]").length)!function(e,t,n){var r,o,i,a,u,s,c=e.selection;a=(r=c.getRng(!0)).startOffset,s=r.startContainer.nodeValue,(o=wc(e.getBody(),c.getStart()))&&(i=Lh(o));var l,f,d=/[^\s\u00a0\u00ad\u200b\ufeff]/;s&&0<a&&a<s.length&&d.test(s.charAt(a))&&d.test(s.charAt(a-1))?(u=c.getBookmark(),r.collapse(!0),r=wh(e,r,e.formatter.get(t)),r=_h.split(r),e.formatter.apply(t,n,r),c.moveToBookmark(u)):(o&&i.nodeValue===Dh||(l=e.getDoc(),f=Ih(!0).dom(),i=(o=l.importNode(f,!0)).firstChild,r.insertNode(o),a=1),e.formatter.apply(t,n,o),c.setCursorLocation(i,a))}(p,g,h);else{var u=p.selection.getNode();p.settings.forced_root_block||!v[0].defaultBlock||i.getParent(u,i.isBlock)||xv(p,v[0].defaultBlock),p.selection.setRng(Wc(p.selection.getRng())),e=bc.getPersistentBookmark(p.selection,!0),a(i,wh(p,n.getRng(),v)),y.styles&&gv(i,y,h,u),n.moveToBookmark(e),lh.moveStart(i,n,n.getRng()),p.nodeChanged()}Kh(g,p)}}else{r=n.getNode();for(var s=0,c=v.length;s<c;s++)if(v[s].ceFalseOverride&&i.is(r,v[s].selector))return void b(r,v[s])}},wv={applyFormat:xv},Nv=Lt.each,Ev={formatChanged:function(e,t,n,r,o){var i,a,u,s,c,l,f,d;null===t.get()&&(a=e,u={},(i=t).set({}),a.on("NodeChange",function(n){var r=lh.getParents(a.dom,n.element),o={};r=Lt.grep(r,function(e){return 1===e.nodeType&&!e.getAttribute("data-mce-bogus")}),Nv(i.get(),function(e,n){Nv(r,function(t){return a.formatter.matchNode(t,n,{},e.similar)?(u[n]||(Nv(e,function(e){e(!0,{node:t,format:n,parents:r})}),u[n]=e),o[n]=e,!1):!Rh.matchesUnInheritedFormatSelector(a,t,n)&&void 0})}),Nv(u,function(e,t){o[t]||(delete u[t],Nv(e,function(e){e(!1,{node:n.element,format:t,parents:r})}))})})),c=n,l=r,f=o,d=(s=t).get(),Nv(c.split(","),function(e){d[e]||(d[e]=[],d[e].similar=f),d[e].push(l)}),s.set(d)}},Sv={get:function(r){var t={valigntop:[{selector:"td,th",styles:{verticalAlign:"top"}}],valignmiddle:[{selector:"td,th",styles:{verticalAlign:"middle"}}],valignbottom:[{selector:"td,th",styles:{verticalAlign:"bottom"}}],alignleft:[{selector:"figure.image",collapsed:!1,classes:"align-left",ceFalseOverride:!0,preview:"font-family font-size"},{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"left"},inherit:!1,preview:!1,defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"left"},preview:"font-family font-size"}],aligncenter:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"center"},inherit:!1,preview:"font-family font-size",defaultBlock:"div"},{selector:"figure.image",collapsed:!1,classes:"align-center",ceFalseOverride:!0,preview:"font-family font-size"},{selector:"img",collapsed:!1,styles:{display:"block",marginLeft:"auto",marginRight:"auto"},preview:!1},{selector:"table",collapsed:!1,styles:{marginLeft:"auto",marginRight:"auto"},preview:"font-family font-size"}],alignright:[{selector:"figure.image",collapsed:!1,classes:"align-right",ceFalseOverride:!0,preview:"font-family font-size"},{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"right"},inherit:!1,preview:"font-family font-size",defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"right"},preview:"font-family font-size"}],alignjustify:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"justify"},inherit:!1,defaultBlock:"div",preview:"font-family font-size"}],bold:[{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}},{inline:"b",remove:"all"}],italic:[{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}},{inline:"i",remove:"all"}],underline:[{inline:"span",styles:{textDecoration:"underline"},exact:!0},{inline:"u",remove:"all"}],strikethrough:[{inline:"span",styles:{textDecoration:"line-through"},exact:!0},{inline:"strike",remove:"all"}],forecolor:{inline:"span",styles:{color:"%value"},links:!0,remove_similar:!0,clear_child_styles:!0},hilitecolor:{inline:"span",styles:{backgroundColor:"%value"},links:!0,remove_similar:!0,clear_child_styles:!0},fontname:{inline:"span",toggle:!1,styles:{fontFamily:"%value"},clear_child_styles:!0},fontsize:{inline:"span",toggle:!1,styles:{fontSize:"%value"},clear_child_styles:!0},fontsize_class:{inline:"span",attributes:{"class":"%value"}},blockquote:{block:"blockquote",wrapper:1,remove:"all"},subscript:{inline:"sub"},superscript:{inline:"sup"},code:{inline:"code"},link:{inline:"a",selector:"a",remove:"all",split:!0,deep:!0,onmatch:function(){return!0},onformat:function(n,e,t){Lt.each(t,function(e,t){r.setAttrib(n,t,e)})}},removeformat:[{selector:"b,strong,em,i,font,u,strike,sub,sup,dfn,code,samp,kbd,var,cite,mark,q,del,ins",remove:"all",split:!0,expand:!1,block_expand:!0,deep:!0},{selector:"span",attributes:["style","class"],remove:"empty",split:!0,expand:!1,deep:!0},{selector:"*",attributes:["style","class"],split:!1,expand:!1,deep:!0}]};return Lt.each("p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp".split(/\s/),function(e){t[e]={block:e,remove:"all"}}),t}},kv=Lt.each,Tv=di.DOM,Av=function(e,t){var n,o,r,m=t&&t.schema||Zo({}),p=function(e){var t,n,r;return o="string"==typeof e?{name:e,classes:[],attrs:{}}:e,t=Tv.create(o.name),n=t,(r=o).classes.length&&Tv.addClass(n,r.classes.join(" ")),Tv.setAttribs(n,r.attrs),t},g=function(n,e,t){var r,o,i,a,u,s,c,l,f=0<e.length&&e[0],d=f&&f.name;if(u=d,s="string"!=typeof(a=n)?a.nodeName.toLowerCase():a,c=m.getElementRule(s),i=!(!(l=c&&c.parentsRequired)||!l.length)&&(u&&-1!==Lt.inArray(l,u)?u:l[0]))d===i?(o=e[0],e=e.slice(1)):o=i;else if(f)o=e[0],e=e.slice(1);else if(!t)return n;return o&&(r=p(o)).appendChild(n),t&&(r||(r=Tv.create("div")).appendChild(n),Lt.each(t,function(e){var t=p(e);r.insertBefore(t,n)})),g(r,e,o&&o.siblings)};return e&&e.length?(o=e[0],n=p(o),(r=Tv.create("div")).appendChild(g(n,e.slice(1),o.siblings)),r):""},Rv=function(e){var t,a={classes:[],attrs:{}};return"*"!==(e=a.selector=Lt.trim(e))&&(t=e.replace(/(?:([#\.]|::?)([\w\-]+)|(\[)([^\]]+)\]?)/g,function(e,t,n,r,o){switch(t){case"#":a.attrs.id=n;break;case".":a.classes.push(n);break;case":":-1!==Lt.inArray("checked disabled enabled read-only required".split(" "),n)&&(a.attrs[n]=n)}if("["===r){var i=o.match(/([\w\-]+)(?:\=\"([^\"]+))?/);i&&(a.attrs[i[1]]=i[2])}return""})),a.name=t||"div",a},Bv=function(e){return e&&"string"==typeof e?(e=(e=e.split(/\s*,\s*/)[0]).replace(/\s*(~\+|~|\+|>)\s*/g,"$1"),Lt.map(e.split(/(?:>|\s+(?![^\[\]]+\]))/),function(e){var t=Lt.map(e.split(/(?:~\+|~|\+)/),Rv),n=t.pop();return t.length&&(n.siblings=t),n}).reverse()):[]},_v={getCssText:function(n,e){var t,r,o,i,a,u,s="";if(!1===(u=n.settings.preview_styles))return"";"string"!=typeof u&&(u="font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow");var c=function(e){return e.replace(/%(\w+)/g,"")};if("string"==typeof e){if(!(e=n.formatter.get(e)))return;e=e[0]}return"preview"in e&&!1===(u=e.preview)?"":(t=e.block||e.inline||"span",(i=Bv(e.selector)).length?(i[0].name||(i[0].name=t),t=e.selector,r=Av(i,n)):r=Av([t],n),o=Tv.select(t,r)[0]||r.firstChild,kv(e.styles,function(e,t){(e=c(e))&&Tv.setStyle(o,t,e)}),kv(e.attributes,function(e,t){(e=c(e))&&Tv.setAttrib(o,t,e)}),kv(e.classes,function(e){e=c(e),Tv.hasClass(o,e)||Tv.addClass(o,e)}),n.fire("PreviewFormats"),Tv.setStyles(r,{position:"absolute",left:-65535}),n.getBody().appendChild(r),a=Tv.getStyle(n.getBody(),"fontSize",!0),a=/px$/.test(a)?parseInt(a,10):0,kv(u.split(" "),function(e){var t=Tv.getStyle(o,e,!0);if(!("background-color"===e&&/transparent|rgba\s*\([^)]+,\s*0\)/.test(t)&&(t=Tv.getStyle(n.getBody(),e,!0),"#ffffff"===Tv.toHex(t).toLowerCase())||"color"===e&&"#000000"===Tv.toHex(t).toLowerCase())){if("font-size"===e&&/em|%$/.test(t)){if(0===a)return;t=parseFloat(t)/(/%$/.test(t)?100:1)*a+"px"}"border"===e&&t&&(s+="padding:0 2px;"),s+=e+":"+t+";"}}),n.fire("AfterPreviewFormats"),Tv.remove(r),s)},parseSelector:Bv,selectorToHtml:function(e,t){return Av(Bv(e),t)}},Dv={toggle:function(e,t,n,r,o){var i=t.get(n);!Rh.match(e,n,r,o)||"toggle"in i[0]&&!i[0].toggle?wv.applyFormat(e,n,r,o):ov.remove(e,n,r,o)}},Ov={setup:function(e){e.addShortcut("meta+b","","Bold"),e.addShortcut("meta+i","","Italic"),e.addShortcut("meta+u","","Underline");for(var t=1;t<=6;t++)e.addShortcut("access+"+t,"",["FormatBlock",!1,"h"+t]);e.addShortcut("access+7","",["FormatBlock",!1,"p"]),e.addShortcut("access+8","",["FormatBlock",!1,"div"]),e.addShortcut("access+9","",["FormatBlock",!1,"address"])}};function Pv(e){var t,n,r,o=(t=e,n={},(r=function(e,t){e&&("string"!=typeof e?Lt.each(e,function(e,t){r(t,e)}):(t=t.length?t:[t],Lt.each(t,function(e){"undefined"==typeof e.deep&&(e.deep=!e.selector),"undefined"==typeof e.split&&(e.split=!e.selector||e.inline),"undefined"==typeof e.remove&&e.selector&&!e.inline&&(e.remove="none"),e.selector&&e.inline&&(e.mixed=!0,e.block_expand=!0),"string"==typeof e.classes&&(e.classes=e.classes.split(/\s+/))}),n[e]=t))})(Sv.get(t.dom)),r(t.settings.formats),{get:function(e){return e?n[e]:n},register:r,unregister:function(e){return e&&n[e]&&delete n[e],n}}),i=Ju(null);return Ov.setup(e),Vh(e),{get:o.get,register:o.register,unregister:o.unregister,apply:V.curry(wv.applyFormat,e),remove:V.curry(ov.remove,e),toggle:V.curry(Dv.toggle,e,o),match:V.curry(Rh.match,e),matchAll:V.curry(Rh.matchAll,e),matchNode:V.curry(Rh.matchNode,e),canApply:V.curry(Rh.canApply,e),formatChanged:V.curry(Ev.formatChanged,e,i),getCssText:V.curry(_v.getCssText,e)}}var Lv=function(a){return function(){for(var e=new Array(arguments.length),t=0;t<e.length;t++)e[t]=arguments[t];if(0===e.length)throw new Error("Can't merge zero objects");for(var n={},r=0;r<e.length;r++){var o=e[r];for(var i in o)o.hasOwnProperty(i)&&(n[i]=a(n[i],o[i]))}return n}},Iv=Lv(function(e,t){return E.isObject(e)&&E.isObject(t)?Iv(e,t):t}),Mv=Lv(function(e,t){return t}),Fv={deepMerge:Iv,merge:Mv},zv=function(e,t){return e.fire("PreProcess",t)},Uv=function(e,t){return e.fire("PostProcess",t)},qv=function(e){return e.fire("remove")},Vv={register:function(t,s,c){t.addAttributeFilter("data-mce-tabindex",function(e,t){for(var n,r=e.length;r--;)(n=e[r]).attr("tabindex",n.attributes.map["data-mce-tabindex"]),n.attr(t,null)}),t.addAttributeFilter("src,href,style",function(e,t){for(var n,r,o=e.length,i="data-mce-"+t,a=s.url_converter,u=s.url_converter_scope;o--;)(r=(n=e[o]).attributes.map[i])!==undefined?(n.attr(t,0<r.length?r:null),n.attr(i,null)):(r=n.attributes.map[t],"style"===t?r=c.serializeStyle(c.parseStyle(r),n.name):a&&(r=a.call(u,r,t,n.name)),n.attr(t,0<r.length?r:null))}),t.addAttributeFilter("class",function(e){for(var t,n,r=e.length;r--;)(n=(t=e[r]).attr("class"))&&(n=t.attr("class").replace(/(?:^|\s)mce-item-\w+(?!\S)/g,""),t.attr("class",0<n.length?n:null))}),t.addAttributeFilter("data-mce-type",function(e,t,n){for(var r,o=e.length;o--;)"bookmark"!==(r=e[o]).attributes.map["data-mce-type"]||n.cleanup||r.remove()}),t.addNodeFilter("noscript",function(e){for(var t,n=e.length;n--;)(t=e[n].firstChild)&&(t.value=Vo.decode(t.value))}),t.addNodeFilter("script,style",function(e,t){for(var n,r,o,i=e.length,a=function(e){return e.replace(/(<!--\[CDATA\[|\]\]-->)/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi,"").replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")};i--;)r=(n=e[i]).firstChild?n.firstChild.value:"","script"===t?((o=n.attr("type"))&&n.attr("type","mce-no/type"===o?null:o.replace(/^mce\-/,"")),"xhtml"===s.element_format&&0<r.length&&(n.firstChild.value="// <![CDATA[\n"+a(r)+"\n// ]]>")):"xhtml"===s.element_format&&0<r.length&&(n.firstChild.value="\x3c!--\n"+a(r)+"\n--\x3e")}),t.addNodeFilter("#comment",function(e){for(var t,n=e.length;n--;)0===(t=e[n]).value.indexOf("[CDATA[")?(t.name="#cdata",t.type=4,t.value=t.value.replace(/^\[CDATA\[|\]\]$/g,"")):0===t.value.indexOf("mce:protected ")&&(t.name="#text",t.type=3,t.raw=!0,t.value=unescape(t.value).substr(14))}),t.addNodeFilter("xml:namespace,input",function(e,t){for(var n,r=e.length;r--;)7===(n=e[r]).type?n.remove():1===n.type&&("input"!==t||"type"in n.attributes.map||n.attr("type","text"))}),t.addAttributeFilter("data-mce-type",function(e){H.each(e,function(e){"format-caret"===e.attr("data-mce-type")&&(e.isEmpty(t.schema.getNonEmptyElements())?e.remove():e.unwrap())})}),t.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style,data-mce-selected,data-mce-expando,data-mce-type,data-mce-resize",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)})},trimTrailingBr:function(e){var t,n,r=function(e){return e&&"br"===e.name};r(t=e.lastChild)&&r(n=t.prev)&&(t.remove(),n.remove())}},Hv={process:function(e,t,n){return f=n,(l=e)&&l.hasEventListeners("PreProcess")&&!f.no_events?(o=t,i=n,c=(r=e).dom,o=o.cloneNode(!0),(a=document.implementation).createHTMLDocument&&(u=a.createHTMLDocument(""),Lt.each("BODY"===o.nodeName?o.childNodes:[o],function(e){u.body.appendChild(u.importNode(e,!0))}),o="BODY"!==o.nodeName?u.body.firstChild:u.body,s=c.doc,c.doc=u),zv(r,Fv.merge(i,{node:o})),s&&(c.doc=s),o):t;var r,o,i,a,u,s,c,l,f}},jv=function(e,u,s){e.addNodeFilter("font",function(e){H.each(e,function(e){var t,n,r=u.parse(e.attr("style")),o=e.attr("color"),i=e.attr("face"),a=e.attr("size");o&&(r.color=o),i&&(r["font-family"]=i),a&&(r["font-size"]=s[parseInt(e.attr("size"),10)-1]),e.name="span",e.attr("style",u.serialize(r)),t=e,n=["color","face","size"],H.each(n,function(e){t.attr(e,null)})})})},$v=function(e,t){var n,r=ti();t.convert_fonts_to_spans&&jv(e,r,Lt.explode(t.font_size_legacy_values)),n=r,e.addNodeFilter("strike",function(e){H.each(e,function(e){var t=n.parse(e.attr("style"));t["text-decoration"]="line-through",e.name="span",e.attr("style",n.serialize(t))})})},Wv={register:function(e,t){t.inline_styles&&$v(e,t)}},Kv=/^[ \t\r\n]*$/,Xv={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11},Yv=function(e,t,n){var r,o,i=n?"lastChild":"firstChild",a=n?"prev":"next";if(e[i])return e[i];if(e!==t){if(r=e[a])return r;for(o=e.parent;o&&o!==t;o=o.parent)if(r=o[a])return r}},Gv=function(){function a(e,t){this.name=e,1===(this.type=t)&&(this.attributes=[],this.attributes.map={})}return a.create=function(e,t){var n,r;if(n=new a(e,Xv[e]||1),t)for(r in t)n.attr(r,t[r]);return n},a.prototype.replace=function(e){return e.parent&&e.remove(),this.insert(e,this),this.remove(),this},a.prototype.attr=function(e,t){var n,r;if("string"!=typeof e){for(r in e)this.attr(r,e[r]);return this}if(n=this.attributes){if(t!==undefined){if(null===t){if(e in n.map)for(delete n.map[e],r=n.length;r--;)if(n[r].name===e)return n=n.splice(r,1),this;return this}if(e in n.map){for(r=n.length;r--;)if(n[r].name===e){n[r].value=t;break}}else n.push({name:e,value:t});return n.map[e]=t,this}return n.map[e]}},a.prototype.clone=function(){var e,t,n,r,o,i=new a(this.name,this.type);if(n=this.attributes){for((o=[]).map={},e=0,t=n.length;e<t;e++)"id"!==(r=n[e]).name&&(o[o.length]={name:r.name,value:r.value},o.map[r.name]=r.value);i.attributes=o}return i.value=this.value,i.shortEnded=this.shortEnded,i},a.prototype.wrap=function(e){return this.parent.insert(e,this),e.append(this),this},a.prototype.unwrap=function(){var e,t;for(e=this.firstChild;e;)t=e.next,this.insert(e,this,!0),e=t;this.remove()},a.prototype.remove=function(){var e=this.parent,t=this.next,n=this.prev;return e&&(e.firstChild===this?(e.firstChild=t)&&(t.prev=null):n.next=t,e.lastChild===this?(e.lastChild=n)&&(n.next=null):t.prev=n,this.parent=this.next=this.prev=null),this},a.prototype.append=function(e){var t;return e.parent&&e.remove(),(t=this.lastChild)?((t.next=e).prev=t,this.lastChild=e):this.lastChild=this.firstChild=e,e.parent=this,e},a.prototype.insert=function(e,t,n){var r;return e.parent&&e.remove(),r=t.parent||this,n?(t===r.firstChild?r.firstChild=e:t.prev.next=e,e.prev=t.prev,(e.next=t).prev=e):(t===r.lastChild?r.lastChild=e:t.next.prev=e,e.next=t.next,(e.prev=t).next=e),e.parent=r,e},a.prototype.getAll=function(e){var t,n=[];for(t=this.firstChild;t;t=Yv(t,this))t.name===e&&n.push(t);return n},a.prototype.empty=function(){var e,t,n;if(this.firstChild){for(e=[],n=this.firstChild;n;n=Yv(n,this))e.push(n);for(t=e.length;t--;)(n=e[t]).parent=n.firstChild=n.lastChild=n.next=n.prev=null}return this.firstChild=this.lastChild=null,this},a.prototype.isEmpty=function(e,t,n){var r,o,i=this.firstChild;if(t=t||{},i)do{if(1===i.type){if(i.attributes.map["data-mce-bogus"])continue;if(e[i.name])return!1;for(r=i.attributes.length;r--;)if("name"===(o=i.attributes[r].name)||0===o.indexOf("data-mce-bookmark"))return!1}if(8===i.type)return!1;if(3===i.type&&!Kv.test(i.value))return!1;if(3===i.type&&i.parent&&t[i.parent.name]&&Kv.test(i.value))return!1;if(n&&n(i))return!1}while(i=Yv(i,this));return!0},a.prototype.walk=function(e){return Yv(this,null,e)},a}(),Jv=function(e,t,n,r){(e.padd_empty_with_br||t.insert)&&n[r.name]?r.empty().append(new Gv("br",1)).shortEnded=!0:r.empty().append(new Gv("#text",3)).value="\xa0"},Qv=function(e){return Zv(e,"#text")&&"\xa0"===e.firstChild.value},Zv=function(e,t){return e&&e.firstChild&&e.firstChild===e.lastChild&&e.firstChild.name===t},ey=function(r,e,t,n){return n.isEmpty(e,t,function(e){return t=e,(n=r.getElementRule(t.name))&&n.paddEmpty;var t,n})},ty=function(e,t){return e&&(t[e.name]||"br"===e.name)},ny=function(e,g){var h=e.schema;g.remove_trailing_brs&&e.addNodeFilter("br",function(e,t,n){var r,o,i,a,u,s,c,l,f=e.length,d=Lt.extend({},h.getBlockElements()),m=h.getNonEmptyElements(),p=h.getNonEmptyElements();for(d.body=1,r=0;r<f;r++)if(i=(o=e[r]).parent,d[o.parent.name]&&o===i.lastChild){for(u=o.prev;u;){if("span"!==(s=u.name)||"bookmark"!==u.attr("data-mce-type")){if("br"!==s)break;if("br"===s){o=null;break}}u=u.prev}o&&(o.remove(),ey(h,m,p,i)&&(c=h.getElementRule(i.name))&&(c.removeEmpty?i.remove():c.paddEmpty&&Jv(g,n,d,i)))}else{for(a=o;i&&i.firstChild===a&&i.lastChild===a&&!d[(a=i).name];)i=i.parent;a===i&&!0!==g.padd_empty_with_br&&((l=new Gv("#text",3)).value="\xa0",o.replace(l))}}),e.addAttributeFilter("href",function(e){var t,n,r,o=e.length;if(!g.allow_unsafe_link_target)for(;o--;)"a"===(t=e[o]).name&&"_blank"===t.attr("target")&&t.attr("rel",(n=t.attr("rel"),r=n?Lt.trim(n):"",/\b(noopener)\b/g.test(r)?r:r.split(" ").filter(function(e){return 0<e.length}).concat(["noopener"]).sort().join(" ")))}),g.allow_html_in_named_anchor||e.addAttributeFilter("id,name",function(e){for(var t,n,r,o,i=e.length;i--;)if("a"===(o=e[i]).name&&o.firstChild&&!o.attr("href"))for(r=o.parent,t=o.lastChild;n=t.prev,r.insert(t,o),t=n;);}),g.fix_list_elements&&e.addNodeFilter("ul,ol",function(e){for(var t,n,r=e.length;r--;)if("ul"===(n=(t=e[r]).parent).name||"ol"===n.name)if(t.prev&&"li"===t.prev.name)t.prev.append(t);else{var o=new Gv("li",1);o.attr("style","list-style-type: none"),t.wrap(o)}}),g.validate&&h.getValidClasses()&&e.addAttributeFilter("class",function(e){for(var t,n,r,o,i,a,u,s=e.length,c=h.getValidClasses();s--;){for(n=(t=e[s]).attr("class").split(" "),i="",r=0;r<n.length;r++)o=n[r],u=!1,(a=c["*"])&&a[o]&&(u=!0),a=c[t.name],!u&&a&&a[o]&&(u=!0),u&&(i&&(i+=" "),i+=o);i.length||(i=null),t.attr("class",i)}})},ry=Lt.makeMap,oy=Lt.each,iy=Lt.explode,ay=Lt.extend;function uy(k,T){void 0===T&&(T=Zo());var A={},R=[],B={},_={};(k=k||{}).validate=!("validate"in k)||k.validate,k.root_name=k.root_name||"body";var D=function(e){var t,n,r;n in A&&((r=B[n])?r.push(e):B[n]=[e]),t=R.length;for(;t--;)(n=R[t].name)in e.attributes.map&&((r=_[n])?r.push(e):_[n]=[e]);return e},e={schema:T,addAttributeFilter:function(e,n){oy(iy(e),function(e){var t;for(t=0;t<R.length;t++)if(R[t].name===e)return void R[t].callbacks.push(n);R.push({name:e,callbacks:[n]})})},getAttributeFilters:function(){return[].concat(R)},addNodeFilter:function(e,n){oy(iy(e),function(e){var t=A[e];t||(A[e]=t=[]),t.push(n)})},getNodeFilters:function(){var e=[];for(var t in A)A.hasOwnProperty(t)&&e.push({name:t,callbacks:A[t]});return e},filterNode:D,parse:function(e,a){var t,n,r,o,i,u,s,c,l,f,d,m=[];a=a||{},B={},_={},l=ay(ry("script,style,head,html,body,title,meta,param"),T.getBlockElements());var p=T.getNonEmptyElements(),g=T.children,h=k.validate,v="forced_root_block"in a?a.forced_root_block:k.forced_root_block,y=T.getWhiteSpaceElements(),b=/^[ \t\r\n]+/,C=/[ \t\r\n]+$/,x=/[ \t\r\n]+/g,w=/^[ \t\r\n]+$/,N=function(e,t){var n,r=new Gv(e,t);return e in A&&((n=B[e])?n.push(r):B[e]=[r]),r},E=function(e){var t,n,r,o,i=T.getBlockElements();for(t=e.prev;t&&3===t.type;){if(0<(r=t.value.replace(C,"")).length)return void(t.value=r);if(n=t.next){if(3===n.type&&n.value.length){t=t.prev;continue}if(!i[n.name]&&"script"!==n.name&&"style"!==n.name){t=t.prev;continue}}o=t.prev,t.remove(),t=o}};t=Fg({validate:h,allow_script_urls:k.allow_script_urls,allow_conditional_comments:k.allow_conditional_comments,self_closing_elements:function(e){var t,n={};for(t in e)"li"!==t&&"p"!==t&&(n[t]=e[t]);return n}(T.getSelfClosingElements()),cdata:function(e){d.append(N("#cdata",4)).value=e},text:function(e,t){var n;f||(e=e.replace(x," "),ty(d.lastChild,l)&&(e=e.replace(b,""))),0!==e.length&&((n=N("#text",3)).raw=!!t,d.append(n).value=e)},comment:function(e){d.append(N("#comment",8)).value=e},pi:function(e,t){d.append(N(e,7)).value=t,E(d)},doctype:function(e){d.append(N("#doctype",10)).value=e,E(d)},start:function(e,t,n){var r,o,i,a,u;if(i=h?T.getElementRule(e):{}){for((r=N(i.outputName||e,1)).attributes=t,r.shortEnded=n,d.append(r),(u=g[d.name])&&g[r.name]&&!u[r.name]&&m.push(r),o=R.length;o--;)(a=R[o].name)in t.map&&((s=_[a])?s.push(r):_[a]=[r]);l[e]&&E(r),n||(d=r),!f&&y[e]&&(f=!0)}},end:function(e){var t,n,r,o,i;if(n=h?T.getElementRule(e):{}){if(l[e]&&!f){if((t=d.firstChild)&&3===t.type)if(0<(r=t.value.replace(b,"")).length)t.value=r,t=t.next;else for(o=t.next,t.remove(),t=o;t&&3===t.type;)r=t.value,o=t.next,(0===r.length||w.test(r))&&(t.remove(),t=o),t=o;if((t=d.lastChild)&&3===t.type)if(0<(r=t.value.replace(C,"")).length)t.value=r,t=t.prev;else for(o=t.prev,t.remove(),t=o;t&&3===t.type;)r=t.value,o=t.prev,(0===r.length||w.test(r))&&(t.remove(),t=o),t=o}if(f&&y[e]&&(f=!1),n.removeEmpty&&ey(T,p,y,d)&&!d.attributes.map.name&&!d.attr("id"))return i=d.parent,l[d.name]?d.empty().remove():d.unwrap(),void(d=i);n.paddEmpty&&(Qv(d)||ey(T,p,y,d))&&Jv(k,a,l,d),d=d.parent}}},T);var S=d=new Gv(a.context||k.root_name,11);if(t.parse(e),h&&m.length&&(a.context?a.invalid=!0:function(e){var t,n,r,o,i,a,u,s,c,l,f,d,m,p,g,h;for(d=ry("tr,td,th,tbody,thead,tfoot,table"),l=T.getNonEmptyElements(),f=T.getWhiteSpaceElements(),m=T.getTextBlockElements(),p=T.getSpecialElements(),t=0;t<e.length;t++)if((n=e[t]).parent&&!n.fixed)if(m[n.name]&&"li"===n.parent.name){for(g=n.next;g&&m[g.name];)g.name="li",g.fixed=!0,n.parent.insert(g,n.parent),g=g.next;n.unwrap(n)}else{for(o=[n],r=n.parent;r&&!T.isValidChild(r.name,n.name)&&!d[r.name];r=r.parent)o.push(r);if(r&&1<o.length){for(o.reverse(),i=a=D(o[0].clone()),c=0;c<o.length-1;c++){for(T.isValidChild(a.name,o[c].name)?(u=D(o[c].clone()),a.append(u)):u=a,s=o[c].firstChild;s&&s!==o[c+1];)h=s.next,u.append(s),s=h;a=u}ey(T,l,f,i)?r.insert(n,o[0],!0):(r.insert(i,o[0],!0),r.insert(n,i)),r=o[0],(ey(T,l,f,r)||Zv(r,"br"))&&r.empty().remove()}else if(n.parent){if("li"===n.name){if((g=n.prev)&&("ul"===g.name||"ul"===g.name)){g.append(n);continue}if((g=n.next)&&("ul"===g.name||"ul"===g.name)){g.insert(n,g.firstChild,!0);continue}n.wrap(D(new Gv("ul",1)));continue}T.isValidChild(n.parent.name,"div")&&T.isValidChild("div",n.name)?n.wrap(D(new Gv("div",1))):p[n.name]?n.empty().remove():n.unwrap()}}}(m)),v&&("body"===S.name||a.isRootContent)&&function(){var e,t,n=S.firstChild,r=function(e){e&&((n=e.firstChild)&&3===n.type&&(n.value=n.value.replace(b,"")),(n=e.lastChild)&&3===n.type&&(n.value=n.value.replace(C,"")))};if(T.isValidChild(S.name,v.toLowerCase())){for(;n;)e=n.next,3===n.type||1===n.type&&"p"!==n.name&&!l[n.name]&&!n.attr("data-mce-type")?(t||((t=N(v,1)).attr(k.forced_root_block_attrs),S.insert(t,n)),t.append(n)):(r(t),t=null),n=e;r(t)}}(),!a.invalid){for(c in B){for(s=A[c],i=(n=B[c]).length;i--;)n[i].parent||n.splice(i,1);for(r=0,o=s.length;r<o;r++)s[r](n,c,a)}for(r=0,o=R.length;r<o;r++)if((s=R[r]).name in _){for(i=(n=_[s.name]).length;i--;)n[i].parent||n.splice(i,1);for(i=0,u=s.callbacks.length;i<u;i++)s.callbacks[i](n,s.name,a)}}return S}};return ny(e,k),Wv.register(e,k),e}var sy=function(e,t,n){-1===Lt.inArray(t,n)&&(e.addAttributeFilter(n,function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),t.push(n))},cy=function(e,t,n){var r=Si(n.getInner?t.innerHTML:e.getOuterHTML(t));return n.selection?r:Lt.trim(r)},ly=function(e,t,n,r){var o=r.selection?Fv.merge({forced_root_block:!1},r):r,i=e.parse(n,o);return Vv.trimTrailingBr(i),i},fy=function(e,t,n,r,o){var i,a,u,s,c=(i=r,jc(t,n).serialize(i));return a=e,s=c,!(u=o).no_events&&a?Uv(a,Fv.merge(u,{content:s})).content:s};function dy(e,t){var a,u,s,c,l,n,r=(a=e,n=["data-mce-selected"],s=(u=t)&&u.dom?u.dom:di.DOM,c=u&&u.schema?u.schema:Zo(a),a.entity_encoding=a.entity_encoding||"named",a.remove_trailing_brs=!("remove_trailing_brs"in a)||a.remove_trailing_brs,l=uy(a,c),Vv.register(l,a,s),{schema:c,addNodeFilter:l.addNodeFilter,addAttributeFilter:l.addAttributeFilter,serialize:function(e,t){var n=Fv.merge({format:"html"},t||{}),r=Hv.process(u,e,n),o=cy(s,r,n),i=ly(l,s,o,n);return"tree"===n.format?i:fy(u,a,c,i,n)},addRules:function(e){c.addValidElements(e)},setRules:function(e){c.setValidElements(e)},addTempAttr:V.curry(sy,l,n),getTempAttrs:function(){return n}});return{schema:r.schema,addNodeFilter:r.addNodeFilter,addAttributeFilter:r.addAttributeFilter,serialize:r.serialize,addRules:r.addRules,setRules:r.setRules,addTempAttr:r.addTempAttr,getTempAttrs:r.getTempAttrs}}function my(e){return{getBookmark:V.curry(Bc.getBookmark,e),moveToBookmark:V.curry(Bc.moveToBookmark,e)}}(my||(my={})).isBookmarkNode=Bc.isBookmarkNode;var py=my,gy=Ao.isContentEditableFalse,hy=Ao.isContentEditableTrue,vy=function(r,a){var u,s,c,l,f,d,m,p,g,h,v,y,i,b,C,x,w,N=a.dom,E=Lt.each,S=a.getDoc(),k=document,T=Math.abs,A=Math.round,R=a.getBody();l={nw:[0,0,-1,-1],ne:[1,0,1,-1],se:[1,1,1,1],sw:[0,1,-1,1]};var e=".mce-content-body";a.contentStyles.push(e+" div.mce-resizehandle {position: absolute;border: 1px solid black;box-sizing: content-box;background: #FFF;width: 7px;height: 7px;z-index: 10000}"+e+" .mce-resizehandle:hover {background: #000}"+e+" img[data-mce-selected],"+e+" hr[data-mce-selected] {outline: 1px solid black;resize: none}"+e+" .mce-clonedresizable {position: absolute;"+(ge.gecko?"":"outline: 1px dashed black;")+"opacity: .5;filter: alpha(opacity=50);z-index: 10000}"+e+" .mce-resize-helper {background: #555;background: rgba(0,0,0,0.75);border-radius: 3px;border: 1px;color: white;display: none;font-family: sans-serif;font-size: 12px;white-space: nowrap;line-height: 14px;margin: 5px 10px;padding: 5px;position: absolute;z-index: 10001}");var B=function(e){return e&&("IMG"===e.nodeName||a.dom.is(e,"figure.image"))},n=function(e){var t,n,r=e.target;t=e,n=a.selection.getRng(),!B(t.target)||Ng(t.clientX,t.clientY,n)||e.isDefaultPrevented()||(e.preventDefault(),a.selection.select(r))},_=function(e){return a.dom.is(e,"figure.image")?e.querySelector("img"):e},D=function(e){var t=a.settings.object_resizing;return!1!==t&&!ge.iOS&&("string"!=typeof t&&(t="table,img,figure.image,div"),"false"!==e.getAttribute("data-mce-resize")&&e!==a.getBody()&&Br.is(qn.fromDom(e),t))},O=function(e){var t,n,r,o;t=e.screenX-d,n=e.screenY-m,b=t*f[2]+h,C=n*f[3]+v,b=b<5?5:b,C=C<5?5:C,(B(u)&&!1!==a.settings.resize_img_proportional?!kg.modifierPressed(e):kg.modifierPressed(e)||B(u)&&f[2]*f[3]!=0)&&(T(t)>T(n)?(C=A(b*y),b=A(C/y)):(b=A(C/y),C=A(b*y))),N.setStyles(_(s),{width:b,height:C}),r=0<(r=f.startPos.x+t)?r:0,o=0<(o=f.startPos.y+n)?o:0,N.setStyles(c,{left:r,top:o,display:"block"}),c.innerHTML=b+" × "+C,f[2]<0&&s.clientWidth<=b&&N.setStyle(s,"left",p+(h-b)),f[3]<0&&s.clientHeight<=C&&N.setStyle(s,"top",g+(v-C)),(t=R.scrollWidth-x)+(n=R.scrollHeight-w)!=0&&N.setStyles(c,{left:r-t,top:o-n}),i||(a.fire("ObjectResizeStart",{target:u,width:h,height:v}),i=!0)},P=function(){i=!1;var e=function(e,t){t&&(u.style[e]||!a.schema.isValid(u.nodeName.toLowerCase(),e)?N.setStyle(_(u),e,t):N.setAttrib(_(u),e,t))};e("width",b),e("height",C),N.unbind(S,"mousemove",O),N.unbind(S,"mouseup",P),k!==S&&(N.unbind(k,"mousemove",O),N.unbind(k,"mouseup",P)),N.remove(s),N.remove(c),o(u),a.fire("ObjectResized",{target:u,width:b,height:C}),N.setAttrib(u,"style",N.getAttrib(u,"style")),a.nodeChanged()},o=function(e){var t,r,o,n,i;L(),F(),t=N.getPos(e,R),p=t.x,g=t.y,i=e.getBoundingClientRect(),r=i.width||i.right-i.left,o=i.height||i.bottom-i.top,u!==e&&(u=e,b=C=0),n=a.fire("ObjectSelected",{target:e}),D(e)&&!n.isDefaultPrevented()?E(l,function(n,e){var t;(t=N.get("mceResizeHandle"+e))&&N.remove(t),t=N.add(R,"div",{id:"mceResizeHandle"+e,"data-mce-bogus":"all","class":"mce-resizehandle",unselectable:!0,style:"cursor:"+e+"-resize; margin:0; padding:0"}),ge.ie&&(t.contentEditable=!1),N.bind(t,"mousedown",function(e){var t;e.stopImmediatePropagation(),e.preventDefault(),d=(t=e).screenX,m=t.screenY,h=_(u).clientWidth,v=_(u).clientHeight,y=v/h,(f=n).startPos={x:r*n[0]+p,y:o*n[1]+g},x=R.scrollWidth,w=R.scrollHeight,s=u.cloneNode(!0),N.addClass(s,"mce-clonedresizable"),N.setAttrib(s,"data-mce-bogus","all"),s.contentEditable=!1,s.unSelectabe=!0,N.setStyles(s,{left:p,top:g,margin:0}),s.removeAttribute("data-mce-selected"),R.appendChild(s),N.bind(S,"mousemove",O),N.bind(S,"mouseup",P),k!==S&&(N.bind(k,"mousemove",O),N.bind(k,"mouseup",P)),c=N.add(R,"div",{"class":"mce-resize-helper","data-mce-bogus":"all"},h+" × "+v)}),n.elm=t,N.setStyles(t,{left:r*n[0]+p-t.offsetWidth/2,top:o*n[1]+g-t.offsetHeight/2})}):L(),u.setAttribute("data-mce-selected","1")},L=function(){var e,t;for(e in F(),u&&u.removeAttribute("data-mce-selected"),l)(t=N.get("mceResizeHandle"+e))&&(N.unbind(t),N.remove(t))},I=function(e){var t,n=function(e,t){if(e)do{if(e===t)return!0}while(e=e.parentNode)};i||a.removed||(E(N.select("img[data-mce-selected],hr[data-mce-selected]"),function(e){e.removeAttribute("data-mce-selected")}),t="mousedown"===e.type?e.target:r.getNode(),n(t=N.$(t).closest("table,img,figure.image,hr")[0],R)&&(z(),n(r.getStart(!0),t)&&n(r.getEnd(!0),t))?o(t):L())},M=function(e){return gy(function(e,t){for(;t&&t!==e;){if(hy(t)||gy(t))return t;t=t.parentNode}return null}(a.getBody(),e))},F=function(){for(var e in l){var t=l[e];t.elm&&(N.unbind(t.elm),delete t.elm)}},z=function(){try{a.getDoc().execCommand("enableObjectResizing",!1,!1)}catch(e){}};return a.on("init",function(){z(),ge.ie&&11<=ge.ie&&(a.on("mousedown click",function(e){var t=e.target,n=t.nodeName;i||!/^(TABLE|IMG|HR)$/.test(n)||M(t)||(2!==e.button&&a.selection.select(t,"TABLE"===n),"mousedown"===e.type&&a.nodeChanged())}),a.dom.bind(R,"mscontrolselect",function(e){var t=function(e){Ce.setEditorTimeout(a,function(){a.selection.select(e)})};if(M(e.target))return e.preventDefault(),void t(e.target);/^(TABLE|IMG|HR)$/.test(e.target.nodeName)&&(e.preventDefault(),"IMG"===e.target.tagName&&t(e.target))}));var t=Ce.throttle(function(e){a.composing||I(e)});a.on("nodechange ResizeEditor ResizeWindow drop FullscreenStateChanged",t),a.on("keyup compositionend",function(e){u&&"TABLE"===u.nodeName&&t(e)}),a.on("hide blur",L),a.on("contextmenu",n)}),a.on("remove",F),{isResizable:D,showResizeRect:o,hideResizeRect:L,updateResizeRect:I,destroy:function(){u=s=null}}},yy=function(e){return Ao.isContentEditableTrue(e)||Ao.isContentEditableFalse(e)},by={fromPoint:function(e,t,n){var r,o,i,a,u,s=n;if(s.caretPositionFromPoint)(o=s.caretPositionFromPoint(e,t))&&((r=n.createRange()).setStart(o.offsetNode,o.offset),r.collapse(!0));else if(n.caretRangeFromPoint)r=n.caretRangeFromPoint(e,t);else if(s.body.createTextRange){r=s.body.createTextRange();try{r.moveToPoint(e,t),r.collapse(!0)}catch(c){r=function(e,n,t){var r,o,i;if(r=t.elementFromPoint(e,n),o=t.body.createTextRange(),r&&"HTML"!==r.tagName||(r=t.body),o.moveToElementText(r),0<(i=(i=Lt.toArray(o.getClientRects())).sort(function(e,t){return(e=Math.abs(Math.max(e.top-n,e.bottom-n)))-(t=Math.abs(Math.max(t.top-n,t.bottom-n)))})).length){n=(i[0].bottom+i[0].top)/2;try{return o.moveToPoint(e,n),o.collapse(!0),o}catch(a){}}return null}(e,t,n)}return i=r,a=n.body,u=i&&i.parentElement?i.parentElement():null,Ao.isContentEditableFalse(function(e,t,n){for(;e&&e!==t;){if(n(e))return e;e=e.parentNode}return null}(u,a,yy))?null:i}return r}},Cy=function(n,e){return H.map(e,function(e){var t=n.fire("GetSelectionRange",{range:e});return t.range!==e?t.range:e})},xy=function(e,t){return qn.fromDom(e.dom().cloneNode(t))},wy=function(e){return xy(e,!0)},Ny=function(e){return xy(e,!1)},Ey=wy,Sy=function(e,t){var n=(t||document).createDocumentFragment();return H.each(e,function(e){n.appendChild(e.dom())}),qn.fromDom(n)},ky=function(t){return qr.firstChild(t).fold(V.constant([t]),function(e){return[t].concat(ky(e))})},Ty=function(t){return qr.lastChild(t).fold(V.constant([t]),function(e){return"br"===Qn.name(e)?qr.prevSibling(e).map(function(e){return[t].concat(Ty(e))}).getOr([]):[t].concat(Ty(e))})},Ay=function(o,e){return sa([(i=e,a=i.startContainer,u=i.startOffset,Ao.isText(a)?0===u?A.some(qn.fromDom(a)):A.none():A.from(a.childNodes[u]).map(qn.fromDom)),(t=e,n=t.endContainer,r=t.endOffset,Ao.isText(n)?r===n.data.length?A.some(qn.fromDom(n)):A.none():A.from(n.childNodes[r-1]).map(qn.fromDom))],function(e,t){var n=H.find(ky(o),V.curry(Or.eq,e)),r=H.find(Ty(o),V.curry(Or.eq,t));return n.isSome()&&r.isSome()}).getOr(!1);var t,n,r,i,a,u},Ry=function(e,t,n,r){var o=n,i=new no(n,o),a=e.schema.getNonEmptyElements();do{if(3===n.nodeType&&0!==Lt.trim(n.nodeValue).length)return void(r?t.setStart(n,0):t.setEnd(n,n.nodeValue.length));if(a[n.nodeName]&&!/^(TD|TH)$/.test(n.nodeName))return void(r?t.setStartBefore(n):"BR"===n.nodeName?t.setEndBefore(n):t.setEndAfter(n));if(ge.ie&&ge.ie<11&&e.isBlock(n)&&e.isEmpty(n))return void(r?t.setStart(n,0):t.setEnd(n,0))}while(n=r?i.next():i.prev());"BODY"===o.nodeName&&(r?t.setStart(o,0):t.setEnd(o,o.childNodes.length))},By=wr.immutable("element","width","rows"),_y=wr.immutable("element","cells"),Dy=wr.immutable("x","y"),Oy=function(e,t){var n=parseInt(cr.get(e,t),10);return isNaN(n)?1:n},Py=function(e){return H.foldl(e,function(e,t){return t.cells().length>e?t.cells().length:e},0)},Ly=function(e,t){for(var n=e.rows(),r=0;r<n.length;r++)for(var o=n[r].cells(),i=0;i<o.length;i++)if(Or.eq(o[i],t))return A.some(Dy(i,r));return A.none()},Iy=function(e,t,n,r,o){for(var i=[],a=e.rows(),u=n;u<=o;u++){var s=a[u].cells(),c=t<r?s.slice(t,r+1):s.slice(r,t+1);i.push(_y(a[u].element(),c))}return i},My=function(e){var o=By(Ny(e),0,[]);return H.each(fu(e,"tr"),function(n,r){H.each(fu(n,"td,th"),function(e,t){!function(e,t,n,r,o){for(var i=Oy(o,"rowspan"),a=Oy(o,"colspan"),u=e.rows(),s=n;s<n+i;s++){u[s]||(u[s]=_y(Ey(r),[]));for(var c=t;c<t+a;c++)u[s].cells()[c]=s===n&&c===t?o:Ny(o)}}(o,function(e,t,n){for(;r=t,o=n,i=void 0,((i=e.rows())[o]?i[o].cells():[])[r];)t++;var r,o,i;return t}(o,t,r),r,n,e)})}),By(o.element(),Py(o.rows()),o.rows())},Fy=function(e){return i=t=e,n=H.map(i.rows(),function(e){var t=H.map(e.cells(),function(e){var t=Ey(e);return cr.remove(t,"colspan"),cr.remove(t,"rowspan"),t}),n=Ny(e.element());return Pc(n,t),n}),r=Ny(t.element()),o=qn.fromTag("tbody"),Pc(o,n),Fu.append(r,o),r;var t,n,r,o,i},zy=function(l,e,t){return Ly(l,e).bind(function(c){return Ly(l,t).map(function(e){return t=l,r=e,o=(n=c).x(),i=n.y(),a=r.x(),u=r.y(),s=i<u?Iy(t,o,i,a,u):Iy(t,o,u,a,i),By(t.element(),Py(s),s);var t,n,r,o,i,a,u,s})})},Uy=function(n,t){return H.find(n,function(e){return"li"===Qn.name(e)&&Ay(e,t)}).fold(V.constant([]),function(e){return(t=n,H.find(t,function(e){return"ul"===Qn.name(e)||"ol"===Qn.name(e)})).map(function(e){return[qn.fromTag("li"),qn.fromTag(Qn.name(e))]}).getOr([]);var t})},qy=function(e,t){var n,r=qn.fromDom(t.commonAncestorContainer),o=Ml(r,e),i=H.filter(o,function(e){return co(e)||uo(e)}),a=Uy(o,t),u=i.concat(a.length?a:po(n=r)?qr.parent(n).filter(mo).fold(V.constant([]),function(e){return[n,e]}):mo(n)?[n]:[]);return H.map(u,Ny)},Vy=function(){return Sy([])},Hy=function(e,t){return n=qn.fromDom(t.cloneContents()),r=qy(e,t),o=H.foldl(r,function(e,t){return Fu.append(t,e),t},n),0<r.length?Sy([o]):o;var n,r,o},jy=function(e,o){return(t=e,n=o[0],bl(n,"table",V.curry(Or.eq,t))).bind(function(e){var t=o[0],n=o[o.length-1],r=My(e);return zy(r,t,n).map(function(e){return Sy([Fy(e)])})}).getOrThunk(Vy);var t,n},$y=function(e,t){var n,r,o=Td(t,e);return 0<o.length?jy(e,o):(n=e,0<(r=t).length&&r[0].collapsed?Vy():Hy(n,r[0]))},Wy=function(e,t){var n,r=e.selection.getRng(),o=e.dom.create("body"),i=e.selection.getSel(),a=Cy(e,xd(i));if((t=t||{}).get=!0,t.format=t.format||"html",t.selection=!0,(t=e.fire("BeforeGetContent",t)).isDefaultPrevented())return e.fire("GetContent",t),t.content;if("text"===t.format)return e.selection.isCollapsed()?"":Si(r.text||(i.toString?i.toString():""));r.cloneContents?(n=t.contextual?$y(qn.fromDom(e.getBody()),a).dom():r.cloneContents())&&o.appendChild(n):r.item!==undefined||r.htmlText!==undefined?(o.innerHTML="<br>"+(r.item?r.item(0).outerHTML:r.htmlText),o.removeChild(o.firstChild)):o.innerHTML=r.toString(),t.getInner=!0;var u=e.selection.serializer.serialize(o,t);return"tree"===t.format?u:(t.content=e.selection.isCollapsed()?"":u,e.fire("GetContent",t),t.content)},Ky=function(e,t,n){var r,o,i,a=e.selection.getRng(),u=e.getDoc();if((n=n||{format:"html"}).set=!0,n.selection=!0,n.content=t,n.no_events||!(n=e.fire("BeforeSetContent",n)).isDefaultPrevented()){if(t=n.content,a.insertNode){t+='<span id="__caret">_</span>',a.startContainer===u&&a.endContainer===u?u.body.innerHTML=t:(a.deleteContents(),0===u.body.childNodes.length?u.body.innerHTML=t:a.createContextualFragment?a.insertNode(a.createContextualFragment(t)):(o=u.createDocumentFragment(),i=u.createElement("div"),o.appendChild(i),i.outerHTML=t,a.insertNode(o))),r=e.dom.get("__caret"),(a=u.createRange()).setStartBefore(r),a.setEndBefore(r),e.selection.setRng(a),e.dom.remove("__caret");try{e.selection.setRng(a)}catch(s){}}else a.item&&(u.execCommand("Delete",!1,null),a=e.getRng()),/^\s+/.test(t)?(a.pasteHTML('<span id="__mce_tmp">_</span>'+t),e.dom.remove("__mce_tmp")):a.pasteHTML(t);n.no_events||e.fire("SetContent",n)}else e.fire("SetContent",n)},Xy=function(e,t,n,r,o){var i=n?t.startContainer:t.endContainer,a=n?t.startOffset:t.endOffset;return A.from(i).map(qn.fromDom).map(function(e){return r&&t.collapsed?e:qr.child(e,o(e,a)).getOr(e)}).bind(function(e){return Qn.isElement(e)?A.some(e):qr.parent(e)}).map(function(e){return e.dom()}).getOr(e)},Yy=function(e,t,n){return Xy(e,t,!0,n,function(e,t){return Math.min(qr.childNodesCount(e),t)})},Gy=function(e,t,n){return Xy(e,t,!1,n,function(e,t){return 0<t?t-1:t})},Jy=function(e,t){for(var n=e;e&&Ao.isText(e)&&0===e.length;)e=t?e.nextSibling:e.previousSibling;return e||n},Qy=Lt.each,Zy=function(e){return!!e.select},eb=function(e){return!(!e||!e.ownerDocument)&&Or.contains(qn.fromDom(e.ownerDocument),qn.fromDom(e))},tb=function(u,s,e,c){var n,t,l,f,a,r=function(e,t){return Ky(c,e,t)},o=function(e){var t=m();t.collapse(!!e),i(t)},d=function(){return s.getSelection?s.getSelection():s.document.selection},m=function(){var e,t,n,r,o=function(e,t,n){try{return t.compareBoundaryPoints(e,n)}catch(r){return-1}};if(!s)return null;if(null==(r=s.document))return null;if(c.bookmark!==undefined&&!1===dp(c)){var i=_m.getRng(c);if(i.isSome())return i.map(function(e){return Cy(c,[e])[0]}).getOr(r.createRange())}try{(e=d())&&(t=0<e.rangeCount?e.getRangeAt(0):e.createRange?e.createRange():r.createRange())}catch(a){}return(t=Cy(c,[t])[0])||(t=r.createRange?r.createRange():r.body.createTextRange()),t.setStart&&9===t.startContainer.nodeType&&t.collapsed&&(n=u.getRoot(),t.setStart(n,0),t.setEnd(n,0)),l&&f&&(0===o(t.START_TO_START,t,l)&&0===o(t.END_TO_END,t,l)?t=f:f=l=null),t},i=function(e,t){var n,r;if((o=e)&&(Zy(o)||eb(o.startContainer)&&eb(o.endContainer))){var o,i=Zy(e)?e:null;if(i){f=null;try{i.select()}catch(a){}}else{if(n=d(),e=c.fire("SetSelectionRange",{range:e,forward:t}).range,n){f=e;try{n.removeAllRanges(),n.addRange(e)}catch(a){}!1===t&&n.extend&&(n.collapse(e.endContainer,e.endOffset),n.extend(e.startContainer,e.startOffset)),l=0<n.rangeCount?n.getRangeAt(0):null}e.collapsed||e.startContainer!==e.endContainer||!n.setBaseAndExtent||ge.ie||e.endOffset-e.startOffset<2&&e.startContainer.hasChildNodes()&&(r=e.startContainer.childNodes[e.startOffset])&&"IMG"===r.tagName&&(n.setBaseAndExtent(e.startContainer,e.startOffset,e.endContainer,e.endOffset),n.anchorNode===e.startContainer&&n.focusNode===e.endContainer||n.setBaseAndExtent(r,0,r,1)),c.fire("AfterSetSelectionRange",{range:e,forward:t})}}},p=function(){var e,t,n=d();return!(n&&n.anchorNode&&n.focusNode)||((e=u.createRng()).setStart(n.anchorNode,n.anchorOffset),e.collapse(!0),(t=u.createRng()).setStart(n.focusNode,n.focusOffset),t.collapse(!0),e.compareBoundaryPoints(e.START_TO_START,t)<=0)},g={bookmarkManager:null,controlSelection:null,dom:u,win:s,serializer:e,editor:c,collapse:o,setCursorLocation:function(e,t){var n=u.createRng();e?(n.setStart(e,t),n.setEnd(e,t),i(n),o(!1)):(Ry(u,n,c.getBody(),!0),i(n))},getContent:function(e){return Wy(c,e)},setContent:r,getBookmark:function(e,t){return n.getBookmark(e,t)},moveToBookmark:function(e){return n.moveToBookmark(e)},select:function(e,t){var r,n,o;return(r=u,n=e,o=t,A.from(n).map(function(e){var t=r.nodeIndex(e),n=r.createRng();return n.setStart(e.parentNode,t),n.setEnd(e.parentNode,t+1),o&&(Ry(r,n,e,!0),Ry(r,n,e,!1)),n})).each(i),e},isCollapsed:function(){var e=m(),t=d();return!(!e||e.item)&&(e.compareEndPoints?0===e.compareEndPoints("StartToEnd",e):!t||e.collapsed)},isForward:p,setNode:function(e){return r(u.getOuterHTML(e)),e},getNode:function(){return e=c.getBody(),(t=m())?(r=t.startContainer,o=t.endContainer,i=t.startOffset,a=t.endOffset,n=t.commonAncestorContainer,!t.collapsed&&(r===o&&a-i<2&&r.hasChildNodes()&&(n=r.childNodes[i]),3===r.nodeType&&3===o.nodeType&&(r=r.length===i?Jy(r.nextSibling,!0):r.parentNode,o=0===a?Jy(o.previousSibling,!1):o.parentNode,r&&r===o))?r:n&&3===n.nodeType?n.parentNode:n):e;var e,t,n,r,o,i,a},getSel:d,setRng:i,getRng:m,getStart:function(e){return Yy(c.getBody(),m(),e)},getEnd:function(e){return Gy(c.getBody(),m(),e)},getSelectedBlocks:function(e,t){return function(e,t,n,r){var o,i,a=[];if(i=e.getRoot(),n=e.getParent(n||Yy(i,t,!1),e.isBlock),r=e.getParent(r||Gy(i,t,!1),e.isBlock),n&&n!==i&&a.push(n),n&&r&&n!==r)for(var u=new no(o=n,i);(o=u.next())&&o!==r;)e.isBlock(o)&&a.push(o);return r&&n!==r&&r!==i&&a.push(r),a}(u,m(),e,t)},normalize:function(){var e=m();if(!Nd(d())){var t=rm.normalize(u,e);return t.each(function(e){i(e,p())}),t.getOr(e)}return e},selectorChanged:function(e,t){var i;return a||(a={},i={},c.on("NodeChange",function(e){var n=e.element,r=u.getParents(n,null,u.getRoot()),o={};Qy(a,function(e,n){Qy(r,function(t){if(u.is(t,n))return i[n]||(Qy(e,function(e){e(!0,{node:t,selector:n,parents:r})}),i[n]=e),o[n]=e,!1})}),Qy(i,function(e,t){o[t]||(delete i[t],Qy(e,function(e){e(!1,{node:n,selector:t,parents:r})}))})})),a[e]||(a[e]=[]),a[e].push(t),g},getScrollContainer:function(){for(var e,t=u.getRoot();t&&"BODY"!==t.nodeName;){if(t.scrollHeight>t.clientHeight){e=t;break}t=t.parentNode}return e},scrollIntoView:function(e,t){return yu(c,e,t)},placeCaretAt:function(e,t){return i(by.fromPoint(e,t,c.getDoc()))},getBoundingClientRect:function(){var e=m();return e.collapsed?Ba.fromRangeStart(e).getClientRects()[0]:e.getBoundingClientRect()},destroy:function(){s=l=f=null,t.destroy()}};return n=py(g),t=vy(g,c),g.bookmarkManager=n,g.controlSelection=t,g},nb=Ao.isContentEditableFalse,rb=ta,ob=ks,ib=Ss,ab=function(e,t){for(;t=e(t);)if(t.isVisible())return t;return t},ub=function(e,t,n,r){var o,i,a,u,s,c,l=e===eu.Forwards,f=l?ib:ob;return!r.collapsed&&(o=rb(r),nb(o))?Ga(e,t,o,e===eu.Backwards,!0):(u=Ai(r.startContainer),f(i=Es(e,t.getBody(),r))?Ja(t,i.getNode(!l)):(i=n(i))?f(i)?Ga(e,t,i.getNode(!l),l,!0):f(a=n(i))&&(!(c=ps(s=i,a))&&Ao.isBr(s.getNode())||c)?Ga(e,t,a.getNode(!l),l,!0):u?Za(t,i.toRange(),!0):null:u?r:null)},sb=function(e,t,n,r){var o,i,a,u,s,c,l,f,d;if(d=rb(r),o=Es(e,t.getBody(),r),i=n(t.getBody(),mg(1),o),a=Bt.filter(i,pg(1)),s=Bt.last(o.getClientRects()),(ib(o)||Ts(o))&&(d=o.getNode()),(ob(o)||As(o))&&(d=o.getNode(!0)),!s)return null;if(c=s.left,(u=Cg(a,c))&&nb(u.node))return l=Math.abs(c-u.left),f=Math.abs(c-u.right),Ga(e,t,u.node,l<f,!0);if(d){var m=function(e,t,n,r){var o,i,a,u,s,c,l=js(t),f=[],d=0,m=function(e){return Bt.last(e.getClientRects())};1===e?(o=l.next,i=ea,a=Zi,u=Ba.after(r)):(o=l.prev,i=Zi,a=ea,u=Ba.before(r)),c=m(u);do{if(u.isVisible()&&!a(s=m(u),c)){if(0<f.length&&i(s,Bt.last(f))&&d++,(s=Gi(s)).position=u,s.line=d,n(s))return f;f.push(s)}}while(u=o(u));return f}(e,t.getBody(),mg(1),d);if(u=Cg(Bt.filter(m,pg(1)),c))return Za(t,u.position.toRange(),!0);if(u=Bt.last(Bt.filter(m,pg(0))))return Za(t,u.position.toRange(),!0)}},cb=function(e,t,n){var r,o,i,a,u=js(e.getBody()),s=ua.curry(ab,u.next),c=ua.curry(ab,u.prev);if(n.collapsed&&e.settings.forced_root_block){if(!(r=e.dom.getParent(n.startContainer,"PRE")))return;(1===t?s(Ba.fromRangeStart(n)):c(Ba.fromRangeStart(n)))||(a=(i=e).dom.create(i.settings.forced_root_block),(!ge.ie||11<=ge.ie)&&(a.innerHTML='<br data-mce-bogus="1">'),o=a,1===t?e.$(r).after(o):e.$(r).before(o),e.selection.select(o,!0),e.selection.collapse())}},lb=function(l,f){return function(){var e,t,n,r,o,i,a,u,s,c=(t=f,r=js((e=l).getBody()),o=ua.curry(ab,r.next),i=ua.curry(ab,r.prev),a=t?eu.Forwards:eu.Backwards,u=t?o:i,s=e.selection.getRng(),(n=ub(a,e,u,s))?n:(n=cb(e,a,s))||null);return!!c&&(l.selection.setRng(c),!0)}},fb=function(u,s){return function(){var e,t,n,r,o,i,a=(r=(t=s)?1:-1,o=t?dg:fg,i=(e=u).selection.getRng(),(n=sb(r,e,o,i))?n:(n=cb(e,r,i))||null);return!!a&&(u.selection.setRng(a),!0)}},db=function(e,r){return H.bind((t=e,H.map(t,function(e){return Fv.merge({shiftKey:!1,altKey:!1,ctrlKey:!1,metaKey:!1,keyCode:0,action:V.noop},e)})),function(e){return t=e,(n=r).keyCode===t.keyCode&&n.shiftKey===t.shiftKey&&n.altKey===t.altKey&&n.ctrlKey===t.ctrlKey&&n.metaKey===t.metaKey?[e]:[];var t,n});var t},mb=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r=Array.prototype.slice.call(arguments,1);return function(){return e.apply(null,r)}},pb=function(e,t){return H.find(db(e,t),function(e){return e.action()})},gb=function(i,a){i.on("keydown",function(e){var t,n,r,o;!1===e.isDefaultPrevented()&&(t=i,n=a,r=e,o=zn.detect().os,pb([{keyCode:kg.RIGHT,action:lb(t,!0)},{keyCode:kg.LEFT,action:lb(t,!1)},{keyCode:kg.UP,action:fb(t,!1)},{keyCode:kg.DOWN,action:fb(t,!0)},{keyCode:kg.RIGHT,action:Yu(t,!0)},{keyCode:kg.LEFT,action:Yu(t,!1)},{keyCode:kg.UP,action:Gu(t,!1)},{keyCode:kg.DOWN,action:Gu(t,!0)},{keyCode:kg.RIGHT,action:td.move(t,n,!0)},{keyCode:kg.LEFT,action:td.move(t,n,!1)},{keyCode:kg.RIGHT,ctrlKey:!o.isOSX(),altKey:o.isOSX(),action:td.moveNextWord(t,n)},{keyCode:kg.LEFT,ctrlKey:!o.isOSX(),altKey:o.isOSX(),action:td.movePrevWord(t,n)}],r).each(function(e){r.preventDefault()}))})},hb=function(e){return 1===qr.children(e).length},vb=function(e,t,n,r){var o,i,a,u,s=V.curry(Hh,t),c=H.map(H.filter(r,s),function(e){return e.dom()});if(0===c.length)lf(t,e,n);else{var l=(o=n.dom(),i=c,a=Ih(!1),u=qh(i,a.dom()),Fu.before(qn.fromDom(o),a),Ic.remove(qn.fromDom(o)),Ba(u,0));t.selection.setRng(l.toRange())}},yb=function(n,r){var t,e=qn.fromDom(n.getBody()),o=qn.fromDom(n.selection.getStart()),i=H.filter((t=Ml(o,e),H.findIndex(t,so).fold(V.constant(t),function(e){return t.slice(0,e)})),hb);return H.last(i).map(function(e){var t=Ba.fromRangeStart(n.selection.getRng());return!!vl(r,t,e.dom())&&(vb(r,n,e,i),!0)}).getOr(!1)},bb=function(e,t){return!!e.selection.isCollapsed()&&yb(e,t)},Cb=function(o,i){o.on("keydown",function(e){var t,n,r;!1===e.isDefaultPrevented()&&(t=o,n=i,r=e,pb([{keyCode:kg.BACKSPACE,action:mb(mf,t,!1)},{keyCode:kg.DELETE,action:mb(mf,t,!0)},{keyCode:kg.BACKSPACE,action:mb(id,t,n,!1)},{keyCode:kg.DELETE,action:mb(id,t,n,!0)},{keyCode:kg.BACKSPACE,action:mb(Xl,t,!1)},{keyCode:kg.DELETE,action:mb(Xl,t,!0)},{keyCode:kg.BACKSPACE,action:mb(jl,t,!1)},{keyCode:kg.DELETE,action:mb(jl,t,!0)},{keyCode:kg.BACKSPACE,action:mb(Fd,t,!1)},{keyCode:kg.DELETE,action:mb(Fd,t,!0)},{keyCode:kg.BACKSPACE,action:mb(bb,t,!1)},{keyCode:kg.DELETE,action:mb(bb,t,!0)}],r).each(function(e){r.preventDefault()}))}),o.on("keyup",function(e){var t,n;!1===e.isDefaultPrevented()&&(t=o,n=e,pb([{keyCode:kg.BACKSPACE,action:mb(pf,t)},{keyCode:kg.DELETE,action:mb(pf,t)}],n))})},xb=function(e){return A.from(e.dom.getParent(e.selection.getStart(!0),e.dom.isBlock))},wb=function(e,t){var n,r,o,i=t,a=e.dom,u=e.schema.getMoveCaretBeforeOnEnterElements();if(t){if(/^(LI|DT|DD)$/.test(t.nodeName)){var s=function(e){for(;e;){if(1===e.nodeType||3===e.nodeType&&e.data&&/[\r\n\s]/.test(e.data))return e;e=e.nextSibling}}(t.firstChild);s&&/^(UL|OL|DL)$/.test(s.nodeName)&&t.insertBefore(a.doc.createTextNode("\xa0"),t.firstChild)}if(o=a.createRng(),t.normalize(),t.hasChildNodes()){for(n=new no(t,t);r=n.current();){if(Ao.isText(r)){o.setStart(r,0),o.setEnd(r,0);break}if(u[r.nodeName.toLowerCase()]){o.setStartBefore(r),o.setEndBefore(r);break}i=r,r=n.next()}r||(o.setStart(i,0),o.setEnd(i,0))}else Ao.isBr(t)?t.nextSibling&&a.isBlock(t.nextSibling)?(o.setStartBefore(t),o.setEndBefore(t)):(o.setStartAfter(t),o.setEndAfter(t)):(o.setStart(t,0),o.setEnd(t,0));e.selection.setRng(o),a.remove(void 0),e.selection.scrollIntoView(t)}},Nb=function(e,t){var n,r,o=e.getRoot();for(n=t;n!==o&&"false"!==e.getContentEditable(n);)"true"===e.getContentEditable(n)&&(r=n),n=n.parentNode;return n!==o?r:o},Eb=xb,Sb=function(e){return xb(e).fold(V.constant(""),function(e){return e.nodeName.toUpperCase()})},kb=function(e){return xb(e).filter(function(e){return po(qn.fromDom(e))}).isSome()},Tb=function(e,t){return e&&e.parentNode&&e.parentNode.nodeName===t},Ab=function(e){return e&&/^(OL|UL|LI)$/.test(e.nodeName)},Rb=function(e){var t=e.parentNode;return/^(LI|DT|DD)$/.test(t.nodeName)?t:e},Bb=function(e,t,n){for(var r=e[n?"firstChild":"lastChild"];r&&!Ao.isElement(r);)r=r[n?"nextSibling":"previousSibling"];return r===t},_b=function(e,t,n,r,o){var i=e.dom,a=e.selection.getRng();if(n!==e.getBody()){var u;Ab(u=n)&&Ab(u.parentNode)&&(o="LI");var s,c,l=o?t(o):i.create("BR");if(Bb(n,r,!0)&&Bb(n,r,!1))Tb(n,"LI")?i.insertAfter(l,Rb(n)):i.replace(l,n);else if(Bb(n,r,!0))Tb(n,"LI")?(i.insertAfter(l,Rb(n)),l.appendChild(i.doc.createTextNode(" ")),l.appendChild(n)):n.parentNode.insertBefore(l,n);else if(Bb(n,r,!1))i.insertAfter(l,Rb(n));else{n=Rb(n);var f=a.cloneRange();f.setStartAfter(r),f.setEndAfter(n);var d=f.extractContents();"LI"===o&&(c="LI",(s=d).firstChild&&s.firstChild.nodeName===c)?(l=d.firstChild,i.insertAfter(d,n)):(i.insertAfter(d,n),i.insertAfter(l,n))}i.remove(r),wb(e,l)}},Db=function(e){e.innerHTML='<br data-mce-bogus="1">'},Ob=function(e,t){return e.nodeName===t||e.previousSibling&&e.previousSibling.nodeName===t},Pb=function(e,t){return t&&e.isBlock(t)&&!/^(TD|TH|CAPTION|FORM)$/.test(t.nodeName)&&!/^(fixed|absolute)/i.test(t.style.position)&&"true"!==e.getContentEditable(t)},Lb=function(e,t,n){return!1===Ao.isText(t)?n:e?1===n&&t.data.charAt(n-1)===Ei?0:n:n===t.data.length-1&&t.data.charAt(n)===Ei?t.data.length:n},Ib=function(e,t){var n,r,o=e.getRoot();for(n=t;n!==o&&"false"!==e.getContentEditable(n);)"true"===e.getContentEditable(n)&&(r=n),n=n.parentNode;return n!==o?r:o},Mb=function(e,t){var n=Au(e);n&&n.toLowerCase()===t.tagName.toLowerCase()&&e.dom.setAttribs(t,Ru(e))},Fb=function(a,e){var t,u,s,i,c,n,r,o,l,f,d,m,p,g,h,v,y,b,C=a.dom,x=a.schema,w=x.getNonEmptyElements(),N=a.selection.getRng(),E=function(e){var t,n,r,o=s,i=x.getTextInlineElements();if(e||"TABLE"===f||"HR"===f?(t=C.create(e||m),Mb(a,t)):t=c.cloneNode(!1),r=t,!1===Du(a))C.setAttrib(t,"style",null),C.setAttrib(t,"class",null);else do{if(i[o.nodeName]){if(xc(o))continue;n=o.cloneNode(!1),C.setAttrib(n,"id",""),t.hasChildNodes()?n.appendChild(t.firstChild):r=n,t.appendChild(n)}}while((o=o.parentNode)&&o!==u);return Db(r),t},S=function(e){var t,n,r,o;if(o=Lb(e,s,i),Ao.isText(s)&&(e?0<o:o<s.nodeValue.length))return!1;if(s.parentNode===c&&p&&!e)return!0;if(e&&Ao.isElement(s)&&s===c.firstChild)return!0;if(Ob(s,"TABLE")||Ob(s,"HR"))return p&&!e||!p&&e;for(t=new no(s,c),Ao.isText(s)&&(e&&0===o?t.prev():e||o!==s.nodeValue.length||t.next());n=t.current();){if(Ao.isElement(n)){if(!n.getAttribute("data-mce-bogus")&&(r=n.nodeName.toLowerCase(),w[r]&&"br"!==r))return!1}else if(Ao.isText(n)&&!/^[ \t\r\n]*$/.test(n.nodeValue))return!1;e?t.prev():t.next()}return!0},k=function(){r=/^(H[1-6]|PRE|FIGURE)$/.test(f)&&"HGROUP"!==d?E(m):E(),Ou(a)&&Pb(C,l)&&C.isEmpty(c)?r=C.split(l,c):C.insertAfter(r,c),wb(a,r)};rm.normalize(C,N).each(function(e){N.setStart(e.startContainer,e.startOffset),N.setEnd(e.endContainer,e.endOffset)}),s=N.startContainer,i=N.startOffset,m=Au(a),n=e.shiftKey,Ao.isElement(s)&&s.hasChildNodes()&&(p=i>s.childNodes.length-1,s=s.childNodes[Math.min(i,s.childNodes.length-1)]||s,i=p&&Ao.isText(s)?s.nodeValue.length:0),(u=Ib(C,s))&&((m&&!n||!m&&n)&&(s=function(e,t,n,r,o){var i,a,u,s,c,l,f,d=t||"P",m=e.dom,p=Ib(m,r);if(!(a=m.getParent(r,m.isBlock))||!Pb(m,a)){if(l=(a=a||p)===e.getBody()||(f=a)&&/^(TD|TH|CAPTION)$/.test(f.nodeName)?a.nodeName.toLowerCase():a.parentNode.nodeName.toLowerCase(),!a.hasChildNodes())return i=m.create(d),Mb(e,i),a.appendChild(i),n.setStart(i,0),n.setEnd(i,0),i;for(s=r;s.parentNode!==a;)s=s.parentNode;for(;s&&!m.isBlock(s);)s=(u=s).previousSibling;if(u&&e.schema.isValidChild(l,d.toLowerCase())){for(i=m.create(d),Mb(e,i),u.parentNode.insertBefore(i,u),s=u;s&&!m.isBlock(s);)c=s.nextSibling,i.appendChild(s),s=c;n.setStart(r,o),n.setEnd(r,o)}}return r}(a,m,N,s,i)),c=C.getParent(s,C.isBlock),l=c?C.getParent(c.parentNode,C.isBlock):null,f=c?c.nodeName.toUpperCase():"","LI"!==(d=l?l.nodeName.toUpperCase():"")||e.ctrlKey||(l=(c=l).parentNode,f=d),/^(LI|DT|DD)$/.test(f)&&C.isEmpty(c)?_b(a,E,l,c,m):m&&c===a.getBody()||(m=m||"P",Ai(c)?(r=Mi(c),C.isEmpty(c)&&Db(c),wb(a,r)):S()?k():S(!0)?(r=c.parentNode.insertBefore(E(),c),wb(a,Ob(c,"HR")?r:c)):((t=(y=N,b=y.cloneRange(),b.setStart(y.startContainer,Lb(!0,y.startContainer,y.startOffset)),b.setEnd(y.endContainer,Lb(!1,y.endContainer,y.endOffset)),b).cloneRange()).setEndAfter(c),function(e){for(;Ao.isText(e)&&(e.nodeValue=e.nodeValue.replace(/^[\r\n]+/,"")),e=e.firstChild;);}(o=t.extractContents()),r=o.firstChild,C.insertAfter(o,c),function(e,t,n){var r,o=n,i=[];if(o){for(;o=o.firstChild;){if(e.isBlock(o))return;Ao.isElement(o)&&!t[o.nodeName.toLowerCase()]&&i.push(o)}for(r=i.length;r--;)!(o=i[r]).hasChildNodes()||o.firstChild===o.lastChild&&""===o.firstChild.nodeValue?e.remove(o):(a=o)&&"A"===a.nodeName&&0===Lt.trim(Si(a.innerText||a.textContent)).length&&e.remove(o);var a}}(C,w,r),g=C,(h=c).normalize(),(v=h.lastChild)&&!/^(left|right)$/gi.test(g.getStyle(v,"float",!0))||g.add(h,"br"),C.isEmpty(c)&&Db(c),r.normalize(),C.isEmpty(r)?(C.remove(r),k()):wb(a,r)),C.setAttrib(r,"id",""),a.fire("NewBlock",{newBlock:r})))},zb=function(e,t){return Eb(e).filter(function(e){return 0<t.length&&Br.is(qn.fromDom(e),t)}).isSome()},Ub=function(e){return zb(e,Bu(e))},qb=function(e){return zb(e,_u(e))},Vb=Yl([{br:[]},{block:[]},{none:[]}]),Hb=function(e,t){return qb(e)},jb=function(n){return function(e,t){return""===Au(e)===n}},$b=function(n){return function(e,t){return kb(e)===n}},Wb=function(n){return function(e,t){return"PRE"===Sb(e)===n}},Kb=function(n){return function(e,t){return Tu(e)===n}},Xb=function(e,t){return Ub(e)},Yb=function(e,t){return t},Gb=function(e){var t=Au(e),n=Nb(e.dom,e.selection.getStart());return n&&e.schema.isValidChild(n.nodeName,t||"P")},Jb=function(e,t){return function(n,r){return H.foldl(e,function(e,t){return e&&t(n,r)},!0)?A.some(t):A.none()}},Qb=function(e,t){return Sf([Jb([Hb],Vb.none()),Jb([Wb(!0),Kb(!1),Yb],Vb.br()),Jb([Wb(!0),Kb(!1)],Vb.block()),Jb([Wb(!0),Kb(!0),Yb],Vb.block()),Jb([Wb(!0),Kb(!0)],Vb.br()),Jb([$b(!0),Yb],Vb.br()),Jb([$b(!0)],Vb.block()),Jb([jb(!0),Yb,Gb],Vb.block()),Jb([jb(!0)],Vb.br()),Jb([Xb],Vb.br()),Jb([jb(!1),Yb],Vb.br()),Jb([Gb],Vb.block())],[e,t.shiftKey]).getOr(Vb.none())},Zb=function(e,t){Qb(e,t).fold(function(){mm.insert(e,t)},function(){Fb(e,t)},V.noop)},eC=function(o){o.on("keydown",function(e){var t,n,r;e.keyCode===kg.ENTER&&(t=o,(n=e).isDefaultPrevented()||(n.preventDefault(),(r=t.undoManager).typing&&(r.typing=!1,r.add()),t.undoManager.transact(function(){!1===t.selection.isCollapsed()&&t.execCommand("Delete"),Zb(t,n)})))})},tC=function(e,t,n){return u=t,!(!nC(n)||!Ao.isText(u.container())||(r=e,i=(o=t).container(),a=o.offset(),i.insertData(a,"\xa0"),r.selection.setCursorLocation(i,a+1),0));var r,o,i,a,u},nC=function(e){return e.fold(V.constant(!1),V.constant(!0),V.constant(!0),V.constant(!1))},rC=function(e){return!!e.selection.isCollapsed()&&(t=e,n=V.curry(pl.isInlineTarget,t),r=Ba.fromRangeStart(t.selection.getRng()),Hf(n,t.getBody(),r).map(V.curry(tC,t,r)).getOr(!1));var t,n,r},oC=function(r){r.on("keydown",function(e){var t,n;!1===e.isDefaultPrevented()&&(t=r,n=e,pb([{keyCode:kg.SPACEBAR,action:mb(rC,t)}],n).each(function(e){n.preventDefault()}))})},iC=function(e,t){var n;t.hasAttribute("data-mce-caret")&&(Mi(t),(n=e).selection.setRng(n.selection.getRng()),e.selection.scrollIntoView(t))},aC=function(e,t){var n,r=(n=e,Cl(qn.fromDom(n.getBody()),"*[data-mce-caret]").fold(V.constant(null),function(e){return e.dom()}));if(r)return"compositionstart"===t.type?(t.preventDefault(),t.stopPropagation(),void iC(e,r)):void(_i(r)&&(iC(e,r),e.undoManager.add()))},uC=function(e){e.on("keyup compositionstart",V.curry(aC,e))},sC=function(e){var t=td.setupSelectedState(e);uC(e),gb(e,t),Cb(e,t),eC(e),oC(e)};function cC(u){var s,n,r,o=Lt.each,c=kg.BACKSPACE,l=kg.DELETE,f=u.dom,d=u.selection,e=u.settings,t=u.parser,i=ge.gecko,a=ge.ie,m=ge.webkit,p="data:text/mce-internal,",g=a?"Text":"URL",h=function(e,t){try{u.getDoc().execCommand(e,!1,t)}catch(n){}},v=function(e){return e.isDefaultPrevented()},y=function(){u.shortcuts.add("meta+a",null,"SelectAll")},b=function(){u.on("keydown",function(e){if(!v(e)&&e.keyCode===c&&d.isCollapsed()&&0===d.getRng().startOffset){var t=d.getNode().previousSibling;if(t&&t.nodeName&&"table"===t.nodeName.toLowerCase())return e.preventDefault(),!1}})},C=function(){u.inline||(u.contentStyles.push("body {min-height: 150px}"),u.on("click",function(e){var t;if("HTML"===e.target.nodeName){if(11<ge.ie)return void u.getBody().focus();t=u.selection.getRng(),u.getBody().focus(),u.selection.setRng(t),u.selection.normalize(),u.nodeChanged()}}))};return u.on("keydown",function(e){var t,n,r,o,i;if(!v(e)&&e.keyCode===kg.BACKSPACE&&(n=(t=d.getRng()).startContainer,r=t.startOffset,o=f.getRoot(),i=n,t.collapsed&&0===r)){for(;i&&i.parentNode&&i.parentNode.firstChild===i&&i.parentNode!==o;)i=i.parentNode;"BLOCKQUOTE"===i.tagName&&(u.formatter.toggle("blockquote",null,i),(t=f.createRng()).setStart(n,0),t.setEnd(n,0),d.setRng(t))}}),s=function(e){var t=f.create("body"),n=e.cloneContents();return t.appendChild(n),d.serializer.serialize(t,{format:"html"})},u.on("keydown",function(e){var t,n,r,o,i,a=e.keyCode;if(!v(e)&&(a===l||a===c)){if(t=u.selection.isCollapsed(),n=u.getBody(),t&&!f.isEmpty(n))return;if(!t&&(r=u.selection.getRng(),o=s(r),(i=f.createRng()).selectNode(u.getBody()),o!==s(i)))return;e.preventDefault(),u.setContent(""),n.firstChild&&f.isBlock(n.firstChild)?u.selection.setCursorLocation(n.firstChild,0):u.selection.setCursorLocation(n,0),u.nodeChanged()}}),ge.windowsPhone||u.on("keyup focusin mouseup",function(e){kg.modifierPressed(e)||d.normalize()},!0),m&&(u.settings.content_editable||f.bind(u.getDoc(),"mousedown mouseup",function(e){var t;if(e.target===u.getDoc().documentElement)if(t=d.getRng(),u.getBody().focus(),"mousedown"===e.type){if(Bi(t.startContainer))return;d.placeCaretAt(e.clientX,e.clientY)}else d.setRng(t)}),u.on("click",function(e){var t=e.target;/^(IMG|HR)$/.test(t.nodeName)&&"false"!==f.getContentEditableParent(t)&&(e.preventDefault(),u.selection.select(t),u.nodeChanged()),"A"===t.nodeName&&f.hasClass(t,"mce-item-anchor")&&(e.preventDefault(),d.select(t))}),e.forced_root_block&&u.on("init",function(){h("DefaultParagraphSeparator",e.forced_root_block)}),u.on("init",function(){u.dom.bind(u.getBody(),"submit",function(e){e.preventDefault()})}),b(),t.addNodeFilter("br",function(e){for(var t=e.length;t--;)"Apple-interchange-newline"===e[t].attr("class")&&e[t].remove()}),ge.iOS?(u.inline||u.on("keydown",function(){document.activeElement===document.body&&u.getWin().focus()}),C(),u.on("click",function(e){var t=e.target;do{if("A"===t.tagName)return void e.preventDefault()}while(t=t.parentNode)}),u.contentStyles.push(".mce-content-body {-webkit-touch-callout: none}")):y()),11<=ge.ie&&(C(),b()),ge.ie&&(y(),h("AutoUrlDetect",!1),u.on("dragstart",function(e){var t,n,r;(t=e).dataTransfer&&(u.selection.isCollapsed()&&"IMG"===t.target.tagName&&d.select(t.target),0<(n=u.selection.getContent()).length&&(r=p+escape(u.id)+","+escape(n),t.dataTransfer.setData(g,r)))}),u.on("drop",function(e){if(!v(e)){var t=(i=e).dataTransfer&&(a=i.dataTransfer.getData(g))&&0<=a.indexOf(p)?(a=a.substr(p.length).split(","),{id:unescape(a[0]),html:unescape(a[1])}):null;if(t&&t.id!==u.id){e.preventDefault();var n=by.fromPoint(e.x,e.y,u.getDoc());d.setRng(n),r=t.html,o=!0,u.queryCommandSupported("mceInsertClipboardContent")?u.execCommand("mceInsertClipboardContent",!1,{content:r,internal:o}):u.execCommand("mceInsertContent",!1,r)}}var r,o,i,a})),i&&(u.on("keydown",function(e){if(!v(e)&&e.keyCode===c){if(!u.getBody().getElementsByTagName("hr").length)return;if(d.isCollapsed()&&0===d.getRng().startOffset){var t=d.getNode(),n=t.previousSibling;if("HR"===t.nodeName)return f.remove(t),void e.preventDefault();n&&n.nodeName&&"hr"===n.nodeName.toLowerCase()&&(f.remove(n),e.preventDefault())}}}),Range.prototype.getClientRects||u.on("mousedown",function(e){if(!v(e)&&"HTML"===e.target.nodeName){var t=u.getBody();t.blur(),Ce.setEditorTimeout(u,function(){t.focus()})}}),n=function(){var e=f.getAttribs(d.getStart().cloneNode(!1));return function(){var t=d.getStart();t!==u.getBody()&&(f.setAttrib(t,"style",null),o(e,function(e){t.setAttributeNode(e.cloneNode(!0))}))}},r=function(){return!d.isCollapsed()&&f.getParent(d.getStart(),f.isBlock)!==f.getParent(d.getEnd(),f.isBlock)},u.on("keypress",function(e){var t;if(!v(e)&&(8===e.keyCode||46===e.keyCode)&&r())return t=n(),u.getDoc().execCommand("delete",!1,null),t(),e.preventDefault(),!1}),f.bind(u.getDoc(),"cut",function(e){var t;!v(e)&&r()&&(t=n(),Ce.setEditorTimeout(u,function(){t()}))}),e.readonly||u.on("BeforeExecCommand MouseDown",function(){h("StyleWithCSS",!1),h("enableInlineTableEditing",!1),e.object_resizing||h("enableObjectResizing",!1)}),u.on("SetContent ExecCommand",function(e){"setcontent"!==e.type&&"mceInsertLink"!==e.command||o(f.select("a"),function(e){var t=e.parentNode,n=f.getRoot();if(t.lastChild===e){for(;t&&!f.isBlock(t);){if(t.parentNode.lastChild!==t||t===n)return;t=t.parentNode}f.add(t,"br",{"data-mce-bogus":1})}})}),u.contentStyles.push("img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}"),ge.mac&&u.on("keydown",function(e){!kg.metaKeyPressed(e)||e.shiftKey||37!==e.keyCode&&39!==e.keyCode||(e.preventDefault(),u.selection.getSel().modify("move",37===e.keyCode?"backward":"forward","lineboundary"))}),b()),{refreshContentEditable:function(){},isHidden:function(){var e;return!i||u.removed?0:!(e=u.selection.getSel())||!e.rangeCount||0===e.rangeCount}}}var lC=function(e){return Ao.isElement(e)&&fo(qn.fromDom(e))},fC=function(t){t.on("click",function(e){3===e.detail&&function(e){var t=e.selection.getRng(),n=Ta.fromRangeStart(t),r=Ta.fromRangeEnd(t);if(Ta.isElementPosition(n)){var o=n.container();lC(o)&&Ka.firstPositionIn(o).each(function(e){return t.setStart(e.container(),e.offset())})}Ta.isElementPosition(r)&&(o=n.container(),lC(o)&&Ka.lastPositionIn(o).each(function(e){return t.setEnd(e.container(),e.offset())})),e.selection.setRng(Wc(t))}(t)})},dC=di.DOM,mC=function(e){var t;e.bindPendingEventDelegates(),e.initialized=!0,e.fire("init"),e.focus(!0),e.nodeChanged({initial:!0}),e.execCallback("init_instance_callback",e),(t=e).settings.auto_focus&&Ce.setEditorTimeout(t,function(){var e;(e=!0===t.settings.auto_focus?t:t.editorManager.get(t.settings.auto_focus)).destroyed||e.focus()},100)},pC=function(t,e){var n,r,u,o,i,a,s,c,l,f=t.settings,d=t.getElement(),m=t.getDoc();f.inline||(t.getElement().style.visibility=t.orgVisibility),e||f.content_editable||(m.open(),m.write(t.iframeHTML),m.close()),f.content_editable&&(t.on("remove",function(){var e=this.getBody();dC.removeClass(e,"mce-content-body"),dC.removeClass(e,"mce-edit-focus"),dC.setAttrib(e,"contentEditable",null)}),dC.addClass(d,"mce-content-body"),t.contentDocument=m=f.content_document||document,t.contentWindow=f.content_window||window,t.bodyElement=d,f.content_document=f.content_window=null,f.root_name=d.nodeName.toLowerCase()),(n=t.getBody()).disabled=!0,t.readonly=f.readonly,t.readonly||(t.inline&&"static"===dC.getStyle(n,"position",!0)&&(n.style.position="relative"),n.contentEditable=t.getParam("content_editable_state",!0)),n.disabled=!1,t.editorUpload=$p(t),t.schema=Zo(f),t.dom=di(m,{keep_values:!0,url_converter:t.convertURL,url_converter_scope:t,hex_colors:f.force_hex_style_colors,class_filter:f.class_filter,update_styles:!0,root_element:t.inline?t.getBody():null,collect:f.content_editable,schema:t.schema,onSetAttrib:function(e){t.fire("SetAttrib",e)}}),t.parser=((o=uy((u=t).settings,u.schema)).addAttributeFilter("src,href,style,tabindex",function(e,t){for(var n,r,o,i=e.length,a=u.dom;i--;)if(r=(n=e[i]).attr(t),o="data-mce-"+t,!n.attributes.map[o]){if(0===r.indexOf("data:")||0===r.indexOf("blob:"))continue;"style"===t?((r=a.serializeStyle(a.parseStyle(r),n.name)).length||(r=null),n.attr(o,r),n.attr(t,r)):"tabindex"===t?(n.attr(o,r),n.attr(t,null)):n.attr(o,u.convertURL(r,t,n.name))}}),o.addNodeFilter("script",function(e){for(var t,n,r=e.length;r--;)0!==(n=(t=e[r]).attr("type")||"no/type").indexOf("mce-")&&t.attr("type","mce-"+n)}),o.addNodeFilter("#cdata",function(e){for(var t,n=e.length;n--;)(t=e[n]).type=8,t.name="#comment",t.value="[CDATA["+t.value+"]]"}),o.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(e){for(var t,n=e.length,r=u.schema.getNonEmptyElements();n--;)(t=e[n]).isEmpty(r)&&0===t.getAll("br").length&&(t.append(new Gv("br",1)).shortEnded=!0)}),o),t.serializer=dy(f,t),t.selection=tb(t.dom,t.getWin(),t.serializer,t),t.formatter=Pv(t),t.undoManager=oh(t),t._nodeChangeDispatcher=new Gp(t),t._selectionOverrides=Dg(t),fC(t),sC(t),Yp(t),t.fire("PreInit"),f.browser_spellcheck||f.gecko_spellcheck||(m.body.spellcheck=!1,dC.setAttrib(n,"spellcheck","false")),t.quirks=cC(t),t.fire("PostRender"),f.directionality&&(n.dir=f.directionality),f.nowrap&&(n.style.whiteSpace="nowrap"),f.protect&&t.on("BeforeSetContent",function(t){Lt.each(f.protect,function(e){t.content=t.content.replace(e,function(e){return"\x3c!--mce:protected "+escape(e)+"--\x3e"})})}),t.on("SetContent",function(){t.addVisual(t.getBody())}),t.load({initial:!0,format:"html"}),t.startContent=t.getContent({format:"raw"}),t.on("compositionstart compositionend",function(e){t.composing="compositionstart"===e.type}),0<t.contentStyles.length&&(r="",Lt.each(t.contentStyles,function(e){r+=e+"\r\n"}),t.dom.addStyle(r)),(i=t,i.inline?dC.styleSheetLoader:i.dom.styleSheetLoader).loadAll(t.contentCSS,function(e){mC(t)},function(e){mC(t)}),f.content_style&&(a=t,s=f.content_style,c=qn.fromDom(a.getDoc().head),l=qn.fromTag("style"),cr.set(l,"type","text/css"),Fu.append(l,qn.fromText(s)),Fu.append(c,l))},gC=di.DOM,hC=function(e,t){var n,r,o,i,a,u,s,c=e.editorManager.translate("Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help"),l=(n=e.id,r=c,o=t.height,i=xu(e),s=qn.fromTag("iframe"),cr.setAll(s,i),cr.setAll(s,{id:n+"_ifr",frameBorder:"0",allowTransparency:"true",title:r}),vr(s,{width:"100%",height:(a=o,u="number"==typeof a?a+"px":a,u||""),display:"block"}),s).dom();l.onload=function(){l.onload=null,e.fire("load")};var f,d,m,p,g=function(e,t){if(document.domain!==window.location.hostname&&ge.ie&&ge.ie<12){var n=jp.uuid("mce");e[n]=function(){pC(e)};var r='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinymce.get("'+e.id+'");document.write(ed.iframeHTML);document.close();ed.'+n+"(true);})()";return gC.setAttrib(t,"src",r),!0}return!1}(e,l);return e.contentAreaContainer=t.iframeContainer,e.iframeElement=l,e.iframeHTML=(p=wu(f=e)+"<html><head>",Nu(f)!==f.documentBaseUrl&&(p+='<base href="'+f.documentBaseURI.getURI()+'" />'),p+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />',d=Eu(f),m=Su(f),ku(f)&&(p+='<meta http-equiv="Content-Security-Policy" content="'+ku(f)+'" />'),p+='</head><body id="'+d+'" class="mce-content-body '+m+'" data-id="'+f.id+'"><br></body></html>'),gC.add(t.iframeContainer,l),g},vC=function(e,t){var n=hC(e,t);t.editorContainer&&(gC.get(t.editorContainer).style.display=e.orgDisplay,e.hidden=gC.isHidden(t.editorContainer)),e.getElement().style.display="none",gC.setAttrib(e.id,"aria-hidden","true"),n||pC(e)},yC=di.DOM,bC=function(t,n,e){var r,o,i=Tp.get(e);if(r=Tp.urls[e]||t.documentBaseUrl.replace(/\/$/,""),e=Lt.trim(e),i&&-1===Lt.inArray(n,e)){if(Lt.each(Tp.dependencies(e),function(e){bC(t,n,e)}),t.plugins[e])return;o=new i(t,r,t.$),(t.plugins[e]=o).init&&(o.init(t,r),n.push(e))}},CC=function(e){return e.replace(/^\-/,"")},xC=function(e){return{editorContainer:e,iframeContainer:e}},wC=function(e){var t,n,r=e.getElement();return e.inline?xC(null):(t=r,n=yC.create("div"),yC.insertAfter(n,t),xC(n))},NC=function(e){var t,n,r,o,i,a,u,s,c,l,f,d=e.settings,m=e.getElement();return e.orgDisplay=m.style.display,E.isString(d.theme)?(l=(o=e).settings,f=o.getElement(),i=l.width||yC.getStyle(f,"width")||"100%",a=l.height||yC.getStyle(f,"height")||f.offsetHeight,u=l.min_height||100,(s=/^[0-9\.]+(|px)$/i).test(""+i)&&(i=Math.max(parseInt(i,10),100)),s.test(""+a)&&(a=Math.max(parseInt(a,10),u)),c=o.theme.renderUI({targetNode:f,width:i,height:a,deltaWidth:l.delta_width,deltaHeight:l.delta_height}),l.content_editable||(a=(c.iframeHeight||a)+("number"==typeof a?c.deltaHeight||0:""))<u&&(a=u),c.height=a,c):E.isFunction(d.theme)?(r=(t=e).getElement(),(n=t.settings.theme(t,r)).editorContainer.nodeType&&(n.editorContainer.id=n.editorContainer.id||t.id+"_parent"),n.iframeContainer&&n.iframeContainer.nodeType&&(n.iframeContainer.id=n.iframeContainer.id||t.id+"_iframecontainer"),n.height=n.iframeHeight?n.iframeHeight:r.offsetHeight,n):wC(e)},EC=function(t){var e,n,r,o,i,a,u=t.settings,s=t.getElement();return t.rtl=u.rtl_ui||t.editorManager.i18n.rtl,t.editorManager.i18n.setCode(u.language),u.aria_label=u.aria_label||yC.getAttrib(s,"aria-label",t.getLang("aria.rich_text_area")),t.fire("ScriptsLoaded"),o=(n=t).settings.theme,E.isString(o)?(n.settings.theme=CC(o),r=Ap.get(o),n.theme=new r(n,Ap.urls[o]),n.theme.init&&n.theme.init(n,Ap.urls[o]||n.documentBaseUrl.replace(/\/$/,""),n.$)):n.theme={},i=t,a=[],Lt.each(i.settings.plugins.split(/[ ,]/),function(e){bC(i,a,CC(e))}),e=NC(t),t.editorContainer=e.editorContainer?e.editorContainer:null,u.content_css&&Lt.each(Lt.explode(u.content_css),function(e){t.contentCSS.push(t.documentBaseURI.toAbsolute(e))}),u.content_editable?pC(t):vC(t,e)},SC=di.DOM,kC=function(e){return"-"===e.charAt(0)},TC=function(i,a){var u=vi.ScriptLoader;!function(e,t,n,r){var o=t.settings,i=o.theme;if(E.isString(i)){if(!kC(i)&&!Ap.urls.hasOwnProperty(i)){var a=o.theme_url;a?Ap.load(i,t.documentBaseURI.toAbsolute(a)):Ap.load(i,"themes/"+i+"/theme"+n+".js")}e.loadQueue(function(){Ap.waitFor(i,r)})}else r()}(u,i,a,function(){var e,t,n,r,o;e=u,(n=(t=i).settings).language&&"en"!==n.language&&!n.language_url&&(n.language_url=t.editorManager.baseURL+"/langs/"+n.language+".js"),n.language_url&&!t.editorManager.i18n.data[n.language]&&e.add(n.language_url),r=i.settings,o=a,Lt.isArray(r.plugins)&&(r.plugins=r.plugins.join(" ")),Lt.each(r.external_plugins,function(e,t){Tp.load(t,e),r.plugins+=" "+t}),Lt.each(r.plugins.split(/[ ,]/),function(e){if((e=Lt.trim(e))&&!Tp.urls[e])if(kC(e)){e=e.substr(1,e.length);var t=Tp.dependencies(e);Lt.each(t,function(e){var t={prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"};e=Tp.createUrl(t,e),Tp.load(e.resource,e)})}else Tp.load(e,{prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"})}),u.loadQueue(function(){i.removed||EC(i)},i,function(e){kp.pluginLoadError(i,e[0]),i.removed||EC(i)})})},AC=function(t){var e=t.settings,n=t.id,r=function(){SC.unbind(window,"ready",r),t.render()};if(Re.Event.domLoaded){if(t.getElement()&&ge.contentEditable){e.inline?t.inline=!0:(t.orgVisibility=t.getElement().style.visibility,t.getElement().style.visibility="hidden");var o=t.getElement().form||SC.getParent(n,"form");o&&(t.formElement=o,e.hidden_input&&!/TEXTAREA|INPUT/i.test(t.getElement().nodeName)&&(SC.insertAfter(SC.create("input",{type:"hidden",name:n}),n),t.hasHiddenInput=!0),t.formEventDelegate=function(e){t.fire(e.type,e)},SC.bind(o,"submit reset",t.formEventDelegate),t.on("reset",function(){t.setContent(t.startContent,{format:"raw"})}),!e.submit_patch||o.submit.nodeType||o.submit.length||o._mceOldSubmit||(o._mceOldSubmit=o.submit,o.submit=function(){return t.editorManager.triggerSave(),t.setDirty(!1),o._mceOldSubmit(o)})),t.windowManager=xp(t),t.notificationManager=Cp(t),"xml"===e.encoding&&t.on("GetContent",function(e){e.save&&(e.content=SC.encode(e.content))}),e.add_form_submit_trigger&&t.on("submit",function(){t.initialized&&t.save()}),e.add_unload_trigger&&(t._beforeUnload=function(){!t.initialized||t.destroyed||t.isHidden()||t.save({format:"raw",no_events:!0,set_dirty:!1})},t.editorManager.on("BeforeUnload",t._beforeUnload)),t.editorManager.add(t),TC(t,t.suffix)}}else SC.bind(window,"ready",r)},RC=function(e,t,n){var r=e.sidebars?e.sidebars:[];r.push({name:t,settings:n}),e.sidebars=r},BC=Lt.each,_C=Lt.trim,DC="source protocol authority userInfo user password host port relative path directory file query anchor".split(" "),OC={ftp:21,http:80,https:443,mailto:25},PC=function(r,e){var t,n,o=this;if(r=_C(r),t=(e=o.settings=e||{}).base_uri,/^([\w\-]+):([^\/]{2})/i.test(r)||/^\s*#/.test(r))o.source=r;else{var i=0===r.indexOf("//");0!==r.indexOf("/")||i||(r=(t&&t.protocol||"http")+"://mce_host"+r),/^[\w\-]*:?\/\//.test(r)||(n=e.base_uri?e.base_uri.path:new PC(document.location.href).directory,""==e.base_uri.protocol?r="//mce_host"+o.toAbsPath(n,r):(r=/([^#?]*)([#?]?.*)/.exec(r),r=(t&&t.protocol||"http")+"://mce_host"+o.toAbsPath(n,r[1])+r[2])),r=r.replace(/@@/g,"(mce_at)"),r=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(r),BC(DC,function(e,t){var n=r[t];n&&(n=n.replace(/\(mce_at\)/g,"@@")),o[e]=n}),t&&(o.protocol||(o.protocol=t.protocol),o.userInfo||(o.userInfo=t.userInfo),o.port||"mce_host"!==o.host||(o.port=t.port),o.host&&"mce_host"!==o.host||(o.host=t.host),o.source=""),i&&(o.protocol="")}};PC.prototype={setPath:function(e){e=/^(.*?)\/?(\w+)?$/.exec(e),this.path=e[0],this.directory=e[1],this.file=e[2],this.source="",this.getURI()},toRelative:function(e){var t;if("./"===e)return e;if("mce_host"!==(e=new PC(e,{base_uri:this})).host&&this.host!==e.host&&e.host||this.port!==e.port||this.protocol!==e.protocol&&""!==e.protocol)return e.getURI();var n=this.getURI(),r=e.getURI();return n===r||"/"===n.charAt(n.length-1)&&n.substr(0,n.length-1)===r?n:(t=this.toRelPath(this.path,e.path),e.query&&(t+="?"+e.query),e.anchor&&(t+="#"+e.anchor),t)},toAbsolute:function(e,t){return(e=new PC(e,{base_uri:this})).getURI(t&&this.isSameOrigin(e))},isSameOrigin:function(e){if(this.host==e.host&&this.protocol==e.protocol){if(this.port==e.port)return!0;var t=OC[this.protocol];if(t&&(this.port||t)==(e.port||t))return!0}return!1},toRelPath:function(e,t){var n,r,o,i=0,a="";if(e=(e=e.substring(0,e.lastIndexOf("/"))).split("/"),n=t.split("/"),e.length>=n.length)for(r=0,o=e.length;r<o;r++)if(r>=n.length||e[r]!==n[r]){i=r+1;break}if(e.length<n.length)for(r=0,o=n.length;r<o;r++)if(r>=e.length||e[r]!==n[r]){i=r+1;break}if(1===i)return t;for(r=0,o=e.length-(i-1);r<o;r++)a+="../";for(r=i-1,o=n.length;r<o;r++)a+=r!==i-1?"/"+n[r]:n[r];return a},toAbsPath:function(e,t){var n,r,o,i=0,a=[];for(r=/\/$/.test(t)?"/":"",e=e.split("/"),t=t.split("/"),BC(e,function(e){e&&a.push(e)}),e=a,n=t.length-1,a=[];0<=n;n--)0!==t[n].length&&"."!==t[n]&&(".."!==t[n]?0<i?i--:a.push(t[n]):i++);return 0!==(o=(n=e.length-i)<=0?a.reverse().join("/"):e.slice(0,n).join("/")+"/"+a.reverse().join("/")).indexOf("/")&&(o="/"+o),r&&o.lastIndexOf("/")!==o.length-1&&(o+=r),o},getURI:function(e){var t,n=this;return n.source&&!e||(t="",e||(n.protocol?t+=n.protocol+"://":t+="//",n.userInfo&&(t+=n.userInfo+"@"),n.host&&(t+=n.host),n.port&&(t+=":"+n.port)),n.path&&(t+=n.path),n.query&&(t+="?"+n.query),n.anchor&&(t+="#"+n.anchor),n.source=t),n.source}},PC.parseDataUri=function(e){var t,n;return e=decodeURIComponent(e).split(","),(n=/data:([^;]+)/.exec(e[0]))&&(t=n[1]),{type:t,data:e[1]}},PC.getDocumentBaseUrl=function(e){var t;return t=0!==e.protocol.indexOf("http")&&"file:"!==e.protocol?e.href:e.protocol+"//"+e.host+e.pathname,/^[^:]+:\/\/\/?[^\/]+\//.test(t)&&(t=t.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(t)||(t+="/")),t};var LC=function(e,t){t(e),e.firstChild&&LC(e.firstChild,t),e.next&&LC(e.next,t)},IC=function(e,t,n){var r=function(e,n,t){var r={},o={},i=[];for(var a in t.firstChild&&LC(t.firstChild,function(t){H.each(e,function(e){e.name===t.name&&(r[e.name]?r[e.name].nodes.push(t):r[e.name]={filter:e,nodes:[t]})}),H.each(n,function(e){"string"==typeof t.attr(e.name)&&(o[e.name]?o[e.name].nodes.push(t):o[e.name]={filter:e,nodes:[t]})})}),r)r.hasOwnProperty(a)&&i.push(r[a]);for(var u in o)o.hasOwnProperty(u)&&i.push(o[u]);return i}(e,t,n);H.each(r,function(t){H.each(t.filter.callbacks,function(e){e(t.nodes,t.filter.name,{})})})},MC=function(e){return e instanceof Gv},FC=function(e,t,n){var r,o,i,a,u;if(t.format=t.format?t.format:"html",t.get=!0,t.getInner=!0,t.no_events||e.fire("BeforeGetContent",t),"raw"===t.format)r=Lt.trim(Ug.trimExternal(e.serializer,n.innerHTML));else if("text"===t.format)r=Si(n.innerText||n.textContent);else{if("tree"===t.format)return e.serializer.serialize(n,t);i=(o=e).serializer.serialize(n,t),a=Au(o),u=new RegExp("^(<"+a+"[^>]*>( | |\\s|\xa0|<br \\/>|)<\\/"+a+">[\r\n]*|<br \\/>[\r\n]*)$"),r=i.replace(u,"")}return"text"!==t.format?t.content=Lt.trim(r):t.content=r,t.no_events||e.fire("GetContent",t),t.content},zC=function(u,s,c){return void 0===c&&(c={}),c.format=c.format?c.format:"html",c.set=!0,c.content=MC(s)?"":s,MC(s)||c.no_events||(u.fire("BeforeSetContent",c),s=c.content),A.from(u.getBody()).fold(V.constant(s),function(e){return MC(s)?function(e,t,n,r){IC(e.parser.getNodeFilters(),e.parser.getAttributeFilters(),n);var o=jc({validate:e.validate},e.schema).serialize(n);return r.content=Lt.trim(o),e.dom.setHTML(t,r.content),r.no_events||e.fire("SetContent",r),n}(u,e,s,c):(t=u,n=e,o=c,0===(r=s).length||/^\s+$/.test(r)?(a='<br data-mce-bogus="1">',"TABLE"===n.nodeName?r="<tr><td>"+a+"</td></tr>":/^(UL|OL)$/.test(n.nodeName)&&(r="<li>"+a+"</li>"),(i=Au(t))&&t.schema.isValidChild(n.nodeName.toLowerCase(),i.toLowerCase())?(r=a,r=t.dom.createHTML(i,t.settings.forced_root_block_attrs,r)):r||(r='<br data-mce-bogus="1">'),t.dom.setHTML(n,r),t.fire("SetContent",o)):("raw"!==o.format&&(r=jc({validate:t.validate},t.schema).serialize(t.parser.parse(r,{isRootContent:!0,insert:!0}))),o.content=Lt.trim(r),t.dom.setHTML(n,o.content),o.no_events||t.fire("SetContent",o)),o.content);var t,n,r,o,i,a})},UC=di.DOM,qC=function(e){return A.from(e).each(function(e){return e.destroy()})},VC=function(e){if(!e.removed){var t=e._selectionOverrides,n=e.editorUpload,r=e.getBody(),o=e.getElement();r&&e.save(),e.removed=!0,e.unbindAllNativeEvents(),e.hasHiddenInput&&o&&UC.remove(o.nextSibling),!e.inline&&r&&(i=e,UC.setStyle(i.id,"display",i.orgDisplay)),qv(e),e.editorManager.remove(e),UC.remove(e.getContainer()),qC(t),qC(n),e.destroy()}var i},HC=function(e,t){var n,r,o,i=e.selection,a=e.dom;e.destroyed||(t||e.removed?(t||(e.editorManager.off("beforeunload",e._beforeUnload),e.theme&&e.theme.destroy&&e.theme.destroy(),qC(i),qC(a)),(r=(n=e).formElement)&&(r._mceOldSubmit&&(r.submit=r._mceOldSubmit,r._mceOldSubmit=null),UC.unbind(r,"submit reset",n.formEventDelegate)),(o=e).contentAreaContainer=o.formElement=o.container=o.editorContainer=null,o.bodyElement=o.contentDocument=o.contentWindow=null,o.iframeElement=o.targetElm=null,o.selection&&(o.selection=o.selection.win=o.selection.dom=o.selection.dom.doc=null),e.destroyed=!0):e.remove())},jC=di.DOM,$C=Lt.extend,WC=Lt.each,KC=Lt.resolve,XC=ge.ie,YC=function(e,t,n){var r,o,i,a,u,s,c,l=this,f=l.documentBaseUrl=n.documentBaseURL,d=n.baseURI;r=l,o=e,i=f,a=n.defaultSettings,u=t,c={id:o,theme:"modern",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:i,add_form_submit_trigger:!0,submit_patch:!0,add_unload_trigger:!0,convert_urls:!0,relative_urls:!0,remove_script_host:!0,object_resizing:!0,doctype:"<!DOCTYPE html>",visual:!0,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",forced_root_block:"p",hidden_input:!0,render_ui:!0,indentation:"30px",inline_styles:!0,convert_fonts_to_spans:!0,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",entity_encoding:"named",url_converter:(s=r).convertURL,url_converter_scope:s,ie7_compat:!0},t=sl(nl,c,a,u),l.settings=t,Ci.language=t.language||"en",Ci.languageLoad=t.language_load,Ci.baseURL=n.baseURL,l.id=e,l.setDirty(!1),l.plugins={},l.documentBaseURI=new PC(t.document_base_url,{base_uri:d}),l.baseURI=d,l.contentCSS=[],l.contentStyles=[],l.shortcuts=new tp(l),l.loadedCSS={},l.editorCommands=new Mm(l),l.suffix=n.suffix,l.editorManager=n,l.inline=t.inline,l.buttons={},l.menuItems={},t.cache_suffix&&(ge.cacheSuffix=t.cache_suffix.replace(/^[\?\&]+/,"")),!1===t.override_viewport&&(ge.overrideViewPort=!1),n.fire("SetupEditor",{editor:l}),l.execCallback("setup",l),l.$=en.overrideDefaults(function(){return{context:l.inline?l.getBody():l.getDoc(),element:l.getBody()}})};$C(YC.prototype={render:function(){AC(this)},focus:function(e){fp(this,e)},hasFocus:function(){return dp(this)},execCallback:function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];var r,o=this.settings[e];if(o)return this.callbackLookup&&(r=this.callbackLookup[e])&&(o=r.func,r=r.scope),"string"==typeof o&&(r=(r=o.replace(/\.\w+$/,""))?KC(r):0,o=KC(o),this.callbackLookup=this.callbackLookup||{},this.callbackLookup[e]={func:o,scope:r}),o.apply(r||this,Array.prototype.slice.call(arguments,1))},translate:function(e){if(e&&Lt.is(e,"string")){var n=this.settings.language||"en",r=this.editorManager.i18n;e=r.data[n+"."+e]||e.replace(/\{\#([^\}]+)\}/g,function(e,t){return r.data[n+"."+t]||"{#"+t+"}"})}return this.editorManager.translate(e)},getLang:function(e,t){return this.editorManager.i18n.data[(this.settings.language||"en")+"."+e]||(t!==undefined?t:"{#"+e+"}")},getParam:function(e,t,n){return fl(this,e,t,n)},nodeChanged:function(e){this._nodeChangeDispatcher.nodeChanged(e)},addButton:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),t.stateSelector&&"undefined"==typeof t.active&&(t.active=!1),t.text||t.icon||(t.icon=e),n.buttons=n.buttons,t.tooltip=t.tooltip||t.title,n.buttons[e]=t},addSidebar:function(e,t){return RC(this,e,t)},addMenuItem:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),n.menuItems=n.menuItems,n.menuItems[e]=t},addContextToolbar:function(e,t){var n,r=this;r.contextToolbars=r.contextToolbars||[],"string"==typeof e&&(n=e,e=function(e){return r.dom.is(e,n)}),r.contextToolbars.push({id:jp.uuid("mcet"),predicate:e,items:t})},addCommand:function(e,t,n){this.editorCommands.addCommand(e,t,n)},addQueryStateHandler:function(e,t,n){this.editorCommands.addQueryStateHandler(e,t,n)},addQueryValueHandler:function(e,t,n){this.editorCommands.addQueryValueHandler(e,t,n)},addShortcut:function(e,t,n,r){this.shortcuts.add(e,t,n,r)},execCommand:function(e,t,n,r){return this.editorCommands.execCommand(e,t,n,r)},queryCommandState:function(e){return this.editorCommands.queryCommandState(e)},queryCommandValue:function(e){return this.editorCommands.queryCommandValue(e)},queryCommandSupported:function(e){return this.editorCommands.queryCommandSupported(e)},show:function(){this.hidden&&(this.hidden=!1,this.inline?this.getBody().contentEditable=!0:(jC.show(this.getContainer()),jC.hide(this.id)),this.load(),this.fire("show"))},hide:function(){var e=this,t=e.getDoc();e.hidden||(XC&&t&&!e.inline&&t.execCommand("SelectAll"),e.save(),e.inline?(e.getBody().contentEditable=!1,e===e.editorManager.focusedEditor&&(e.editorManager.focusedEditor=null)):(jC.hide(e.getContainer()),jC.setStyle(e.id,"display",e.orgDisplay)),e.hidden=!0,e.fire("hide"))},isHidden:function(){return!!this.hidden},setProgressState:function(e,t){this.fire("ProgressState",{state:e,time:t})},load:function(e){var t,n=this.getElement();return this.removed?"":n?((e=e||{}).load=!0,t=this.setContent(n.value!==undefined?n.value:n.innerHTML,e),e.element=n,e.no_events||this.fire("LoadContent",e),e.element=n=null,t):void 0},save:function(e){var t,n,r=this,o=r.getElement();if(o&&r.initialized&&!r.removed)return(e=e||{}).save=!0,e.element=o,e.content=r.getContent(e),e.no_events||r.fire("SaveContent",e),"raw"===e.format&&r.fire("RawSaveContent",e),t=e.content,/TEXTAREA|INPUT/i.test(o.nodeName)?o.value=t:(r.inline||(o.innerHTML=t),(n=jC.getParent(r.id,"form"))&&WC(n.elements,function(e){if(e.name===r.id)return e.value=t,!1})),e.element=o=null,!1!==e.set_dirty&&r.setDirty(!1),t},setContent:function(e,t){return zC(this,e,t)},getContent:function(e){return t=this,void 0===(n=e)&&(n={}),A.from(t.getBody()).fold(V.constant("tree"===n.format?new Gv("body",11):""),function(e){return FC(t,n,e)});var t,n},insertContent:function(e,t){t&&(e=$C({content:e},t)),this.execCommand("mceInsertContent",!1,e)},isDirty:function(){return!this.isNotDirty},setDirty:function(e){var t=!this.isNotDirty;this.isNotDirty=!e,e&&e!==t&&this.fire("dirty")},setMode:function(e){Gm(this,e)},getContainer:function(){return this.container||(this.container=jC.get(this.editorContainer||this.id+"_parent")),this.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return this.targetElm||(this.targetElm=jC.get(this.id)),this.targetElm},getWin:function(){var e;return this.contentWindow||(e=this.iframeElement)&&(this.contentWindow=e.contentWindow),this.contentWindow},getDoc:function(){var e;return this.contentDocument||(e=this.getWin())&&(this.contentDocument=e.document),this.contentDocument},getBody:function(){var e=this.getDoc();return this.bodyElement||(e?e.body:null)},convertURL:function(e,t,n){var r=this.settings;return r.urlconverter_callback?this.execCallback("urlconverter_callback",e,n,!0,t):!r.convert_urls||n&&"LINK"===n.nodeName||0===e.indexOf("file:")||0===e.length?e:r.relative_urls?this.documentBaseURI.toRelative(e):e=this.documentBaseURI.toAbsolute(e,r.remove_script_host)},addVisual:function(e){var n,r=this,o=r.settings,i=r.dom;e=e||r.getBody(),r.hasVisual===undefined&&(r.hasVisual=o.visual),WC(i.select("table,a",e),function(e){var t;switch(e.nodeName){case"TABLE":return n=o.visual_table_class||"mce-item-table",void((t=i.getAttrib(e,"border"))&&"0"!==t||!r.hasVisual?i.removeClass(e,n):i.addClass(e,n));case"A":return void(i.getAttrib(e,"href")||(t=i.getAttrib(e,"name")||e.id,n=o.visual_anchor_class||"mce-item-anchor",t&&r.hasVisual?i.addClass(e,n):i.removeClass(e,n)))}}),r.fire("VisualAid",{element:e,hasVisual:r.hasVisual})},remove:function(){VC(this)},destroy:function(e){HC(this,e)},uploadImages:function(e){return this.editorUpload.uploadImages(e)},_scanForImages:function(){return this.editorUpload.scanForImages()}},Km);var GC,JC,QC,ZC={isEditorUIElement:function(e){return-1!==e.className.toString().indexOf("mce-")}},ex=function(n,e){var t,r,o=zn.detect().browser;o.isIE()||o.isEdge()?(r=n).on("focusout",function(){_m.store(r)}):(t=e,n.on("mouseup touchend",function(e){t.throttle()})),n.on("keyup nodechange",function(e){var t;"nodechange"===(t=e).type&&t.selectionChange||_m.store(n)})},tx=function(e){var t,n,r,o=Eg(function(){_m.store(e)},0);e.inline&&(t=e,n=o,r=function(){n.throttle()},di.DOM.bind(document,"mouseup",r),t.on("remove",function(){di.DOM.unbind(document,"mouseup",r)})),e.on("init",function(){ex(e,o)}),e.on("remove",function(){o.cancel()})},nx=di.DOM,rx=function(e){return ZC.isEditorUIElement(e)},ox=function(t,e){var n=t?t.settings.custom_ui_selector:"";return null!==nx.getParent(e,function(e){return rx(e)||!!n&&t.dom.is(e,n)})},ix=function(r,e){var t=e.editor;tx(t),t.on("focusin",function(){var e=r.focusedEditor;e!==this&&(e&&e.fire("blur",{focusedEditor:this}),r.setActive(this),(r.focusedEditor=this).fire("focus",{blurredEditor:e}),this.focus(!0))}),t.on("focusout",function(){var t=this;Ce.setEditorTimeout(t,function(){var e=r.focusedEditor;ox(t,function(){try{return document.activeElement}catch(e){return document.body}}())||e!==t||(t.fire("blur",{focusedEditor:null}),r.focusedEditor=null)})}),GC||(GC=function(e){var t,n=r.activeEditor;t=e.target,n&&t.ownerDocument===document&&(t===document.body||ox(n,t)||r.focusedEditor!==n||(n.fire("blur",{focusedEditor:null}),r.focusedEditor=null))},nx.bind(document,"focusin",GC))},ax=function(e,t){e.focusedEditor===t.editor&&(e.focusedEditor=null),e.activeEditor||(nx.unbind(document,"focusin",GC),GC=null)},ux=function(e){e.on("AddEditor",V.curry(ix,e)),e.on("RemoveEditor",V.curry(ax,e))},sx={},cx="en",lx={setCode:function(e){e&&(cx=e,this.rtl=!!this.data[e]&&"rtl"===this.data[e]._dir)},getCode:function(){return cx},rtl:!1,add:function(e,t){var n=sx[e];for(var r in n||(sx[e]=n={}),t)n[r]=t[r];this.setCode(e)},translate:function(e){var t=sx[cx]||{},n=function(e){return Lt.is(e,"function")?Object.prototype.toString.call(e):r(e)?"":""+e},r=function(e){return""===e||null===e||Lt.is(e,"undefined")},o=function(e){return e=n(e),Lt.hasOwn(t,e)?n(t[e]):e};if(r(e))return"";if(Lt.is(e,"object")&&Lt.hasOwn(e,"raw"))return n(e.raw);if(Lt.is(e,"array")){var i=e.slice(1);e=o(e[0]).replace(/\{([0-9]+)\}/g,function(e,t){return Lt.hasOwn(i,t)?n(i[t]):e})}return o(e).replace(/{context:\w+}$/,"")},data:sx},fx=di.DOM,dx=Lt.explode,mx=Lt.each,px=Lt.extend,gx=0,hx=!1,vx=[],yx=[],bx=function(t){mx(QC.get(),function(e){"scroll"===t.type?e.fire("ScrollWindow",t):e.fire("ResizeWindow",t)})},Cx=function(e){e!==hx&&(e?en(window).on("resize scroll",bx):en(window).off("resize scroll",bx),hx=e)},xx=function(t){var e=yx;delete vx[t.id];for(var n=0;n<vx.length;n++)if(vx[n]===t){vx.splice(n,1);break}return yx=H.filter(yx,function(e){return t!==e}),QC.activeEditor===t&&(QC.activeEditor=0<yx.length?yx[0]:null),QC.focusedEditor===t&&(QC.focusedEditor=null),e.length!==yx.length};px(QC={defaultSettings:{},$:en,majorVersion:"4",minorVersion:"7.11",releaseDate:"2018-04-11",editors:vx,i18n:lx,activeEditor:null,settings:{},setup:function(){var e,t,n,r,o="";if(t=PC.getDocumentBaseUrl(document.location),/^[^:]+:\/\/\/?[^\/]+\//.test(t)&&(t=t.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(t)||(t+="/")),n=window.tinymce||window.tinyMCEPreInit)e=n.base||n.baseURL,o=n.suffix;else{for(var i=document.getElementsByTagName("script"),a=0;a<i.length;a++){var u=(r=i[a].src).substring(r.lastIndexOf("/"));if(/tinymce(\.full|\.jquery|)(\.min|\.dev|)\.js/.test(r)){-1!==u.indexOf(".min")&&(o=".min"),e=r.substring(0,r.lastIndexOf("/"));break}}!e&&document.currentScript&&(-1!==(r=document.currentScript.src).indexOf(".min")&&(o=".min"),e=r.substring(0,r.lastIndexOf("/")))}this.baseURL=new PC(t).toAbsolute(e),this.documentBaseURL=t,this.baseURI=new PC(this.baseURL),this.suffix=o,ux(this)},overrideDefaults:function(e){var t,n;(t=e.base_url)&&(this.baseURL=new PC(this.documentBaseURL).toAbsolute(t.replace(/\/+$/,"")),this.baseURI=new PC(this.baseURL)),n=e.suffix,e.suffix&&(this.suffix=n);var r=(this.defaultSettings=e).plugin_base_urls;for(var o in r)Ci.PluginManager.urls[o]=r[o]},init:function(r){var n,u,s=this;u=Lt.makeMap("area base basefont br col frame hr img input isindex link meta param embed source wbr track colgroup option tbody tfoot thead tr script noscript style textarea video audio iframe object menu"," ");var c=function(e){var t=e.id;return t||(t=(t=e.name)&&!fx.get(t)?e.name:fx.uniqueId(),e.setAttribute("id",t)),t},l=function(e,t){return t.constructor===RegExp?t.test(e.className):fx.hasClass(e,t)},f=function(e){n=e},e=function(){var o,i=0,a=[],n=function(e,t,n){var r=new YC(e,t,s);a.push(r),r.on("init",function(){++i===o.length&&f(a)}),r.targetElm=r.targetElm||n,r.render()};fx.unbind(window,"ready",e),function(e){var t=r[e];t&&t.apply(s,Array.prototype.slice.call(arguments,2))}("onpageload"),o=en.unique(function(t){var e,n=[];if(ge.ie&&ge.ie<11)return kp.initError("TinyMCE does not support the browser you are using. For a list of supported browsers please see: https://www.tinymce.com/docs/get-started/system-requirements/"),[];if(t.types)return mx(t.types,function(e){n=n.concat(fx.select(e.selector))}),n;if(t.selector)return fx.select(t.selector);if(t.target)return[t.target];switch(t.mode){case"exact":0<(e=t.elements||"").length&&mx(dx(e),function(t){var e;(e=fx.get(t))?n.push(e):mx(document.forms,function(e){mx(e.elements,function(e){e.name===t&&(t="mce_editor_"+gx++,fx.setAttrib(e,"id",t),n.push(e))})})});break;case"textareas":case"specific_textareas":mx(fx.select("textarea"),function(e){t.editor_deselector&&l(e,t.editor_deselector)||t.editor_selector&&!l(e,t.editor_selector)||n.push(e)})}return n}(r)),r.types?mx(r.types,function(t){Lt.each(o,function(e){return!fx.is(e,t.selector)||(n(c(e),px({},r,t),e),!1)})}):(Lt.each(o,function(e){var t;(t=s.get(e.id))&&t.initialized&&!(t.getContainer()||t.getBody()).parentNode&&(xx(t),t.unbindAllNativeEvents(),t.destroy(!0),t.removed=!0,t=null)}),0===(o=Lt.grep(o,function(e){return!s.get(e.id)})).length?f([]):mx(o,function(e){var t;t=e,r.inline&&t.tagName.toLowerCase()in u?kp.initError("Could not initialize inline editor on invalid inline target element",e):n(c(e),r,e)}))};return s.settings=r,fx.bind(window,"ready",e),new he(function(t){n?t(n):f=function(e){t(e)}})},get:function(t){return 0===arguments.length?yx.slice(0):E.isString(t)?H.find(yx,function(e){return e.id===t}).getOr(null):E.isNumber(t)&&yx[t]?yx[t]:null},add:function(e){var t=this;return vx[e.id]===e||(null===t.get(e.id)&&("length"!==e.id&&(vx[e.id]=e),vx.push(e),yx.push(e)),Cx(!0),t.activeEditor=e,t.fire("AddEditor",{editor:e}),JC||(JC=function(){t.fire("BeforeUnload")},fx.bind(window,"beforeunload",JC))),e},createEditor:function(e,t){return this.add(new YC(e,t,this))},remove:function(e){var t,n,r=this;if(e)return E.isString(e)?(e=e.selector||e,void mx(fx.select(e),function(e){(n=r.get(e.id))&&r.remove(n)})):(n=e,E.isNull(r.get(n.id))?null:(xx(n)&&r.fire("RemoveEditor",{editor:n}),0===yx.length&&fx.unbind(window,"beforeunload",JC),n.remove(),Cx(0<yx.length),n));for(t=yx.length-1;0<=t;t--)r.remove(yx[t])},execCommand:function(e,t,n){var r=this.get(n);switch(e){case"mceAddEditor":return this.get(n)||new YC(n,this.settings,this).render(),!0;case"mceRemoveEditor":return r&&r.remove(),!0;case"mceToggleEditor":return r?r.isHidden()?r.show():r.hide():this.execCommand("mceAddEditor",0,n),!0}return!!this.activeEditor&&this.activeEditor.execCommand(e,t,n)},triggerSave:function(){mx(yx,function(e){e.save()})},addI18n:function(e,t){lx.add(e,t)},translate:function(e){return lx.translate(e)},setActive:function(e){var t=this.activeEditor;this.activeEditor!==e&&(t&&t.fire("deactivate",{relatedTarget:e}),e.fire("activate",{relatedTarget:t})),this.activeEditor=e}},Vm),QC.setup();var wx,Nx=QC;function Ex(n){return{walk:function(e,t){return Yh.walk(n,e,t)},split:_h.split,normalize:function(t){return rm.normalize(n,t).fold(V.constant(!1),function(e){return t.setStart(e.startContainer,e.startOffset),t.setEnd(e.endContainer,e.endOffset),!0})}}}(wx=Ex||(Ex={})).compareRanges=Gd.isEq,wx.getCaretRangeFromPoint=by.fromPoint,wx.getSelectedNode=ta,wx.getNode=na;var Sx,kx,Tx=Ex,Ax=Math.min,Rx=Math.max,Bx=Math.round,_x=function(e,t,n){var r,o,i,a,u,s;return r=t.x,o=t.y,i=e.w,a=e.h,u=t.w,s=t.h,"b"===(n=(n||"").split(""))[0]&&(o+=s),"r"===n[1]&&(r+=u),"c"===n[0]&&(o+=Bx(s/2)),"c"===n[1]&&(r+=Bx(u/2)),"b"===n[3]&&(o-=a),"r"===n[4]&&(r-=i),"c"===n[3]&&(o-=Bx(a/2)),"c"===n[4]&&(r-=Bx(i/2)),Dx(r,o,i,a)},Dx=function(e,t,n,r){return{x:e,y:t,w:n,h:r}},Ox={inflate:function(e,t,n){return Dx(e.x-t,e.y-n,e.w+2*t,e.h+2*n)},relativePosition:_x,findBestRelativePosition:function(e,t,n,r){var o,i;for(i=0;i<r.length;i++)if((o=_x(e,t,r[i])).x>=n.x&&o.x+o.w<=n.w+n.x&&o.y>=n.y&&o.y+o.h<=n.h+n.y)return r[i];return null},intersect:function(e,t){var n,r,o,i;return n=Rx(e.x,t.x),r=Rx(e.y,t.y),o=Ax(e.x+e.w,t.x+t.w),i=Ax(e.y+e.h,t.y+t.h),o-n<0||i-r<0?null:Dx(n,r,o-n,i-r)},clamp:function(e,t,n){var r,o,i,a,u,s,c,l,f,d;return u=e.x,s=e.y,c=e.x+e.w,l=e.y+e.h,f=t.x+t.w,d=t.y+t.h,r=Rx(0,t.x-u),o=Rx(0,t.y-s),i=Rx(0,c-f),a=Rx(0,l-d),u+=r,s+=o,n&&(c+=r,l+=o,u-=i,s-=a),Dx(u,s,(c-=i)-u,(l-=a)-s)},create:Dx,fromClientRect:function(e){return Dx(e.left,e.top,e.width,e.height)}},Px={},Lx={add:function(e,t){Px[e.toLowerCase()]=t},has:function(e){return!!Px[e.toLowerCase()]},get:function(e){var t=e.toLowerCase(),n=Px.hasOwnProperty(t)?Px[t]:null;if(null===n)throw new Error("Could not find module for type: "+e);return n},create:function(e,t){var n;if("string"==typeof e?(t=t||{}).type=e:e=(t=e).type,e=e.toLowerCase(),!(n=Px[e]))throw new Error("Could not find control by type: "+e);return(n=new n(t)).type=e,n}},Ix=Lt.each,Mx=Lt.extend,Fx=function(){};Fx.extend=Sx=function(n){var e,t,r,o=this.prototype,i=function(){var e,t,n;if(!kx&&(this.init&&this.init.apply(this,arguments),t=this.Mixins))for(e=t.length;e--;)(n=t[e]).init&&n.init.apply(this,arguments)},a=function(){return this},u=function(n,r){return function(){var e,t=this._super;return this._super=o[n],e=r.apply(this,arguments),this._super=t,e}};for(t in kx=!0,e=new this,kx=!1,n.Mixins&&(Ix(n.Mixins,function(e){for(var t in e)"init"!==t&&(n[t]=e[t])}),o.Mixins&&(n.Mixins=o.Mixins.concat(n.Mixins))),n.Methods&&Ix(n.Methods.split(","),function(e){n[e]=a}),n.Properties&&Ix(n.Properties.split(","),function(e){var t="_"+e;n[e]=function(e){return e!==undefined?(this[t]=e,this):this[t]}}),n.Statics&&Ix(n.Statics,function(e,t){i[t]=e}),n.Defaults&&o.Defaults&&(n.Defaults=Mx({},o.Defaults,n.Defaults)),n)"function"==typeof(r=n[t])&&o[t]?e[t]=u(t,r):e[t]=r;return i.prototype=e,(i.constructor=i).extend=Sx,i};var zx=Math.min,Ux=Math.max,qx=Math.round,Vx=function(e,n){var r,o,t,i;if(n=n||'"',null===e)return"null";if("string"==(t=typeof e))return o="\bb\tt\nn\ff\rr\"\"''\\\\",n+e.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(e,t){return'"'===n&&"'"===e?e:(r=o.indexOf(t))+1?"\\"+o.charAt(r+1):(e=t.charCodeAt().toString(16),"\\u"+"0000".substring(e.length)+e)})+n;if("object"===t){if(e.hasOwnProperty&&"[object Array]"===Object.prototype.toString.call(e)){for(r=0,o="[";r<e.length;r++)o+=(0<r?",":"")+Vx(e[r],n);return o+"]"}for(i in o="{",e)e.hasOwnProperty(i)&&(o+="function"!=typeof e[i]?(1<o.length?","+n:n)+i+n+":"+Vx(e[i],n):"");return o+"}"}return""+e},Hx={serialize:Vx,parse:function(e){try{return JSON.parse(e)}catch(t){}}},jx={callbacks:{},count:0,send:function(t){var n=this,r=di.DOM,o=t.count!==undefined?t.count:n.count,i="tinymce_jsonp_"+o;n.callbacks[o]=function(e){r.remove(i),delete n.callbacks[o],t.callback(e)},r.add(r.doc.body,"script",{id:i,src:t.url,type:"text/javascript"}),n.count++}},$x={send:function(e){var t,n=0,r=function(){!e.async||4===t.readyState||1e4<n++?(e.success&&n<1e4&&200===t.status?e.success.call(e.success_scope,""+t.responseText,t,e):e.error&&e.error.call(e.error_scope,1e4<n?"TIMED_OUT":"GENERAL",t,e),t=null):setTimeout(r,10)};if(e.scope=e.scope||this,e.success_scope=e.success_scope||e.scope,e.error_scope=e.error_scope||e.scope,e.async=!1!==e.async,e.data=e.data||"",$x.fire("beforeInitialize",{settings:e}),t=new Rp){if(t.overrideMimeType&&t.overrideMimeType(e.content_type),t.open(e.type||(e.data?"POST":"GET"),e.url,e.async),e.crossDomain&&(t.withCredentials=!0),e.content_type&&t.setRequestHeader("Content-Type",e.content_type),e.requestheaders&&Lt.each(e.requestheaders,function(e){t.setRequestHeader(e.key,e.value)}),t.setRequestHeader("X-Requested-With","XMLHttpRequest"),(t=$x.fire("beforeSend",{xhr:t,settings:e}).xhr).send(e.data),!e.async)return r();setTimeout(r,10)}}};Lt.extend($x,Vm);var Wx=Lt.extend,Kx=function(e){this.settings=Wx({},e),this.count=0};Kx.sendRPC=function(e){return(new Kx).send(e)},Kx.prototype={send:function(n){var r=n.error,o=n.success;(n=Wx(this.settings,n)).success=function(e,t){void 0===(e=Hx.parse(e))&&(e={error:"JSON Parse error."}),e.error?r.call(n.error_scope||n.scope,e.error,t):o.call(n.success_scope||n.scope,e.result)},n.error=function(e,t){r&&r.call(n.error_scope||n.scope,e,t)},n.data=Hx.serialize({id:n.id||"c"+this.count++,method:n.method,params:n.params}),n.content_type="application/json",$x.send(n)}};var Xx,Yx=window.localStorage,Gx=Nx,Jx={geom:{Rect:Ox},util:{Promise:he,Delay:Ce,Tools:Lt,VK:kg,URI:PC,Class:Fx,EventDispatcher:zm,Observable:Vm,I18n:lx,XHR:$x,JSON:Hx,JSONRequest:Kx,JSONP:jx,LocalStorage:Yx,Color:function(e){var n={},u=0,s=0,c=0,t=function(e){var t;return"object"==typeof e?"r"in e?(u=e.r,s=e.g,c=e.b):"v"in e&&function(e,t,n){var r,o,i,a;if(e=(parseInt(e,10)||0)%360,t=parseInt(t,10)/100,n=parseInt(n,10)/100,t=Ux(0,zx(t,1)),n=Ux(0,zx(n,1)),0!==t){switch(r=e/60,i=(o=n*t)*(1-Math.abs(r%2-1)),a=n-o,Math.floor(r)){case 0:u=o,s=i,c=0;break;case 1:u=i,s=o,c=0;break;case 2:u=0,s=o,c=i;break;case 3:u=0,s=i,c=o;break;case 4:u=i,s=0,c=o;break;case 5:u=o,s=0,c=i;break;default:u=s=c=0}u=qx(255*(u+a)),s=qx(255*(s+a)),c=qx(255*(c+a))}else u=s=c=qx(255*n)}(e.h,e.s,e.v):(t=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)[^\)]*\)/gi.exec(e))?(u=parseInt(t[1],10),s=parseInt(t[2],10),c=parseInt(t[3],10)):(t=/#([0-F]{2})([0-F]{2})([0-F]{2})/gi.exec(e))?(u=parseInt(t[1],16),s=parseInt(t[2],16),c=parseInt(t[3],16)):(t=/#([0-F])([0-F])([0-F])/gi.exec(e))&&(u=parseInt(t[1]+t[1],16),s=parseInt(t[2]+t[2],16),c=parseInt(t[3]+t[3],16)),u=u<0?0:255<u?255:u,s=s<0?0:255<s?255:s,c=c<0?0:255<c?255:c,n};return e&&t(e),n.toRgb=function(){return{r:u,g:s,b:c}},n.toHsv=function(){return e=u,t=s,n=c,o=0,(i=zx(e/=255,zx(t/=255,n/=255)))===(a=Ux(e,Ux(t,n)))?{h:0,s:0,v:100*(o=i)}:(r=(a-i)/a,{h:qx(60*((e===i?3:n===i?1:5)-(e===i?t-n:n===i?e-t:n-e)/((o=a)-i))),s:qx(100*r),v:qx(100*o)});var e,t,n,r,o,i,a},n.toHex=function(){var e=function(e){return 1<(e=parseInt(e,10).toString(16)).length?e:"0"+e};return"#"+e(u)+e(s)+e(c)},n.parse=t,n}},dom:{EventUtils:Re,Sizzle:dt,DomQuery:en,TreeWalker:no,DOMUtils:di,ScriptLoader:vi,RangeUtils:Tx,Serializer:dy,ControlSelection:vy,BookmarkManager:py,Selection:tb,Event:Re.Event},html:{Styles:ti,Entities:Vo,Node:Gv,Schema:Zo,SaxParser:Fg,DomParser:uy,Writer:Hc,Serializer:jc},ui:{Factory:Lx},Env:ge,AddOnManager:Ci,Formatter:Pv,UndoManager:oh,EditorCommands:Mm,WindowManager:xp,NotificationManager:Cp,EditorObservable:Km,Shortcuts:tp,Editor:YC,FocusManager:ZC,EditorManager:Nx,DOM:di.DOM,ScriptLoader:vi.ScriptLoader,PluginManager:Ci.PluginManager,ThemeManager:Ci.ThemeManager,trim:Lt.trim,isArray:Lt.isArray,is:Lt.is,toArray:Lt.toArray,makeMap:Lt.makeMap,each:Lt.each,map:Lt.map,grep:Lt.grep,inArray:Lt.inArray,extend:Lt.extend,create:Lt.create,walk:Lt.walk,createNS:Lt.createNS,resolve:Lt.resolve,explode:Lt.explode,_addCacheSuffix:Lt._addCacheSuffix,isOpera:ge.opera,isWebKit:ge.webkit,isIE:ge.ie,isGecko:ge.gecko,isMac:ge.mac},Qx=Gx=Lt.extend(Gx,Jx);Xx=Qx,window.tinymce=Xx,window.tinyMCE=Xx,function(e){if("object"==typeof module)try{module.exports=e}catch(t){}}(Qx)}(); \ No newline at end of file diff --git a/wp-includes/js/tinymce/utils/validate.js b/wp-includes/js/tinymce/utils/validate.js index c8722c2a4..5600666d3 100644 --- a/wp-includes/js/tinymce/utils/validate.js +++ b/wp-includes/js/tinymce/utils/validate.js @@ -230,12 +230,12 @@ var AutoValidator = { addClass : function (n, c, b) { var o = this.removeClass(n, c); - n.className = b ? c + (o != '' ? (' ' + o) : '') : (o != '' ? (o + ' ') : '') + c; + n.className = b ? c + (o !== '' ? (' ' + o) : '') : (o !== '' ? (o + ' ') : '') + c; }, removeClass : function (n, c) { c = n.className.replace(new RegExp("(^|\\s+)" + c + "(\\s+|$)"), ' '); - return n.className = c != ' ' ? c : ''; + return n.className = c !== ' ' ? c : ''; }, tags : function (f, s) { diff --git a/wp-includes/js/tinymce/wp-tinymce.js.gz b/wp-includes/js/tinymce/wp-tinymce.js.gz index 240cef9741ee2d5059610f6857c086e963698860..baeb497a4f9aac2a55a1597c74187ce1dc7fbc35 100644 GIT binary patch literal 209550 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[!j_w*!)H^Pkj26f3!k0wR-+gU<g_RYYZs}5 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 IsIb8a0G_?nNB{r; literal 214099 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 diff --git a/wp-includes/js/wp-ajax-response.js b/wp-includes/js/wp-ajax-response.js index 50c66525a..363a08bf3 100644 --- a/wp-includes/js/wp-ajax-response.js +++ b/wp-includes/js/wp-ajax-response.js @@ -56,7 +56,7 @@ var wpAjax = jQuery.extend( { selector = jQuery( selector ); return !wpAjax.invalidateForm( selector.find('.form-required').filter( function() { return jQuery('input:visible', this).val() === ''; } ) ).length; } -}, wpAjax || { noPerm: 'Sorry, you are not allowed to do that.', broken: 'An unidentified error has occurred.' } ); +}, wpAjax || { noPerm: 'Sorry, you are not allowed to do that.', broken: 'Something went wrong.' } ); // Basic form validation jQuery(document).ready( function($){ diff --git a/wp-includes/js/wp-ajax-response.min.js b/wp-includes/js/wp-ajax-response.min.js index 5f1ed6644..13bcc1d48 100644 --- a/wp-includes/js/wp-ajax-response.min.js +++ b/wp-includes/js/wp-ajax-response.min.js @@ -1 +1 @@ -var wpAjax=jQuery.extend({unserialize:function(a){var b,c,d,e,f={};if(!a)return f;b=a.split("?"),b[1]&&(a=b[1]),c=a.split("&");for(d in c)jQuery.isFunction(c.hasOwnProperty)&&!c.hasOwnProperty(d)||(e=c[d].split("="),f[e[0]]=e[1]);return f},parseAjaxResponse:function(a,b,c){var d={},e=jQuery("#"+b).empty(),f="";return a&&"object"==typeof a&&a.getElementsByTagName("wp_ajax")?(d.responses=[],d.errors=!1,jQuery("response",a).each(function(){var b,e=jQuery(this),g=jQuery(this.firstChild);b={action:e.attr("action"),what:g.get(0).nodeName,id:g.attr("id"),oldId:g.attr("old_id"),position:g.attr("position")},b.data=jQuery("response_data",g).text(),b.supplemental={},jQuery("supplemental",g).children().each(function(){b.supplemental[this.nodeName]=jQuery(this).text()}).length||(b.supplemental=!1),b.errors=[],jQuery("wp_error",g).each(function(){var e,g,h,i=jQuery(this).attr("code");e={code:i,message:this.firstChild.nodeValue,data:!1},g=jQuery('wp_error_data[code="'+i+'"]',a),g&&(e.data=g.get()),h=jQuery("form-field",g).text(),h&&(i=h),c&&wpAjax.invalidateForm(jQuery("#"+c+' :input[name="'+i+'"]').parents(".form-field:first")),f+="<p>"+e.message+"</p>",b.errors.push(e),d.errors=!0}).length||(b.errors=!1),d.responses.push(b)}),f.length&&e.html('<div class="error">'+f+"</div>"),d):isNaN(a)?!e.html('<div class="error"><p>'+a+"</p></div>"):(a=parseInt(a,10),-1==a?!e.html('<div class="error"><p>'+wpAjax.noPerm+"</p></div>"):0!==a||!e.html('<div class="error"><p>'+wpAjax.broken+"</p></div>"))},invalidateForm:function(a){return jQuery(a).addClass("form-invalid").find("input").one("change wp-check-valid-field",function(){jQuery(this).closest(".form-invalid").removeClass("form-invalid")})},validateForm:function(a){return a=jQuery(a),!wpAjax.invalidateForm(a.find(".form-required").filter(function(){return""===jQuery("input:visible",this).val()})).length}},wpAjax||{noPerm:"Sorry, you are not allowed to do that.",broken:"An unidentified error has occurred."});jQuery(document).ready(function(a){a("form.validate").submit(function(){return wpAjax.validateForm(a(this))})}); \ No newline at end of file +var wpAjax=jQuery.extend({unserialize:function(a){var b,c,d,e,f={};if(!a)return f;b=a.split("?"),b[1]&&(a=b[1]),c=a.split("&");for(d in c)jQuery.isFunction(c.hasOwnProperty)&&!c.hasOwnProperty(d)||(e=c[d].split("="),f[e[0]]=e[1]);return f},parseAjaxResponse:function(a,b,c){var d={},e=jQuery("#"+b).empty(),f="";return a&&"object"==typeof a&&a.getElementsByTagName("wp_ajax")?(d.responses=[],d.errors=!1,jQuery("response",a).each(function(){var b,e=jQuery(this),g=jQuery(this.firstChild);b={action:e.attr("action"),what:g.get(0).nodeName,id:g.attr("id"),oldId:g.attr("old_id"),position:g.attr("position")},b.data=jQuery("response_data",g).text(),b.supplemental={},jQuery("supplemental",g).children().each(function(){b.supplemental[this.nodeName]=jQuery(this).text()}).length||(b.supplemental=!1),b.errors=[],jQuery("wp_error",g).each(function(){var e,g,h,i=jQuery(this).attr("code");e={code:i,message:this.firstChild.nodeValue,data:!1},g=jQuery('wp_error_data[code="'+i+'"]',a),g&&(e.data=g.get()),h=jQuery("form-field",g).text(),h&&(i=h),c&&wpAjax.invalidateForm(jQuery("#"+c+' :input[name="'+i+'"]').parents(".form-field:first")),f+="<p>"+e.message+"</p>",b.errors.push(e),d.errors=!0}).length||(b.errors=!1),d.responses.push(b)}),f.length&&e.html('<div class="error">'+f+"</div>"),d):isNaN(a)?!e.html('<div class="error"><p>'+a+"</p></div>"):(a=parseInt(a,10),-1==a?!e.html('<div class="error"><p>'+wpAjax.noPerm+"</p></div>"):0!==a||!e.html('<div class="error"><p>'+wpAjax.broken+"</p></div>"))},invalidateForm:function(a){return jQuery(a).addClass("form-invalid").find("input").one("change wp-check-valid-field",function(){jQuery(this).closest(".form-invalid").removeClass("form-invalid")})},validateForm:function(a){return a=jQuery(a),!wpAjax.invalidateForm(a.find(".form-required").filter(function(){return""===jQuery("input:visible",this).val()})).length}},wpAjax||{noPerm:"Sorry, you are not allowed to do that.",broken:"Something went wrong."});jQuery(document).ready(function(a){a("form.validate").submit(function(){return wpAjax.validateForm(a(this))})}); \ No newline at end of file diff --git a/wp-includes/js/wp-api.js b/wp-includes/js/wp-api.js index 0f5135f3c..5c8a90654 100644 --- a/wp-includes/js/wp-api.js +++ b/wp-includes/js/wp-api.js @@ -848,7 +848,7 @@ model.unset( 'slug' ); } - if ( _.isFunction( model.nonce ) && ! _.isUndefined( model.nonce() ) && ! _.isNull( model.nonce() ) ) { + if ( _.isFunction( model.nonce ) && ! _.isEmpty( model.nonce() ) ) { beforeSend = options.beforeSend; // @todo enable option for jsonp endpoints @@ -990,18 +990,28 @@ var beforeSend, success, self = this; - options = options || {}; - beforeSend = options.beforeSend; + options = options || {}; + + if ( _.isFunction( model.nonce ) && ! _.isEmpty( model.nonce() ) ) { + beforeSend = options.beforeSend; - // If we have a localized nonce, pass that along with each sync. - if ( 'undefined' !== typeof wpApiSettings.nonce ) { + // Include the nonce with requests. options.beforeSend = function( xhr ) { - xhr.setRequestHeader( 'X-WP-Nonce', wpApiSettings.nonce ); + xhr.setRequestHeader( 'X-WP-Nonce', model.nonce() ); if ( beforeSend ) { return beforeSend.apply( self, arguments ); } }; + + // Update the nonce when a new nonce is returned with the response. + options.complete = function( xhr ) { + var returnedNonce = xhr.getResponseHeader( 'X-WP-Nonce' ); + + if ( returnedNonce && _.isFunction( model.nonce ) && model.nonce() !== returnedNonce ) { + model.endpointModel.set( 'nonce', returnedNonce ); + } + }; } // When reading, add pagination data. @@ -1405,6 +1415,13 @@ return new loadingObjects.models[ modelClassName ]( attrs, options ); }, + // Track nonces at the Endpoint level. + nonce: function() { + return routeModel.get( 'nonce' ); + }, + + endpointModel: routeModel, + // Include a reference to the original class name. name: collectionClassName, @@ -1432,6 +1449,13 @@ return new loadingObjects.models[ modelClassName ]( attrs, options ); }, + // Track nonces at the Endpoint level. + nonce: function() { + return routeModel.get( 'nonce' ); + }, + + endpointModel: routeModel, + // Include a reference to the original class name. name: collectionClassName, @@ -1466,6 +1490,7 @@ * Initialize the wp-api, optionally passing the API root. * * @param {object} [args] + * @param {string} [args.nonce] The nonce. Optional, defaults to wpApiSettings.nonce. * @param {string} [args.apiRoot] The api root. Optional, defaults to wpApiSettings.root. * @param {string} [args.versionString] The version string. Optional, defaults to wpApiSettings.root. * @param {object} [args.schema] The schema. Optional, will be fetched from API if not provided. @@ -1474,7 +1499,7 @@ var endpoint, attributes = {}, deferred, promise; args = args || {}; - attributes.nonce = args.nonce || wpApiSettings.nonce || ''; + attributes.nonce = _.isString( args.nonce ) ? args.nonce : ( wpApiSettings.nonce || '' ); attributes.apiRoot = args.apiRoot || wpApiSettings.root || '/wp-json'; attributes.versionString = args.versionString || wpApiSettings.versionString || 'wp/v2/'; attributes.schema = args.schema || null; diff --git a/wp-includes/js/wp-api.min.js b/wp-includes/js/wp-api.min.js index caad2b108..d37113979 100644 --- a/wp-includes/js/wp-api.min.js +++ b/wp-includes/js/wp-api.min.js @@ -1 +1 @@ -!function(a,b){"use strict";function c(){this.models={},this.collections={},this.views={}}a.wp=a.wp||{},wp.api=wp.api||new c,wp.api.versionString=wp.api.versionString||"wp/v2/",!_.isFunction(_.includes)&&_.isFunction(_.contains)&&(_.includes=_.contains)}(window),function(a,b){"use strict";var c,d;a.wp=a.wp||{},wp.api=wp.api||{},wp.api.utils=wp.api.utils||{},wp.api.getModelByRoute=function(a){return _.find(wp.api.models,function(b){return b.prototype.route&&a===b.prototype.route.index})},wp.api.getCollectionByRoute=function(a){return _.find(wp.api.collections,function(b){return b.prototype.route&&a===b.prototype.route.index})},Date.prototype.toISOString||(c=function(a){return d=String(a),1===d.length&&(d="0"+d),d},Date.prototype.toISOString=function(){return this.getUTCFullYear()+"-"+c(this.getUTCMonth()+1)+"-"+c(this.getUTCDate())+"T"+c(this.getUTCHours())+":"+c(this.getUTCMinutes())+":"+c(this.getUTCSeconds())+"."+String((this.getUTCMilliseconds()/1e3).toFixed(3)).slice(2,5)+"Z"}),wp.api.utils.parseISO8601=function(a){var c,d,e,f,g=0,h=[1,4,5,6,7,10,11];if(d=/^(\d{4}|[+\-]\d{6})(?:-(\d{2})(?:-(\d{2}))?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(\d{2})(?::(\d{2}))?)?)?$/.exec(a)){for(e=0;f=h[e];++e)d[f]=+d[f]||0;d[2]=(+d[2]||1)-1,d[3]=+d[3]||1,"Z"!==d[8]&&b!==d[9]&&(g=60*d[10]+d[11],"+"===d[9]&&(g=0-g)),c=Date.UTC(d[1],d[2],d[3],d[4],d[5]+g,d[6],d[7])}else c=Date.parse?Date.parse(a):NaN;return c},wp.api.utils.getRootUrl=function(){return a.location.origin?a.location.origin+"/":a.location.protocol+"/"+a.location.host+"/"},wp.api.utils.capitalize=function(a){return _.isUndefined(a)?a:a.charAt(0).toUpperCase()+a.slice(1)},wp.api.utils.capitalizeAndCamelCaseDashes=function(a){return _.isUndefined(a)?a:(a=wp.api.utils.capitalize(a),wp.api.utils.camelCaseDashes(a))},wp.api.utils.camelCaseDashes=function(a){return a.replace(/-([a-z])/g,function(a){return a[1].toUpperCase()})},wp.api.utils.extractRoutePart=function(a,b,c,d){var e;return b=b||1,c=c||wp.api.versionString,0===a.indexOf("/"+c)&&(a=a.substr(c.length+1)),e=a.split("/"),d&&(e=e.reverse()),_.isUndefined(e[--b])?"":e[b]},wp.api.utils.extractParentName=function(a){var b,c=a.lastIndexOf("_id>[\\d]+)/");return c<0?"":(b=a.substr(0,c-1),b=b.split("/"),b.pop(),b=b.pop())},wp.api.utils.decorateFromRoute=function(a,b){_.each(a,function(a){_.includes(a.methods,"POST")||_.includes(a.methods,"PUT")?_.isEmpty(a.args)||(_.isEmpty(b.prototype.args)?b.prototype.args=a.args:b.prototype.args=_.extend(b.prototype.args,a.args)):_.includes(a.methods,"GET")&&(_.isEmpty(a.args)||(_.isEmpty(b.prototype.options)?b.prototype.options=a.args:b.prototype.options=_.extend(b.prototype.options,a.args)))})},wp.api.utils.addMixinsAndHelpers=function(a,b,c){var d=!1,e=["date","modified","date_gmt","modified_gmt"],f={setDate:function(a,b){var c=b||"date";return!(_.indexOf(e,c)<0)&&void this.set(c,a.toISOString())},getDate:function(a){var b=a||"date",c=this.get(b);return!(_.indexOf(e,b)<0||_.isNull(c))&&new Date(wp.api.utils.parseISO8601(c))}},g=function(a,b,c,d,e){var f,g,h,i;return i=jQuery.Deferred(),g=a.get("_embedded")||{},_.isNumber(b)&&0!==b?(g[d]&&(h=_.findWhere(g[d],{id:b})),h||(h={id:b}),f=new wp.api.models[c](h),f.get(e)?i.resolve(f):f.fetch({success:function(a){i.resolve(a)},error:function(a,b){i.reject(b)}}),i.promise()):(i.reject(),i)},h=function(a,b,c,d){var e,f,g,h="",j="",k=jQuery.Deferred();return e=a.get("id"),f=a.get("_embedded")||{},_.isNumber(e)&&0!==e?(_.isUndefined(c)||_.isUndefined(f[c])?h={parent:e}:j=_.isUndefined(d)?f[c]:f[c][d],g=new wp.api.collections[b](j,h),_.isUndefined(g.models[0])?g.fetch({success:function(a){i(a,e),k.resolve(a)},error:function(a,b){k.reject(b)}}):(i(g,e),k.resolve(g)),k.promise()):(k.reject(),k)},i=function(a,b){_.each(a.models,function(a){a.set("parent_post",b)})},j={getMeta:function(a){var b=this.get("meta");return b[a]},getMetas:function(){return this.get("meta")},setMetas:function(a){var b=this.get("meta");_.extend(b,a),this.set("meta",b)},setMeta:function(a,b){var c=this.get("meta");c[a]=b,this.set("meta",c)}},k={getRevisions:function(){return h(this,"PostRevisions")}},l={getTags:function(){var a=this.get("tags"),b=new wp.api.collections.Tags;return _.isEmpty(a)?jQuery.Deferred().resolve([]):b.fetch({data:{include:a}})},setTags:function(a){var b,c,d=this,e=[];return!_.isString(a)&&void(_.isArray(a)?(b=new wp.api.collections.Tags,b.fetch({data:{per_page:100},success:function(b){_.each(a,function(a){c=new wp.api.models.Tag(b.findWhere({slug:a})),c.set("parent_post",d.get("id")),e.push(c)}),a=new wp.api.collections.Tags(e),d.setTagsWithCollection(a)}})):this.setTagsWithCollection(a))},setTagsWithCollection:function(a){return this.set("tags",a.pluck("id")),this.save()}},m={getCategories:function(){var a=this.get("categories"),b=new wp.api.collections.Categories;return _.isEmpty(a)?jQuery.Deferred().resolve([]):b.fetch({data:{include:a}})},setCategories:function(a){var b,c,d=this,e=[];return!_.isString(a)&&void(_.isArray(a)?(b=new wp.api.collections.Categories,b.fetch({data:{per_page:100},success:function(b){_.each(a,function(a){c=new wp.api.models.Category(b.findWhere({slug:a})),c.set("parent_post",d.get("id")),e.push(c)}),a=new wp.api.collections.Categories(e),d.setCategoriesWithCollection(a)}})):this.setCategoriesWithCollection(a))},setCategoriesWithCollection:function(a){return this.set("categories",a.pluck("id")),this.save()}},n={getAuthorUser:function(){return g(this,this.get("author"),"User","author","name")}},o={getFeaturedMedia:function(){return g(this,this.get("featured_media"),"Media","wp:featuredmedia","source_url")}};return _.isUndefined(a.prototype.args)?a:(_.each(e,function(b){_.isUndefined(a.prototype.args[b])||(d=!0)}),d&&(a=a.extend(f)),_.isUndefined(a.prototype.args.author)||(a=a.extend(n)),_.isUndefined(a.prototype.args.featured_media)||(a=a.extend(o)),_.isUndefined(a.prototype.args.categories)||(a=a.extend(m)),_.isUndefined(a.prototype.args.meta)||(a=a.extend(j)),_.isUndefined(a.prototype.args.tags)||(a=a.extend(l)),_.isUndefined(c.collections[b+"Revisions"])||(a=a.extend(k)),a)}}(window),function(){"use strict";var a=window.wpApiSettings||{},b=["Comment","Media","Comment","Post","Page","Status","Taxonomy","Type"];wp.api.WPApiBaseModel=Backbone.Model.extend({initialize:function(){-1===_.indexOf(b,this.name)&&(this.requireForceForDelete=!0)},sync:function(a,b,c){var d;return c=c||{},_.isNull(b.get("date_gmt"))&&b.unset("date_gmt"),_.isEmpty(b.get("slug"))&&b.unset("slug"),!_.isFunction(b.nonce)||_.isUndefined(b.nonce())||_.isNull(b.nonce())||(d=c.beforeSend,c.beforeSend=function(a){if(a.setRequestHeader("X-WP-Nonce",b.nonce()),d)return d.apply(this,arguments)},c.complete=function(a){var c=a.getResponseHeader("X-WP-Nonce");c&&_.isFunction(b.nonce)&&b.nonce()!==c&&b.endpointModel.set("nonce",c)}),this.requireForceForDelete&&"delete"===a&&(b.url=b.url()+"?force=true"),Backbone.sync(a,b,c)},save:function(a,b){return!(!_.includes(this.methods,"PUT")&&!_.includes(this.methods,"POST"))&&Backbone.Model.prototype.save.call(this,a,b)},destroy:function(a){return!!_.includes(this.methods,"DELETE")&&Backbone.Model.prototype.destroy.call(this,a)}}),wp.api.models.Schema=wp.api.WPApiBaseModel.extend({defaults:{_links:{},namespace:null,routes:{}},initialize:function(b,c){var d=this;c=c||{},wp.api.WPApiBaseModel.prototype.initialize.call(d,b,c),d.apiRoot=c.apiRoot||a.root,d.versionString=c.versionString||a.versionString},url:function(){return this.apiRoot+this.versionString}})}(),function(){"use strict";var a=window.wpApiSettings||{};wp.api.WPApiBaseCollection=Backbone.Collection.extend({initialize:function(a,b){this.state={data:{},currentPage:null,totalPages:null,totalObjects:null},_.isUndefined(b)?this.parent="":this.parent=b.parent},sync:function(b,c,d){var e,f,g=this;return d=d||{},e=d.beforeSend,"undefined"!=typeof a.nonce&&(d.beforeSend=function(b){if(b.setRequestHeader("X-WP-Nonce",a.nonce),e)return e.apply(g,arguments)}),"read"===b&&(d.data?(g.state.data=_.clone(d.data),delete g.state.data.page):g.state.data=d.data={},"undefined"==typeof d.data.page?(g.state.currentPage=null,g.state.totalPages=null,g.state.totalObjects=null):g.state.currentPage=d.data.page-1,f=d.success,d.success=function(a,b,c){if(_.isUndefined(c)||(g.state.totalPages=parseInt(c.getResponseHeader("x-wp-totalpages"),10),g.state.totalObjects=parseInt(c.getResponseHeader("x-wp-total"),10)),null===g.state.currentPage?g.state.currentPage=1:g.state.currentPage++,f)return f.apply(this,arguments)}),Backbone.sync(b,c,d)},more:function(a){if(a=a||{},a.data=a.data||{},_.extend(a.data,this.state.data),"undefined"==typeof a.data.page){if(!this.hasMore())return!1;null===this.state.currentPage||this.state.currentPage<=1?a.data.page=2:a.data.page=this.state.currentPage+1}return this.fetch(a)},hasMore:function(){return null===this.state.totalPages||null===this.state.totalObjects||null===this.state.currentPage?null:this.state.currentPage<this.state.totalPages}})}(),function(){"use strict";var a,b={},c=window.wpApiSettings||{};window.wp=window.wp||{},wp.api=wp.api||{},_.isEmpty(c)&&(c.root=window.location.origin+"/wp-json/"),a=Backbone.Model.extend({defaults:{apiRoot:c.root,versionString:wp.api.versionString,nonce:null,schema:null,models:{},collections:{}},initialize:function(){var a,b=this;Backbone.Model.prototype.initialize.apply(b,arguments),a=jQuery.Deferred(),b.schemaConstructed=a.promise(),b.schemaModel=new wp.api.models.Schema(null,{apiRoot:b.get("apiRoot"),versionString:b.get("versionString"),nonce:b.get("nonce")}),b.schemaModel.once("change",function(){b.constructFromSchema(),a.resolve(b)}),b.get("schema")?b.schemaModel.set(b.schemaModel.parse(b.get("schema"))):!_.isUndefined(sessionStorage)&&(_.isUndefined(c.cacheSchema)||c.cacheSchema)&&sessionStorage.getItem("wp-api-schema-model"+b.get("apiRoot")+b.get("versionString"))?b.schemaModel.set(b.schemaModel.parse(JSON.parse(sessionStorage.getItem("wp-api-schema-model"+b.get("apiRoot")+b.get("versionString"))))):b.schemaModel.fetch({success:function(a){if(!_.isUndefined(sessionStorage)&&(_.isUndefined(c.cacheSchema)||c.cacheSchema))try{sessionStorage.setItem("wp-api-schema-model"+b.get("apiRoot")+b.get("versionString"),JSON.stringify(a))}catch(d){}},error:function(a){window.console.log(a)}})},constructFromSchema:function(){var a,b,d,e,f=this,g=c.mapping||{models:{Categories:"Category",Comments:"Comment",Pages:"Page",PagesMeta:"PageMeta",PagesRevisions:"PageRevision",Posts:"Post",PostsCategories:"PostCategory",PostsRevisions:"PostRevision",PostsTags:"PostTag",Schema:"Schema",Statuses:"Status",Tags:"Tag",Taxonomies:"Taxonomy",Types:"Type",Users:"User"},collections:{PagesMeta:"PageMeta",PagesRevisions:"PageRevisions",PostsCategories:"PostCategories",PostsMeta:"PostMeta",PostsRevisions:"PostRevisions",PostsTags:"PostTags"}},h=f.get("modelEndpoints"),i=new RegExp("(?:.*[+)]|/("+h.join("|")+"))$");a=[],b=[],d=f.get("apiRoot").replace(wp.api.utils.getRootUrl(),""),e={},e.models={},e.collections={},_.each(f.schemaModel.get("routes"),function(c,e){e!==f.get(" versionString")&&e!==d&&e!=="/"+f.get("versionString").slice(0,-1)&&(i.test(e)?a.push({index:e,route:c}):b.push({index:e,route:c}))}),_.each(a,function(a){var b,c=wp.api.utils.extractRoutePart(a.index,2,f.get("versionString"),!0),d=wp.api.utils.extractRoutePart(a.index,1,f.get("versionString"),!1),h=wp.api.utils.extractRoutePart(a.index,1,f.get("versionString"),!0);d===f.get("versionString")&&(d=""),"me"===h&&(c="me"),""!==d&&d!==c?(b=wp.api.utils.capitalizeAndCamelCaseDashes(d)+wp.api.utils.capitalizeAndCamelCaseDashes(c),b=g.models[b]||b,e.models[b]=wp.api.WPApiBaseModel.extend({url:function(){var a=f.get("apiRoot")+f.get("versionString")+d+"/"+(_.isUndefined(this.get("parent"))||0===this.get("parent")?_.isUndefined(this.get("parent_post"))?"":this.get("parent_post")+"/":this.get("parent")+"/")+c;return _.isUndefined(this.get("id"))||(a+="/"+this.get("id")),a},nonce:function(){return f.get("nonce")},endpointModel:f,route:a,name:b,methods:a.route.methods,endpoints:a.route.endpoints})):(b=wp.api.utils.capitalizeAndCamelCaseDashes(c),b=g.models[b]||b,e.models[b]=wp.api.WPApiBaseModel.extend({url:function(){var a=f.get("apiRoot")+f.get("versionString")+("me"===c?"users/me":c);return _.isUndefined(this.get("id"))||(a+="/"+this.get("id")),a},nonce:function(){return f.get("nonce")},endpointModel:f,route:a,name:b,methods:a.route.methods,endpoints:a.route.endpoints})),wp.api.utils.decorateFromRoute(a.route.endpoints,e.models[b],f.get("versionString"))}),_.each(b,function(a){var b,c,d=a.index.slice(a.index.lastIndexOf("/")+1),h=wp.api.utils.extractRoutePart(a.index,1,f.get("versionString"),!1);""!==h&&h!==d&&f.get("versionString")!==h?(b=wp.api.utils.capitalizeAndCamelCaseDashes(h)+wp.api.utils.capitalizeAndCamelCaseDashes(d),c=g.models[b]||b,b=g.collections[b]||b,e.collections[b]=wp.api.WPApiBaseCollection.extend({url:function(){return f.get("apiRoot")+f.get("versionString")+h+"/"+this.parent+"/"+d},model:function(a,b){return new e.models[c](a,b)},name:b,route:a,methods:a.route.methods})):(b=wp.api.utils.capitalizeAndCamelCaseDashes(d),c=g.models[b]||b,b=g.collections[b]||b,e.collections[b]=wp.api.WPApiBaseCollection.extend({url:function(){return f.get("apiRoot")+f.get("versionString")+d},model:function(a,b){return new e.models[c](a,b)},name:b,route:a,methods:a.route.methods})),wp.api.utils.decorateFromRoute(a.route.endpoints,e.collections[b])}),_.each(e.models,function(a,b){e.models[b]=wp.api.utils.addMixinsAndHelpers(a,b,e)}),f.set("models",e.models),f.set("collections",e.collections)}}),wp.api.endpoints=new Backbone.Collection,wp.api.init=function(d){var e,f,g,h={};return d=d||{},h.nonce=d.nonce||c.nonce||"",h.apiRoot=d.apiRoot||c.root||"/wp-json",h.versionString=d.versionString||c.versionString||"wp/v2/",h.schema=d.schema||null,h.modelEndpoints=d.modelEndpoints||["me","settings"],h.schema||h.apiRoot!==c.root||h.versionString!==c.versionString||(h.schema=c.schema),b[h.apiRoot+h.versionString]||(e=wp.api.endpoints.findWhere({apiRoot:h.apiRoot,versionString:h.versionString}),e||(e=new a(h)),f=jQuery.Deferred(),g=f.promise(),e.schemaConstructed.done(function(a){wp.api.endpoints.add(a),wp.api.models=_.extend(wp.api.models,a.get("models")),wp.api.collections=_.extend(wp.api.collections,a.get("collections")),f.resolve(a)}),b[h.apiRoot+h.versionString]=g),b[h.apiRoot+h.versionString]},wp.api.loadPromise=wp.api.init()}(); \ No newline at end of file +!function(a,b){"use strict";function c(){this.models={},this.collections={},this.views={}}a.wp=a.wp||{},wp.api=wp.api||new c,wp.api.versionString=wp.api.versionString||"wp/v2/",!_.isFunction(_.includes)&&_.isFunction(_.contains)&&(_.includes=_.contains)}(window),function(a,b){"use strict";var c,d;a.wp=a.wp||{},wp.api=wp.api||{},wp.api.utils=wp.api.utils||{},wp.api.getModelByRoute=function(a){return _.find(wp.api.models,function(b){return b.prototype.route&&a===b.prototype.route.index})},wp.api.getCollectionByRoute=function(a){return _.find(wp.api.collections,function(b){return b.prototype.route&&a===b.prototype.route.index})},Date.prototype.toISOString||(c=function(a){return d=String(a),1===d.length&&(d="0"+d),d},Date.prototype.toISOString=function(){return this.getUTCFullYear()+"-"+c(this.getUTCMonth()+1)+"-"+c(this.getUTCDate())+"T"+c(this.getUTCHours())+":"+c(this.getUTCMinutes())+":"+c(this.getUTCSeconds())+"."+String((this.getUTCMilliseconds()/1e3).toFixed(3)).slice(2,5)+"Z"}),wp.api.utils.parseISO8601=function(a){var c,d,e,f,g=0,h=[1,4,5,6,7,10,11];if(d=/^(\d{4}|[+\-]\d{6})(?:-(\d{2})(?:-(\d{2}))?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(\d{2})(?::(\d{2}))?)?)?$/.exec(a)){for(e=0;f=h[e];++e)d[f]=+d[f]||0;d[2]=(+d[2]||1)-1,d[3]=+d[3]||1,"Z"!==d[8]&&b!==d[9]&&(g=60*d[10]+d[11],"+"===d[9]&&(g=0-g)),c=Date.UTC(d[1],d[2],d[3],d[4],d[5]+g,d[6],d[7])}else c=Date.parse?Date.parse(a):NaN;return c},wp.api.utils.getRootUrl=function(){return a.location.origin?a.location.origin+"/":a.location.protocol+"/"+a.location.host+"/"},wp.api.utils.capitalize=function(a){return _.isUndefined(a)?a:a.charAt(0).toUpperCase()+a.slice(1)},wp.api.utils.capitalizeAndCamelCaseDashes=function(a){return _.isUndefined(a)?a:(a=wp.api.utils.capitalize(a),wp.api.utils.camelCaseDashes(a))},wp.api.utils.camelCaseDashes=function(a){return a.replace(/-([a-z])/g,function(a){return a[1].toUpperCase()})},wp.api.utils.extractRoutePart=function(a,b,c,d){var e;return b=b||1,c=c||wp.api.versionString,0===a.indexOf("/"+c)&&(a=a.substr(c.length+1)),e=a.split("/"),d&&(e=e.reverse()),_.isUndefined(e[--b])?"":e[b]},wp.api.utils.extractParentName=function(a){var b,c=a.lastIndexOf("_id>[\\d]+)/");return c<0?"":(b=a.substr(0,c-1),b=b.split("/"),b.pop(),b=b.pop())},wp.api.utils.decorateFromRoute=function(a,b){_.each(a,function(a){_.includes(a.methods,"POST")||_.includes(a.methods,"PUT")?_.isEmpty(a.args)||(_.isEmpty(b.prototype.args)?b.prototype.args=a.args:b.prototype.args=_.extend(b.prototype.args,a.args)):_.includes(a.methods,"GET")&&(_.isEmpty(a.args)||(_.isEmpty(b.prototype.options)?b.prototype.options=a.args:b.prototype.options=_.extend(b.prototype.options,a.args)))})},wp.api.utils.addMixinsAndHelpers=function(a,b,c){var d=!1,e=["date","modified","date_gmt","modified_gmt"],f={setDate:function(a,b){var c=b||"date";return!(_.indexOf(e,c)<0)&&void this.set(c,a.toISOString())},getDate:function(a){var b=a||"date",c=this.get(b);return!(_.indexOf(e,b)<0||_.isNull(c))&&new Date(wp.api.utils.parseISO8601(c))}},g=function(a,b,c,d,e){var f,g,h,i;return i=jQuery.Deferred(),g=a.get("_embedded")||{},_.isNumber(b)&&0!==b?(g[d]&&(h=_.findWhere(g[d],{id:b})),h||(h={id:b}),f=new wp.api.models[c](h),f.get(e)?i.resolve(f):f.fetch({success:function(a){i.resolve(a)},error:function(a,b){i.reject(b)}}),i.promise()):(i.reject(),i)},h=function(a,b,c,d){var e,f,g,h="",j="",k=jQuery.Deferred();return e=a.get("id"),f=a.get("_embedded")||{},_.isNumber(e)&&0!==e?(_.isUndefined(c)||_.isUndefined(f[c])?h={parent:e}:j=_.isUndefined(d)?f[c]:f[c][d],g=new wp.api.collections[b](j,h),_.isUndefined(g.models[0])?g.fetch({success:function(a){i(a,e),k.resolve(a)},error:function(a,b){k.reject(b)}}):(i(g,e),k.resolve(g)),k.promise()):(k.reject(),k)},i=function(a,b){_.each(a.models,function(a){a.set("parent_post",b)})},j={getMeta:function(a){var b=this.get("meta");return b[a]},getMetas:function(){return this.get("meta")},setMetas:function(a){var b=this.get("meta");_.extend(b,a),this.set("meta",b)},setMeta:function(a,b){var c=this.get("meta");c[a]=b,this.set("meta",c)}},k={getRevisions:function(){return h(this,"PostRevisions")}},l={getTags:function(){var a=this.get("tags"),b=new wp.api.collections.Tags;return _.isEmpty(a)?jQuery.Deferred().resolve([]):b.fetch({data:{include:a}})},setTags:function(a){var b,c,d=this,e=[];return!_.isString(a)&&void(_.isArray(a)?(b=new wp.api.collections.Tags,b.fetch({data:{per_page:100},success:function(b){_.each(a,function(a){c=new wp.api.models.Tag(b.findWhere({slug:a})),c.set("parent_post",d.get("id")),e.push(c)}),a=new wp.api.collections.Tags(e),d.setTagsWithCollection(a)}})):this.setTagsWithCollection(a))},setTagsWithCollection:function(a){return this.set("tags",a.pluck("id")),this.save()}},m={getCategories:function(){var a=this.get("categories"),b=new wp.api.collections.Categories;return _.isEmpty(a)?jQuery.Deferred().resolve([]):b.fetch({data:{include:a}})},setCategories:function(a){var b,c,d=this,e=[];return!_.isString(a)&&void(_.isArray(a)?(b=new wp.api.collections.Categories,b.fetch({data:{per_page:100},success:function(b){_.each(a,function(a){c=new wp.api.models.Category(b.findWhere({slug:a})),c.set("parent_post",d.get("id")),e.push(c)}),a=new wp.api.collections.Categories(e),d.setCategoriesWithCollection(a)}})):this.setCategoriesWithCollection(a))},setCategoriesWithCollection:function(a){return this.set("categories",a.pluck("id")),this.save()}},n={getAuthorUser:function(){return g(this,this.get("author"),"User","author","name")}},o={getFeaturedMedia:function(){return g(this,this.get("featured_media"),"Media","wp:featuredmedia","source_url")}};return _.isUndefined(a.prototype.args)?a:(_.each(e,function(b){_.isUndefined(a.prototype.args[b])||(d=!0)}),d&&(a=a.extend(f)),_.isUndefined(a.prototype.args.author)||(a=a.extend(n)),_.isUndefined(a.prototype.args.featured_media)||(a=a.extend(o)),_.isUndefined(a.prototype.args.categories)||(a=a.extend(m)),_.isUndefined(a.prototype.args.meta)||(a=a.extend(j)),_.isUndefined(a.prototype.args.tags)||(a=a.extend(l)),_.isUndefined(c.collections[b+"Revisions"])||(a=a.extend(k)),a)}}(window),function(){"use strict";var a=window.wpApiSettings||{},b=["Comment","Media","Comment","Post","Page","Status","Taxonomy","Type"];wp.api.WPApiBaseModel=Backbone.Model.extend({initialize:function(){-1===_.indexOf(b,this.name)&&(this.requireForceForDelete=!0)},sync:function(a,b,c){var d;return c=c||{},_.isNull(b.get("date_gmt"))&&b.unset("date_gmt"),_.isEmpty(b.get("slug"))&&b.unset("slug"),_.isFunction(b.nonce)&&!_.isEmpty(b.nonce())&&(d=c.beforeSend,c.beforeSend=function(a){if(a.setRequestHeader("X-WP-Nonce",b.nonce()),d)return d.apply(this,arguments)},c.complete=function(a){var c=a.getResponseHeader("X-WP-Nonce");c&&_.isFunction(b.nonce)&&b.nonce()!==c&&b.endpointModel.set("nonce",c)}),this.requireForceForDelete&&"delete"===a&&(b.url=b.url()+"?force=true"),Backbone.sync(a,b,c)},save:function(a,b){return!(!_.includes(this.methods,"PUT")&&!_.includes(this.methods,"POST"))&&Backbone.Model.prototype.save.call(this,a,b)},destroy:function(a){return!!_.includes(this.methods,"DELETE")&&Backbone.Model.prototype.destroy.call(this,a)}}),wp.api.models.Schema=wp.api.WPApiBaseModel.extend({defaults:{_links:{},namespace:null,routes:{}},initialize:function(b,c){var d=this;c=c||{},wp.api.WPApiBaseModel.prototype.initialize.call(d,b,c),d.apiRoot=c.apiRoot||a.root,d.versionString=c.versionString||a.versionString},url:function(){return this.apiRoot+this.versionString}})}(),function(){"use strict";window.wpApiSettings||{};wp.api.WPApiBaseCollection=Backbone.Collection.extend({initialize:function(a,b){this.state={data:{},currentPage:null,totalPages:null,totalObjects:null},_.isUndefined(b)?this.parent="":this.parent=b.parent},sync:function(a,b,c){var d,e,f=this;return c=c||{},_.isFunction(b.nonce)&&!_.isEmpty(b.nonce())&&(d=c.beforeSend,c.beforeSend=function(a){if(a.setRequestHeader("X-WP-Nonce",b.nonce()),d)return d.apply(f,arguments)},c.complete=function(a){var c=a.getResponseHeader("X-WP-Nonce");c&&_.isFunction(b.nonce)&&b.nonce()!==c&&b.endpointModel.set("nonce",c)}),"read"===a&&(c.data?(f.state.data=_.clone(c.data),delete f.state.data.page):f.state.data=c.data={},"undefined"==typeof c.data.page?(f.state.currentPage=null,f.state.totalPages=null,f.state.totalObjects=null):f.state.currentPage=c.data.page-1,e=c.success,c.success=function(a,b,c){if(_.isUndefined(c)||(f.state.totalPages=parseInt(c.getResponseHeader("x-wp-totalpages"),10),f.state.totalObjects=parseInt(c.getResponseHeader("x-wp-total"),10)),null===f.state.currentPage?f.state.currentPage=1:f.state.currentPage++,e)return e.apply(this,arguments)}),Backbone.sync(a,b,c)},more:function(a){if(a=a||{},a.data=a.data||{},_.extend(a.data,this.state.data),"undefined"==typeof a.data.page){if(!this.hasMore())return!1;null===this.state.currentPage||this.state.currentPage<=1?a.data.page=2:a.data.page=this.state.currentPage+1}return this.fetch(a)},hasMore:function(){return null===this.state.totalPages||null===this.state.totalObjects||null===this.state.currentPage?null:this.state.currentPage<this.state.totalPages}})}(),function(){"use strict";var a,b={},c=window.wpApiSettings||{};window.wp=window.wp||{},wp.api=wp.api||{},_.isEmpty(c)&&(c.root=window.location.origin+"/wp-json/"),a=Backbone.Model.extend({defaults:{apiRoot:c.root,versionString:wp.api.versionString,nonce:null,schema:null,models:{},collections:{}},initialize:function(){var a,b=this;Backbone.Model.prototype.initialize.apply(b,arguments),a=jQuery.Deferred(),b.schemaConstructed=a.promise(),b.schemaModel=new wp.api.models.Schema(null,{apiRoot:b.get("apiRoot"),versionString:b.get("versionString"),nonce:b.get("nonce")}),b.schemaModel.once("change",function(){b.constructFromSchema(),a.resolve(b)}),b.get("schema")?b.schemaModel.set(b.schemaModel.parse(b.get("schema"))):!_.isUndefined(sessionStorage)&&(_.isUndefined(c.cacheSchema)||c.cacheSchema)&&sessionStorage.getItem("wp-api-schema-model"+b.get("apiRoot")+b.get("versionString"))?b.schemaModel.set(b.schemaModel.parse(JSON.parse(sessionStorage.getItem("wp-api-schema-model"+b.get("apiRoot")+b.get("versionString"))))):b.schemaModel.fetch({success:function(a){if(!_.isUndefined(sessionStorage)&&(_.isUndefined(c.cacheSchema)||c.cacheSchema))try{sessionStorage.setItem("wp-api-schema-model"+b.get("apiRoot")+b.get("versionString"),JSON.stringify(a))}catch(d){}},error:function(a){window.console.log(a)}})},constructFromSchema:function(){var a,b,d,e,f=this,g=c.mapping||{models:{Categories:"Category",Comments:"Comment",Pages:"Page",PagesMeta:"PageMeta",PagesRevisions:"PageRevision",Posts:"Post",PostsCategories:"PostCategory",PostsRevisions:"PostRevision",PostsTags:"PostTag",Schema:"Schema",Statuses:"Status",Tags:"Tag",Taxonomies:"Taxonomy",Types:"Type",Users:"User"},collections:{PagesMeta:"PageMeta",PagesRevisions:"PageRevisions",PostsCategories:"PostCategories",PostsMeta:"PostMeta",PostsRevisions:"PostRevisions",PostsTags:"PostTags"}},h=f.get("modelEndpoints"),i=new RegExp("(?:.*[+)]|/("+h.join("|")+"))$");a=[],b=[],d=f.get("apiRoot").replace(wp.api.utils.getRootUrl(),""),e={},e.models={},e.collections={},_.each(f.schemaModel.get("routes"),function(c,e){e!==f.get(" versionString")&&e!==d&&e!=="/"+f.get("versionString").slice(0,-1)&&(i.test(e)?a.push({index:e,route:c}):b.push({index:e,route:c}))}),_.each(a,function(a){var b,c=wp.api.utils.extractRoutePart(a.index,2,f.get("versionString"),!0),d=wp.api.utils.extractRoutePart(a.index,1,f.get("versionString"),!1),h=wp.api.utils.extractRoutePart(a.index,1,f.get("versionString"),!0);d===f.get("versionString")&&(d=""),"me"===h&&(c="me"),""!==d&&d!==c?(b=wp.api.utils.capitalizeAndCamelCaseDashes(d)+wp.api.utils.capitalizeAndCamelCaseDashes(c),b=g.models[b]||b,e.models[b]=wp.api.WPApiBaseModel.extend({url:function(){var a=f.get("apiRoot")+f.get("versionString")+d+"/"+(_.isUndefined(this.get("parent"))||0===this.get("parent")?_.isUndefined(this.get("parent_post"))?"":this.get("parent_post")+"/":this.get("parent")+"/")+c;return _.isUndefined(this.get("id"))||(a+="/"+this.get("id")),a},nonce:function(){return f.get("nonce")},endpointModel:f,route:a,name:b,methods:a.route.methods,endpoints:a.route.endpoints})):(b=wp.api.utils.capitalizeAndCamelCaseDashes(c),b=g.models[b]||b,e.models[b]=wp.api.WPApiBaseModel.extend({url:function(){var a=f.get("apiRoot")+f.get("versionString")+("me"===c?"users/me":c);return _.isUndefined(this.get("id"))||(a+="/"+this.get("id")),a},nonce:function(){return f.get("nonce")},endpointModel:f,route:a,name:b,methods:a.route.methods,endpoints:a.route.endpoints})),wp.api.utils.decorateFromRoute(a.route.endpoints,e.models[b],f.get("versionString"))}),_.each(b,function(a){var b,c,d=a.index.slice(a.index.lastIndexOf("/")+1),h=wp.api.utils.extractRoutePart(a.index,1,f.get("versionString"),!1);""!==h&&h!==d&&f.get("versionString")!==h?(b=wp.api.utils.capitalizeAndCamelCaseDashes(h)+wp.api.utils.capitalizeAndCamelCaseDashes(d),c=g.models[b]||b,b=g.collections[b]||b,e.collections[b]=wp.api.WPApiBaseCollection.extend({url:function(){return f.get("apiRoot")+f.get("versionString")+h+"/"+this.parent+"/"+d},model:function(a,b){return new e.models[c](a,b)},nonce:function(){return f.get("nonce")},endpointModel:f,name:b,route:a,methods:a.route.methods})):(b=wp.api.utils.capitalizeAndCamelCaseDashes(d),c=g.models[b]||b,b=g.collections[b]||b,e.collections[b]=wp.api.WPApiBaseCollection.extend({url:function(){return f.get("apiRoot")+f.get("versionString")+d},model:function(a,b){return new e.models[c](a,b)},nonce:function(){return f.get("nonce")},endpointModel:f,name:b,route:a,methods:a.route.methods})),wp.api.utils.decorateFromRoute(a.route.endpoints,e.collections[b])}),_.each(e.models,function(a,b){e.models[b]=wp.api.utils.addMixinsAndHelpers(a,b,e)}),f.set("models",e.models),f.set("collections",e.collections)}}),wp.api.endpoints=new Backbone.Collection,wp.api.init=function(d){var e,f,g,h={};return d=d||{},h.nonce=_.isString(d.nonce)?d.nonce:c.nonce||"",h.apiRoot=d.apiRoot||c.root||"/wp-json",h.versionString=d.versionString||c.versionString||"wp/v2/",h.schema=d.schema||null,h.modelEndpoints=d.modelEndpoints||["me","settings"],h.schema||h.apiRoot!==c.root||h.versionString!==c.versionString||(h.schema=c.schema),b[h.apiRoot+h.versionString]||(e=wp.api.endpoints.findWhere({apiRoot:h.apiRoot,versionString:h.versionString}),e||(e=new a(h)),f=jQuery.Deferred(),g=f.promise(),e.schemaConstructed.done(function(a){wp.api.endpoints.add(a),wp.api.models=_.extend(wp.api.models,a.get("models")),wp.api.collections=_.extend(wp.api.collections,a.get("collections")),f.resolve(a)}),b[h.apiRoot+h.versionString]=g),b[h.apiRoot+h.versionString]},wp.api.loadPromise=wp.api.init()}(); \ No newline at end of file diff --git a/wp-includes/kses.php b/wp-includes/kses.php index c95b0179f..0cf4ce14c 100644 --- a/wp-includes/kses.php +++ b/wp-includes/kses.php @@ -827,7 +827,8 @@ function wp_kses_attr($element, $attr, $allowed_html, $allowed_protocols) { $xhtml_slash = ' /'; // Are any attributes allowed at all for this element? - if ( ! isset( $allowed_html[ strtolower( $element ) ] ) || true === $allowed_html[ strtolower( $element ) ] || count( $allowed_html[ strtolower( $element ) ] ) == 0 ) { + $element_low = strtolower( $element ); + if ( empty( $allowed_html[ $element_low ] ) || true === $allowed_html[ $element_low ] ) { return "<$element$xhtml_slash>"; } diff --git a/wp-includes/link-template.php b/wp-includes/link-template.php index eb22284ca..b55ebcb18 100644 --- a/wp-includes/link-template.php +++ b/wp-includes/link-template.php @@ -4104,3 +4104,84 @@ function get_parent_theme_file_path( $file = '' ) { */ return apply_filters( 'parent_theme_file_path', $path, $file ); } + +/** + * Retrieves the URL to the privacy policy page. + * + * @since 4.9.6 + * + * @return string The URL to the privacy policy page. Empty string if it doesn't exist. + */ +function get_privacy_policy_url() { + $url = ''; + $policy_page_id = (int) get_option( 'wp_page_for_privacy_policy' ); + + if ( ! empty( $policy_page_id ) && get_post_status( $policy_page_id ) === 'publish' ) { + $url = (string) get_permalink( $policy_page_id ); + } + + /** + * Filters the URL of the privacy policy page. + * + * @since 4.9.6 + * + * @param string $url The URL to the privacy policy page. Empty string + * if it doesn't exist. + * @param int $policy_page_id The ID of privacy policy page. + */ + return apply_filters( 'privacy_policy_url', $url, $policy_page_id ); +} + +/** + * Displays the privacy policy link with formatting, when applicable. + * + * @since 4.9.6 + * + * @param string $before Optional. Display before privacy policy link. Default empty. + * @param string $after Optional. Display after privacy policy link. Default empty. + */ +function the_privacy_policy_link( $before = '', $after = '' ) { + echo get_the_privacy_policy_link( $before, $after ); +} + +/** + * Returns the privacy policy link with formatting, when applicable. + * + * @since 4.9.6 + * + * @param string $before Optional. Display before privacy policy link. Default empty. + * @param string $after Optional. Display after privacy policy link. Default empty. + * + * @return string Markup for the link and surrounding elements. Empty string if it + * doesn't exist. + */ +function get_the_privacy_policy_link( $before = '', $after = '' ) { + $link = ''; + $privacy_policy_url = get_privacy_policy_url(); + + if ( $privacy_policy_url ) { + $link = sprintf( + '<a class="privacy-policy-link" href="%s">%s</a>', + esc_url( $privacy_policy_url ), + __( 'Privacy Policy' ) + ); + } + + /** + * Filters the privacy policy link. + * + * @since 4.9.6 + * + * @param string $link The privacy policy link. Empty string if it + * doesn't exist. + * @param string $privacy_policy_url The URL of the privacy policy. Empty string + * if it doesn't exist. + */ + $link = apply_filters( 'the_privacy_policy_link', $link, $privacy_policy_url ); + + if ( $link ) { + return $before . $link . $after; + } + + return ''; +} diff --git a/wp-includes/media.php b/wp-includes/media.php index dc4941462..9aa511842 100644 --- a/wp-includes/media.php +++ b/wp-includes/media.php @@ -1203,7 +1203,7 @@ function wp_calculate_image_srcset( $size_array, $image_src, $image_meta, $attac $sources = apply_filters( 'wp_calculate_image_srcset', $sources, $size_array, $image_src, $image_meta, $attachment_id ); // Only return a 'srcset' value if there is more than one source. - if ( ! $src_matched || count( $sources ) < 2 ) { + if ( ! $src_matched || ! is_array( $sources ) || count( $sources ) < 2 ) { return false; } @@ -1578,7 +1578,7 @@ function img_caption_shortcode( $attr, $content = null ) { $style = ''; if ( $caption_width ) { - $style = 'style="max-width: ' . (int) $caption_width . 'px" '; + $style = 'style="width: ' . (int) $caption_width . 'px" '; } if ( $html5 ) { @@ -3523,6 +3523,7 @@ function wp_enqueue_media( $args = array() ) { 'noItemsFound' => __( 'No items found.' ), 'insertIntoPost' => $post_type_object->labels->insert_into_item, 'unattached' => __( 'Unattached' ), + 'mine' => _x( 'Mine', 'media items' ), 'trash' => _x( 'Trash', 'noun' ), 'uploadedToThisPost' => $post_type_object->labels->uploaded_to_this_item, 'warnDelete' => __( "You are about to permanently delete this item from your site.\nThis action cannot be undone.\n 'Cancel' to stop, 'OK' to delete." ), @@ -3956,3 +3957,79 @@ function wpview_media_sandbox_styles() { return array( $mediaelement, $wpmediaelement ); } + +/** + * Registers the personal data exporter for media + * + * @param array $exporters An array of personal data exporters. + * @return array An array of personal data exporters. + */ +function wp_register_media_personal_data_exporter( $exporters ) { + $exporters['wordpress-media'] = array( + 'exporter_friendly_name' => __( 'WordPress Media' ), + 'callback' => 'wp_media_personal_data_exporter', + ); + + return $exporters; +} + +/** + * Finds and exports attachments associated with an email address. + * + * @since 4.9.6 + * + * @param string $email_address The attachment owner email address. + * @param int $page Attachment page. + * @return array $return An array of personal data. + */ +function wp_media_personal_data_exporter( $email_address, $page = 1 ) { + // Limit us to 50 attachments at a time to avoid timing out. + $number = 50; + $page = (int) $page; + + $data_to_export = array(); + + $user = get_user_by( 'email' , $email_address ); + if ( false === $user ) { + return array( + 'data' => $data_to_export, + 'done' => true, + ); + } + + $post_query = new WP_Query( + array( + 'author' => $user->ID, + 'posts_per_page' => $number, + 'paged' => $page, + 'post_type' => 'attachment', + 'post_status' => 'any', + 'orderby' => 'ID', + 'order' => 'ASC', + ) + ); + + foreach ( (array) $post_query->posts as $post ) { + $attachment_url = wp_get_attachment_url( $post->ID ); + + if ( $attachment_url ) { + $post_data_to_export = array( + array( 'name' => __( 'URL' ), 'value' => $attachment_url ), + ); + + $data_to_export[] = array( + 'group_id' => 'media', + 'group_label' => __( 'Media' ), + 'item_id' => "post-{$post->ID}", + 'data' => $post_data_to_export, + ); + } + } + + $done = $post_query->max_num_pages <= $page; + + return array( + 'data' => $data_to_export, + 'done' => $done, + ); +} diff --git a/wp-includes/post.php b/wp-includes/post.php index fa9b0f318..d69f5a839 100644 --- a/wp-includes/post.php +++ b/wp-includes/post.php @@ -210,6 +210,21 @@ function create_initial_post_types() { 'supports' => array(), ) ); + register_post_type( 'user_request', array( + 'labels' => array( + 'name' => __( 'User Requests' ), + 'singular_name' => __( 'User Request' ), + ), + 'public' => false, + '_builtin' => true, /* internal use only. don't use this when registering your own post type. */ + 'hierarchical' => false, + 'rewrite' => false, + 'query_var' => false, + 'can_export' => false, + 'delete_with_user' => false, + 'supports' => array(), + ) ); + register_post_status( 'publish', array( 'label' => _x( 'Published', 'post status' ), 'public' => true, @@ -265,6 +280,34 @@ function create_initial_post_types() { '_builtin' => true, /* internal use only. */ 'exclude_from_search' => false, ) ); + + register_post_status( 'request-pending', array( + 'label' => _x( 'Pending', 'request status' ), + 'internal' => true, + '_builtin' => true, /* internal use only. */ + 'exclude_from_search' => false, + ) ); + + register_post_status( 'request-confirmed', array( + 'label' => _x( 'Confirmed', 'request status' ), + 'internal' => true, + '_builtin' => true, /* internal use only. */ + 'exclude_from_search' => false, + ) ); + + register_post_status( 'request-failed', array( + 'label' => _x( 'Failed', 'request status' ), + 'internal' => true, + '_builtin' => true, /* internal use only. */ + 'exclude_from_search' => false, + ) ); + + register_post_status( 'request-completed', array( + 'label' => _x( 'Completed', 'request status' ), + 'internal' => true, + '_builtin' => true, /* internal use only. */ + 'exclude_from_search' => false, + ) ); } /** @@ -729,6 +772,22 @@ function get_page_statuses() { return $status; } +/** + * Return statuses for privacy requests. + * + * @since 5.0.0 + * + * @return array + */ +function _wp_privacy_statuses() { + return array( + 'request-pending' => __( 'Pending' ), // Pending confirmation from user. + 'request-confirmed' => __( 'Confirmed' ), // User has confirmed the action. + 'request-failed' => __( 'Failed' ), // User failed to confirm the action. + 'request-completed' => __( 'Completed' ), // Admin has handled the request. + ); +} + /** * Register a post status. Do not use before init. * @@ -3741,7 +3800,7 @@ function check_and_publish_future_post( $post_id ) { * @return string Unique slug for the post, based on $post_name (with a -1, -2, etc. suffix) */ function wp_unique_post_slug( $slug, $post_ID, $post_status, $post_type, $post_parent ) { - if ( in_array( $post_status, array( 'draft', 'pending', 'auto-draft' ) ) || ( 'inherit' == $post_status && 'revision' == $post_type ) ) + if ( in_array( $post_status, array( 'draft', 'pending', 'auto-draft' ) ) || ( 'inherit' == $post_status && 'revision' == $post_type ) || 'user_request' === $post_type ) return $slug; global $wpdb, $wp_rewrite; diff --git a/wp-includes/query.php b/wp-includes/query.php index 168e548da..7df90a963 100644 --- a/wp-includes/query.php +++ b/wp-includes/query.php @@ -880,7 +880,7 @@ function wp_old_slug_redirect() { * * @since 4.9.3 * - * @param string $id The redirect post ID. + * @param int $id The redirect post ID. */ $id = apply_filters( 'old_slug_redirect_post_id', $id ); @@ -962,7 +962,6 @@ function _find_post_by_old_slug( $post_type ) { * @param string $post_type The current post type based on the query vars. * @return int $id The Post ID. */ - function _find_post_by_old_date( $post_type ) { global $wpdb; diff --git a/wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php b/wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php index d574ba837..5b83f583c 100644 --- a/wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php +++ b/wp-includes/rest-api/endpoints/class-wp-rest-post-types-controller.php @@ -155,6 +155,7 @@ class WP_REST_Post_Types_Controller extends WP_REST_Controller { 'capabilities' => $post_type->cap, 'description' => $post_type->description, 'hierarchical' => $post_type->hierarchical, + 'viewable' => is_post_type_viewable( $post_type ), 'labels' => $post_type->labels, 'name' => $post_type->label, 'slug' => $post_type->name, @@ -223,6 +224,12 @@ class WP_REST_Post_Types_Controller extends WP_REST_Controller { 'context' => array( 'view', 'edit' ), 'readonly' => true, ), + 'viewable' => array( + 'description' => __( 'Whether or not the post type can be viewed.' ), + 'type' => 'boolean', + 'context' => array( 'edit' ), + 'readonly' => true, + ), 'labels' => array( 'description' => __( 'Human-readable labels for the post type for various contexts.' ), 'type' => 'object', diff --git a/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php b/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php index c7c32a73d..375d79e8a 100644 --- a/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php +++ b/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php @@ -186,6 +186,20 @@ class WP_REST_Users_Controller extends WP_REST_Controller { return new WP_Error( 'rest_forbidden_orderby', __( 'Sorry, you are not allowed to order users by this parameter.' ), array( 'status' => rest_authorization_required_code() ) ); } + if ( 'authors' === $request['who'] ) { + $can_view = false; + $types = get_post_types( array( 'show_in_rest' => true ), 'objects' ); + foreach ( $types as $type ) { + if ( post_type_supports( $type->name, 'author' ) + && current_user_can( $type->cap->edit_posts ) ) { + $can_view = true; + } + } + if ( ! $can_view ) { + return new WP_Error( 'rest_forbidden_who', __( 'Sorry, you are not allowed to query users by this parameter.' ), array( 'status' => rest_authorization_required_code() ) ); + } + } + return true; } @@ -250,7 +264,9 @@ class WP_REST_Users_Controller extends WP_REST_Controller { $prepared_args['orderby'] = $orderby_possibles[ $request['orderby'] ]; } - if ( ! current_user_can( 'list_users' ) ) { + if ( isset( $registered['who'] ) && ! empty( $request['who'] ) && 'authors' === $request['who'] ) { + $prepared_args['who'] = 'authors'; + } elseif ( ! current_user_can( 'list_users' ) ) { $prepared_args['has_published_posts'] = get_post_types( array( 'show_in_rest' => true ), 'names' ); } @@ -1362,6 +1378,14 @@ class WP_REST_Users_Controller extends WP_REST_Controller { ), ); + $query_params['who'] = array( + 'description' => __( 'Limit result set to users who are considered authors.' ), + 'type' => 'string', + 'enum' => array( + 'authors', + ), + ); + /** * Filter collection parameters for the users controller. * diff --git a/wp-includes/script-loader.php b/wp-includes/script-loader.php index 8920dc25b..b560fd245 100644 --- a/wp-includes/script-loader.php +++ b/wp-includes/script-loader.php @@ -130,7 +130,7 @@ function wp_default_scripts( &$scripts ) { $scripts->add( 'wp-ajax-response', "/wp-includes/js/wp-ajax-response$suffix.js", array('jquery'), false, 1 ); did_action( 'init' ) && $scripts->localize( 'wp-ajax-response', 'wpAjax', array( 'noPerm' => __('Sorry, you are not allowed to do that.'), - 'broken' => __('An unidentified error has occurred.') + 'broken' => __('Something went wrong.') ) ); $scripts->add( 'wp-api-request', "/wp-includes/js/api-request$suffix.js", array( 'jquery' ), false, 1 ); @@ -562,7 +562,8 @@ function wp_default_scripts( &$scripts ) { 'close' => __( 'Close' ), 'action' => __( 'Action' ), 'discardChanges' => __( 'Discard changes' ), - 'cheatin' => __( 'Cheatin’ uh?' ), + 'cheatin' => __( 'Something went wrong.' ), + 'notAllowedHeading' => __( 'You need a higher level of permission.' ), 'notAllowed' => __( 'Sorry, you are not allowed to customize this site.' ), 'previewIframeTitle' => __( 'Site Preview' ), 'loginIframeTitle' => __( 'Session expired' ), @@ -641,7 +642,7 @@ function wp_default_scripts( &$scripts ) { $scripts->add( 'admin-tags', "/wp-admin/js/tags$suffix.js", array( 'jquery', 'wp-ajax-response' ), false, 1 ); did_action( 'init' ) && $scripts->localize( 'admin-tags', 'tagsl10n', array( 'noPerm' => __('Sorry, you are not allowed to do that.'), - 'broken' => __('An unidentified error has occurred.') + 'broken' => __('Something went wrong.') )); $scripts->add( 'admin-comments', "/wp-admin/js/edit-comments$suffix.js", array('wp-lists', 'quicktags', 'jquery-query'), false, 1 ); @@ -658,6 +659,17 @@ function wp_default_scripts( &$scripts ) { ) ); $scripts->add( 'xfn', "/wp-admin/js/xfn$suffix.js", array('jquery'), false, 1 ); + did_action( 'init' ) && $scripts->localize( + 'xfn', 'privacyToolsL10n', array( + 'noDataFound' => __( 'No personal data was found for this user.' ), + 'foundAndRemoved' => __( 'All of the personal data found for this user was erased.' ), + 'noneRemoved' => __( 'Personal data was found for this user but was not erased.' ), + 'someNotRemoved' => __( 'Personal data was found for this user but some of the personal data found was not erased.' ), + 'removalError' => __( 'An error occurred while attempting to find and erase personal data.' ), + 'noExportFile' => __( 'No personal data export file was generated.' ), + 'exportError' => __( 'An error occurred while attempting to export personal data.' ), + ) + ); $scripts->add( 'postbox', "/wp-admin/js/postbox$suffix.js", array('jquery-ui-sortable'), false, 1 ); did_action( 'init' ) && $scripts->localize( 'postbox', 'postBoxL10n', array( @@ -835,7 +847,7 @@ function wp_default_scripts( &$scripts ) { 'activateImporter' => __( 'Run Importer' ), /* translators: %s: Importer name */ 'activateImporterLabel' => __( 'Run %s' ), - 'unknownError' => __( 'An unidentified error has occurred.' ), + 'unknownError' => __( 'Something went wrong.' ), 'connectionError' => __( 'Connection lost or the server is busy. Please try again later.' ), 'nonceError' => __( 'An error has occurred. Please reload the page and try again.' ), 'pluginsFound' => __( 'Number of plugins found: %d' ), diff --git a/wp-includes/theme.php b/wp-includes/theme.php index 4e5f63bb8..947226c4d 100644 --- a/wp-includes/theme.php +++ b/wp-includes/theme.php @@ -353,8 +353,9 @@ function get_template_directory_uri() { function get_theme_roots() { global $wp_theme_directories; - if ( count($wp_theme_directories) <= 1 ) + if ( ! is_array( $wp_theme_directories ) || count( $wp_theme_directories ) <= 1 ) { return '/themes'; + } $theme_roots = get_site_transient( 'theme_roots' ); if ( false === $theme_roots ) { diff --git a/wp-includes/user.php b/wp-includes/user.php index 1c1e466bf..da9fb12ac 100644 --- a/wp-includes/user.php +++ b/wp-includes/user.php @@ -2731,3 +2731,835 @@ function new_user_email_admin_notice() { echo '<div class="notice notice-info"><p>' . sprintf( __( 'Your email address has not been updated yet. Please check your inbox at %s for a confirmation email.' ), '<code>' . esc_html( $email['newemail'] ) . '</code>' ) . '</p></div>'; } } + +/** + * Get all user privacy request types. + * + * @since 4.9.6 + * @access private + * + * @return array List of core privacy action types. + */ +function _wp_privacy_action_request_types() { + return array( + 'export_personal_data', + 'remove_personal_data', + ); +} + +/** + * Registers the personal data exporter for users. + * + * @since 4.9.6 + * + * @param array $exporters An array of personal data exporters. + * @return array An array of personal data exporters. + */ +function wp_register_user_personal_data_exporter( $exporters ) { + $exporters['wordpress-user'] = array( + 'exporter_friendly_name' => __( 'WordPress User' ), + 'callback' => 'wp_user_personal_data_exporter', + ); + + return $exporters; +} + +/** + * Finds and exports personal data associated with an email address from the user and user_meta table. + * + * @since 4.9.6 + * + * @param string $email_address The users email address. + * @return array An array of personal data. + */ +function wp_user_personal_data_exporter( $email_address ) { + $email_address = trim( $email_address ); + + $data_to_export = array(); + + $user = get_user_by( 'email', $email_address ); + + if ( ! $user ) { + return array( + 'data' => array(), + 'done' => true, + ); + } + + $user_meta = get_user_meta( $user->ID ); + + $user_prop_to_export = array( + 'ID' => __( 'User ID' ), + 'user_login' => __( 'User Login Name' ), + 'user_nicename' => __( 'User Nice Name' ), + 'user_email' => __( 'User Email' ), + 'user_url' => __( 'User URL' ), + 'user_registered' => __( 'User Registration Date' ), + 'display_name' => __( 'User Display Name' ), + 'nickname' => __( 'User Nickname' ), + 'first_name' => __( 'User First Name' ), + 'last_name' => __( 'User Last Name' ), + 'description' => __( 'User Description' ), + ); + + $user_data_to_export = array(); + + foreach ( $user_prop_to_export as $key => $name ) { + $value = ''; + + switch ( $key ) { + case 'ID': + case 'user_login': + case 'user_nicename': + case 'user_email': + case 'user_url': + case 'user_registered': + case 'display_name': + $value = $user->data->$key; + break; + case 'nickname': + case 'first_name': + case 'last_name': + case 'description': + $value = $user_meta[ $key ][0]; + break; + } + + if ( ! empty( $value ) ) { + $user_data_to_export[] = array( + 'name' => $name, + 'value' => $value, + ); + } + } + + $data_to_export[] = array( + 'group_id' => 'user', + 'group_label' => __( 'User' ), + 'item_id' => "user-{$user->ID}", + 'data' => $user_data_to_export, + ); + + return array( + 'data' => $data_to_export, + 'done' => true, + ); +} + +/** + * Update log when privacy request is confirmed. + * + * @since 4.9.6 + * @access private + * + * @param int $request_id ID of the request. + */ +function _wp_privacy_account_request_confirmed( $request_id ) { + $request_data = wp_get_user_request_data( $request_id ); + + if ( ! $request_data ) { + return; + } + + if ( ! in_array( $request_data->status, array( 'request-pending', 'request-failed' ), true ) ) { + return; + } + + update_post_meta( $request_id, '_wp_user_request_confirmed_timestamp', time() ); + wp_update_post( array( + 'ID' => $request_id, + 'post_status' => 'request-confirmed', + ) ); +} + +/** + * Notify the site administrator via email when a request is confirmed. + * + * Without this, the admin would have to manually check the site to see if any + * action was needed on their part yet. + * + * @since 4.9.6 + * + * @param int $request_id The ID of the request. + */ +function _wp_privacy_send_request_confirmation_notification( $request_id ) { + $request_data = wp_get_user_request_data( $request_id ); + + if ( ! is_a( $request_data, 'WP_User_Request' ) || 'request-confirmed' !== $request_data->status ) { + return; + } + + $already_notified = (bool) get_post_meta( $request_id, '_wp_admin_notified', true ); + + if ( $already_notified ) { + return; + } + + $subject = sprintf( + /* translators: %s Site name. */ + __( '[%s] Action Confirmed' ), + wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES ) + ); + + $manage_url = add_query_arg( 'page', $request_data->action_name, admin_url( 'tools.php' ) ); + + /** + * Filters the recipient of the data request confirmation notification. + * + * In a Multisite environment, this will default to the email address of the + * network admin because, by default, single site admins do not have the + * capabilities required to process requests. Some networks may wish to + * delegate those capabilities to a single-site admin, or a dedicated person + * responsible for managing privacy requests. + * + * @since 4.9.6 + * + * @param string $admin_email The email address of the notification recipient. + * @param WP_User_Request $request_data The request that is initiating the notification. + */ + $admin_email = apply_filters( 'user_request_confirmed_email_to', get_site_option( 'admin_email' ), $request_data ); + + $email_data = array( + 'request' => $request_data, + 'user_email' => $request_data->email, + 'description' => wp_user_request_action_description( $request_data->action_name ), + 'manage_url' => $manage_url, + 'sitename' => get_option( 'blogname' ), + 'siteurl' => home_url(), + 'admin_email' => $admin_email, + ); + + /* translators: Do not translate SITENAME, USER_EMAIL, DESCRIPTION, MANAGE_URL, SITEURL; those are placeholders. */ + $email_text = __( + 'Howdy, + +A user data privacy request has been confirmed on ###SITENAME###: + +User: ###USER_EMAIL### +Request: ###DESCRIPTION### + +You can view and manage these data privacy requests here: + +###MANAGE_URL### + +Regards, +All at ###SITENAME### +###SITEURL###' + ); + + /** + * Filters the body of the user request confirmation email. + * + * The email is sent to an administrator when an user request is confirmed. + * The following strings have a special meaning and will get replaced dynamically: + * + * ###SITENAME### The name of the site. + * ###USER_EMAIL### The user email for the request. + * ###DESCRIPTION### Description of the action being performed so the user knows what the email is for. + * ###MANAGE_URL### The URL to manage requests. + * ###SITEURL### The URL to the site. + * + * @since 4.9.6 + * + * @param string $email_text Text in the email. + * @param array $email_data { + * Data relating to the account action email. + * + * @type WP_User_Request $request User request object. + * @type string $user_email The email address confirming a request + * @type string $description Description of the action being performed so the user knows what the email is for. + * @type string $manage_url The link to click manage privacy requests of this type. + * @type string $sitename The site name sending the mail. + * @type string $siteurl The site URL sending the mail. + * } + */ + $content = apply_filters( 'user_confirmed_action_email_content', $email_text, $email_data ); + + $content = str_replace( '###SITENAME###', wp_specialchars_decode( $email_data['sitename'], ENT_QUOTES ), $content ); + $content = str_replace( '###USER_EMAIL###', $email_data['user_email'], $content ); + $content = str_replace( '###DESCRIPTION###', $email_data['description'], $content ); + $content = str_replace( '###MANAGE_URL###', esc_url_raw( $email_data['manage_url'] ), $content ); + $content = str_replace( '###SITEURL###', esc_url_raw( $email_data['siteurl'] ), $content ); + + $email_sent = wp_mail( $email_data['admin_email'], $subject, $content ); + + if ( $email_sent ) { + update_post_meta( $request_id, '_wp_admin_notified', true ); + } +} + +/** + * Notify the user when their erasure request is fulfilled. + * + * Without this, the user would never know if their data was actually erased. + * + * @since 4.9.6 + * + * @param int $request_id The privacy request post ID associated with this request. + */ +function _wp_privacy_send_erasure_fulfillment_notification( $request_id ) { + $request_data = wp_get_user_request_data( $request_id ); + + if ( ! is_a( $request_data, 'WP_User_Request' ) || 'request-completed' !== $request_data->status ) { + return; + } + + $already_notified = (bool) get_post_meta( $request_id, '_wp_user_notified', true ); + + if ( $already_notified ) { + return; + } + + $subject = sprintf( + /* translators: %s Site name. */ + __( '[%s] Erasure Request Fulfilled' ), + wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES ) + ); + + /** + * Filters the recipient of the data erasure fulfillment notification. + * + * @since 4.9.6 + * + * @param string $user_email The email address of the notification recipient. + * @param WP_User_Request $request_data The request that is initiating the notification. + */ + $user_email = apply_filters( 'user_erasure_fulfillment_email_to', $request_data->email, $request_data ); + + $email_data = array( + 'request' => $request_data, + 'message_recipient' => $user_email, + 'privacy_policy_url' => get_privacy_policy_url(), + 'sitename' => get_option( 'blogname' ), + 'siteurl' => home_url(), + ); + + if ( empty( $email_data['privacy_policy_url'] ) ) { + /* translators: Do not translate SITENAME, SITEURL; those are placeholders. */ + $email_text = __( + 'Howdy, + +Your request to erase your personal data on ###SITENAME### has been completed. + +If you have any follow-up questions or concerns, please contact the site administrator. + +Regards, +All at ###SITENAME### +###SITEURL###' + ); + } else { + /* translators: Do not translate SITENAME, SITEURL, PRIVACY_POLICY_URL; those are placeholders. */ + $email_text = __( + 'Howdy, + +Your request to erase your personal data on ###SITENAME### has been completed. + +If you have any follow-up questions or concerns, please contact the site administrator. + +For more information, you can also read our privacy policy: ###PRIVACY_POLICY_URL### + +Regards, +All at ###SITENAME### +###SITEURL###' + ); + } + + /** + * Filters the body of the data erasure fulfillment notification. + * + * The email is sent to a user when a their data erasure request is fulfilled + * by an administrator. + * + * The following strings have a special meaning and will get replaced dynamically: + * + * ###SITENAME### The name of the site. + * ###PRIVACY_POLICY_URL### Privacy policy page URL. + * ###SITEURL### The URL to the site. + * + * @since 4.9.6 + * + * @param string $email_text Text in the email. + * @param array $email_data { + * Data relating to the account action email. + * + * @type WP_User_Request $request User request object. + * @type string $message_recipient The address that the email will be sent to. Defaults + * to the value of `$request->email`, but can be changed + * by the `user_erasure_fulfillment_email_to` filter. + * @type string $privacy_policy_url Privacy policy URL. + * @type string $sitename The site name sending the mail. + * @type string $siteurl The site URL sending the mail. + * } + */ + $content = apply_filters( 'user_confirmed_action_email_content', $email_text, $email_data ); + + $content = str_replace( '###SITENAME###', wp_specialchars_decode( $email_data['sitename'], ENT_QUOTES ), $content ); + $content = str_replace( '###PRIVACY_POLICY_URL###', $email_data['privacy_policy_url'], $content ); + $content = str_replace( '###SITEURL###', esc_url_raw( $email_data['siteurl'] ), $content ); + + $email_sent = wp_mail( $user_email, $subject, $content ); + + if ( $email_sent ) { + update_post_meta( $request_id, '_wp_user_notified', true ); + } +} + +/** + * Return request confirmation message HTML. + * + * @since 4.9.6 + * @access private + * + * @param int $request_id The request ID being confirmed. + * @return string $message The confirmation message. + */ +function _wp_privacy_account_request_confirmed_message( $request_id ) { + $request = wp_get_user_request_data( $request_id ); + + $message = '<p class="success">' . __( 'Action has been confirmed.' ) . '</p>'; + $message .= '<p>' . __( 'The site administrator has been notified and will fulfill your request as soon as possible.' ) . '</p>'; + + if ( $request && in_array( $request->action_name, _wp_privacy_action_request_types(), true ) ) { + if ( 'export_personal_data' === $request->action_name ) { + $message = '<p class="success">' . __( 'Thanks for confirming your export request.' ) . '</p>'; + $message .= '<p>' . __( 'The site administrator has been notified. You will receive a link to download your export via email when they fulfill your request.' ) . '</p>'; + } elseif ( 'remove_personal_data' === $request->action_name ) { + $message = '<p class="success">' . __( 'Thanks for confirming your erasure request.' ) . '</p>'; + $message .= '<p>' . __( 'The site administrator has been notified. You will receive an email confirmation when they erase your data.' ) . '</p>'; + } + } + + /** + * Filters the message displayed to a user when they confirm a data request. + * + * @since 4.9.6 + * + * @param string $message The message to the user. + * @param int $request_id The ID of the request being confirmed. + */ + $message = apply_filters( 'user_request_action_confirmed_message', $message, $request_id ); + + return $message; +} + +/** + * Create and log a user request to perform a specific action. + * + * Requests are stored inside a post type named `user_request` since they can apply to both + * users on the site, or guests without a user account. + * + * @since 4.9.6 + * + * @param string $email_address User email address. This can be the address of a registered or non-registered user. + * @param string $action_name Name of the action that is being confirmed. Required. + * @param array $request_data Misc data you want to send with the verification request and pass to the actions once the request is confirmed. + * @return int|WP_Error Returns the request ID if successful, or a WP_Error object on failure. + */ +function wp_create_user_request( $email_address = '', $action_name = '', $request_data = array() ) { + $email_address = sanitize_email( $email_address ); + $action_name = sanitize_key( $action_name ); + + if ( ! is_email( $email_address ) ) { + return new WP_Error( 'invalid_email', __( 'Invalid email address.' ) ); + } + + if ( ! $action_name ) { + return new WP_Error( 'invalid_action', __( 'Invalid action name.' ) ); + } + + $user = get_user_by( 'email', $email_address ); + $user_id = $user && ! is_wp_error( $user ) ? $user->ID : 0; + + // Check for duplicates. + $requests_query = new WP_Query( array( + 'post_type' => 'user_request', + 'post_name__in' => array( $action_name ), // Action name stored in post_name column. + 'title' => $email_address, // Email address stored in post_title column. + 'post_status' => 'any', + 'fields' => 'ids', + ) ); + + if ( $requests_query->found_posts ) { + return new WP_Error( 'duplicate_request', __( 'A request for this email address already exists.' ) ); + } + + $request_id = wp_insert_post( array( + 'post_author' => $user_id, + 'post_name' => $action_name, + 'post_title' => $email_address, + 'post_content' => wp_json_encode( $request_data ), + 'post_status' => 'request-pending', + 'post_type' => 'user_request', + 'post_date' => current_time( 'mysql', false ), + 'post_date_gmt' => current_time( 'mysql', true ), + ), true ); + + return $request_id; +} + +/** + * Get action description from the name and return a string. + * + * @since 4.9.6 + * + * @param string $action_name Action name of the request. + * @return string Human readable action name. + */ +function wp_user_request_action_description( $action_name ) { + switch ( $action_name ) { + case 'export_personal_data': + $description = __( 'Export Personal Data' ); + break; + case 'remove_personal_data': + $description = __( 'Erase Personal Data' ); + break; + default: + /* translators: %s: action name */ + $description = sprintf( __( 'Confirm the "%s" action' ), $action_name ); + break; + } + + /** + * Filters the user action description. + * + * @since 4.9.6 + * + * @param string $description The default description. + * @param string $action_name The name of the request. + */ + return apply_filters( 'user_request_action_description', $description, $action_name ); +} + +/** + * Send a confirmation request email to confirm an action. + * + * If the request is not already pending, it will be updated. + * + * @since 4.9.6 + * + * @param string $request_id ID of the request created via wp_create_user_request(). + * @return WP_Error|bool Will return true/false based on the success of sending the email, or a WP_Error object. + */ +function wp_send_user_request( $request_id ) { + $request_id = absint( $request_id ); + $request = wp_get_user_request_data( $request_id ); + + if ( ! $request ) { + return new WP_Error( 'user_request_error', __( 'Invalid request.' ) ); + } + + $email_data = array( + 'email' => $request->email, + 'description' => wp_user_request_action_description( $request->action_name ), + 'confirm_url' => add_query_arg( array( + 'action' => 'confirmaction', + 'request_id' => $request_id, + 'confirm_key' => wp_generate_user_request_key( $request_id ), + ), site_url( 'wp-login.php' ) ), + 'sitename' => is_multisite() ? get_site_option( 'site_name' ) : get_option( 'blogname' ), + 'siteurl' => network_home_url(), + ); + + /* translators: Do not translate DESCRIPTION, CONFIRM_URL, EMAIL, SITENAME, SITEURL: those are placeholders. */ + $email_text = __( + 'Howdy, + +A request has been made to perform the following action on your account: + + ###DESCRIPTION### + +To confirm this, please click on the following link: +###CONFIRM_URL### + +You can safely ignore and delete this email if you do not want to +take this action. + +This email has been sent to ###EMAIL###. + +Regards, +All at ###SITENAME### +###SITEURL###' + ); + + /** + * Filters the text of the email sent when an account action is attempted. + * + * The following strings have a special meaning and will get replaced dynamically: + * + * ###DESCRIPTION### Description of the action being performed so the user knows what the email is for. + * ###CONFIRM_URL### The link to click on to confirm the account action. + * ###EMAIL### The email we are sending to. + * ###SITENAME### The name of the site. + * ###SITEURL### The URL to the site. + * + * @since 4.9.6 + * + * @param string $email_text Text in the email. + * @param array $email_data { + * Data relating to the account action email. + * + * @type WP_User_Request $request User request object. + * @type string $email The email address this is being sent to. + * @type string $description Description of the action being performed so the user knows what the email is for. + * @type string $confirm_url The link to click on to confirm the account action. + * @type string $sitename The site name sending the mail. + * @type string $siteurl The site URL sending the mail. + * } + */ + $content = apply_filters( 'user_request_action_email_content', $email_text, $email_data ); + + $content = str_replace( '###DESCRIPTION###', $email_data['description'], $content ); + $content = str_replace( '###CONFIRM_URL###', esc_url_raw( $email_data['confirm_url'] ), $content ); + $content = str_replace( '###EMAIL###', $email_data['email'], $content ); + $content = str_replace( '###SITENAME###', wp_specialchars_decode( $email_data['sitename'], ENT_QUOTES ), $content ); + $content = str_replace( '###SITEURL###', esc_url_raw( $email_data['siteurl'] ), $content ); + + $blogname = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES ); + + /* translators: Privacy data request subject. 1: Site name, 2: Name of the action */ + $subject = sprintf( __( '[%1$s] Confirm Action: %2$s' ), $blogname, $email_data['description'] ); + + /** + * Filters the subject of the email sent when an account action is attempted. + * + * @since 4.9.6 + * + * @param string $subject The email subject. + * @param string $blogname The name of the site. + * @param array $email_data { + * Data relating to the account action email. + * + * @type WP_User_Request $request User request object. + * @type string $email The email address this is being sent to. + * @type string $description Description of the action being performed so the user knows what the email is for. + * @type string $confirm_url The link to click on to confirm the account action. + * @type string $sitename The site name sending the mail. + * @type string $siteurl The site URL sending the mail. + * } + */ + $subject = apply_filters( 'user_request_action_email_subject', $subject, $blogname, $email_data ); + + return wp_mail( $email_data['email'], $subject, $content ); +} + +/** + * Returns a confirmation key for a user action and stores the hashed version for future comparison. + * + * @since 4.9.6 + * + * @param int $request_id Request ID. + * @return string Confirmation key. + */ +function wp_generate_user_request_key( $request_id ) { + global $wp_hasher; + + // Generate something random for a confirmation key. + $key = wp_generate_password( 20, false ); + + // Return the key, hashed. + if ( empty( $wp_hasher ) ) { + require_once ABSPATH . WPINC . '/class-phpass.php'; + $wp_hasher = new PasswordHash( 8, true ); + } + + wp_update_post( array( + 'ID' => $request_id, + 'post_status' => 'request-pending', + 'post_password' => $wp_hasher->HashPassword( $key ), + 'post_modified' => current_time( 'mysql', false ), + 'post_modified_gmt' => current_time( 'mysql', true ), + ) ); + + return $key; +} + +/** + * Validate a user request by comparing the key with the request's key. + * + * @since 4.9.6 + * + * @param string $request_id ID of the request being confirmed. + * @param string $key Provided key to validate. + * @return bool|WP_Error WP_Error on failure, true on success. + */ +function wp_validate_user_request_key( $request_id, $key ) { + global $wp_hasher; + + $request_id = absint( $request_id ); + $request = wp_get_user_request_data( $request_id ); + + if ( ! $request ) { + return new WP_Error( 'user_request_error', __( 'Invalid request.' ) ); + } + + if ( ! in_array( $request->status, array( 'request-pending', 'request-failed' ), true ) ) { + return __( 'This link has expired.' ); + } + + if ( empty( $key ) ) { + return new WP_Error( 'invalid_key', __( 'Invalid key' ) ); + } + + if ( empty( $wp_hasher ) ) { + require_once ABSPATH . WPINC . '/class-phpass.php'; + $wp_hasher = new PasswordHash( 8, true ); + } + + $key_request_time = $request->modified_timestamp; + $saved_key = $request->confirm_key; + + if ( ! $saved_key ) { + return new WP_Error( 'invalid_key', __( 'Invalid key' ) ); + } + + if ( ! $key_request_time ) { + return new WP_Error( 'invalid_key', __( 'Invalid action' ) ); + } + + /** + * Filters the expiration time of confirm keys. + * + * @since 4.9.6 + * + * @param int $expiration The expiration time in seconds. + */ + $expiration_duration = (int) apply_filters( 'user_request_key_expiration', DAY_IN_SECONDS ); + $expiration_time = $key_request_time + $expiration_duration; + + if ( ! $wp_hasher->CheckPassword( $key, $saved_key ) ) { + return new WP_Error( 'invalid_key', __( 'Invalid key' ) ); + } + + if ( ! $expiration_time || time() > $expiration_time ) { + $return = new WP_Error( 'expired_key', __( 'The confirmation email has expired.' ) ); + } + + return true; +} + +/** + * Return data about a user request. + * + * @since 4.9.6 + * + * @param int $request_id Request ID to get data about. + * @return WP_User_Request|false + */ +function wp_get_user_request_data( $request_id ) { + $request_id = absint( $request_id ); + $post = get_post( $request_id ); + + if ( ! $post || 'user_request' !== $post->post_type ) { + return false; + } + + return new WP_User_Request( $post ); +} + +/** + * WP_User_Request class. + * + * Represents user request data loaded from a WP_Post object. + * + * @since 4.9.6 + */ +final class WP_User_Request { + /** + * Request ID. + * + * @var int + */ + public $ID = 0; + + /** + * User ID. + * + * @var int + */ + + public $user_id = 0; + + /** + * User email. + * + * @var int + */ + public $email = ''; + + /** + * Action name. + * + * @var string + */ + public $action_name = ''; + + /** + * Current status. + * + * @var string + */ + public $status = ''; + + /** + * Timestamp this request was created. + * + * @var int|null + */ + public $created_timestamp = null; + + /** + * Timestamp this request was last modified. + * + * @var int|null + */ + public $modified_timestamp = null; + + /** + * Timestamp this request was confirmed. + * + * @var int + */ + public $confirmed_timestamp = null; + + /** + * Timestamp this request was completed. + * + * @var int + */ + public $completed_timestamp = null; + + /** + * Misc data assigned to this request. + * + * @var array + */ + public $request_data = array(); + + /** + * Key used to confirm this request. + * + * @var string + */ + public $confirm_key = ''; + + /** + * Constructor. + * + * @since 4.9.6 + * + * @param WP_Post|object $post Post object. + */ + public function __construct( $post ) { + $this->ID = $post->ID; + $this->user_id = $post->post_author; + $this->email = $post->post_title; + $this->action_name = $post->post_name; + $this->status = $post->post_status; + $this->created_timestamp = strtotime( $post->post_date_gmt ); + $this->modified_timestamp = strtotime( $post->post_modified_gmt ); + $this->confirmed_timestamp = (int) get_post_meta( $post->ID, '_wp_user_request_confirmed_timestamp', true ); + $this->completed_timestamp = (int) get_post_meta( $post->ID, '_wp_user_request_completed_timestamp', true ); + $this->request_data = json_decode( $post->post_content, true ); + $this->confirm_key = $post->post_password; + } +} diff --git a/wp-includes/version.php b/wp-includes/version.php index 625ba2042..09aeef010 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -4,7 +4,7 @@ * * @global string $wp_version */ -$wp_version = '4.9.4'; +$wp_version = '4.9.6'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema. @@ -18,7 +18,7 @@ $wp_db_version = 38590; * * @global string $tinymce_version */ -$tinymce_version = '4607-20180123'; +$tinymce_version = '4711-20180425'; /** * Holds the required PHP version diff --git a/wp-login.php b/wp-login.php index b5d0e4a8d..95c046f8a 100644 --- a/wp-login.php +++ b/wp-login.php @@ -14,10 +14,10 @@ require( dirname(__FILE__) . '/wp-load.php' ); // Redirect to https login if forced to use SSL if ( force_ssl_admin() && ! is_ssl() ) { if ( 0 === strpos($_SERVER['REQUEST_URI'], 'http') ) { - wp_redirect( set_url_scheme( $_SERVER['REQUEST_URI'], 'https' ) ); + wp_safe_redirect( set_url_scheme( $_SERVER['REQUEST_URI'], 'https' ) ); exit(); } else { - wp_redirect( 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ); + wp_safe_redirect( 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ); exit(); } } @@ -252,6 +252,7 @@ function login_footer($input_id = '') { /* translators: %s: site title */ printf( _x( '← Back to %s', 'site' ), get_bloginfo( 'title', 'display' ) ); ?></a></p> + <?php the_privacy_policy_link( '<div class="privacy-policy-page-link">', '</div>' ); ?> <?php endif; ?> </div> @@ -413,7 +414,7 @@ if ( isset($_GET['key']) ) $action = 'resetpass'; // validate action so as to default to the login screen -if ( !in_array( $action, array( 'postpass', 'logout', 'lostpassword', 'retrievepassword', 'resetpass', 'rp', 'register', 'login' ), true ) && false === has_filter( 'login_form_' . $action ) ) +if ( !in_array( $action, array( 'postpass', 'logout', 'lostpassword', 'retrievepassword', 'resetpass', 'rp', 'register', 'login', 'confirmaction' ), true ) && false === has_filter( 'login_form_' . $action ) ) $action = 'login'; nocache_headers(); @@ -838,6 +839,43 @@ if ( $switched_locale ) { break; +case 'confirmaction' : + if ( ! isset( $_GET['request_id'] ) ) { + wp_die( __( 'Invalid request.' ) ); + } + + $request_id = (int) $_GET['request_id']; + + if ( isset( $_GET['confirm_key'] ) ) { + $key = sanitize_text_field( wp_unslash( $_GET['confirm_key'] ) ); + $result = wp_validate_user_request_key( $request_id, $key ); + } else { + $result = new WP_Error( 'invalid_key', __( 'Invalid key' ) ); + } + + if ( is_wp_error( $result ) ) { + wp_die( $result ); + } + + /** + * Fires an action hook when the account action has been confirmed by the user. + * + * Using this you can assume the user has agreed to perform the action by + * clicking on the link in the confirmation email. + * + * After firing this action hook the page will redirect to wp-login a callback + * redirects or exits first. + * + * @param int $request_id Request ID. + */ + do_action( 'user_request_action_confirmed', $request_id ); + + $message = _wp_privacy_account_request_confirmed_message( $request_id ); + + login_header( __( 'User action confirmed.' ), $message ); + login_footer(); + exit; + case 'login' : default: $secure_cookie = ''; diff --git a/wp-signup.php b/wp-signup.php index f0f14f539..764f4edd9 100644 --- a/wp-signup.php +++ b/wp-signup.php @@ -7,6 +7,8 @@ add_action( 'wp_head', 'wp_no_robots' ); require( dirname( __FILE__ ) . '/wp-blog-header.php' ); +nocache_headers(); + if ( is_array( get_site_option( 'illegal_names' )) && isset( $_GET[ 'new' ] ) && in_array( $_GET[ 'new' ], get_site_option( 'illegal_names' ) ) ) { wp_redirect( network_home_url() ); die(); -- GitLab