From 5bd1e169928a4a52fd2d32982cbee98a439a696f Mon Sep 17 00:00:00 2001 From: Dominik Schilling Date: Mon, 7 Apr 2014 16:32:15 +0000 Subject: [PATCH] Widget Customizer: Cleanup `wp.customize.Widgets.WidgetControl`. see #27690. Built from https://develop.svn.wordpress.org/trunk@27988 git-svn-id: http://core.svn.wordpress.org/trunk@27818 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/css/customize-widgets-rtl.css | 4 +- wp-admin/css/customize-widgets-rtl.min.css | 2 +- wp-admin/css/customize-widgets.css | 4 +- wp-admin/css/customize-widgets.min.css | 2 +- wp-admin/js/customize-widgets.js | 763 ++++++++++----------- wp-admin/js/customize-widgets.min.js | 2 +- 6 files changed, 378 insertions(+), 399 deletions(-) diff --git a/wp-admin/css/customize-widgets-rtl.css b/wp-admin/css/customize-widgets-rtl.css index aff5333025..ebce66e28e 100644 --- a/wp-admin/css/customize-widgets-rtl.css +++ b/wp-admin/css/customize-widgets-rtl.css @@ -95,8 +95,8 @@ cursor: move; } -.control-section.accordion-section.widget-customizer-highlighted > .accordion-section-title, -.customize-control-widget_form.widget-customizer-highlighted { +.control-section.accordion-section.highlighted > .accordion-section-title, +.customize-control-widget_form.highlighted { outline: none; -webkit-box-shadow: 0 0 2px rgba(30,140,190,0.8); box-shadow: 0 0 2px rgba(30,140,190,0.8); diff --git a/wp-admin/css/customize-widgets-rtl.min.css b/wp-admin/css/customize-widgets-rtl.min.css index d8b7dd1c7d..8bf3a491ff 100644 --- a/wp-admin/css/customize-widgets-rtl.min.css +++ b/wp-admin/css/customize-widgets-rtl.min.css @@ -1 +1 @@ -.wp-full-overlay-sidebar{overflow:visible}.control-section[id^=accordion-section-sidebar-widgets-],.customize-control-sidebar_widgets .hide-if-js,.customize-control-sidebar_widgets label{display:none}.customize-control-widget_form .widget-top{-webkit-transition:opacity .5s;transition:opacity .5s}.customize-control-widget_form:not(.widget-rendered) .widget-top{opacity:.5}.customize-control-widget_form .spinner,.customize-control-widget_form .widget-control-save{display:none}.customize-control-widget_form.previewer-loading .spinner{display:inline}.customize-control-widget_form.widget-form-disabled .widget-content{opacity:.7;pointer-events:none;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.customize-control-widget_form .widget{margin-bottom:0}.customize-control-widget_form.wide-widget-control .widget-inside{position:fixed;right:299px;top:25%;border:1px solid #e5e5e5;overflow:auto}.customize-control-widget_form.wide-widget-control .widget-inside>.form{padding:20px}.customize-control-widget_form.wide-widget-control .widget-top{-webkit-transition:background-color .4s;transition:background-color .4s}.customize-control-widget_form.wide-widget-control.expanded:not(.collapsing) .widget-top,.customize-control-widget_form.wide-widget-control.expanding .widget-top{background-color:#e3e3e3}.widget-inside{padding:1px 10px 10px;border-top:0;line-height:16px}.widget-top{cursor:move}.customize-control-widget_form.expanded a.widget-action:after{content:"\f142"}.customize-control-widget_form.wide-widget-control a.widget-action:after{content:"\f139"}.customize-control-widget_form.wide-widget-control.expanded a.widget-action:after{content:"\f141"}.widget-title-action{cursor:pointer}.customize-control-widget_form .widget .customize-control-title{cursor:move}.control-section.accordion-section.widget-customizer-highlighted>.accordion-section-title,.customize-control-widget_form.widget-customizer-highlighted{outline:0;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8);position:relative;z-index:1}#widget-customizer-control-templates{display:none}.reorder-toggle{float:left;padding:5px 10px;margin-left:10px;text-decoration:none;cursor:pointer;outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.reorder-toggle:focus{outline:1px dotted}.reorder-done,.reordering .reorder{display:none}.reordering .reorder-done{display:block;color:#a00}#customize-theme-controls .reordering .add-new-widget{opacity:.2;pointer-events:none;cursor:not-allowed}#customize-theme-controls .widget-reorder-nav{display:none;float:left;background-color:#fafafa}.widget-reorder-nav span{position:relative;overflow:hidden;float:right;display:block;width:33px;height:43px;color:#888;text-indent:-9999px;cursor:pointer;outline:0}.widget-reorder-nav span:before{display:inline-block;position:absolute;top:0;left:0;width:100%;height:100%;font:normal normal 20px/43px Genericons;text-align:center;text-indent:0}.widget-reorder-nav span:focus,.widget-reorder-nav span:hover{color:#444;background:#eee}.move-widget:before{content:'\f442'}.move-widget-down:before{content:'\f431'}.move-widget-up:before{content:'\f432'}#customize-theme-controls .first-widget .move-widget-up,#customize-theme-controls .last-widget .move-widget-down{color:#d5d5d5;cursor:default}#customize-theme-controls .move-widget-area{display:none;background:#fff;border:1px solid #dedede;border-top:0;cursor:auto}#customize-theme-controls .reordering .move-widget-area.active{display:block}#customize-theme-controls .move-widget-area .description{margin:0;padding:15px 20px;font-weight:400}#customize-theme-controls .widget-area-select{margin:0;padding:0;list-style:none}#customize-theme-controls .widget-area-select li{position:relative;margin:0;padding:13px 42px 15px 15px;color:#555;border-top:1px solid #eee;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#customize-theme-controls .widget-area-select li:before{display:none;content:'\f418';position:absolute;top:10px;right:10px;font-family:Genericons;font-size:24px;line-height:1}#customize-theme-controls .widget-area-select li:last-child{border-bottom:1px solid #eee}#customize-theme-controls .widget-area-select .selected{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.4);border-top:1px solid #207fa1;background:#2ea2cc}#customize-theme-controls .widget-area-select .selected:before{display:block}#customize-theme-controls .widget-area-select .selected:last-child{border-bottom:1px solid #207fa1}#customize-theme-controls .move-widget-actions{text-align:left;padding:12px}#customize-theme-controls .widget-area-select+li{border-top:1px solid #207fa1}#customize-theme-controls .reordering .widget-title-action{display:none}#customize-theme-controls .reordering .widget-reorder-nav{display:block}.wp-full-overlay-main{left:auto;width:100%}.add-new-widget{cursor:pointer;float:left;-webkit-transition:all .2s;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:0}.add-new-widget:before{content:"\f132";display:inline-block;position:relative;right:-2px;top:-1px;font:400 16px/1 dashicons;vertical-align:middle;-webkit-transition:all .2s;transition:all .2s;-webkit-font-smoothing:antialiased}body.adding-widget .add-new-widget,body.adding-widget .add-new-widget:hover{background:#eee;border-color:#999;color:#333;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}body.adding-widget .add-new-widget:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}#available-widgets .widget{position:static}#widgets-left #available-widgets .widget{float:none!important;width:auto!important}#available-widgets{position:absolute;overflow:auto;top:0;bottom:0;right:-301px;width:300px;margin:0;z-index:1;background:#fff;-webkit-transition:all .2s;transition:all .2s;border-left:1px solid #ddd}#available-widgets-filter{padding:8px 13px 7px 17px;border-bottom:1px solid #e4e4e4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#available-widgets-filter input{padding:5px 10px 2px;width:100%}#available-widgets .widget-tpl{position:relative;padding:20px 60px 20px 15px;border-bottom:1px solid #e4e4e4;cursor:pointer;display:none}#available-widgets .widget-tpl.selected,#available-widgets .widget-tpl:hover{background:#fafafa}#available-widgets .widget-top,#available-widgets .widget-top:hover{border:0;background:0 0;-webkit-box-shadow:none;box-shadow:none}#available-widgets .widget-title h4{padding:0 0 5px;font-size:14px}#available-widgets .widget .widget-description{padding:0;color:#777}#customize-preview{-webkit-transition:all .2s;transition:all .2s}body.adding-widget #available-widgets{right:0}body.adding-widget .wp-full-overlay-main{right:300px}body.adding-widget #customize-preview{opacity:.4}#available-widgets .widget-title{position:relative}#available-widgets .widget-title:before{content:"\f132";position:absolute;top:-3px;left:100%;margin-left:20px;width:20px;height:20px;color:#333;font:400 20px/1 dashicons,widgeticons;text-align:center;-webkit-border-radius:2px;border-radius:2px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased}#available-widgets [class*=easy] .widget-title:before{content:"\f328";top:-4px}#available-widgets [class*=like] .widget-title:before,#available-widgets [class*=super] .widget-title:before{content:"\f155";top:-4px}#available-widgets [class*=meta] .widget-title:before{content:"\f120"}#available-widgets [class*=archives] .widget-title:before{content:"\f480";top:-4px}#available-widgets [class*=categor] .widget-title:before{content:"\f318";top:-4px}#available-widgets [class*=chat] .widget-title:before,#available-widgets [class*=comment] .widget-title:before,#available-widgets [class*=testimonial] .widget-title:before{content:"\f101"}#available-widgets [class*=post] .widget-title:before{content:"\f109"}#available-widgets [class*=page] .widget-title:before{content:"\f105"}#available-widgets [class*=text] .widget-title:before{content:"\f478"}#available-widgets [class*=link] .widget-title:before{content:"\f103"}#available-widgets [class*=search] .widget-title:before{content:"\f179"}#available-widgets [class*=menu] .widget-title:before,#available-widgets [class*=nav] .widget-title:before{content:"\f333"}#available-widgets [class*=tag] .widget-title:before{content:"\f479"}#available-widgets [class*=rss] .widget-title:before{content:"\f303";top:-6px}#available-widgets [class*=calendar] .widget-title:before,#available-widgets [class*=event] .widget-title:before{content:"\f145";top:-4px}#available-widgets [class*=image] .widget-title:before,#available-widgets [class*=instagram] .widget-title:before,#available-widgets [class*=photo] .widget-title:before,#available-widgets [class*=slide] .widget-title:before{content:"\f128"}#available-widgets [class*=album] .widget-title:before,#available-widgets [class*=galler] .widget-title:before{content:"\f161"}#available-widgets [class*=tube] .widget-title:before,#available-widgets [class*=video] .widget-title:before{content:"\f126"}#available-widgets [class*=audio] .widget-title:before,#available-widgets [class*=music] .widget-title:before,#available-widgets [class*=radio] .widget-title:before{content:"\f127"}#available-widgets [class*=avatar] .widget-title:before,#available-widgets [class*=grofile] .widget-title:before,#available-widgets [class*=login] .widget-title:before,#available-widgets [class*=member] .widget-title:before,#available-widgets [class*=profile] .widget-title:before,#available-widgets [class*=subscriber] .widget-title:before,#available-widgets [class*=user] .widget-title:before{content:"\f110"}#available-widgets [class*=cart] .widget-title:before,#available-widgets [class*=commerce] .widget-title:before,#available-widgets [class*=shop] .widget-title:before{content:"\f174";top:-4px}#available-widgets [class*=firewall] .widget-title:before,#available-widgets [class*=secur] .widget-title:before{content:"\f332"}#available-widgets [class*=analytic] .widget-title:before,#available-widgets [class*=poll] .widget-title:before,#available-widgets [class*=stat] .widget-title:before{content:"\f185"}#available-widgets [class*=form] .widget-title:before{content:"\f175"}#available-widgets [class*=contact] .widget-title:before,#available-widgets [class*=mail] .widget-title:before,#available-widgets [class*=news] .widget-title:before,#available-widgets [class*=subscribe] .widget-title:before{content:"\f466"}#available-widgets [class*=share] .widget-title:before,#available-widgets [class*=socia] .widget-title:before{content:"\f237"}#available-widgets [class*=lang] .widget-title:before,#available-widgets [class*=translat] .widget-title:before{content:"\f326"}#available-widgets [class*=locat] .widget-title:before,#available-widgets [class*=map] .widget-title:before{content:"\f231"}#available-widgets [class*=download] .widget-title:before{content:"\f316"}#available-widgets [class*=weather] .widget-title:before{content:"\f176";top:-4px}#available-widgets [class*=facebook] .widget-title:before{content:"\f304"}#available-widgets [class*=tweet] .widget-title:before,#available-widgets [class*=twitter] .widget-title:before{content:"\f301"}@media screen and (max-height:700px) and (min-width:981px){.customize-control{margin-bottom:0}.widget-top{-webkit-box-shadow:none;box-shadow:none;margin-top:-1px}.widget-top:hover{position:relative;z-index:1}.last-widget{margin-bottom:15px}.widget-title h4{padding:13px 15px}.widget-top a.widget-action:after{padding-top:9px}.widget-reorder-nav span{height:39px}.widget-reorder-nav span:before{line-height:39px}#customize-theme-controls .widget-area-select li{padding:9px 42px 11px 15px}#customize-theme-controls .widget-area-select li:before{top:6px}} \ No newline at end of file +.wp-full-overlay-sidebar{overflow:visible}.control-section[id^=accordion-section-sidebar-widgets-],.customize-control-sidebar_widgets .hide-if-js,.customize-control-sidebar_widgets label{display:none}.customize-control-widget_form .widget-top{-webkit-transition:opacity .5s;transition:opacity .5s}.customize-control-widget_form:not(.widget-rendered) .widget-top{opacity:.5}.customize-control-widget_form .spinner,.customize-control-widget_form .widget-control-save{display:none}.customize-control-widget_form.previewer-loading .spinner{display:inline}.customize-control-widget_form.widget-form-disabled .widget-content{opacity:.7;pointer-events:none;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.customize-control-widget_form .widget{margin-bottom:0}.customize-control-widget_form.wide-widget-control .widget-inside{position:fixed;right:299px;top:25%;border:1px solid #e5e5e5;overflow:auto}.customize-control-widget_form.wide-widget-control .widget-inside>.form{padding:20px}.customize-control-widget_form.wide-widget-control .widget-top{-webkit-transition:background-color .4s;transition:background-color .4s}.customize-control-widget_form.wide-widget-control.expanded:not(.collapsing) .widget-top,.customize-control-widget_form.wide-widget-control.expanding .widget-top{background-color:#e3e3e3}.widget-inside{padding:1px 10px 10px;border-top:0;line-height:16px}.widget-top{cursor:move}.customize-control-widget_form.expanded a.widget-action:after{content:"\f142"}.customize-control-widget_form.wide-widget-control a.widget-action:after{content:"\f139"}.customize-control-widget_form.wide-widget-control.expanded a.widget-action:after{content:"\f141"}.widget-title-action{cursor:pointer}.customize-control-widget_form .widget .customize-control-title{cursor:move}.control-section.accordion-section.highlighted>.accordion-section-title,.customize-control-widget_form.highlighted{outline:0;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8);position:relative;z-index:1}#widget-customizer-control-templates{display:none}.reorder-toggle{float:left;padding:5px 10px;margin-left:10px;text-decoration:none;cursor:pointer;outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.reorder-toggle:focus{outline:1px dotted}.reorder-done,.reordering .reorder{display:none}.reordering .reorder-done{display:block;color:#a00}#customize-theme-controls .reordering .add-new-widget{opacity:.2;pointer-events:none;cursor:not-allowed}#customize-theme-controls .widget-reorder-nav{display:none;float:left;background-color:#fafafa}.widget-reorder-nav span{position:relative;overflow:hidden;float:right;display:block;width:33px;height:43px;color:#888;text-indent:-9999px;cursor:pointer;outline:0}.widget-reorder-nav span:before{display:inline-block;position:absolute;top:0;left:0;width:100%;height:100%;font:normal normal 20px/43px Genericons;text-align:center;text-indent:0}.widget-reorder-nav span:focus,.widget-reorder-nav span:hover{color:#444;background:#eee}.move-widget:before{content:'\f442'}.move-widget-down:before{content:'\f431'}.move-widget-up:before{content:'\f432'}#customize-theme-controls .first-widget .move-widget-up,#customize-theme-controls .last-widget .move-widget-down{color:#d5d5d5;cursor:default}#customize-theme-controls .move-widget-area{display:none;background:#fff;border:1px solid #dedede;border-top:0;cursor:auto}#customize-theme-controls .reordering .move-widget-area.active{display:block}#customize-theme-controls .move-widget-area .description{margin:0;padding:15px 20px;font-weight:400}#customize-theme-controls .widget-area-select{margin:0;padding:0;list-style:none}#customize-theme-controls .widget-area-select li{position:relative;margin:0;padding:13px 42px 15px 15px;color:#555;border-top:1px solid #eee;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#customize-theme-controls .widget-area-select li:before{display:none;content:'\f418';position:absolute;top:10px;right:10px;font-family:Genericons;font-size:24px;line-height:1}#customize-theme-controls .widget-area-select li:last-child{border-bottom:1px solid #eee}#customize-theme-controls .widget-area-select .selected{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.4);border-top:1px solid #207fa1;background:#2ea2cc}#customize-theme-controls .widget-area-select .selected:before{display:block}#customize-theme-controls .widget-area-select .selected:last-child{border-bottom:1px solid #207fa1}#customize-theme-controls .move-widget-actions{text-align:left;padding:12px}#customize-theme-controls .widget-area-select+li{border-top:1px solid #207fa1}#customize-theme-controls .reordering .widget-title-action{display:none}#customize-theme-controls .reordering .widget-reorder-nav{display:block}.wp-full-overlay-main{left:auto;width:100%}.add-new-widget{cursor:pointer;float:left;-webkit-transition:all .2s;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:0}.add-new-widget:before{content:"\f132";display:inline-block;position:relative;right:-2px;top:-1px;font:400 16px/1 dashicons;vertical-align:middle;-webkit-transition:all .2s;transition:all .2s;-webkit-font-smoothing:antialiased}body.adding-widget .add-new-widget,body.adding-widget .add-new-widget:hover{background:#eee;border-color:#999;color:#333;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}body.adding-widget .add-new-widget:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}#available-widgets .widget{position:static}#widgets-left #available-widgets .widget{float:none!important;width:auto!important}#available-widgets{position:absolute;overflow:auto;top:0;bottom:0;right:-301px;width:300px;margin:0;z-index:1;background:#fff;-webkit-transition:all .2s;transition:all .2s;border-left:1px solid #ddd}#available-widgets-filter{padding:8px 13px 7px 17px;border-bottom:1px solid #e4e4e4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#available-widgets-filter input{padding:5px 10px 2px;width:100%}#available-widgets .widget-tpl{position:relative;padding:20px 60px 20px 15px;border-bottom:1px solid #e4e4e4;cursor:pointer;display:none}#available-widgets .widget-tpl.selected,#available-widgets .widget-tpl:hover{background:#fafafa}#available-widgets .widget-top,#available-widgets .widget-top:hover{border:0;background:0 0;-webkit-box-shadow:none;box-shadow:none}#available-widgets .widget-title h4{padding:0 0 5px;font-size:14px}#available-widgets .widget .widget-description{padding:0;color:#777}#customize-preview{-webkit-transition:all .2s;transition:all .2s}body.adding-widget #available-widgets{right:0}body.adding-widget .wp-full-overlay-main{right:300px}body.adding-widget #customize-preview{opacity:.4}#available-widgets .widget-title{position:relative}#available-widgets .widget-title:before{content:"\f132";position:absolute;top:-3px;left:100%;margin-left:20px;width:20px;height:20px;color:#333;font:400 20px/1 dashicons,widgeticons;text-align:center;-webkit-border-radius:2px;border-radius:2px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased}#available-widgets [class*=easy] .widget-title:before{content:"\f328";top:-4px}#available-widgets [class*=like] .widget-title:before,#available-widgets [class*=super] .widget-title:before{content:"\f155";top:-4px}#available-widgets [class*=meta] .widget-title:before{content:"\f120"}#available-widgets [class*=archives] .widget-title:before{content:"\f480";top:-4px}#available-widgets [class*=categor] .widget-title:before{content:"\f318";top:-4px}#available-widgets [class*=chat] .widget-title:before,#available-widgets [class*=comment] .widget-title:before,#available-widgets [class*=testimonial] .widget-title:before{content:"\f101"}#available-widgets [class*=post] .widget-title:before{content:"\f109"}#available-widgets [class*=page] .widget-title:before{content:"\f105"}#available-widgets [class*=text] .widget-title:before{content:"\f478"}#available-widgets [class*=link] .widget-title:before{content:"\f103"}#available-widgets [class*=search] .widget-title:before{content:"\f179"}#available-widgets [class*=menu] .widget-title:before,#available-widgets [class*=nav] .widget-title:before{content:"\f333"}#available-widgets [class*=tag] .widget-title:before{content:"\f479"}#available-widgets [class*=rss] .widget-title:before{content:"\f303";top:-6px}#available-widgets [class*=calendar] .widget-title:before,#available-widgets [class*=event] .widget-title:before{content:"\f145";top:-4px}#available-widgets [class*=image] .widget-title:before,#available-widgets [class*=instagram] .widget-title:before,#available-widgets [class*=photo] .widget-title:before,#available-widgets [class*=slide] .widget-title:before{content:"\f128"}#available-widgets [class*=album] .widget-title:before,#available-widgets [class*=galler] .widget-title:before{content:"\f161"}#available-widgets [class*=tube] .widget-title:before,#available-widgets [class*=video] .widget-title:before{content:"\f126"}#available-widgets [class*=audio] .widget-title:before,#available-widgets [class*=music] .widget-title:before,#available-widgets [class*=radio] .widget-title:before{content:"\f127"}#available-widgets [class*=avatar] .widget-title:before,#available-widgets [class*=grofile] .widget-title:before,#available-widgets [class*=login] .widget-title:before,#available-widgets [class*=member] .widget-title:before,#available-widgets [class*=profile] .widget-title:before,#available-widgets [class*=subscriber] .widget-title:before,#available-widgets [class*=user] .widget-title:before{content:"\f110"}#available-widgets [class*=cart] .widget-title:before,#available-widgets [class*=commerce] .widget-title:before,#available-widgets [class*=shop] .widget-title:before{content:"\f174";top:-4px}#available-widgets [class*=firewall] .widget-title:before,#available-widgets [class*=secur] .widget-title:before{content:"\f332"}#available-widgets [class*=analytic] .widget-title:before,#available-widgets [class*=poll] .widget-title:before,#available-widgets [class*=stat] .widget-title:before{content:"\f185"}#available-widgets [class*=form] .widget-title:before{content:"\f175"}#available-widgets [class*=contact] .widget-title:before,#available-widgets [class*=mail] .widget-title:before,#available-widgets [class*=news] .widget-title:before,#available-widgets [class*=subscribe] .widget-title:before{content:"\f466"}#available-widgets [class*=share] .widget-title:before,#available-widgets [class*=socia] .widget-title:before{content:"\f237"}#available-widgets [class*=lang] .widget-title:before,#available-widgets [class*=translat] .widget-title:before{content:"\f326"}#available-widgets [class*=locat] .widget-title:before,#available-widgets [class*=map] .widget-title:before{content:"\f231"}#available-widgets [class*=download] .widget-title:before{content:"\f316"}#available-widgets [class*=weather] .widget-title:before{content:"\f176";top:-4px}#available-widgets [class*=facebook] .widget-title:before{content:"\f304"}#available-widgets [class*=tweet] .widget-title:before,#available-widgets [class*=twitter] .widget-title:before{content:"\f301"}@media screen and (max-height:700px) and (min-width:981px){.customize-control{margin-bottom:0}.widget-top{-webkit-box-shadow:none;box-shadow:none;margin-top:-1px}.widget-top:hover{position:relative;z-index:1}.last-widget{margin-bottom:15px}.widget-title h4{padding:13px 15px}.widget-top a.widget-action:after{padding-top:9px}.widget-reorder-nav span{height:39px}.widget-reorder-nav span:before{line-height:39px}#customize-theme-controls .widget-area-select li{padding:9px 42px 11px 15px}#customize-theme-controls .widget-area-select li:before{top:6px}} \ No newline at end of file diff --git a/wp-admin/css/customize-widgets.css b/wp-admin/css/customize-widgets.css index b13c673ec4..849c8a7331 100644 --- a/wp-admin/css/customize-widgets.css +++ b/wp-admin/css/customize-widgets.css @@ -95,8 +95,8 @@ cursor: move; } -.control-section.accordion-section.widget-customizer-highlighted > .accordion-section-title, -.customize-control-widget_form.widget-customizer-highlighted { +.control-section.accordion-section.highlighted > .accordion-section-title, +.customize-control-widget_form.highlighted { outline: none; -webkit-box-shadow: 0 0 2px rgba(30,140,190,0.8); box-shadow: 0 0 2px rgba(30,140,190,0.8); diff --git a/wp-admin/css/customize-widgets.min.css b/wp-admin/css/customize-widgets.min.css index de2af59efe..3e8778e02a 100644 --- a/wp-admin/css/customize-widgets.min.css +++ b/wp-admin/css/customize-widgets.min.css @@ -1 +1 @@ -.wp-full-overlay-sidebar{overflow:visible}.control-section[id^=accordion-section-sidebar-widgets-],.customize-control-sidebar_widgets .hide-if-js,.customize-control-sidebar_widgets label{display:none}.customize-control-widget_form .widget-top{-webkit-transition:opacity .5s;transition:opacity .5s}.customize-control-widget_form:not(.widget-rendered) .widget-top{opacity:.5}.customize-control-widget_form .spinner,.customize-control-widget_form .widget-control-save{display:none}.customize-control-widget_form.previewer-loading .spinner{display:inline}.customize-control-widget_form.widget-form-disabled .widget-content{opacity:.7;pointer-events:none;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.customize-control-widget_form .widget{margin-bottom:0}.customize-control-widget_form.wide-widget-control .widget-inside{position:fixed;left:299px;top:25%;border:1px solid #e5e5e5;overflow:auto}.customize-control-widget_form.wide-widget-control .widget-inside>.form{padding:20px}.customize-control-widget_form.wide-widget-control .widget-top{-webkit-transition:background-color .4s;transition:background-color .4s}.customize-control-widget_form.wide-widget-control.expanded:not(.collapsing) .widget-top,.customize-control-widget_form.wide-widget-control.expanding .widget-top{background-color:#e3e3e3}.widget-inside{padding:1px 10px 10px;border-top:0;line-height:16px}.widget-top{cursor:move}.customize-control-widget_form.expanded a.widget-action:after{content:"\f142"}.customize-control-widget_form.wide-widget-control a.widget-action:after{content:"\f139"}.customize-control-widget_form.wide-widget-control.expanded a.widget-action:after{content:"\f141"}.widget-title-action{cursor:pointer}.customize-control-widget_form .widget .customize-control-title{cursor:move}.control-section.accordion-section.widget-customizer-highlighted>.accordion-section-title,.customize-control-widget_form.widget-customizer-highlighted{outline:0;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8);position:relative;z-index:1}#widget-customizer-control-templates{display:none}.reorder-toggle{float:right;padding:5px 10px;margin-right:10px;text-decoration:none;cursor:pointer;outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.reorder-toggle:focus{outline:1px dotted}.reorder-done,.reordering .reorder{display:none}.reordering .reorder-done{display:block;color:#a00}#customize-theme-controls .reordering .add-new-widget{opacity:.2;pointer-events:none;cursor:not-allowed}#customize-theme-controls .widget-reorder-nav{display:none;float:right;background-color:#fafafa}.widget-reorder-nav span{position:relative;overflow:hidden;float:left;display:block;width:33px;height:43px;color:#888;text-indent:-9999px;cursor:pointer;outline:0}.widget-reorder-nav span:before{display:inline-block;position:absolute;top:0;right:0;width:100%;height:100%;font:normal normal 20px/43px Genericons;text-align:center;text-indent:0}.widget-reorder-nav span:focus,.widget-reorder-nav span:hover{color:#444;background:#eee}.move-widget:before{content:'\f442'}.move-widget-down:before{content:'\f431'}.move-widget-up:before{content:'\f432'}#customize-theme-controls .first-widget .move-widget-up,#customize-theme-controls .last-widget .move-widget-down{color:#d5d5d5;cursor:default}#customize-theme-controls .move-widget-area{display:none;background:#fff;border:1px solid #dedede;border-top:0;cursor:auto}#customize-theme-controls .reordering .move-widget-area.active{display:block}#customize-theme-controls .move-widget-area .description{margin:0;padding:15px 20px;font-weight:400}#customize-theme-controls .widget-area-select{margin:0;padding:0;list-style:none}#customize-theme-controls .widget-area-select li{position:relative;margin:0;padding:13px 15px 15px 42px;color:#555;border-top:1px solid #eee;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#customize-theme-controls .widget-area-select li:before{display:none;content:'\f418';position:absolute;top:10px;left:10px;font-family:Genericons;font-size:24px;line-height:1}#customize-theme-controls .widget-area-select li:last-child{border-bottom:1px solid #eee}#customize-theme-controls .widget-area-select .selected{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.4);border-top:1px solid #207fa1;background:#2ea2cc}#customize-theme-controls .widget-area-select .selected:before{display:block}#customize-theme-controls .widget-area-select .selected:last-child{border-bottom:1px solid #207fa1}#customize-theme-controls .move-widget-actions{text-align:right;padding:12px}#customize-theme-controls .widget-area-select+li{border-top:1px solid #207fa1}#customize-theme-controls .reordering .widget-title-action{display:none}#customize-theme-controls .reordering .widget-reorder-nav{display:block}.wp-full-overlay-main{right:auto;width:100%}.add-new-widget{cursor:pointer;float:right;-webkit-transition:all .2s;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:0}.add-new-widget:before{content:"\f132";display:inline-block;position:relative;left:-2px;top:-1px;font:400 16px/1 dashicons;vertical-align:middle;-webkit-transition:all .2s;transition:all .2s;-webkit-font-smoothing:antialiased}body.adding-widget .add-new-widget,body.adding-widget .add-new-widget:hover{background:#eee;border-color:#999;color:#333;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}body.adding-widget .add-new-widget:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}#available-widgets .widget{position:static}#widgets-left #available-widgets .widget{float:none!important;width:auto!important}#available-widgets{position:absolute;overflow:auto;top:0;bottom:0;left:-301px;width:300px;margin:0;z-index:1;background:#fff;-webkit-transition:all .2s;transition:all .2s;border-right:1px solid #ddd}#available-widgets-filter{padding:8px 17px 7px 13px;border-bottom:1px solid #e4e4e4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#available-widgets-filter input{padding:5px 10px 2px;width:100%}#available-widgets .widget-tpl{position:relative;padding:20px 15px 20px 60px;border-bottom:1px solid #e4e4e4;cursor:pointer;display:none}#available-widgets .widget-tpl.selected,#available-widgets .widget-tpl:hover{background:#fafafa}#available-widgets .widget-top,#available-widgets .widget-top:hover{border:0;background:0 0;-webkit-box-shadow:none;box-shadow:none}#available-widgets .widget-title h4{padding:0 0 5px;font-size:14px}#available-widgets .widget .widget-description{padding:0;color:#777}#customize-preview{-webkit-transition:all .2s;transition:all .2s}body.adding-widget #available-widgets{left:0}body.adding-widget .wp-full-overlay-main{left:300px}body.adding-widget #customize-preview{opacity:.4}#available-widgets .widget-title{position:relative}#available-widgets .widget-title:before{content:"\f132";position:absolute;top:-3px;right:100%;margin-right:20px;width:20px;height:20px;color:#333;font:400 20px/1 dashicons,widgeticons;text-align:center;-webkit-border-radius:2px;border-radius:2px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased}#available-widgets [class*=easy] .widget-title:before{content:"\f328";top:-4px}#available-widgets [class*=like] .widget-title:before,#available-widgets [class*=super] .widget-title:before{content:"\f155";top:-4px}#available-widgets [class*=meta] .widget-title:before{content:"\f120"}#available-widgets [class*=archives] .widget-title:before{content:"\f480";top:-4px}#available-widgets [class*=categor] .widget-title:before{content:"\f318";top:-4px}#available-widgets [class*=chat] .widget-title:before,#available-widgets [class*=comment] .widget-title:before,#available-widgets [class*=testimonial] .widget-title:before{content:"\f101"}#available-widgets [class*=post] .widget-title:before{content:"\f109"}#available-widgets [class*=page] .widget-title:before{content:"\f105"}#available-widgets [class*=text] .widget-title:before{content:"\f478"}#available-widgets [class*=link] .widget-title:before{content:"\f103"}#available-widgets [class*=search] .widget-title:before{content:"\f179"}#available-widgets [class*=menu] .widget-title:before,#available-widgets [class*=nav] .widget-title:before{content:"\f333"}#available-widgets [class*=tag] .widget-title:before{content:"\f479"}#available-widgets [class*=rss] .widget-title:before{content:"\f303";top:-6px}#available-widgets [class*=calendar] .widget-title:before,#available-widgets [class*=event] .widget-title:before{content:"\f145";top:-4px}#available-widgets [class*=image] .widget-title:before,#available-widgets [class*=instagram] .widget-title:before,#available-widgets [class*=photo] .widget-title:before,#available-widgets [class*=slide] .widget-title:before{content:"\f128"}#available-widgets [class*=album] .widget-title:before,#available-widgets [class*=galler] .widget-title:before{content:"\f161"}#available-widgets [class*=tube] .widget-title:before,#available-widgets [class*=video] .widget-title:before{content:"\f126"}#available-widgets [class*=audio] .widget-title:before,#available-widgets [class*=music] .widget-title:before,#available-widgets [class*=radio] .widget-title:before{content:"\f127"}#available-widgets [class*=avatar] .widget-title:before,#available-widgets [class*=grofile] .widget-title:before,#available-widgets [class*=login] .widget-title:before,#available-widgets [class*=member] .widget-title:before,#available-widgets [class*=profile] .widget-title:before,#available-widgets [class*=subscriber] .widget-title:before,#available-widgets [class*=user] .widget-title:before{content:"\f110"}#available-widgets [class*=cart] .widget-title:before,#available-widgets [class*=commerce] .widget-title:before,#available-widgets [class*=shop] .widget-title:before{content:"\f174";top:-4px}#available-widgets [class*=firewall] .widget-title:before,#available-widgets [class*=secur] .widget-title:before{content:"\f332"}#available-widgets [class*=analytic] .widget-title:before,#available-widgets [class*=poll] .widget-title:before,#available-widgets [class*=stat] .widget-title:before{content:"\f185"}#available-widgets [class*=form] .widget-title:before{content:"\f175"}#available-widgets [class*=contact] .widget-title:before,#available-widgets [class*=mail] .widget-title:before,#available-widgets [class*=news] .widget-title:before,#available-widgets [class*=subscribe] .widget-title:before{content:"\f466"}#available-widgets [class*=share] .widget-title:before,#available-widgets [class*=socia] .widget-title:before{content:"\f237"}#available-widgets [class*=lang] .widget-title:before,#available-widgets [class*=translat] .widget-title:before{content:"\f326"}#available-widgets [class*=locat] .widget-title:before,#available-widgets [class*=map] .widget-title:before{content:"\f231"}#available-widgets [class*=download] .widget-title:before{content:"\f316"}#available-widgets [class*=weather] .widget-title:before{content:"\f176";top:-4px}#available-widgets [class*=facebook] .widget-title:before{content:"\f304"}#available-widgets [class*=tweet] .widget-title:before,#available-widgets [class*=twitter] .widget-title:before{content:"\f301"}@media screen and (max-height:700px) and (min-width:981px){.customize-control{margin-bottom:0}.widget-top{-webkit-box-shadow:none;box-shadow:none;margin-top:-1px}.widget-top:hover{position:relative;z-index:1}.last-widget{margin-bottom:15px}.widget-title h4{padding:13px 15px}.widget-top a.widget-action:after{padding-top:9px}.widget-reorder-nav span{height:39px}.widget-reorder-nav span:before{line-height:39px}#customize-theme-controls .widget-area-select li{padding:9px 15px 11px 42px}#customize-theme-controls .widget-area-select li:before{top:6px}} \ No newline at end of file +.wp-full-overlay-sidebar{overflow:visible}.control-section[id^=accordion-section-sidebar-widgets-],.customize-control-sidebar_widgets .hide-if-js,.customize-control-sidebar_widgets label{display:none}.customize-control-widget_form .widget-top{-webkit-transition:opacity .5s;transition:opacity .5s}.customize-control-widget_form:not(.widget-rendered) .widget-top{opacity:.5}.customize-control-widget_form .spinner,.customize-control-widget_form .widget-control-save{display:none}.customize-control-widget_form.previewer-loading .spinner{display:inline}.customize-control-widget_form.widget-form-disabled .widget-content{opacity:.7;pointer-events:none;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.customize-control-widget_form .widget{margin-bottom:0}.customize-control-widget_form.wide-widget-control .widget-inside{position:fixed;left:299px;top:25%;border:1px solid #e5e5e5;overflow:auto}.customize-control-widget_form.wide-widget-control .widget-inside>.form{padding:20px}.customize-control-widget_form.wide-widget-control .widget-top{-webkit-transition:background-color .4s;transition:background-color .4s}.customize-control-widget_form.wide-widget-control.expanded:not(.collapsing) .widget-top,.customize-control-widget_form.wide-widget-control.expanding .widget-top{background-color:#e3e3e3}.widget-inside{padding:1px 10px 10px;border-top:0;line-height:16px}.widget-top{cursor:move}.customize-control-widget_form.expanded a.widget-action:after{content:"\f142"}.customize-control-widget_form.wide-widget-control a.widget-action:after{content:"\f139"}.customize-control-widget_form.wide-widget-control.expanded a.widget-action:after{content:"\f141"}.widget-title-action{cursor:pointer}.customize-control-widget_form .widget .customize-control-title{cursor:move}.control-section.accordion-section.highlighted>.accordion-section-title,.customize-control-widget_form.highlighted{outline:0;-webkit-box-shadow:0 0 2px rgba(30,140,190,.8);box-shadow:0 0 2px rgba(30,140,190,.8);position:relative;z-index:1}#widget-customizer-control-templates{display:none}.reorder-toggle{float:right;padding:5px 10px;margin-right:10px;text-decoration:none;cursor:pointer;outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.reorder-toggle:focus{outline:1px dotted}.reorder-done,.reordering .reorder{display:none}.reordering .reorder-done{display:block;color:#a00}#customize-theme-controls .reordering .add-new-widget{opacity:.2;pointer-events:none;cursor:not-allowed}#customize-theme-controls .widget-reorder-nav{display:none;float:right;background-color:#fafafa}.widget-reorder-nav span{position:relative;overflow:hidden;float:left;display:block;width:33px;height:43px;color:#888;text-indent:-9999px;cursor:pointer;outline:0}.widget-reorder-nav span:before{display:inline-block;position:absolute;top:0;right:0;width:100%;height:100%;font:normal normal 20px/43px Genericons;text-align:center;text-indent:0}.widget-reorder-nav span:focus,.widget-reorder-nav span:hover{color:#444;background:#eee}.move-widget:before{content:'\f442'}.move-widget-down:before{content:'\f431'}.move-widget-up:before{content:'\f432'}#customize-theme-controls .first-widget .move-widget-up,#customize-theme-controls .last-widget .move-widget-down{color:#d5d5d5;cursor:default}#customize-theme-controls .move-widget-area{display:none;background:#fff;border:1px solid #dedede;border-top:0;cursor:auto}#customize-theme-controls .reordering .move-widget-area.active{display:block}#customize-theme-controls .move-widget-area .description{margin:0;padding:15px 20px;font-weight:400}#customize-theme-controls .widget-area-select{margin:0;padding:0;list-style:none}#customize-theme-controls .widget-area-select li{position:relative;margin:0;padding:13px 15px 15px 42px;color:#555;border-top:1px solid #eee;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}#customize-theme-controls .widget-area-select li:before{display:none;content:'\f418';position:absolute;top:10px;left:10px;font-family:Genericons;font-size:24px;line-height:1}#customize-theme-controls .widget-area-select li:last-child{border-bottom:1px solid #eee}#customize-theme-controls .widget-area-select .selected{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.4);border-top:1px solid #207fa1;background:#2ea2cc}#customize-theme-controls .widget-area-select .selected:before{display:block}#customize-theme-controls .widget-area-select .selected:last-child{border-bottom:1px solid #207fa1}#customize-theme-controls .move-widget-actions{text-align:right;padding:12px}#customize-theme-controls .widget-area-select+li{border-top:1px solid #207fa1}#customize-theme-controls .reordering .widget-title-action{display:none}#customize-theme-controls .reordering .widget-reorder-nav{display:block}.wp-full-overlay-main{right:auto;width:100%}.add-new-widget{cursor:pointer;float:right;-webkit-transition:all .2s;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;outline:0}.add-new-widget:before{content:"\f132";display:inline-block;position:relative;left:-2px;top:-1px;font:400 16px/1 dashicons;vertical-align:middle;-webkit-transition:all .2s;transition:all .2s;-webkit-font-smoothing:antialiased}body.adding-widget .add-new-widget,body.adding-widget .add-new-widget:hover{background:#eee;border-color:#999;color:#333;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,.5)}body.adding-widget .add-new-widget:before{-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}#available-widgets .widget{position:static}#widgets-left #available-widgets .widget{float:none!important;width:auto!important}#available-widgets{position:absolute;overflow:auto;top:0;bottom:0;left:-301px;width:300px;margin:0;z-index:1;background:#fff;-webkit-transition:all .2s;transition:all .2s;border-right:1px solid #ddd}#available-widgets-filter{padding:8px 17px 7px 13px;border-bottom:1px solid #e4e4e4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}#available-widgets-filter input{padding:5px 10px 2px;width:100%}#available-widgets .widget-tpl{position:relative;padding:20px 15px 20px 60px;border-bottom:1px solid #e4e4e4;cursor:pointer;display:none}#available-widgets .widget-tpl.selected,#available-widgets .widget-tpl:hover{background:#fafafa}#available-widgets .widget-top,#available-widgets .widget-top:hover{border:0;background:0 0;-webkit-box-shadow:none;box-shadow:none}#available-widgets .widget-title h4{padding:0 0 5px;font-size:14px}#available-widgets .widget .widget-description{padding:0;color:#777}#customize-preview{-webkit-transition:all .2s;transition:all .2s}body.adding-widget #available-widgets{left:0}body.adding-widget .wp-full-overlay-main{left:300px}body.adding-widget #customize-preview{opacity:.4}#available-widgets .widget-title{position:relative}#available-widgets .widget-title:before{content:"\f132";position:absolute;top:-3px;right:100%;margin-right:20px;width:20px;height:20px;color:#333;font:400 20px/1 dashicons,widgeticons;text-align:center;-webkit-border-radius:2px;border-radius:2px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-font-smoothing:antialiased}#available-widgets [class*=easy] .widget-title:before{content:"\f328";top:-4px}#available-widgets [class*=like] .widget-title:before,#available-widgets [class*=super] .widget-title:before{content:"\f155";top:-4px}#available-widgets [class*=meta] .widget-title:before{content:"\f120"}#available-widgets [class*=archives] .widget-title:before{content:"\f480";top:-4px}#available-widgets [class*=categor] .widget-title:before{content:"\f318";top:-4px}#available-widgets [class*=chat] .widget-title:before,#available-widgets [class*=comment] .widget-title:before,#available-widgets [class*=testimonial] .widget-title:before{content:"\f101"}#available-widgets [class*=post] .widget-title:before{content:"\f109"}#available-widgets [class*=page] .widget-title:before{content:"\f105"}#available-widgets [class*=text] .widget-title:before{content:"\f478"}#available-widgets [class*=link] .widget-title:before{content:"\f103"}#available-widgets [class*=search] .widget-title:before{content:"\f179"}#available-widgets [class*=menu] .widget-title:before,#available-widgets [class*=nav] .widget-title:before{content:"\f333"}#available-widgets [class*=tag] .widget-title:before{content:"\f479"}#available-widgets [class*=rss] .widget-title:before{content:"\f303";top:-6px}#available-widgets [class*=calendar] .widget-title:before,#available-widgets [class*=event] .widget-title:before{content:"\f145";top:-4px}#available-widgets [class*=image] .widget-title:before,#available-widgets [class*=instagram] .widget-title:before,#available-widgets [class*=photo] .widget-title:before,#available-widgets [class*=slide] .widget-title:before{content:"\f128"}#available-widgets [class*=album] .widget-title:before,#available-widgets [class*=galler] .widget-title:before{content:"\f161"}#available-widgets [class*=tube] .widget-title:before,#available-widgets [class*=video] .widget-title:before{content:"\f126"}#available-widgets [class*=audio] .widget-title:before,#available-widgets [class*=music] .widget-title:before,#available-widgets [class*=radio] .widget-title:before{content:"\f127"}#available-widgets [class*=avatar] .widget-title:before,#available-widgets [class*=grofile] .widget-title:before,#available-widgets [class*=login] .widget-title:before,#available-widgets [class*=member] .widget-title:before,#available-widgets [class*=profile] .widget-title:before,#available-widgets [class*=subscriber] .widget-title:before,#available-widgets [class*=user] .widget-title:before{content:"\f110"}#available-widgets [class*=cart] .widget-title:before,#available-widgets [class*=commerce] .widget-title:before,#available-widgets [class*=shop] .widget-title:before{content:"\f174";top:-4px}#available-widgets [class*=firewall] .widget-title:before,#available-widgets [class*=secur] .widget-title:before{content:"\f332"}#available-widgets [class*=analytic] .widget-title:before,#available-widgets [class*=poll] .widget-title:before,#available-widgets [class*=stat] .widget-title:before{content:"\f185"}#available-widgets [class*=form] .widget-title:before{content:"\f175"}#available-widgets [class*=contact] .widget-title:before,#available-widgets [class*=mail] .widget-title:before,#available-widgets [class*=news] .widget-title:before,#available-widgets [class*=subscribe] .widget-title:before{content:"\f466"}#available-widgets [class*=share] .widget-title:before,#available-widgets [class*=socia] .widget-title:before{content:"\f237"}#available-widgets [class*=lang] .widget-title:before,#available-widgets [class*=translat] .widget-title:before{content:"\f326"}#available-widgets [class*=locat] .widget-title:before,#available-widgets [class*=map] .widget-title:before{content:"\f231"}#available-widgets [class*=download] .widget-title:before{content:"\f316"}#available-widgets [class*=weather] .widget-title:before{content:"\f176";top:-4px}#available-widgets [class*=facebook] .widget-title:before{content:"\f304"}#available-widgets [class*=tweet] .widget-title:before,#available-widgets [class*=twitter] .widget-title:before{content:"\f301"}@media screen and (max-height:700px) and (min-width:981px){.customize-control{margin-bottom:0}.widget-top{-webkit-box-shadow:none;box-shadow:none;margin-top:-1px}.widget-top:hover{position:relative;z-index:1}.last-widget{margin-bottom:15px}.widget-title h4{padding:13px 15px}.widget-top a.widget-action:after{padding-top:9px}.widget-reorder-nav span{height:39px}.widget-reorder-nav span:before{line-height:39px}#customize-theme-controls .widget-area-select li{padding:9px 15px 11px 42px}#customize-theme-controls .widget-area-select li:before{top:6px}} \ No newline at end of file diff --git a/wp-admin/js/customize-widgets.js b/wp-admin/js/customize-widgets.js index e628a3ad29..e8f1e8c532 100644 --- a/wp-admin/js/customize-widgets.js +++ b/wp-admin/js/customize-widgets.js @@ -177,6 +177,7 @@ _.bindAll( this, 'close' ); this.listenTo( this.collection, 'update', this.updateList ); + this.listenTo( this.collection, 'change', this.updateList ); this.updateList(); @@ -410,40 +411,39 @@ * Set up the control */ ready: function() { - var control = this; - control._setupModel(); - control._setupWideWidget(); - control._setupControlToggle(); - control._setupWidgetTitle(); - control._setupReorderUI(); - control._setupHighlightEffects(); - control._setupUpdateUI(); - control._setupRemoveUI(); + this._setupModel(); + this._setupWideWidget(); + this._setupControlToggle(); + this._setupWidgetTitle(); + this._setupReorderUI(); + this._setupHighlightEffects(); + this._setupUpdateUI(); + this._setupRemoveUI(); }, /** * Handle changes to the setting */ _setupModel: function() { - var control = this, remember_saved_widget_id; + var self = this, rememberSavedWidgetId; api.Widgets.savedWidgetIds = api.Widgets.savedWidgetIds || []; // Remember saved widgets so we know which to trash (move to inactive widgets sidebar) - remember_saved_widget_id = function() { - api.Widgets.savedWidgetIds[control.params.widget_id] = true; + rememberSavedWidgetId = function() { + api.Widgets.savedWidgetIds[self.params.widget_id] = true; }; - api.bind( 'ready', remember_saved_widget_id ); - api.bind( 'saved', remember_saved_widget_id ); + api.bind( 'ready', rememberSavedWidgetId ); + api.bind( 'saved', rememberSavedWidgetId ); - control._update_count = 0; - control.is_widget_updating = false; - control.live_update_mode = true; + this._updateCount = 0; + this.isWidgetUpdating = false; + this.liveUpdateMode = true; // Update widget whenever model changes - control.setting.bind( function( to, from ) { - if ( ! _( from ).isEqual( to ) && ! control.is_widget_updating ) { - control.updateWidget( { instance: to } ); + this.setting.bind( function( to, from ) { + if ( ! _( from ).isEqual( to ) && ! self.isWidgetUpdating ) { + self.updateWidget( { instance: to } ); } } ); }, @@ -452,25 +452,21 @@ * Add special behaviors for wide widget controls */ _setupWideWidget: function() { - var control = this, - widget_inside, - widget_form, - customize_sidebar, - position_widget, - theme_controls_container; + var self = this, $widgetInside, $widgetForm, $customizeSidebar, + $themeControlsContainer, positionWidget; - if ( ! control.params.is_wide ) { + if ( ! this.params.is_wide ) { return; } - widget_inside = control.container.find( '.widget-inside' ); - widget_form = widget_inside.find( '> .form' ); - customize_sidebar = $( '.wp-full-overlay-sidebar-content:first' ); - control.container.addClass( 'wide-widget-control' ); + $widgetInside = this.container.find( '.widget-inside' ); + $widgetForm = $widgetInside.find( '> .form' ); + $customizeSidebar = $( '.wp-full-overlay-sidebar-content:first' ); + this.container.addClass( 'wide-widget-control' ); - control.container.find( '.widget-content:first' ).css( { - 'max-width': control.params.width, - 'min-height': control.params.height + this.container.find( '.widget-content:first' ).css( { + 'max-width': this.params.width, + 'min-height': this.params.height } ); /** @@ -482,41 +478,41 @@ * exceed the window height so that the contents of the widget control * will become scrollable (overflow:auto). */ - position_widget = function() { - var offset_top = control.container.offset().top, - window_height = $( window ).height(), - form_height = widget_form.outerHeight(), + positionWidget = function() { + var offsetTop = self.container.offset().top, + windowHeight = $( window ).height(), + formHeight = $widgetForm.outerHeight(), top; - widget_inside.css( 'max-height', window_height ); + $widgetInside.css( 'max-height', windowHeight ); top = Math.max( 0, // prevent top from going off screen Math.min( - Math.max( offset_top, 0 ), // distance widget in panel is from top of screen - window_height - form_height // flush up against bottom of screen + Math.max( offsetTop, 0 ), // distance widget in panel is from top of screen + windowHeight - formHeight // flush up against bottom of screen ) ); - widget_inside.css( 'top', top ); + $widgetInside.css( 'top', top ); }; - theme_controls_container = $( '#customize-theme-controls' ); - control.container.on( 'expand', function() { - position_widget(); - customize_sidebar.on( 'scroll', position_widget ); - $( window ).on( 'resize', position_widget ); - theme_controls_container.on( 'expanded collapsed', position_widget ); + $themeControlsContainer = $( '#customize-theme-controls' ); + this.container.on( 'expand', function() { + positionWidget(); + $customizeSidebar.on( 'scroll', positionWidget ); + $( window ).on( 'resize', positionWidget ); + $themeControlsContainer.on( 'expanded collapsed', positionWidget ); } ); - control.container.on( 'collapsed', function() { - customize_sidebar.off( 'scroll', position_widget ); - $( window ).off( 'resize', position_widget ); - theme_controls_container.off( 'expanded collapsed', position_widget ); + this.container.on( 'collapsed', function() { + $customizeSidebar.off( 'scroll', positionWidget ); + $( window ).off( 'resize', positionWidget ); + $themeControlsContainer.off( 'expanded collapsed', positionWidget ); } ); // Reposition whenever a sidebar's widgets are changed api.each( function( setting ) { if ( 0 === setting.id.indexOf( 'sidebars_widgets[' ) ) { setting.bind( function() { - if ( control.container.hasClass( 'expanded' ) ) { - position_widget(); + if ( self.container.hasClass( 'expanded' ) ) { + positionWidget(); } } ); } @@ -528,23 +524,22 @@ * the close button */ _setupControlToggle: function() { - var control = this, close_btn; + var self = this, $closeBtn; - control.container.find( '.widget-top' ).on( 'click', function( e ) { + this.container.find( '.widget-top' ).on( 'click', function( e ) { e.preventDefault(); - var sidebar_widgets_control = control.getSidebarWidgetsControl(); - if ( sidebar_widgets_control.is_reordering ) { + var sidebarWidgetsControl = self.getSidebarWidgetsControl(); + if ( sidebarWidgetsControl.is_reordering ) { return; } - control.toggleForm(); + self.toggleForm(); } ); - close_btn = control.container.find( '.widget-control-close' ); - // @todo Hitting Enter on this link does nothing; will be resolved in core with - close_btn.on( 'click', function( e ) { + $closeBtn = this.container.find( '.widget-control-close' ); + $closeBtn.on( 'click', function( e ) { e.preventDefault(); - control.collapseForm(); - control.container.find( '.widget-top .widget-action:first' ).focus(); // keyboard accessibility + self.collapseForm(); + self.container.find( '.widget-top .widget-action:first' ).focus(); // keyboard accessibility } ); }, @@ -552,104 +547,106 @@ * Update the title of the form if a title field is entered */ _setupWidgetTitle: function() { - var control = this, update_title; + var self = this, updateTitle; - update_title = function() { - var title = control.setting().title, - in_widget_title = control.container.find( '.in-widget-title' ); + updateTitle = function() { + var title = self.setting().title, + inWidgetTitle = self.container.find( '.in-widget-title' ); if ( title ) { - in_widget_title.text( ': ' + title ); + inWidgetTitle.text( ': ' + title ); } else { - in_widget_title.text( '' ); + inWidgetTitle.text( '' ); } }; - control.setting.bind( update_title ); - update_title(); + this.setting.bind( updateTitle ); + updateTitle(); }, /** * Set up the widget-reorder-nav */ _setupReorderUI: function() { - var control = this, - select_sidebar_item, - move_widget_area, - reorder_nav, - update_available_sidebars; + var self = this, selectSidebarItem, $moveWidgetArea, + $reorderNav, updateAvailableSidebars; /** * select the provided sidebar list item in the move widget area * * @param {jQuery} li */ - select_sidebar_item = function( li ) { + selectSidebarItem = function( li ) { li.siblings( '.selected' ).removeClass( 'selected' ); li.addClass( 'selected' ); - var is_self_sidebar = ( li.data( 'id' ) === control.params.sidebar_id ); - control.container.find( '.move-widget-btn' ).prop( 'disabled', is_self_sidebar ); + var isSelfSidebar = ( li.data( 'id' ) === self.params.sidebar_id ); + self.container.find( '.move-widget-btn' ).prop( 'disabled', isSelfSidebar ); }; /** * Add the widget reordering elements to the widget control */ - control.container.find( '.widget-title-action' ).after( $( api.Widgets.data.tpl.widgetReorderNav ) ); - move_widget_area = $( + this.container.find( '.widget-title-action' ).after( $( api.Widgets.data.tpl.widgetReorderNav ) ); + $moveWidgetArea = $( _.template( api.Widgets.data.tpl.moveWidgetArea, { sidebars: _( api.Widgets.registeredSidebars.toArray() ).pluck( 'attributes' ) } ) ); - control.container.find( '.widget-top' ).after( move_widget_area ); + this.container.find( '.widget-top' ).after( $moveWidgetArea ); /** * Update available sidebars when their rendered state changes */ - update_available_sidebars = function() { - var sidebar_items = move_widget_area.find( 'li' ), self_sidebar_item; - self_sidebar_item = sidebar_items.filter( function(){ - return $( this ).data( 'id' ) === control.params.sidebar_id; + updateAvailableSidebars = function() { + var $sidebarItems = $moveWidgetArea.find( 'li' ), selfSidebarItem; + + selfSidebarItem = $sidebarItems.filter( function(){ + return $( this ).data( 'id' ) === self.params.sidebar_id; } ); - sidebar_items.each( function() { + + $sidebarItems.each( function() { var li = $( this ), - sidebar_id, + sidebarId, sidebar_model; - sidebar_id = li.data( 'id' ); - sidebar_model = api.Widgets.registeredSidebars.get( sidebar_id ); + sidebarId = li.data( 'id' ); + sidebar_model = api.Widgets.registeredSidebars.get( sidebarId ); + li.toggle( sidebar_model.get( 'is_rendered' ) ); + if ( li.hasClass( 'selected' ) && ! sidebar_model.get( 'is_rendered' ) ) { - select_sidebar_item( self_sidebar_item ); + selectSidebarItem( selfSidebarItem ); } } ); }; - update_available_sidebars(); - api.Widgets.registeredSidebars.on( 'change:is_rendered', update_available_sidebars ); + + updateAvailableSidebars(); + api.Widgets.registeredSidebars.on( 'change:is_rendered', updateAvailableSidebars ); /** * Handle clicks for up/down/move on the reorder nav */ - reorder_nav = control.container.find( '.widget-reorder-nav' ); - reorder_nav.find( '.move-widget, .move-widget-down, .move-widget-up' ).on( 'click keypress', function( event ) { + $reorderNav = this.container.find( '.widget-reorder-nav' ); + $reorderNav.find( '.move-widget, .move-widget-down, .move-widget-up' ).on( 'click keypress', function( event ) { if ( event.type === 'keypress' && ( event.which !== 13 && event.which !== 32 ) ) { return; } $( this ).focus(); if ( $( this ).is( '.move-widget' ) ) { - control.toggleWidgetMoveArea(); + self.toggleWidgetMoveArea(); } else { - var is_move_down = $( this ).is( '.move-widget-down' ), - is_move_up = $( this ).is( '.move-widget-up' ), - i = control.getWidgetSidebarPosition(); + var isMoveDown = $( this ).is( '.move-widget-down' ), + isMoveUp = $( this ).is( '.move-widget-up' ), + i = self.getWidgetSidebarPosition(); - if ( ( is_move_up && i === 0 ) || ( is_move_down && i === control.getSidebarWidgetsControl().setting().length - 1 ) ) { + if ( ( isMoveUp && i === 0 ) || ( isMoveDown && i === self.getSidebarWidgetsControl().setting().length - 1 ) ) { return; } - if ( is_move_up ) { - control.moveUp(); + if ( isMoveUp ) { + self.moveUp(); } else { - control.moveDown(); + self.moveDown(); } $( this ).focus(); // re-focus after the container was moved @@ -659,41 +656,38 @@ /** * Handle selecting a sidebar to move to */ - control.container.find( '.widget-area-select' ).on( 'click keypress', 'li', function( e ) { + this.container.find( '.widget-area-select' ).on( 'click keypress', 'li', function( e ) { if ( event.type === 'keypress' && ( event.which !== 13 && event.which !== 32 ) ) { return; } e.preventDefault(); - select_sidebar_item( $( this ) ); + selectSidebarItem( $( this ) ); } ); /** * Move widget to another sidebar */ - control.container.find( '.move-widget-btn' ).click( function() { - control.getSidebarWidgetsControl().toggleReordering( false ); + this.container.find( '.move-widget-btn' ).click( function() { + self.getSidebarWidgetsControl().toggleReordering( false ); - var old_sidebar_id = control.params.sidebar_id, - new_sidebar_id = control.container.find( '.widget-area-select li.selected' ).data( 'id' ), - old_sidebar_widgets_setting, - new_sidebar_widgets_setting, - old_sidebar_widget_ids, - new_sidebar_widget_ids, - i; + var oldSidebarId = self.params.sidebar_id, + newSidebarId = self.container.find( '.widget-area-select li.selected' ).data( 'id' ), + oldSidebarWidgetsSetting, newSidebarWidgetsSetting, + oldSidebarWidgetIds, newSidebarWidgetIds, i; - old_sidebar_widgets_setting = api( 'sidebars_widgets[' + old_sidebar_id + ']' ); - new_sidebar_widgets_setting = api( 'sidebars_widgets[' + new_sidebar_id + ']' ); - old_sidebar_widget_ids = Array.prototype.slice.call( old_sidebar_widgets_setting() ); - new_sidebar_widget_ids = Array.prototype.slice.call( new_sidebar_widgets_setting() ); + oldSidebarWidgetsSetting = api( 'sidebars_widgets[' + oldSidebarId + ']' ); + newSidebarWidgetsSetting = api( 'sidebars_widgets[' + newSidebarId + ']' ); + oldSidebarWidgetIds = Array.prototype.slice.call( oldSidebarWidgetsSetting() ); + newSidebarWidgetIds = Array.prototype.slice.call( newSidebarWidgetsSetting() ); - i = control.getWidgetSidebarPosition(); - old_sidebar_widget_ids.splice( i, 1 ); - new_sidebar_widget_ids.push( control.params.widget_id ); + i = self.getWidgetSidebarPosition(); + oldSidebarWidgetIds.splice( i, 1 ); + newSidebarWidgetIds.push( self.params.widget_id ); - old_sidebar_widgets_setting( old_sidebar_widget_ids ); - new_sidebar_widgets_setting( new_sidebar_widget_ids ); + oldSidebarWidgetsSetting( oldSidebarWidgetIds ); + newSidebarWidgetsSetting( newSidebarWidgetIds ); - control.focus(); + self.focus(); } ); }, @@ -701,21 +695,16 @@ * Highlight widgets in preview when interacted with in the customizer */ _setupHighlightEffects: function() { - var control = this; + var self = this; // Highlight whenever hovering or clicking over the form - control.container.on( 'mouseenter click', function() { - control.setting.previewer.send( 'highlight-widget', control.params.widget_id ); + this.container.on( 'mouseenter click', function() { + self.setting.previewer.send( 'highlight-widget', self.params.widget_id ); } ); // Highlight when the setting is updated - control.setting.bind( function() { - control.setting.previewer.send( 'highlight-widget', control.params.widget_id ); - } ); - - // Highlight when the widget form is expanded - control.container.on( 'expand', function() { - control.scrollPreviewWidgetIntoView(); + this.setting.bind( function() { + self.setting.previewer.send( 'highlight-widget', self.params.widget_id ); } ); }, @@ -723,71 +712,67 @@ * Set up event handlers for widget updating */ _setupUpdateUI: function() { - var control = this, - widget_root, - widget_content, - save_btn, - update_widget_debounced, - form_update_event_handler; + var self = this, $widgetRoot, $widgetContent, + $saveBtn, updateWidgetDebounced, formSyncHandler; - widget_root = control.container.find( '.widget:first' ); - widget_content = widget_root.find( '.widget-content:first' ); + $widgetRoot = this.container.find( '.widget:first' ); + $widgetContent = $widgetRoot.find( '.widget-content:first' ); // Configure update button - save_btn = control.container.find( '.widget-control-save' ); - save_btn.val( l10n.saveBtnLabel ); - save_btn.attr( 'title', l10n.saveBtnTooltip ); - save_btn.removeClass( 'button-primary' ).addClass( 'button-secondary' ); - save_btn.on( 'click', function( e ) { + $saveBtn = this.container.find( '.widget-control-save' ); + $saveBtn.val( l10n.saveBtnLabel ); + $saveBtn.attr( 'title', l10n.saveBtnTooltip ); + $saveBtn.removeClass( 'button-primary' ).addClass( 'button-secondary' ); + $saveBtn.on( 'click', function( e ) { e.preventDefault(); - control.updateWidget( { disable_form: true } ); + self.updateWidget( { disable_form: true } ); } ); - update_widget_debounced = _.debounce( function() { - // @todo For compatibility with other plugins, should we trigger a click event? What about form submit event? - control.updateWidget(); + updateWidgetDebounced = _.debounce( function() { + self.updateWidget(); }, 250 ); // Trigger widget form update when hitting Enter within an input - control.container.find( '.widget-content' ).on( 'keydown', 'input', function( e ) { + this.container.find( '.widget-content' ).on( 'keydown', 'input', function( e ) { if ( 13 === e.which ) { // Enter e.preventDefault(); - control.updateWidget( { ignore_active_element: true } ); + self.updateWidget( { ignore_active_element: true } ); } } ); // Handle widgets that support live previews - widget_content.on( 'change input propertychange', ':input', function( e ) { - if ( control.live_update_mode ) { + $widgetContent.on( 'change input propertychange', ':input', function( e ) { + if ( self.liveUpdateMode ) { if ( e.type === 'change' ) { - control.updateWidget(); + self.updateWidget(); } else if ( this.checkValidity && this.checkValidity() ) { - update_widget_debounced(); + updateWidgetDebounced(); } } } ); // Remove loading indicators when the setting is saved and the preview updates - control.setting.previewer.channel.bind( 'synced', function() { - control.container.removeClass( 'previewer-loading' ); + this.setting.previewer.channel.bind( 'synced', function() { + self.container.removeClass( 'previewer-loading' ); } ); - api.Widgets.Previewer.bind( 'widget-updated', function( updated_widget_id ) { - if ( updated_widget_id === control.params.widget_id ) { - control.container.removeClass( 'previewer-loading' ); + + api.Widgets.Previewer.bind( 'widget-updated', function( updatedWidgetId ) { + if ( updatedWidgetId === self.params.widget_id ) { + self.container.removeClass( 'previewer-loading' ); } } ); - // Update widget control to indicate whether it is currently rendered (cf. Widget Visibility) + // Update widget control to indicate whether it is currently rendered api.Widgets.Previewer.bind( 'rendered-widgets', function( rendered_widgets ) { - var is_rendered = !! rendered_widgets[control.params.widget_id]; - control.container.toggleClass( 'widget-rendered', is_rendered ); + var is_rendered = !! rendered_widgets[self.params.widget_id]; + self.container.toggleClass( 'widget-rendered', is_rendered ); } ); - form_update_event_handler = api.Widgets.formSyncHandlers[ control.params.widget_id_base ]; - if ( form_update_event_handler ) { - $( document ).on( 'widget-synced', function( e, widget_el ) { - if ( widget_root.is( widget_el ) ) { - form_update_event_handler.apply( document, arguments ); + formSyncHandler = api.Widgets.formSyncHandlers[ this.params.widget_id_base ]; + if ( formSyncHandler ) { + $( document ).on( 'widget-synced', function( e, widget ) { + if ( $widgetRoot.is( widget ) ) { + formSyncHandler.apply( document, arguments ); } } ); } @@ -797,53 +782,51 @@ * Set up event handlers for widget removal */ _setupRemoveUI: function() { - var control = this, - remove_btn, - replace_delete_with_remove; + var self = this, $removeBtn, replaceDeleteWithRemove; // Configure remove button - remove_btn = control.container.find( 'a.widget-control-remove' ); - // @todo Hitting Enter on this link does nothing; will be resolved in core with - remove_btn.on( 'click', function( e ) { + $removeBtn = this.container.find( 'a.widget-control-remove' ); + $removeBtn.on( 'click', function( e ) { e.preventDefault(); // Find an adjacent element to add focus to when this widget goes away - var adjacent_focus_target; - if ( control.container.next().is( '.customize-control-widget_form' ) ) { - adjacent_focus_target = control.container.next().find( '.widget-action:first' ); - } else if ( control.container.prev().is( '.customize-control-widget_form' ) ) { - adjacent_focus_target = control.container.prev().find( '.widget-action:first' ); + var $adjacentFocusTarget; + if ( self.container.next().is( '.customize-control-widget_form' ) ) { + $adjacentFocusTarget = self.container.next().find( '.widget-action:first' ); + } else if ( self.container.prev().is( '.customize-control-widget_form' ) ) { + $adjacentFocusTarget = self.container.prev().find( '.widget-action:first' ); } else { - adjacent_focus_target = control.container.next( '.customize-control-sidebar_widgets' ).find( '.add-new-widget:first' ); + $adjacentFocusTarget = self.container.next( '.customize-control-sidebar_widgets' ).find( '.add-new-widget:first' ); } - control.container.slideUp( function() { - var sidebars_widgets_control = api.Widgets.getSidebarWidgetControlContainingWidget( control.params.widget_id ), + self.container.slideUp( function() { + var sidebars_widgets_control = api.Widgets.getSidebarWidgetControlContainingWidget( self.params.widget_id ), sidebar_widget_ids, i; if ( ! sidebars_widgets_control ) { - throw new Error( 'Unable to find sidebars_widgets_control' ); + return; } sidebar_widget_ids = sidebars_widgets_control.setting().slice(); - i = _.indexOf( sidebar_widget_ids, control.params.widget_id ); + i = _.indexOf( sidebar_widget_ids, self.params.widget_id ); if ( -1 === i ) { - throw new Error( 'Widget is not in sidebar' ); + return; } sidebar_widget_ids.splice( i, 1 ); sidebars_widgets_control.setting( sidebar_widget_ids ); - adjacent_focus_target.focus(); // keyboard accessibility + $adjacentFocusTarget.focus(); // keyboard accessibility } ); } ); - replace_delete_with_remove = function() { - remove_btn.text( l10n.removeBtnLabel ); // wp_widget_control() outputs the link as "Delete" - remove_btn.attr( 'title', l10n.removeBtnTooltip ); + replaceDeleteWithRemove = function() { + $removeBtn.text( l10n.removeBtnLabel ); // wp_widget_control() outputs the link as "Delete" + $removeBtn.attr( 'title', l10n.removeBtnTooltip ); }; - if ( control.params.is_new ) { - api.bind( 'saved', replace_delete_with_remove ); + + if ( this.params.is_new ) { + api.bind( 'saved', replaceDeleteWithRemove ); } else { - replace_delete_with_remove(); + replaceDeleteWithRemove(); } }, @@ -871,17 +854,19 @@ * @private */ _getInputsSignature: function( inputs ) { - var inputs_signatures = _( inputs ).map( function( input ) { - input = $( input ); - var signature_parts; - if ( input.is( ':checkbox, :radio' ) ) { - signature_parts = [ input.attr( 'id' ), input.attr( 'name' ), input.prop( 'value' ) ]; + var inputsSignatures = _( inputs ).map( function( input ) { + var $input = $( input ), signatureParts; + + if ( $input.is( ':checkbox, :radio' ) ) { + signatureParts = [ $input.attr( 'id' ), $input.attr( 'name' ), $input.prop( 'value' ) ]; } else { - signature_parts = [ input.attr( 'id' ), input.attr( 'name' ) ]; + signatureParts = [ $input.attr( 'id' ), $input.attr( 'name' ) ]; } - return signature_parts.join( ',' ); + + return signatureParts.join( ',' ); } ); - return inputs_signatures.join( ';' ); + + return inputsSignatures.join( ';' ); }, /** @@ -892,8 +877,9 @@ * @private */ _getInputStatePropertyName: function( input ) { - input = $( input ); - if ( input.is( ':radio, :checkbox' ) ) { + var $input = $( input ); + + if ( $input.is( ':radio, :checkbox' ) ) { return 'checked'; } else { return 'value'; @@ -908,14 +894,16 @@ * @return {wp.customize.controlConstructor.sidebar_widgets[]} */ getSidebarWidgetsControl: function() { - var control = this, setting_id, sidebar_widgets_control; + var settingId, sidebarWidgetsControl; - setting_id = 'sidebars_widgets[' + control.params.sidebar_id + ']'; - sidebar_widgets_control = api.control( setting_id ); - if ( ! sidebar_widgets_control ) { - throw new Error( 'Unable to locate sidebar_widgets control for ' + control.params.sidebar_id ); + settingId = 'sidebars_widgets[' + this.params.sidebar_id + ']'; + sidebarWidgetsControl = api.control( settingId ); + + if ( ! sidebarWidgetsControl ) { + return; } - return sidebar_widgets_control; + + return sidebarWidgetsControl; }, /** @@ -928,18 +916,8 @@ * @param {Boolean} [args.ignore_active_element=false] Whether or not updating a field will be deferred if focus is still on the element. */ updateWidget: function( args ) { - var control = this, - instance_override, - complete_callback, - widget_root, - update_number, - widget_content, - params, - data, - inputs, - processing, - jqxhr, - is_changed; + var self = this, instanceOverride, completeCallback, $widgetRoot, $widgetContent, + updateNumber, params, data, $inputs, processing, jqxhr, isChanged; args = $.extend( { instance: null, @@ -947,25 +925,25 @@ ignore_active_element: false }, args ); - instance_override = args.instance; - complete_callback = args.complete; + instanceOverride = args.instance; + completeCallback = args.complete; - control._update_count += 1; - update_number = control._update_count; + this._updateCount += 1; + updateNumber = this._updateCount; - widget_root = control.container.find( '.widget:first' ); - widget_content = widget_root.find( '.widget-content:first' ); + $widgetRoot = this.container.find( '.widget:first' ); + $widgetContent = $widgetRoot.find( '.widget-content:first' ); // Remove a previous error message - widget_content.find( '.widget-error' ).remove(); + $widgetContent.find( '.widget-error' ).remove(); - control.container.addClass( 'widget-form-loading' ); - control.container.addClass( 'previewer-loading' ); + this.container.addClass( 'widget-form-loading' ); + this.container.addClass( 'previewer-loading' ); processing = api.state( 'processing' ); processing( processing() + 1 ); - if ( ! control.live_update_mode ) { - control.container.addClass( 'widget-form-disabled' ); + if ( ! this.liveUpdateMode ) { + this.container.addClass( 'widget-form-disabled' ); } params = {}; @@ -974,36 +952,35 @@ params.nonce = api.Widgets.data.nonce; data = $.param( params ); - inputs = control._getInputs( widget_content ); + $inputs = this._getInputs( $widgetContent ); // Store the value we're submitting in data so that when the response comes back, // we know if it got sanitized; if there is no difference in the sanitized value, // then we do not need to touch the UI and mess up the user's ongoing editing. - inputs.each( function() { + $inputs.each( function() { var input = $( this ), - property = control._getInputStatePropertyName( this ); - input.data( 'state' + update_number, input.prop( property ) ); + property = self._getInputStatePropertyName( this ); + input.data( 'state' + updateNumber, input.prop( property ) ); } ); - if ( instance_override ) { - data += '&' + $.param( { 'sanitized_widget_setting': JSON.stringify( instance_override ) } ); + if ( instanceOverride ) { + data += '&' + $.param( { 'sanitized_widget_setting': JSON.stringify( instanceOverride ) } ); } else { - data += '&' + inputs.serialize(); + data += '&' + $inputs.serialize(); } - data += '&' + widget_content.find( '~ :input' ).serialize(); + data += '&' + $widgetContent.find( '~ :input' ).serialize(); - jqxhr = $.post( wp.ajax.settings.url, data, function( r ) { - var message, - sanitized_form, - sanitized_inputs, - has_same_inputs_in_response, - is_live_update_aborted = false; + jqxhr = $.post( wp.ajax.settings.url, data ); + + jqxhr.done( function( r ) { + var message, sanitizedForm, $sanitizedInputs, hasSameInputsInResponse, + isLiveUpdateAborted = false; // Check if the user is logged out. if ( '0' === r ) { api.Widgets.Previewer.preview.iframe.hide(); api.Widgets.Previewer.login().done( function() { - control.updateWidget( args ); + self.updateWidget( args ); api.Widgets.Previewer.preview.iframe.show(); } ); return; @@ -1016,51 +993,50 @@ } if ( r.success ) { - sanitized_form = $( '
' + r.data.form + '
' ); - sanitized_inputs = control._getInputs( sanitized_form ); - has_same_inputs_in_response = control._getInputsSignature( inputs ) === control._getInputsSignature( sanitized_inputs ); + sanitizedForm = $( '
' + r.data.form + '
' ); + $sanitizedInputs = self._getInputs( sanitizedForm ); + hasSameInputsInResponse = self._getInputsSignature( $inputs ) === self._getInputsSignature( $sanitizedInputs ); // Restore live update mode if sanitized fields are now aligned with the existing fields - if ( has_same_inputs_in_response && ! control.live_update_mode ) { - control.live_update_mode = true; - control.container.removeClass( 'widget-form-disabled' ); - control.container.find( 'input[name="savewidget"]' ).hide(); + if ( hasSameInputsInResponse && ! self.liveUpdateMode ) { + self.liveUpdateMode = true; + self.container.removeClass( 'widget-form-disabled' ); + self.container.find( 'input[name="savewidget"]' ).hide(); } // Sync sanitized field states to existing fields if they are aligned - if ( has_same_inputs_in_response && control.live_update_mode ) { - inputs.each( function( i ) { - var input = $( this ), - sanitized_input = $( sanitized_inputs[i] ), - property = control._getInputStatePropertyName( this ), - submitted_state, - sanitized_state, - can_update_state; + if ( hasSameInputsInResponse && self.liveUpdateMode ) { + $inputs.each( function( i ) { + var $input = $( this ), + $sanitizedInput = $( $sanitizedInputs[i] ), + property = self._getInputStatePropertyName( this ), + submittedState, sanitizedState, canUpdateState; - submitted_state = input.data( 'state' + update_number ); - sanitized_state = sanitized_input.prop( property ); - input.data( 'sanitized', sanitized_state ); + submittedState = $input.data( 'state' + updateNumber ); + sanitizedState = $sanitizedInput.prop( property ); + $input.data( 'sanitized', sanitizedState ); - can_update_state = ( - submitted_state !== sanitized_state && - ( args.ignore_active_element || ! input.is( document.activeElement ) ) - ); - if ( can_update_state ) { - input.prop( property, sanitized_state ); + canUpdateState = ( submittedState !== sanitizedState && ( args.ignore_active_element || ! $input.is( document.activeElement ) ) ); + if ( canUpdateState ) { + $input.prop( property, sanitizedState ); } } ); - $( document ).trigger( 'widget-synced', [ widget_root, r.data.form ] ); + + $( document ).trigger( 'widget-synced', [ $widgetRoot, r.data.form ] ); // Otherwise, if sanitized fields are not aligned with existing fields, disable live update mode if enabled - } else if ( control.live_update_mode ) { - control.live_update_mode = false; - control.container.find( 'input[name="savewidget"]' ).show(); - is_live_update_aborted = true; + } else if ( self.liveUpdateMode ) { + self.liveUpdateMode = false; + self.container.find( 'input[name="savewidget"]' ).show(); + isLiveUpdateAborted = true; + // Otherwise, replace existing form with the sanitized form } else { - widget_content.html( r.data.form ); - control.container.removeClass( 'widget-form-disabled' ); - $( document ).trigger( 'widget-updated', [ widget_root ] ); + $widgetContent.html( r.data.form ); + + self.container.removeClass( 'widget-form-disabled' ); + + $( document ).trigger( 'widget-updated', [ $widgetRoot ] ); } /** @@ -1068,40 +1044,46 @@ * needing to be rendered, and so we can preempt the event for the * preview finishing loading. */ - is_changed = ! is_live_update_aborted && ! _( control.setting() ).isEqual( r.data.instance ); - if ( is_changed ) { - control.is_widget_updating = true; // suppress triggering another updateWidget - control.setting( r.data.instance ); - control.is_widget_updating = false; + isChanged = ! isLiveUpdateAborted && ! _( self.setting() ).isEqual( r.data.instance ); + if ( isChanged ) { + self.isWidgetUpdating = true; // suppress triggering another updateWidget + self.setting( r.data.instance ); + self.isWidgetUpdating = false; } else { // no change was made, so stop the spinner now instead of when the preview would updates - control.container.removeClass( 'previewer-loading' ); + self.container.removeClass( 'previewer-loading' ); } - if ( complete_callback ) { - complete_callback.call( control, null, { no_change: ! is_changed, ajax_finished: true } ); + if ( completeCallback ) { + completeCallback.call( self, null, { no_change: ! isChanged, ajax_finished: true } ); } } else { + // General error message message = l10n.error; + if ( r.data && r.data.message ) { message = r.data.message; } - if ( complete_callback ) { - complete_callback.call( control, message ); + + if ( completeCallback ) { + completeCallback.call( self, message ); } else { - widget_content.prepend( '

' + message + '

' ); + $widgetContent.prepend( '

' + message + '

' ); } } } ); + jqxhr.fail( function( jqXHR, textStatus ) { - if ( complete_callback ) { - complete_callback.call( control, textStatus ); + if ( completeCallback ) { + completeCallback.call( self, textStatus ); } } ); + jqxhr.always( function() { - control.container.removeClass( 'widget-form-loading' ); - inputs.each( function() { - $( this ).removeData( 'state' + update_number ); + self.container.removeClass( 'widget-form-loading' ); + + $inputs.each( function() { + $( this ).removeData( 'state' + updateNumber ); } ); processing( processing() - 1 ); @@ -1110,12 +1092,12 @@ /** * Expand the accordion section containing a control - * @todo it would be nice if accordion had a proper API instead of having to trigger UI events on its elements */ expandControlSection: function() { - var section = this.container.closest( '.accordion-section' ); - if ( ! section.hasClass( 'open' ) ) { - section.find( '.accordion-section-title:first' ).trigger( 'click' ); + var $section = this.container.closest( '.accordion-section' ); + + if ( ! $section.hasClass( 'open' ) ) { + $section.find( '.accordion-section-title:first' ).trigger( 'click' ); } }, @@ -1136,55 +1118,59 @@ /** * Expand or collapse the widget control * - * @param {boolean|undefined} [do_expand] If not supplied, will be inverse of current visibility + * @param {boolean|undefined} [showOrHide] If not supplied, will be inverse of current visibility */ - toggleForm: function( do_expand ) { - var control = this, widget, inside, complete; + toggleForm: function( showOrHide ) { + var self = this, $widget, $inside, complete; - widget = control.container.find( 'div.widget:first' ); - inside = widget.find( '.widget-inside:first' ); - if ( typeof do_expand === 'undefined' ) { - do_expand = ! inside.is( ':visible' ); + $widget = this.container.find( 'div.widget:first' ); + $inside = $widget.find( '.widget-inside:first' ); + if ( typeof showOrHide === 'undefined' ) { + showOrHide = ! $inside.is( ':visible' ); } // Already expanded or collapsed, so noop - if ( inside.is( ':visible' ) === do_expand ) { + if ( $inside.is( ':visible' ) === showOrHide ) { return; } - if ( do_expand ) { + if ( showOrHide ) { // Close all other widget controls before expanding this one - api.control.each( function( other_control ) { - if ( control.params.type === other_control.params.type && control !== other_control ) { - other_control.collapseForm(); + api.control.each( function( otherControl ) { + if ( self.params.type === otherControl.params.type && self !== otherControl ) { + otherControl.collapseForm(); } } ); complete = function() { - control.container.removeClass( 'expanding' ); - control.container.addClass( 'expanded' ); - control.container.trigger( 'expanded' ); + self.container.removeClass( 'expanding' ); + self.container.addClass( 'expanded' ); + self.container.trigger( 'expanded' ); }; - if ( control.params.is_wide ) { - inside.fadeIn( 'fast', complete ); + + if ( self.params.is_wide ) { + $inside.fadeIn( 'fast', complete ); } else { - inside.slideDown( 'fast', complete ); + $inside.slideDown( 'fast', complete ); } - control.container.trigger( 'expand' ); - control.container.addClass( 'expanding' ); + + self.container.trigger( 'expand' ); + self.container.addClass( 'expanding' ); } else { - control.container.trigger( 'collapse' ); - control.container.addClass( 'collapsing' ); complete = function() { - control.container.removeClass( 'collapsing' ); - control.container.removeClass( 'expanded' ); - control.container.trigger( 'collapsed' ); + self.container.removeClass( 'collapsing' ); + self.container.removeClass( 'expanded' ); + self.container.trigger( 'collapsed' ); }; - if ( control.params.is_wide ) { - inside.fadeOut( 'fast', complete ); + + self.container.trigger( 'collapse' ); + self.container.addClass( 'collapsing' ); + + if ( self.params.is_wide ) { + $inside.fadeOut( 'fast', complete ); } else { - inside.slideUp( 'fast', function() { - widget.css( { width:'', margin:'' } ); + $inside.slideUp( 'fast', function() { + $widget.css( { width:'', margin:'' } ); complete(); } ); } @@ -1196,28 +1182,26 @@ * the first input in the control */ focus: function() { - var control = this; - control.expandControlSection(); - control.expandForm(); - control.container.find( '.widget-content :focusable:first' ).focus(); + this.expandControlSection(); + this.expandForm(); + this.container.find( '.widget-content :focusable:first' ).focus(); }, /** * Get the position (index) of the widget in the containing sidebar * - * @throws Error * @returns {Number} */ getWidgetSidebarPosition: function() { - var control = this, - sidebar_widget_ids, - position; + var sidebarWidgetIds, position; + + sidebarWidgetIds = this.getSidebarWidgetsControl().setting(); + position = _.indexOf( sidebarWidgetIds, this.params.widget_id ); - sidebar_widget_ids = control.getSidebarWidgetsControl().setting(); - position = _.indexOf( sidebar_widget_ids, control.params.widget_id ); if ( position === -1 ) { - throw new Error( 'Widget was unexpectedly not present in the sidebar.' ); + return; } + return position; }, @@ -1241,71 +1225,66 @@ * @param {Number} offset 1|-1 */ _moveWidgetByOne: function( offset ) { - var control = this, - i, - sidebar_widgets_setting, - sidebar_widget_ids, - adjacent_widget_id; + var i, sidebarWidgetsSetting, sidebarWidgetIds, adjacentWidgetId; - i = control.getWidgetSidebarPosition(); + i = this.getWidgetSidebarPosition(); - sidebar_widgets_setting = control.getSidebarWidgetsControl().setting; - sidebar_widget_ids = Array.prototype.slice.call( sidebar_widgets_setting() ); // clone - adjacent_widget_id = sidebar_widget_ids[i + offset]; - sidebar_widget_ids[i + offset] = control.params.widget_id; - sidebar_widget_ids[i] = adjacent_widget_id; + sidebarWidgetsSetting = this.getSidebarWidgetsControl().setting; + sidebarWidgetIds = Array.prototype.slice.call( sidebarWidgetsSetting() ); // clone + adjacentWidgetId = sidebarWidgetIds[i + offset]; + sidebarWidgetIds[i + offset] = this.params.widget_id; + sidebarWidgetIds[i] = adjacentWidgetId; - sidebar_widgets_setting( sidebar_widget_ids ); + sidebarWidgetsSetting( sidebarWidgetIds ); }, /** * Toggle visibility of the widget move area * - * @param {Boolean} [toggle] + * @param {Boolean} [showOrHide] */ - toggleWidgetMoveArea: function( toggle ) { - var control = this, move_widget_area; - move_widget_area = control.container.find( '.move-widget-area' ); - if ( typeof toggle === 'undefined' ) { - toggle = ! move_widget_area.hasClass( 'active' ); - } - if ( toggle ) { - // reset the selected sidebar - move_widget_area.find( '.selected' ).removeClass( 'selected' ); - move_widget_area.find( 'li' ).filter( function() { - return $( this ).data( 'id' ) === control.params.sidebar_id; - } ).addClass( 'selected' ); - control.container.find( '.move-widget-btn' ).prop( 'disabled', true ); - } - move_widget_area.toggleClass( 'active', toggle ); - }, + toggleWidgetMoveArea: function( showOrHide ) { + var self = this, $moveWidgetArea; - /** - * Inside of the customizer preview, scroll the widget into view - */ - scrollPreviewWidgetIntoView: function() { - // @todo scrollIntoView() provides a robust but very poor experience. Animation is needed. See https://github.com/x-team/wp-widget-customizer/issues/16 + $moveWidgetArea = this.container.find( '.move-widget-area' ); + + if ( typeof showOrHide === 'undefined' ) { + showOrHide = ! $moveWidgetArea.hasClass( 'active' ); + } + + if ( showOrHide ) { + // reset the selected sidebar + $moveWidgetArea.find( '.selected' ).removeClass( 'selected' ); + + $moveWidgetArea.find( 'li' ).filter( function() { + return $( this ).data( 'id' ) === self.params.sidebar_id; + } ).addClass( 'selected' ); + + this.container.find( '.move-widget-btn' ).prop( 'disabled', true ); + } + + $moveWidgetArea.toggleClass( 'active', showOrHide ); }, /** * Highlight the widget control and section */ highlightSectionAndControl: function() { - var control = this, target_element; + var $target; - if ( control.container.is( ':hidden' ) ) { - target_element = control.container.closest( '.control-section' ); + if ( this.container.is( ':hidden' ) ) { + $target = this.container.closest( '.control-section' ); } else { - target_element = control.container; + $target = this.container; } - $( '.widget-customizer-highlighted' ).removeClass( 'widget-customizer-highlighted' ); - target_element.addClass( 'widget-customizer-highlighted' ); + $( '.highlighted' ).removeClass( 'highlighted' ); + $target.addClass( 'highlighted' ); + setTimeout( function() { - target_element.removeClass( 'widget-customizer-highlighted' ); + $target.removeClass( 'highlighted' ); }, 500 ); } - } ); /** @@ -1601,7 +1580,7 @@ var control = this, form_controls; form_controls = _( control.setting() ).map( function( widget_id ) { - var setting_id = widget_id_to_setting_id( widget_id ), + var setting_id = widgetIdToSettingId( widget_id ), form_control = api.control( setting_id ); if ( ! form_control ) { @@ -1815,7 +1794,7 @@ */ api.Widgets.getSidebarWidgetControlContainingWidget = function( widget_id ) { var found_control = null; - // @todo this can use widget_id_to_setting_id(), then pass into wp.customize.control( x ).getSidebarWidgetsControl() + // @todo this can use widgetIdToSettingId(), then pass into wp.customize.control( x ).getSidebarWidgetsControl() api.control.each( function( control ) { if ( control.params.type === 'sidebar_widgets' && -1 !== _.indexOf( control.setting(), widget_id ) ) { found_control = control; @@ -1832,7 +1811,7 @@ */ api.Widgets.getWidgetFormControlForWidget = function( widget_id ) { var found_control = null; - // @todo We can just use widget_id_to_setting_id() here + // @todo We can just use widgetIdToSettingId() here api.control.each( function( control ) { if ( control.params.type === 'widget_form' && control.params.widget_id === widget_id ) { found_control = control; @@ -1864,16 +1843,16 @@ /** * @param {String} widget_id - * @returns {String} setting_id + * @returns {String} settingId */ - function widget_id_to_setting_id( widget_id ) { - var parsed = parse_widget_id( widget_id ), setting_id; + function widgetIdToSettingId( widget_id ) { + var parsed = parse_widget_id( widget_id ), settingId; - setting_id = 'widget_' + parsed.id_base; + settingId = 'widget_' + parsed.id_base; if ( parsed.number ) { - setting_id += '[' + parsed.number + ']'; + settingId += '[' + parsed.number + ']'; } - return setting_id; + return settingId; } })( window.wp, jQuery ); diff --git a/wp-admin/js/customize-widgets.min.js b/wp-admin/js/customize-widgets.min.js index 1566cd6a62..f83297d84e 100644 --- a/wp-admin/js/customize-widgets.min.js +++ b/wp-admin/js/customize-widgets.min.js @@ -1 +1 @@ -!function(a,b){function c(a){var b,c={number:null,id_base:null};return b=a.match(/^(.+)-(\d+)$/),b?(c.id_base=b[1],c.number=parseInt(b[2],10)):c.id_base=a,c}function d(a){var b,d=c(a);return b="widget_"+d.id_base,d.number&&(b+="["+d.number+"]"),b}if(a&&a.customize){var e,f,g=a.customize;g.Widgets=g.Widgets||{},g.Widgets.data=_wpCustomizeWidgetsSettings||{},e=g.Widgets.data.l10n,delete g.Widgets.data.l10n,g.Widgets.WidgetModel=Backbone.Model.extend({id:null,temp_id:null,classname:null,control_tpl:null,description:null,is_disabled:null,is_multi:null,multi_number:null,name:null,id_base:null,transport:"refresh",params:[],width:null,height:null}),g.Widgets.WidgetCollection=Backbone.Collection.extend({model:g.Widgets.WidgetModel,doSearch:function(a){this.terms!==a&&(this.terms=a,this.terms.length>0&&this.search(this.terms),""===this.terms&&this.reset(g.Widgets.data.availableWidgets),this.trigger("update"))},search:function(a){var b,c,d;this.reset(g.Widgets.data.availableWidgets,{silent:!0}),a=a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),a=a.replace(/ /g,")(?=.*"),b=new RegExp("^(?=.*"+a+").+","i"),c=this.filter(function(a){return d=_.union(a.get("name"),a.get("id"),a.get("description")),b.test(d)}),this.reset(c)}}),g.Widgets.availableWidgets=new g.Widgets.WidgetCollection(g.Widgets.data.availableWidgets),g.Widgets.SidebarModel=Backbone.Model.extend({after_title:null,after_widget:null,before_title:null,before_widget:null,"class":null,description:null,id:null,name:null,is_rendered:!1}),g.Widgets.SidebarCollection=Backbone.Collection.extend({model:g.Widgets.SidebarModel}),g.Widgets.registeredSidebars=new g.Widgets.SidebarCollection(g.Widgets.data.registeredSidebars),g.Widgets.AvailableWidgetsPanelView=a.Backbone.View.extend({el:"#available-widgets",events:{"input #widgets-search":"search","keyup #widgets-search":"search","change #widgets-search":"search","search #widgets-search":"search","focus .widget-tpl":"focus","click .widget-tpl":"_submit","keypress .widget-tpl":"_submit",keydown:"keyboardAccessible"},selected:null,currentSidebarControl:null,$search:null,initialize:function(){var a=this;this.$search=b("#widgets-search"),_.bindAll(this,"close"),this.listenTo(this.collection,"update",this.updateList),this.updateList(),b("#customize-controls").on("click keydown",function(c){var d=b(c.target).is(".add-new-widget, .add-new-widget *");b("body").hasClass("adding-widget")&&!d&&a.close()}),g.Widgets.Previewer.bind("url",this.close)},search:function(a){var b;this.collection.doSearch(a.target.value),this.selected&&!this.selected.is(":visible")&&(this.selected.removeClass("selected"),this.selected=null),this.selected&&!a.target.value&&(this.selected.removeClass("selected"),this.selected=null),!this.selected&&a.target.value&&(b=this.$el.find("> .widget-tpl:visible:first"),b.length&&this.select(b))},updateList:function(){this.$el.find(".widget-tpl").hide(),this.collection.each(function(a){var c=b("#widget-tpl-"+a.id);c.toggle(!a.get("is_disabled")),a.get("is_disabled")&&c.is(this.selected)&&(this.selected=null)})},select:function(a){this.selected=b(a),this.selected.siblings(".widget-tpl").removeClass("selected"),this.selected.addClass("selected")},focus:function(a){this.select(b(a.currentTarget))},_submit:function(a){("keypress"!==a.type||13===a.which||32===a.which)&&this.submit(b(a.currentTarget))},submit:function(a){var c,d;a||(a=this.selected),a&&this.currentSidebarControl&&(this.select(a),c=b(this.selected).data("widget-id"),d=this.collection.findWhere({id:c}),d&&(this.currentSidebarControl.addWidget(d.get("id_base")),this.close()))},open:function(a){this.currentSidebarControl=a,_(this.currentSidebarControl.getWidgetFormControls()).each(function(a){a.params.is_wide&&a.collapseForm()}),b("body").addClass("adding-widget"),this.$el.find(".selected").removeClass("selected"),this.collection.doSearch(""),this.$search.focus()},close:function(a){a=a||{},a.returnFocus&&this.currentSidebarControl&&this.currentSidebarControl.container.find(".add-new-widget").focus(),this.currentSidebarControl=null,this.selected=null,b("body").removeClass("adding-widget"),this.$search.val("")},keyboardAccessible:function(a){var c=13===a.which,d=27===a.which,e=40===a.which,f=38===a.which,g=null,h=this.$el.find("> .widget-tpl:visible:first"),i=this.$el.find("> .widget-tpl:visible:last"),j=b(a.target).is(this.$search);return e||f?(e?j?g=h:this.selected&&0!==this.selected.nextAll(".widget-tpl:visible").length&&(g=this.selected.nextAll(".widget-tpl:visible:first")):f&&(j?g=i:this.selected&&0!==this.selected.prevAll(".widget-tpl:visible").length&&(g=this.selected.prevAll(".widget-tpl:visible:first"))),this.select(g),void(g?g.focus():this.$search.focus())):void((!c||this.$search.val())&&(c?this.submit():d&&this.close({returnFocus:!0})))}}),g.Widgets.formSyncHandlers={rss:function(a,c,d){var e=c.find(".widget-error:first"),f=b("
"+d+"
").find(".widget-error:first");e.length&&f.length?e.replaceWith(f):e.length?e.remove():f.length&&c.find(".widget-content:first").prepend(f)}},g.Widgets.WidgetControl=g.Control.extend({ready:function(){var a=this;a._setupModel(),a._setupWideWidget(),a._setupControlToggle(),a._setupWidgetTitle(),a._setupReorderUI(),a._setupHighlightEffects(),a._setupUpdateUI(),a._setupRemoveUI()},_setupModel:function(){var a,b=this;g.Widgets.savedWidgetIds=g.Widgets.savedWidgetIds||[],a=function(){g.Widgets.savedWidgetIds[b.params.widget_id]=!0},g.bind("ready",a),g.bind("saved",a),b._update_count=0,b.is_widget_updating=!1,b.live_update_mode=!0,b.setting.bind(function(a,c){_(c).isEqual(a)||b.is_widget_updating||b.updateWidget({instance:a})})},_setupWideWidget:function(){var a,c,d,e,f,h=this;h.params.is_wide&&(a=h.container.find(".widget-inside"),c=a.find("> .form"),d=b(".wp-full-overlay-sidebar-content:first"),h.container.addClass("wide-widget-control"),h.container.find(".widget-content:first").css({"max-width":h.params.width,"min-height":h.params.height}),e=function(){var d,e=h.container.offset().top,f=b(window).height(),g=c.outerHeight();a.css("max-height",f),d=Math.max(0,Math.min(Math.max(e,0),f-g)),a.css("top",d)},f=b("#customize-theme-controls"),h.container.on("expand",function(){e(),d.on("scroll",e),b(window).on("resize",e),f.on("expanded collapsed",e)}),h.container.on("collapsed",function(){d.off("scroll",e),b(window).off("resize",e),f.off("expanded collapsed",e)}),g.each(function(a){0===a.id.indexOf("sidebars_widgets[")&&a.bind(function(){h.container.hasClass("expanded")&&e()})}))},_setupControlToggle:function(){var a,b=this;b.container.find(".widget-top").on("click",function(a){a.preventDefault();var c=b.getSidebarWidgetsControl();c.is_reordering||b.toggleForm()}),a=b.container.find(".widget-control-close"),a.on("click",function(a){a.preventDefault(),b.collapseForm(),b.container.find(".widget-top .widget-action:first").focus()})},_setupWidgetTitle:function(){var a,b=this;a=function(){var a=b.setting().title,c=b.container.find(".in-widget-title");c.text(a?": "+a:"")},b.setting.bind(a),a()},_setupReorderUI:function(){var a,c,d,e,f=this;a=function(a){a.siblings(".selected").removeClass("selected"),a.addClass("selected");var b=a.data("id")===f.params.sidebar_id;f.container.find(".move-widget-btn").prop("disabled",b)},f.container.find(".widget-title-action").after(b(g.Widgets.data.tpl.widgetReorderNav)),c=b(_.template(g.Widgets.data.tpl.moveWidgetArea,{sidebars:_(g.Widgets.registeredSidebars.toArray()).pluck("attributes")})),f.container.find(".widget-top").after(c),e=function(){var d,e=c.find("li");d=e.filter(function(){return b(this).data("id")===f.params.sidebar_id}),e.each(function(){var c,e,f=b(this);c=f.data("id"),e=g.Widgets.registeredSidebars.get(c),f.toggle(e.get("is_rendered")),f.hasClass("selected")&&!e.get("is_rendered")&&a(d)})},e(),g.Widgets.registeredSidebars.on("change:is_rendered",e),d=f.container.find(".widget-reorder-nav"),d.find(".move-widget, .move-widget-down, .move-widget-up").on("click keypress",function(a){if("keypress"!==a.type||13===a.which||32===a.which)if(b(this).focus(),b(this).is(".move-widget"))f.toggleWidgetMoveArea();else{var c=b(this).is(".move-widget-down"),d=b(this).is(".move-widget-up"),e=f.getWidgetSidebarPosition();if(d&&0===e||c&&e===f.getSidebarWidgetsControl().setting().length-1)return;d?f.moveUp():f.moveDown(),b(this).focus()}}),f.container.find(".widget-area-select").on("click keypress","li",function(c){("keypress"!==event.type||13===event.which||32===event.which)&&(c.preventDefault(),a(b(this)))}),f.container.find(".move-widget-btn").click(function(){f.getSidebarWidgetsControl().toggleReordering(!1);var a,b,c,d,e,h=f.params.sidebar_id,i=f.container.find(".widget-area-select li.selected").data("id");a=g("sidebars_widgets["+h+"]"),b=g("sidebars_widgets["+i+"]"),c=Array.prototype.slice.call(a()),d=Array.prototype.slice.call(b()),e=f.getWidgetSidebarPosition(),c.splice(e,1),d.push(f.params.widget_id),a(c),b(d),f.focus()})},_setupHighlightEffects:function(){var a=this;a.container.on("mouseenter click",function(){a.setting.previewer.send("highlight-widget",a.params.widget_id)}),a.setting.bind(function(){a.setting.previewer.send("highlight-widget",a.params.widget_id)}),a.container.on("expand",function(){a.scrollPreviewWidgetIntoView()})},_setupUpdateUI:function(){var a,c,d,f,h,i=this;a=i.container.find(".widget:first"),c=a.find(".widget-content:first"),d=i.container.find(".widget-control-save"),d.val(e.saveBtnLabel),d.attr("title",e.saveBtnTooltip),d.removeClass("button-primary").addClass("button-secondary"),d.on("click",function(a){a.preventDefault(),i.updateWidget({disable_form:!0})}),f=_.debounce(function(){i.updateWidget()},250),i.container.find(".widget-content").on("keydown","input",function(a){13===a.which&&(a.preventDefault(),i.updateWidget({ignore_active_element:!0}))}),c.on("change input propertychange",":input",function(a){i.live_update_mode&&("change"===a.type?i.updateWidget():this.checkValidity&&this.checkValidity()&&f())}),i.setting.previewer.channel.bind("synced",function(){i.container.removeClass("previewer-loading")}),g.Widgets.Previewer.bind("widget-updated",function(a){a===i.params.widget_id&&i.container.removeClass("previewer-loading")}),g.Widgets.Previewer.bind("rendered-widgets",function(a){var b=!!a[i.params.widget_id];i.container.toggleClass("widget-rendered",b)}),h=g.Widgets.formSyncHandlers[i.params.widget_id_base],h&&b(document).on("widget-synced",function(b,c){a.is(c)&&h.apply(document,arguments)})},_setupRemoveUI:function(){var a,b,c=this;a=c.container.find("a.widget-control-remove"),a.on("click",function(a){a.preventDefault();var b;b=c.container.next().is(".customize-control-widget_form")?c.container.next().find(".widget-action:first"):c.container.prev().is(".customize-control-widget_form")?c.container.prev().find(".widget-action:first"):c.container.next(".customize-control-sidebar_widgets").find(".add-new-widget:first"),c.container.slideUp(function(){var a,d,e=g.Widgets.getSidebarWidgetControlContainingWidget(c.params.widget_id);if(!e)throw new Error("Unable to find sidebars_widgets_control");if(a=e.setting().slice(),d=_.indexOf(a,c.params.widget_id),-1===d)throw new Error("Widget is not in sidebar");a.splice(d,1),e.setting(a),b.focus()})}),b=function(){a.text(e.removeBtnLabel),a.attr("title",e.removeBtnTooltip)},c.params.is_new?g.bind("saved",b):b()},_getInputs:function(a){return b(a).find(":input[name]")},_getInputsSignature:function(a){var c=_(a).map(function(a){a=b(a);var c;return c=a.is(":checkbox, :radio")?[a.attr("id"),a.attr("name"),a.prop("value")]:[a.attr("id"),a.attr("name")],c.join(",")});return c.join(";")},_getInputStatePropertyName:function(a){return a=b(a),a.is(":radio, :checkbox")?"checked":"value"},getSidebarWidgetsControl:function(){var a,b,c=this;if(a="sidebars_widgets["+c.params.sidebar_id+"]",b=g.control(a),!b)throw new Error("Unable to locate sidebar_widgets control for "+c.params.sidebar_id);return b},updateWidget:function(c){var d,f,h,i,j,k,l,m,n,o,p,q=this;c=b.extend({instance:null,complete:null,ignore_active_element:!1},c),d=c.instance,f=c.complete,q._update_count+=1,i=q._update_count,h=q.container.find(".widget:first"),j=h.find(".widget-content:first"),j.find(".widget-error").remove(),q.container.addClass("widget-form-loading"),q.container.addClass("previewer-loading"),n=g.state("processing"),n(n()+1),q.live_update_mode||q.container.addClass("widget-form-disabled"),k={},k.action="update-widget",k.wp_customize="on",k.nonce=g.Widgets.data.nonce,l=b.param(k),m=q._getInputs(j),m.each(function(){var a=b(this),c=q._getInputStatePropertyName(this);a.data("state"+i,a.prop(c))}),l+=d?"&"+b.param({sanitized_widget_setting:JSON.stringify(d)}):"&"+m.serialize(),l+="&"+j.find("~ :input").serialize(),o=b.post(a.ajax.settings.url,l,function(a){var d,k,l,n,o=!1;return"0"===a?(g.Widgets.Previewer.preview.iframe.hide(),void g.Widgets.Previewer.login().done(function(){q.updateWidget(c),g.Widgets.Previewer.preview.iframe.show()})):"-1"===a?void g.Widgets.Previewer.cheatin():void(a.success?(k=b("
"+a.data.form+"
"),l=q._getInputs(k),n=q._getInputsSignature(m)===q._getInputsSignature(l),n&&!q.live_update_mode&&(q.live_update_mode=!0,q.container.removeClass("widget-form-disabled"),q.container.find('input[name="savewidget"]').hide()),n&&q.live_update_mode?(m.each(function(a){var d,e,f,g=b(this),h=b(l[a]),j=q._getInputStatePropertyName(this);d=g.data("state"+i),e=h.prop(j),g.data("sanitized",e),f=d!==e&&(c.ignore_active_element||!g.is(document.activeElement)),f&&g.prop(j,e)}),b(document).trigger("widget-synced",[h,a.data.form])):q.live_update_mode?(q.live_update_mode=!1,q.container.find('input[name="savewidget"]').show(),o=!0):(j.html(a.data.form),q.container.removeClass("widget-form-disabled"),b(document).trigger("widget-updated",[h])),p=!o&&!_(q.setting()).isEqual(a.data.instance),p?(q.is_widget_updating=!0,q.setting(a.data.instance),q.is_widget_updating=!1):q.container.removeClass("previewer-loading"),f&&f.call(q,null,{no_change:!p,ajax_finished:!0})):(d=e.error,a.data&&a.data.message&&(d=a.data.message),f?f.call(q,d):j.prepend('

'+d+"

")))}),o.fail(function(a,b){f&&f.call(q,b)}),o.always(function(){q.container.removeClass("widget-form-loading"),m.each(function(){b(this).removeData("state"+i)}),n(n()-1)})},expandControlSection:function(){var a=this.container.closest(".accordion-section");a.hasClass("open")||a.find(".accordion-section-title:first").trigger("click")},expandForm:function(){this.toggleForm(!0)},collapseForm:function(){this.toggleForm(!1)},toggleForm:function(a){var b,c,d,e=this;b=e.container.find("div.widget:first"),c=b.find(".widget-inside:first"),"undefined"==typeof a&&(a=!c.is(":visible")),c.is(":visible")!==a&&(a?(g.control.each(function(a){e.params.type===a.params.type&&e!==a&&a.collapseForm()}),d=function(){e.container.removeClass("expanding"),e.container.addClass("expanded"),e.container.trigger("expanded")},e.params.is_wide?c.fadeIn("fast",d):c.slideDown("fast",d),e.container.trigger("expand"),e.container.addClass("expanding")):(e.container.trigger("collapse"),e.container.addClass("collapsing"),d=function(){e.container.removeClass("collapsing"),e.container.removeClass("expanded"),e.container.trigger("collapsed")},e.params.is_wide?c.fadeOut("fast",d):c.slideUp("fast",function(){b.css({width:"",margin:""}),d()})))},focus:function(){var a=this;a.expandControlSection(),a.expandForm(),a.container.find(".widget-content :focusable:first").focus()},getWidgetSidebarPosition:function(){var a,b,c=this;if(a=c.getSidebarWidgetsControl().setting(),b=_.indexOf(a,c.params.widget_id),-1===b)throw new Error("Widget was unexpectedly not present in the sidebar.");return b},moveUp:function(){this._moveWidgetByOne(-1)},moveDown:function(){this._moveWidgetByOne(1)},_moveWidgetByOne:function(a){var b,c,d,e,f=this;b=f.getWidgetSidebarPosition(),c=f.getSidebarWidgetsControl().setting,d=Array.prototype.slice.call(c()),e=d[b+a],d[b+a]=f.params.widget_id,d[b]=e,c(d)},toggleWidgetMoveArea:function(a){var c,d=this;c=d.container.find(".move-widget-area"),"undefined"==typeof a&&(a=!c.hasClass("active")),a&&(c.find(".selected").removeClass("selected"),c.find("li").filter(function(){return b(this).data("id")===d.params.sidebar_id}).addClass("selected"),d.container.find(".move-widget-btn").prop("disabled",!0)),c.toggleClass("active",a)},scrollPreviewWidgetIntoView:function(){},highlightSectionAndControl:function(){var a,c=this;a=c.container.is(":hidden")?c.container.closest(".control-section"):c.container,b(".widget-customizer-highlighted").removeClass("widget-customizer-highlighted"),a.addClass("widget-customizer-highlighted"),setTimeout(function(){a.removeClass("widget-customizer-highlighted")},500)}}),g.Widgets.SidebarControl=g.Control.extend({ready:function(){var a=this;a.control_section=a.container.closest(".control-section"),a.section_content=a.container.closest(".accordion-section-content"),a._setupModel(),a._setupSortable(),a._setupAddition(),a._applyCardinalOrderClassNames()},_setupModel:function(){var a=this,d=g.Widgets.registeredSidebars.get(a.params.sidebar_id);a.setting.bind(function(d,e){var f,h,i,j=_(e).difference(d);d=_(d).filter(function(a){var b=c(a);return!!g.Widgets.availableWidgets.findWhere({id_base:b.id_base})}),f=_(d).map(function(b){var c=g.Widgets.getWidgetFormControlForWidget(b);return c||(c=a.addWidget(b)),c}),f.sort(function(a,b){var c=_.indexOf(d,a.params.widget_id),e=_.indexOf(d,b.params.widget_id);return c===e?0:e>c?-1:1}),h=a.section_content.find(".customize-control-sidebar_widgets"),i=_(f).map(function(a){return a.container[0]}),h.before(i),a._applyCardinalOrderClassNames(),_(f).each(function(b){b.params.sidebar_id=a.params.sidebar_id}),_(j).each(function(d){setTimeout(function(){var e,f,h,i,j,k=!1;g.each(function(b){if(b.id!==a.setting.id&&0===b.id.indexOf("sidebars_widgets[")&&"sidebars_widgets[wp_inactive_widgets]"!==b.id){var c,e=b();c=_.indexOf(e,d),-1!==c&&(k=!0)}}),k||(e=g.Widgets.getWidgetFormControlForWidget(d),f=e&&b.contains(document,e.container[0])&&!b.contains(a.section_content[0],e.container[0]),e&&!f&&(g.control.remove(e.id),e.container.remove()),g.Widgets.savedWidgetIds[d]&&(h=g.value("sidebars_widgets[wp_inactive_widgets]")().slice(),h.push(d),g.value("sidebars_widgets[wp_inactive_widgets]")(_(h).unique())),i=c(d).id_base,j=g.Widgets.availableWidgets.findWhere({id_base:i}),j&&!j.get("is_multi")&&j.set("is_disabled",!1))})})}),g.Widgets.Previewer.bind("rendered-sidebars",function(b){var c=!!b[a.params.sidebar_id];d.set("is_rendered",c)}),d.on("change:is_rendered",function(){var a,c="#accordion-section-sidebar-widgets-"+this.get("id");a=b(c),this.get("is_rendered")?a.stop().slideDown(function(){b(this).css("height","auto")}):(a.hasClass("open")&&a.find(".accordion-section-title").trigger("click"),a.stop().slideUp())})},_setupSortable:function(){var a=this;a.is_reordering=!1,a.section_content.sortable({items:"> .customize-control-widget_form",handle:".widget-top",axis:"y",connectWith:".accordion-section-content:has(.customize-control-sidebar_widgets)",update:function(){var c,d=a.section_content.sortable("toArray");c=b.map(d,function(a){return b("#"+a).find(":input[name=widget-id]").val()}),a.setting(c)}}),a.control_section.find(".accordion-section-title").droppable({accept:".customize-control-widget_form",over:function(){a.control_section.hasClass("open")||(a.control_section.addClass("open"),a.section_content.toggle(!1).slideToggle(150,function(){a.section_content.sortable("refreshPositions")}))}}),a.container.find(".reorder-toggle").on("click keydown",function(b){("keydown"!==b.type||13===b.which||32===b.which)&&a.toggleReordering(!a.is_reordering)})},_setupAddition:function(){var a=this;a.container.find(".add-new-widget").on("click keydown",function(c){("keydown"!==c.type||13===c.which||32===c.which)&&(a.section_content.hasClass("reordering")||(b("body").hasClass("adding-widget")?g.Widgets.availableWidgetsPanel.close():g.Widgets.availableWidgetsPanel.open(a)))})},_applyCardinalOrderClassNames:function(){var a=this;a.section_content.find(".customize-control-widget_form").removeClass("first-widget").removeClass("last-widget").find(".move-widget-down, .move-widget-up").prop("tabIndex",0),a.section_content.find(".customize-control-widget_form:first").addClass("first-widget").find(".move-widget-up").prop("tabIndex",-1),a.section_content.find(".customize-control-widget_form:last").addClass("last-widget").find(".move-widget-down").prop("tabIndex",-1)},toggleReordering:function(a){var b=this;a=Boolean(a),a!==b.section_content.hasClass("reordering")&&(b.is_reordering=a,b.section_content.toggleClass("reordering",a),a&&_(b.getWidgetFormControls()).each(function(a){a.collapseForm()}))},getWidgetFormControls:function(){var a,b=this;return a=_(b.setting()).map(function(a){var b=d(a),c=g.control(b);if(!c)throw new Error("Unable to find widget_form control for "+a);return c})},addWidget:function(a){var d,e,f,h,i,j,k,l,m,n=this,o="widget_form",p=c(a),q=p.number,r=p.id_base,s=g.Widgets.availableWidgets.findWhere({id_base:r});if(!s)throw new Error("Widget unexpectedly not found.");if(q&&!s.get("is_multi"))throw new Error("Did not expect a widget number to be supplied for a non-multi widget");return s.get("is_multi")&&!q&&(s.set("multi_number",s.get("multi_number")+1),q=s.get("multi_number")),d=b("#widget-tpl-"+s.get("id")).html(),s.get("is_multi")?d=d.replace(/<[^<>]+>/g,function(a){return a.replace(/__i__|%i%/g,q)}):s.set("is_disabled",!0),e=b(d),f=b("
  • "),f.addClass("customize-control"),f.addClass("customize-control-"+o),f.append(e),f.find("> .widget-icon").remove(),s.get("is_multi")&&(f.find('input[name="widget_number"]').val(q),f.find('input[name="multi_number"]').val(q)),a=f.find('[name="widget-id"]').val(),f.hide(),h="widget_"+s.get("id_base"),s.get("is_multi")&&(h+="["+q+"]"),f.attr("id","customize-control-"+h.replace(/\]/g,"").replace(/\[/g,"-")),n.container.after(f),i=g.has(h),i||(m={transport:"refresh",previewer:n.setting.previewer},g.create(h,h,{},m)),j=g.controlConstructor[o],k=new j(h,{params:{settings:{"default":h},sidebar_id:n.params.sidebar_id,widget_id:a,widget_id_base:s.get("id_base"),type:o,is_new:!i,width:s.get("width"),height:s.get("height"),is_wide:s.get("is_wide")},previewer:n.setting.previewer}),g.control.add(h,k),g.each(function(b){if(b.id!==n.setting.id&&0===b.id.indexOf("sidebars_widgets[")){var c,d=b().slice();c=_.indexOf(d,a),-1!==c&&(d.splice(c),b(d))}}),l=n.setting().slice(),-1===_.indexOf(l,a)&&(l.push(a),n.setting(l)),f.slideDown(function(){i?(k.expandForm(),k.updateWidget({instance:k.setting(),complete:function(a){if(a)throw a;k.focus()}})):k.focus()}),b(document).trigger("widget-added",[e]),k}}),b.extend(g.controlConstructor,{widget_form:g.Widgets.WidgetControl,sidebar_widgets:g.Widgets.SidebarControl}),g.bind("ready",function(){g.Widgets.availableWidgetsPanel=new g.Widgets.AvailableWidgetsPanelView({collection:g.Widgets.availableWidgets}),g.Widgets.Previewer.bind("highlight-widget-control",g.Widgets.highlightWidgetFormControl),g.Widgets.Previewer.bind("focus-widget-control",g.Widgets.focusWidgetFormControl)}),f=g.Previewer,g.Previewer=f.extend({initialize:function(a,b){g.Widgets.Previewer=this,f.prototype.initialize.call(this,a,b),this.bind("refresh",this.refresh)}}),g.Widgets.highlightWidgetFormControl=function(a){var b=g.Widgets.getWidgetFormControlForWidget(a);b&&b.highlightSectionAndControl()},g.Widgets.focusWidgetFormControl=function(a){var b=g.Widgets.getWidgetFormControlForWidget(a);b&&b.focus()},g.Widgets.getSidebarWidgetControlContainingWidget=function(a){var b=null;return g.control.each(function(c){"sidebar_widgets"===c.params.type&&-1!==_.indexOf(c.setting(),a)&&(b=c)}),b},g.Widgets.getWidgetFormControlForWidget=function(a){var b=null;return g.control.each(function(c){"widget_form"===c.params.type&&c.params.widget_id===a&&(b=c)}),b}}}(window.wp,jQuery); \ No newline at end of file +!function(a,b){function c(a){var b,c={number:null,id_base:null};return b=a.match(/^(.+)-(\d+)$/),b?(c.id_base=b[1],c.number=parseInt(b[2],10)):c.id_base=a,c}function d(a){var b,d=c(a);return b="widget_"+d.id_base,d.number&&(b+="["+d.number+"]"),b}if(a&&a.customize){var e,f,g=a.customize;g.Widgets=g.Widgets||{},g.Widgets.data=_wpCustomizeWidgetsSettings||{},e=g.Widgets.data.l10n,delete g.Widgets.data.l10n,g.Widgets.WidgetModel=Backbone.Model.extend({id:null,temp_id:null,classname:null,control_tpl:null,description:null,is_disabled:null,is_multi:null,multi_number:null,name:null,id_base:null,transport:"refresh",params:[],width:null,height:null}),g.Widgets.WidgetCollection=Backbone.Collection.extend({model:g.Widgets.WidgetModel,doSearch:function(a){this.terms!==a&&(this.terms=a,this.terms.length>0&&this.search(this.terms),""===this.terms&&this.reset(g.Widgets.data.availableWidgets),this.trigger("update"))},search:function(a){var b,c,d;this.reset(g.Widgets.data.availableWidgets,{silent:!0}),a=a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),a=a.replace(/ /g,")(?=.*"),b=new RegExp("^(?=.*"+a+").+","i"),c=this.filter(function(a){return d=_.union(a.get("name"),a.get("id"),a.get("description")),b.test(d)}),this.reset(c)}}),g.Widgets.availableWidgets=new g.Widgets.WidgetCollection(g.Widgets.data.availableWidgets),g.Widgets.SidebarModel=Backbone.Model.extend({after_title:null,after_widget:null,before_title:null,before_widget:null,"class":null,description:null,id:null,name:null,is_rendered:!1}),g.Widgets.SidebarCollection=Backbone.Collection.extend({model:g.Widgets.SidebarModel}),g.Widgets.registeredSidebars=new g.Widgets.SidebarCollection(g.Widgets.data.registeredSidebars),g.Widgets.AvailableWidgetsPanelView=a.Backbone.View.extend({el:"#available-widgets",events:{"input #widgets-search":"search","keyup #widgets-search":"search","change #widgets-search":"search","search #widgets-search":"search","focus .widget-tpl":"focus","click .widget-tpl":"_submit","keypress .widget-tpl":"_submit",keydown:"keyboardAccessible"},selected:null,currentSidebarControl:null,$search:null,initialize:function(){var a=this;this.$search=b("#widgets-search"),_.bindAll(this,"close"),this.listenTo(this.collection,"update",this.updateList),this.listenTo(this.collection,"change",this.updateList),this.updateList(),b("#customize-controls").on("click keydown",function(c){var d=b(c.target).is(".add-new-widget, .add-new-widget *");b("body").hasClass("adding-widget")&&!d&&a.close()}),g.Widgets.Previewer.bind("url",this.close)},search:function(a){var b;this.collection.doSearch(a.target.value),this.selected&&!this.selected.is(":visible")&&(this.selected.removeClass("selected"),this.selected=null),this.selected&&!a.target.value&&(this.selected.removeClass("selected"),this.selected=null),!this.selected&&a.target.value&&(b=this.$el.find("> .widget-tpl:visible:first"),b.length&&this.select(b))},updateList:function(){this.$el.find(".widget-tpl").hide(),this.collection.each(function(a){var c=b("#widget-tpl-"+a.id);c.toggle(!a.get("is_disabled")),a.get("is_disabled")&&c.is(this.selected)&&(this.selected=null)})},select:function(a){this.selected=b(a),this.selected.siblings(".widget-tpl").removeClass("selected"),this.selected.addClass("selected")},focus:function(a){this.select(b(a.currentTarget))},_submit:function(a){("keypress"!==a.type||13===a.which||32===a.which)&&this.submit(b(a.currentTarget))},submit:function(a){var c,d;a||(a=this.selected),a&&this.currentSidebarControl&&(this.select(a),c=b(this.selected).data("widget-id"),d=this.collection.findWhere({id:c}),d&&(this.currentSidebarControl.addWidget(d.get("id_base")),this.close()))},open:function(a){this.currentSidebarControl=a,_(this.currentSidebarControl.getWidgetFormControls()).each(function(a){a.params.is_wide&&a.collapseForm()}),b("body").addClass("adding-widget"),this.$el.find(".selected").removeClass("selected"),this.collection.doSearch(""),this.$search.focus()},close:function(a){a=a||{},a.returnFocus&&this.currentSidebarControl&&this.currentSidebarControl.container.find(".add-new-widget").focus(),this.currentSidebarControl=null,this.selected=null,b("body").removeClass("adding-widget"),this.$search.val("")},keyboardAccessible:function(a){var c=13===a.which,d=27===a.which,e=40===a.which,f=38===a.which,g=null,h=this.$el.find("> .widget-tpl:visible:first"),i=this.$el.find("> .widget-tpl:visible:last"),j=b(a.target).is(this.$search);return e||f?(e?j?g=h:this.selected&&0!==this.selected.nextAll(".widget-tpl:visible").length&&(g=this.selected.nextAll(".widget-tpl:visible:first")):f&&(j?g=i:this.selected&&0!==this.selected.prevAll(".widget-tpl:visible").length&&(g=this.selected.prevAll(".widget-tpl:visible:first"))),this.select(g),void(g?g.focus():this.$search.focus())):void((!c||this.$search.val())&&(c?this.submit():d&&this.close({returnFocus:!0})))}}),g.Widgets.formSyncHandlers={rss:function(a,c,d){var e=c.find(".widget-error:first"),f=b("
    "+d+"
    ").find(".widget-error:first");e.length&&f.length?e.replaceWith(f):e.length?e.remove():f.length&&c.find(".widget-content:first").prepend(f)}},g.Widgets.WidgetControl=g.Control.extend({ready:function(){this._setupModel(),this._setupWideWidget(),this._setupControlToggle(),this._setupWidgetTitle(),this._setupReorderUI(),this._setupHighlightEffects(),this._setupUpdateUI(),this._setupRemoveUI()},_setupModel:function(){var a,b=this;g.Widgets.savedWidgetIds=g.Widgets.savedWidgetIds||[],a=function(){g.Widgets.savedWidgetIds[b.params.widget_id]=!0},g.bind("ready",a),g.bind("saved",a),this._updateCount=0,this.isWidgetUpdating=!1,this.liveUpdateMode=!0,this.setting.bind(function(a,c){_(c).isEqual(a)||b.isWidgetUpdating||b.updateWidget({instance:a})})},_setupWideWidget:function(){var a,c,d,e,f,h=this;this.params.is_wide&&(a=this.container.find(".widget-inside"),c=a.find("> .form"),d=b(".wp-full-overlay-sidebar-content:first"),this.container.addClass("wide-widget-control"),this.container.find(".widget-content:first").css({"max-width":this.params.width,"min-height":this.params.height}),f=function(){var d,e=h.container.offset().top,f=b(window).height(),g=c.outerHeight();a.css("max-height",f),d=Math.max(0,Math.min(Math.max(e,0),f-g)),a.css("top",d)},e=b("#customize-theme-controls"),this.container.on("expand",function(){f(),d.on("scroll",f),b(window).on("resize",f),e.on("expanded collapsed",f)}),this.container.on("collapsed",function(){d.off("scroll",f),b(window).off("resize",f),e.off("expanded collapsed",f)}),g.each(function(a){0===a.id.indexOf("sidebars_widgets[")&&a.bind(function(){h.container.hasClass("expanded")&&f()})}))},_setupControlToggle:function(){var a,b=this;this.container.find(".widget-top").on("click",function(a){a.preventDefault();var c=b.getSidebarWidgetsControl();c.is_reordering||b.toggleForm()}),a=this.container.find(".widget-control-close"),a.on("click",function(a){a.preventDefault(),b.collapseForm(),b.container.find(".widget-top .widget-action:first").focus()})},_setupWidgetTitle:function(){var a,b=this;a=function(){var a=b.setting().title,c=b.container.find(".in-widget-title");c.text(a?": "+a:"")},this.setting.bind(a),a()},_setupReorderUI:function(){var a,c,d,e,f=this;a=function(a){a.siblings(".selected").removeClass("selected"),a.addClass("selected");var b=a.data("id")===f.params.sidebar_id;f.container.find(".move-widget-btn").prop("disabled",b)},this.container.find(".widget-title-action").after(b(g.Widgets.data.tpl.widgetReorderNav)),c=b(_.template(g.Widgets.data.tpl.moveWidgetArea,{sidebars:_(g.Widgets.registeredSidebars.toArray()).pluck("attributes")})),this.container.find(".widget-top").after(c),e=function(){var d,e=c.find("li");d=e.filter(function(){return b(this).data("id")===f.params.sidebar_id}),e.each(function(){var c,e,f=b(this);c=f.data("id"),e=g.Widgets.registeredSidebars.get(c),f.toggle(e.get("is_rendered")),f.hasClass("selected")&&!e.get("is_rendered")&&a(d)})},e(),g.Widgets.registeredSidebars.on("change:is_rendered",e),d=this.container.find(".widget-reorder-nav"),d.find(".move-widget, .move-widget-down, .move-widget-up").on("click keypress",function(a){if("keypress"!==a.type||13===a.which||32===a.which)if(b(this).focus(),b(this).is(".move-widget"))f.toggleWidgetMoveArea();else{var c=b(this).is(".move-widget-down"),d=b(this).is(".move-widget-up"),e=f.getWidgetSidebarPosition();if(d&&0===e||c&&e===f.getSidebarWidgetsControl().setting().length-1)return;d?f.moveUp():f.moveDown(),b(this).focus()}}),this.container.find(".widget-area-select").on("click keypress","li",function(c){("keypress"!==event.type||13===event.which||32===event.which)&&(c.preventDefault(),a(b(this)))}),this.container.find(".move-widget-btn").click(function(){f.getSidebarWidgetsControl().toggleReordering(!1);var a,b,c,d,e,h=f.params.sidebar_id,i=f.container.find(".widget-area-select li.selected").data("id");a=g("sidebars_widgets["+h+"]"),b=g("sidebars_widgets["+i+"]"),c=Array.prototype.slice.call(a()),d=Array.prototype.slice.call(b()),e=f.getWidgetSidebarPosition(),c.splice(e,1),d.push(f.params.widget_id),a(c),b(d),f.focus()})},_setupHighlightEffects:function(){var a=this;this.container.on("mouseenter click",function(){a.setting.previewer.send("highlight-widget",a.params.widget_id)}),this.setting.bind(function(){a.setting.previewer.send("highlight-widget",a.params.widget_id)})},_setupUpdateUI:function(){var a,c,d,f,h,i=this;a=this.container.find(".widget:first"),c=a.find(".widget-content:first"),d=this.container.find(".widget-control-save"),d.val(e.saveBtnLabel),d.attr("title",e.saveBtnTooltip),d.removeClass("button-primary").addClass("button-secondary"),d.on("click",function(a){a.preventDefault(),i.updateWidget({disable_form:!0})}),f=_.debounce(function(){i.updateWidget()},250),this.container.find(".widget-content").on("keydown","input",function(a){13===a.which&&(a.preventDefault(),i.updateWidget({ignore_active_element:!0}))}),c.on("change input propertychange",":input",function(a){i.liveUpdateMode&&("change"===a.type?i.updateWidget():this.checkValidity&&this.checkValidity()&&f())}),this.setting.previewer.channel.bind("synced",function(){i.container.removeClass("previewer-loading")}),g.Widgets.Previewer.bind("widget-updated",function(a){a===i.params.widget_id&&i.container.removeClass("previewer-loading")}),g.Widgets.Previewer.bind("rendered-widgets",function(a){var b=!!a[i.params.widget_id];i.container.toggleClass("widget-rendered",b)}),h=g.Widgets.formSyncHandlers[this.params.widget_id_base],h&&b(document).on("widget-synced",function(b,c){a.is(c)&&h.apply(document,arguments)})},_setupRemoveUI:function(){var a,b,c=this;a=this.container.find("a.widget-control-remove"),a.on("click",function(a){a.preventDefault();var b;b=c.container.next().is(".customize-control-widget_form")?c.container.next().find(".widget-action:first"):c.container.prev().is(".customize-control-widget_form")?c.container.prev().find(".widget-action:first"):c.container.next(".customize-control-sidebar_widgets").find(".add-new-widget:first"),c.container.slideUp(function(){var a,d,e=g.Widgets.getSidebarWidgetControlContainingWidget(c.params.widget_id);e&&(a=e.setting().slice(),d=_.indexOf(a,c.params.widget_id),-1!==d&&(a.splice(d,1),e.setting(a),b.focus()))})}),b=function(){a.text(e.removeBtnLabel),a.attr("title",e.removeBtnTooltip)},this.params.is_new?g.bind("saved",b):b()},_getInputs:function(a){return b(a).find(":input[name]")},_getInputsSignature:function(a){var c=_(a).map(function(a){var c,d=b(a);return c=d.is(":checkbox, :radio")?[d.attr("id"),d.attr("name"),d.prop("value")]:[d.attr("id"),d.attr("name")],c.join(",")});return c.join(";")},_getInputStatePropertyName:function(a){var c=b(a);return c.is(":radio, :checkbox")?"checked":"value"},getSidebarWidgetsControl:function(){var a,b;return a="sidebars_widgets["+this.params.sidebar_id+"]",(b=g.control(a))?b:void 0},updateWidget:function(c){var d,f,h,i,j,k,l,m,n,o,p,q=this;c=b.extend({instance:null,complete:null,ignore_active_element:!1},c),d=c.instance,f=c.complete,this._updateCount+=1,j=this._updateCount,h=this.container.find(".widget:first"),i=h.find(".widget-content:first"),i.find(".widget-error").remove(),this.container.addClass("widget-form-loading"),this.container.addClass("previewer-loading"),n=g.state("processing"),n(n()+1),this.liveUpdateMode||this.container.addClass("widget-form-disabled"),k={},k.action="update-widget",k.wp_customize="on",k.nonce=g.Widgets.data.nonce,l=b.param(k),m=this._getInputs(i),m.each(function(){var a=b(this),c=q._getInputStatePropertyName(this);a.data("state"+j,a.prop(c))}),l+=d?"&"+b.param({sanitized_widget_setting:JSON.stringify(d)}):"&"+m.serialize(),l+="&"+i.find("~ :input").serialize(),o=b.post(a.ajax.settings.url,l),o.done(function(a){var d,k,l,n,o=!1;return"0"===a?(g.Widgets.Previewer.preview.iframe.hide(),void g.Widgets.Previewer.login().done(function(){q.updateWidget(c),g.Widgets.Previewer.preview.iframe.show()})):"-1"===a?void g.Widgets.Previewer.cheatin():void(a.success?(k=b("
    "+a.data.form+"
    "),l=q._getInputs(k),n=q._getInputsSignature(m)===q._getInputsSignature(l),n&&!q.liveUpdateMode&&(q.liveUpdateMode=!0,q.container.removeClass("widget-form-disabled"),q.container.find('input[name="savewidget"]').hide()),n&&q.liveUpdateMode?(m.each(function(a){var d,e,f,g=b(this),h=b(l[a]),i=q._getInputStatePropertyName(this);d=g.data("state"+j),e=h.prop(i),g.data("sanitized",e),f=d!==e&&(c.ignore_active_element||!g.is(document.activeElement)),f&&g.prop(i,e)}),b(document).trigger("widget-synced",[h,a.data.form])):q.liveUpdateMode?(q.liveUpdateMode=!1,q.container.find('input[name="savewidget"]').show(),o=!0):(i.html(a.data.form),q.container.removeClass("widget-form-disabled"),b(document).trigger("widget-updated",[h])),p=!o&&!_(q.setting()).isEqual(a.data.instance),p?(q.isWidgetUpdating=!0,q.setting(a.data.instance),q.isWidgetUpdating=!1):q.container.removeClass("previewer-loading"),f&&f.call(q,null,{no_change:!p,ajax_finished:!0})):(d=e.error,a.data&&a.data.message&&(d=a.data.message),f?f.call(q,d):i.prepend('

    '+d+"

    ")))}),o.fail(function(a,b){f&&f.call(q,b)}),o.always(function(){q.container.removeClass("widget-form-loading"),m.each(function(){b(this).removeData("state"+j)}),n(n()-1)})},expandControlSection:function(){var a=this.container.closest(".accordion-section");a.hasClass("open")||a.find(".accordion-section-title:first").trigger("click")},expandForm:function(){this.toggleForm(!0)},collapseForm:function(){this.toggleForm(!1)},toggleForm:function(a){var b,c,d,e=this;b=this.container.find("div.widget:first"),c=b.find(".widget-inside:first"),"undefined"==typeof a&&(a=!c.is(":visible")),c.is(":visible")!==a&&(a?(g.control.each(function(a){e.params.type===a.params.type&&e!==a&&a.collapseForm()}),d=function(){e.container.removeClass("expanding"),e.container.addClass("expanded"),e.container.trigger("expanded")},e.params.is_wide?c.fadeIn("fast",d):c.slideDown("fast",d),e.container.trigger("expand"),e.container.addClass("expanding")):(d=function(){e.container.removeClass("collapsing"),e.container.removeClass("expanded"),e.container.trigger("collapsed")},e.container.trigger("collapse"),e.container.addClass("collapsing"),e.params.is_wide?c.fadeOut("fast",d):c.slideUp("fast",function(){b.css({width:"",margin:""}),d()})))},focus:function(){this.expandControlSection(),this.expandForm(),this.container.find(".widget-content :focusable:first").focus()},getWidgetSidebarPosition:function(){var a,b;return a=this.getSidebarWidgetsControl().setting(),b=_.indexOf(a,this.params.widget_id),-1!==b?b:void 0},moveUp:function(){this._moveWidgetByOne(-1)},moveDown:function(){this._moveWidgetByOne(1)},_moveWidgetByOne:function(a){var b,c,d,e;b=this.getWidgetSidebarPosition(),c=this.getSidebarWidgetsControl().setting,d=Array.prototype.slice.call(c()),e=d[b+a],d[b+a]=this.params.widget_id,d[b]=e,c(d)},toggleWidgetMoveArea:function(a){var c,d=this;c=this.container.find(".move-widget-area"),"undefined"==typeof a&&(a=!c.hasClass("active")),a&&(c.find(".selected").removeClass("selected"),c.find("li").filter(function(){return b(this).data("id")===d.params.sidebar_id}).addClass("selected"),this.container.find(".move-widget-btn").prop("disabled",!0)),c.toggleClass("active",a)},highlightSectionAndControl:function(){var a;a=this.container.is(":hidden")?this.container.closest(".control-section"):this.container,b(".highlighted").removeClass("highlighted"),a.addClass("highlighted"),setTimeout(function(){a.removeClass("highlighted")},500)}}),g.Widgets.SidebarControl=g.Control.extend({ready:function(){var a=this;a.control_section=a.container.closest(".control-section"),a.section_content=a.container.closest(".accordion-section-content"),a._setupModel(),a._setupSortable(),a._setupAddition(),a._applyCardinalOrderClassNames()},_setupModel:function(){var a=this,d=g.Widgets.registeredSidebars.get(a.params.sidebar_id);a.setting.bind(function(d,e){var f,h,i,j=_(e).difference(d);d=_(d).filter(function(a){var b=c(a);return!!g.Widgets.availableWidgets.findWhere({id_base:b.id_base})}),f=_(d).map(function(b){var c=g.Widgets.getWidgetFormControlForWidget(b);return c||(c=a.addWidget(b)),c}),f.sort(function(a,b){var c=_.indexOf(d,a.params.widget_id),e=_.indexOf(d,b.params.widget_id);return c===e?0:e>c?-1:1}),h=a.section_content.find(".customize-control-sidebar_widgets"),i=_(f).map(function(a){return a.container[0]}),h.before(i),a._applyCardinalOrderClassNames(),_(f).each(function(b){b.params.sidebar_id=a.params.sidebar_id}),_(j).each(function(d){setTimeout(function(){var e,f,h,i,j,k=!1;g.each(function(b){if(b.id!==a.setting.id&&0===b.id.indexOf("sidebars_widgets[")&&"sidebars_widgets[wp_inactive_widgets]"!==b.id){var c,e=b();c=_.indexOf(e,d),-1!==c&&(k=!0)}}),k||(e=g.Widgets.getWidgetFormControlForWidget(d),f=e&&b.contains(document,e.container[0])&&!b.contains(a.section_content[0],e.container[0]),e&&!f&&(g.control.remove(e.id),e.container.remove()),g.Widgets.savedWidgetIds[d]&&(h=g.value("sidebars_widgets[wp_inactive_widgets]")().slice(),h.push(d),g.value("sidebars_widgets[wp_inactive_widgets]")(_(h).unique())),i=c(d).id_base,j=g.Widgets.availableWidgets.findWhere({id_base:i}),j&&!j.get("is_multi")&&j.set("is_disabled",!1))})})}),g.Widgets.Previewer.bind("rendered-sidebars",function(b){var c=!!b[a.params.sidebar_id];d.set("is_rendered",c)}),d.on("change:is_rendered",function(){var a,c="#accordion-section-sidebar-widgets-"+this.get("id");a=b(c),this.get("is_rendered")?a.stop().slideDown(function(){b(this).css("height","auto")}):(a.hasClass("open")&&a.find(".accordion-section-title").trigger("click"),a.stop().slideUp())})},_setupSortable:function(){var a=this;a.is_reordering=!1,a.section_content.sortable({items:"> .customize-control-widget_form",handle:".widget-top",axis:"y",connectWith:".accordion-section-content:has(.customize-control-sidebar_widgets)",update:function(){var c,d=a.section_content.sortable("toArray");c=b.map(d,function(a){return b("#"+a).find(":input[name=widget-id]").val()}),a.setting(c)}}),a.control_section.find(".accordion-section-title").droppable({accept:".customize-control-widget_form",over:function(){a.control_section.hasClass("open")||(a.control_section.addClass("open"),a.section_content.toggle(!1).slideToggle(150,function(){a.section_content.sortable("refreshPositions")}))}}),a.container.find(".reorder-toggle").on("click keydown",function(b){("keydown"!==b.type||13===b.which||32===b.which)&&a.toggleReordering(!a.is_reordering)})},_setupAddition:function(){var a=this;a.container.find(".add-new-widget").on("click keydown",function(c){("keydown"!==c.type||13===c.which||32===c.which)&&(a.section_content.hasClass("reordering")||(b("body").hasClass("adding-widget")?g.Widgets.availableWidgetsPanel.close():g.Widgets.availableWidgetsPanel.open(a)))})},_applyCardinalOrderClassNames:function(){var a=this;a.section_content.find(".customize-control-widget_form").removeClass("first-widget").removeClass("last-widget").find(".move-widget-down, .move-widget-up").prop("tabIndex",0),a.section_content.find(".customize-control-widget_form:first").addClass("first-widget").find(".move-widget-up").prop("tabIndex",-1),a.section_content.find(".customize-control-widget_form:last").addClass("last-widget").find(".move-widget-down").prop("tabIndex",-1)},toggleReordering:function(a){var b=this;a=Boolean(a),a!==b.section_content.hasClass("reordering")&&(b.is_reordering=a,b.section_content.toggleClass("reordering",a),a&&_(b.getWidgetFormControls()).each(function(a){a.collapseForm()}))},getWidgetFormControls:function(){var a,b=this;return a=_(b.setting()).map(function(a){var b=d(a),c=g.control(b);if(!c)throw new Error("Unable to find widget_form control for "+a);return c})},addWidget:function(a){var d,e,f,h,i,j,k,l,m,n=this,o="widget_form",p=c(a),q=p.number,r=p.id_base,s=g.Widgets.availableWidgets.findWhere({id_base:r});if(!s)throw new Error("Widget unexpectedly not found.");if(q&&!s.get("is_multi"))throw new Error("Did not expect a widget number to be supplied for a non-multi widget");return s.get("is_multi")&&!q&&(s.set("multi_number",s.get("multi_number")+1),q=s.get("multi_number")),d=b("#widget-tpl-"+s.get("id")).html(),s.get("is_multi")?d=d.replace(/<[^<>]+>/g,function(a){return a.replace(/__i__|%i%/g,q)}):s.set("is_disabled",!0),e=b(d),f=b("
  • "),f.addClass("customize-control"),f.addClass("customize-control-"+o),f.append(e),f.find("> .widget-icon").remove(),s.get("is_multi")&&(f.find('input[name="widget_number"]').val(q),f.find('input[name="multi_number"]').val(q)),a=f.find('[name="widget-id"]').val(),f.hide(),h="widget_"+s.get("id_base"),s.get("is_multi")&&(h+="["+q+"]"),f.attr("id","customize-control-"+h.replace(/\]/g,"").replace(/\[/g,"-")),n.container.after(f),i=g.has(h),i||(m={transport:"refresh",previewer:n.setting.previewer},g.create(h,h,{},m)),j=g.controlConstructor[o],k=new j(h,{params:{settings:{"default":h},sidebar_id:n.params.sidebar_id,widget_id:a,widget_id_base:s.get("id_base"),type:o,is_new:!i,width:s.get("width"),height:s.get("height"),is_wide:s.get("is_wide")},previewer:n.setting.previewer}),g.control.add(h,k),g.each(function(b){if(b.id!==n.setting.id&&0===b.id.indexOf("sidebars_widgets[")){var c,d=b().slice();c=_.indexOf(d,a),-1!==c&&(d.splice(c),b(d))}}),l=n.setting().slice(),-1===_.indexOf(l,a)&&(l.push(a),n.setting(l)),f.slideDown(function(){i?(k.expandForm(),k.updateWidget({instance:k.setting(),complete:function(a){if(a)throw a;k.focus()}})):k.focus()}),b(document).trigger("widget-added",[e]),k}}),b.extend(g.controlConstructor,{widget_form:g.Widgets.WidgetControl,sidebar_widgets:g.Widgets.SidebarControl}),g.bind("ready",function(){g.Widgets.availableWidgetsPanel=new g.Widgets.AvailableWidgetsPanelView({collection:g.Widgets.availableWidgets}),g.Widgets.Previewer.bind("highlight-widget-control",g.Widgets.highlightWidgetFormControl),g.Widgets.Previewer.bind("focus-widget-control",g.Widgets.focusWidgetFormControl)}),f=g.Previewer,g.Previewer=f.extend({initialize:function(a,b){g.Widgets.Previewer=this,f.prototype.initialize.call(this,a,b),this.bind("refresh",this.refresh)}}),g.Widgets.highlightWidgetFormControl=function(a){var b=g.Widgets.getWidgetFormControlForWidget(a);b&&b.highlightSectionAndControl()},g.Widgets.focusWidgetFormControl=function(a){var b=g.Widgets.getWidgetFormControlForWidget(a);b&&b.focus()},g.Widgets.getSidebarWidgetControlContainingWidget=function(a){var b=null;return g.control.each(function(c){"sidebar_widgets"===c.params.type&&-1!==_.indexOf(c.setting(),a)&&(b=c)}),b},g.Widgets.getWidgetFormControlForWidget=function(a){var b=null;return g.control.each(function(c){"widget_form"===c.params.type&&c.params.widget_id===a&&(b=c)}),b}}}(window.wp,jQuery); \ No newline at end of file