diff --git a/README.md b/README.md index e3df399..a795327 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,8 @@ Use Greenlet as base theme and as a starting point to create a child theme accor - Powerful Header and Footer builder - Add Logo, Menu & Togglers to headers & footers - Header and Footer Contents from Widgets or Template File +- Content Layout - Section ordering +- Content Layout - Section visibility - Pagination - Default (Newer and Older Posts) - Pagination - Numbered - Pagination - Numbered Ajax diff --git a/changelog.txt b/changelog.txt index afdcf0c..9c32a36 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,20 @@ +Version 2.5.0 / Release: 07-02-2021 +=================== +New: Post sections ordering +New: Post sections visibility +New: Section layout for Post list, Single Post & Page +New: Editable copyright section +New: Background repeat option +Improvement: Better search bar styling +Improvement: Bootstrap styles fix +Improvement: Bootstrap upgrade to 4.6.0 +Improvement: Better customizer Content Layout options +Improvement: Customizer options rearrange & hint +Improvement: Replace react-sortable with react-sorablejs +Improvement: Handle Deprecated functions +Fix: Few frontend styles fixes +Fix: Removed legacy font control + Version 2.4.0 / Release: 28-01-2021 =================== New: Option to set primary header, footer diff --git a/comments.php b/comments.php index 849201d..5082a65 100644 --- a/comments.php +++ b/comments.php @@ -7,7 +7,7 @@ * @package greenlet */ -if ( post_password_required() ) { +if ( post_password_required() || ! comments_open() ) { return; } diff --git a/library/addons/colorwings/class-colorwings-admin.php b/library/addons/colorwings/class-colorwings-admin.php index f48796b..1161d8d 100644 --- a/library/addons/colorwings/class-colorwings-admin.php +++ b/library/addons/colorwings/class-colorwings-admin.php @@ -97,7 +97,7 @@ public function add_controls( $wp_customize ) { $wp_customize->add_section( 'extra_styles', array( - 'title' => __( 'Extra Styles', 'greenlet' ), + 'title' => __( 'Style Editor', 'greenlet' ), 'priority' => 900, 'capability' => 'edit_theme_options', ) diff --git a/library/addons/colorwings/js/color-wings-preview.js b/library/addons/colorwings/js/color-wings-preview.js index 64b65c3..732da4f 100644 --- a/library/addons/colorwings/js/color-wings-preview.js +++ b/library/addons/colorwings/js/color-wings-preview.js @@ -1324,7 +1324,7 @@ }, focusDetails.selector)); } - var styles = "#cw-domtree{width:100%;bottom:0;position:fixed;background:#eee;font-size:14px;color:#444;line-height:16px;margin:0}#cw-domtree .cw-domtree-list{white-space:nowrap;list-style-type:none;margin:0;border-top:1px solid #bbb}#cw-domtree .cw-domtree-node{display:inline-block;background-color:#ddd;margin:0;position:relative}#cw-domtree .cw-node-tag{position:relative}#cw-domtree .cw-node-tag button{margin:0;text-transform:none;border:none;letter-spacing:normal;font-size:12px;font-weight:500;height:24px;line-height:24px;padding:0 16px 0 20px;background:#ddd;color:#555;transition:none}#cw-domtree .cw-node-tag .cw-target{display:none;position:absolute;right:-3px;top:6px;width:12px;height:12px;border-radius:6px;background:center/contain no-repeat url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12px' height='12px' viewBox='0 0 12 12'%3E%3Crect fill='%23333' x='5.5' y='.5' width='1' height='3.5'/%3E%3Crect fill='%23333' x='5.5' y='8' width='1' height='3.5'/%3E%3Crect fill='%23333' x='.5' y='5.5' width='3.5' height='1'/%3E%3Crect fill='%23333' x='8' y='5.5' width='3.5' height='1'/%3E%3C/svg%3E\");padding:0;z-index:3}#cw-domtree .cw-node-tag:before{content:\" \";display:block;width:0;height:0;border-top:12px solid transparent;border-bottom:12px solid transparent;border-left:10px solid rgba(0,0,0,0.4);position:absolute;top:0;margin-left:1px;left:100%;z-index:1}#cw-domtree .cw-node-tag:after{content:\" \";display:block;width:0;height:0;border-top:12px solid transparent;border-bottom:12px solid transparent;border-left:10px solid #ddd;position:absolute;top:0;left:100%;z-index:2}#cw-domtree .cw-domtree-node:hover,#cw-domtree .cw-domtree-node:hover .cw-node-tag button,#cw-domtree .cw-domtree-node .selected button{background-color:var(--accent);color:#fff}#cw-domtree .cw-domtree-node:hover .cw-node-tag:after,#cw-domtree .cw-domtree-node .cw-node-tag.selected:after{border-left-color:var(--accent)}#cw-domtree .cw-domtree-node:not(:last-child):hover .cw-target{display:block;background-color:#fff}#cw-domtree .cw-domtree-node .selected button{color:#fff}#cw-domtree .cw-node-attributes{display:none;position:absolute;bottom:100%;background:#eee;height:auto;min-width:15em;color:#444;line-height:16px;margin:0;padding:0 5px;transition:all .5s ease-in-out;border:1px solid #bbb;border-radius:3px;left:0}#cw-domtree .cw-select{display:flex;flex-wrap:wrap;border:none;border-bottom:1px solid #ccc;border-radius:0;box-shadow:none;background:#eee;padding:5px 0}#cw-domtree .cw-select:last-child{border-bottom:none}#cw-domtree .cw-select .cw-select-option{margin:2px;border:none}#cw-domtree .cw-select button{margin:0;text-transform:none;font-weight:500;letter-spacing:normal;height:22px;line-height:22px;font-size:12px;border-radius:3px;padding:0 8px;background:#fff;color:#444;border:none}#cw-domtree .cw-select button.selected{background-color:var(--accent);color:#fff}#cw-domtree .cw-select button:hover{background:#f1f7eb}#cw-domtree .cw-select button.selected:hover{background:#6fa13b}#cw-domtree .cw-domtree-node:hover>.cw-node-attributes{display:block}\n"; + var styles = "#cw-domtree{width:100%;bottom:0;position:fixed;background:#eee;font-size:14px;color:#444;line-height:16px;margin:0}#cw-domtree .cw-domtree-list{white-space:nowrap;list-style-type:none;margin:0;border-top:1px solid #bbb}#cw-domtree .cw-domtree-node{display:inline-block;background-color:#ddd;margin:0;position:relative}#cw-domtree .cw-node-tag{position:relative}#cw-domtree .cw-node-tag button{margin:0;text-transform:none;border:none;letter-spacing:normal;font-size:12px;font-weight:500;height:24px;line-height:24px;padding:0 16px 0 20px;background:#ddd;color:#555;transition:none}#cw-domtree .cw-node-tag .cw-target{display:none;position:absolute;right:-3px;top:6px;width:12px;height:12px;border-radius:6px;background:center/contain no-repeat url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12px' height='12px' viewBox='0 0 12 12'%3E%3Crect fill='%23333' x='5.5' y='.5' width='1' height='3.5'/%3E%3Crect fill='%23333' x='5.5' y='8' width='1' height='3.5'/%3E%3Crect fill='%23333' x='.5' y='5.5' width='3.5' height='1'/%3E%3Crect fill='%23333' x='8' y='5.5' width='3.5' height='1'/%3E%3C/svg%3E\");padding:0;z-index:3}#cw-domtree .cw-node-tag:before{content:\" \";display:block;width:0;height:0;border-top:12px solid transparent;border-bottom:12px solid transparent;border-left:10px solid rgba(0,0,0,0.4);position:absolute;top:0;margin-left:1px;left:100%;z-index:1}#cw-domtree .cw-node-tag:after{content:\" \";display:block;width:0;height:0;border-top:12px solid transparent;border-bottom:12px solid transparent;border-left:10px solid #ddd;position:absolute;top:0;left:100%;z-index:2}#cw-domtree .cw-domtree-node:hover,#cw-domtree .cw-domtree-node:hover .cw-node-tag button,#cw-domtree .cw-domtree-node .selected button{background-color:var(--accent);color:#fff}#cw-domtree .cw-domtree-node:hover .cw-node-tag:after,#cw-domtree .cw-domtree-node .cw-node-tag.selected:after{border-left-color:var(--accent)}#cw-domtree .cw-domtree-node:not(:last-child):hover .cw-target{display:block;background-color:#fff}#cw-domtree .cw-domtree-node .selected button{color:#fff}#cw-domtree .cw-node-attributes{display:none;position:absolute;bottom:100%;background:#eee;height:auto;min-width:15em;color:#444;line-height:16px;margin:0;padding:0 5px;transition:all .5s ease-in-out;border:1px solid #bbb;border-radius:3px;left:0}#cw-domtree .cw-select{display:flex;flex-wrap:wrap;border:none;border-bottom:1px solid #ccc;border-radius:0;box-shadow:none;background:#eee;padding:5px 0}#cw-domtree .cw-select:last-child{border-bottom:none}#cw-domtree .cw-select .cw-select-option{margin:2px;border:none}#cw-domtree .cw-select button{margin:0;text-transform:none;font-weight:500;letter-spacing:normal;height:22px;line-height:22px;font-size:12px;border-radius:3px;padding:0 8px;background:#fff;color:#444;border:none}#cw-domtree .cw-select button.selected{background-color:var(--accent);color:#fff}#cw-domtree .cw-select button:hover{background:var(--accentLight)}#cw-domtree .cw-select button.selected:hover{background:var(--accentDark)}#cw-domtree .cw-domtree-node:hover>.cw-node-attributes{display:block}\n"; function DomTree() { var _useStore = useStore(PreviewStore), diff --git a/library/addons/colorwings/js/color-wings-preview.min.js b/library/addons/colorwings/js/color-wings-preview.min.js index 5ee90d6..8cb46f1 100644 --- a/library/addons/colorwings/js/color-wings-preview.min.js +++ b/library/addons/colorwings/js/color-wings-preview.min.js @@ -1 +1 @@ -!function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,o=new Array(t);n0?u:0,borderRightWidth:d>0?d:0,borderBottomWidth:f>0?f:0,borderLeftWidth:h>0?h:0}};O.setHighlightStyles(m)}j(e,n)},C=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];O.setHighlightStyles({box:{},main:{},padding:{},margin:{}}),T(e)},P=cw.Evt,D=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return n.push({el:t}),t.parentNode!==document&&e(t.parentNode,n),n},N=["clearfix","row","wrap","hentry"],A=function(e){var t="";return e.forEach((function(e,n){var o=e.el;e.cwSelected={classSelected:[]};var r="";if(""!==o.id&&!/\w*-\d+/g.test("".concat(o.id))&&"#".concat(o.id," ").concat(t).length<=30)return e.cwSelected.idSelected=!0,void(t=0===n?"#".concat(o.id):"#".concat(o.id," ").concat(t));var c=[];if(o.classList.forEach((function(n){c.length>=2||/\w*-\d+/g.test("".concat(n))||N.includes(n)||"".concat(r,".").concat(n," ").concat(t).length>=30||(e.cwSelected.classSelected.push(n),r="".concat(r,".").concat(n),c.push(n))})),0===o.classList.length){var i=o.tagName.toLowerCase();if("html"===i&&0!==t.length)return;"".concat(i).concat(r," ").concat(t).length<=30&&(r="".concat(i).concat(r),e.cwSelected.tagSelected=!0)}"".concat(r," ").concat(t).length>=30?e.cwSelected={classSelected:[]}:t=0===n?r:"".concat(""===r?"":r+" ").concat(t)})),t},F=function(e){if(null===e)return"";var t=D(e);return A(t)},W=function(e){var t=window.pageYOffset+e.top;return{top:{borderTopWidth:"1px",width:e.width,left:e.left,top:t},right:{borderRightWidth:"1px",height:e.height,left:e.right-1,top:t},bottom:{borderTopWidth:"1px",width:e.width,left:e.left,top:window.pageYOffset+e.bottom-1},left:{borderRightWidth:"1px",height:e.height,left:e.left,top:t}}},I=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!O.isFocused()||!1!==t){var n="";if(void 0!==e&&!1!==e||void 0===S)if(void 0===e.target){if(""===e)return;var o=h(document.querySelectorAll(e));o.includes(S)||(S=o[0]),n=e}else S=e.target;else;!1===t&&(window.cwSelectorsLocal=window.cwSelectorsLocal||{},Object.entries(window.cwSelectorsLocal).forEach((function(e){var t=f(e,2),o=t[0],r=t[1].localTarget;S===r&&(n=o)}))),""===n&&(n=F(S));var r=S.getBoundingClientRect(),c=window.pageYOffset+r.top,i=c-24=document.body.clientHeight&&(i=0);var a={focusLines:W(r),focusDetails:{style:{left:r.left,top:i,height:"24px",background:"var(--accent)"},selector:n}};O.moveFocus(a)}},z=function(e){var t,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];"string"!=typeof e&&(t=e,e=F(e)),L(e,t,n)},M=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;e&&(e.preventDefault(),e.stopPropagation());var n=O.get().focusDetails.selector;O.isFocused()&&"lock"!==t?(O.unlockFocus(),P.emit("focus-unlocked",n),C()):(O.lockFocus(),P.emit("focus-locked",{currentSelector:n,currentTarget:S}),C(),j(n)),cw.MainStore.setSelectorClass()},_=function(){O.reduceFocusOpacity()},B=function(){O.increaseFocusOpacity()},H=function(e){void 0!==S&&"string"==typeof e&&(window.cwSelectorsLocal=window.cwSelectorsLocal||{},Object.entries(window.cwSelectorsLocal).forEach((function(e){var t=f(e,2),n=t[0],o=t[1].localTarget;S===o&&delete window.cwSelectorsLocal[n]})),window.cwSelectorsLocal[e.trim()]={localTarget:S,domTree:O.get().domTree})},q=function(e){var t=null;try{t=document.querySelector(e)}catch(e){}null===t?cw.MainStore.setSelectorClass("invalid"):(I(e,!0),M(!1,"lock"),H(e))},U=function(e){I(e,!0),M(!1,"lock"),H(e)};function Y(t){var n,o,r;if("object"!==e(t)||null===t)return t;for(r in n=Array.isArray(t)?[]:{},t)o=t[r],n[r]=Y(o);return n}var V,Q,X=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"cw-applied-styles",t=document.createElement("style");return t.id=e,document.head.appendChild(t),t},$=X(),G=X("cw-temp-styles"),J=(V="cw-applied-font",(Q=document.createElement("link")).id=V,Q.rel="stylesheet",document.head.appendChild(Q),Q),K=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=null;return function(){var r=arguments,c=this,i=n&&!o,a=function(){return e.apply(c,r)};clearTimeout(o),o=setTimeout(a,t),i&&a()}}((function(){void 0!==S&&(O.unlockFocus(),I(!1,!1),O.lockFocus())}),500,!0);cw.StylesStore.registerSpecialSubscriber((function(e){return G.innerHTML=e})),cw.StylesStore.registerSpecialSubscriber((function(){var e=cw.MainStore.get(),t=e.currentPage,n=e.allFonts;for(var o in n[t])if(n[t].hasOwnProperty(o)){var r=n[t][o];if("google"===o){var c=[];for(var i in r)if(r.hasOwnProperty(i)){var a=r[i],l=i.replace(" ","+");c.push("".concat(l,":").concat(a.join(",")))}J.href="https://fonts.googleapis.com/css?family=".concat(c.join("|"),"&display=fallback")}}}),"fontManager"),cw.StylesStore.subscribe((function(){var e=cw.StylesStore.get().allOutputs,t="",n={templates:"",id:""};for(var o in e)e.hasOwnProperty(o)&&("global"===o?t+=e.global:o in window.cwPreviewObject.pages&&window.cwPreviewObject.pages[o]?n.templates+=e[o]:"page"in window.cwPreviewObject&&"id"in window.cwPreviewObject.page&&o===window.cwPreviewObject.page.id.toString()&&(n.id+=e[o]));$.innerHTML=t+n.templates+n.id,G.innerHTML=""})),cw.StylesStore.subscribe(K),window.addEventListener("resize",K);var Z=document.querySelectorAll("body > *:not(script):not(style):not(#color-wings)");function ee(){Z.forEach((function(e){e.addEventListener("mouseover",I),e.addEventListener("click",M,!0)})),document.body.addEventListener("mouseleave",_),document.body.addEventListener("mouseenter",B)}function te(){Z.forEach((function(e){e.removeEventListener("mouseover",I),e.removeEventListener("click",M,!0)})),document.body.removeEventListener("mouseleave",_),document.body.removeEventListener("mouseenter",B)}function ne(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"show",t=document.getElementById("color-wings");null!==t&&(t.style.display="show"===e?"":"none")}cw.Evt.on("preview-object-ready",(function(){cw.Evt.off("mount-colorwings",ee),cw.Evt.off("unmount-colorwings",te),cw.Evt.off("select-element",U),cw.Evt.off("update-selector",q),cw.Evt.off("highlight-elements",z),cw.Evt.off("de-highlight-elements",C),cw.Evt.off("toggle-preview",ne)})),cw.Evt.on("mount-colorwings",ee),cw.Evt.on("unmount-colorwings",te),cw.Evt.on("select-element",U),cw.Evt.on("update-selector",q),cw.Evt.on("highlight-elements",z),cw.Evt.on("de-highlight-elements",C),cw.Evt.on("toggle-preview",ne);var oe=[{name:"Body",sel:"body"},{name:"Header",sel:".site-header"},{name:"Content Wrapper",sel:".site-content"},{name:"Main Content",sel:".main"},{name:"Sidebar",sel:".sidebar"},{name:"Footer",sel:".site-footer"},{name:"Buttons",sel:"button"},{name:"Links",sel:"a"},{name:"Inputs",sel:"input"},{name:"H1",sel:"h1"},{name:"H2",sel:"h2"},{name:"Paragraphs",sel:"p"},{name:"Code",sel:"code"},{name:"Article Card",sel:".entry-article"}].filter((function(e){return null!==document.querySelector(e.sel)}));cw.MainStore.setQuickSelectors(oe);var re=function(e){var t=O.get(),n=t.currentTarget,o=t.showDomTree;if(n!==e.currentTarget||!o){var r=!1;window.cwSelectorsLocal=window.cwSelectorsLocal||{},Object.entries(window.cwSelectorsLocal).forEach((function(t){var n=f(t,2),o=(n[0],n[1]),c=o.localTarget,i=o.domTree;e.currentTarget===c&&(r=i)})),!1===r&&(r=function(e){if(!1===e)return[];var t=[];return function(e){if(null===e)return"";var t=D(e);return A(t),t}(e).forEach((function(e){var n={tag:{},id:{},cls:{}};n.tag.name=e.el.tagName.toLowerCase(),n.tag.selected=!(!e.cwSelected||!e.cwSelected.tagSelected),""!==e.el.id&&(n.id.name="#".concat(e.el.id),n.id.selected=!(!e.cwSelected||!e.cwSelected.idSelected)),e.el.classList.forEach((function(t){n.cls[".".concat(t)]={name:".".concat(t),selected:!!e.cwSelected&&e.cwSelected.classSelected.includes(t)}})),t.unshift(n)})),t}(e.currentTarget)),O.showDomTree(e,r)}},ce=function(){return O.hideDomTree()},ie=function(e){var t=function(e){var t="";return e.forEach((function(e){""===t||t.endsWith(" ")||(t+=" "),"name"in e.tag&&e.tag.selected&&(t+=e.tag.name),"name"in e.id&&e.id.selected&&(t+=e.id.name),Object.values(e.cls).forEach((function(e){e.selected&&(t+=e.name)}))})),t}(e);cw.Evt.emit("select-element",t)},ae=function(e){for(var t=O.get().currentTarget;e>0;)t=t.parentElement,e--;return t},le=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];!0===t?cw.Evt.emit("de-highlight-elements",!0):cw.Evt.emit("highlight-elements",ae(e),!0)};function se(){var e=E(O),t=e.focusLines,n=e.focusOpacity;return React.createElement("div",{id:"cw-focuser",style:{opacity:n}},React.createElement("div",{className:"cw-focus-line",id:"cw-focuser-top",style:t.top}),React.createElement("div",{className:"cw-focus-line",id:"cw-focuser-right",style:t.right}),React.createElement("div",{className:"cw-focus-line",id:"cw-focuser-bottom",style:t.bottom}),React.createElement("div",{className:"cw-focus-line",id:"cw-focuser-left",style:t.left}))}function ue(){var e=E(O),t=e.focusDetails,n=e.detailsOpacity,o=i(i({},t.style),{},{opacity:n});return React.createElement("div",{id:"cw-focus-details",className:"cw-focus-details",style:o},React.createElement("div",{id:"cw-focus-selector",className:"cw-selector"},t.selector))}cw.Evt.on("preview-object-ready",(function(){cw.Evt.off("focus-locked",re),cw.Evt.off("focus-unlocked",ce)})),cw.Evt.on("focus-locked",re),cw.Evt.on("focus-unlocked",ce);function de(){var e=E(O),t=e.showDomTree,n=e.domTree;return React.createElement("div",{id:"cw-domtree"},t?function(e){var t=function(){return setTimeout((function(){return ie(e)}),100)},n=[];return e.forEach((function(o,r){n.push(React.createElement("li",{key:"".concat(o.tag.name,"-").concat(r),className:"cw-domtree-node"},React.createElement(fe,{element:o,callUpdateSelector:t,ri:e.length-r-1}),o.id.name||o.cls&&Object.keys(o.cls).length>0?React.createElement("div",{className:"cw-node-attributes"},React.createElement(he,{element:o,callUpdateSelector:t})):null))})),React.createElement("ul",{className:"cw-domtree-list"},n)}(n):"",React.createElement("style",{type:"text/css"},"#cw-domtree{width:100%;bottom:0;position:fixed;background:#eee;font-size:14px;color:#444;line-height:16px;margin:0}#cw-domtree .cw-domtree-list{white-space:nowrap;list-style-type:none;margin:0;border-top:1px solid #bbb}#cw-domtree .cw-domtree-node{display:inline-block;background-color:#ddd;margin:0;position:relative}#cw-domtree .cw-node-tag{position:relative}#cw-domtree .cw-node-tag button{margin:0;text-transform:none;border:none;letter-spacing:normal;font-size:12px;font-weight:500;height:24px;line-height:24px;padding:0 16px 0 20px;background:#ddd;color:#555;transition:none}#cw-domtree .cw-node-tag .cw-target{display:none;position:absolute;right:-3px;top:6px;width:12px;height:12px;border-radius:6px;background:center/contain no-repeat url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12px' height='12px' viewBox='0 0 12 12'%3E%3Crect fill='%23333' x='5.5' y='.5' width='1' height='3.5'/%3E%3Crect fill='%23333' x='5.5' y='8' width='1' height='3.5'/%3E%3Crect fill='%23333' x='.5' y='5.5' width='3.5' height='1'/%3E%3Crect fill='%23333' x='8' y='5.5' width='3.5' height='1'/%3E%3C/svg%3E\");padding:0;z-index:3}#cw-domtree .cw-node-tag:before{content:\" \";display:block;width:0;height:0;border-top:12px solid transparent;border-bottom:12px solid transparent;border-left:10px solid rgba(0,0,0,0.4);position:absolute;top:0;margin-left:1px;left:100%;z-index:1}#cw-domtree .cw-node-tag:after{content:\" \";display:block;width:0;height:0;border-top:12px solid transparent;border-bottom:12px solid transparent;border-left:10px solid #ddd;position:absolute;top:0;left:100%;z-index:2}#cw-domtree .cw-domtree-node:hover,#cw-domtree .cw-domtree-node:hover .cw-node-tag button,#cw-domtree .cw-domtree-node .selected button{background-color:var(--accent);color:#fff}#cw-domtree .cw-domtree-node:hover .cw-node-tag:after,#cw-domtree .cw-domtree-node .cw-node-tag.selected:after{border-left-color:var(--accent)}#cw-domtree .cw-domtree-node:not(:last-child):hover .cw-target{display:block;background-color:#fff}#cw-domtree .cw-domtree-node .selected button{color:#fff}#cw-domtree .cw-node-attributes{display:none;position:absolute;bottom:100%;background:#eee;height:auto;min-width:15em;color:#444;line-height:16px;margin:0;padding:0 5px;transition:all .5s ease-in-out;border:1px solid #bbb;border-radius:3px;left:0}#cw-domtree .cw-select{display:flex;flex-wrap:wrap;border:none;border-bottom:1px solid #ccc;border-radius:0;box-shadow:none;background:#eee;padding:5px 0}#cw-domtree .cw-select:last-child{border-bottom:none}#cw-domtree .cw-select .cw-select-option{margin:2px;border:none}#cw-domtree .cw-select button{margin:0;text-transform:none;font-weight:500;letter-spacing:normal;height:22px;line-height:22px;font-size:12px;border-radius:3px;padding:0 8px;background:#fff;color:#444;border:none}#cw-domtree .cw-select button.selected{background-color:var(--accent);color:#fff}#cw-domtree .cw-select button:hover{background:#f1f7eb}#cw-domtree .cw-select button.selected:hover{background:#6fa13b}#cw-domtree .cw-domtree-node:hover>.cw-node-attributes{display:block}\n"))}function fe(e){var t=e.element,n=e.callUpdateSelector,o=e.ri,r=f(React.useState(!!t.tag.selected),2),c=r[0],i=r[1];return React.createElement("div",{className:"cw-node-tag".concat(c?" selected":"")},React.createElement("button",{onClick:function(){i((function(e){return t.tag.selected=!e,!e})),n()}},t.tag.name),React.createElement("button",{onClick:function(){return function(e){O.hideDomTree(),setTimeout((function(){cw.Evt.emit("select-element",{target:ae(e)})}),0)}(o)},className:"cw-target",onMouseEnter:function(){return le(o,!1)},onMouseLeave:le}))}function he(e){var t=e.element,n=e.callUpdateSelector,o=[],r=[],c=[],i=[];t.id&&t.id.name&&(t.id.selected&&o.push(t.id.name),c.push({value:t.id.name,name:t.id.name})),t.cls&&Object.entries(t.cls).map((function(e){var t=f(e,2),n=(t[0],t[1]);n.selected&&r.push(n.name),i.push({value:n.name,name:n.name})}));return React.createElement(React.Fragment,null,c.length>0&&React.createElement(me,{options:c,onChange:function(e){t.id.selected=e.includes(t.id.name),n()},value:o}),i.length>0&&React.createElement(me,{options:i,onChange:function(e){Object.values(t.cls).forEach((function(e){e.selected=!1})),e.forEach((function(e){t.cls[e].selected=!0})),n()},value:r}))}function me(e){var t=e.options,n=e.value,o=e.onChange,r=Y(t).map((function(e){return i(i({},e),{},{selected:n.includes(e.value)})})),c=f(React.useState(r),2),a=c[0],l=c[1];return React.createElement("div",{className:"cw-select"},a.map((function(e,t){return React.createElement("div",{key:e.value,className:"cw-select-option"},React.createElement("button",{onClick:function(){return function(e){l((function(t){var n=Y(t);return n[e].selected=!n[e].selected,o(n.reduce((function(e,t){return t.selected&&e.push(t.value),e}),[])),n}))}(t)},className:"".concat(e.selected?"selected":"")},e.name))})))}function pe(){var e=E(O),t=e.highlightStyles,n=e.similarStyles;return React.createElement("div",{id:"cw-highlighter"},React.createElement("div",{className:"cw-highlight-box",style:t.box},React.createElement("div",{className:"cw-highlight-main",style:t.main}),React.createElement("div",{className:"cw-highlight-padding",style:t.padding}),React.createElement("div",{className:"cw-highlight-margin",style:t.margin})),React.createElement("style",null,n))}function we(){return React.createElement("div",{id:"cw-canvas"},React.createElement(ue,null),React.createElement(se,null),React.createElement(pe,null),React.createElement(de,null),React.createElement("style",{type:"text/css"},"#color-wings{--accent: #23b887;--accentLight: hsl(160, 68%, 97%);--accentDark: hsl(160, 68%, 30%)}#color-wings{font-family:system-ui, -apple-system, Arial, sans-serif;position:absolute;top:0;left:0;width:100%;height:0;overflow:visible;z-index:1500}#cw-focuser .cw-focus-line{position:absolute;border-color:var(--accent);border-style:solid;border-width:0;box-shadow:0 0 2px rgba(24,129,94,0.1)}#cw-focus-details{position:absolute;color:#fff;font-size:12px;line-height:24px;font-weight:500}#cw-focus-details .cw-selector{padding:0 10px;white-space:nowrap}#cw-highlighter .cw-highlight-box{position:absolute}#cw-highlighter .cw-highlight-main{position:absolute;background:rgba(92,153,214,0.6)}#cw-highlighter .cw-highlight-padding{position:absolute;top:0;left:0;border:0 solid rgba(147,197,129,0.6);box-sizing:border-box}#cw-highlighter .cw-highlight-margin{position:absolute;border:0 solid rgba(244,166,87,0.6);box-sizing:content-box}.customize-partial-edit-shortcut,.customize-partial-edit-shortcut{display:none}\n"))}"undefined"!=typeof wp&&wp.hasOwnProperty("customize")&&wp.customize.bind("preview-ready",(function(){var e=document.createElement("div");e.id="color-wings",document.body.appendChild(e),cw.Evt.on("mount-colorwings",(function(){setTimeout((function(){return ReactDOM.render(React.createElement(we,null),e)}),100)})),cw.Evt.on("unmount-colorwings",(function(){ReactDOM.unmountComponentAtNode(e)}))}))}(); +!function(){"use strict";function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(t)}function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,o=new Array(t);n0?u:0,borderRightWidth:d>0?d:0,borderBottomWidth:f>0?f:0,borderLeftWidth:h>0?h:0}};O.setHighlightStyles(m)}j(e,n)},C=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];O.setHighlightStyles({box:{},main:{},padding:{},margin:{}}),T(e)},P=cw.Evt,D=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return n.push({el:t}),t.parentNode!==document&&e(t.parentNode,n),n},N=["clearfix","row","wrap","hentry"],A=function(e){var t="";return e.forEach((function(e,n){var o=e.el;e.cwSelected={classSelected:[]};var r="";if(""!==o.id&&!/\w*-\d+/g.test("".concat(o.id))&&"#".concat(o.id," ").concat(t).length<=30)return e.cwSelected.idSelected=!0,void(t=0===n?"#".concat(o.id):"#".concat(o.id," ").concat(t));var c=[];if(o.classList.forEach((function(n){c.length>=2||/\w*-\d+/g.test("".concat(n))||N.includes(n)||"".concat(r,".").concat(n," ").concat(t).length>=30||(e.cwSelected.classSelected.push(n),r="".concat(r,".").concat(n),c.push(n))})),0===o.classList.length){var i=o.tagName.toLowerCase();if("html"===i&&0!==t.length)return;"".concat(i).concat(r," ").concat(t).length<=30&&(r="".concat(i).concat(r),e.cwSelected.tagSelected=!0)}"".concat(r," ").concat(t).length>=30?e.cwSelected={classSelected:[]}:t=0===n?r:"".concat(""===r?"":r+" ").concat(t)})),t},F=function(e){if(null===e)return"";var t=D(e);return A(t)},W=function(e){var t=window.pageYOffset+e.top;return{top:{borderTopWidth:"1px",width:e.width,left:e.left,top:t},right:{borderRightWidth:"1px",height:e.height,left:e.right-1,top:t},bottom:{borderTopWidth:"1px",width:e.width,left:e.left,top:window.pageYOffset+e.bottom-1},left:{borderRightWidth:"1px",height:e.height,left:e.left,top:t}}},I=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!O.isFocused()||!1!==t){var n="";if(void 0!==e&&!1!==e||void 0===S)if(void 0===e.target){if(""===e)return;var o=h(document.querySelectorAll(e));o.includes(S)||(S=o[0]),n=e}else S=e.target;else;!1===t&&(window.cwSelectorsLocal=window.cwSelectorsLocal||{},Object.entries(window.cwSelectorsLocal).forEach((function(e){var t=f(e,2),o=t[0],r=t[1].localTarget;S===r&&(n=o)}))),""===n&&(n=F(S));var r=S.getBoundingClientRect(),c=window.pageYOffset+r.top,i=c-24=document.body.clientHeight&&(i=0);var a={focusLines:W(r),focusDetails:{style:{left:r.left,top:i,height:"24px",background:"var(--accent)"},selector:n}};O.moveFocus(a)}},z=function(e){var t,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];"string"!=typeof e&&(t=e,e=F(e)),L(e,t,n)},M=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;e&&(e.preventDefault(),e.stopPropagation());var n=O.get().focusDetails.selector;O.isFocused()&&"lock"!==t?(O.unlockFocus(),P.emit("focus-unlocked",n),C()):(O.lockFocus(),P.emit("focus-locked",{currentSelector:n,currentTarget:S}),C(),j(n)),cw.MainStore.setSelectorClass()},_=function(){O.reduceFocusOpacity()},B=function(){O.increaseFocusOpacity()},H=function(e){void 0!==S&&"string"==typeof e&&(window.cwSelectorsLocal=window.cwSelectorsLocal||{},Object.entries(window.cwSelectorsLocal).forEach((function(e){var t=f(e,2),n=t[0],o=t[1].localTarget;S===o&&delete window.cwSelectorsLocal[n]})),window.cwSelectorsLocal[e.trim()]={localTarget:S,domTree:O.get().domTree})},q=function(e){var t=null;try{t=document.querySelector(e)}catch(e){}null===t?cw.MainStore.setSelectorClass("invalid"):(I(e,!0),M(!1,"lock"),H(e))},U=function(e){I(e,!0),M(!1,"lock"),H(e)};function Y(t){var n,o,r;if("object"!==e(t)||null===t)return t;for(r in n=Array.isArray(t)?[]:{},t)o=t[r],n[r]=Y(o);return n}var V,Q,X=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"cw-applied-styles",t=document.createElement("style");return t.id=e,document.head.appendChild(t),t},$=X(),G=X("cw-temp-styles"),J=(V="cw-applied-font",(Q=document.createElement("link")).id=V,Q.rel="stylesheet",document.head.appendChild(Q),Q),K=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=null;return function(){var r=arguments,c=this,i=n&&!o,a=function(){return e.apply(c,r)};clearTimeout(o),o=setTimeout(a,t),i&&a()}}((function(){void 0!==S&&(O.unlockFocus(),I(!1,!1),O.lockFocus())}),500,!0);cw.StylesStore.registerSpecialSubscriber((function(e){return G.innerHTML=e})),cw.StylesStore.registerSpecialSubscriber((function(){var e=cw.MainStore.get(),t=e.currentPage,n=e.allFonts;for(var o in n[t])if(n[t].hasOwnProperty(o)){var r=n[t][o];if("google"===o){var c=[];for(var i in r)if(r.hasOwnProperty(i)){var a=r[i],l=i.replace(" ","+");c.push("".concat(l,":").concat(a.join(",")))}J.href="https://fonts.googleapis.com/css?family=".concat(c.join("|"),"&display=fallback")}}}),"fontManager"),cw.StylesStore.subscribe((function(){var e=cw.StylesStore.get().allOutputs,t="",n={templates:"",id:""};for(var o in e)e.hasOwnProperty(o)&&("global"===o?t+=e.global:o in window.cwPreviewObject.pages&&window.cwPreviewObject.pages[o]?n.templates+=e[o]:"page"in window.cwPreviewObject&&"id"in window.cwPreviewObject.page&&o===window.cwPreviewObject.page.id.toString()&&(n.id+=e[o]));$.innerHTML=t+n.templates+n.id,G.innerHTML=""})),cw.StylesStore.subscribe(K),window.addEventListener("resize",K);var Z=document.querySelectorAll("body > *:not(script):not(style):not(#color-wings)");function ee(){Z.forEach((function(e){e.addEventListener("mouseover",I),e.addEventListener("click",M,!0)})),document.body.addEventListener("mouseleave",_),document.body.addEventListener("mouseenter",B)}function te(){Z.forEach((function(e){e.removeEventListener("mouseover",I),e.removeEventListener("click",M,!0)})),document.body.removeEventListener("mouseleave",_),document.body.removeEventListener("mouseenter",B)}function ne(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"show",t=document.getElementById("color-wings");null!==t&&(t.style.display="show"===e?"":"none")}cw.Evt.on("preview-object-ready",(function(){cw.Evt.off("mount-colorwings",ee),cw.Evt.off("unmount-colorwings",te),cw.Evt.off("select-element",U),cw.Evt.off("update-selector",q),cw.Evt.off("highlight-elements",z),cw.Evt.off("de-highlight-elements",C),cw.Evt.off("toggle-preview",ne)})),cw.Evt.on("mount-colorwings",ee),cw.Evt.on("unmount-colorwings",te),cw.Evt.on("select-element",U),cw.Evt.on("update-selector",q),cw.Evt.on("highlight-elements",z),cw.Evt.on("de-highlight-elements",C),cw.Evt.on("toggle-preview",ne);var oe=[{name:"Body",sel:"body"},{name:"Header",sel:".site-header"},{name:"Content Wrapper",sel:".site-content"},{name:"Main Content",sel:".main"},{name:"Sidebar",sel:".sidebar"},{name:"Footer",sel:".site-footer"},{name:"Buttons",sel:"button"},{name:"Links",sel:"a"},{name:"Inputs",sel:"input"},{name:"H1",sel:"h1"},{name:"H2",sel:"h2"},{name:"Paragraphs",sel:"p"},{name:"Code",sel:"code"},{name:"Article Card",sel:".entry-article"}].filter((function(e){return null!==document.querySelector(e.sel)}));cw.MainStore.setQuickSelectors(oe);var re=function(e){var t=O.get(),n=t.currentTarget,o=t.showDomTree;if(n!==e.currentTarget||!o){var r=!1;window.cwSelectorsLocal=window.cwSelectorsLocal||{},Object.entries(window.cwSelectorsLocal).forEach((function(t){var n=f(t,2),o=(n[0],n[1]),c=o.localTarget,i=o.domTree;e.currentTarget===c&&(r=i)})),!1===r&&(r=function(e){if(!1===e)return[];var t=[];return function(e){if(null===e)return"";var t=D(e);return A(t),t}(e).forEach((function(e){var n={tag:{},id:{},cls:{}};n.tag.name=e.el.tagName.toLowerCase(),n.tag.selected=!(!e.cwSelected||!e.cwSelected.tagSelected),""!==e.el.id&&(n.id.name="#".concat(e.el.id),n.id.selected=!(!e.cwSelected||!e.cwSelected.idSelected)),e.el.classList.forEach((function(t){n.cls[".".concat(t)]={name:".".concat(t),selected:!!e.cwSelected&&e.cwSelected.classSelected.includes(t)}})),t.unshift(n)})),t}(e.currentTarget)),O.showDomTree(e,r)}},ce=function(){return O.hideDomTree()},ie=function(e){var t=function(e){var t="";return e.forEach((function(e){""===t||t.endsWith(" ")||(t+=" "),"name"in e.tag&&e.tag.selected&&(t+=e.tag.name),"name"in e.id&&e.id.selected&&(t+=e.id.name),Object.values(e.cls).forEach((function(e){e.selected&&(t+=e.name)}))})),t}(e);cw.Evt.emit("select-element",t)},ae=function(e){for(var t=O.get().currentTarget;e>0;)t=t.parentElement,e--;return t},le=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];!0===t?cw.Evt.emit("de-highlight-elements",!0):cw.Evt.emit("highlight-elements",ae(e),!0)};function se(){var e=E(O),t=e.focusLines,n=e.focusOpacity;return React.createElement("div",{id:"cw-focuser",style:{opacity:n}},React.createElement("div",{className:"cw-focus-line",id:"cw-focuser-top",style:t.top}),React.createElement("div",{className:"cw-focus-line",id:"cw-focuser-right",style:t.right}),React.createElement("div",{className:"cw-focus-line",id:"cw-focuser-bottom",style:t.bottom}),React.createElement("div",{className:"cw-focus-line",id:"cw-focuser-left",style:t.left}))}function ue(){var e=E(O),t=e.focusDetails,n=e.detailsOpacity,o=i(i({},t.style),{},{opacity:n});return React.createElement("div",{id:"cw-focus-details",className:"cw-focus-details",style:o},React.createElement("div",{id:"cw-focus-selector",className:"cw-selector"},t.selector))}cw.Evt.on("preview-object-ready",(function(){cw.Evt.off("focus-locked",re),cw.Evt.off("focus-unlocked",ce)})),cw.Evt.on("focus-locked",re),cw.Evt.on("focus-unlocked",ce);function de(){var e=E(O),t=e.showDomTree,n=e.domTree;return React.createElement("div",{id:"cw-domtree"},t?function(e){var t=function(){return setTimeout((function(){return ie(e)}),100)},n=[];return e.forEach((function(o,r){n.push(React.createElement("li",{key:"".concat(o.tag.name,"-").concat(r),className:"cw-domtree-node"},React.createElement(fe,{element:o,callUpdateSelector:t,ri:e.length-r-1}),o.id.name||o.cls&&Object.keys(o.cls).length>0?React.createElement("div",{className:"cw-node-attributes"},React.createElement(he,{element:o,callUpdateSelector:t})):null))})),React.createElement("ul",{className:"cw-domtree-list"},n)}(n):"",React.createElement("style",{type:"text/css"},"#cw-domtree{width:100%;bottom:0;position:fixed;background:#eee;font-size:14px;color:#444;line-height:16px;margin:0}#cw-domtree .cw-domtree-list{white-space:nowrap;list-style-type:none;margin:0;border-top:1px solid #bbb}#cw-domtree .cw-domtree-node{display:inline-block;background-color:#ddd;margin:0;position:relative}#cw-domtree .cw-node-tag{position:relative}#cw-domtree .cw-node-tag button{margin:0;text-transform:none;border:none;letter-spacing:normal;font-size:12px;font-weight:500;height:24px;line-height:24px;padding:0 16px 0 20px;background:#ddd;color:#555;transition:none}#cw-domtree .cw-node-tag .cw-target{display:none;position:absolute;right:-3px;top:6px;width:12px;height:12px;border-radius:6px;background:center/contain no-repeat url(\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12px' height='12px' viewBox='0 0 12 12'%3E%3Crect fill='%23333' x='5.5' y='.5' width='1' height='3.5'/%3E%3Crect fill='%23333' x='5.5' y='8' width='1' height='3.5'/%3E%3Crect fill='%23333' x='.5' y='5.5' width='3.5' height='1'/%3E%3Crect fill='%23333' x='8' y='5.5' width='3.5' height='1'/%3E%3C/svg%3E\");padding:0;z-index:3}#cw-domtree .cw-node-tag:before{content:\" \";display:block;width:0;height:0;border-top:12px solid transparent;border-bottom:12px solid transparent;border-left:10px solid rgba(0,0,0,0.4);position:absolute;top:0;margin-left:1px;left:100%;z-index:1}#cw-domtree .cw-node-tag:after{content:\" \";display:block;width:0;height:0;border-top:12px solid transparent;border-bottom:12px solid transparent;border-left:10px solid #ddd;position:absolute;top:0;left:100%;z-index:2}#cw-domtree .cw-domtree-node:hover,#cw-domtree .cw-domtree-node:hover .cw-node-tag button,#cw-domtree .cw-domtree-node .selected button{background-color:var(--accent);color:#fff}#cw-domtree .cw-domtree-node:hover .cw-node-tag:after,#cw-domtree .cw-domtree-node .cw-node-tag.selected:after{border-left-color:var(--accent)}#cw-domtree .cw-domtree-node:not(:last-child):hover .cw-target{display:block;background-color:#fff}#cw-domtree .cw-domtree-node .selected button{color:#fff}#cw-domtree .cw-node-attributes{display:none;position:absolute;bottom:100%;background:#eee;height:auto;min-width:15em;color:#444;line-height:16px;margin:0;padding:0 5px;transition:all .5s ease-in-out;border:1px solid #bbb;border-radius:3px;left:0}#cw-domtree .cw-select{display:flex;flex-wrap:wrap;border:none;border-bottom:1px solid #ccc;border-radius:0;box-shadow:none;background:#eee;padding:5px 0}#cw-domtree .cw-select:last-child{border-bottom:none}#cw-domtree .cw-select .cw-select-option{margin:2px;border:none}#cw-domtree .cw-select button{margin:0;text-transform:none;font-weight:500;letter-spacing:normal;height:22px;line-height:22px;font-size:12px;border-radius:3px;padding:0 8px;background:#fff;color:#444;border:none}#cw-domtree .cw-select button.selected{background-color:var(--accent);color:#fff}#cw-domtree .cw-select button:hover{background:var(--accentLight)}#cw-domtree .cw-select button.selected:hover{background:var(--accentDark)}#cw-domtree .cw-domtree-node:hover>.cw-node-attributes{display:block}\n"))}function fe(e){var t=e.element,n=e.callUpdateSelector,o=e.ri,r=f(React.useState(!!t.tag.selected),2),c=r[0],i=r[1];return React.createElement("div",{className:"cw-node-tag".concat(c?" selected":"")},React.createElement("button",{onClick:function(){i((function(e){return t.tag.selected=!e,!e})),n()}},t.tag.name),React.createElement("button",{onClick:function(){return function(e){O.hideDomTree(),setTimeout((function(){cw.Evt.emit("select-element",{target:ae(e)})}),0)}(o)},className:"cw-target",onMouseEnter:function(){return le(o,!1)},onMouseLeave:le}))}function he(e){var t=e.element,n=e.callUpdateSelector,o=[],r=[],c=[],i=[];t.id&&t.id.name&&(t.id.selected&&o.push(t.id.name),c.push({value:t.id.name,name:t.id.name})),t.cls&&Object.entries(t.cls).map((function(e){var t=f(e,2),n=(t[0],t[1]);n.selected&&r.push(n.name),i.push({value:n.name,name:n.name})}));return React.createElement(React.Fragment,null,c.length>0&&React.createElement(me,{options:c,onChange:function(e){t.id.selected=e.includes(t.id.name),n()},value:o}),i.length>0&&React.createElement(me,{options:i,onChange:function(e){Object.values(t.cls).forEach((function(e){e.selected=!1})),e.forEach((function(e){t.cls[e].selected=!0})),n()},value:r}))}function me(e){var t=e.options,n=e.value,o=e.onChange,r=Y(t).map((function(e){return i(i({},e),{},{selected:n.includes(e.value)})})),c=f(React.useState(r),2),a=c[0],l=c[1];return React.createElement("div",{className:"cw-select"},a.map((function(e,t){return React.createElement("div",{key:e.value,className:"cw-select-option"},React.createElement("button",{onClick:function(){return function(e){l((function(t){var n=Y(t);return n[e].selected=!n[e].selected,o(n.reduce((function(e,t){return t.selected&&e.push(t.value),e}),[])),n}))}(t)},className:"".concat(e.selected?"selected":"")},e.name))})))}function pe(){var e=E(O),t=e.highlightStyles,n=e.similarStyles;return React.createElement("div",{id:"cw-highlighter"},React.createElement("div",{className:"cw-highlight-box",style:t.box},React.createElement("div",{className:"cw-highlight-main",style:t.main}),React.createElement("div",{className:"cw-highlight-padding",style:t.padding}),React.createElement("div",{className:"cw-highlight-margin",style:t.margin})),React.createElement("style",null,n))}function we(){return React.createElement("div",{id:"cw-canvas"},React.createElement(ue,null),React.createElement(se,null),React.createElement(pe,null),React.createElement(de,null),React.createElement("style",{type:"text/css"},"#color-wings{--accent: #23b887;--accentLight: hsl(160, 68%, 97%);--accentDark: hsl(160, 68%, 30%)}#color-wings{font-family:system-ui, -apple-system, Arial, sans-serif;position:absolute;top:0;left:0;width:100%;height:0;overflow:visible;z-index:1500}#cw-focuser .cw-focus-line{position:absolute;border-color:var(--accent);border-style:solid;border-width:0;box-shadow:0 0 2px rgba(24,129,94,0.1)}#cw-focus-details{position:absolute;color:#fff;font-size:12px;line-height:24px;font-weight:500}#cw-focus-details .cw-selector{padding:0 10px;white-space:nowrap}#cw-highlighter .cw-highlight-box{position:absolute}#cw-highlighter .cw-highlight-main{position:absolute;background:rgba(92,153,214,0.6)}#cw-highlighter .cw-highlight-padding{position:absolute;top:0;left:0;border:0 solid rgba(147,197,129,0.6);box-sizing:border-box}#cw-highlighter .cw-highlight-margin{position:absolute;border:0 solid rgba(244,166,87,0.6);box-sizing:content-box}.customize-partial-edit-shortcut,.customize-partial-edit-shortcut{display:none}\n"))}"undefined"!=typeof wp&&wp.hasOwnProperty("customize")&&wp.customize.bind("preview-ready",(function(){var e=document.createElement("div");e.id="color-wings",document.body.appendChild(e),cw.Evt.on("mount-colorwings",(function(){setTimeout((function(){return ReactDOM.render(React.createElement(we,null),e)}),100)})),cw.Evt.on("unmount-colorwings",(function(){ReactDOM.unmountComponentAtNode(e)}))}))}(); diff --git a/library/addons/colorwings/js/color-wings.js b/library/addons/colorwings/js/color-wings.js index fbb8d2d..37133fe 100644 --- a/library/addons/colorwings/js/color-wings.js +++ b/library/addons/colorwings/js/color-wings.js @@ -3867,16 +3867,16 @@ var Tooltip = wp.components.Tooltip; - var renderOptionWithCls = function renderOptionWithCls(domProps, option, snapshot, className) { + var renderCustomOption = function renderCustomOption(domProps, option, snapshot, className) { return /*#__PURE__*/React.createElement(Tooltip, { text: option.name, position: "top left" }, /*#__PURE__*/React.createElement("button", _extends({}, domProps, { className: className, type: "button" - }), /*#__PURE__*/React.createElement("span", { - className: 'clsName' in option ? option.clsName : '' - }))); + }), 'clsName' in option && /*#__PURE__*/React.createElement("span", { + className: option.clsName + }), 'content' in option && /*#__PURE__*/React.createElement(option.content, null))); }; var forwardProps = { @@ -3890,8 +3890,8 @@ renderOption: renderOption }; - if (_typeof(options[0]) === 'object' && 'clsName' in options[0]) { - forwardProps['renderOption'] = renderOptionWithCls; + if (_typeof(options[0]) === 'object' && ('clsName' in options[0] || 'content' in options[0])) { + forwardProps['renderOption'] = renderCustomOption; } if ('renderOption' in params) { @@ -3900,7 +3900,7 @@ return /*#__PURE__*/React.createElement("div", { className: "cw-control-content cw-select" - }, /*#__PURE__*/React.createElement("span", { + }, props.label && /*#__PURE__*/React.createElement("span", { className: "cw-control-title" }, props.label, " "), /*#__PURE__*/React.createElement(SelectSearch$1, forwardProps)); } @@ -4505,9 +4505,9 @@ return /*#__PURE__*/React.createElement(control.Component, control.params); } - var styles$2 = "#cw-editor-wrap ul,#cw-editor-wrap li{list-style:none;margin:0;padding:0}#cw-editor-wrap .cw-panel{background:#eee;font-size:13px;color:#444}.cw-panel-title{background:#fff;border-bottom:1px solid #ddd;font-size:13px;padding:16px;color:#444;line-height:16px;margin:0}.cw-panel-title *{box-sizing:border-box}.cw-panel-title .title-inner{display:inline-flex;width:calc(100% - 54px)}.cw-panel-title .title-desc{padding:3px 0;width:90px}.cw-panel-title input[type=\"text\"].selector{background:var(--accentLight);border:1px solid var(--accent);padding:3px 5px;width:calc(100% - 90px);border-radius:0;min-height:24px;line-height:1;font-size:13px;background-image:none !important}.cw-panel-title input[type=\"text\"].selector:focus{box-shadow:none;border-color:var(--accentDark)}.cw-panel-title input[type=\"text\"].selector.invalid,.cw-panel-title input[type=\"text\"].selector.invalid:focus{border-color:#c78100}.cw-panel-main{height:calc(100% - 41px);overflow-y:auto}.cw-section-title{border:none;border-left:3px solid transparent;border-bottom:1px solid #ddd;background:#fff;font-size:14px;padding:12px 16px;font-weight:600;color:#444;line-height:16px;margin:0;cursor:pointer;width:100%;text-align:left;transition:.15s all ease-in-out}.cw-section-title:hover{color:#0073aa;background:#f3f3f5;border-left-color:#0073aa}.cw-section-title:focus{outline:none;color:#0073aa;border-left-color:#0073aa}.cw-section-content{display:flex;flex-wrap:wrap;padding:0 12px;max-height:0;opacity:0;overflow:auto;transition:max-height .2s ease, opacity .2s ease}.cw-panel .open .cw-section-content{opacity:1;max-height:1000px;border-bottom:1px solid #ddd}.cw-panel .cw-link{display:block;text-decoration:none;box-sizing:border-box;box-shadow:0 0 0 1px var(--accent);margin:1px 0;color:#0073aa}.cw-control{flex-shrink:0;width:100%;margin-bottom:12px;box-sizing:border-box}.cw-control.padding,.cw-control.margin{margin-bottom:0}.cw-control.col-4{width:33.333%}.cw-control.col-5{width:41.666%}.cw-control.col-6{width:50%}.cw-control.col-7{width:58.333%}.cw-control.col-8{width:66.666%}.cw-control .cw-tabs{margin:0 -12px -1px -13px}.cw-control .tab.active{border-bottom-color:#eee;background:#eee}.cw-control .tab-content{position:relative;padding:30px 0 15px}.cw-control .shorthand .tab-content{border-top:1px solid #ccc}.cw-control .single-length .tab-content{padding:20px 0 0}.cw-control .length-ips{position:relative}.cw-control .length-ips input[type=\"number\"]{padding-right:30px;border-color:#c4c8ca}.cw-control .length-ips input[type=\"number\"]:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.cw-control .length-ips.unit-less input[type=\"number\"]{padding-right:0}.cw-control .length-unit{position:absolute;top:1px;right:0;width:30px;padding:0;border:none;min-height:28px;background:#f5f5f5;font-size:13px;text-align:center;text-align-last:center;border-radius:0 3px 3px 0}.cw-control .output{padding:5px;border-top:1px dotted #ddd;border-bottom:1px solid #ddd;font-size:11px;margin-top:-1px}.cw-control .reset{position:absolute;right:2px;bottom:34px;padding:4px 6px 2px;cursor:pointer;border-radius:2px;border:none;outline:none}.cw-control .reset:hover{background:#fff}.cw-control .reset:focus{background:#fff;box-shadow:0 0 0 1px var(--accent)}.cw-control .reset svg{max-height:12px}.cw-control .range-wrap{padding-right:5px;line-height:1.8;box-sizing:border-box}.cw-control input:focus{outline:none}.cw-control input[type=\"range\"]{width:100%;background:var(--accent);-webkit-appearance:none;height:3px;border-radius:3px;margin:0;--range: calc(var(--max) - var(--min));--ratio: calc((var(--val) - var(--min))/var(--range));--sx: calc(.5*1.5em + var(--ratio)*(100% - 1.5em))}.cw-control input[type=\"range\"]::-webkit-slider-runnable-track{width:100%;height:3px;background:#c4c8ca;border:none;border-radius:3px;box-sizing:border-box;background:-webkit-gradient(linear, left top, left bottom, from(var(--accent)), to(var(--accent))) 0/var(--sx) 100% no-repeat #c4c8ca;background:linear-gradient(var(--accent), var(--accent)) 0/var(--sx) 100% no-repeat #c4c8ca}.cw-control input[type=\"range\"]::-webkit-slider-thumb{width:14px;height:14px;background:var(--accent);border-radius:14px;-webkit-appearance:none;margin-top:-5px;cursor:pointer;transition:transform .1s}.cw-control input[type=\"range\"]::-webkit-slider-thumb:hover{transform:scale(1.2)}.cw-control input[type=\"range\"]::-moz-range-thumb{width:14px;height:14px;background:var(--accent);border-radius:14px;-moz-appearance:none;margin-top:-5px;cursor:pointer;transition:transform .1s}.cw-control input[type=\"range\"]::-moz-range-thumb:hover{transform:scale(1.2)}.cw-control svg{color:var(--accent);display:block;margin:auto}.cw-control.margin .tab svg{color:var(--accentSec)}.cw-control .cw-color .components-color-picker__body{padding:16px 4px 0}.cw-control .cw-color-info{display:flex;align-items:center}.cw-control .cw-color-info>*:not(:first-child){margin-left:10px}.cw-control .solid-selector,.cw-control .gradient-selector{width:30px;height:30px;border-radius:50%;border:none;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.3);z-index:20}.cw-control .solid-selector:focus,.cw-control .gradient-selector:focus{outline:none;box-shadow:0 0 0 1px var(--accent)}.cw-control .cw-color-value{background:#fff;padding:4px 10px;border-radius:2px;white-space:nowrap;max-width:calc(100% - 100px);overflow:auto}.cw-control .cw-color-wrap{position:relative;min-height:320px}.cw-control .cw-color-wrap.cw-wrap-gradient{min-height:220px}.cw-control .cw-color-overlay{position:fixed;top:0;bottom:0;left:0;z-index:10;background:transparent;width:18%;min-width:300px}.cw-control .cw-color-holder{position:absolute;top:6px;padding:12px;background:#fff;border:1px solid #ccc;box-shadow:0 2px 6px rgba(0,0,0,0.05);border-radius:2px;box-sizing:border-box;width:calc(18vw - 50px);min-width:276px;z-index:30}.cw-control .cw-wrap-gradient .cw-color-holder{width:100%}.cw-control .components-color-picker__inputs-wrapper{width:calc(100% - 42px);min-width:210px}.cw-control .components-color-picker__inputs-toggle{display:block;padding:0 5px;border:1px solid #999}.cw-control .components-color-picker__inputs-fields,.cw-control .components-base-control__field{margin:0}.cw-control .components-text-control__input[type=\"number\"]{border-radius:0;border-right:none}.cw-control .cw-color input[type=\"number\"]::-webkit-inner-spin-button{margin:-5px -2px -5px 0}.cw-control label.components-base-control__label{text-transform:capitalize;font-size:12px;margin:0 0 4px 4px;color:#666;line-height:1}.cw-control .cw-color-clear{position:absolute;right:12px;bottom:12px;height:30px;width:42px}.cw-control .cw-color-gradient .cw-link{height:180px;background-image:linear-gradient(135deg, #9cccfc 0%, #e6cffc 100%);display:flex;align-items:center;justify-content:center;color:#000;border-radius:2px;text-decoration:none;font-size:14px;text-align:center;line-height:22px}.cw-control.font-style,.cw-control.text-decoration,.cw-control.display,.cw-control.list-style-type{padding-right:12px}.cw-control.position .select-search__option{font-size:13px}.cw-control-title{display:block;padding:10px 0}.cw-control-title+.tab-content{margin-top:-25px}.border .cw-tab-wrap{display:flex;flex-wrap:wrap}.border .cw-tab-wrap>*{flex-shrink:0;width:100%;box-sizing:border-box}.border .cw-tab-wrap .cw-color{width:60%}.border .cw-tab-wrap .cw-select{width:40%}button.wp-color-result .color-alpha{height:28px !important}#cw-quick-select .cw-qs-title{padding:15px 0 10px;text-align:center;line-height:22px}#cw-quick-select .cw-qs-title .dashicons{background-color:#0171a1;background-image:linear-gradient(90deg, #01a0e4, #0171a1);background-size:100%;background-repeat:repeat;-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-size:16px;height:16px;vertical-align:text-top}#cw-quick-select .cw-qs-title svg{vertical-align:text-top;padding-left:10px}#cw-quick-select ul.cw-qs-btns{padding:10px;display:flex;flex-flow:column wrap;align-content:space-between;height:300px}#cw-quick-select ul.cw-qs-btns::before,#cw-quick-select ul.cw-qs-btns::after{content:'';flex-basis:100%;width:0;order:2}#cw-quick-select .cw-qs-btn:nth-child(3n+1){order:1}#cw-quick-select .cw-qs-btn:nth-child(3n+2){order:2}#cw-quick-select .cw-qs-btn:nth-child(3n){order:3}#cw-quick-select li.cw-qs-btn{padding:6px 8px;background:#fff;color:#0071a1;border:1px solid var(--border);border-radius:3px;cursor:pointer;width:calc(33.3% - 5px);box-sizing:border-box;margin-bottom:10px;text-align:center}.cw-pseudo{display:inline-block;vertical-align:top;cursor:pointer;position:relative}.cw-pseudo-icon{display:inline-block;background:var(--accentLight);border:1px solid var(--accent);border-left:none;color:var(--accentDark);cursor:pointer;line-height:22px;height:24px}.cw-pseudo-content{border:1px solid var(--accent);box-sizing:border-box;display:none;position:absolute;top:0;left:-1px;background:white;z-index:3}.cw-pseudo-item{padding:3px 0 3px 7px;width:52px;display:none}.cw-pseudo-item:hover{color:var(--accentDark)}.cw-pseudo.active .cw-pseudo-content{display:inline-block}.cw-pseudo.active .cw-pseudo-item:first-child{display:inline-block;background:var(--accentLight)}.cw-pseudo.active .cw-pseudo-icon{display:none}.cw-pseudo.open .cw-pseudo-content{display:inline-block}.cw-pseudo.open .cw-pseudo-item{display:inline-block}.cw-pseudo.open .cw-pseudo-icon{display:none}.cw-media .thumbnail img{max-height:100px}[id*=\"__lpform_input\"]{display:none !important}\n"; + var styles$2 = "#cw-editor-wrap ul,#cw-editor-wrap li{list-style:none;margin:0;padding:0}#cw-editor-wrap .cw-panel{background:#eee;font-size:13px;color:#444}.cw-panel-title{background:#fff;border-bottom:1px solid #ddd;font-size:13px;padding:16px;color:#444;line-height:16px;margin:0}.cw-panel-title *{box-sizing:border-box}.cw-panel-title .title-inner{display:inline-flex;width:calc(100% - 54px)}.cw-panel-title .title-desc{padding:3px 0;width:90px}.cw-panel-title input[type=\"text\"].selector{background:var(--accentLight);border:1px solid var(--accent);padding:3px 5px;width:calc(100% - 90px);border-radius:0;min-height:24px;line-height:1;font-size:13px;background-image:none !important}.cw-panel-title input[type=\"text\"].selector:focus{box-shadow:none;border-color:var(--accentDark)}.cw-panel-title input[type=\"text\"].selector.invalid,.cw-panel-title input[type=\"text\"].selector.invalid:focus{border-color:#c78100}.cw-panel-main{height:calc(100% - 41px);overflow-y:auto}.cw-section-title{border:none;border-left:3px solid transparent;border-bottom:1px solid #ddd;background:#fff;font-size:14px;padding:12px 16px;font-weight:600;color:#444;line-height:16px;margin:0;cursor:pointer;width:100%;text-align:left;transition:.15s all ease-in-out}.cw-section-title:hover{color:#0073aa;background:#f3f3f5;border-left-color:#0073aa}.cw-section-title:focus{outline:none;color:#0073aa;border-left-color:#0073aa}.cw-section-content{display:flex;flex-wrap:wrap;padding:0 12px;max-height:0;opacity:0;overflow:auto;transition:max-height .2s ease, opacity .2s ease}.cw-panel .open .cw-section-content{opacity:1;max-height:1000px;border-bottom:1px solid #ddd}.cw-panel .cw-link{display:block;text-decoration:none;box-sizing:border-box;box-shadow:0 0 0 1px var(--accent);margin:1px 0;color:#0073aa}.cw-control{flex-shrink:0;width:100%;margin-bottom:12px;box-sizing:border-box}.cw-control.padding,.cw-control.margin{margin-bottom:0}.cw-control.col-4{width:33.333%}.cw-control.col-5{width:41.666%}.cw-control.col-6{width:50%}.cw-control.col-7{width:58.333%}.cw-control.col-8{width:66.666%}.cw-control .cw-tabs{margin:0 -12px -1px -13px}.cw-control .tab.active{border-bottom-color:#eee;background:#eee}.cw-control .tab-content{position:relative;padding:30px 0 15px}.cw-control .shorthand .tab-content{border-top:1px solid #ccc}.cw-control .single-length .tab-content{padding:20px 0 0}.cw-control .length-ips{position:relative}.cw-control .length-ips input[type=\"number\"]{padding-right:30px;border-color:#c4c8ca}.cw-control .length-ips input[type=\"number\"]:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.cw-control .length-ips.unit-less input[type=\"number\"]{padding-right:0}.cw-control .length-unit{position:absolute;top:1px;right:0;width:30px;padding:0;border:none;min-height:28px;background:#f5f5f5;font-size:13px;text-align:center;text-align-last:center;border-radius:0 3px 3px 0}.cw-control .output{padding:5px;border-top:1px dotted #ddd;border-bottom:1px solid #ddd;font-size:11px;margin-top:-1px}.cw-control .reset{position:absolute;right:2px;bottom:34px;padding:4px 6px 2px;cursor:pointer;border-radius:2px;border:none;outline:none}.cw-control .reset:hover{background:#fff}.cw-control .reset:focus{background:#fff;box-shadow:0 0 0 1px var(--accent)}.cw-control .reset svg{max-height:12px}.cw-control .range-wrap{padding-right:5px;line-height:1.8;box-sizing:border-box}.cw-control input:focus{outline:none}.cw-control input[type=\"range\"]{width:100%;background:var(--accent);-webkit-appearance:none;height:3px;border-radius:3px;margin:0;--range: calc(var(--max) - var(--min));--ratio: calc((var(--val) - var(--min))/var(--range));--sx: calc(.5*1.5em + var(--ratio)*(100% - 1.5em))}.cw-control input[type=\"range\"]::-webkit-slider-runnable-track{width:100%;height:3px;background:#c4c8ca;border:none;border-radius:3px;box-sizing:border-box;background:-webkit-gradient(linear, left top, left bottom, from(var(--accent)), to(var(--accent))) 0/var(--sx) 100% no-repeat #c4c8ca;background:linear-gradient(var(--accent), var(--accent)) 0/var(--sx) 100% no-repeat #c4c8ca}.cw-control input[type=\"range\"]::-webkit-slider-thumb{width:14px;height:14px;background:var(--accent);border-radius:14px;-webkit-appearance:none;margin-top:-5px;cursor:pointer;transition:transform .1s}.cw-control input[type=\"range\"]::-webkit-slider-thumb:hover{transform:scale(1.2)}.cw-control input[type=\"range\"]::-moz-range-thumb{width:14px;height:14px;background:var(--accent);border-radius:14px;-moz-appearance:none;margin-top:-5px;cursor:pointer;transition:transform .1s}.cw-control input[type=\"range\"]::-moz-range-thumb:hover{transform:scale(1.2)}.cw-control svg{color:var(--accent);display:block;margin:auto}.cw-control.margin .tab svg{color:var(--accentSec)}.cw-control .cw-color .components-color-picker__body{padding:16px 4px 0}.cw-control .cw-color-info{display:flex;align-items:center}.cw-control .cw-color-info>*:not(:first-child){margin-left:10px}.cw-control .solid-selector,.cw-control .gradient-selector{width:30px;height:30px;border-radius:50%;border:none;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.3);z-index:20}.cw-control .solid-selector:focus,.cw-control .gradient-selector:focus{outline:none;box-shadow:0 0 0 1px var(--accent)}.cw-control .cw-color-value{background:#fff;padding:4px 10px;border-radius:2px;white-space:nowrap;max-width:calc(100% - 100px);overflow:auto}.cw-control .cw-color-wrap{position:relative;min-height:320px}.cw-control .cw-color-wrap.cw-wrap-gradient{min-height:220px}.cw-control .cw-color-overlay{position:fixed;top:0;bottom:0;left:0;z-index:10;background:transparent;width:18%;min-width:300px}.cw-control .cw-color-holder{position:absolute;top:6px;padding:12px;background:#fff;border:1px solid #ccc;box-shadow:0 2px 6px rgba(0,0,0,0.05);border-radius:2px;box-sizing:border-box;width:calc(18vw - 50px);min-width:276px;z-index:30}.cw-control .cw-wrap-gradient .cw-color-holder{width:100%}.cw-control .components-color-picker__inputs-wrapper{width:calc(100% - 42px);min-width:210px}.cw-control .components-color-picker__inputs-toggle{display:block;padding:0 5px;border:1px solid #999}.cw-control .components-color-picker__inputs-fields,.cw-control .components-base-control__field{margin:0}.cw-control .components-text-control__input[type=\"number\"]{border-radius:0;border-right:none}.cw-control .cw-color input[type=\"number\"]::-webkit-inner-spin-button{margin:-5px -2px -5px 0}.cw-control label.components-base-control__label{text-transform:capitalize;font-size:12px;margin:0 0 4px 4px;color:#666;line-height:1}.cw-control .cw-color-clear{position:absolute;right:12px;bottom:12px;height:30px;width:42px}.cw-control .cw-color-gradient .cw-link{height:180px;background-image:linear-gradient(135deg, #9cccfc 0%, #e6cffc 100%);display:flex;align-items:center;justify-content:center;color:#000;border-radius:2px;text-decoration:none;font-size:14px;text-align:center;line-height:22px}.cw-control.font-style,.cw-control.text-decoration,.cw-control.display,.cw-control.list-style-type,.cw-control.background-size{padding-right:12px}.cw-control.position .select-search__option{font-size:13px}.cw-control-title{display:block;padding:10px 0}.cw-control-title+.tab-content{margin-top:-25px}.border .cw-tab-wrap{display:flex;flex-wrap:wrap}.border .cw-tab-wrap>*{flex-shrink:0;width:100%;box-sizing:border-box}.border .cw-tab-wrap .cw-color{width:60%}.border .cw-tab-wrap .cw-select{width:40%}button.wp-color-result .color-alpha{height:28px !important}#cw-quick-select .cw-qs-title{padding:15px 0 10px;text-align:center;line-height:22px}#cw-quick-select .cw-qs-title .dashicons{background-color:#0171a1;background-image:linear-gradient(90deg, #01a0e4, #0171a1);background-size:100%;background-repeat:repeat;-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-size:16px;height:16px;vertical-align:text-top}#cw-quick-select .cw-qs-title svg{vertical-align:text-top;padding-left:10px}#cw-quick-select ul.cw-qs-btns{padding:10px;display:flex;flex-flow:column wrap;align-content:space-between;height:300px}#cw-quick-select ul.cw-qs-btns::before,#cw-quick-select ul.cw-qs-btns::after{content:'';flex-basis:100%;width:0;order:2}#cw-quick-select .cw-qs-btn:nth-child(3n+1){order:1}#cw-quick-select .cw-qs-btn:nth-child(3n+2){order:2}#cw-quick-select .cw-qs-btn:nth-child(3n){order:3}#cw-quick-select li.cw-qs-btn{padding:6px 8px;background:#fff;color:#0071a1;border:1px solid var(--border);border-radius:3px;cursor:pointer;width:calc(33.3% - 5px);box-sizing:border-box;margin-bottom:10px;text-align:center}.cw-pseudo{display:inline-block;vertical-align:top;cursor:pointer;position:relative}.cw-pseudo-icon{display:inline-block;background:var(--accentLight);border:1px solid var(--accent);border-left:none;color:var(--accentDark);cursor:pointer;line-height:22px;height:24px}.cw-pseudo-content{border:1px solid var(--accent);box-sizing:border-box;display:none;position:absolute;top:0;left:-1px;background:white;z-index:3}.cw-pseudo-item{padding:3px 0 3px 7px;width:52px;display:none}.cw-pseudo-item:hover{color:var(--accentDark)}.cw-pseudo.active .cw-pseudo-content{display:inline-block}.cw-pseudo.active .cw-pseudo-item:first-child{display:inline-block;background:var(--accentLight)}.cw-pseudo.active .cw-pseudo-icon{display:none}.cw-pseudo.open .cw-pseudo-content{display:inline-block}.cw-pseudo.open .cw-pseudo-item{display:inline-block}.cw-pseudo.open .cw-pseudo-icon{display:none}.cw-media .thumbnail img{max-height:100px}[id*=\"__lpform_input\"]{display:none !important}\n"; - var selectStyles = ".select-search{position:relative;box-sizing:border-box}.select-search *,.select-search *::after,.select-search *::before{box-sizing:inherit}.select-search__value{position:relative;z-index:1}.select-search__value::after{content:'';display:inline-block;position:absolute;top:calc(50% - 4px);right:16px;width:6px;height:6px}.select-search__input{display:block;height:30px;width:100%;padding:0 16px;background:#fff !important;border:1px solid #c4c8ca;border-radius:3px;outline:none;font-family:'Noto Sans', sans-serif;font-size:14px;text-align:left;text-overflow:ellipsis;line-height:36px;-webkit-appearance:none;margin:0}.select-search__input::-webkit-search-decoration,.select-search__input::-webkit-search-cancel-button,.select-search__input::-webkit-search-results-button,.select-search__input::-webkit-search-results-decoration{-webkit-appearance:none}.select-search__input:not([readonly]):focus{cursor:initial}.select-search__select{background:#fff;box-shadow:0 0.0625rem 0.125rem rgba(0,0,0,0.15)}.select-search__options{list-style:none}.select-search__row:not(:first-child){border-top:1px solid #f2f2f2}.select-search__option{display:block;height:36px;width:100%;padding:0 16px;background:#fff;border:none;outline:none;font-size:14px;text-align:left;cursor:pointer}.select-search--multiple .select-search__option{height:48px}.select-search__option.is-selected{background:var(--accent);color:#fff}.select-search__option.is-highlighted,.select-search__option:not(.is-selected):hover{background:var(--accentLight)}.select-search__option.is-highlighted.is-selected,.select-search__option.is-selected:hover{background:#21ab7d;color:#fff}.select-search__group-header{font-size:10px;text-transform:uppercase;background:#f7f7f7;padding:6px 16px;position:sticky;top:0;box-shadow:0 1px 3px rgba(0,0,0,0.2)}.select-search.is-disabled{opacity:0.5}.select-search.is-loading .select-search__value::after{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 50 50'%3E%3Cpath fill='%232F2D37' d='M25,5A20.14,20.14,0,0,1,45,22.88a2.51,2.51,0,0,0,2.49,2.26h0A2.52,2.52,0,0,0,50,22.33a25.14,25.14,0,0,0-50,0,2.52,2.52,0,0,0,2.5,2.81h0A2.51,2.51,0,0,0,5,22.88,20.14,20.14,0,0,1,25,5Z'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 25 25' to='360 25 25' dur='0.6s' repeatCount='indefinite'/%3E%3C/path%3E%3C/svg%3E\");background-size:11px}.select-search:not(.is-disabled) .select-search__input{cursor:pointer}.select-search--multiple{border-radius:3px;overflow:hidden}.select-search:not(.is-loading):not(.select-search--multiple) .select-search__value::after{transform:rotate(45deg);border-right:1px solid #555;border-bottom:1px solid #555;pointer-events:none}.select-search--multiple .select-search__input{cursor:initial}.select-search--multiple .select-search__input{border-radius:3px 3px 0 0}.select-search--multiple:not(.select-search--search) .select-search__input{cursor:default}.select-search:not(.select-search--multiple) .select-search__input:hover{border-color:var(--accent)}.select-search:not(.select-search--multiple) .select-search__select{z-index:2;margin-top:4px;right:0;left:0;border-radius:3px;overflow:auto;max-height:360px;box-shadow:var(--boxShadow)}.select-search--multiple .select-search__select{position:relative;overflow:auto;max-height:260px;border-top:1px solid #eee;border-radius:0 0 3px 3px}.select-search.horizontal .select-search__value{display:none}.select-search.horizontal .select-search__select{top:0;box-shadow:none}.select-search.horizontal .select-search__options{display:flex}.select-search.horizontal .select-search__option{height:28px;position:relative;text-align:center;padding:0 10px}.select-search.horizontal .select-search__row{flex:1}.select-search.horizontal .select-search__row:not(:first-child){border-top:none}.select-search__row[data-value=\"italic\"] .select-search__option{font-style:italic}.select-search__row[data-value=\"overline\"] .select-search__option{text-decoration:overline}.select-search__row[data-value=\"underline\"] .select-search__option{text-decoration:underline}.select-search__row[data-value=\"line-through\"] .select-search__option{text-decoration:line-through}.cw-border .select-search__row .select-search__option:after{content:'';position:absolute;top:50%;left:15%;width:70%}.cw-border .select-search__row[data-value=\"solid\"] .select-search__option:after{border-top:2px solid #000}.cw-border .select-search__row[data-value=\"dotted\"] .select-search__option:after{border-top:2px dotted #000}.cw-border .select-search__row[data-value=\"dashed\"] .select-search__option:after{border-top:2px dashed #000}.font-weight .select-search__row[data-value=\"100\"] .select-search__option{font-weight:100}.font-weight .select-search__row[data-value=\"200\"] .select-search__option{font-weight:200}.font-weight .select-search__row[data-value=\"300\"] .select-search__option{font-weight:300}.font-weight .select-search__row[data-value=\"400\"] .select-search__option{font-weight:400}.font-weight .select-search__row[data-value=\"500\"] .select-search__option{font-weight:500}.font-weight .select-search__row[data-value=\"600\"] .select-search__option{font-weight:600}.font-weight .select-search__row[data-value=\"700\"] .select-search__option{font-weight:700}.font-weight .select-search__row[data-value=\"800\"] .select-search__option{font-weight:800}.font-weight .select-search__row[data-value=\"900\"] .select-search__option{font-weight:900}.select-search__option:not(.is-selected) .dashicons{color:#555}\n"; + var selectStyles = ".select-search{position:relative;box-sizing:border-box}.select-search *,.select-search *::after,.select-search *::before{box-sizing:inherit}.select-search__value{position:relative;z-index:1}.select-search__value::after{content:'';display:inline-block;position:absolute;top:calc(50% - 4px);right:16px;width:6px;height:6px}.select-search__input{display:block;height:30px;width:100%;padding:0 16px;background:#fff !important;border:1px solid #c4c8ca;border-radius:3px;outline:none;font-family:'Noto Sans', sans-serif;font-size:14px;text-align:left;text-overflow:ellipsis;line-height:36px;-webkit-appearance:none;margin:0}.select-search__input::-webkit-search-decoration,.select-search__input::-webkit-search-cancel-button,.select-search__input::-webkit-search-results-button,.select-search__input::-webkit-search-results-decoration{-webkit-appearance:none}.select-search__input:not([readonly]):focus{cursor:initial}.select-search__select{background:#fff;box-shadow:0 0.0625rem 0.125rem rgba(0,0,0,0.15)}.select-search__options{list-style:none}.select-search__row:not(:first-child){border-top:1px solid #f2f2f2}.select-search__option{display:block;height:36px;width:100%;padding:0 16px;background:#fff;border:none;outline:none;font-size:14px;text-align:left;cursor:pointer}.select-search--multiple .select-search__option{height:48px}.select-search__option.is-selected{background:var(--accent);color:#fff}.select-search__option.is-highlighted,.select-search__option:not(.is-selected):hover{background:var(--accentLight)}.select-search__option.is-highlighted.is-selected,.select-search__option.is-selected:hover{background:#21ab7d;color:#fff}.select-search__group-header{font-size:10px;text-transform:uppercase;background:#f7f7f7;padding:6px 16px;position:sticky;top:0;box-shadow:0 1px 3px rgba(0,0,0,0.2)}.select-search.is-disabled{opacity:0.5}.select-search.is-loading .select-search__value::after{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 50 50'%3E%3Cpath fill='%232F2D37' d='M25,5A20.14,20.14,0,0,1,45,22.88a2.51,2.51,0,0,0,2.49,2.26h0A2.52,2.52,0,0,0,50,22.33a25.14,25.14,0,0,0-50,0,2.52,2.52,0,0,0,2.5,2.81h0A2.51,2.51,0,0,0,5,22.88,20.14,20.14,0,0,1,25,5Z'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 25 25' to='360 25 25' dur='0.6s' repeatCount='indefinite'/%3E%3C/path%3E%3C/svg%3E\");background-size:11px}.select-search:not(.is-disabled) .select-search__input{cursor:pointer}.select-search--multiple{border-radius:3px;overflow:hidden}.select-search:not(.is-loading):not(.select-search--multiple) .select-search__value::after{transform:rotate(45deg);border-right:1px solid #555;border-bottom:1px solid #555;pointer-events:none}.select-search--multiple .select-search__input{cursor:initial}.select-search--multiple .select-search__input{border-radius:3px 3px 0 0}.select-search--multiple:not(.select-search--search) .select-search__input{cursor:default}.select-search:not(.select-search--multiple) .select-search__input:hover{border-color:var(--accent)}.select-search:not(.select-search--multiple) .select-search__select{z-index:2;margin-top:4px;right:0;left:0;border-radius:3px;overflow:auto;max-height:360px;box-shadow:var(--boxShadow)}.select-search--multiple .select-search__select{position:relative;overflow:auto;max-height:260px;border-top:1px solid #eee;border-radius:0 0 3px 3px}.select-search.horizontal .select-search__value{display:none}.select-search.horizontal .select-search__select{margin-top:0;top:0;box-shadow:none}.select-search.horizontal .select-search__options{display:flex}.select-search.horizontal .select-search__option{height:28px;position:relative;text-align:center;padding:0 10px}.select-search.horizontal .select-search__row{flex:1}.select-search.horizontal .select-search__row:not(:first-child){border-top:none}.select-search__row[data-value=\"italic\"] .select-search__option{font-style:italic}.select-search__row[data-value=\"overline\"] .select-search__option{text-decoration:overline}.select-search__row[data-value=\"underline\"] .select-search__option{text-decoration:underline}.select-search__row[data-value=\"line-through\"] .select-search__option{text-decoration:line-through}.cw-border .select-search__row .select-search__option:after{content:'';position:absolute;top:50%;left:15%;width:70%}.cw-border .select-search__row[data-value=\"solid\"] .select-search__option:after{border-top:2px solid #000}.cw-border .select-search__row[data-value=\"dotted\"] .select-search__option:after{border-top:2px dotted #000}.cw-border .select-search__row[data-value=\"dashed\"] .select-search__option:after{border-top:2px dashed #000}.font-weight .select-search__row[data-value=\"100\"] .select-search__option{font-weight:100}.font-weight .select-search__row[data-value=\"200\"] .select-search__option{font-weight:200}.font-weight .select-search__row[data-value=\"300\"] .select-search__option{font-weight:300}.font-weight .select-search__row[data-value=\"400\"] .select-search__option{font-weight:400}.font-weight .select-search__row[data-value=\"500\"] .select-search__option{font-weight:500}.font-weight .select-search__row[data-value=\"600\"] .select-search__option{font-weight:600}.font-weight .select-search__row[data-value=\"700\"] .select-search__option{font-weight:700}.font-weight .select-search__row[data-value=\"800\"] .select-search__option{font-weight:800}.font-weight .select-search__row[data-value=\"900\"] .select-search__option{font-weight:900}.select-search__option svg{width:16px;color:#fff}.select-search__option:not(.is-selected) .dashicons,.select-search__option:not(.is-selected) svg{color:#555}\n"; function Editor() { var _cw$components = cw.components, @@ -4819,10 +4819,58 @@ } return size; - }(currentStyles.backgroundSize), + }(currentStyles.backgroundSize) + }, + cls: 'col-6' + }, { + property: 'background-repeat', + Component: Select, + params: { + label: 'Tile', + name: 'background-repeat', + options: [{ + name: 'Repeat', + value: 'repeat', + content: function content() { + return /*#__PURE__*/React.createElement("svg", { + viewBox: "0 0 16 16" + }, /*#__PURE__*/React.createElement("path", { + fill: "currentColor", + d: "M1 1h4v4H1zm5 0h4v4H6zm5 0h4v4h-4zM1 6h4v4H1zm5 0h4v4H6zm5 0h4v4h-4zM1 11h4v4H1zm5 0h4v4H6zm5 0h4v4h-4z" + })); + } + }, { + name: 'Repeat X', + value: 'repeat-x', + content: function content() { + return /*#__PURE__*/React.createElement("svg", { + viewBox: "0 0 16 16" + }, /*#__PURE__*/React.createElement("path", { + fill: "currentColor", + d: "M1 6h4v4H1zm5 0h4v4H6zm5 0h4v4h-4z" + })); + } + }, { + name: 'Repeat Y', + value: 'repeat-y', + content: function content() { + return /*#__PURE__*/React.createElement("svg", { + viewBox: "0 0 16 16" + }, /*#__PURE__*/React.createElement("path", { + fill: "currentColor", + d: "M6 1h4v4H6zm0 5h4v4H6zm0 5h4v4H6z" + })); + } + }, { + name: 'No Repeat', + value: 'no-repeat', + clsName: 'dashicons dashicons-no-alt' + }], + val: currentStyles.backgroundRepeat, printOptions: 'always', horizontal: true - } + }, + cls: 'col-6' }] }, { id: 'text', diff --git a/library/addons/colorwings/js/color-wings.min.js b/library/addons/colorwings/js/color-wings.min.js index 9106bcc..6b703e2 100644 --- a/library/addons/colorwings/js/color-wings.min.js +++ b/library/addons/colorwings/js/color-wings.min.js @@ -1,4 +1,4 @@ -!function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e);function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n-1&&this.events[e].splice(n,1)}}},{key:"emit",value:function(e){for(var t=this,n=arguments.length,o=new Array(n>1?n-1:0),a=1;a2&&void 0!==arguments[2]&&arguments[2],r=null;return function(){var o=arguments,a=this,i=n&&!r,c=function(){return e.apply(a,o)};clearTimeout(r),r=setTimeout(c,t),i&&c()}}function P(e){var t,n,o;if("object"!==r(e)||null===e)return e;for(o in t=Array.isArray(e)?[]:{},e)n=e[o],t[o]=P(n);return t}function z(e,t){var n=React.useRef(!0);React.useEffect((function(){n.current||e()}),t),React.useEffect((function(){n.current=!1}),[])}var T,L,M,A={mounted:!0,currentTheme:cwControlObject.theme,currentPage:"global",currentPageType:"global",currentTarget:!1,currentSelector:"",currentPseudo:"",openSection:!1,currentStyles:{},previewObject:{},allFonts:{},quickSelectors:[],selectorClass:""},q=new(function(e){p(n,e);var t=f(n);function n(){return o(this,n),t.apply(this,arguments)}return i(n,[{key:"setMounted",value:function(e){this.set((function(){return{mounted:e}}))}},{key:"toggleSection",value:function(e){this.set((function(t){return t.openSection===e?{openSection:!1}:{openSection:e}}))}},{key:"addInitialSettings",value:function(e){e&&this.set((function(){return u({},e)}))}},{key:"changePage",value:function(e,t){this.set((function(){return{currentPage:e,currentPageType:t}})),localStorage.setItem("cwCurrentPage",e)}},{key:"addPreviewObject",value:function(e){this.set((function(){return{previewObject:e}}))}},{key:"addFont",value:function(e){this.set((function(t){var n=t.currentPage,r=t.allFonts;n in r||(r[n]={});var o=e.source,a=e.family,i="normal"===e.style?"":"i",l="".concat(e.weight).concat(i);return o in r[n]?a in r[n][o]?r[n][o][a].includes(l)||r[n][o][a].push(l):r[n][o][a]=[l]:r[n][o]=c({},a,[l]),{allFonts:r}}))}},{key:"setQuickSelectors",value:function(e){this.set((function(){return{quickSelectors:e}}))}},{key:"togglePseudo",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";this.set((function(){return{currentPseudo:e}}))}},{key:"setSelectorClass",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";this.set((function(){return{selectorClass:e}}))}}]),n}(O))(A),I=new(function(e){p(n,e);var t=f(n);function n(){return o(this,n),t.apply(this,arguments)}return i(n,[{key:"setInitialMediaQueries",value:function(e){var t={},n=[];e.forEach((function(e){if("all"!==e){var r=e.match(/\d*(min-width):\s*(\d+\s?)(px)/),o=e.match(/\d*(max-width):\s*(\d+\s?)(px)/);if(null!==r||null!==o){var a=0,i=5e3;null!==r&&(a=Number(r[2]),-1===n.indexOf(a)&&n.push(a)),null!==o&&(i=Number(o[2]),-1===n.indexOf(i)&&n.push(i)),t["".concat(a,"-").concat(i)]={min:a,max:i,enabled:!0}}}})),this.set((function(){return{queries:t,breakpoints:n}}))}},{key:"addBreakpoint",value:function(){this.set((function(e){var t=e.breakpoints,n=e.currentPreviewWidth;return-1===t.indexOf(n)&&t.push(n),t.sort((function(e,t){return e-t})),{breakpoints:t,queries:function(e){for(var t=[0].concat(v(e),[5e3]),n={},r=0;r1&&void 0!==arguments[1]&&arguments[1];this.set((function(n){var r=n.queries;return r[e].enabled=t||!r[e].enabled,{queries:r}}))}},{key:"activateQuery",value:function(e){this.set((function(t){return{currentMedia:{key:e,query:(n=t.queries[e],"".concat(0!==n.min?"(min-width: "+n.min+"px)":"").concat(0!==n.min&&5e3!==n.max?" and ":"").concat(5e3!==n.max?"(max-width: "+n.max+"px)":""))}};var n})),this.toggleEnabled(e,!0)}},{key:"deActivateQuery",value:function(){this.set((function(){return{currentMedia:{key:"",query:"all"}}}))}},{key:"removeBreakpoint",value:function(e){this.set((function(t){var n=t.breakpoints.filter((function(t){return t!==e}));return{queries:Object.filter(t.queries,(function(t){var n=b(t,2),r=(n[0],n[1]);return r.min!==e&&r.max!==e})),breakpoints:n}}))}}]),n}(O))({currentPreviewWidth:0,breakpoints:[],queries:{},currentMedia:{key:"",query:"all"}}),D={styles:{all:{}},allOutputs:{},history:{past:[],future:[]}},F=new(function(e){p(n,e);var t=f(n);function n(){return o(this,n),t.apply(this,arguments)}return i(n,[{key:"set",value:function(e,t){var r=this;g(d(n.prototype),"set",this).call(this,(function(t){var n=P(t),o=n.styles,a=n.allOutputs,i=r.historyCount||100;return 0===Object.keys(a).length||(t.history.past.push({styles:o,allOutputs:a}),t.history.past.length>i&&(t.history.past=t.history.past.slice(t.history.past.length-i))),e(t)}),t)}},{key:"updateHistoryCount",value:function(e){this.historyCount=e}},{key:"addInitialStyle",value:function(e,t){var n={};for(var r in t)t.hasOwnProperty(r)&&(n[r]=t[r].styles);var o=this.parseStyles(e);this.overrideInitialState(u(u({},D),{},{styles:o,allOutputs:n})),I.setInitialMediaQueries(Object.keys(o))}},{key:"generateOutput",value:function(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){for(var r in"all"!==n&&(t+="@media ".concat(n,"{")),e[n])if(e[n].hasOwnProperty(r)){for(var o in t+=r+"{",e[n][r])e[n][r].hasOwnProperty(o)&&(t+="".concat(o,":").concat(e[n][r][o],";"));t+="}"}"all"!==n&&(t+="}")}return t}},{key:"registerSpecialSubscriber",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"tempStyler";"tempStyler"===t?this.tempStyler=e:"fontManager"===t&&(this.addFont=e),this.debouncedSetStyles=j(this.setStyles,500)}},{key:"addStyle",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"all";this.tempStyler("".concat(e," { ").concat(t,": ").concat(n,"; }")),this.debouncedSetStyles(e,t,n,r)}},{key:"addStyleNow",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"all";this.tempStyler("".concat(e," { ").concat(t,": ").concat(n,"; }")),this.setStyles(e,t,n,r)}},{key:"setStyles",value:function(e,t,n){var r=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"all";o=I.get().currentMedia.query,this.set((function(a){var i=q.get().currentPseudo;e=""!==i?"".concat(e,":").concat(i):e;var c=a.styles;c.hasOwnProperty(o)||(c[o]={}),c[o].hasOwnProperty(e)||(c[o][e]={}),c[o][e][t]=n;var l=q.get().currentPage;return a.allOutputs[l]=r.generateOutput(c),{styles:c,allOutputs:a.allOutputs}}))}},{key:"parseStyles",value:function(e){try{return function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"all",r={};return r[n]={},t.forEach((function(t){if("rule"===t.type){var o={};t.declarations.forEach((function(e){o[e.property]=e.value})),r[n][t.selectors.join(", ")]=o}else"media"===t.type&&(r[t.media]=e(t.rules,t.media)[t.media])})),r}(C(e).stylesheet.rules)}catch(e){return e}}},{key:"addFromString",value:function(e){var t=this.parseStyles(e);if(t instanceof Error){var n=t;return cw.Evt.emit("toggle-notice","invalid","Invalid CSS: ".concat(n.reason," at ").concat(n.line,":").concat(n.column)),!1}cw.Evt.emit("toggle-notice","invalid",!1),this.set((function(n){var r=q.get().currentPage;return n.allOutputs[r]=e,{styles:t,allOutputs:n.allOutputs}}))}},{key:"removeMediaStyles",value:function(e){var t=this;this.set((function(n){var r=n.styles;return e.forEach((function(e){delete r[e]})),n.allOutputs[q.get().currentPage]=t.generateOutput(r),{styles:r,allOutputs:n.allOutputs}}))}},{key:"undo",value:function(){var e=P(this.get()),t=e.styles,r=e.allOutputs,o=e.history,a=o.past,i=o.future;0!==a.length&&g(d(n.prototype),"set",this).call(this,(function(){i.push({styles:t,allOutputs:r});var e=a.pop(),n={past:a,future:i};return{styles:e.styles,allOutputs:e.allOutputs,history:n}}))}},{key:"redo",value:function(){var e=P(this.get()),t=e.styles,r=e.allOutputs,o=e.history,a=o.past,i=o.future;0!==i.length&&g(d(n.prototype),"set",this).call(this,(function(){a.push({styles:t,allOutputs:r});var e=i.pop(),n={past:a,future:i};return{styles:e.styles,allOutputs:e.allOutputs,history:n}}))}}]),n}(O))(D);function W(e){T.innerHTML=".cwm-resizer{left:".concat(e,"px;}.cwm-enabled #customize-preview{width:").concat(e,"px;}"),M.innerHTML="".concat(e,"px")}function B(e){L.innerHTML=".cwm-bar .cwm-breakpoint-adder{left:".concat(e,"px;}"),I.updatePreviewWidth(e)}function H(e){e===I.get().currentMedia.key||""===e?I.deActivateQuery():I.activateQuery(e)}function V(e){var t=e.left,n=b(React.useState({show:!1,x:0,y:0}),2),r=n[0],o=n[1],a=function(){return o({show:!1})};return React.createElement(React.Fragment,null,r.show&&React.createElement("div",{className:"cwm-breakpoint-context"},React.createElement("div",{className:"cwm-context-bg",onClick:a}),React.createElement("div",{className:"cwm-context-menu",style:{left:r.x+2,top:r.y}},React.createElement("div",{className:"cwm-context-item",onClick:function(){var e=!0,n=function(e){var t=F.get().styles,n=[],r="";for(var o in t)t.hasOwnProperty(o)&&o.includes(e)&&(n.push(o),r+="\n".concat(o));return{queries:n,queriesString:r}}(t),r=n.queries,o=n.queriesString;""!==o&&(e=window.confirm("This will also remove all styles for following media queries:\n".concat(o,"\n\nAre you sure you want to remove?"))),e&&(I.removeBreakpoint(t),F.removeMediaStyles(r)),a()}},"Remove Breakpoint"))),React.createElement("div",{className:"cwm-breakpoint",style:{left:"".concat(t,"px")},onContextMenu:function(e){e.preventDefault(),o({show:!0,x:e.clientX,y:e.clientY})}}))}function K(){var e=b(React.useState(!1),2),t=e[0],n=e[1],r=R(I),o=r.queries,a=r.breakpoints,i=r.currentPreviewWidth,c=r.currentMedia,l=["rgba(229, 57, 53, .2)","rgb(142, 36, 170, .2)","rgb(57, 73, 171, .2)","rgb(3, 155, 229, .2)","rgb(0, 137, 123, .2)","rgb(124, 179, 66, .2)","rgb(253, 216, 53, .2)","rgb(251, 140, 0, .2)","rgb(109, 76, 65, .2)","rgb(84, 110, 122, .2)"],s=["rgba(229, 57, 53, .8)","rgb(142, 36, 170, .8)","rgb(57, 73, 171, .8)","rgb(3, 155, 229, .8)","rgb(0, 137, 123, .8)","rgb(124, 179, 66, .8)","rgb(253, 216, 53, .8)","rgb(251, 140, 0, .8)","rgb(109, 76, 65, .8)","rgb(84, 110, 122, .8)"];return React.createElement("div",{className:"cwm-bar".concat(t?" expanded":"")},React.createElement("div",{className:"cwm-queries"},Object.entries(o).map((function(e,n){var r=b(e,2),o=r[0],a=r[1],i="".concat(t?n%10*25:n%10*2,"px"),u=c.key===o;return u&&!t&&(i=0),React.createElement("div",{key:o,onClick:function(){return H(o)},className:"cwm-query".concat(a.enabled?" enabled":"").concat(u?" active":""),style:{left:"".concat(a.min+1,"px"),width:"".concat(a.max-a.min-2,"px"),background:a.enabled?s[n%9]:l[n%9],top:i}},React.createElement("span",{className:"cwm-query-enabler dashicons ".concat(a.enabled?"dashicons-visibility":"dashicons-hidden"),onClick:function(e){return function(e,t){e.stopPropagation(),I.toggleEnabled(t)}(e,o)}}),React.createElement("div",{className:"cwm-query-details"},0!==a.min?"(min: ".concat(a.min,"px)"):""," ",0!==a.min&&5e3!==a.max?"&":""," ",5e3!==a.max?"(max: ".concat(a.max,"px)"):""))}))),React.createElement("div",{className:"cwm-breakpoints"},a.map((function(e){return React.createElement(V,{key:e,left:e})}))),-1===a.indexOf(i)&&React.createElement("div",{className:"cwm-breakpoint-adder",onClick:function(){I.addBreakpoint()}},React.createElement("span",{className:"plus-sign"},"+"),React.createElement("span",{className:"adder-text"},"Add Breakpoint")),React.createElement("div",{className:"cwm-bar-toggler",onClick:function(){n((function(e){return!e}))}},React.createElement("span",{className:"dashicons dashicons-leftright"})))}function $(e){var t=React.createRef(),n=0,r=0,o=function(t){t.preventDefault();var o=Math.floor(t.clientX-n);o<1||(r=o,e.onResize&&e.onResize(r))},a=function t(){document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",t),document.removeEventListener("touchcancel",t),document.removeEventListener("touchend",t),e.onEnd&&e.onEnd(r),document.body.classList.remove("cwm-resizing")};function i(e){e.preventDefault(),document.body.classList.add("cwm-resizing"),n=t.current.parentNode.getBoundingClientRect().left,document.addEventListener("mousemove",o),document.addEventListener("mouseup",a),document.addEventListener("touchcancel",a),document.addEventListener("touchend",a)}return React.createElement("div",{className:"cwm-resizer",ref:t,onMouseDown:i,onTouchStart:i,onMouseUp:a,onTouchCancel:a,onTouchEnd:a},React.createElement("div",{className:"cwm-resizer-tip"},React.createElement("div",{className:"cwm-indicator"}),React.createElement("div",{id:"cwm-resizer-details"})))}window.cw=window.cw||{},window.cw=u(u({},window.cw),{},{Evt:x,StylesStore:F,MainStore:q}),Object.filter=function(e,t){return Object.fromEntries(Object.entries(e).filter(t))},cw.Evt.on("cw-media-loaded",(function(){(T=document.createElement("style")).id="cwm-special-styles",(L=document.createElement("style")).id="cwm-bar-styles",document.getElementById("color-wings-media").append(T,L),M=document.getElementById("cwm-resizer-details")}));var U,Q,Z,G;function J(){return React.useEffect((function(){cw.Evt.emit("cw-media-loaded")}),[]),React.createElement(React.Fragment,null,React.createElement(K,null),React.createElement($,{onResize:W,onEnd:B}),React.createElement("style",{type:"text/css"},"#color-wings-media{display:none;position:absolute;top:0;left:0;right:0;height:100%}#color-wings-media *{box-sizing:border-box}.cwm-enabled #color-wings-media{display:block}.cwm-enabled #customize-preview{height:calc( 100% - 24px);top:24px;left:0;margin:auto 0 auto 1px}.cwm-enabled #customize-preview iframe{z-index:2}.cwm-bar{position:fixed;top:0;left:301px;right:0;height:24px;background:#444;color:#eee;border-bottom:1px solid #555;z-index:5}@media screen and (min-width: 1667px){.cwm-bar{left:calc( 18% + 1px)}}.collapsed .cwm-bar{left:1px !important}.cwm-resizer{position:absolute;left:100%;height:100%;width:14px;background:#666;cursor:ew-resize;z-index:3}.cwm-resizer:before{content:'';width:2px;height:26px;top:50%;position:absolute;left:50%;transform:translate(-50%, -50%);border-right:2px solid #888;border-left:2px solid #888}.cwm-resizing #color-wings-media{z-index:3}.cwm-resizing #customize-preview{transition:none !important}.cwm-resizer-tip{position:absolute;top:0;left:0}.cwm-indicator{position:absolute;bottom:0;left:0;height:26px;width:0;border-top:1px solid #eee;border-right:1px solid transparent;border-bottom:1px solid transparent;border-left:1px solid #69e000}#cwm-resizer-details{position:absolute;top:2px;color:#fff;left:16px;background:#444444;padding:0 10px}.cwm-breakpoint-adder{position:absolute;background:#eee;border:1px solid #666;color:#000;left:0;top:0;padding:0 5px 0 5px;border-radius:0 0 3px 0;max-height:18px;white-space:nowrap;cursor:pointer;z-index:5;border-top-width:0;line-height:16px}.cwm-breakpoint-adder:before,.cwm-breakpoint-adder:after{content:'';display:block;position:absolute;left:0;top:100%;width:0;height:0;border-top:6px solid #eee;border-right:8px solid transparent;border-bottom:0 solid transparent;border-left:0 solid transparent}.cwm-breakpoint-adder:before{left:-1px;border-top:8px solid #666;border-right:11px solid transparent;border-bottom:0 solid transparent;border-left:0 solid transparent}.cwm-breakpoint-adder .plus-sign{font-size:18px}.cwm-breakpoint-adder .adder-text{display:none}.cwm-breakpoint-adder:hover .adder-text{display:block}.cwm-breakpoint-adder:hover .plus-sign{display:none}.cwm-resizing .cwm-breakpoint-adder{display:none}.cwm-queries,.cwm-breakpoints{position:absolute;top:0;left:0;width:100%;height:100%}.cwm-breakpoints{height:0}.cwm-breakpoint{position:absolute;height:24px;width:10px;cursor:pointer;transform:translateX(-50%)}.cwm-breakpoint:before{content:'';position:absolute;left:50%;height:100%;width:1px;background:var(--accent)}.cwm-query{position:absolute;height:30%;line-height:24px;color:#444;cursor:pointer;display:none}.cwm-query.enabled{color:#fff;display:block}.cwm-bar.expanded .cwm-queries{height:250px;background:#fff;box-shadow:0 0 100px 50px #000}.cwm-bar.expanded .cwm-query{display:block;height:24px;border-radius:3px}.cwm-bar.expanded .cwm-query:not(.active) .cwm-query-enabler{display:block}.cwm-bar.expanded .cwm-query-details{display:block}.cwm-bar-toggler{position:absolute;right:0;background:var(--accent);cursor:pointer}.cwm-bar-toggler .dashicons{line-height:24px;height:24px;width:24px;transform:rotateZ(90deg)}.cwm-query-enabler{position:absolute;font-size:14px;line-height:24px;height:24px;padding:0 6px;width:max-content;background:rgba(0,0,0,0.1);border-radius:3px;display:none}.cwm-query-enabler:hover{background:rgba(0,0,0,0.2)}.cwm-query-details{font-size:12px;white-space:nowrap;padding-left:34px;display:none}.cwm-query-details:hover{background:var(--accent);color:#fff}.cwm-query.active{height:24px}.cwm-query.active .cwm-query-details{display:block;padding-left:8px}.cwm-context-bg{position:fixed;left:0;top:0;height:100%;width:100%}.cwm-context-menu{position:fixed;padding:4px 0 5px;background:rgba(239,239,239,0.95);box-shadow:0 4px 9px rgba(0,0,0,0.34);border-radius:4px;color:#000}.cwm-context-item{padding:1px 20px;cursor:default}.cwm-context-item:hover{background:#4195fa;color:#fff}\n"))}function X(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"disable";if(null===(U=document.getElementById("color-wings-media"))){(U=document.createElement("div")).id="color-wings-media";var t=document.getElementById("customize-preview");t.appendChild(U),ReactDOM.render(React.createElement(J,null),U)}"enable"===e?(Q="open","desktop"!==Z&&document.documentElement.classList.add("cwm-enabled")):(Q="close",document.documentElement.classList.remove("cwm-enabled"))}function Y(e){Z=e,"desktop"!==e&&"open"===Q?(document.documentElement.classList.add("cwm-enabled"),T.innerHTML="",setTimeout((function(){var e=document.getElementById("customize-preview");M.innerHTML="".concat(e.clientWidth,"px"),B(e.clientWidth)}),500)):(H(""),document.documentElement.classList.remove("cwm-enabled"))}var ee=q.get(),te=ee.currentTheme,ne=ee.currentPage,re=function(e){return e===Object(e)},oe=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"toggle",t=q.get(),n=t.mounted;!0===(e="toggle"===e?!n:e)?(cw.Evt.emit("mount-colorwings"),X("enable"),q.setMounted(!0)):(cw.Evt.emit("unmount-colorwings"),X("disable"),q.setMounted(!1))},ae=function(){var e,t=q.get(),n=t.currentPage,r=t.currentPageType,o=t.allFonts,a=F.get().allOutputs[n];e=re(G.setting._value)?P(G.setting._value):c({},te,{}),te in e||(e[te]={}),e[te][n]={type:r,styles:a,fonts:o[n]},cw.Evt.emit("update-control",e)},ie=function(){var e=q.get().currentPage;if(e!==ne){if(re(G.setting._value)&&te in G.setting._value&&e in G.setting._value[te]){var t=G.setting._value[te][e].styles;F.addFromString(t)}else F.addFromString("");ae(),ne=e}},ce=j((function(e,t){if(!1===t)G.notifications.remove(e);else{var n=new wp.customize.Notification(e,{message:t});G.notifications.add(e,n)}}),1e3),le={shortcuts:!0,history:100},se=localStorage.getItem("cwSettings");null!==se&&(le=JSON.parse(se));var ue=function(e){!1!==le.shortcuts&&(e.metaKey||e.ctrlKey)&&("s"===e.key?(e.preventDefault(),wp.customize.previewer.save()):"z"!==e.key||e.shiftKey?("y"===e.key||"z"===e.key&&e.shiftKey)&&(e.preventDefault(),F.redo()):(e.preventDefault(),F.undo()))},pe=function(){return F.undo()},de=function(){return F.redo()};F.subscribe(ae),q.subscribe(ie),cw.Evt.on("colorwings-will-mount",(function(e){if((G=e).setting._value&&te in G.setting._value){var t,n=G.setting._value[te],r=localStorage.getItem("cwCurrentPage"),o="global";if(null!==r&&r in n)t=n[r],o=r;else if("global"in n)t=n.global;else{var a=Object.keys(n);a.length>0&&(t=n[a[0]],o=a[0])}var i={};for(var c in n)n.hasOwnProperty(c)&&"fonts"in n[c]&&(i[c]=n[c].fonts);q.addInitialSettings({allFonts:i,currentPage:o,currentPageType:t.type}),F.addInitialStyle(t.styles,n)}})),cw.Evt.on("preview-object-ready",(function(e){q.addPreviewObject(e)})),cw.Evt.on("toggle-notice",(function(e,t){ce(e,t)})),cw.Evt.on("mount-colorwings",(function(){document.addEventListener("keydown",ue,!1)})),cw.Evt.on("unmount-colorwings",(function(){document.removeEventListener("keydown",ue,!1)})),cw.Evt.on("update-settings",(function(e){le=e,F.updateHistoryCount(parseInt(le.history,10))})),cw.Evt.on("focus-locked",(function(e){var t=e.currentSelector,n=e.currentTarget,r=window.getComputedStyle(n);q.set((function(){return{currentTarget:n,currentSelector:t,currentStyles:r}}))})),cw.Evt.on("focus-unlocked",(function(){q.set((function(){return{currentSelector:""}}))}));var me=!1;var he=wp.mediaUtils.MediaUpload;function fe(e,t){const{key:n,options:r}=t,o=r.length-1;let a="ArrowDown"===n?e+1:e-1;a<0?a=o:a>o&&(a=0);const i=r[a];return i&&i.disabled?fe(a,{key:n,options:r}):a}function ge(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function be(e){for(var t=1;t{if("groupId"in e){const r=function(e){for(var t=1;t"groupId"in e&&e.groupId===r.groupId));r.index=n,o>-1?t[o].items.push(r):t.push({items:[r],groupId:e.groupId,type:"group",name:e.groupName})}else t.push(e)})),t}function ke(e,t){return Array.isArray(e)?e.map((e=>t.find((t=>t.value===e)))):t.find((t=>t.value===e))||null}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var Ee,Oe,Re=(function(e,t){ +!function(e){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=t(e);function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n-1&&this.events[e].splice(n,1)}}},{key:"emit",value:function(e){for(var t=this,n=arguments.length,o=new Array(n>1?n-1:0),a=1;a2&&void 0!==arguments[2]&&arguments[2],r=null;return function(){var o=arguments,a=this,c=n&&!r,i=function(){return e.apply(a,o)};clearTimeout(r),r=setTimeout(i,t),c&&i()}}function z(e){var t,n,o;if("object"!==r(e)||null===e)return e;for(o in t=Array.isArray(e)?[]:{},e)n=e[o],t[o]=z(n);return t}function P(e,t){var n=React.useRef(!0);React.useEffect((function(){n.current||e()}),t),React.useEffect((function(){n.current=!1}),[])}var T,L,M,A={mounted:!0,currentTheme:cwControlObject.theme,currentPage:"global",currentPageType:"global",currentTarget:!1,currentSelector:"",currentPseudo:"",openSection:!1,currentStyles:{},previewObject:{},allFonts:{},quickSelectors:[],selectorClass:""},q=new(function(e){p(n,e);var t=f(n);function n(){return o(this,n),t.apply(this,arguments)}return c(n,[{key:"setMounted",value:function(e){this.set((function(){return{mounted:e}}))}},{key:"toggleSection",value:function(e){this.set((function(t){return t.openSection===e?{openSection:!1}:{openSection:e}}))}},{key:"addInitialSettings",value:function(e){e&&this.set((function(){return u({},e)}))}},{key:"changePage",value:function(e,t){this.set((function(){return{currentPage:e,currentPageType:t}})),localStorage.setItem("cwCurrentPage",e)}},{key:"addPreviewObject",value:function(e){this.set((function(){return{previewObject:e}}))}},{key:"addFont",value:function(e){this.set((function(t){var n=t.currentPage,r=t.allFonts;n in r||(r[n]={});var o=e.source,a=e.family,c="normal"===e.style?"":"i",l="".concat(e.weight).concat(c);return o in r[n]?a in r[n][o]?r[n][o][a].includes(l)||r[n][o][a].push(l):r[n][o][a]=[l]:r[n][o]=i({},a,[l]),{allFonts:r}}))}},{key:"setQuickSelectors",value:function(e){this.set((function(){return{quickSelectors:e}}))}},{key:"togglePseudo",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";this.set((function(){return{currentPseudo:e}}))}},{key:"setSelectorClass",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";this.set((function(){return{selectorClass:e}}))}}]),n}(R))(A),I=new(function(e){p(n,e);var t=f(n);function n(){return o(this,n),t.apply(this,arguments)}return c(n,[{key:"setInitialMediaQueries",value:function(e){var t={},n=[];e.forEach((function(e){if("all"!==e){var r=e.match(/\d*(min-width):\s*(\d+\s?)(px)/),o=e.match(/\d*(max-width):\s*(\d+\s?)(px)/);if(null!==r||null!==o){var a=0,c=5e3;null!==r&&(a=Number(r[2]),-1===n.indexOf(a)&&n.push(a)),null!==o&&(c=Number(o[2]),-1===n.indexOf(c)&&n.push(c)),t["".concat(a,"-").concat(c)]={min:a,max:c,enabled:!0}}}})),this.set((function(){return{queries:t,breakpoints:n}}))}},{key:"addBreakpoint",value:function(){this.set((function(e){var t=e.breakpoints,n=e.currentPreviewWidth;return-1===t.indexOf(n)&&t.push(n),t.sort((function(e,t){return e-t})),{breakpoints:t,queries:function(e){for(var t=[0].concat(b(e),[5e3]),n={},r=0;r1&&void 0!==arguments[1]&&arguments[1];this.set((function(n){var r=n.queries;return r[e].enabled=t||!r[e].enabled,{queries:r}}))}},{key:"activateQuery",value:function(e){this.set((function(t){return{currentMedia:{key:e,query:(n=t.queries[e],"".concat(0!==n.min?"(min-width: "+n.min+"px)":"").concat(0!==n.min&&5e3!==n.max?" and ":"").concat(5e3!==n.max?"(max-width: "+n.max+"px)":""))}};var n})),this.toggleEnabled(e,!0)}},{key:"deActivateQuery",value:function(){this.set((function(){return{currentMedia:{key:"",query:"all"}}}))}},{key:"removeBreakpoint",value:function(e){this.set((function(t){var n=t.breakpoints.filter((function(t){return t!==e}));return{queries:Object.filter(t.queries,(function(t){var n=v(t,2),r=(n[0],n[1]);return r.min!==e&&r.max!==e})),breakpoints:n}}))}}]),n}(R))({currentPreviewWidth:0,breakpoints:[],queries:{},currentMedia:{key:"",query:"all"}}),D={styles:{all:{}},allOutputs:{},history:{past:[],future:[]}},F=new(function(e){p(n,e);var t=f(n);function n(){return o(this,n),t.apply(this,arguments)}return c(n,[{key:"set",value:function(e,t){var r=this;g(d(n.prototype),"set",this).call(this,(function(t){var n=z(t),o=n.styles,a=n.allOutputs,c=r.historyCount||100;return 0===Object.keys(a).length||(t.history.past.push({styles:o,allOutputs:a}),t.history.past.length>c&&(t.history.past=t.history.past.slice(t.history.past.length-c))),e(t)}),t)}},{key:"updateHistoryCount",value:function(e){this.historyCount=e}},{key:"addInitialStyle",value:function(e,t){var n={};for(var r in t)t.hasOwnProperty(r)&&(n[r]=t[r].styles);var o=this.parseStyles(e);this.overrideInitialState(u(u({},D),{},{styles:o,allOutputs:n})),I.setInitialMediaQueries(Object.keys(o))}},{key:"generateOutput",value:function(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){for(var r in"all"!==n&&(t+="@media ".concat(n,"{")),e[n])if(e[n].hasOwnProperty(r)){for(var o in t+=r+"{",e[n][r])e[n][r].hasOwnProperty(o)&&(t+="".concat(o,":").concat(e[n][r][o],";"));t+="}"}"all"!==n&&(t+="}")}return t}},{key:"registerSpecialSubscriber",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"tempStyler";"tempStyler"===t?this.tempStyler=e:"fontManager"===t&&(this.addFont=e),this.debouncedSetStyles=j(this.setStyles,500)}},{key:"addStyle",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"all";this.tempStyler("".concat(e," { ").concat(t,": ").concat(n,"; }")),this.debouncedSetStyles(e,t,n,r)}},{key:"addStyleNow",value:function(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"all";this.tempStyler("".concat(e," { ").concat(t,": ").concat(n,"; }")),this.setStyles(e,t,n,r)}},{key:"setStyles",value:function(e,t,n){var r=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"all";o=I.get().currentMedia.query,this.set((function(a){var c=q.get().currentPseudo;e=""!==c?"".concat(e,":").concat(c):e;var i=a.styles;i.hasOwnProperty(o)||(i[o]={}),i[o].hasOwnProperty(e)||(i[o][e]={}),i[o][e][t]=n;var l=q.get().currentPage;return a.allOutputs[l]=r.generateOutput(i),{styles:i,allOutputs:a.allOutputs}}))}},{key:"parseStyles",value:function(e){try{return function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"all",r={};return r[n]={},t.forEach((function(t){if("rule"===t.type){var o={};t.declarations.forEach((function(e){o[e.property]=e.value})),r[n][t.selectors.join(", ")]=o}else"media"===t.type&&(r[t.media]=e(t.rules,t.media)[t.media])})),r}(S(e).stylesheet.rules)}catch(e){return e}}},{key:"addFromString",value:function(e){var t=this.parseStyles(e);if(t instanceof Error){var n=t;return cw.Evt.emit("toggle-notice","invalid","Invalid CSS: ".concat(n.reason," at ").concat(n.line,":").concat(n.column)),!1}cw.Evt.emit("toggle-notice","invalid",!1),this.set((function(n){var r=q.get().currentPage;return n.allOutputs[r]=e,{styles:t,allOutputs:n.allOutputs}}))}},{key:"removeMediaStyles",value:function(e){var t=this;this.set((function(n){var r=n.styles;return e.forEach((function(e){delete r[e]})),n.allOutputs[q.get().currentPage]=t.generateOutput(r),{styles:r,allOutputs:n.allOutputs}}))}},{key:"undo",value:function(){var e=z(this.get()),t=e.styles,r=e.allOutputs,o=e.history,a=o.past,c=o.future;0!==a.length&&g(d(n.prototype),"set",this).call(this,(function(){c.push({styles:t,allOutputs:r});var e=a.pop(),n={past:a,future:c};return{styles:e.styles,allOutputs:e.allOutputs,history:n}}))}},{key:"redo",value:function(){var e=z(this.get()),t=e.styles,r=e.allOutputs,o=e.history,a=o.past,c=o.future;0!==c.length&&g(d(n.prototype),"set",this).call(this,(function(){a.push({styles:t,allOutputs:r});var e=c.pop(),n={past:a,future:c};return{styles:e.styles,allOutputs:e.allOutputs,history:n}}))}}]),n}(R))(D);function B(e){T.innerHTML=".cwm-resizer{left:".concat(e,"px;}.cwm-enabled #customize-preview{width:").concat(e,"px;}"),M.innerHTML="".concat(e,"px")}function W(e){L.innerHTML=".cwm-bar .cwm-breakpoint-adder{left:".concat(e,"px;}"),I.updatePreviewWidth(e)}function H(e){e===I.get().currentMedia.key||""===e?I.deActivateQuery():I.activateQuery(e)}function V(e){var t=e.left,n=v(React.useState({show:!1,x:0,y:0}),2),r=n[0],o=n[1],a=function(){return o({show:!1})};return React.createElement(React.Fragment,null,r.show&&React.createElement("div",{className:"cwm-breakpoint-context"},React.createElement("div",{className:"cwm-context-bg",onClick:a}),React.createElement("div",{className:"cwm-context-menu",style:{left:r.x+2,top:r.y}},React.createElement("div",{className:"cwm-context-item",onClick:function(){var e=!0,n=function(e){var t=F.get().styles,n=[],r="";for(var o in t)t.hasOwnProperty(o)&&o.includes(e)&&(n.push(o),r+="\n".concat(o));return{queries:n,queriesString:r}}(t),r=n.queries,o=n.queriesString;""!==o&&(e=window.confirm("This will also remove all styles for following media queries:\n".concat(o,"\n\nAre you sure you want to remove?"))),e&&(I.removeBreakpoint(t),F.removeMediaStyles(r)),a()}},"Remove Breakpoint"))),React.createElement("div",{className:"cwm-breakpoint",style:{left:"".concat(t,"px")},onContextMenu:function(e){e.preventDefault(),o({show:!0,x:e.clientX,y:e.clientY})}}))}function K(){var e=v(React.useState(!1),2),t=e[0],n=e[1],r=O(I),o=r.queries,a=r.breakpoints,c=r.currentPreviewWidth,i=r.currentMedia,l=["rgba(229, 57, 53, .2)","rgb(142, 36, 170, .2)","rgb(57, 73, 171, .2)","rgb(3, 155, 229, .2)","rgb(0, 137, 123, .2)","rgb(124, 179, 66, .2)","rgb(253, 216, 53, .2)","rgb(251, 140, 0, .2)","rgb(109, 76, 65, .2)","rgb(84, 110, 122, .2)"],s=["rgba(229, 57, 53, .8)","rgb(142, 36, 170, .8)","rgb(57, 73, 171, .8)","rgb(3, 155, 229, .8)","rgb(0, 137, 123, .8)","rgb(124, 179, 66, .8)","rgb(253, 216, 53, .8)","rgb(251, 140, 0, .8)","rgb(109, 76, 65, .8)","rgb(84, 110, 122, .8)"];return React.createElement("div",{className:"cwm-bar".concat(t?" expanded":"")},React.createElement("div",{className:"cwm-queries"},Object.entries(o).map((function(e,n){var r=v(e,2),o=r[0],a=r[1],c="".concat(t?n%10*25:n%10*2,"px"),u=i.key===o;return u&&!t&&(c=0),React.createElement("div",{key:o,onClick:function(){return H(o)},className:"cwm-query".concat(a.enabled?" enabled":"").concat(u?" active":""),style:{left:"".concat(a.min+1,"px"),width:"".concat(a.max-a.min-2,"px"),background:a.enabled?s[n%9]:l[n%9],top:c}},React.createElement("span",{className:"cwm-query-enabler dashicons ".concat(a.enabled?"dashicons-visibility":"dashicons-hidden"),onClick:function(e){return function(e,t){e.stopPropagation(),I.toggleEnabled(t)}(e,o)}}),React.createElement("div",{className:"cwm-query-details"},0!==a.min?"(min: ".concat(a.min,"px)"):""," ",0!==a.min&&5e3!==a.max?"&":""," ",5e3!==a.max?"(max: ".concat(a.max,"px)"):""))}))),React.createElement("div",{className:"cwm-breakpoints"},a.map((function(e){return React.createElement(V,{key:e,left:e})}))),-1===a.indexOf(c)&&React.createElement("div",{className:"cwm-breakpoint-adder",onClick:function(){I.addBreakpoint()}},React.createElement("span",{className:"plus-sign"},"+"),React.createElement("span",{className:"adder-text"},"Add Breakpoint")),React.createElement("div",{className:"cwm-bar-toggler",onClick:function(){n((function(e){return!e}))}},React.createElement("span",{className:"dashicons dashicons-leftright"})))}function $(e){var t=React.createRef(),n=0,r=0,o=function(t){t.preventDefault();var o=Math.floor(t.clientX-n);o<1||(r=o,e.onResize&&e.onResize(r))},a=function t(){document.removeEventListener("mousemove",o),document.removeEventListener("mouseup",t),document.removeEventListener("touchcancel",t),document.removeEventListener("touchend",t),e.onEnd&&e.onEnd(r),document.body.classList.remove("cwm-resizing")};function c(e){e.preventDefault(),document.body.classList.add("cwm-resizing"),n=t.current.parentNode.getBoundingClientRect().left,document.addEventListener("mousemove",o),document.addEventListener("mouseup",a),document.addEventListener("touchcancel",a),document.addEventListener("touchend",a)}return React.createElement("div",{className:"cwm-resizer",ref:t,onMouseDown:c,onTouchStart:c,onMouseUp:a,onTouchCancel:a,onTouchEnd:a},React.createElement("div",{className:"cwm-resizer-tip"},React.createElement("div",{className:"cwm-indicator"}),React.createElement("div",{id:"cwm-resizer-details"})))}window.cw=window.cw||{},window.cw=u(u({},window.cw),{},{Evt:x,StylesStore:F,MainStore:q}),Object.filter=function(e,t){return Object.fromEntries(Object.entries(e).filter(t))},cw.Evt.on("cw-media-loaded",(function(){(T=document.createElement("style")).id="cwm-special-styles",(L=document.createElement("style")).id="cwm-bar-styles",document.getElementById("color-wings-media").append(T,L),M=document.getElementById("cwm-resizer-details")}));var U,Q,Z,G;function J(){return React.useEffect((function(){cw.Evt.emit("cw-media-loaded")}),[]),React.createElement(React.Fragment,null,React.createElement(K,null),React.createElement($,{onResize:B,onEnd:W}),React.createElement("style",{type:"text/css"},"#color-wings-media{display:none;position:absolute;top:0;left:0;right:0;height:100%}#color-wings-media *{box-sizing:border-box}.cwm-enabled #color-wings-media{display:block}.cwm-enabled #customize-preview{height:calc( 100% - 24px);top:24px;left:0;margin:auto 0 auto 1px}.cwm-enabled #customize-preview iframe{z-index:2}.cwm-bar{position:fixed;top:0;left:301px;right:0;height:24px;background:#444;color:#eee;border-bottom:1px solid #555;z-index:5}@media screen and (min-width: 1667px){.cwm-bar{left:calc( 18% + 1px)}}.collapsed .cwm-bar{left:1px !important}.cwm-resizer{position:absolute;left:100%;height:100%;width:14px;background:#666;cursor:ew-resize;z-index:3}.cwm-resizer:before{content:'';width:2px;height:26px;top:50%;position:absolute;left:50%;transform:translate(-50%, -50%);border-right:2px solid #888;border-left:2px solid #888}.cwm-resizing #color-wings-media{z-index:3}.cwm-resizing #customize-preview{transition:none !important}.cwm-resizer-tip{position:absolute;top:0;left:0}.cwm-indicator{position:absolute;bottom:0;left:0;height:26px;width:0;border-top:1px solid #eee;border-right:1px solid transparent;border-bottom:1px solid transparent;border-left:1px solid #69e000}#cwm-resizer-details{position:absolute;top:2px;color:#fff;left:16px;background:#444444;padding:0 10px}.cwm-breakpoint-adder{position:absolute;background:#eee;border:1px solid #666;color:#000;left:0;top:0;padding:0 5px 0 5px;border-radius:0 0 3px 0;max-height:18px;white-space:nowrap;cursor:pointer;z-index:5;border-top-width:0;line-height:16px}.cwm-breakpoint-adder:before,.cwm-breakpoint-adder:after{content:'';display:block;position:absolute;left:0;top:100%;width:0;height:0;border-top:6px solid #eee;border-right:8px solid transparent;border-bottom:0 solid transparent;border-left:0 solid transparent}.cwm-breakpoint-adder:before{left:-1px;border-top:8px solid #666;border-right:11px solid transparent;border-bottom:0 solid transparent;border-left:0 solid transparent}.cwm-breakpoint-adder .plus-sign{font-size:18px}.cwm-breakpoint-adder .adder-text{display:none}.cwm-breakpoint-adder:hover .adder-text{display:block}.cwm-breakpoint-adder:hover .plus-sign{display:none}.cwm-resizing .cwm-breakpoint-adder{display:none}.cwm-queries,.cwm-breakpoints{position:absolute;top:0;left:0;width:100%;height:100%}.cwm-breakpoints{height:0}.cwm-breakpoint{position:absolute;height:24px;width:10px;cursor:pointer;transform:translateX(-50%)}.cwm-breakpoint:before{content:'';position:absolute;left:50%;height:100%;width:1px;background:var(--accent)}.cwm-query{position:absolute;height:30%;line-height:24px;color:#444;cursor:pointer;display:none}.cwm-query.enabled{color:#fff;display:block}.cwm-bar.expanded .cwm-queries{height:250px;background:#fff;box-shadow:0 0 100px 50px #000}.cwm-bar.expanded .cwm-query{display:block;height:24px;border-radius:3px}.cwm-bar.expanded .cwm-query:not(.active) .cwm-query-enabler{display:block}.cwm-bar.expanded .cwm-query-details{display:block}.cwm-bar-toggler{position:absolute;right:0;background:var(--accent);cursor:pointer}.cwm-bar-toggler .dashicons{line-height:24px;height:24px;width:24px;transform:rotateZ(90deg)}.cwm-query-enabler{position:absolute;font-size:14px;line-height:24px;height:24px;padding:0 6px;width:max-content;background:rgba(0,0,0,0.1);border-radius:3px;display:none}.cwm-query-enabler:hover{background:rgba(0,0,0,0.2)}.cwm-query-details{font-size:12px;white-space:nowrap;padding-left:34px;display:none}.cwm-query-details:hover{background:var(--accent);color:#fff}.cwm-query.active{height:24px}.cwm-query.active .cwm-query-details{display:block;padding-left:8px}.cwm-context-bg{position:fixed;left:0;top:0;height:100%;width:100%}.cwm-context-menu{position:fixed;padding:4px 0 5px;background:rgba(239,239,239,0.95);box-shadow:0 4px 9px rgba(0,0,0,0.34);border-radius:4px;color:#000}.cwm-context-item{padding:1px 20px;cursor:default}.cwm-context-item:hover{background:#4195fa;color:#fff}\n"))}function X(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"disable";if(null===(U=document.getElementById("color-wings-media"))){(U=document.createElement("div")).id="color-wings-media";var t=document.getElementById("customize-preview");t.appendChild(U),ReactDOM.render(React.createElement(J,null),U)}"enable"===e?(Q="open","desktop"!==Z&&document.documentElement.classList.add("cwm-enabled")):(Q="close",document.documentElement.classList.remove("cwm-enabled"))}function Y(e){Z=e,"desktop"!==e&&"open"===Q?(document.documentElement.classList.add("cwm-enabled"),T.innerHTML="",setTimeout((function(){var e=document.getElementById("customize-preview");M.innerHTML="".concat(e.clientWidth,"px"),W(e.clientWidth)}),500)):(H(""),document.documentElement.classList.remove("cwm-enabled"))}var ee=q.get(),te=ee.currentTheme,ne=ee.currentPage,re=function(e){return e===Object(e)},oe=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"toggle",t=q.get(),n=t.mounted;!0===(e="toggle"===e?!n:e)?(cw.Evt.emit("mount-colorwings"),X("enable"),q.setMounted(!0)):(cw.Evt.emit("unmount-colorwings"),X("disable"),q.setMounted(!1))},ae=function(){var e,t=q.get(),n=t.currentPage,r=t.currentPageType,o=t.allFonts,a=F.get().allOutputs[n];e=re(G.setting._value)?z(G.setting._value):i({},te,{}),te in e||(e[te]={}),e[te][n]={type:r,styles:a,fonts:o[n]},cw.Evt.emit("update-control",e)},ce=function(){var e=q.get().currentPage;if(e!==ne){if(re(G.setting._value)&&te in G.setting._value&&e in G.setting._value[te]){var t=G.setting._value[te][e].styles;F.addFromString(t)}else F.addFromString("");ae(),ne=e}},ie=j((function(e,t){if(!1===t)G.notifications.remove(e);else{var n=new wp.customize.Notification(e,{message:t});G.notifications.add(e,n)}}),1e3),le={shortcuts:!0,history:100},se=localStorage.getItem("cwSettings");null!==se&&(le=JSON.parse(se));var ue=function(e){!1!==le.shortcuts&&(e.metaKey||e.ctrlKey)&&("s"===e.key?(e.preventDefault(),wp.customize.previewer.save()):"z"!==e.key||e.shiftKey?("y"===e.key||"z"===e.key&&e.shiftKey)&&(e.preventDefault(),F.redo()):(e.preventDefault(),F.undo()))},pe=function(){return F.undo()},de=function(){return F.redo()};F.subscribe(ae),q.subscribe(ce),cw.Evt.on("colorwings-will-mount",(function(e){if((G=e).setting._value&&te in G.setting._value){var t,n=G.setting._value[te],r=localStorage.getItem("cwCurrentPage"),o="global";if(null!==r&&r in n)t=n[r],o=r;else if("global"in n)t=n.global;else{var a=Object.keys(n);a.length>0&&(t=n[a[0]],o=a[0])}var c={};for(var i in n)n.hasOwnProperty(i)&&"fonts"in n[i]&&(c[i]=n[i].fonts);q.addInitialSettings({allFonts:c,currentPage:o,currentPageType:t.type}),F.addInitialStyle(t.styles,n)}})),cw.Evt.on("preview-object-ready",(function(e){q.addPreviewObject(e)})),cw.Evt.on("toggle-notice",(function(e,t){ie(e,t)})),cw.Evt.on("mount-colorwings",(function(){document.addEventListener("keydown",ue,!1)})),cw.Evt.on("unmount-colorwings",(function(){document.removeEventListener("keydown",ue,!1)})),cw.Evt.on("update-settings",(function(e){le=e,F.updateHistoryCount(parseInt(le.history,10))})),cw.Evt.on("focus-locked",(function(e){var t=e.currentSelector,n=e.currentTarget,r=window.getComputedStyle(n);q.set((function(){return{currentTarget:n,currentSelector:t,currentStyles:r}}))})),cw.Evt.on("focus-unlocked",(function(){q.set((function(){return{currentSelector:""}}))}));var he=!1;var me=wp.mediaUtils.MediaUpload;function fe(e,t){const{key:n,options:r}=t,o=r.length-1;let a="ArrowDown"===n?e+1:e-1;a<0?a=o:a>o&&(a=0);const c=r[a];return c&&c.disabled?fe(a,{key:n,options:r}):a}function ge(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ve(e){for(var t=1;t{if("groupId"in e){const r=function(e){for(var t=1;t"groupId"in e&&e.groupId===r.groupId));r.index=n,o>-1?t[o].items.push(r):t.push({items:[r],groupId:e.groupId,type:"group",name:e.groupName})}else t.push(e)})),t}function ke(e,t){return Array.isArray(e)?e.map((e=>t.find((t=>t.value===e)))):t.find((t=>t.value===e))||null}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var Ee,Re,Oe=(function(e,t){ /*! * Fuse.js v3.6.1 - Lightweight fuzzy-search (http://fusejs.io) * @@ -7,4 +7,4 @@ * * http://www.apache.org/licenses/LICENSE-2.0 */ -e.exports=function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){for(var n=0;n1)throw new Error('"weight" property in key must bein the range of [0, 1)');this._keyWeights[l]=s,o+=s}if(o>1)throw new Error("Total of weights cannot exceed 1")}}},{key:"search",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{limit:!1};this._log('---------\nSearch pattern: "'.concat(e,'"'));var n=this._prepareSearchers(e),r=n.tokenSearchers,o=n.fullSearcher,a=this._search(r,o);return this._computeScore(a),this.options.shouldSort&&this._sort(a),t.limit&&"number"==typeof t.limit&&(a=a.slice(0,t.limit)),this._format(a)}},{key:"_prepareSearchers",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];if(this.options.tokenize)for(var n=e.split(this.options.tokenSeparator),r=0,o=n.length;r0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0,n=this.list,r={},o=[];if("string"==typeof n[0]){for(var a=0,i=n.length;a-1&&(N=(N+s)/2),n._log("Score average:",N);var j=!n.options.tokenize||!n.options.matchAllTokens||u>=p.length;if(n._log("\nCheck Matches: ".concat(j)),(c||m.isMatch)&&j){var P={key:r,arrayIndex:t,value:o,score:N};n.options.includeMatches&&(P.matchedIndices=m.matchedIndices);var z=h[i];z?z.output.push(P):(h[i]={item:a,output:[P]},g.push(h[i]))}}else if(l(o))for(var T=0,L=o.length;T0?Number.EPSILON:u.score;l*=Math.pow(m,d)}a.score=l,this._log(a)}}},{key:"_sort",value:function(e){this._log("\n\nSorting...."),e.sort(this.options.sortFn)}},{key:"_format",value:function(e){var t=[];if(this.options.verbose){var n=[];this._log("\n\nOutput:\n\n",JSON.stringify(e,(function(e,t){if("object"===r(t)&&null!==t){if(-1!==n.indexOf(t))return;n.push(t)}return t}),2)),n=null}var o=[];this.options.includeMatches&&o.push((function(e,t){var n=e.output;t.matches=[];for(var r=0,o=n.length;r-1&&(i.arrayIndex=a.arrayIndex),t.matches.push(i)}}})),this.options.includeScore&&o.push((function(e,t){t.score=e.score}));for(var a=0,i=e.length;al)return o(e,this.pattern,s);var u=this.options,p=u.location,d=u.distance,m=u.threshold,h=u.findAllMatches,f=u.minMatchCharLength;return a(e,this.pattern,this.patternAlphabet,{location:p,distance:d,threshold:m,findAllMatches:h,minMatchCharLength:f,includeMatches:r})}}])&&r(e.prototype,t),e}();e.exports=c},function(e,t){var n=/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g;e.exports=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:/ +/g,o=new RegExp(t.replace(n,"\\$&").replace(r,"|")),a=e.match(o),i=!!a,c=[];if(i)for(var l=0,s=a.length;l=L;q-=1){var I=q-1,D=n[e.charAt(I)];if(D&&(E[I]=1),A[q]=(A[q+1]<<1|1)&D,0!==P&&(A[q]|=(C[q+1]|C[q])<<1|1|C[q+1]),A[q]&j&&(_=r(t,{errors:P,currentLocation:I,expectedLocation:v,distance:s}))<=y){if(y=_,(x=I)<=v)break;L=Math.max(1,2*v-x)}}if(r(t,{errors:P+1,currentLocation:v,expectedLocation:v,distance:s})>y)break;C=A}var F={isMatch:x>=0,score:0===_?.001:_};return b&&(F.matchedIndices=o(E,f)),F}},function(e,t){e.exports=function(e,t){var n=t.errors,r=void 0===n?0:n,o=t.currentLocation,a=void 0===o?0:o,i=t.expectedLocation,c=void 0===i?0:i,l=t.distance,s=void 0===l?100:l,u=r/e.length,p=Math.abs(c-a);return s?u+p/s:p?1:u}},function(e,t){e.exports=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=[],r=-1,o=-1,a=0,i=e.length;a=t&&n.push([r,o]),r=-1)}return e[a-1]&&a-r>=t&&n.push([r,a-1]),n}},function(e,t){e.exports=function(e){for(var t={},n=e.length,r=0;rCe(Ce({},e),{},{index:t})))}(e,t,n)}function Pe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ze(e){for(var t=1;t{}),getOptions:l=null,allowEmpty:s=!0,closeOnSelect:u=!0,closable:p=!0}){const d=e.useRef(null),m=e.useMemo((()=>function(e){if(!Array.isArray(e))return[];const t=[];return e.forEach(((e,n)=>{if("type"in e&&"group"===e.type){const r=e.name.replace(/\s+/g,"-").toLowerCase()+"-"+n;e.items.forEach((n=>{t.push(be(be({},n),{},{groupId:r,groupName:e.name,_id:""+n.value}))}))}else t.push(be(be({},e),{},{_id:""+e.value,index:n}))})),t}(i)),[i]),[h,f]=e.useState({flat:[],addedOptions:[],value:t,search:"",focus:!1,searching:!1,highlighted:-1,changed:!1}),{flat:g,addedOptions:b,value:v,search:w,focus:y,searching:x,highlighted:k}=h,E=e.useMemo((()=>{let e=ke(v,[...m,...b]);return e||s||r||([e]=m),e}),[v,m,b,s,r]),O=e.useMemo((()=>xe(g)),[g]),R=e.useMemo((()=>function(e){return e&&"object"==typeof e?Array.isArray(e)?e.map((e=>e.name)).join(", "):e.name:""}(E)),[E]),S=e.useCallback((()=>{f((e=>ze(ze({},e),{},{focus:!1,search:"",flat:m,highlighted:-1}))),d.current&&d.current.blur()}),[m,d]),C=e=>f((t=>ze(ze({},t),{},{focus:e}))),_=e.useCallback((e=>{f((t=>{const{flat:n,highlighted:o}=t,a=e?n.find((t=>t.value==e)):n[o];if(!a)return t;const i=function(e,t,n){if(!n)return e;if(!t)return[e];const r=Array.isArray(t)?[...t]:[t],o=r.findIndex((t=>t===e));return o>=0?r.splice(o,1):r.push(e),r}(a.value,t.value,r),c=ke(i,n);return ze(ze({},t),{},{addedOptions:r?c:[c],value:i,changed:[i,c]})}))}),[r]),N=e.useCallback((e=>{e.preventDefault(),u&&d.current&&d.current.blur(),_(e.currentTarget.value)}),[_,u]),j=e.useCallback((e=>{const{key:t}=e;"ArrowDown"!==t&&"ArrowUp"!==t||(e.preventDefault(),f((e=>ze(ze({},e),{},{highlighted:fe(e.highlighted,{key:t,options:e.flat})}))))}),[]),P=e.useCallback((({key:e})=>{"Enter"===e&&(_(),p&&u&&S())}),[_,u,S,p]),z=e.useCallback((({key:e})=>{"Escape"===e&&S()}),[S]),T={tabIndex:"0",readOnly:!o,onChange:o?({target:e})=>{const{value:t}=e,n={search:t};let r=m;l&&t.length&&(n.searching=!0,r=l(t)),f((e=>ze(ze({},e),n))),Promise.resolve(r).then((e=>{let n=e;t.length&&(n=je(t,e,a)),f((t=>ze(ze({},t),{},{flat:!1===n?e:n,searching:!1})))})).catch((()=>f((e=>ze(ze({},e),{},{flat:m,searching:!1})))))}:null,disabled:n,onMouseDown:()=>C(!y),onBlur:S,onFocus:()=>C(!0),onKeyPress:P,onKeyDown:j,onKeyUp:z,ref:d},L=e.useMemo((()=>({tabIndex:"-1",onMouseDown:N,onKeyDown:j,onKeyPress:P,onBlur:S})),[N,j,P,S]);return e.useEffect((()=>{f((e=>ze(ze({},e),{},{value:t})))}),[t]),e.useEffect((()=>{f((e=>ze(ze({},e),{},{flat:m})))}),[m]),e.useEffect((()=>{!1!==h.changed&&(f((e=>ze(ze({},e),{},{changed:!1}))),c(...h.changed))}),[h.changed,c]),[{value:E,highlighted:k,options:O,disabled:n,displayValue:R,focus:y,search:w,searching:x},T,L,e=>f((t=>ze(ze({},t),{},{value:e})))]}function Me(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ae(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}const De=e=>{let{optionProps:t,highlighted:r,selected:o,cls:a,renderOption:i}=e,c=Ie(e,["optionProps","highlighted","selected","cls","renderOption"]);const l=[a("option"),!!o&&a("is-selected"),!!r&&a("is-highlighted")].filter((e=>!!e)).join(" "),s=Ae(Ae({},t),{},{value:c.value,disabled:c.disabled});return n.default.createElement("li",{className:a("row"),role:"menuitem","data-index":c.index,"data-value":escape(c.value),key:c.value},i(s,c,{selected:o,highlighted:r},l))};De.defaultProps={disabled:!1,index:null,value:null};var Fe=e.memo(De);function We(){return(We=Object.assign||function(e){for(var t=1;t{const k=e.useRef(null),[E,O,R]=Le({options:s,value:t,multiple:a,disabled:r,fuse:w,search:i,onChange:p,getOptions:v,closeOnSelect:m,closable:!a||"on-focus"===d,allowEmpty:!!o}),{focus:S,highlighted:C,value:_,options:N,searching:j,displayValue:P,search:z}=E,T=e.useCallback((e=>"function"==typeof h?h(e):0===e.indexOf("container")?e.replace("container",h):0===e.indexOf("is-")||0===e.indexOf("has-")?e:h.split(" ")[0]+"__"+e),[h]),L=e.useCallback((()=>{if(null===y)return null;const e="function"==typeof y?y():y;return n.default.createElement("li",{className:T("not-found")},e)}),[y,T]),M=[T("container"),!!r&&T("is-disabled"),!!j&&T("is-loading"),!!S&&T("has-focus")].filter((e=>!!e)).join(" "),A=S&&i?z:P;let q;switch(e.useEffect((()=>{const{current:e}=k;if(!e||a||C<0&&!_)return;const t=C>-1?'[data-index="'+C+'"]':'[data-value="'+escape(_.value)+'"]',n=e.querySelector(t);if(n){const t=e.getBoundingClientRect(),r=n.getBoundingClientRect();e.scrollTop=n.offsetTop-t.height/2+r.height/2}}),[S,_,C,k,a]),d){case"never":q=!1;break;case"always":q=!0;break;case"on-focus":q=S;break;default:q=!r&&(S||a)}return n.default.createElement("div",{ref:x,className:M,id:u},(!a||o||i)&&n.default.createElement("div",{className:T("value")},f(He(He({},O),{},{placeholder:o,autoFocus:c,autoComplete:l,value:A}),E,T("input"))),q&&n.default.createElement("div",{className:T("select"),ref:k,onMouseDown:e=>e.preventDefault()},n.default.createElement("ul",{className:T("options")},N.length>0?N.map((e=>{const t="group"===e.type,r=t?e.items:[e],o={cls:T,optionProps:R,renderOption:g},a=r.map((e=>{return n.default.createElement(Fe,We({key:e.value,selected:(t=e,r=_,!!r&&(Array.isArray(r)?r.findIndex((e=>e.value===t.value))>=0:r.value===t.value)),highlighted:C===e.index},o,e));var t,r}));return t?n.default.createElement("li",{role:"none",className:T("row"),key:e.groupId},n.default.createElement("div",{className:T("group")},n.default.createElement("div",{className:T("group-header")},b(e.name)),n.default.createElement("ul",{className:T("options")},a))):a})):L()||null)))}));Ke.defaultProps={className:"select-search",disabled:!1,search:!1,multiple:!1,placeholder:null,id:null,autoFocus:!1,autoComplete:"on",value:"",onChange:()=>{},printOptions:"auto",closeOnSelect:!0,renderOption:(e,t,r,o)=>n.default.createElement("button",We({className:o},e),t.name),renderGroupHeader:e=>e,renderValue:(e,t,r)=>n.default.createElement("input",We({},e,{className:r})),fuse:{keys:["name","groupName"],threshold:.3},getOptions:null,emptyMessage:null};var $e=e.memo(Ke);window.cw.components={Length:function(e){var t=cw.components,n=t.LengthTab,r=t.LengthIcon,o=e.subType,a=e.val,i=e.onChange,c=["radius","padding","margin"].includes(o),s=String(a),p=s.split(" "),d=[s,s,s,s,s];4===p.length?d=["0px",p[0],p[1],p[2],p[3]]:3===p.length?d=["0px",p[0],p[1],p[2],p[1]]:2===p.length&&(d=["0px",p[0],p[1],p[0],p[1]]);var m,h=b(React.useState({tab:0,values:d,currentVal:a}),2),f=h[0],g=h[1],v=function(e,t){var n=f.values;n[e]=t;var r=t;0!==e&&void 0!==e&&(r="".concat(n[1]," ").concat(n[2]," ").concat(n[3]," ").concat(n[4])),g((function(e){return u(u({},e),{},{currentVal:r,values:n})})),i(r)},w=c&&React.createElement("div",{className:"cw-tabs"},[0,1,2,3,4].map((function(e){return React.createElement("div",{key:e,className:"tab tab-".concat(e," ").concat(0===e?"active":""),onClick:function(t){return function(e,t){e.currentTarget.parentNode.childNodes.forEach((function(e){return e.classList.remove("active")})),e.currentTarget.classList.add("active"),g((function(e){return u(u({},e),{},{tab:t})}))}(t,e)}},React.createElement(r,{tab:e,subType:o}))})));m=c?[0,1,2,3,4].map((function(t){return React.createElement(n,l({},e,{values:d,key:t,tab:t,hidden:t!==f.tab,handleChange:v}))})):React.createElement(n,l({},e,{handleChange:v}));var y=c&&React.createElement("div",{className:"output"},"Output: ",f.currentVal);return React.createElement("div",{className:"cw-control-content cw-length "+(c?"shorthand":"single-length")},e.label&&React.createElement("span",{className:"cw-control-title"},e.label),e.description&&React.createElement("span",{className:"description customize-control-description"},e.description),w,m,y)},LengthTab:function(e){var t=["radius","padding","margin"].includes(e.subType),n="units"in e?e.units:{px:{step:1,min:0,max:100},pc:{step:.1,min:0,max:200},cm:{step:.1,min:0,max:200},mm:{step:1,min:0,max:2e3},rem:{step:.1,min:0,max:200},em:{step:.01,min:0,max:100},ex:{step:.1,min:0,max:200},ch:{step:.1,min:0,max:200},vh:{step:.1,min:0,max:200},vw:{step:.1,min:0,max:200},in:{step:.01,min:0,max:100},"%":{step:.1,min:0,max:200},"":{step:.1,min:0,max:1}},r=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n="";!1!==t?n=t:(n=String(e.val),"values"in e&&(n=e.values[e.tab]));var r=n.match(/^([+-]?(?:\d+|\d*\.\d+))([a-z]*|%)$/);return[null===r?"":r[1],null===r?"px":r[2]]},o=b(r(),2),a=o[0],i=o[1];void 0===e.units&&i in n&&(n[i]=u(u({},n[i]),{},{max:100*n[i].step})),i in n&&"step"in n[i]||(n[i]={step:1,min:0,max:100});var c=b(React.useState({main:a,unit:i,step:n[i].step,min:n[i].min,max:n[i].max}),2),l=c[0],s=c[1],p=b(React.useState(0),2),d=p[0],m=p[1];React.useEffect((function(){m(P(r()))}),[]),z((function(){var e=b(r(),2),t=e[0],n=e[1];s((function(e){return u(u({},e),{},{main:t,unit:n})})),me=!0,setTimeout((function(){me=!1}),500)}),[e.val]),z((function(){h("".concat(l.main).concat(l.unit))}),[l]);var h=function(t){me||e.handleChange(e.tab,t)},f=function(e){e.persist(),s((function(t){return u(u({},t),{},{main:e.target.value})}))};return React.createElement("div",{className:"tab-content "+(t?"shorthand":"")+(e.hidden?" hidden":"")},React.createElement("div",{className:"cw-row length-ips".concat("unitLess"===e.subType?" unit-less":"")},!e.noRange&&React.createElement("div",{className:"col-8 range-wrap"},React.createElement("input",{type:"range",step:l.step,min:l.min,max:l.max,value:l.main,style:{"--min":l.min,"--max":l.max,"--val":l.main?l.main:(l.max-l.min+.01)/2},onChange:f})),React.createElement("div",{className:"col-".concat(e.noRange?"12":"4")},React.createElement("input",{type:"number",step:l.step,min:l.min,max:l.max,value:l.main,onChange:f})),"unitLess"!==e.subType&&React.createElement("select",{className:"length-unit",onChange:function(e){e.persist();var t=e.target.value;s((function(e){return u(u({},e),{},{unit:t,step:n[t].step,min:n[t].min,max:n[t].max})}))},value:l.unit},Object.keys(n).map((function(e){return React.createElement("option",{key:e,value:e},e)}))),!e.noReset&&React.createElement("button",{type:"button",className:"reset",onClick:function(){s((function(e){var t=b(d,2),n=t[0],r=t[1];return u(u({},e),{},{main:n,unit:r})}))}},React.createElement("svg",{width:"15px",height:"14.7px",viewBox:"0 0 50 49",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},React.createElement("path",{d:"M0,20 L14,0 C14,6 14,9 14,9 C40,-3 65,30 38,49 C58,27 36,7 18,17 C18,17 20,19 24,23 L0,20 Z",fill:"currentColor"})))))},LengthIcon:function(e){var t,n,r=e.subType,o=e.tab;return"radius"===r?(t=React.createElement("rect",{stroke:"#999",fill:"none",x:"1",y:"1",width:"14",height:"14",rx:"3"}),n=React.createElement("rect",{stroke:"currentColor",strokeWidth:"2",fill:"none",x:"1",y:"1",width:"14",height:"14",rx:"4"}),1===o?n=React.createElement("path",{d:"M8,0 L8,2 L5,2 C3.34,2 2,3.34 2,5 L2,8 L0,8 L0,5 C0,2.24 2.24,0 5,0 L8,0 Z",fill:"currentColor"}):2===o?n=React.createElement("path",{d:"M8,0 L11,0 C13.76,0 16,2.24 16,5 L16,8 L14,8 L14,5 C14,3.34 12.66,2 11,2 L8,2 L8,0 Z",fill:"currentColor"}):3===o?n=React.createElement("path",{d:"M16,8 L16,11 C16,13.76 13.76,16 11,16 L8,16 L8,14 L11,14 C12.66,14 14,12.66 14,11 L14,8 L16,8 Z",fill:"currentColor"}):4===o&&(n=React.createElement("path",{d:"M8,16 L5,16 C2.24,16 0,13.76 0,11 L0,8 L2,8 L2,11 C2,12.66 3.34,14 5,14 L8,14 L8,16 Z",fill:"currentColor"}))):"padding"===r?(t=React.createElement("rect",{stroke:"#000",strokeWidth:".6",fill:"none",x:"1",y:"1",width:"14",height:"14",rx:"1"}),n=React.createElement("rect",{stroke:"currentColor",strokeWidth:"4",fill:"none",x:"3",y:"3",width:"10",height:"10",rx:"0",opacity:".6"}),1===o?n=React.createElement("rect",{fill:"currentColor",x:"1",y:"1",width:"14",height:"5",opacity:".6"}):2===o?n=React.createElement("rect",{fill:"currentColor",x:"10",y:"1",width:"5",height:"14",opacity:".6"}):3===o?n=React.createElement("rect",{fill:"currentColor",x:"1",y:"10",width:"14",height:"5",opacity:".6"}):4===o&&(n=React.createElement("rect",{fill:"currentColor",x:"1",y:"1",width:"5",height:"14",opacity:".6"}))):"margin"===r?(t=React.createElement("rect",{stroke:"#000",strokeWidth:".6",fill:"none",x:"2.5",y:"2.5",width:"11",height:"11",rx:"1"}),n=React.createElement("rect",{stroke:"currentColor",strokeWidth:"2.5",fill:"none",x:"1",y:"1",width:"14",height:"14",rx:"1"}),1===o?(t=React.createElement("rect",{stroke:"#000",strokeWidth:".6",fill:"none",x:"1",y:"5.5",width:"14",height:"9.5",rx:"1"}),n=React.createElement("rect",{fill:"currentColor",x:"1",y:"0",width:"14",height:"5"})):2===o?(t=React.createElement("rect",{stroke:"#000",strokeWidth:".6",fill:"none",x:"1",y:"1",width:"9.5",height:"14",rx:"1"}),n=React.createElement("rect",{fill:"currentColor",x:"11",y:"1",width:"5",height:"14"})):3===o?(t=React.createElement("rect",{stroke:"#000",strokeWidth:".6",fill:"none",x:"1",y:"1",width:"14",height:"9.5",rx:"1"}),n=React.createElement("rect",{fill:"currentColor",x:"1",y:"11",width:"14",height:"5"})):4===o&&(t=React.createElement("rect",{stroke:"#000",strokeWidth:".6",fill:"none",x:"5.5",y:"1",width:"9.5",height:"14",rx:"1"}),n=React.createElement("rect",{fill:"currentColor",x:"0",y:"1",width:"5",height:"14"}))):"border"===r&&(t=React.createElement("rect",{stroke:"#000",strokeWidth:".6",fill:"none",x:"1",y:"1",width:"14",height:"14",rx:"1"}),n=React.createElement("rect",{stroke:"#000",strokeWidth:"2",fill:"none",x:"1",y:"1",width:"14",height:"14",rx:"1"}),1===o?n=React.createElement("rect",{fill:"#000",x:"1",y:"1",width:"14",height:"2"}):2===o?n=React.createElement("rect",{fill:"#000",x:"13",y:"1",width:"2",height:"14"}):3===o?n=React.createElement("rect",{fill:"#000",x:"1",y:"13",width:"14",height:"2"}):4===o&&(n=React.createElement("rect",{fill:"#000",x:"1",y:"1",width:"2",height:"14"}))),React.createElement("svg",{width:"16px",height:"16px",viewBox:"0 0 16 16",style:{pointerEvents:"bounding-box"}},t,n)},Color:function(e){e.type&&e.type;var t=e.val,n="linear-gradient(90deg, rgba(255,255,255,1) 0%, rgba(177,177,177,1) 100%)";Array.isArray(e.val)&&(t=e.val[0],n=e.val.length>1&&!1!==e.val[1]?e.val[1]:n);var r=React.createRef();React.useEffect((function(){var e;(e=r.current).classList.contains("fixed")||(e.querySelector(".cw-color-holder").style.left="-".concat(e.getBoundingClientRect().left-12,"px"),e.classList.add("fixed"))}));var o=wp.components,a=o.ColorPicker,i=o.Button,c=b(React.useState({tab:!1}),2),l=c[0],s=c[1],p=function(t){t=l.tab!==t&&t,s(u(u({},l),{},{tab:t})),"onTab"in e&&e.onTab(t)},d=function(){return cw.hooks.applyFilters("gradient_picker",React.createElement("a",{href:cwControlObject.extUrl,className:"cw-link",target:"_blank"},React.createElement("span",null,"Color Gradient ",React.createElement("br",null),cwControlObject.extOpt)),e)};return React.createElement("div",{className:"cw-control-content cw-color"},e.label&&React.createElement("span",{className:"cw-control-title"},e.label),React.createElement("div",{className:"cw-color-info"},React.createElement("button",{type:"button",className:"solid-selector"+("solid"===l.tab?" active":""),onClick:function(){return p("solid")},style:{background:t}}),e.type&&"background"===e.type&&React.createElement("button",{type:"button",className:"gradient-selector"+("gradient"===l.tab?" active":""),onClick:function(){return p("gradient")},style:{background:n}})),React.createElement("div",{className:"cw-color-wrap".concat(!1===l.tab?" hidden":" cw-wrap-"+l.tab),ref:r},React.createElement("div",{className:"cw-color-overlay",onClick:function(){return p(!1)}}),React.createElement("div",{className:"cw-color-holder"},React.createElement("div",{className:"cw-color-solid"+("solid"!==l.tab?" hidden":"")},React.createElement(a,{color:t,onChangeComplete:function(t){e.onChange(t.color.toRgbString())}}),React.createElement(i,{className:"cw-color-clear",isSecondary:!0,isSmall:!0,onClick:function(){return e.onChange("rgba(0, 0, 0, 0)")}},"Clear")),React.createElement("div",{className:"cw-color-gradient"+("gradient"!==l.tab?" hidden":"")},React.createElement(d,null)))))},Media:function(e){var t=e.val;if("none"!==t){var n=v(t.matchAll(/(url)(?:\(['"]?)(.*?)(?:['"]?\))/g));n.length&&n[0].length>2&&(t=n[0][2])}t===e.val&&(t="none");var r=b(React.useState(t),2),o=r[0],a=r[1],i=function(t){a(t.url),e.onChange("url('".concat(t.url,"')"))};return React.createElement("div",{className:"cw-control-content cw-media"},e.label&&React.createElement("span",{className:"cw-control-title"},e.label),React.createElement("div",{className:"attachment-media-view"},"none"===o?React.createElement(he,{onSelect:i,allowedTypes:["image"],value:"",render:function(t){var n=t.open;return React.createElement("button",{type:"button",onClick:n,className:"upload-button button-add-media"},e.buttonText?e.buttonText:"Select Image")}}):React.createElement(React.Fragment,null,React.createElement("div",{className:"thumbnail thumbnail-image"},React.createElement("img",{className:"attachment-thumb",src:o})),React.createElement("div",{className:"actions"},React.createElement("button",{type:"button",onClick:function(){a("none"),e.onChange("none","image")},className:"button remove-button"},"Remove"),React.createElement(he,{onSelect:i,allowedTypes:["image"],value:"",render:function(t){var n=t.open;return React.createElement("button",{type:"button",onClick:n,className:"button upload-button"},e.changeText?e.changeText:"Change Image")}})))))},Select:function(e){var t=e.options,n=t;if(!Array.isArray(t)||0===t.length)return null;"object"!==r(t[0])&&(n=t.map((function(e){return{name:e,value:e}})));var o=u({search:!1,printOptions:"auto"},e),a=wp.components.Tooltip,i={options:n,value:e.val,name:e.name,onChange:e.onChange,search:o.search,printOptions:o.printOptions,className:o.horizontal?"select-search horizontal":"select-search",renderOption:function(e,t,n,r){return React.createElement("button",l({className:r},e,{type:"button"}),t.name)}};return"object"===r(t[0])&&"clsName"in t[0]&&(i.renderOption=function(e,t,n,r){return React.createElement(a,{text:t.name,position:"top left"},React.createElement("button",l({},e,{className:r,type:"button"}),React.createElement("span",{className:"clsName"in t?t.clsName:""})))}),"renderOption"in o&&(i.renderOption=o.renderOption),React.createElement("div",{className:"cw-control-content cw-select"},React.createElement("span",{className:"cw-control-title"},e.label," "),React.createElement($e,i))},Shadow:function(e){var t=cw.components,n=t.LengthTab,r=t.Color,o=["0px","0px","0px","0px","#000000"];if("none"!==e.val)if(isNaN(e.val.charAt(0))){var a=e.val.split(/ (?![^\(]*\))/);o=[a[1],a[2],a[3],a[4],a[0]]}else o=e.val.split(" ");var i=b(React.useState(o),2),c=i[0],l=i[1];return React.createElement("div",{className:"cw-control-content border"},e.label&&React.createElement("span",{className:"cw-control-title"},e.label),React.createElement("span",{className:"cw-control-title"},"X Offset"),React.createElement(n,{val:c[0],tab:0,hidden:!1,handleChange:function(t,n){l((function(e){return e[0]=n,e})),e.onChange(c.join(" "))}}),React.createElement("span",{className:"cw-control-title"},"Y Offset"),React.createElement(n,{val:c[1],tab:0,hidden:!1,handleChange:function(t,n){l((function(e){return e[1]=n,e})),e.onChange(c.join(" "))}}),React.createElement("span",{className:"cw-control-title"},"Blur Radius"),React.createElement(n,{val:c[2],tab:0,hidden:!1,handleChange:function(t,n){l((function(e){return e[2]=n,e})),e.onChange(c.join(" "))}}),React.createElement("span",{className:"cw-control-title"},"Spread Radius"),React.createElement(n,{val:c[3],tab:0,hidden:!1,handleChange:function(t,n){l((function(e){return e[3]=n,e})),e.onChange(c.join(" "))}}),React.createElement(r,{val:c[4],onChange:function(t){l((function(e){return e[4]=t,e})),e.onChange(c.join(" "))},label:"Color"}))},Border:function(e){var t=cw.components,n=t.LengthTab,r=t.LengthIcon,o=t.Color,a=t.Select,i={tab:0,values:[["0px","none","#000000"],["0px","none","#000000"],["0px","none","#000000"],["0px","none","#000000"],["0px","none","#000000"]]};"borderTopWidth"in e.val&&(i.values=[[e.val.borderTopWidth,e.val.borderTopStyle,e.val.borderTopColor],[e.val.borderTopWidth,e.val.borderTopStyle,e.val.borderTopColor],[e.val.borderRightWidth,e.val.borderRightStyle,e.val.borderRightColor],[e.val.borderBottomWidth,e.val.borderBottomStyle,e.val.borderBottomColor],[e.val.borderLeftWidth,e.val.borderLeftStyle,e.val.borderLeftColor]]);var c=b(React.useState(i),2),l=c[0],s=c[1],p=React.createElement("div",{className:"cw-tabs"},[0,1,2,3,4].map((function(e){return React.createElement("div",{key:e,className:"tab tab-".concat(e," ").concat(0===e?"active":""),onClick:function(t){return function(e,t){e.currentTarget.parentNode.childNodes.forEach((function(e){return e.classList.remove("active")})),e.currentTarget.classList.add("active"),s((function(e){return u(u({},e),{},{tab:t})}))}(t,e)}},React.createElement(r,{tab:e,subType:"border"}))}))),d=l.tab,m=l.values,h=React.createElement("div",{className:"cw-tab-wrap"},React.createElement(n,{val:m[d][0],tab:0,hidden:!1,handleChange:function(t,n){s((function(e){return e.values[d][0]=n,e})),e.onChange(m,d)}}),React.createElement(o,{val:m[d][2],onChange:function(t){s((function(e){return e.values[d][2]=t,e})),e.onChange(m,d)},label:"Color"}),React.createElement(a,{options:[{name:"x",value:"none"},{name:"",value:"solid"},{name:"",value:"dotted"},{name:"",value:"dashed"}],val:m[d][1],onChange:function(t){s((function(e){return e.values[d][1]=t,e})),e.onChange(m,d)},printOptions:"always",horizontal:"true",label:"Style"}));return React.createElement("div",{className:"cw-control-content cw-border"},e.label&&React.createElement("span",{className:"cw-control-title"},e.label),p,h)}},window.cw.addStyle=function(){var e;(e=cw.StylesStore).addStyle.apply(e,arguments)},window.cw.addStyleNow=function(){var e;(e=cw.StylesStore).addStyleNow.apply(e,arguments)};var Ue=":root{--accent: #23b887;--accentLight: hsl(160, 68%, 97%);--accentDark: hsl(160, 68%, 30%);--accentSec: #e8ba7d;--border: #c4c8ca;--boxShadow: 0 10px 15px rgba(0, 0, 0, 0.1), 0 0 1px 1px rgba(0, 0, 0, 0.02)}#color-wings{margin-left:-12px;margin-right:-12px}[style=\"display: none;\"]+#color-wings{margin-top:-15px}.cw-row{display:flex}.cw-row .col{flex:1}.cw-row .col-1{flex:0 0 8.33333%}.cw-row .col-2{flex:0 0 16.66667%}.cw-row .col-3{flex:0 0 25%}.cw-row .col-4{flex:0 0 33.33333%}.cw-row .col-5{flex:0 0 41.66667%}.cw-row .col-6{flex:0 0 50%}.cw-row .col-7{flex:0 0 58.33333%}.cw-row .col-8{flex:0 0 66.66667%}.cw-row .col-9{flex:0 0 75%}.cw-row .col-10{flex:0 0 83.33333%}.cw-row .col-11{flex:0 0 91.66667%}.cw-row .col-12{flex:0 0 100%}.cw-panel-heading{padding:10px;align-items:center;position:relative}.cw-panel-heading .popup-content{width:100%;box-sizing:border-box;position:absolute;z-index:5;background:#fff;right:0;border:1px solid #ccc;box-shadow:var(--boxShadow)}.cw-panel-heading .popup-overlay{position:fixed;top:0;bottom:0;left:0;right:0}.cw-panel-heading .popup-arrow{width:14px;height:14px;background:white;position:absolute;right:100px;top:-6px;transform:rotate(135deg);z-index:-1;box-shadow:rgba(0,0,0,0.3) -1px 1px 1px}.cw-panel-heading .cw-current-page{max-height:30px;white-space:pre-wrap;overflow:auto}.cw-panel-heading .page-selector .button{border-color:transparent;background:none;padding:10px 20px}.cw-panel-heading .page-selector .button:hover{background:var(--accentLight)}.cw-panel-heading .page-selector .button:focus{border-color:#0071a1}.cw-panel-heading .cw-pause{margin:0 0 0 auto;display:block;line-height:1}.button.button-block{width:100%;text-align:center}.cw-tabs{display:flex;margin:0 -1px;position:relative;z-index:2}.cw-tabs .tab{flex:1;padding:8px;background:#ddd;border:1px solid transparent;border-bottom-color:#ccc;cursor:pointer;text-align:center}.cw-tabs .tab.active{border:1px solid #ccc;border-bottom-color:#fff;background:#fff;cursor:auto}.cw-main-tabs{display:inline-flex;width:60%}.cw-main-tabs .main-tab{color:#0071a1;outline:none}.cw-main-tabs .main-tab:focus,.cw-main-tabs .main-tab:hover{border-top:2px solid #0171a1;padding-top:7px}.cw-main-tabs .main-tab:focus:not(.active),.cw-main-tabs .main-tab:hover:not(.active){background:#f1f1f1}.cw-extra-tabs{display:inline-flex;width:calc(40% + 2px);height:36px;vertical-align:top;background:#ddd;border-top:1px solid transparent;border-bottom:1px solid #ccc;align-items:center;justify-content:flex-end}.cw-extra-tabs .button{border:none;height:100%;border-radius:0;background:none;line-height:1}.cw-extra-tabs .button:focus{box-shadow:none}.cw-extra-tabs .button:disabled,.cw-extra-tabs .button[disabled]{background:none !important}.cw-extra-tabs .button .dashicons{font-size:16px;line-height:20px}#cw-code-editor{width:100%}.cw-code-editor .CodeMirror{height:calc( 100vh - 254px);margin-bottom:-24px;overflow:hidden}.cw-settings-controls{padding:24px 12px}.customize-control .cw-link-wrap{background:#fff;padding:6px 10px;cursor:pointer;border-left:2px solid transparent;transition:all .15s ease-in-out, border-color .15s ease-in-out, background .15s ease-in-out;box-shadow:0 0 0 1px #ddd;position:relative}.customize-control .cw-link-wrap:hover{color:#0073aa;background:#f3f3f5;border-left:2px solid #0073aa}.customize-control .cw-link-wrap:hover:after{color:#0073aa}.customize-control .cw-link-wrap:after{content:'\\f345';font:normal 16px/1 dashicons;color:#a0a5aa;position:absolute;right:6px;top:calc(50% - 8px)}.customize-control .cw-link-text{position:absolute;right:26px;top:calc(50% - 9px);font-size:11px}.cw-theming-controls{padding:12px;min-height:calc( 100vh - 327px);margin-bottom:-24px;display:flex;flex-direction:column;align-items:center;justify-content:center}.cw-theming-controls .cw-control{margin-bottom:18px}.cw-theming-controls .cw-control-title{font-size:13px}.cw-theming-controls .cw-color{display:flex;align-items:center;flex-wrap:wrap}.cw-theming-controls .cw-color .cw-control-title{width:50%}.cw-theming-controls .cw-color-info{width:50%}.cw-theming-controls .cw-color-wrap{min-width:1px}.cw-theming-controls .cw-select{display:flex;margin-top:20px}.cw-theming-controls .cw-select .cw-control-title{width:66.667%}.cw-theming-controls .cw-select .select-search{width:33.333%}\n";function Qe(){var e=b(React.useState({show:!1,style:{content:{top:0},arrow:{right:0}}}),2),t=e[0],n=e[1],r=R(q),o=r.previewObject,a=r.mounted,i=[{type:"global",name:"global",title:"All Pages"}];"pages"in o&&(o.pages.is_home&&i.push({type:"template",name:"is_home",title:"Blog Post List Page"}),o.pages.is_front_page&&i.push({type:"template",name:"is_front_page",title:"Front Page"}),o.pages.is_single&&(i.push({type:"template",name:"is_single",title:"All Single Posts"}),i.push({type:"single",name:o.page.id,title:"Post: ".concat(o.page.title)})),o.pages.is_page&&(i.push({type:"template",name:"is_page",title:"All Single Pages"}),i.push({type:"single",name:o.page.id,title:"Page: ".concat(o.page.title)})));var c=q.get().currentPage,l="All Pages";for(var s in i)if(i.hasOwnProperty(s)&&i[s].name.toString()===c.toString()){l=i[s].title;break}return React.createElement("div",{className:"cw-panel-heading cw-row"},React.createElement("div",{className:"col-5"},React.createElement("span",null,"Editing Styles for: ")),React.createElement("div",{className:"col-5"},React.createElement("button",{className:"button button-block cw-current-page",onClick:function(e){var t=e.target.getBoundingClientRect(),r=t.bottom-e.target.offsetParent.getBoundingClientRect().top;n((function(e){return{show:!e.show,style:{content:{top:"".concat(r+10,"px")},arrow:{left:"".concat(t.left+t.width/2-7,"px")}}}}))},type:"button"},l),React.createElement("div",{className:"popup-overlay ".concat(t.show?"":"hidden"),onClick:function(){return n((function(e){return u(u({},e),{},{show:!1})}))}}),React.createElement("div",{className:"page-selector popup-content ".concat(t.show?"":"hidden"),style:t.style.content},React.createElement("div",{className:"popup-arrow",style:t.style.arrow}),i.map((function(e){return React.createElement("button",{key:e.name,onClick:function(t){return function(e,t){q.changePage(t.name,t.type),n((function(e){return u(u({},e),{},{show:!1})}))}(0,e)},className:"button button-block",type:"button"},e.title)})))),React.createElement("div",{className:"col-2"},React.createElement("button",{className:"button cw-pause",onClick:function(){oe()},type:"button"},React.createElement("span",{className:"dashicons dashicons-controls-".concat(a?"pause":"play")}))))}function Ze(){var e=wp.components.Tooltip,t=R(F).history;return React.createElement("div",{className:"cw-extra-tabs"},React.createElement(e,{text:"Undo",position:"top left"},React.createElement("button",{type:"button",className:"button",onClick:pe,disabled:0===t.past.length},React.createElement("span",{className:"dashicons dashicons-undo"}))),React.createElement(e,{text:"Redo",position:"top left"},React.createElement("button",{type:"button",className:"button",onClick:de,disabled:0===t.future.length},React.createElement("span",{className:"dashicons dashicons-redo"}))))}function Ge(e){var t=e.selectors,n=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];!0===t?cw.Evt.emit("de-highlight-elements"):cw.Evt.emit("highlight-elements",e)},r=React.createElement("span",{className:"dashicons dashicons-arrow-right-alt"});return React.createElement("div",{id:"cw-quick-select"},React.createElement("div",{className:"cw-panel-title"},React.createElement("span",null,"No Element Selected.")),React.createElement("div",{className:"cw-qs-content"},React.createElement("div",{className:"cw-qs-title"},"Click on any element to edit the styles ",r,React.createElement("br",null),"OR",React.createElement("br",null),"Quick select an Element below"),React.createElement("ul",{className:"cw-qs-btns"},t.map((function(e){return React.createElement("li",{key:e.name,className:"cw-qs-btn",onClick:function(){return function(e){cw.Evt.emit("select-element",e)}(e.sel)},onMouseEnter:function(){return n(e.sel,!1)},onMouseLeave:n},e.name)})))))}function Je(){var e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"open";"add"===t?e.classList.add(n):e.classList.remove(n)},t=b(React.useState(["hover","focus","active","visited"]),2),n=t[0],r=t[1],o=function(t){var o=t.target.innerText;q.get().currentPseudo===o?(q.togglePseudo(""),e(t.target.parentNode.parentNode,"","active")):(q.togglePseudo(o),n.indexOf(o)>0&&(n.splice(n.indexOf(o),1),n.unshift(o),r(n)),e(t.target.parentNode.parentNode),e(t.target.parentNode.parentNode,"add","active")),t.target.parentNode.childNodes.forEach((function(e){return e.classList.remove("selected")}))},a=""===q.get().currentPseudo?"":"active";return React.createElement("div",{className:"cw-pseudo ".concat(a),onMouseEnter:function(t){return e(t.currentTarget,"add")},onMouseLeave:function(t){return e(t.currentTarget)}},React.createElement("span",{className:"cw-pseudo-icon dashicons dashicons-menu-alt2"}),React.createElement("div",{className:"cw-pseudo-content"},n.map((function(e,t){return React.createElement("div",{key:t,className:"cw-pseudo-item",onClick:o},e)}))))}function Xe(){var e=R(q),t=e.currentSelector,n=e.selectorClass,r=b(React.useState(t),2),o=r[0],a=r[1];React.useEffect((function(){return a(t)}),[t]);return React.createElement("div",{className:"cw-panel-title"},React.createElement("div",{className:"title-inner"},React.createElement("span",{className:"title-desc"},"You're editing:"),React.createElement("input",{type:"text",className:"selector ".concat(n),value:o,onChange:function(e){a(e.target.value),cw.Evt.emit("update-selector",e.target.value)}})),React.createElement(Je,null))}function Ye(e){var t=e.control,n=R(q).currentSelector,r=I.get().currentMedia.query,o=F.get().styles;if(r in o&&n in o[r]&&t.property in o[r][n]&&"Length"===t.Component.name){var a=o.all[n][t.property];/\d/.test(a)&&(t.params.val=o.all[n][t.property])}return React.createElement(t.Component,t.params)}function et(){var e=cw.components,t=e.Length,n=e.Color,r=e.Media,o=e.Select,a=e.Shadow,i=e.Border,c=cwControlObject.fonts,l=R(q),s=l.currentTarget,p=l.currentSelector,d=l.openSection,m=l.currentStyles,h=l.quickSelectors,f=b(React.useState({styleOptions:["normal","italic"],weightOptions:["100","200","300","400","500","600","700","800","900"]}),2),g=f[0],w=f[1],y=b(React.useState(!1),2),x=y[0],k=y[1];""!==p?setTimeout((function(){return k(!0)}),0):setTimeout((function(){return k(!1)}),0),React.useEffect((function(){w((function(e){return u(u({},e),{},{family:m.fontFamily,style:m.fontStyle,weight:m.fontWeight})}))}),[m]);var E=function(e){var t={family:e=e.replace(/^"(.+(?="$))"$/,"$1"),source:"system"};if(c.allFonts.system.hasOwnProperty(e))t.variants=c.defaults.variants,t.category=c.allFonts.system[e].category;else if(c.allFonts.google.hasOwnProperty(e)){var n=c.allFonts.google[e][0],r=c.allFonts.google[e][1];t.source="google",t.category=r,t.variants={},n[0].length>0&&(t.variants.normal=n[0]),n[1].length>0&&(t.variants.italic=n[1])}else e.includes("system-ui")&&(t.variants=c.defaults.variants,t.category="sans-serif");return"variants"in t||(t.variants={normal:["300"],italic:["300"]}),"category"in t||(t.category=e.includes("serif")?"serif":"sans-serif"),t},O=function(e,t){return t.reduce((function(t,n){return Math.abs(n-e)0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];e=(e=e||g.family).replace(/^"(.+(?="$))"$/,"$1");var r=E(e);t||(t=g.style,r.variants.hasOwnProperty(t)||(t=Object.keys(r.variants)[0])),n||(n=g.weight,-1===r.variants[t].indexOf(n)&&(n=O(n,r.variants[t]))),w({styleOptions:Object.keys(r.variants),weightOptions:r.variants[t],family:e,style:t,weight:n.toString()});var o={family:e,style:t,weight:n,source:r.source,category:r.category};q.addFont(o),F.addFont(),g.family!==e&&F.addStyleNow(p,"font-family",e),g.style!==t&&F.addStyleNow(p,"font-style",t),g.weight!==n&&F.addStyleNow(p,"font-weight",n)},C=!1,_=!1,N=m.backgroundImage;if(N){var j=v(N.matchAll(/(url)(?:\(['"]?)(.*?)(?:['"]?\))/g));j.length&&j[0].length>2&&(C="url('".concat(j[0][2],"')"));var P=v(N.matchAll(/linear-gradient\([^(]*(\([^)]*\)[^(]*)*[^)]*\)/g));P.length&&P[0].length>1&&(_=P[0][0]);var z=v(N.matchAll(/radial-gradient\([^(]*(\([^)]*\)[^(]*)*[^)]*\)/g));z.length&&z[0].length>1&&(_=z[0][0])}var T,L=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n="";e.includes("url(")||"none"===e&&"image"===t?(n="".concat(e).concat(!1!==_?", "+_:""),F.addStyleNow(p,"background-image",n)):e.includes("gradient(")||"none"===e&&"gradient"===t?(n="".concat(!1!==C?C+", ":"").concat(e),F.addStyleNow(p,"background-image",n)):F.addStyleNow(p,"background-color",e)},M=[{id:"padding",title:"Padding",controls:[{property:"padding",Component:t,params:{subType:"padding",val:m.padding}}]},{id:"margin",title:"Margin",controls:[{property:"margin",Component:t,params:{subType:"margin",val:m.margin}}]},{id:"background",title:"Background",controls:[{property:"background",Component:n,params:{label:"Background Color",val:[m.backgroundColor,_],type:"background",onChange:L}},{property:"background-image",Component:r,params:{label:"Background Image",val:m.backgroundImage,onChange:L}},{property:"background-size",Component:o,params:{label:"Background Size",name:"background-size",options:[{name:"Auto",value:"auto"},{name:"Cover",value:"cover"},{name:"Contain",value:"contain"}],val:(T=m.backgroundSize,"auto, auto"===T?T="auto":"cover, cover"===T?T="cover":"contain, contain"===T&&(T="contain"),T),printOptions:"always",horizontal:!0}}]},{id:"text",title:"Text",controls:[{property:"font-size",Component:t,params:{label:"Font Size",subType:"size",val:m.fontSize}},{property:"line-height",Component:t,params:{label:"Line Height",subType:"size",val:m.lineHeight}},{property:"font-family",Component:o,params:{label:"Font Family",name:"font-family",options:function(){var e=[];for(var t in c.allFonts){var n=t;"system"===t?n="System Fonts":"google"===t&&(n="Google Fonts");var r=[];for(var o in c.allFonts[t]){var a="Default"===o?"Default System Font":o;r.push({name:a,value:o})}e.push({type:"group",name:n,items:r})}return e}(),val:g.family,search:!0,onChange:function(e){return S(e,!1,!1)}}},{property:"color",Component:n,params:{label:"Font Color",val:m.color},cls:"col-8"},{property:"font-weight",Component:o,params:{label:"Font Weight",name:"font-weight",options:g.weightOptions,val:g.weight,onChange:function(e){return S(!1,!1,e)}},cls:"col-4"},{property:"font-style",Component:o,params:{label:"Font Style",name:"font-style",options:g.styleOptions,val:g.style,onChange:function(e){return S(!1,e,!1)},printOptions:"always",horizontal:!0},cls:"col-5"},{property:"text-align",Component:o,params:{label:"Text Align",name:"text-align",options:[{name:"Left",value:"left",clsName:"dashicons dashicons-editor-alignleft"},{name:"Right",value:"right",clsName:"dashicons dashicons-editor-alignright"},{name:"Center",value:"center",clsName:"dashicons dashicons-editor-aligncenter"},{name:"Justify",value:"justify",clsName:"dashicons dashicons-editor-justify"}],val:m.textAlign,printOptions:"always",horizontal:!0},cls:"col-7"},{property:"text-decoration",Component:o,params:{label:"Text Decoration",name:"text-decoration",options:[{name:"A",value:"none"},{name:"O",value:"overline"},{name:"U",value:"underline"},{name:"S",value:"line-through"}],val:m.textDecoration,printOptions:"always",horizontal:!0},cls:"col-6"},{property:"text-transform",Component:o,params:{label:"Text Transform",name:"text-transform",options:[{name:"x",value:"none"},{name:"Aa",value:"capitalize"},{name:"aa",value:"lowercase"},{name:"AA",value:"uppercase"}],val:m.textTransform,printOptions:"always",horizontal:!0},cls:"col-6"},{property:"letter-spacing",Component:t,params:{label:"Letter Spacing",subType:"size",val:"normal"===m.letterSpacing?"0px":m.letterSpacing}},{property:"word-spacing",Component:t,params:{label:"Word Spacing",subType:"size",val:m.wordSpacing}},{property:"text-indent",Component:t,params:{label:"Text Indent",subType:"size",val:m.textIndent}}]},{id:"border",title:"Border",controls:[{property:"border-radius",Component:t,params:{label:"Border Radius",subType:"radius",val:m.borderRadius}},{property:"border",Component:i,params:{label:"Border Width",val:m,onChange:function(e,t){e.every((function(e,t,n){return e===n[0]}))||0===t?F.addStyleNow(p,"border","".concat(e[0][0]," ").concat(e[0][1]," ").concat(e[0][2])):(F.addStyleNow(p,"border-top","".concat(e[1][0]," ").concat(e[1][1]," ").concat(e[1][2])),F.addStyleNow(p,"border-right","".concat(e[2][0]," ").concat(e[2][1]," ").concat(e[2][2])),F.addStyleNow(p,"border-bottom","".concat(e[3][0]," ").concat(e[3][1]," ").concat(e[3][2])),F.addStyleNow(p,"border-left","".concat(e[4][0]," ").concat(e[4][1]," ").concat(e[4][2])))}}}]},{id:"size",title:"Size",controls:[{property:"width",Component:t,params:{label:"Width",subType:"size",val:m.width}},{property:"height",Component:t,params:{label:"Height",subType:"size",val:m.height}},{property:"min-width",Component:t,params:{label:"Min Width",subType:"size",val:m.minWidth}},{property:"min-height",Component:t,params:{label:"Min Height",subType:"size",val:m.minHeight}},{property:"max-width",Component:t,params:{label:"Max Width",subType:"size",val:m.maxWidth}},{property:"max-height",Component:t,params:{label:"Max Height",subType:"size",val:m.maxHeight}}]},{id:"shadow",title:"Shadow",controls:[{property:"box-shadow",Component:a,params:{val:m.boxShadow}}]},{id:"position",title:"Position",controls:[{property:"position",Component:o,params:{label:"Position",name:"position",options:[{name:"Relative",value:"relative"},{name:"Absolute",value:"absolute"},{name:"Static",value:"static"},{name:"Fixed",value:"fixed"},{name:"Sticky",value:"sticky"}],val:m.position,printOptions:"always",horizontal:!0}},{property:"top",Component:t,params:{label:"Top",subType:"size",val:m.top}},{property:"right",Component:t,params:{label:"Right",subType:"size",val:m.right}},{property:"bottom",Component:t,params:{label:"Bottom",subType:"size",val:m.bottom}},{property:"left",Component:t,params:{label:"Left",subType:"size",val:m.left}}]},{id:"others",title:"Others",controls:[{property:"display",Component:o,params:{label:"Display",name:"display",options:[{name:"block",value:"block"},{name:"none",value:"none"},{name:"flex",value:"flex"},{name:"grid",value:"grid"},{name:"inline",value:"inline"},{name:"inline-block",value:"inline-block"},{name:"inline-flex",value:"inline-flex"},{name:"inline-grid",value:"inline-grid"},{name:"contents",value:"contents"},{name:"inline-table",value:"inline-table"},{name:"list-item",value:"list-item"},{name:"run-in",value:"run-in"},{name:"table",value:"table"},{name:"table-caption",value:"table-caption"},{name:"table-column-group",value:"table-column-group"},{name:"table-header-group",value:"table-header-group"},{name:"table-footer-group",value:"table-footer-group"},{name:"table-row-group",value:"table-row-group"},{name:"table-cell",value:"table-cell"},{name:"table-column",value:"table-column"},{name:"table-row",value:"table-row"},{name:"initial",value:"initial"},{name:"inherit",value:"inherit"}],val:m.display},cls:"col-6"},{property:"visibility",Component:o,params:{label:"Visibility",name:"visibility",options:[{name:"Visible",value:"visible",clsName:"dashicons dashicons-visibility"},{name:"Hidden",value:"hidden",clsName:"dashicons dashicons-hidden"}],val:m.visibility,printOptions:"always",horizontal:!0},cls:"col-6"},{property:"overflow",Component:o,params:{label:"Overflow",name:"overflow",options:[{name:"Visible",value:"visible",clsName:"dashicons dashicons-visibility"},{name:"Hidden",value:"hidden",clsName:"dashicons dashicons-hidden"},{name:"Scroll",value:"scroll",clsName:"dashicons dashicons-menu-alt"},{name:"Auto",value:"auto",clsName:"dashicons dashicons-admin-generic"}],val:m.overflow,printOptions:"always",horizontal:!0},cls:"col-7"},{property:"opacity",Component:t,params:{label:"Opacity",subType:"unitLess",val:m.opacity}}]}];void 0!==s.ownerSVGElement&&M.push({id:"svg",title:"SVG Styles",controls:[{property:"fill",Component:n,params:{label:"Fill Color",val:m.fill}},{property:"fill-opacity",Component:t,params:{label:"Fill Opacity",subType:"unitLess",val:m.fillOpacity}},{property:"stroke",Component:n,params:{label:"Stroke Color",val:m.stroke}},{property:"stroke-width",Component:t,params:{label:"Stroke Width",subType:"size",val:m.strokeWidth}},{property:"stroke-opacity",Component:t,params:{label:"Stroke Opacity",subType:"unitLess",val:m.strokeOpacity}}]}),s.tagName&&["ul","ol","li"].includes(s.tagName.toLowerCase())&&M.push({id:"list",title:"List Styles",controls:[{property:"list-style-type",Component:o,params:{label:"Type",name:"list-type",options:[{name:"disc",value:"disc"},{name:"circle",value:"circle"},{name:"square",value:"square"},{name:"decimal",value:"decimal"},{name:"none",value:"none"},{name:"initial",value:"initial"},{name:"inherit",value:"inherit"},{name:"unset",value:"unset"}],val:m.listStyleType},cls:"col-6"},{property:"list-style-position",Component:o,params:{label:"Position",name:"list-position",options:[{name:"In",value:"inside"},{name:"Out",value:"outside"}],val:m.listStylePosition,printOptions:"always",horizontal:!0},cls:"col-6"}]}),M=cw.hooks.applyFilters("cw_panel_sections",M,m);var A=cw.hooks.applyFilters("cw_after_sections",React.createElement("li",{className:"cw-panel-section "},React.createElement("a",{href:cwControlObject.extUrl,className:"cw-section-title cw-link",target:"_blank"},cwControlObject.extText)));return M.forEach((function(e){e.controls.forEach((function(e){"onChange"in e.params||(e.params.onChange=function(t){F.addStyle(p,e.property,t)})}))})),React.createElement("div",{id:"cw-editor-wrap"},React.createElement("div",{id:"cw-editor-panel",className:"cw-panel"},""!==p?React.createElement(React.Fragment,null,React.createElement(Xe,null),React.createElement("div",{className:"cw-panel-main"},React.createElement("ul",{className:"cw-panel-sections"},M.map((function(e){return React.createElement("li",{key:e.id,className:"cw-panel-section ".concat(d===e.id?"open":"")},React.createElement("button",{type:"button",className:"cw-section-title",onClick:function(){return q.toggleSection(e.id)}},e.title),React.createElement("div",{className:"cw-section-content"},e.controls.map((function(t){return d===e.id?React.createElement("div",{key:t.property,className:"cw-control ".concat(t.property," ").concat(t.cls?t.cls:"")},x&&React.createElement(Ye,{control:t})):null}))))})),A))):React.createElement(Ge,{selectors:h})),React.createElement("style",{type:"text/css"},'#cw-editor-wrap ul,#cw-editor-wrap li{list-style:none;margin:0;padding:0}#cw-editor-wrap .cw-panel{background:#eee;font-size:13px;color:#444}.cw-panel-title{background:#fff;border-bottom:1px solid #ddd;font-size:13px;padding:16px;color:#444;line-height:16px;margin:0}.cw-panel-title *{box-sizing:border-box}.cw-panel-title .title-inner{display:inline-flex;width:calc(100% - 54px)}.cw-panel-title .title-desc{padding:3px 0;width:90px}.cw-panel-title input[type="text"].selector{background:var(--accentLight);border:1px solid var(--accent);padding:3px 5px;width:calc(100% - 90px);border-radius:0;min-height:24px;line-height:1;font-size:13px;background-image:none !important}.cw-panel-title input[type="text"].selector:focus{box-shadow:none;border-color:var(--accentDark)}.cw-panel-title input[type="text"].selector.invalid,.cw-panel-title input[type="text"].selector.invalid:focus{border-color:#c78100}.cw-panel-main{height:calc(100% - 41px);overflow-y:auto}.cw-section-title{border:none;border-left:3px solid transparent;border-bottom:1px solid #ddd;background:#fff;font-size:14px;padding:12px 16px;font-weight:600;color:#444;line-height:16px;margin:0;cursor:pointer;width:100%;text-align:left;transition:.15s all ease-in-out}.cw-section-title:hover{color:#0073aa;background:#f3f3f5;border-left-color:#0073aa}.cw-section-title:focus{outline:none;color:#0073aa;border-left-color:#0073aa}.cw-section-content{display:flex;flex-wrap:wrap;padding:0 12px;max-height:0;opacity:0;overflow:auto;transition:max-height .2s ease, opacity .2s ease}.cw-panel .open .cw-section-content{opacity:1;max-height:1000px;border-bottom:1px solid #ddd}.cw-panel .cw-link{display:block;text-decoration:none;box-sizing:border-box;box-shadow:0 0 0 1px var(--accent);margin:1px 0;color:#0073aa}.cw-control{flex-shrink:0;width:100%;margin-bottom:12px;box-sizing:border-box}.cw-control.padding,.cw-control.margin{margin-bottom:0}.cw-control.col-4{width:33.333%}.cw-control.col-5{width:41.666%}.cw-control.col-6{width:50%}.cw-control.col-7{width:58.333%}.cw-control.col-8{width:66.666%}.cw-control .cw-tabs{margin:0 -12px -1px -13px}.cw-control .tab.active{border-bottom-color:#eee;background:#eee}.cw-control .tab-content{position:relative;padding:30px 0 15px}.cw-control .shorthand .tab-content{border-top:1px solid #ccc}.cw-control .single-length .tab-content{padding:20px 0 0}.cw-control .length-ips{position:relative}.cw-control .length-ips input[type="number"]{padding-right:30px;border-color:#c4c8ca}.cw-control .length-ips input[type="number"]:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.cw-control .length-ips.unit-less input[type="number"]{padding-right:0}.cw-control .length-unit{position:absolute;top:1px;right:0;width:30px;padding:0;border:none;min-height:28px;background:#f5f5f5;font-size:13px;text-align:center;text-align-last:center;border-radius:0 3px 3px 0}.cw-control .output{padding:5px;border-top:1px dotted #ddd;border-bottom:1px solid #ddd;font-size:11px;margin-top:-1px}.cw-control .reset{position:absolute;right:2px;bottom:34px;padding:4px 6px 2px;cursor:pointer;border-radius:2px;border:none;outline:none}.cw-control .reset:hover{background:#fff}.cw-control .reset:focus{background:#fff;box-shadow:0 0 0 1px var(--accent)}.cw-control .reset svg{max-height:12px}.cw-control .range-wrap{padding-right:5px;line-height:1.8;box-sizing:border-box}.cw-control input:focus{outline:none}.cw-control input[type="range"]{width:100%;background:var(--accent);-webkit-appearance:none;height:3px;border-radius:3px;margin:0;--range: calc(var(--max) - var(--min));--ratio: calc((var(--val) - var(--min))/var(--range));--sx: calc(.5*1.5em + var(--ratio)*(100% - 1.5em))}.cw-control input[type="range"]::-webkit-slider-runnable-track{width:100%;height:3px;background:#c4c8ca;border:none;border-radius:3px;box-sizing:border-box;background:-webkit-gradient(linear, left top, left bottom, from(var(--accent)), to(var(--accent))) 0/var(--sx) 100% no-repeat #c4c8ca;background:linear-gradient(var(--accent), var(--accent)) 0/var(--sx) 100% no-repeat #c4c8ca}.cw-control input[type="range"]::-webkit-slider-thumb{width:14px;height:14px;background:var(--accent);border-radius:14px;-webkit-appearance:none;margin-top:-5px;cursor:pointer;transition:transform .1s}.cw-control input[type="range"]::-webkit-slider-thumb:hover{transform:scale(1.2)}.cw-control input[type="range"]::-moz-range-thumb{width:14px;height:14px;background:var(--accent);border-radius:14px;-moz-appearance:none;margin-top:-5px;cursor:pointer;transition:transform .1s}.cw-control input[type="range"]::-moz-range-thumb:hover{transform:scale(1.2)}.cw-control svg{color:var(--accent);display:block;margin:auto}.cw-control.margin .tab svg{color:var(--accentSec)}.cw-control .cw-color .components-color-picker__body{padding:16px 4px 0}.cw-control .cw-color-info{display:flex;align-items:center}.cw-control .cw-color-info>*:not(:first-child){margin-left:10px}.cw-control .solid-selector,.cw-control .gradient-selector{width:30px;height:30px;border-radius:50%;border:none;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.3);z-index:20}.cw-control .solid-selector:focus,.cw-control .gradient-selector:focus{outline:none;box-shadow:0 0 0 1px var(--accent)}.cw-control .cw-color-value{background:#fff;padding:4px 10px;border-radius:2px;white-space:nowrap;max-width:calc(100% - 100px);overflow:auto}.cw-control .cw-color-wrap{position:relative;min-height:320px}.cw-control .cw-color-wrap.cw-wrap-gradient{min-height:220px}.cw-control .cw-color-overlay{position:fixed;top:0;bottom:0;left:0;z-index:10;background:transparent;width:18%;min-width:300px}.cw-control .cw-color-holder{position:absolute;top:6px;padding:12px;background:#fff;border:1px solid #ccc;box-shadow:0 2px 6px rgba(0,0,0,0.05);border-radius:2px;box-sizing:border-box;width:calc(18vw - 50px);min-width:276px;z-index:30}.cw-control .cw-wrap-gradient .cw-color-holder{width:100%}.cw-control .components-color-picker__inputs-wrapper{width:calc(100% - 42px);min-width:210px}.cw-control .components-color-picker__inputs-toggle{display:block;padding:0 5px;border:1px solid #999}.cw-control .components-color-picker__inputs-fields,.cw-control .components-base-control__field{margin:0}.cw-control .components-text-control__input[type="number"]{border-radius:0;border-right:none}.cw-control .cw-color input[type="number"]::-webkit-inner-spin-button{margin:-5px -2px -5px 0}.cw-control label.components-base-control__label{text-transform:capitalize;font-size:12px;margin:0 0 4px 4px;color:#666;line-height:1}.cw-control .cw-color-clear{position:absolute;right:12px;bottom:12px;height:30px;width:42px}.cw-control .cw-color-gradient .cw-link{height:180px;background-image:linear-gradient(135deg, #9cccfc 0%, #e6cffc 100%);display:flex;align-items:center;justify-content:center;color:#000;border-radius:2px;text-decoration:none;font-size:14px;text-align:center;line-height:22px}.cw-control.font-style,.cw-control.text-decoration,.cw-control.display,.cw-control.list-style-type{padding-right:12px}.cw-control.position .select-search__option{font-size:13px}.cw-control-title{display:block;padding:10px 0}.cw-control-title+.tab-content{margin-top:-25px}.border .cw-tab-wrap{display:flex;flex-wrap:wrap}.border .cw-tab-wrap>*{flex-shrink:0;width:100%;box-sizing:border-box}.border .cw-tab-wrap .cw-color{width:60%}.border .cw-tab-wrap .cw-select{width:40%}button.wp-color-result .color-alpha{height:28px !important}#cw-quick-select .cw-qs-title{padding:15px 0 10px;text-align:center;line-height:22px}#cw-quick-select .cw-qs-title .dashicons{background-color:#0171a1;background-image:linear-gradient(90deg, #01a0e4, #0171a1);background-size:100%;background-repeat:repeat;-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-size:16px;height:16px;vertical-align:text-top}#cw-quick-select .cw-qs-title svg{vertical-align:text-top;padding-left:10px}#cw-quick-select ul.cw-qs-btns{padding:10px;display:flex;flex-flow:column wrap;align-content:space-between;height:300px}#cw-quick-select ul.cw-qs-btns::before,#cw-quick-select ul.cw-qs-btns::after{content:\'\';flex-basis:100%;width:0;order:2}#cw-quick-select .cw-qs-btn:nth-child(3n+1){order:1}#cw-quick-select .cw-qs-btn:nth-child(3n+2){order:2}#cw-quick-select .cw-qs-btn:nth-child(3n){order:3}#cw-quick-select li.cw-qs-btn{padding:6px 8px;background:#fff;color:#0071a1;border:1px solid var(--border);border-radius:3px;cursor:pointer;width:calc(33.3% - 5px);box-sizing:border-box;margin-bottom:10px;text-align:center}.cw-pseudo{display:inline-block;vertical-align:top;cursor:pointer;position:relative}.cw-pseudo-icon{display:inline-block;background:var(--accentLight);border:1px solid var(--accent);border-left:none;color:var(--accentDark);cursor:pointer;line-height:22px;height:24px}.cw-pseudo-content{border:1px solid var(--accent);box-sizing:border-box;display:none;position:absolute;top:0;left:-1px;background:white;z-index:3}.cw-pseudo-item{padding:3px 0 3px 7px;width:52px;display:none}.cw-pseudo-item:hover{color:var(--accentDark)}.cw-pseudo.active .cw-pseudo-content{display:inline-block}.cw-pseudo.active .cw-pseudo-item:first-child{display:inline-block;background:var(--accentLight)}.cw-pseudo.active .cw-pseudo-icon{display:none}.cw-pseudo.open .cw-pseudo-content{display:inline-block}.cw-pseudo.open .cw-pseudo-item{display:inline-block}.cw-pseudo.open .cw-pseudo-icon{display:none}.cw-media .thumbnail img{max-height:100px}[id*="__lpform_input"]{display:none !important}\n'," ",'.select-search{position:relative;box-sizing:border-box}.select-search *,.select-search *::after,.select-search *::before{box-sizing:inherit}.select-search__value{position:relative;z-index:1}.select-search__value::after{content:\'\';display:inline-block;position:absolute;top:calc(50% - 4px);right:16px;width:6px;height:6px}.select-search__input{display:block;height:30px;width:100%;padding:0 16px;background:#fff !important;border:1px solid #c4c8ca;border-radius:3px;outline:none;font-family:\'Noto Sans\', sans-serif;font-size:14px;text-align:left;text-overflow:ellipsis;line-height:36px;-webkit-appearance:none;margin:0}.select-search__input::-webkit-search-decoration,.select-search__input::-webkit-search-cancel-button,.select-search__input::-webkit-search-results-button,.select-search__input::-webkit-search-results-decoration{-webkit-appearance:none}.select-search__input:not([readonly]):focus{cursor:initial}.select-search__select{background:#fff;box-shadow:0 0.0625rem 0.125rem rgba(0,0,0,0.15)}.select-search__options{list-style:none}.select-search__row:not(:first-child){border-top:1px solid #f2f2f2}.select-search__option{display:block;height:36px;width:100%;padding:0 16px;background:#fff;border:none;outline:none;font-size:14px;text-align:left;cursor:pointer}.select-search--multiple .select-search__option{height:48px}.select-search__option.is-selected{background:var(--accent);color:#fff}.select-search__option.is-highlighted,.select-search__option:not(.is-selected):hover{background:var(--accentLight)}.select-search__option.is-highlighted.is-selected,.select-search__option.is-selected:hover{background:#21ab7d;color:#fff}.select-search__group-header{font-size:10px;text-transform:uppercase;background:#f7f7f7;padding:6px 16px;position:sticky;top:0;box-shadow:0 1px 3px rgba(0,0,0,0.2)}.select-search.is-disabled{opacity:0.5}.select-search.is-loading .select-search__value::after{background-image:url("data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'50\' height=\'50\' viewBox=\'0 0 50 50\'%3E%3Cpath fill=\'%232F2D37\' d=\'M25,5A20.14,20.14,0,0,1,45,22.88a2.51,2.51,0,0,0,2.49,2.26h0A2.52,2.52,0,0,0,50,22.33a25.14,25.14,0,0,0-50,0,2.52,2.52,0,0,0,2.5,2.81h0A2.51,2.51,0,0,0,5,22.88,20.14,20.14,0,0,1,25,5Z\'%3E%3CanimateTransform attributeName=\'transform\' type=\'rotate\' from=\'0 25 25\' to=\'360 25 25\' dur=\'0.6s\' repeatCount=\'indefinite\'/%3E%3C/path%3E%3C/svg%3E");background-size:11px}.select-search:not(.is-disabled) .select-search__input{cursor:pointer}.select-search--multiple{border-radius:3px;overflow:hidden}.select-search:not(.is-loading):not(.select-search--multiple) .select-search__value::after{transform:rotate(45deg);border-right:1px solid #555;border-bottom:1px solid #555;pointer-events:none}.select-search--multiple .select-search__input{cursor:initial}.select-search--multiple .select-search__input{border-radius:3px 3px 0 0}.select-search--multiple:not(.select-search--search) .select-search__input{cursor:default}.select-search:not(.select-search--multiple) .select-search__input:hover{border-color:var(--accent)}.select-search:not(.select-search--multiple) .select-search__select{z-index:2;margin-top:4px;right:0;left:0;border-radius:3px;overflow:auto;max-height:360px;box-shadow:var(--boxShadow)}.select-search--multiple .select-search__select{position:relative;overflow:auto;max-height:260px;border-top:1px solid #eee;border-radius:0 0 3px 3px}.select-search.horizontal .select-search__value{display:none}.select-search.horizontal .select-search__select{top:0;box-shadow:none}.select-search.horizontal .select-search__options{display:flex}.select-search.horizontal .select-search__option{height:28px;position:relative;text-align:center;padding:0 10px}.select-search.horizontal .select-search__row{flex:1}.select-search.horizontal .select-search__row:not(:first-child){border-top:none}.select-search__row[data-value="italic"] .select-search__option{font-style:italic}.select-search__row[data-value="overline"] .select-search__option{text-decoration:overline}.select-search__row[data-value="underline"] .select-search__option{text-decoration:underline}.select-search__row[data-value="line-through"] .select-search__option{text-decoration:line-through}.cw-border .select-search__row .select-search__option:after{content:\'\';position:absolute;top:50%;left:15%;width:70%}.cw-border .select-search__row[data-value="solid"] .select-search__option:after{border-top:2px solid #000}.cw-border .select-search__row[data-value="dotted"] .select-search__option:after{border-top:2px dotted #000}.cw-border .select-search__row[data-value="dashed"] .select-search__option:after{border-top:2px dashed #000}.font-weight .select-search__row[data-value="100"] .select-search__option{font-weight:100}.font-weight .select-search__row[data-value="200"] .select-search__option{font-weight:200}.font-weight .select-search__row[data-value="300"] .select-search__option{font-weight:300}.font-weight .select-search__row[data-value="400"] .select-search__option{font-weight:400}.font-weight .select-search__row[data-value="500"] .select-search__option{font-weight:500}.font-weight .select-search__row[data-value="600"] .select-search__option{font-weight:600}.font-weight .select-search__row[data-value="700"] .select-search__option{font-weight:700}.font-weight .select-search__row[data-value="800"] .select-search__option{font-weight:800}.font-weight .select-search__row[data-value="900"] .select-search__option{font-weight:900}.select-search__option:not(.is-selected) .dashicons{color:#555}\n'))}var tt,nt=!1,rt=!1,ot=!1;function at(e,t){tt=t.origin,!0!==ot&&!0!==rt&&(rt=!0,F.addFromString(nt.getValue()),setTimeout((function(){rt=!1}),100))}function it(){var e=R(F).allOutputs,t=R(q).currentPage,n="cw-code-editor";return x.emit("textarea-ready",{textAreaId:n}),React.createElement("textarea",{id:n,defaultValue:e[t]})}function ct(){var e=R(q).previewObject.cssVars,t=I.get().currentMedia.query,n=function(e,t){var n=(new Option).style;return n[t]=e,n[t]===e||"color"===t&&n.color.startsWith("rgb")||"width"===t&&"0px"===n.width},r=b(React.useState([]),2),o=r[0],a=r[1],i=function r(){var o=F.get().styles,i=[];return Object.entries(e).forEach((function(e){var c=b(e,2),l=c[0],s=c[1],p={property:l,params:{}};n(s,"color")?(p.Component=cw.components.Color,p.params.onTab=function(e){!1===e&&setTimeout((function(){return a(r())}))}):n(s,"width")?p.Component=cw.components.Length:n(s,"transition-duration")?(p.Component=cw.components.Length,p.params=u(u({},p.params),{},{units:{s:{step:.1,min:0,max:10},ms:{step:10,min:0,max:2e3}}})):n(s,"font-weight")&&(p.Component=cw.components.Select,p.params=u(u({},p.params),{},{options:["100","200","300","400","500","600","700","800","900"]})),"Component"in p&&(t in o&&":root"in o[t]&&l in o[t][":root"]&&(s=o[t][":root"][l]),p.params=u(u({},p.params),{},{label:l,val:s}),p.params.onChange=function(e){F.addStyle(":root",l,e)},i.push(p))})),i};React.useEffect((function(){return a(i())}),[]);var c=wp.components.Spinner;return React.createElement(React.Fragment,null,React.createElement("div",{className:"cw-panel-title"},"Theming"),React.createElement("div",{className:"cw-theming-controls"},o.map((function(e){return React.createElement("div",{key:e.property,className:"cw-control"},React.createElement(e.Component,e.params))})),!o.length&&React.createElement("div",{className:"loading"},React.createElement(c,null))))}function lt(){var e={shortcuts:!0,history:100},t=localStorage.getItem("cwSettings");null!==t&&(e=JSON.parse(t));var n=b(React.useState(e),2),r=n[0],o=n[1];cw.Evt.emit("update-settings",r);var a=function(e){var t=u({},r);"shortcuts"===e.target.name?t.shortcuts=e.target.checked:"history"===e.target.name&&(t.history=e.target.value),o(t)};return z((function(){localStorage.setItem("cwSettings",JSON.stringify(r)),cw.Evt.emit("update-settings",r)}),[r]),React.createElement(React.Fragment,null,React.createElement("div",{className:"cw-panel-title"},"Settings"),React.createElement("ul",{className:"cw-settings-controls"},React.createElement("li",{className:"customize-control customize-control-checkbox"},React.createElement("input",{name:"shortcuts",id:"cw-setting-shortcuts",type:"checkbox",checked:r.shortcuts,onChange:a}),React.createElement("label",{htmlFor:"cw-setting-shortcuts"},"Enable Shortcuts"),React.createElement("span",{className:"description customize-control-description"},"Keyboard shortcuts for save, undo - redo etc.")),React.createElement("li",{className:"customize-control customize-control-input"},React.createElement("label",{htmlFor:"cw-setting-history"},"History max count"),React.createElement("span",{className:"description customize-control-description"},"Maximum number of items to keep in undo history."),React.createElement("input",{name:"history",id:"cw-setting-history",type:"number",value:r.history,onChange:a}))))}function st(){var e=wp.components.Tooltip,t=b(React.useState("editor"),2),n=t[0],r=t[1];return["editor","code"].includes(n)?cw.Evt.emit("toggle-preview","show"):cw.Evt.emit("toggle-preview","hide"),React.createElement("div",{className:"cw-panel"},React.createElement(Qe,null),React.createElement("div",{className:"panel-main"},React.createElement("div",{className:"cw-tabs cw-main-tabs"},React.createElement(e,{text:"Visual Editor",position:"top left"},React.createElement("button",{type:"button",className:"editor-tab tab main-tab"+("editor"===n?" active":""),onClick:function(){return r("editor")}},React.createElement("span",{className:"dashicons dashicons-admin-appearance"}))),React.createElement(e,{text:"Code Editor",position:"top left"},React.createElement("button",{type:"button",className:"code-tab tab main-tab"+("code"===n?" active":""),onClick:function(){return r("code")}},React.createElement("span",{className:"dashicons dashicons-editor-code"}))),React.createElement(e,{text:"Global variables",position:"top left"},React.createElement("button",{type:"button",className:"theming-tab tab main-tab"+("theming"===n?" active":""),onClick:function(){return r("theming")}},React.createElement("span",{className:"dashicons dashicons-image-filter"}))),React.createElement(e,{text:"Settings",position:"top left"},React.createElement("button",{type:"button",className:"settings-tab tab main-tab"+("settings"===n?" active":""),onClick:function(){return r("settings")}},React.createElement("span",{className:"dashicons dashicons-admin-generic"})))),React.createElement(Ze,null),React.createElement("div",{className:"tab-content cw-editor"+("editor"!==n?" hidden":"")},React.createElement(et,null)),React.createElement("div",{className:"tab-content cw-code-editor"+("code"!==n?" hidden":"")},React.createElement(it,null)),"theming"===n&&React.createElement("div",{className:"tab-content cw-theming"},React.createElement(ct,null)),"settings"===n&&React.createElement("div",{className:"tab-content cw-settings"},React.createElement(lt,null))))}function ut(){var e=cw.hooks.applyFilters("cw_styles",Ue);return React.createElement("div",{id:"cw-canvas"},React.createElement("style",{type:"text/css"},Ue),React.createElement(st,null),React.createElement("style",{type:"text/css"},e))}F.subscribe((function(){!1!==nt&&(ot=!0,!0!==rt&&nt.getDoc().setValue(F.get().allOutputs[q.get().currentPage]),"setValue"===tt&&nt.autoFormatRange({line:0,ch:0},{line:nt.lineCount()}),setTimeout((function(){ot=!1}),100))})),x.on("textarea-ready",(function(e){if(!1===nt){var t={indentUnit:2,indentWithTabs:!0,inputStyle:"contenteditable",lineNumbers:!0,autoRefresh:!0,lineWrapping:!0,styleActiveLine:!0,continueComments:!0,extraKeys:{"Ctrl-Space":"autocomplete","Ctrl-/":"toggleComment","Cmd-/":"toggleComment","Alt-F":"findPersistent","Ctrl-F":"findPersistent","Cmd-F":"findPersistent"},direction:"ltr",gutters:[],mode:"text/css",lint:!1,autoCloseBrackets:!0,autoCloseTags:!0,matchTags:{bothTags:!0},tabSize:2,matchBrackets:!0,jshint:{}};(0,b(function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,r=function(e){t=e},o=function(){},a=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e4)/n,i=setInterval((function(){a--,("function"==typeof e&&!0===e()||!0===e&&"function"==typeof t)&&(t(),clearInterval(i)),a<=0&&clearInterval(i)}),n);return[r,o]}(!("undefined"==typeof wp||!wp.hasOwnProperty("CodeMirror"))),1)[0])((function(){(nt=wp.CodeMirror.fromTextArea(document.getElementById(e.textAreaId),t)).on("change",at),nt.showHint&&nt.on("keyup",(function(e,t){var n,r,o,a,i=/^[a-zA-Z]$/.test(t.key);nt.state.completionActive&&i||"string"!==(a=nt.getTokenAt(nt.getCursor())).type&&"comment"!==a.type&&(o=wp.CodeMirror.innerMode(nt.getMode(),a.state).mode.name,r=nt.doc.getLine(nt.doc.getCursor().line).substr(0,nt.doc.getCursor().ch),"css"===o&&(n=i||":"===t.key||" "===t.key&&/:\s+$/.test(r)),n&&nt.showHint({completeSingle:!1}))}))}))}})),wp.customize.controlConstructor["color-wings"]=wp.customize.Control.extend({ready:function(){var e=this;cw.Evt.emit("colorwings-will-mount",e),ReactDOM.render(React.createElement(ut,null),document.getElementById("color-wings")),wp.customize.section("extra_styles",(function(e){e.expanded.bind((function(e){oe(!!e)}))})),wp.customize.state("previewedDevice").bind(Y),cw.Evt.on("update-control",(function(t){e.setting.set(t)}))}}),wp.customize.controlConstructor["cw-link"]=wp.customize.Control.extend({ready:function(){var e=this;this.container[0].addEventListener("click",(function(){cw.Evt.emit("focus-unlocked"),wp.customize.control("color_wings").focus(),cw.Evt.emit("select-element",e.params.options.selector)}))}})}(React); +e.exports=function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){for(var n=0;n1)throw new Error('"weight" property in key must bein the range of [0, 1)');this._keyWeights[l]=s,o+=s}if(o>1)throw new Error("Total of weights cannot exceed 1")}}},{key:"search",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{limit:!1};this._log('---------\nSearch pattern: "'.concat(e,'"'));var n=this._prepareSearchers(e),r=n.tokenSearchers,o=n.fullSearcher,a=this._search(r,o);return this._computeScore(a),this.options.shouldSort&&this._sort(a),t.limit&&"number"==typeof t.limit&&(a=a.slice(0,t.limit)),this._format(a)}},{key:"_prepareSearchers",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];if(this.options.tokenize)for(var n=e.split(this.options.tokenSeparator),r=0,o=n.length;r0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0,n=this.list,r={},o=[];if("string"==typeof n[0]){for(var a=0,c=n.length;a-1&&(N=(N+s)/2),n._log("Score average:",N);var j=!n.options.tokenize||!n.options.matchAllTokens||u>=p.length;if(n._log("\nCheck Matches: ".concat(j)),(i||h.isMatch)&&j){var z={key:r,arrayIndex:t,value:o,score:N};n.options.includeMatches&&(z.matchedIndices=h.matchedIndices);var P=m[c];P?P.output.push(z):(m[c]={item:a,output:[z]},g.push(m[c]))}}else if(l(o))for(var T=0,L=o.length;T0?Number.EPSILON:u.score;l*=Math.pow(h,d)}a.score=l,this._log(a)}}},{key:"_sort",value:function(e){this._log("\n\nSorting...."),e.sort(this.options.sortFn)}},{key:"_format",value:function(e){var t=[];if(this.options.verbose){var n=[];this._log("\n\nOutput:\n\n",JSON.stringify(e,(function(e,t){if("object"===r(t)&&null!==t){if(-1!==n.indexOf(t))return;n.push(t)}return t}),2)),n=null}var o=[];this.options.includeMatches&&o.push((function(e,t){var n=e.output;t.matches=[];for(var r=0,o=n.length;r-1&&(c.arrayIndex=a.arrayIndex),t.matches.push(c)}}})),this.options.includeScore&&o.push((function(e,t){t.score=e.score}));for(var a=0,c=e.length;al)return o(e,this.pattern,s);var u=this.options,p=u.location,d=u.distance,h=u.threshold,m=u.findAllMatches,f=u.minMatchCharLength;return a(e,this.pattern,this.patternAlphabet,{location:p,distance:d,threshold:h,findAllMatches:m,minMatchCharLength:f,includeMatches:r})}}])&&r(e.prototype,t),e}();e.exports=i},function(e,t){var n=/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g;e.exports=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:/ +/g,o=new RegExp(t.replace(n,"\\$&").replace(r,"|")),a=e.match(o),c=!!a,i=[];if(c)for(var l=0,s=a.length;l=L;q-=1){var I=q-1,D=n[e.charAt(I)];if(D&&(E[I]=1),A[q]=(A[q+1]<<1|1)&D,0!==z&&(A[q]|=(S[q+1]|S[q])<<1|1|S[q+1]),A[q]&j&&(_=r(t,{errors:z,currentLocation:I,expectedLocation:b,distance:s}))<=y){if(y=_,(x=I)<=b)break;L=Math.max(1,2*b-x)}}if(r(t,{errors:z+1,currentLocation:b,expectedLocation:b,distance:s})>y)break;S=A}var F={isMatch:x>=0,score:0===_?.001:_};return v&&(F.matchedIndices=o(E,f)),F}},function(e,t){e.exports=function(e,t){var n=t.errors,r=void 0===n?0:n,o=t.currentLocation,a=void 0===o?0:o,c=t.expectedLocation,i=void 0===c?0:c,l=t.distance,s=void 0===l?100:l,u=r/e.length,p=Math.abs(i-a);return s?u+p/s:p?1:u}},function(e,t){e.exports=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=[],r=-1,o=-1,a=0,c=e.length;a=t&&n.push([r,o]),r=-1)}return e[a-1]&&a-r>=t&&n.push([r,a-1]),n}},function(e,t){e.exports=function(e){for(var t={},n=e.length,r=0;rSe(Se({},e),{},{index:t})))}(e,t,n)}function ze(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Pe(e){for(var t=1;t{}),getOptions:l=null,allowEmpty:s=!0,closeOnSelect:u=!0,closable:p=!0}){const d=e.useRef(null),h=e.useMemo((()=>function(e){if(!Array.isArray(e))return[];const t=[];return e.forEach(((e,n)=>{if("type"in e&&"group"===e.type){const r=e.name.replace(/\s+/g,"-").toLowerCase()+"-"+n;e.items.forEach((n=>{t.push(ve(ve({},n),{},{groupId:r,groupName:e.name,_id:""+n.value}))}))}else t.push(ve(ve({},e),{},{_id:""+e.value,index:n}))})),t}(c)),[c]),[m,f]=e.useState({flat:[],addedOptions:[],value:t,search:"",focus:!1,searching:!1,highlighted:-1,changed:!1}),{flat:g,addedOptions:v,value:b,search:w,focus:y,searching:x,highlighted:k}=m,E=e.useMemo((()=>{let e=ke(b,[...h,...v]);return e||s||r||([e]=h),e}),[b,h,v,s,r]),R=e.useMemo((()=>xe(g)),[g]),O=e.useMemo((()=>function(e){return e&&"object"==typeof e?Array.isArray(e)?e.map((e=>e.name)).join(", "):e.name:""}(E)),[E]),C=e.useCallback((()=>{f((e=>Pe(Pe({},e),{},{focus:!1,search:"",flat:h,highlighted:-1}))),d.current&&d.current.blur()}),[h,d]),S=e=>f((t=>Pe(Pe({},t),{},{focus:e}))),_=e.useCallback((e=>{f((t=>{const{flat:n,highlighted:o}=t,a=e?n.find((t=>t.value==e)):n[o];if(!a)return t;const c=function(e,t,n){if(!n)return e;if(!t)return[e];const r=Array.isArray(t)?[...t]:[t],o=r.findIndex((t=>t===e));return o>=0?r.splice(o,1):r.push(e),r}(a.value,t.value,r),i=ke(c,n);return Pe(Pe({},t),{},{addedOptions:r?i:[i],value:c,changed:[c,i]})}))}),[r]),N=e.useCallback((e=>{e.preventDefault(),u&&d.current&&d.current.blur(),_(e.currentTarget.value)}),[_,u]),j=e.useCallback((e=>{const{key:t}=e;"ArrowDown"!==t&&"ArrowUp"!==t||(e.preventDefault(),f((e=>Pe(Pe({},e),{},{highlighted:fe(e.highlighted,{key:t,options:e.flat})}))))}),[]),z=e.useCallback((({key:e})=>{"Enter"===e&&(_(),p&&u&&C())}),[_,u,C,p]),P=e.useCallback((({key:e})=>{"Escape"===e&&C()}),[C]),T={tabIndex:"0",readOnly:!o,onChange:o?({target:e})=>{const{value:t}=e,n={search:t};let r=h;l&&t.length&&(n.searching=!0,r=l(t)),f((e=>Pe(Pe({},e),n))),Promise.resolve(r).then((e=>{let n=e;t.length&&(n=je(t,e,a)),f((t=>Pe(Pe({},t),{},{flat:!1===n?e:n,searching:!1})))})).catch((()=>f((e=>Pe(Pe({},e),{},{flat:h,searching:!1})))))}:null,disabled:n,onMouseDown:()=>S(!y),onBlur:C,onFocus:()=>S(!0),onKeyPress:z,onKeyDown:j,onKeyUp:P,ref:d},L=e.useMemo((()=>({tabIndex:"-1",onMouseDown:N,onKeyDown:j,onKeyPress:z,onBlur:C})),[N,j,z,C]);return e.useEffect((()=>{f((e=>Pe(Pe({},e),{},{value:t})))}),[t]),e.useEffect((()=>{f((e=>Pe(Pe({},e),{},{flat:h})))}),[h]),e.useEffect((()=>{!1!==m.changed&&(f((e=>Pe(Pe({},e),{},{changed:!1}))),i(...m.changed))}),[m.changed,i]),[{value:E,highlighted:k,options:R,disabled:n,displayValue:O,focus:y,search:w,searching:x},T,L,e=>f((t=>Pe(Pe({},t),{},{value:e})))]}function Me(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ae(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}const De=e=>{let{optionProps:t,highlighted:r,selected:o,cls:a,renderOption:c}=e,i=Ie(e,["optionProps","highlighted","selected","cls","renderOption"]);const l=[a("option"),!!o&&a("is-selected"),!!r&&a("is-highlighted")].filter((e=>!!e)).join(" "),s=Ae(Ae({},t),{},{value:i.value,disabled:i.disabled});return n.default.createElement("li",{className:a("row"),role:"menuitem","data-index":i.index,"data-value":escape(i.value),key:i.value},c(s,i,{selected:o,highlighted:r},l))};De.defaultProps={disabled:!1,index:null,value:null};var Fe=e.memo(De);function Be(){return(Be=Object.assign||function(e){for(var t=1;t{const k=e.useRef(null),[E,R,O]=Le({options:s,value:t,multiple:a,disabled:r,fuse:w,search:c,onChange:p,getOptions:b,closeOnSelect:h,closable:!a||"on-focus"===d,allowEmpty:!!o}),{focus:C,highlighted:S,value:_,options:N,searching:j,displayValue:z,search:P}=E,T=e.useCallback((e=>"function"==typeof m?m(e):0===e.indexOf("container")?e.replace("container",m):0===e.indexOf("is-")||0===e.indexOf("has-")?e:m.split(" ")[0]+"__"+e),[m]),L=e.useCallback((()=>{if(null===y)return null;const e="function"==typeof y?y():y;return n.default.createElement("li",{className:T("not-found")},e)}),[y,T]),M=[T("container"),!!r&&T("is-disabled"),!!j&&T("is-loading"),!!C&&T("has-focus")].filter((e=>!!e)).join(" "),A=C&&c?P:z;let q;switch(e.useEffect((()=>{const{current:e}=k;if(!e||a||S<0&&!_)return;const t=S>-1?'[data-index="'+S+'"]':'[data-value="'+escape(_.value)+'"]',n=e.querySelector(t);if(n){const t=e.getBoundingClientRect(),r=n.getBoundingClientRect();e.scrollTop=n.offsetTop-t.height/2+r.height/2}}),[C,_,S,k,a]),d){case"never":q=!1;break;case"always":q=!0;break;case"on-focus":q=C;break;default:q=!r&&(C||a)}return n.default.createElement("div",{ref:x,className:M,id:u},(!a||o||c)&&n.default.createElement("div",{className:T("value")},f(He(He({},R),{},{placeholder:o,autoFocus:i,autoComplete:l,value:A}),E,T("input"))),q&&n.default.createElement("div",{className:T("select"),ref:k,onMouseDown:e=>e.preventDefault()},n.default.createElement("ul",{className:T("options")},N.length>0?N.map((e=>{const t="group"===e.type,r=t?e.items:[e],o={cls:T,optionProps:O,renderOption:g},a=r.map((e=>{return n.default.createElement(Fe,Be({key:e.value,selected:(t=e,r=_,!!r&&(Array.isArray(r)?r.findIndex((e=>e.value===t.value))>=0:r.value===t.value)),highlighted:S===e.index},o,e));var t,r}));return t?n.default.createElement("li",{role:"none",className:T("row"),key:e.groupId},n.default.createElement("div",{className:T("group")},n.default.createElement("div",{className:T("group-header")},v(e.name)),n.default.createElement("ul",{className:T("options")},a))):a})):L()||null)))}));Ke.defaultProps={className:"select-search",disabled:!1,search:!1,multiple:!1,placeholder:null,id:null,autoFocus:!1,autoComplete:"on",value:"",onChange:()=>{},printOptions:"auto",closeOnSelect:!0,renderOption:(e,t,r,o)=>n.default.createElement("button",Be({className:o},e),t.name),renderGroupHeader:e=>e,renderValue:(e,t,r)=>n.default.createElement("input",Be({},e,{className:r})),fuse:{keys:["name","groupName"],threshold:.3},getOptions:null,emptyMessage:null};var $e=e.memo(Ke);window.cw.components={Length:function(e){var t=cw.components,n=t.LengthTab,r=t.LengthIcon,o=e.subType,a=e.val,c=e.onChange,i=["radius","padding","margin"].includes(o),s=String(a),p=s.split(" "),d=[s,s,s,s,s];4===p.length?d=["0px",p[0],p[1],p[2],p[3]]:3===p.length?d=["0px",p[0],p[1],p[2],p[1]]:2===p.length&&(d=["0px",p[0],p[1],p[0],p[1]]);var h,m=v(React.useState({tab:0,values:d,currentVal:a}),2),f=m[0],g=m[1],b=function(e,t){var n=f.values;n[e]=t;var r=t;0!==e&&void 0!==e&&(r="".concat(n[1]," ").concat(n[2]," ").concat(n[3]," ").concat(n[4])),g((function(e){return u(u({},e),{},{currentVal:r,values:n})})),c(r)},w=i&&React.createElement("div",{className:"cw-tabs"},[0,1,2,3,4].map((function(e){return React.createElement("div",{key:e,className:"tab tab-".concat(e," ").concat(0===e?"active":""),onClick:function(t){return function(e,t){e.currentTarget.parentNode.childNodes.forEach((function(e){return e.classList.remove("active")})),e.currentTarget.classList.add("active"),g((function(e){return u(u({},e),{},{tab:t})}))}(t,e)}},React.createElement(r,{tab:e,subType:o}))})));h=i?[0,1,2,3,4].map((function(t){return React.createElement(n,l({},e,{values:d,key:t,tab:t,hidden:t!==f.tab,handleChange:b}))})):React.createElement(n,l({},e,{handleChange:b}));var y=i&&React.createElement("div",{className:"output"},"Output: ",f.currentVal);return React.createElement("div",{className:"cw-control-content cw-length "+(i?"shorthand":"single-length")},e.label&&React.createElement("span",{className:"cw-control-title"},e.label),e.description&&React.createElement("span",{className:"description customize-control-description"},e.description),w,h,y)},LengthTab:function(e){var t=["radius","padding","margin"].includes(e.subType),n="units"in e?e.units:{px:{step:1,min:0,max:100},pc:{step:.1,min:0,max:200},cm:{step:.1,min:0,max:200},mm:{step:1,min:0,max:2e3},rem:{step:.1,min:0,max:200},em:{step:.01,min:0,max:100},ex:{step:.1,min:0,max:200},ch:{step:.1,min:0,max:200},vh:{step:.1,min:0,max:200},vw:{step:.1,min:0,max:200},in:{step:.01,min:0,max:100},"%":{step:.1,min:0,max:200},"":{step:.1,min:0,max:1}},r=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],n="";!1!==t?n=t:(n=String(e.val),"values"in e&&(n=e.values[e.tab]));var r=n.match(/^([+-]?(?:\d+|\d*\.\d+))([a-z]*|%)$/);return[null===r?"":r[1],null===r?"px":r[2]]},o=v(r(),2),a=o[0],c=o[1];void 0===e.units&&c in n&&(n[c]=u(u({},n[c]),{},{max:100*n[c].step})),c in n&&"step"in n[c]||(n[c]={step:1,min:0,max:100});var i=v(React.useState({main:a,unit:c,step:n[c].step,min:n[c].min,max:n[c].max}),2),l=i[0],s=i[1],p=v(React.useState(0),2),d=p[0],h=p[1];React.useEffect((function(){h(z(r()))}),[]),P((function(){var e=v(r(),2),t=e[0],n=e[1];s((function(e){return u(u({},e),{},{main:t,unit:n})})),he=!0,setTimeout((function(){he=!1}),500)}),[e.val]),P((function(){m("".concat(l.main).concat(l.unit))}),[l]);var m=function(t){he||e.handleChange(e.tab,t)},f=function(e){e.persist(),s((function(t){return u(u({},t),{},{main:e.target.value})}))};return React.createElement("div",{className:"tab-content "+(t?"shorthand":"")+(e.hidden?" hidden":"")},React.createElement("div",{className:"cw-row length-ips".concat("unitLess"===e.subType?" unit-less":"")},!e.noRange&&React.createElement("div",{className:"col-8 range-wrap"},React.createElement("input",{type:"range",step:l.step,min:l.min,max:l.max,value:l.main,style:{"--min":l.min,"--max":l.max,"--val":l.main?l.main:(l.max-l.min+.01)/2},onChange:f})),React.createElement("div",{className:"col-".concat(e.noRange?"12":"4")},React.createElement("input",{type:"number",step:l.step,min:l.min,max:l.max,value:l.main,onChange:f})),"unitLess"!==e.subType&&React.createElement("select",{className:"length-unit",onChange:function(e){e.persist();var t=e.target.value;s((function(e){return u(u({},e),{},{unit:t,step:n[t].step,min:n[t].min,max:n[t].max})}))},value:l.unit},Object.keys(n).map((function(e){return React.createElement("option",{key:e,value:e},e)}))),!e.noReset&&React.createElement("button",{type:"button",className:"reset",onClick:function(){s((function(e){var t=v(d,2),n=t[0],r=t[1];return u(u({},e),{},{main:n,unit:r})}))}},React.createElement("svg",{width:"15px",height:"14.7px",viewBox:"0 0 50 49",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},React.createElement("path",{d:"M0,20 L14,0 C14,6 14,9 14,9 C40,-3 65,30 38,49 C58,27 36,7 18,17 C18,17 20,19 24,23 L0,20 Z",fill:"currentColor"})))))},LengthIcon:function(e){var t,n,r=e.subType,o=e.tab;return"radius"===r?(t=React.createElement("rect",{stroke:"#999",fill:"none",x:"1",y:"1",width:"14",height:"14",rx:"3"}),n=React.createElement("rect",{stroke:"currentColor",strokeWidth:"2",fill:"none",x:"1",y:"1",width:"14",height:"14",rx:"4"}),1===o?n=React.createElement("path",{d:"M8,0 L8,2 L5,2 C3.34,2 2,3.34 2,5 L2,8 L0,8 L0,5 C0,2.24 2.24,0 5,0 L8,0 Z",fill:"currentColor"}):2===o?n=React.createElement("path",{d:"M8,0 L11,0 C13.76,0 16,2.24 16,5 L16,8 L14,8 L14,5 C14,3.34 12.66,2 11,2 L8,2 L8,0 Z",fill:"currentColor"}):3===o?n=React.createElement("path",{d:"M16,8 L16,11 C16,13.76 13.76,16 11,16 L8,16 L8,14 L11,14 C12.66,14 14,12.66 14,11 L14,8 L16,8 Z",fill:"currentColor"}):4===o&&(n=React.createElement("path",{d:"M8,16 L5,16 C2.24,16 0,13.76 0,11 L0,8 L2,8 L2,11 C2,12.66 3.34,14 5,14 L8,14 L8,16 Z",fill:"currentColor"}))):"padding"===r?(t=React.createElement("rect",{stroke:"#000",strokeWidth:".6",fill:"none",x:"1",y:"1",width:"14",height:"14",rx:"1"}),n=React.createElement("rect",{stroke:"currentColor",strokeWidth:"4",fill:"none",x:"3",y:"3",width:"10",height:"10",rx:"0",opacity:".6"}),1===o?n=React.createElement("rect",{fill:"currentColor",x:"1",y:"1",width:"14",height:"5",opacity:".6"}):2===o?n=React.createElement("rect",{fill:"currentColor",x:"10",y:"1",width:"5",height:"14",opacity:".6"}):3===o?n=React.createElement("rect",{fill:"currentColor",x:"1",y:"10",width:"14",height:"5",opacity:".6"}):4===o&&(n=React.createElement("rect",{fill:"currentColor",x:"1",y:"1",width:"5",height:"14",opacity:".6"}))):"margin"===r?(t=React.createElement("rect",{stroke:"#000",strokeWidth:".6",fill:"none",x:"2.5",y:"2.5",width:"11",height:"11",rx:"1"}),n=React.createElement("rect",{stroke:"currentColor",strokeWidth:"2.5",fill:"none",x:"1",y:"1",width:"14",height:"14",rx:"1"}),1===o?(t=React.createElement("rect",{stroke:"#000",strokeWidth:".6",fill:"none",x:"1",y:"5.5",width:"14",height:"9.5",rx:"1"}),n=React.createElement("rect",{fill:"currentColor",x:"1",y:"0",width:"14",height:"5"})):2===o?(t=React.createElement("rect",{stroke:"#000",strokeWidth:".6",fill:"none",x:"1",y:"1",width:"9.5",height:"14",rx:"1"}),n=React.createElement("rect",{fill:"currentColor",x:"11",y:"1",width:"5",height:"14"})):3===o?(t=React.createElement("rect",{stroke:"#000",strokeWidth:".6",fill:"none",x:"1",y:"1",width:"14",height:"9.5",rx:"1"}),n=React.createElement("rect",{fill:"currentColor",x:"1",y:"11",width:"14",height:"5"})):4===o&&(t=React.createElement("rect",{stroke:"#000",strokeWidth:".6",fill:"none",x:"5.5",y:"1",width:"9.5",height:"14",rx:"1"}),n=React.createElement("rect",{fill:"currentColor",x:"0",y:"1",width:"5",height:"14"}))):"border"===r&&(t=React.createElement("rect",{stroke:"#000",strokeWidth:".6",fill:"none",x:"1",y:"1",width:"14",height:"14",rx:"1"}),n=React.createElement("rect",{stroke:"#000",strokeWidth:"2",fill:"none",x:"1",y:"1",width:"14",height:"14",rx:"1"}),1===o?n=React.createElement("rect",{fill:"#000",x:"1",y:"1",width:"14",height:"2"}):2===o?n=React.createElement("rect",{fill:"#000",x:"13",y:"1",width:"2",height:"14"}):3===o?n=React.createElement("rect",{fill:"#000",x:"1",y:"13",width:"14",height:"2"}):4===o&&(n=React.createElement("rect",{fill:"#000",x:"1",y:"1",width:"2",height:"14"}))),React.createElement("svg",{width:"16px",height:"16px",viewBox:"0 0 16 16",style:{pointerEvents:"bounding-box"}},t,n)},Color:function(e){e.type&&e.type;var t=e.val,n="linear-gradient(90deg, rgba(255,255,255,1) 0%, rgba(177,177,177,1) 100%)";Array.isArray(e.val)&&(t=e.val[0],n=e.val.length>1&&!1!==e.val[1]?e.val[1]:n);var r=React.createRef();React.useEffect((function(){var e;(e=r.current).classList.contains("fixed")||(e.querySelector(".cw-color-holder").style.left="-".concat(e.getBoundingClientRect().left-12,"px"),e.classList.add("fixed"))}));var o=wp.components,a=o.ColorPicker,c=o.Button,i=v(React.useState({tab:!1}),2),l=i[0],s=i[1],p=function(t){t=l.tab!==t&&t,s(u(u({},l),{},{tab:t})),"onTab"in e&&e.onTab(t)},d=function(){return cw.hooks.applyFilters("gradient_picker",React.createElement("a",{href:cwControlObject.extUrl,className:"cw-link",target:"_blank"},React.createElement("span",null,"Color Gradient ",React.createElement("br",null),cwControlObject.extOpt)),e)};return React.createElement("div",{className:"cw-control-content cw-color"},e.label&&React.createElement("span",{className:"cw-control-title"},e.label),React.createElement("div",{className:"cw-color-info"},React.createElement("button",{type:"button",className:"solid-selector"+("solid"===l.tab?" active":""),onClick:function(){return p("solid")},style:{background:t}}),e.type&&"background"===e.type&&React.createElement("button",{type:"button",className:"gradient-selector"+("gradient"===l.tab?" active":""),onClick:function(){return p("gradient")},style:{background:n}})),React.createElement("div",{className:"cw-color-wrap".concat(!1===l.tab?" hidden":" cw-wrap-"+l.tab),ref:r},React.createElement("div",{className:"cw-color-overlay",onClick:function(){return p(!1)}}),React.createElement("div",{className:"cw-color-holder"},React.createElement("div",{className:"cw-color-solid"+("solid"!==l.tab?" hidden":"")},React.createElement(a,{color:t,onChangeComplete:function(t){e.onChange(t.color.toRgbString())}}),React.createElement(c,{className:"cw-color-clear",isSecondary:!0,isSmall:!0,onClick:function(){return e.onChange("rgba(0, 0, 0, 0)")}},"Clear")),React.createElement("div",{className:"cw-color-gradient"+("gradient"!==l.tab?" hidden":"")},React.createElement(d,null)))))},Media:function(e){var t=e.val;if("none"!==t){var n=b(t.matchAll(/(url)(?:\(['"]?)(.*?)(?:['"]?\))/g));n.length&&n[0].length>2&&(t=n[0][2])}t===e.val&&(t="none");var r=v(React.useState(t),2),o=r[0],a=r[1],c=function(t){a(t.url),e.onChange("url('".concat(t.url,"')"))};return React.createElement("div",{className:"cw-control-content cw-media"},e.label&&React.createElement("span",{className:"cw-control-title"},e.label),React.createElement("div",{className:"attachment-media-view"},"none"===o?React.createElement(me,{onSelect:c,allowedTypes:["image"],value:"",render:function(t){var n=t.open;return React.createElement("button",{type:"button",onClick:n,className:"upload-button button-add-media"},e.buttonText?e.buttonText:"Select Image")}}):React.createElement(React.Fragment,null,React.createElement("div",{className:"thumbnail thumbnail-image"},React.createElement("img",{className:"attachment-thumb",src:o})),React.createElement("div",{className:"actions"},React.createElement("button",{type:"button",onClick:function(){a("none"),e.onChange("none","image")},className:"button remove-button"},"Remove"),React.createElement(me,{onSelect:c,allowedTypes:["image"],value:"",render:function(t){var n=t.open;return React.createElement("button",{type:"button",onClick:n,className:"button upload-button"},e.changeText?e.changeText:"Change Image")}})))))},Select:function(e){var t=e.options,n=t;if(!Array.isArray(t)||0===t.length)return null;"object"!==r(t[0])&&(n=t.map((function(e){return{name:e,value:e}})));var o=u({search:!1,printOptions:"auto"},e),a=wp.components.Tooltip,c={options:n,value:e.val,name:e.name,onChange:e.onChange,search:o.search,printOptions:o.printOptions,className:o.horizontal?"select-search horizontal":"select-search",renderOption:function(e,t,n,r){return React.createElement("button",l({className:r},e,{type:"button"}),t.name)}};return"object"===r(t[0])&&("clsName"in t[0]||"content"in t[0])&&(c.renderOption=function(e,t,n,r){return React.createElement(a,{text:t.name,position:"top left"},React.createElement("button",l({},e,{className:r,type:"button"}),"clsName"in t&&React.createElement("span",{className:t.clsName}),"content"in t&&React.createElement(t.content,null)))}),"renderOption"in o&&(c.renderOption=o.renderOption),React.createElement("div",{className:"cw-control-content cw-select"},e.label&&React.createElement("span",{className:"cw-control-title"},e.label," "),React.createElement($e,c))},Shadow:function(e){var t=cw.components,n=t.LengthTab,r=t.Color,o=["0px","0px","0px","0px","#000000"];if("none"!==e.val)if(isNaN(e.val.charAt(0))){var a=e.val.split(/ (?![^\(]*\))/);o=[a[1],a[2],a[3],a[4],a[0]]}else o=e.val.split(" ");var c=v(React.useState(o),2),i=c[0],l=c[1];return React.createElement("div",{className:"cw-control-content border"},e.label&&React.createElement("span",{className:"cw-control-title"},e.label),React.createElement("span",{className:"cw-control-title"},"X Offset"),React.createElement(n,{val:i[0],tab:0,hidden:!1,handleChange:function(t,n){l((function(e){return e[0]=n,e})),e.onChange(i.join(" "))}}),React.createElement("span",{className:"cw-control-title"},"Y Offset"),React.createElement(n,{val:i[1],tab:0,hidden:!1,handleChange:function(t,n){l((function(e){return e[1]=n,e})),e.onChange(i.join(" "))}}),React.createElement("span",{className:"cw-control-title"},"Blur Radius"),React.createElement(n,{val:i[2],tab:0,hidden:!1,handleChange:function(t,n){l((function(e){return e[2]=n,e})),e.onChange(i.join(" "))}}),React.createElement("span",{className:"cw-control-title"},"Spread Radius"),React.createElement(n,{val:i[3],tab:0,hidden:!1,handleChange:function(t,n){l((function(e){return e[3]=n,e})),e.onChange(i.join(" "))}}),React.createElement(r,{val:i[4],onChange:function(t){l((function(e){return e[4]=t,e})),e.onChange(i.join(" "))},label:"Color"}))},Border:function(e){var t=cw.components,n=t.LengthTab,r=t.LengthIcon,o=t.Color,a=t.Select,c={tab:0,values:[["0px","none","#000000"],["0px","none","#000000"],["0px","none","#000000"],["0px","none","#000000"],["0px","none","#000000"]]};"borderTopWidth"in e.val&&(c.values=[[e.val.borderTopWidth,e.val.borderTopStyle,e.val.borderTopColor],[e.val.borderTopWidth,e.val.borderTopStyle,e.val.borderTopColor],[e.val.borderRightWidth,e.val.borderRightStyle,e.val.borderRightColor],[e.val.borderBottomWidth,e.val.borderBottomStyle,e.val.borderBottomColor],[e.val.borderLeftWidth,e.val.borderLeftStyle,e.val.borderLeftColor]]);var i=v(React.useState(c),2),l=i[0],s=i[1],p=React.createElement("div",{className:"cw-tabs"},[0,1,2,3,4].map((function(e){return React.createElement("div",{key:e,className:"tab tab-".concat(e," ").concat(0===e?"active":""),onClick:function(t){return function(e,t){e.currentTarget.parentNode.childNodes.forEach((function(e){return e.classList.remove("active")})),e.currentTarget.classList.add("active"),s((function(e){return u(u({},e),{},{tab:t})}))}(t,e)}},React.createElement(r,{tab:e,subType:"border"}))}))),d=l.tab,h=l.values,m=React.createElement("div",{className:"cw-tab-wrap"},React.createElement(n,{val:h[d][0],tab:0,hidden:!1,handleChange:function(t,n){s((function(e){return e.values[d][0]=n,e})),e.onChange(h,d)}}),React.createElement(o,{val:h[d][2],onChange:function(t){s((function(e){return e.values[d][2]=t,e})),e.onChange(h,d)},label:"Color"}),React.createElement(a,{options:[{name:"x",value:"none"},{name:"",value:"solid"},{name:"",value:"dotted"},{name:"",value:"dashed"}],val:h[d][1],onChange:function(t){s((function(e){return e.values[d][1]=t,e})),e.onChange(h,d)},printOptions:"always",horizontal:"true",label:"Style"}));return React.createElement("div",{className:"cw-control-content cw-border"},e.label&&React.createElement("span",{className:"cw-control-title"},e.label),p,m)}},window.cw.addStyle=function(){var e;(e=cw.StylesStore).addStyle.apply(e,arguments)},window.cw.addStyleNow=function(){var e;(e=cw.StylesStore).addStyleNow.apply(e,arguments)};var Ue=":root{--accent: #23b887;--accentLight: hsl(160, 68%, 97%);--accentDark: hsl(160, 68%, 30%);--accentSec: #e8ba7d;--border: #c4c8ca;--boxShadow: 0 10px 15px rgba(0, 0, 0, 0.1), 0 0 1px 1px rgba(0, 0, 0, 0.02)}#color-wings{margin-left:-12px;margin-right:-12px}[style=\"display: none;\"]+#color-wings{margin-top:-15px}.cw-row{display:flex}.cw-row .col{flex:1}.cw-row .col-1{flex:0 0 8.33333%}.cw-row .col-2{flex:0 0 16.66667%}.cw-row .col-3{flex:0 0 25%}.cw-row .col-4{flex:0 0 33.33333%}.cw-row .col-5{flex:0 0 41.66667%}.cw-row .col-6{flex:0 0 50%}.cw-row .col-7{flex:0 0 58.33333%}.cw-row .col-8{flex:0 0 66.66667%}.cw-row .col-9{flex:0 0 75%}.cw-row .col-10{flex:0 0 83.33333%}.cw-row .col-11{flex:0 0 91.66667%}.cw-row .col-12{flex:0 0 100%}.cw-panel-heading{padding:10px;align-items:center;position:relative}.cw-panel-heading .popup-content{width:100%;box-sizing:border-box;position:absolute;z-index:5;background:#fff;right:0;border:1px solid #ccc;box-shadow:var(--boxShadow)}.cw-panel-heading .popup-overlay{position:fixed;top:0;bottom:0;left:0;right:0}.cw-panel-heading .popup-arrow{width:14px;height:14px;background:white;position:absolute;right:100px;top:-6px;transform:rotate(135deg);z-index:-1;box-shadow:rgba(0,0,0,0.3) -1px 1px 1px}.cw-panel-heading .cw-current-page{max-height:30px;white-space:pre-wrap;overflow:auto}.cw-panel-heading .page-selector .button{border-color:transparent;background:none;padding:10px 20px}.cw-panel-heading .page-selector .button:hover{background:var(--accentLight)}.cw-panel-heading .page-selector .button:focus{border-color:#0071a1}.cw-panel-heading .cw-pause{margin:0 0 0 auto;display:block;line-height:1}.button.button-block{width:100%;text-align:center}.cw-tabs{display:flex;margin:0 -1px;position:relative;z-index:2}.cw-tabs .tab{flex:1;padding:8px;background:#ddd;border:1px solid transparent;border-bottom-color:#ccc;cursor:pointer;text-align:center}.cw-tabs .tab.active{border:1px solid #ccc;border-bottom-color:#fff;background:#fff;cursor:auto}.cw-main-tabs{display:inline-flex;width:60%}.cw-main-tabs .main-tab{color:#0071a1;outline:none}.cw-main-tabs .main-tab:focus,.cw-main-tabs .main-tab:hover{border-top:2px solid #0171a1;padding-top:7px}.cw-main-tabs .main-tab:focus:not(.active),.cw-main-tabs .main-tab:hover:not(.active){background:#f1f1f1}.cw-extra-tabs{display:inline-flex;width:calc(40% + 2px);height:36px;vertical-align:top;background:#ddd;border-top:1px solid transparent;border-bottom:1px solid #ccc;align-items:center;justify-content:flex-end}.cw-extra-tabs .button{border:none;height:100%;border-radius:0;background:none;line-height:1}.cw-extra-tabs .button:focus{box-shadow:none}.cw-extra-tabs .button:disabled,.cw-extra-tabs .button[disabled]{background:none !important}.cw-extra-tabs .button .dashicons{font-size:16px;line-height:20px}#cw-code-editor{width:100%}.cw-code-editor .CodeMirror{height:calc( 100vh - 254px);margin-bottom:-24px;overflow:hidden}.cw-settings-controls{padding:24px 12px}.customize-control .cw-link-wrap{background:#fff;padding:6px 10px;cursor:pointer;border-left:2px solid transparent;transition:all .15s ease-in-out, border-color .15s ease-in-out, background .15s ease-in-out;box-shadow:0 0 0 1px #ddd;position:relative}.customize-control .cw-link-wrap:hover{color:#0073aa;background:#f3f3f5;border-left:2px solid #0073aa}.customize-control .cw-link-wrap:hover:after{color:#0073aa}.customize-control .cw-link-wrap:after{content:'\\f345';font:normal 16px/1 dashicons;color:#a0a5aa;position:absolute;right:6px;top:calc(50% - 8px)}.customize-control .cw-link-text{position:absolute;right:26px;top:calc(50% - 9px);font-size:11px}.cw-theming-controls{padding:12px;min-height:calc( 100vh - 327px);margin-bottom:-24px;display:flex;flex-direction:column;align-items:center;justify-content:center}.cw-theming-controls .cw-control{margin-bottom:18px}.cw-theming-controls .cw-control-title{font-size:13px}.cw-theming-controls .cw-color{display:flex;align-items:center;flex-wrap:wrap}.cw-theming-controls .cw-color .cw-control-title{width:50%}.cw-theming-controls .cw-color-info{width:50%}.cw-theming-controls .cw-color-wrap{min-width:1px}.cw-theming-controls .cw-select{display:flex;margin-top:20px}.cw-theming-controls .cw-select .cw-control-title{width:66.667%}.cw-theming-controls .cw-select .select-search{width:33.333%}\n";function Qe(){var e=v(React.useState({show:!1,style:{content:{top:0},arrow:{right:0}}}),2),t=e[0],n=e[1],r=O(q),o=r.previewObject,a=r.mounted,c=[{type:"global",name:"global",title:"All Pages"}];"pages"in o&&(o.pages.is_home&&c.push({type:"template",name:"is_home",title:"Blog Post List Page"}),o.pages.is_front_page&&c.push({type:"template",name:"is_front_page",title:"Front Page"}),o.pages.is_single&&(c.push({type:"template",name:"is_single",title:"All Single Posts"}),c.push({type:"single",name:o.page.id,title:"Post: ".concat(o.page.title)})),o.pages.is_page&&(c.push({type:"template",name:"is_page",title:"All Single Pages"}),c.push({type:"single",name:o.page.id,title:"Page: ".concat(o.page.title)})));var i=q.get().currentPage,l="All Pages";for(var s in c)if(c.hasOwnProperty(s)&&c[s].name.toString()===i.toString()){l=c[s].title;break}return React.createElement("div",{className:"cw-panel-heading cw-row"},React.createElement("div",{className:"col-5"},React.createElement("span",null,"Editing Styles for: ")),React.createElement("div",{className:"col-5"},React.createElement("button",{className:"button button-block cw-current-page",onClick:function(e){var t=e.target.getBoundingClientRect(),r=t.bottom-e.target.offsetParent.getBoundingClientRect().top;n((function(e){return{show:!e.show,style:{content:{top:"".concat(r+10,"px")},arrow:{left:"".concat(t.left+t.width/2-7,"px")}}}}))},type:"button"},l),React.createElement("div",{className:"popup-overlay ".concat(t.show?"":"hidden"),onClick:function(){return n((function(e){return u(u({},e),{},{show:!1})}))}}),React.createElement("div",{className:"page-selector popup-content ".concat(t.show?"":"hidden"),style:t.style.content},React.createElement("div",{className:"popup-arrow",style:t.style.arrow}),c.map((function(e){return React.createElement("button",{key:e.name,onClick:function(t){return function(e,t){q.changePage(t.name,t.type),n((function(e){return u(u({},e),{},{show:!1})}))}(0,e)},className:"button button-block",type:"button"},e.title)})))),React.createElement("div",{className:"col-2"},React.createElement("button",{className:"button cw-pause",onClick:function(){oe()},type:"button"},React.createElement("span",{className:"dashicons dashicons-controls-".concat(a?"pause":"play")}))))}function Ze(){var e=wp.components.Tooltip,t=O(F).history;return React.createElement("div",{className:"cw-extra-tabs"},React.createElement(e,{text:"Undo",position:"top left"},React.createElement("button",{type:"button",className:"button",onClick:pe,disabled:0===t.past.length},React.createElement("span",{className:"dashicons dashicons-undo"}))),React.createElement(e,{text:"Redo",position:"top left"},React.createElement("button",{type:"button",className:"button",onClick:de,disabled:0===t.future.length},React.createElement("span",{className:"dashicons dashicons-redo"}))))}function Ge(e){var t=e.selectors,n=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];!0===t?cw.Evt.emit("de-highlight-elements"):cw.Evt.emit("highlight-elements",e)},r=React.createElement("span",{className:"dashicons dashicons-arrow-right-alt"});return React.createElement("div",{id:"cw-quick-select"},React.createElement("div",{className:"cw-panel-title"},React.createElement("span",null,"No Element Selected.")),React.createElement("div",{className:"cw-qs-content"},React.createElement("div",{className:"cw-qs-title"},"Click on any element to edit the styles ",r,React.createElement("br",null),"OR",React.createElement("br",null),"Quick select an Element below"),React.createElement("ul",{className:"cw-qs-btns"},t.map((function(e){return React.createElement("li",{key:e.name,className:"cw-qs-btn",onClick:function(){return function(e){cw.Evt.emit("select-element",e)}(e.sel)},onMouseEnter:function(){return n(e.sel,!1)},onMouseLeave:n},e.name)})))))}function Je(){var e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"open";"add"===t?e.classList.add(n):e.classList.remove(n)},t=v(React.useState(["hover","focus","active","visited"]),2),n=t[0],r=t[1],o=function(t){var o=t.target.innerText;q.get().currentPseudo===o?(q.togglePseudo(""),e(t.target.parentNode.parentNode,"","active")):(q.togglePseudo(o),n.indexOf(o)>0&&(n.splice(n.indexOf(o),1),n.unshift(o),r(n)),e(t.target.parentNode.parentNode),e(t.target.parentNode.parentNode,"add","active")),t.target.parentNode.childNodes.forEach((function(e){return e.classList.remove("selected")}))},a=""===q.get().currentPseudo?"":"active";return React.createElement("div",{className:"cw-pseudo ".concat(a),onMouseEnter:function(t){return e(t.currentTarget,"add")},onMouseLeave:function(t){return e(t.currentTarget)}},React.createElement("span",{className:"cw-pseudo-icon dashicons dashicons-menu-alt2"}),React.createElement("div",{className:"cw-pseudo-content"},n.map((function(e,t){return React.createElement("div",{key:t,className:"cw-pseudo-item",onClick:o},e)}))))}function Xe(){var e=O(q),t=e.currentSelector,n=e.selectorClass,r=v(React.useState(t),2),o=r[0],a=r[1];React.useEffect((function(){return a(t)}),[t]);return React.createElement("div",{className:"cw-panel-title"},React.createElement("div",{className:"title-inner"},React.createElement("span",{className:"title-desc"},"You're editing:"),React.createElement("input",{type:"text",className:"selector ".concat(n),value:o,onChange:function(e){a(e.target.value),cw.Evt.emit("update-selector",e.target.value)}})),React.createElement(Je,null))}function Ye(e){var t=e.control,n=O(q).currentSelector,r=I.get().currentMedia.query,o=F.get().styles;if(r in o&&n in o[r]&&t.property in o[r][n]&&"Length"===t.Component.name){var a=o.all[n][t.property];/\d/.test(a)&&(t.params.val=o.all[n][t.property])}return React.createElement(t.Component,t.params)}function et(){var e=cw.components,t=e.Length,n=e.Color,r=e.Media,o=e.Select,a=e.Shadow,c=e.Border,i=cwControlObject.fonts,l=O(q),s=l.currentTarget,p=l.currentSelector,d=l.openSection,h=l.currentStyles,m=l.quickSelectors,f=v(React.useState({styleOptions:["normal","italic"],weightOptions:["100","200","300","400","500","600","700","800","900"]}),2),g=f[0],w=f[1],y=v(React.useState(!1),2),x=y[0],k=y[1];""!==p?setTimeout((function(){return k(!0)}),0):setTimeout((function(){return k(!1)}),0),React.useEffect((function(){w((function(e){return u(u({},e),{},{family:h.fontFamily,style:h.fontStyle,weight:h.fontWeight})}))}),[h]);var E=function(e){var t={family:e=e.replace(/^"(.+(?="$))"$/,"$1"),source:"system"};if(i.allFonts.system.hasOwnProperty(e))t.variants=i.defaults.variants,t.category=i.allFonts.system[e].category;else if(i.allFonts.google.hasOwnProperty(e)){var n=i.allFonts.google[e][0],r=i.allFonts.google[e][1];t.source="google",t.category=r,t.variants={},n[0].length>0&&(t.variants.normal=n[0]),n[1].length>0&&(t.variants.italic=n[1])}else e.includes("system-ui")&&(t.variants=i.defaults.variants,t.category="sans-serif");return"variants"in t||(t.variants={normal:["300"],italic:["300"]}),"category"in t||(t.category=e.includes("serif")?"serif":"sans-serif"),t},R=function(e,t){return t.reduce((function(t,n){return Math.abs(n-e)0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];e=(e=e||g.family).replace(/^"(.+(?="$))"$/,"$1");var r=E(e);t||(t=g.style,r.variants.hasOwnProperty(t)||(t=Object.keys(r.variants)[0])),n||(n=g.weight,-1===r.variants[t].indexOf(n)&&(n=R(n,r.variants[t]))),w({styleOptions:Object.keys(r.variants),weightOptions:r.variants[t],family:e,style:t,weight:n.toString()});var o={family:e,style:t,weight:n,source:r.source,category:r.category};q.addFont(o),F.addFont(),g.family!==e&&F.addStyleNow(p,"font-family",e),g.style!==t&&F.addStyleNow(p,"font-style",t),g.weight!==n&&F.addStyleNow(p,"font-weight",n)},S=!1,_=!1,N=h.backgroundImage;if(N){var j=b(N.matchAll(/(url)(?:\(['"]?)(.*?)(?:['"]?\))/g));j.length&&j[0].length>2&&(S="url('".concat(j[0][2],"')"));var z=b(N.matchAll(/linear-gradient\([^(]*(\([^)]*\)[^(]*)*[^)]*\)/g));z.length&&z[0].length>1&&(_=z[0][0]);var P=b(N.matchAll(/radial-gradient\([^(]*(\([^)]*\)[^(]*)*[^)]*\)/g));P.length&&P[0].length>1&&(_=P[0][0])}var T,L=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n="";e.includes("url(")||"none"===e&&"image"===t?(n="".concat(e).concat(!1!==_?", "+_:""),F.addStyleNow(p,"background-image",n)):e.includes("gradient(")||"none"===e&&"gradient"===t?(n="".concat(!1!==S?S+", ":"").concat(e),F.addStyleNow(p,"background-image",n)):F.addStyleNow(p,"background-color",e)},M=[{id:"padding",title:"Padding",controls:[{property:"padding",Component:t,params:{subType:"padding",val:h.padding}}]},{id:"margin",title:"Margin",controls:[{property:"margin",Component:t,params:{subType:"margin",val:h.margin}}]},{id:"background",title:"Background",controls:[{property:"background",Component:n,params:{label:"Background Color",val:[h.backgroundColor,_],type:"background",onChange:L}},{property:"background-image",Component:r,params:{label:"Background Image",val:h.backgroundImage,onChange:L}},{property:"background-size",Component:o,params:{label:"Background Size",name:"background-size",options:[{name:"Auto",value:"auto"},{name:"Cover",value:"cover"},{name:"Contain",value:"contain"}],val:(T=h.backgroundSize,"auto, auto"===T?T="auto":"cover, cover"===T?T="cover":"contain, contain"===T&&(T="contain"),T)},cls:"col-6"},{property:"background-repeat",Component:o,params:{label:"Tile",name:"background-repeat",options:[{name:"Repeat",value:"repeat",content:function(){return React.createElement("svg",{viewBox:"0 0 16 16"},React.createElement("path",{fill:"currentColor",d:"M1 1h4v4H1zm5 0h4v4H6zm5 0h4v4h-4zM1 6h4v4H1zm5 0h4v4H6zm5 0h4v4h-4zM1 11h4v4H1zm5 0h4v4H6zm5 0h4v4h-4z"}))}},{name:"Repeat X",value:"repeat-x",content:function(){return React.createElement("svg",{viewBox:"0 0 16 16"},React.createElement("path",{fill:"currentColor",d:"M1 6h4v4H1zm5 0h4v4H6zm5 0h4v4h-4z"}))}},{name:"Repeat Y",value:"repeat-y",content:function(){return React.createElement("svg",{viewBox:"0 0 16 16"},React.createElement("path",{fill:"currentColor",d:"M6 1h4v4H6zm0 5h4v4H6zm0 5h4v4H6z"}))}},{name:"No Repeat",value:"no-repeat",clsName:"dashicons dashicons-no-alt"}],val:h.backgroundRepeat,printOptions:"always",horizontal:!0},cls:"col-6"}]},{id:"text",title:"Text",controls:[{property:"font-size",Component:t,params:{label:"Font Size",subType:"size",val:h.fontSize}},{property:"line-height",Component:t,params:{label:"Line Height",subType:"size",val:h.lineHeight}},{property:"font-family",Component:o,params:{label:"Font Family",name:"font-family",options:function(){var e=[];for(var t in i.allFonts){var n=t;"system"===t?n="System Fonts":"google"===t&&(n="Google Fonts");var r=[];for(var o in i.allFonts[t]){var a="Default"===o?"Default System Font":o;r.push({name:a,value:o})}e.push({type:"group",name:n,items:r})}return e}(),val:g.family,search:!0,onChange:function(e){return C(e,!1,!1)}}},{property:"color",Component:n,params:{label:"Font Color",val:h.color},cls:"col-8"},{property:"font-weight",Component:o,params:{label:"Font Weight",name:"font-weight",options:g.weightOptions,val:g.weight,onChange:function(e){return C(!1,!1,e)}},cls:"col-4"},{property:"font-style",Component:o,params:{label:"Font Style",name:"font-style",options:g.styleOptions,val:g.style,onChange:function(e){return C(!1,e,!1)},printOptions:"always",horizontal:!0},cls:"col-5"},{property:"text-align",Component:o,params:{label:"Text Align",name:"text-align",options:[{name:"Left",value:"left",clsName:"dashicons dashicons-editor-alignleft"},{name:"Right",value:"right",clsName:"dashicons dashicons-editor-alignright"},{name:"Center",value:"center",clsName:"dashicons dashicons-editor-aligncenter"},{name:"Justify",value:"justify",clsName:"dashicons dashicons-editor-justify"}],val:h.textAlign,printOptions:"always",horizontal:!0},cls:"col-7"},{property:"text-decoration",Component:o,params:{label:"Text Decoration",name:"text-decoration",options:[{name:"A",value:"none"},{name:"O",value:"overline"},{name:"U",value:"underline"},{name:"S",value:"line-through"}],val:h.textDecoration,printOptions:"always",horizontal:!0},cls:"col-6"},{property:"text-transform",Component:o,params:{label:"Text Transform",name:"text-transform",options:[{name:"x",value:"none"},{name:"Aa",value:"capitalize"},{name:"aa",value:"lowercase"},{name:"AA",value:"uppercase"}],val:h.textTransform,printOptions:"always",horizontal:!0},cls:"col-6"},{property:"letter-spacing",Component:t,params:{label:"Letter Spacing",subType:"size",val:"normal"===h.letterSpacing?"0px":h.letterSpacing}},{property:"word-spacing",Component:t,params:{label:"Word Spacing",subType:"size",val:h.wordSpacing}},{property:"text-indent",Component:t,params:{label:"Text Indent",subType:"size",val:h.textIndent}}]},{id:"border",title:"Border",controls:[{property:"border-radius",Component:t,params:{label:"Border Radius",subType:"radius",val:h.borderRadius}},{property:"border",Component:c,params:{label:"Border Width",val:h,onChange:function(e,t){e.every((function(e,t,n){return e===n[0]}))||0===t?F.addStyleNow(p,"border","".concat(e[0][0]," ").concat(e[0][1]," ").concat(e[0][2])):(F.addStyleNow(p,"border-top","".concat(e[1][0]," ").concat(e[1][1]," ").concat(e[1][2])),F.addStyleNow(p,"border-right","".concat(e[2][0]," ").concat(e[2][1]," ").concat(e[2][2])),F.addStyleNow(p,"border-bottom","".concat(e[3][0]," ").concat(e[3][1]," ").concat(e[3][2])),F.addStyleNow(p,"border-left","".concat(e[4][0]," ").concat(e[4][1]," ").concat(e[4][2])))}}}]},{id:"size",title:"Size",controls:[{property:"width",Component:t,params:{label:"Width",subType:"size",val:h.width}},{property:"height",Component:t,params:{label:"Height",subType:"size",val:h.height}},{property:"min-width",Component:t,params:{label:"Min Width",subType:"size",val:h.minWidth}},{property:"min-height",Component:t,params:{label:"Min Height",subType:"size",val:h.minHeight}},{property:"max-width",Component:t,params:{label:"Max Width",subType:"size",val:h.maxWidth}},{property:"max-height",Component:t,params:{label:"Max Height",subType:"size",val:h.maxHeight}}]},{id:"shadow",title:"Shadow",controls:[{property:"box-shadow",Component:a,params:{val:h.boxShadow}}]},{id:"position",title:"Position",controls:[{property:"position",Component:o,params:{label:"Position",name:"position",options:[{name:"Relative",value:"relative"},{name:"Absolute",value:"absolute"},{name:"Static",value:"static"},{name:"Fixed",value:"fixed"},{name:"Sticky",value:"sticky"}],val:h.position,printOptions:"always",horizontal:!0}},{property:"top",Component:t,params:{label:"Top",subType:"size",val:h.top}},{property:"right",Component:t,params:{label:"Right",subType:"size",val:h.right}},{property:"bottom",Component:t,params:{label:"Bottom",subType:"size",val:h.bottom}},{property:"left",Component:t,params:{label:"Left",subType:"size",val:h.left}}]},{id:"others",title:"Others",controls:[{property:"display",Component:o,params:{label:"Display",name:"display",options:[{name:"block",value:"block"},{name:"none",value:"none"},{name:"flex",value:"flex"},{name:"grid",value:"grid"},{name:"inline",value:"inline"},{name:"inline-block",value:"inline-block"},{name:"inline-flex",value:"inline-flex"},{name:"inline-grid",value:"inline-grid"},{name:"contents",value:"contents"},{name:"inline-table",value:"inline-table"},{name:"list-item",value:"list-item"},{name:"run-in",value:"run-in"},{name:"table",value:"table"},{name:"table-caption",value:"table-caption"},{name:"table-column-group",value:"table-column-group"},{name:"table-header-group",value:"table-header-group"},{name:"table-footer-group",value:"table-footer-group"},{name:"table-row-group",value:"table-row-group"},{name:"table-cell",value:"table-cell"},{name:"table-column",value:"table-column"},{name:"table-row",value:"table-row"},{name:"initial",value:"initial"},{name:"inherit",value:"inherit"}],val:h.display},cls:"col-6"},{property:"visibility",Component:o,params:{label:"Visibility",name:"visibility",options:[{name:"Visible",value:"visible",clsName:"dashicons dashicons-visibility"},{name:"Hidden",value:"hidden",clsName:"dashicons dashicons-hidden"}],val:h.visibility,printOptions:"always",horizontal:!0},cls:"col-6"},{property:"overflow",Component:o,params:{label:"Overflow",name:"overflow",options:[{name:"Visible",value:"visible",clsName:"dashicons dashicons-visibility"},{name:"Hidden",value:"hidden",clsName:"dashicons dashicons-hidden"},{name:"Scroll",value:"scroll",clsName:"dashicons dashicons-menu-alt"},{name:"Auto",value:"auto",clsName:"dashicons dashicons-admin-generic"}],val:h.overflow,printOptions:"always",horizontal:!0},cls:"col-7"},{property:"opacity",Component:t,params:{label:"Opacity",subType:"unitLess",val:h.opacity}}]}];void 0!==s.ownerSVGElement&&M.push({id:"svg",title:"SVG Styles",controls:[{property:"fill",Component:n,params:{label:"Fill Color",val:h.fill}},{property:"fill-opacity",Component:t,params:{label:"Fill Opacity",subType:"unitLess",val:h.fillOpacity}},{property:"stroke",Component:n,params:{label:"Stroke Color",val:h.stroke}},{property:"stroke-width",Component:t,params:{label:"Stroke Width",subType:"size",val:h.strokeWidth}},{property:"stroke-opacity",Component:t,params:{label:"Stroke Opacity",subType:"unitLess",val:h.strokeOpacity}}]}),s.tagName&&["ul","ol","li"].includes(s.tagName.toLowerCase())&&M.push({id:"list",title:"List Styles",controls:[{property:"list-style-type",Component:o,params:{label:"Type",name:"list-type",options:[{name:"disc",value:"disc"},{name:"circle",value:"circle"},{name:"square",value:"square"},{name:"decimal",value:"decimal"},{name:"none",value:"none"},{name:"initial",value:"initial"},{name:"inherit",value:"inherit"},{name:"unset",value:"unset"}],val:h.listStyleType},cls:"col-6"},{property:"list-style-position",Component:o,params:{label:"Position",name:"list-position",options:[{name:"In",value:"inside"},{name:"Out",value:"outside"}],val:h.listStylePosition,printOptions:"always",horizontal:!0},cls:"col-6"}]}),M=cw.hooks.applyFilters("cw_panel_sections",M,h);var A=cw.hooks.applyFilters("cw_after_sections",React.createElement("li",{className:"cw-panel-section "},React.createElement("a",{href:cwControlObject.extUrl,className:"cw-section-title cw-link",target:"_blank"},cwControlObject.extText)));return M.forEach((function(e){e.controls.forEach((function(e){"onChange"in e.params||(e.params.onChange=function(t){F.addStyle(p,e.property,t)})}))})),React.createElement("div",{id:"cw-editor-wrap"},React.createElement("div",{id:"cw-editor-panel",className:"cw-panel"},""!==p?React.createElement(React.Fragment,null,React.createElement(Xe,null),React.createElement("div",{className:"cw-panel-main"},React.createElement("ul",{className:"cw-panel-sections"},M.map((function(e){return React.createElement("li",{key:e.id,className:"cw-panel-section ".concat(d===e.id?"open":"")},React.createElement("button",{type:"button",className:"cw-section-title",onClick:function(){return q.toggleSection(e.id)}},e.title),React.createElement("div",{className:"cw-section-content"},e.controls.map((function(t){return d===e.id?React.createElement("div",{key:t.property,className:"cw-control ".concat(t.property," ").concat(t.cls?t.cls:"")},x&&React.createElement(Ye,{control:t})):null}))))})),A))):React.createElement(Ge,{selectors:m})),React.createElement("style",{type:"text/css"},'#cw-editor-wrap ul,#cw-editor-wrap li{list-style:none;margin:0;padding:0}#cw-editor-wrap .cw-panel{background:#eee;font-size:13px;color:#444}.cw-panel-title{background:#fff;border-bottom:1px solid #ddd;font-size:13px;padding:16px;color:#444;line-height:16px;margin:0}.cw-panel-title *{box-sizing:border-box}.cw-panel-title .title-inner{display:inline-flex;width:calc(100% - 54px)}.cw-panel-title .title-desc{padding:3px 0;width:90px}.cw-panel-title input[type="text"].selector{background:var(--accentLight);border:1px solid var(--accent);padding:3px 5px;width:calc(100% - 90px);border-radius:0;min-height:24px;line-height:1;font-size:13px;background-image:none !important}.cw-panel-title input[type="text"].selector:focus{box-shadow:none;border-color:var(--accentDark)}.cw-panel-title input[type="text"].selector.invalid,.cw-panel-title input[type="text"].selector.invalid:focus{border-color:#c78100}.cw-panel-main{height:calc(100% - 41px);overflow-y:auto}.cw-section-title{border:none;border-left:3px solid transparent;border-bottom:1px solid #ddd;background:#fff;font-size:14px;padding:12px 16px;font-weight:600;color:#444;line-height:16px;margin:0;cursor:pointer;width:100%;text-align:left;transition:.15s all ease-in-out}.cw-section-title:hover{color:#0073aa;background:#f3f3f5;border-left-color:#0073aa}.cw-section-title:focus{outline:none;color:#0073aa;border-left-color:#0073aa}.cw-section-content{display:flex;flex-wrap:wrap;padding:0 12px;max-height:0;opacity:0;overflow:auto;transition:max-height .2s ease, opacity .2s ease}.cw-panel .open .cw-section-content{opacity:1;max-height:1000px;border-bottom:1px solid #ddd}.cw-panel .cw-link{display:block;text-decoration:none;box-sizing:border-box;box-shadow:0 0 0 1px var(--accent);margin:1px 0;color:#0073aa}.cw-control{flex-shrink:0;width:100%;margin-bottom:12px;box-sizing:border-box}.cw-control.padding,.cw-control.margin{margin-bottom:0}.cw-control.col-4{width:33.333%}.cw-control.col-5{width:41.666%}.cw-control.col-6{width:50%}.cw-control.col-7{width:58.333%}.cw-control.col-8{width:66.666%}.cw-control .cw-tabs{margin:0 -12px -1px -13px}.cw-control .tab.active{border-bottom-color:#eee;background:#eee}.cw-control .tab-content{position:relative;padding:30px 0 15px}.cw-control .shorthand .tab-content{border-top:1px solid #ccc}.cw-control .single-length .tab-content{padding:20px 0 0}.cw-control .length-ips{position:relative}.cw-control .length-ips input[type="number"]{padding-right:30px;border-color:#c4c8ca}.cw-control .length-ips input[type="number"]:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.cw-control .length-ips.unit-less input[type="number"]{padding-right:0}.cw-control .length-unit{position:absolute;top:1px;right:0;width:30px;padding:0;border:none;min-height:28px;background:#f5f5f5;font-size:13px;text-align:center;text-align-last:center;border-radius:0 3px 3px 0}.cw-control .output{padding:5px;border-top:1px dotted #ddd;border-bottom:1px solid #ddd;font-size:11px;margin-top:-1px}.cw-control .reset{position:absolute;right:2px;bottom:34px;padding:4px 6px 2px;cursor:pointer;border-radius:2px;border:none;outline:none}.cw-control .reset:hover{background:#fff}.cw-control .reset:focus{background:#fff;box-shadow:0 0 0 1px var(--accent)}.cw-control .reset svg{max-height:12px}.cw-control .range-wrap{padding-right:5px;line-height:1.8;box-sizing:border-box}.cw-control input:focus{outline:none}.cw-control input[type="range"]{width:100%;background:var(--accent);-webkit-appearance:none;height:3px;border-radius:3px;margin:0;--range: calc(var(--max) - var(--min));--ratio: calc((var(--val) - var(--min))/var(--range));--sx: calc(.5*1.5em + var(--ratio)*(100% - 1.5em))}.cw-control input[type="range"]::-webkit-slider-runnable-track{width:100%;height:3px;background:#c4c8ca;border:none;border-radius:3px;box-sizing:border-box;background:-webkit-gradient(linear, left top, left bottom, from(var(--accent)), to(var(--accent))) 0/var(--sx) 100% no-repeat #c4c8ca;background:linear-gradient(var(--accent), var(--accent)) 0/var(--sx) 100% no-repeat #c4c8ca}.cw-control input[type="range"]::-webkit-slider-thumb{width:14px;height:14px;background:var(--accent);border-radius:14px;-webkit-appearance:none;margin-top:-5px;cursor:pointer;transition:transform .1s}.cw-control input[type="range"]::-webkit-slider-thumb:hover{transform:scale(1.2)}.cw-control input[type="range"]::-moz-range-thumb{width:14px;height:14px;background:var(--accent);border-radius:14px;-moz-appearance:none;margin-top:-5px;cursor:pointer;transition:transform .1s}.cw-control input[type="range"]::-moz-range-thumb:hover{transform:scale(1.2)}.cw-control svg{color:var(--accent);display:block;margin:auto}.cw-control.margin .tab svg{color:var(--accentSec)}.cw-control .cw-color .components-color-picker__body{padding:16px 4px 0}.cw-control .cw-color-info{display:flex;align-items:center}.cw-control .cw-color-info>*:not(:first-child){margin-left:10px}.cw-control .solid-selector,.cw-control .gradient-selector{width:30px;height:30px;border-radius:50%;border:none;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.3);z-index:20}.cw-control .solid-selector:focus,.cw-control .gradient-selector:focus{outline:none;box-shadow:0 0 0 1px var(--accent)}.cw-control .cw-color-value{background:#fff;padding:4px 10px;border-radius:2px;white-space:nowrap;max-width:calc(100% - 100px);overflow:auto}.cw-control .cw-color-wrap{position:relative;min-height:320px}.cw-control .cw-color-wrap.cw-wrap-gradient{min-height:220px}.cw-control .cw-color-overlay{position:fixed;top:0;bottom:0;left:0;z-index:10;background:transparent;width:18%;min-width:300px}.cw-control .cw-color-holder{position:absolute;top:6px;padding:12px;background:#fff;border:1px solid #ccc;box-shadow:0 2px 6px rgba(0,0,0,0.05);border-radius:2px;box-sizing:border-box;width:calc(18vw - 50px);min-width:276px;z-index:30}.cw-control .cw-wrap-gradient .cw-color-holder{width:100%}.cw-control .components-color-picker__inputs-wrapper{width:calc(100% - 42px);min-width:210px}.cw-control .components-color-picker__inputs-toggle{display:block;padding:0 5px;border:1px solid #999}.cw-control .components-color-picker__inputs-fields,.cw-control .components-base-control__field{margin:0}.cw-control .components-text-control__input[type="number"]{border-radius:0;border-right:none}.cw-control .cw-color input[type="number"]::-webkit-inner-spin-button{margin:-5px -2px -5px 0}.cw-control label.components-base-control__label{text-transform:capitalize;font-size:12px;margin:0 0 4px 4px;color:#666;line-height:1}.cw-control .cw-color-clear{position:absolute;right:12px;bottom:12px;height:30px;width:42px}.cw-control .cw-color-gradient .cw-link{height:180px;background-image:linear-gradient(135deg, #9cccfc 0%, #e6cffc 100%);display:flex;align-items:center;justify-content:center;color:#000;border-radius:2px;text-decoration:none;font-size:14px;text-align:center;line-height:22px}.cw-control.font-style,.cw-control.text-decoration,.cw-control.display,.cw-control.list-style-type,.cw-control.background-size{padding-right:12px}.cw-control.position .select-search__option{font-size:13px}.cw-control-title{display:block;padding:10px 0}.cw-control-title+.tab-content{margin-top:-25px}.border .cw-tab-wrap{display:flex;flex-wrap:wrap}.border .cw-tab-wrap>*{flex-shrink:0;width:100%;box-sizing:border-box}.border .cw-tab-wrap .cw-color{width:60%}.border .cw-tab-wrap .cw-select{width:40%}button.wp-color-result .color-alpha{height:28px !important}#cw-quick-select .cw-qs-title{padding:15px 0 10px;text-align:center;line-height:22px}#cw-quick-select .cw-qs-title .dashicons{background-color:#0171a1;background-image:linear-gradient(90deg, #01a0e4, #0171a1);background-size:100%;background-repeat:repeat;-webkit-background-clip:text;-webkit-text-fill-color:transparent;font-size:16px;height:16px;vertical-align:text-top}#cw-quick-select .cw-qs-title svg{vertical-align:text-top;padding-left:10px}#cw-quick-select ul.cw-qs-btns{padding:10px;display:flex;flex-flow:column wrap;align-content:space-between;height:300px}#cw-quick-select ul.cw-qs-btns::before,#cw-quick-select ul.cw-qs-btns::after{content:\'\';flex-basis:100%;width:0;order:2}#cw-quick-select .cw-qs-btn:nth-child(3n+1){order:1}#cw-quick-select .cw-qs-btn:nth-child(3n+2){order:2}#cw-quick-select .cw-qs-btn:nth-child(3n){order:3}#cw-quick-select li.cw-qs-btn{padding:6px 8px;background:#fff;color:#0071a1;border:1px solid var(--border);border-radius:3px;cursor:pointer;width:calc(33.3% - 5px);box-sizing:border-box;margin-bottom:10px;text-align:center}.cw-pseudo{display:inline-block;vertical-align:top;cursor:pointer;position:relative}.cw-pseudo-icon{display:inline-block;background:var(--accentLight);border:1px solid var(--accent);border-left:none;color:var(--accentDark);cursor:pointer;line-height:22px;height:24px}.cw-pseudo-content{border:1px solid var(--accent);box-sizing:border-box;display:none;position:absolute;top:0;left:-1px;background:white;z-index:3}.cw-pseudo-item{padding:3px 0 3px 7px;width:52px;display:none}.cw-pseudo-item:hover{color:var(--accentDark)}.cw-pseudo.active .cw-pseudo-content{display:inline-block}.cw-pseudo.active .cw-pseudo-item:first-child{display:inline-block;background:var(--accentLight)}.cw-pseudo.active .cw-pseudo-icon{display:none}.cw-pseudo.open .cw-pseudo-content{display:inline-block}.cw-pseudo.open .cw-pseudo-item{display:inline-block}.cw-pseudo.open .cw-pseudo-icon{display:none}.cw-media .thumbnail img{max-height:100px}[id*="__lpform_input"]{display:none !important}\n'," ",'.select-search{position:relative;box-sizing:border-box}.select-search *,.select-search *::after,.select-search *::before{box-sizing:inherit}.select-search__value{position:relative;z-index:1}.select-search__value::after{content:\'\';display:inline-block;position:absolute;top:calc(50% - 4px);right:16px;width:6px;height:6px}.select-search__input{display:block;height:30px;width:100%;padding:0 16px;background:#fff !important;border:1px solid #c4c8ca;border-radius:3px;outline:none;font-family:\'Noto Sans\', sans-serif;font-size:14px;text-align:left;text-overflow:ellipsis;line-height:36px;-webkit-appearance:none;margin:0}.select-search__input::-webkit-search-decoration,.select-search__input::-webkit-search-cancel-button,.select-search__input::-webkit-search-results-button,.select-search__input::-webkit-search-results-decoration{-webkit-appearance:none}.select-search__input:not([readonly]):focus{cursor:initial}.select-search__select{background:#fff;box-shadow:0 0.0625rem 0.125rem rgba(0,0,0,0.15)}.select-search__options{list-style:none}.select-search__row:not(:first-child){border-top:1px solid #f2f2f2}.select-search__option{display:block;height:36px;width:100%;padding:0 16px;background:#fff;border:none;outline:none;font-size:14px;text-align:left;cursor:pointer}.select-search--multiple .select-search__option{height:48px}.select-search__option.is-selected{background:var(--accent);color:#fff}.select-search__option.is-highlighted,.select-search__option:not(.is-selected):hover{background:var(--accentLight)}.select-search__option.is-highlighted.is-selected,.select-search__option.is-selected:hover{background:#21ab7d;color:#fff}.select-search__group-header{font-size:10px;text-transform:uppercase;background:#f7f7f7;padding:6px 16px;position:sticky;top:0;box-shadow:0 1px 3px rgba(0,0,0,0.2)}.select-search.is-disabled{opacity:0.5}.select-search.is-loading .select-search__value::after{background-image:url("data:image/svg+xml,%3Csvg xmlns=\'http://www.w3.org/2000/svg\' width=\'50\' height=\'50\' viewBox=\'0 0 50 50\'%3E%3Cpath fill=\'%232F2D37\' d=\'M25,5A20.14,20.14,0,0,1,45,22.88a2.51,2.51,0,0,0,2.49,2.26h0A2.52,2.52,0,0,0,50,22.33a25.14,25.14,0,0,0-50,0,2.52,2.52,0,0,0,2.5,2.81h0A2.51,2.51,0,0,0,5,22.88,20.14,20.14,0,0,1,25,5Z\'%3E%3CanimateTransform attributeName=\'transform\' type=\'rotate\' from=\'0 25 25\' to=\'360 25 25\' dur=\'0.6s\' repeatCount=\'indefinite\'/%3E%3C/path%3E%3C/svg%3E");background-size:11px}.select-search:not(.is-disabled) .select-search__input{cursor:pointer}.select-search--multiple{border-radius:3px;overflow:hidden}.select-search:not(.is-loading):not(.select-search--multiple) .select-search__value::after{transform:rotate(45deg);border-right:1px solid #555;border-bottom:1px solid #555;pointer-events:none}.select-search--multiple .select-search__input{cursor:initial}.select-search--multiple .select-search__input{border-radius:3px 3px 0 0}.select-search--multiple:not(.select-search--search) .select-search__input{cursor:default}.select-search:not(.select-search--multiple) .select-search__input:hover{border-color:var(--accent)}.select-search:not(.select-search--multiple) .select-search__select{z-index:2;margin-top:4px;right:0;left:0;border-radius:3px;overflow:auto;max-height:360px;box-shadow:var(--boxShadow)}.select-search--multiple .select-search__select{position:relative;overflow:auto;max-height:260px;border-top:1px solid #eee;border-radius:0 0 3px 3px}.select-search.horizontal .select-search__value{display:none}.select-search.horizontal .select-search__select{margin-top:0;top:0;box-shadow:none}.select-search.horizontal .select-search__options{display:flex}.select-search.horizontal .select-search__option{height:28px;position:relative;text-align:center;padding:0 10px}.select-search.horizontal .select-search__row{flex:1}.select-search.horizontal .select-search__row:not(:first-child){border-top:none}.select-search__row[data-value="italic"] .select-search__option{font-style:italic}.select-search__row[data-value="overline"] .select-search__option{text-decoration:overline}.select-search__row[data-value="underline"] .select-search__option{text-decoration:underline}.select-search__row[data-value="line-through"] .select-search__option{text-decoration:line-through}.cw-border .select-search__row .select-search__option:after{content:\'\';position:absolute;top:50%;left:15%;width:70%}.cw-border .select-search__row[data-value="solid"] .select-search__option:after{border-top:2px solid #000}.cw-border .select-search__row[data-value="dotted"] .select-search__option:after{border-top:2px dotted #000}.cw-border .select-search__row[data-value="dashed"] .select-search__option:after{border-top:2px dashed #000}.font-weight .select-search__row[data-value="100"] .select-search__option{font-weight:100}.font-weight .select-search__row[data-value="200"] .select-search__option{font-weight:200}.font-weight .select-search__row[data-value="300"] .select-search__option{font-weight:300}.font-weight .select-search__row[data-value="400"] .select-search__option{font-weight:400}.font-weight .select-search__row[data-value="500"] .select-search__option{font-weight:500}.font-weight .select-search__row[data-value="600"] .select-search__option{font-weight:600}.font-weight .select-search__row[data-value="700"] .select-search__option{font-weight:700}.font-weight .select-search__row[data-value="800"] .select-search__option{font-weight:800}.font-weight .select-search__row[data-value="900"] .select-search__option{font-weight:900}.select-search__option svg{width:16px;color:#fff}.select-search__option:not(.is-selected) .dashicons,.select-search__option:not(.is-selected) svg{color:#555}\n'))}var tt,nt=!1,rt=!1,ot=!1;function at(e,t){tt=t.origin,!0!==ot&&!0!==rt&&(rt=!0,F.addFromString(nt.getValue()),setTimeout((function(){rt=!1}),100))}function ct(){var e=O(F).allOutputs,t=O(q).currentPage,n="cw-code-editor";return x.emit("textarea-ready",{textAreaId:n}),React.createElement("textarea",{id:n,defaultValue:e[t]})}function it(){var e=O(q).previewObject.cssVars,t=I.get().currentMedia.query,n=function(e,t){var n=(new Option).style;return n[t]=e,n[t]===e||"color"===t&&n.color.startsWith("rgb")||"width"===t&&"0px"===n.width},r=v(React.useState([]),2),o=r[0],a=r[1],c=function r(){var o=F.get().styles,c=[];return Object.entries(e).forEach((function(e){var i=v(e,2),l=i[0],s=i[1],p={property:l,params:{}};n(s,"color")?(p.Component=cw.components.Color,p.params.onTab=function(e){!1===e&&setTimeout((function(){return a(r())}))}):n(s,"width")?p.Component=cw.components.Length:n(s,"transition-duration")?(p.Component=cw.components.Length,p.params=u(u({},p.params),{},{units:{s:{step:.1,min:0,max:10},ms:{step:10,min:0,max:2e3}}})):n(s,"font-weight")&&(p.Component=cw.components.Select,p.params=u(u({},p.params),{},{options:["100","200","300","400","500","600","700","800","900"]})),"Component"in p&&(t in o&&":root"in o[t]&&l in o[t][":root"]&&(s=o[t][":root"][l]),p.params=u(u({},p.params),{},{label:l,val:s}),p.params.onChange=function(e){F.addStyle(":root",l,e)},c.push(p))})),c};React.useEffect((function(){return a(c())}),[]);var i=wp.components.Spinner;return React.createElement(React.Fragment,null,React.createElement("div",{className:"cw-panel-title"},"Theming"),React.createElement("div",{className:"cw-theming-controls"},o.map((function(e){return React.createElement("div",{key:e.property,className:"cw-control"},React.createElement(e.Component,e.params))})),!o.length&&React.createElement("div",{className:"loading"},React.createElement(i,null))))}function lt(){var e={shortcuts:!0,history:100},t=localStorage.getItem("cwSettings");null!==t&&(e=JSON.parse(t));var n=v(React.useState(e),2),r=n[0],o=n[1];cw.Evt.emit("update-settings",r);var a=function(e){var t=u({},r);"shortcuts"===e.target.name?t.shortcuts=e.target.checked:"history"===e.target.name&&(t.history=e.target.value),o(t)};return P((function(){localStorage.setItem("cwSettings",JSON.stringify(r)),cw.Evt.emit("update-settings",r)}),[r]),React.createElement(React.Fragment,null,React.createElement("div",{className:"cw-panel-title"},"Settings"),React.createElement("ul",{className:"cw-settings-controls"},React.createElement("li",{className:"customize-control customize-control-checkbox"},React.createElement("input",{name:"shortcuts",id:"cw-setting-shortcuts",type:"checkbox",checked:r.shortcuts,onChange:a}),React.createElement("label",{htmlFor:"cw-setting-shortcuts"},"Enable Shortcuts"),React.createElement("span",{className:"description customize-control-description"},"Keyboard shortcuts for save, undo - redo etc.")),React.createElement("li",{className:"customize-control customize-control-input"},React.createElement("label",{htmlFor:"cw-setting-history"},"History max count"),React.createElement("span",{className:"description customize-control-description"},"Maximum number of items to keep in undo history."),React.createElement("input",{name:"history",id:"cw-setting-history",type:"number",value:r.history,onChange:a}))))}function st(){var e=wp.components.Tooltip,t=v(React.useState("editor"),2),n=t[0],r=t[1];return["editor","code"].includes(n)?cw.Evt.emit("toggle-preview","show"):cw.Evt.emit("toggle-preview","hide"),React.createElement("div",{className:"cw-panel"},React.createElement(Qe,null),React.createElement("div",{className:"panel-main"},React.createElement("div",{className:"cw-tabs cw-main-tabs"},React.createElement(e,{text:"Visual Editor",position:"top left"},React.createElement("button",{type:"button",className:"editor-tab tab main-tab"+("editor"===n?" active":""),onClick:function(){return r("editor")}},React.createElement("span",{className:"dashicons dashicons-admin-appearance"}))),React.createElement(e,{text:"Code Editor",position:"top left"},React.createElement("button",{type:"button",className:"code-tab tab main-tab"+("code"===n?" active":""),onClick:function(){return r("code")}},React.createElement("span",{className:"dashicons dashicons-editor-code"}))),React.createElement(e,{text:"Global variables",position:"top left"},React.createElement("button",{type:"button",className:"theming-tab tab main-tab"+("theming"===n?" active":""),onClick:function(){return r("theming")}},React.createElement("span",{className:"dashicons dashicons-image-filter"}))),React.createElement(e,{text:"Settings",position:"top left"},React.createElement("button",{type:"button",className:"settings-tab tab main-tab"+("settings"===n?" active":""),onClick:function(){return r("settings")}},React.createElement("span",{className:"dashicons dashicons-admin-generic"})))),React.createElement(Ze,null),React.createElement("div",{className:"tab-content cw-editor"+("editor"!==n?" hidden":"")},React.createElement(et,null)),React.createElement("div",{className:"tab-content cw-code-editor"+("code"!==n?" hidden":"")},React.createElement(ct,null)),"theming"===n&&React.createElement("div",{className:"tab-content cw-theming"},React.createElement(it,null)),"settings"===n&&React.createElement("div",{className:"tab-content cw-settings"},React.createElement(lt,null))))}function ut(){var e=cw.hooks.applyFilters("cw_styles",Ue);return React.createElement("div",{id:"cw-canvas"},React.createElement("style",{type:"text/css"},Ue),React.createElement(st,null),React.createElement("style",{type:"text/css"},e))}F.subscribe((function(){!1!==nt&&(ot=!0,!0!==rt&&nt.getDoc().setValue(F.get().allOutputs[q.get().currentPage]),"setValue"===tt&&nt.autoFormatRange({line:0,ch:0},{line:nt.lineCount()}),setTimeout((function(){ot=!1}),100))})),x.on("textarea-ready",(function(e){if(!1===nt){var t={indentUnit:2,indentWithTabs:!0,inputStyle:"contenteditable",lineNumbers:!0,autoRefresh:!0,lineWrapping:!0,styleActiveLine:!0,continueComments:!0,extraKeys:{"Ctrl-Space":"autocomplete","Ctrl-/":"toggleComment","Cmd-/":"toggleComment","Alt-F":"findPersistent","Ctrl-F":"findPersistent","Cmd-F":"findPersistent"},direction:"ltr",gutters:[],mode:"text/css",lint:!1,autoCloseBrackets:!0,autoCloseTags:!0,matchTags:{bothTags:!0},tabSize:2,matchBrackets:!0,jshint:{}};(0,v(function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,r=function(e){t=e},o=function(){},a=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:1e4)/n,c=setInterval((function(){a--,("function"==typeof e&&!0===e()||!0===e&&"function"==typeof t)&&(t(),clearInterval(c)),a<=0&&clearInterval(c)}),n);return[r,o]}(!("undefined"==typeof wp||!wp.hasOwnProperty("CodeMirror"))),1)[0])((function(){(nt=wp.CodeMirror.fromTextArea(document.getElementById(e.textAreaId),t)).on("change",at),nt.showHint&&nt.on("keyup",(function(e,t){var n,r,o,a,c=/^[a-zA-Z]$/.test(t.key);nt.state.completionActive&&c||"string"!==(a=nt.getTokenAt(nt.getCursor())).type&&"comment"!==a.type&&(o=wp.CodeMirror.innerMode(nt.getMode(),a.state).mode.name,r=nt.doc.getLine(nt.doc.getCursor().line).substr(0,nt.doc.getCursor().ch),"css"===o&&(n=c||":"===t.key||" "===t.key&&/:\s+$/.test(r)),n&&nt.showHint({completeSingle:!1}))}))}))}})),wp.customize.controlConstructor["color-wings"]=wp.customize.Control.extend({ready:function(){var e=this;cw.Evt.emit("colorwings-will-mount",e),ReactDOM.render(React.createElement(ut,null),document.getElementById("color-wings")),wp.customize.section("extra_styles",(function(e){e.expanded.bind((function(e){oe(!!e)}))})),wp.customize.state("previewedDevice").bind(Y),cw.Evt.on("update-control",(function(t){e.setting.set(t)}))}}),wp.customize.controlConstructor["cw-link"]=wp.customize.Control.extend({ready:function(){var e=this;this.container[0].addEventListener("click",(function(){cw.Evt.emit("focus-unlocked"),wp.customize.control("color_wings").focus(),cw.Evt.emit("select-element",e.params.options.selector)}))}})}(React); diff --git a/library/backend/assets/js/choices.js b/library/backend/assets/js/choices.js deleted file mode 100644 index 973183a..0000000 --- a/library/backend/assets/js/choices.js +++ /dev/null @@ -1,5559 +0,0 @@ -/*! choices.js v9.0.1 | © 2019 Josh Johnson | https://github.com/jshjohnson/Choices#readme */ -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); - else if(typeof exports === 'object') - exports["Choices"] = factory(); - else - root["Choices"] = factory(); -})(window, function() { - return /******/ (function(modules) { // webpackBootstrap - /******/ // The module cache - /******/ var installedModules = {}; - /******/ - /******/ // The require function - /******/ function __webpack_require__(moduleId) { - /******/ - /******/ // Check if module is in cache - /******/ if(installedModules[moduleId]) { - /******/ return installedModules[moduleId].exports; - /******/ } - /******/ // Create a new module (and put it into the cache) - /******/ var module = installedModules[moduleId] = { - /******/ i: moduleId, - /******/ l: false, - /******/ exports: {} - /******/ }; - /******/ - /******/ // Execute the module function - /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - /******/ - /******/ // Flag the module as loaded - /******/ module.l = true; - /******/ - /******/ // Return the exports of the module - /******/ return module.exports; - /******/ } - /******/ - /******/ - /******/ // expose the modules object (__webpack_modules__) - /******/ __webpack_require__.m = modules; - /******/ - /******/ // expose the module cache - /******/ __webpack_require__.c = installedModules; - /******/ - /******/ // define getter function for harmony exports - /******/ __webpack_require__.d = function(exports, name, getter) { - /******/ if(!__webpack_require__.o(exports, name)) { - /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); - /******/ } - /******/ }; - /******/ - /******/ // define __esModule on exports - /******/ __webpack_require__.r = function(exports) { - /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { - /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); - /******/ } - /******/ Object.defineProperty(exports, '__esModule', { value: true }); - /******/ }; - /******/ - /******/ // create a fake namespace object - /******/ // mode & 1: value is a module id, require it - /******/ // mode & 2: merge all properties of value into the ns - /******/ // mode & 4: return value when already ns object - /******/ // mode & 8|1: behave like require - /******/ __webpack_require__.t = function(value, mode) { - /******/ if(mode & 1) value = __webpack_require__(value); - /******/ if(mode & 8) return value; - /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; - /******/ var ns = Object.create(null); - /******/ __webpack_require__.r(ns); - /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); - /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); - /******/ return ns; - /******/ }; - /******/ - /******/ // getDefaultExport function for compatibility with non-harmony modules - /******/ __webpack_require__.n = function(module) { - /******/ var getter = module && module.__esModule ? - /******/ function getDefault() { return module['default']; } : - /******/ function getModuleExports() { return module; }; - /******/ __webpack_require__.d(getter, 'a', getter); - /******/ return getter; - /******/ }; - /******/ - /******/ // Object.prototype.hasOwnProperty.call - /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; - /******/ - /******/ // __webpack_public_path__ - /******/ __webpack_require__.p = "/public/assets/scripts/"; - /******/ - /******/ - /******/ // Load entry module and return exports - /******/ return __webpack_require__(__webpack_require__.s = 7); - /******/ }) - /************************************************************************/ - /******/ ([ - /* 0 */ - /***/ (function(module, exports, __webpack_require__) { - - "use strict"; - - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var utils_1 = __webpack_require__(1); - - exports.DEFAULT_CLASSNAMES = { - containerOuter: 'choices', - containerInner: 'choices__inner', - input: 'choices__input', - inputCloned: 'choices__input--cloned', - list: 'choices__list', - listItems: 'choices__list--multiple', - listSingle: 'choices__list--single', - listDropdown: 'choices__list--dropdown', - item: 'choices__item', - itemSelectable: 'choices__item--selectable', - itemDisabled: 'choices__item--disabled', - itemChoice: 'choices__item--choice', - placeholder: 'choices__placeholder', - group: 'choices__group', - groupHeading: 'choices__heading', - button: 'choices__button', - activeState: 'is-active', - focusState: 'is-focused', - openState: 'is-open', - disabledState: 'is-disabled', - highlightedState: 'is-highlighted', - selectedState: 'is-selected', - flippedState: 'is-flipped', - loadingState: 'is-loading', - noResults: 'has-no-results', - noChoices: 'has-no-choices' - }; - exports.DEFAULT_CONFIG = { - items: [], - choices: [], - silent: false, - renderChoiceLimit: -1, - maxItemCount: -1, - addItems: true, - addItemFilter: null, - removeItems: true, - removeItemButton: false, - editItems: false, - duplicateItemsAllowed: true, - delimiter: ',', - paste: true, - searchEnabled: true, - searchChoices: true, - searchFloor: 1, - searchResultLimit: 4, - searchFields: ['label', 'value'], - position: 'auto', - resetScrollPosition: true, - shouldSort: true, - shouldSortItems: false, - sorter: utils_1.sortByAlpha, - placeholder: true, - placeholderValue: null, - searchPlaceholderValue: null, - prependValue: null, - appendValue: null, - renderSelectedChoices: 'auto', - loadingText: 'Loading...', - noResultsText: 'No results found', - noChoicesText: 'No choices to choose from', - itemSelectText: 'Press to select', - uniqueItemText: 'Only unique values can be added', - customAddItemText: 'Only values matching specific conditions can be added', - addItemText: function addItemText(value) { - return "Press Enter to add \"" + utils_1.sanitise(value) + "\""; - }, - maxItemText: function maxItemText(maxItemCount) { - return "Only " + maxItemCount + " values can be added"; - }, - valueComparer: function valueComparer(value1, value2) { - return value1 === value2; - }, - fuseOptions: { - includeScore: true - }, - callbackOnInit: null, - callbackOnCreateTemplates: null, - classNames: exports.DEFAULT_CLASSNAMES - }; - exports.EVENTS = { - showDropdown: 'showDropdown', - hideDropdown: 'hideDropdown', - change: 'change', - choice: 'choice', - search: 'search', - addItem: 'addItem', - removeItem: 'removeItem', - highlightItem: 'highlightItem', - highlightChoice: 'highlightChoice', - unhighlightItem: 'unhighlightItem' - }; - exports.ACTION_TYPES = { - ADD_CHOICE: 'ADD_CHOICE', - FILTER_CHOICES: 'FILTER_CHOICES', - ACTIVATE_CHOICES: 'ACTIVATE_CHOICES', - CLEAR_CHOICES: 'CLEAR_CHOICES', - ADD_GROUP: 'ADD_GROUP', - ADD_ITEM: 'ADD_ITEM', - REMOVE_ITEM: 'REMOVE_ITEM', - HIGHLIGHT_ITEM: 'HIGHLIGHT_ITEM', - CLEAR_ALL: 'CLEAR_ALL', - RESET_TO: 'RESET_TO', - SET_IS_LOADING: 'SET_IS_LOADING' - }; - exports.KEY_CODES = { - BACK_KEY: 46, - DELETE_KEY: 8, - ENTER_KEY: 13, - A_KEY: 65, - ESC_KEY: 27, - UP_KEY: 38, - DOWN_KEY: 40, - PAGE_UP_KEY: 33, - PAGE_DOWN_KEY: 34 - }; - exports.TEXT_TYPE = 'text'; - exports.SELECT_ONE_TYPE = 'select-one'; - exports.SELECT_MULTIPLE_TYPE = 'select-multiple'; - exports.SCROLLING_SPEED = 4; - - /***/ }), - /* 1 */ - /***/ (function(module, exports, __webpack_require__) { - - "use strict"; - - - Object.defineProperty(exports, "__esModule", { - value: true - }); - /* eslint-disable @typescript-eslint/no-explicit-any */ - - exports.getRandomNumber = function (min, max) { - return Math.floor(Math.random() * (max - min) + min); - }; - - exports.generateChars = function (length) { - return Array.from({ - length: length - }, function () { - return exports.getRandomNumber(0, 36).toString(36); - }).join(''); - }; - - exports.generateId = function (element, prefix) { - var id = element.id || element.name && element.name + "-" + exports.generateChars(2) || exports.generateChars(4); - id = id.replace(/(:|\.|\[|\]|,)/g, ''); - id = prefix + "-" + id; - return id; - }; - - exports.getType = function (obj) { - return Object.prototype.toString.call(obj).slice(8, -1); - }; - - exports.isType = function (type, obj) { - return obj !== undefined && obj !== null && exports.getType(obj) === type; - }; - - exports.wrap = function (element, wrapper) { - if (wrapper === void 0) { - wrapper = document.createElement('div'); - } - - if (element.nextSibling) { - element.parentNode && element.parentNode.insertBefore(wrapper, element.nextSibling); - } else { - element.parentNode && element.parentNode.appendChild(wrapper); - } - - return wrapper.appendChild(element); - }; - - exports.getAdjacentEl = function (startEl, selector, direction) { - if (direction === void 0) { - direction = 1; - } - - var prop = (direction > 0 ? 'next' : 'previous') + "ElementSibling"; - var sibling = startEl[prop]; - - while (sibling) { - if (sibling.matches(selector)) { - return sibling; - } - - sibling = sibling[prop]; - } - - return sibling; - }; - - exports.isScrolledIntoView = function (element, parent, direction) { - if (direction === void 0) { - direction = 1; - } - - if (!element) { - return false; - } - - var isVisible; - - if (direction > 0) { - // In view from bottom - isVisible = parent.scrollTop + parent.offsetHeight >= element.offsetTop + element.offsetHeight; - } else { - // In view from top - isVisible = element.offsetTop >= parent.scrollTop; - } - - return isVisible; - }; - - exports.sanitise = function (value) { - if (typeof value !== 'string') { - return value; - } - - return value.replace(/&/g, '&').replace(/>/g, '&rt;').replace(/ 0) { - return "Unexpected " + (unexpectedKeys.length > 1 ? 'keys' : 'key') + " " + ("\"" + unexpectedKeys.join('", "') + "\" found in " + argumentName + ". ") + "Expected to find one of the known reducer keys instead: " + ("\"" + reducerKeys.join('", "') + "\". Unexpected keys will be ignored."); - } - } - - function assertReducerShape(reducers) { - Object.keys(reducers).forEach(function (key) { - var reducer = reducers[key]; - var initialState = reducer(undefined, { - type: ActionTypes.INIT - }); - - if (typeof initialState === 'undefined') { - throw new Error("Reducer \"" + key + "\" returned undefined during initialization. " + "If the state passed to the reducer is undefined, you must " + "explicitly return the initial state. The initial state may " + "not be undefined. If you don't want to set a value for this reducer, " + "you can use null instead of undefined."); - } - - if (typeof reducer(undefined, { - type: ActionTypes.PROBE_UNKNOWN_ACTION() - }) === 'undefined') { - throw new Error("Reducer \"" + key + "\" returned undefined when probed with a random type. " + ("Don't try to handle " + ActionTypes.INIT + " or other actions in \"redux/*\" ") + "namespace. They are considered private. Instead, you must return the " + "current state for any unknown actions, unless it is undefined, " + "in which case you must return the initial state, regardless of the " + "action type. The initial state may not be undefined, but can be null."); - } - }); - } - /** - * Turns an object whose values are different reducer functions, into a single - * reducer function. It will call every child reducer, and gather their results - * into a single state object, whose keys correspond to the keys of the passed - * reducer functions. - * - * @param {Object} reducers An object whose values correspond to different - * reducer functions that need to be combined into one. One handy way to obtain - * it is to use ES6 `import * as reducers` syntax. The reducers may never return - * undefined for any action. Instead, they should return their initial state - * if the state passed to them was undefined, and the current state for any - * unrecognized action. - * - * @returns {Function} A reducer function that invokes every reducer inside the - * passed object, and builds a state object with the same shape. - */ - - - function combineReducers(reducers) { - var reducerKeys = Object.keys(reducers); - var finalReducers = {}; - - for (var i = 0; i < reducerKeys.length; i++) { - var key = reducerKeys[i]; - - if (false) {} - - if (typeof reducers[key] === 'function') { - finalReducers[key] = reducers[key]; - } - } - - var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same - // keys multiple times. - - var unexpectedKeyCache; - - if (false) {} - - var shapeAssertionError; - - try { - assertReducerShape(finalReducers); - } catch (e) { - shapeAssertionError = e; - } - - return function combination(state, action) { - if (state === void 0) { - state = {}; - } - - if (shapeAssertionError) { - throw shapeAssertionError; - } - - if (false) { var warningMessage; } - - var hasChanged = false; - var nextState = {}; - - for (var _i = 0; _i < finalReducerKeys.length; _i++) { - var _key = finalReducerKeys[_i]; - var reducer = finalReducers[_key]; - var previousStateForKey = state[_key]; - var nextStateForKey = reducer(previousStateForKey, action); - - if (typeof nextStateForKey === 'undefined') { - var errorMessage = getUndefinedStateErrorMessage(_key, action); - throw new Error(errorMessage); - } - - nextState[_key] = nextStateForKey; - hasChanged = hasChanged || nextStateForKey !== previousStateForKey; - } - - return hasChanged ? nextState : state; - }; - } - - function bindActionCreator(actionCreator, dispatch) { - return function () { - return dispatch(actionCreator.apply(this, arguments)); - }; - } - /** - * Turns an object whose values are action creators, into an object with the - * same keys, but with every function wrapped into a `dispatch` call so they - * may be invoked directly. This is just a convenience method, as you can call - * `store.dispatch(MyActionCreators.doSomething())` yourself just fine. - * - * For convenience, you can also pass an action creator as the first argument, - * and get a dispatch wrapped function in return. - * - * @param {Function|Object} actionCreators An object whose values are action - * creator functions. One handy way to obtain it is to use ES6 `import * as` - * syntax. You may also pass a single function. - * - * @param {Function} dispatch The `dispatch` function available on your Redux - * store. - * - * @returns {Function|Object} The object mimicking the original object, but with - * every action creator wrapped into the `dispatch` call. If you passed a - * function as `actionCreators`, the return value will also be a single - * function. - */ - - - function bindActionCreators(actionCreators, dispatch) { - if (typeof actionCreators === 'function') { - return bindActionCreator(actionCreators, dispatch); - } - - if (typeof actionCreators !== 'object' || actionCreators === null) { - throw new Error("bindActionCreators expected an object or a function, instead received " + (actionCreators === null ? 'null' : typeof actionCreators) + ". " + "Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?"); - } - - var boundActionCreators = {}; - - for (var key in actionCreators) { - var actionCreator = actionCreators[key]; - - if (typeof actionCreator === 'function') { - boundActionCreators[key] = bindActionCreator(actionCreator, dispatch); - } - } - - return boundActionCreators; - } - - function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; - } - - function ownKeys(object, enumerableOnly) { - var keys = Object.keys(object); - - if (Object.getOwnPropertySymbols) { - keys.push.apply(keys, Object.getOwnPropertySymbols(object)); - } - - if (enumerableOnly) keys = keys.filter(function (sym) { - return Object.getOwnPropertyDescriptor(object, sym).enumerable; - }); - return keys; - } - - function _objectSpread2(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - - if (i % 2) { - ownKeys(source, true).forEach(function (key) { - _defineProperty(target, key, source[key]); - }); - } else if (Object.getOwnPropertyDescriptors) { - Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); - } else { - ownKeys(source).forEach(function (key) { - Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); - }); - } - } - - return target; - } - - /** - * Composes single-argument functions from right to left. The rightmost - * function can take multiple arguments as it provides the signature for - * the resulting composite function. - * - * @param {...Function} funcs The functions to compose. - * @returns {Function} A function obtained by composing the argument functions - * from right to left. For example, compose(f, g, h) is identical to doing - * (...args) => f(g(h(...args))). - */ - function compose() { - for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) { - funcs[_key] = arguments[_key]; - } - - if (funcs.length === 0) { - return function (arg) { - return arg; - }; - } - - if (funcs.length === 1) { - return funcs[0]; - } - - return funcs.reduce(function (a, b) { - return function () { - return a(b.apply(void 0, arguments)); - }; - }); - } - - /** - * Creates a store enhancer that applies middleware to the dispatch method - * of the Redux store. This is handy for a variety of tasks, such as expressing - * asynchronous actions in a concise manner, or logging every action payload. - * - * See `redux-thunk` package as an example of the Redux middleware. - * - * Because middleware is potentially asynchronous, this should be the first - * store enhancer in the composition chain. - * - * Note that each middleware will be given the `dispatch` and `getState` functions - * as named arguments. - * - * @param {...Function} middlewares The middleware chain to be applied. - * @returns {Function} A store enhancer applying the middleware. - */ - - function applyMiddleware() { - for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) { - middlewares[_key] = arguments[_key]; - } - - return function (createStore) { - return function () { - var store = createStore.apply(void 0, arguments); - - var _dispatch = function dispatch() { - throw new Error('Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.'); - }; - - var middlewareAPI = { - getState: store.getState, - dispatch: function dispatch() { - return _dispatch.apply(void 0, arguments); - } - }; - var chain = middlewares.map(function (middleware) { - return middleware(middlewareAPI); - }); - _dispatch = compose.apply(void 0, chain)(store.dispatch); - return _objectSpread2({}, store, { - dispatch: _dispatch - }); - }; - }; - } - - /* - * This is a dummy function to check if the function name has been altered by minification. - * If the function has been minified and NODE_ENV !== 'production', warn the user. - */ - - function isCrushed() {} - - if (false) {} - - - - - /***/ }), - /* 4 */ - /***/ (function(module, exports, __webpack_require__) { - - "use strict"; - - - var __importDefault = this && this.__importDefault || function (mod) { - return mod && mod.__esModule ? mod : { - "default": mod - }; - }; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var redux_1 = __webpack_require__(3); - - var items_1 = __importDefault(__webpack_require__(14)); - - var groups_1 = __importDefault(__webpack_require__(15)); - - var choices_1 = __importDefault(__webpack_require__(16)); - - var loading_1 = __importDefault(__webpack_require__(17)); - - var utils_1 = __webpack_require__(1); - - exports.defaultState = { - groups: [], - items: [], - choices: [], - loading: false - }; - var appReducer = redux_1.combineReducers({ - items: items_1.default, - groups: groups_1.default, - choices: choices_1.default, - loading: loading_1.default - }); - - var rootReducer = function rootReducer(passedState, action) { - var state = passedState; // If we are clearing all items, groups and options we reassign - // state and then pass that state to our proper reducer. This isn't - // mutating our actual state - // See: http://stackoverflow.com/a/35641992 - - if (action.type === 'CLEAR_ALL') { - state = exports.defaultState; - } else if (action.type === 'RESET_TO') { - return utils_1.cloneObject(action.state); - } - - return appReducer(state, action); - }; - - exports.default = rootReducer; - - /***/ }), - /* 5 */ - /***/ (function(module, exports, __webpack_require__) { - - "use strict"; - - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var utils_1 = __webpack_require__(1); - - var WrappedElement = - /** @class */ - function () { - function WrappedElement(_a) { - var element = _a.element, - classNames = _a.classNames; - this.element = element; - this.classNames = classNames; - - if (!(element instanceof HTMLInputElement) && !(element instanceof HTMLSelectElement)) { - throw new TypeError('Invalid element passed'); - } - - this.isDisabled = false; - } - - Object.defineProperty(WrappedElement.prototype, "isActive", { - get: function get() { - return this.element.dataset.choice === 'active'; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(WrappedElement.prototype, "dir", { - get: function get() { - return this.element.dir; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(WrappedElement.prototype, "value", { - get: function get() { - return this.element.value; - }, - set: function set(value) { - // you must define setter here otherwise it will be readonly property - this.element.value = value; - }, - enumerable: true, - configurable: true - }); - - WrappedElement.prototype.conceal = function () { - // Hide passed input - this.element.classList.add(this.classNames.input); - this.element.hidden = true; // Remove element from tab index - - this.element.tabIndex = -1; // Backup original styles if any - - var origStyle = this.element.getAttribute('style'); - - if (origStyle) { - this.element.setAttribute('data-choice-orig-style', origStyle); - } - - this.element.setAttribute('data-choice', 'active'); - }; - - WrappedElement.prototype.reveal = function () { - // Reinstate passed element - this.element.classList.remove(this.classNames.input); - this.element.hidden = false; - this.element.removeAttribute('tabindex'); // Recover original styles if any - - var origStyle = this.element.getAttribute('data-choice-orig-style'); - - if (origStyle) { - this.element.removeAttribute('data-choice-orig-style'); - this.element.setAttribute('style', origStyle); - } else { - this.element.removeAttribute('style'); - } - - this.element.removeAttribute('data-choice'); // Re-assign values - this is weird, I know - // @todo Figure out why we need to do this - - this.element.value = this.element.value; // eslint-disable-line no-self-assign - }; - - WrappedElement.prototype.enable = function () { - this.element.removeAttribute('disabled'); - this.element.disabled = false; - this.isDisabled = false; - }; - - WrappedElement.prototype.disable = function () { - this.element.setAttribute('disabled', ''); - this.element.disabled = true; - this.isDisabled = true; - }; - - WrappedElement.prototype.triggerEvent = function (eventType, data) { - utils_1.dispatchEvent(this.element, eventType, data); - }; - - return WrappedElement; - }(); - - exports.default = WrappedElement; - - /***/ }), - /* 6 */ - /***/ (function(module, __webpack_exports__, __webpack_require__) { - - "use strict"; - /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return symbolObservablePonyfill; }); - function symbolObservablePonyfill(root) { - var result; - var Symbol = root.Symbol; - - if (typeof Symbol === 'function') { - if (Symbol.observable) { - result = Symbol.observable; - } else { - result = Symbol('observable'); - Symbol.observable = result; - } - } else { - result = '@@observable'; - } - - return result; - }; - - - /***/ }), - /* 7 */ - /***/ (function(module, exports, __webpack_require__) { - - module.exports = __webpack_require__(8); - - - /***/ }), - /* 8 */ - /***/ (function(module, exports, __webpack_require__) { - - "use strict"; - - - var __spreadArrays = this && this.__spreadArrays || function () { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) { - s += arguments[i].length; - } - - for (var r = Array(s), k = 0, i = 0; i < il; i++) { - for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) { - r[k] = a[j]; - } - } - - return r; - }; - - var __importDefault = this && this.__importDefault || function (mod) { - return mod && mod.__esModule ? mod : { - "default": mod - }; - }; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - /* eslint-disable @typescript-eslint/no-explicit-any */ - - var fuse_js_1 = __importDefault(__webpack_require__(9)); - - var deepmerge_1 = __importDefault(__webpack_require__(10)); - - var store_1 = __importDefault(__webpack_require__(11)); - - var components_1 = __webpack_require__(18); - - var constants_1 = __webpack_require__(0); - - var templates_1 = __importDefault(__webpack_require__(25)); - - var choices_1 = __webpack_require__(26); - - var items_1 = __webpack_require__(27); - - var groups_1 = __webpack_require__(28); - - var misc_1 = __webpack_require__(29); - - var utils_1 = __webpack_require__(1); - - var reducers_1 = __webpack_require__(4); - /** @see {@link http://browserhacks.com/#hack-acea075d0ac6954f275a70023906050c} */ - - - var IS_IE11 = '-ms-scroll-limit' in document.documentElement.style && '-ms-ime-align' in document.documentElement.style; - var USER_DEFAULTS = {}; - /** - * Choices - * @author Josh Johnson - */ - - var Choices = - /** @class */ - function () { - function Choices(element, userConfig) { - var _this = this; - - if (element === void 0) { - element = '[data-choice]'; - } - - if (userConfig === void 0) { - userConfig = {}; - } - - this.config = deepmerge_1.default.all([constants_1.DEFAULT_CONFIG, Choices.defaults.options, userConfig], // When merging array configs, replace with a copy of the userConfig array, - // instead of concatenating with the default array - { - arrayMerge: function arrayMerge(_, sourceArray) { - return __spreadArrays(sourceArray); - } - }); - var invalidConfigOptions = utils_1.diff(this.config, constants_1.DEFAULT_CONFIG); - - if (invalidConfigOptions.length) { - console.warn('Unknown config option(s) passed', invalidConfigOptions.join(', ')); - } - - var passedElement = typeof element === 'string' ? document.querySelector(element) : element; - - if (!(passedElement instanceof HTMLInputElement || passedElement instanceof HTMLSelectElement)) { - throw TypeError('Expected one of the following types text|select-one|select-multiple'); - } - - this._isTextElement = passedElement.type === constants_1.TEXT_TYPE; - this._isSelectOneElement = passedElement.type === constants_1.SELECT_ONE_TYPE; - this._isSelectMultipleElement = passedElement.type === constants_1.SELECT_MULTIPLE_TYPE; - this._isSelectElement = this._isSelectOneElement || this._isSelectMultipleElement; - this.config.searchEnabled = this._isSelectMultipleElement || this.config.searchEnabled; - - if (!['auto', 'always'].includes("" + this.config.renderSelectedChoices)) { - this.config.renderSelectedChoices = 'auto'; - } - - if (userConfig.addItemFilter && typeof userConfig.addItemFilter !== 'function') { - var re = userConfig.addItemFilter instanceof RegExp ? userConfig.addItemFilter : new RegExp(userConfig.addItemFilter); - this.config.addItemFilter = re.test.bind(re); - } - - if (this._isTextElement) { - this.passedElement = new components_1.WrappedInput({ - element: passedElement, - classNames: this.config.classNames, - delimiter: this.config.delimiter - }); - } else { - this.passedElement = new components_1.WrappedSelect({ - element: passedElement, - classNames: this.config.classNames, - template: function template(data) { - return _this._templates.option(data); - } - }); - } - - this.initialised = false; - this._store = new store_1.default(); - this._initialState = reducers_1.defaultState; - this._currentState = reducers_1.defaultState; - this._prevState = reducers_1.defaultState; - this._currentValue = ''; - this._canSearch = !!this.config.searchEnabled; - this._isScrollingOnIe = false; - this._highlightPosition = 0; - this._wasTap = true; - this._placeholderValue = this._generatePlaceholderValue(); - this._baseId = utils_1.generateId(this.passedElement.element, 'choices-'); - /** - * setting direction in cases where it's explicitly set on passedElement - * or when calculated direction is different from the document - */ - - this._direction = this.passedElement.dir; - - if (!this._direction) { - var elementDirection = window.getComputedStyle(this.passedElement.element).direction; - var documentDirection = window.getComputedStyle(document.documentElement).direction; - - if (elementDirection !== documentDirection) { - this._direction = elementDirection; - } - } - - this._idNames = { - itemChoice: 'item-choice' - }; - - if (this._isSelectElement) { - // Assign preset groups from passed element - this._presetGroups = this.passedElement.optionGroups; // Assign preset options from passed element - - this._presetOptions = this.passedElement.options; - } // Assign preset choices from passed object - - - this._presetChoices = this.config.choices; // Assign preset items from passed object first - - this._presetItems = this.config.items; // Add any values passed from attribute - - if (this.passedElement.value && this._isTextElement) { - var splitValues = this.passedElement.value.split(this.config.delimiter); - this._presetItems = this._presetItems.concat(splitValues); - } // Create array of choices from option elements - - - if (this.passedElement.options) { - this.passedElement.options.forEach(function (option) { - _this._presetChoices.push({ - value: option.value, - label: option.innerHTML, - selected: !!option.selected, - disabled: option.disabled || option.parentNode.disabled, - placeholder: option.value === '' || option.hasAttribute('placeholder'), - customProperties: option.dataset['custom-properties'] - }); - }); - } - - this._render = this._render.bind(this); - this._onFocus = this._onFocus.bind(this); - this._onBlur = this._onBlur.bind(this); - this._onKeyUp = this._onKeyUp.bind(this); - this._onKeyDown = this._onKeyDown.bind(this); - this._onClick = this._onClick.bind(this); - this._onTouchMove = this._onTouchMove.bind(this); - this._onTouchEnd = this._onTouchEnd.bind(this); - this._onMouseDown = this._onMouseDown.bind(this); - this._onMouseOver = this._onMouseOver.bind(this); - this._onFormReset = this._onFormReset.bind(this); - this._onSelectKey = this._onSelectKey.bind(this); - this._onEnterKey = this._onEnterKey.bind(this); - this._onEscapeKey = this._onEscapeKey.bind(this); - this._onDirectionKey = this._onDirectionKey.bind(this); - this._onDeleteKey = this._onDeleteKey.bind(this); // If element has already been initialised with Choices, fail silently - - if (this.passedElement.isActive) { - if (!this.config.silent) { - console.warn('Trying to initialise Choices on element already initialised', { - element: element - }); - } - - this.initialised = true; - return; - } // Let's go - - - this.init(); - } - - Object.defineProperty(Choices, "defaults", { - get: function get() { - return Object.preventExtensions({ - get options() { - return USER_DEFAULTS; - }, - - get templates() { - return templates_1.default; - } - - }); - }, - enumerable: true, - configurable: true - }); - - Choices.prototype.init = function () { - if (this.initialised) { - return; - } - - this._createTemplates(); - - this._createElements(); - - this._createStructure(); - - this._store.subscribe(this._render); - - this._render(); - - this._addEventListeners(); - - var shouldDisable = !this.config.addItems || this.passedElement.element.hasAttribute('disabled'); - - if (shouldDisable) { - this.disable(); - } - - this.initialised = true; - var callbackOnInit = this.config.callbackOnInit; // Run callback if it is a function - - if (callbackOnInit && typeof callbackOnInit === 'function') { - callbackOnInit.call(this); - } - }; - - Choices.prototype.destroy = function () { - if (!this.initialised) { - return; - } - - this._removeEventListeners(); - - this.passedElement.reveal(); - this.containerOuter.unwrap(this.passedElement.element); - this.clearStore(); - - if (this._isSelectElement) { - this.passedElement.options = this._presetOptions; - } - - this._templates = templates_1.default; - this.initialised = false; - }; - - Choices.prototype.enable = function () { - if (this.passedElement.isDisabled) { - this.passedElement.enable(); - } - - if (this.containerOuter.isDisabled) { - this._addEventListeners(); - - this.input.enable(); - this.containerOuter.enable(); - } - - return this; - }; - - Choices.prototype.disable = function () { - if (!this.passedElement.isDisabled) { - this.passedElement.disable(); - } - - if (!this.containerOuter.isDisabled) { - this._removeEventListeners(); - - this.input.disable(); - this.containerOuter.disable(); - } - - return this; - }; - - Choices.prototype.highlightItem = function (item, runEvent) { - if (runEvent === void 0) { - runEvent = true; - } - - if (!item || !item.id) { - return this; - } - - var id = item.id, - _a = item.groupId, - groupId = _a === void 0 ? -1 : _a, - _b = item.value, - value = _b === void 0 ? '' : _b, - _c = item.label, - label = _c === void 0 ? '' : _c; - var group = groupId >= 0 ? this._store.getGroupById(groupId) : null; - - this._store.dispatch(items_1.highlightItem(id, true)); - - if (runEvent) { - this.passedElement.triggerEvent(constants_1.EVENTS.highlightItem, { - id: id, - value: value, - label: label, - groupValue: group && group.value ? group.value : null - }); - } - - return this; - }; - - Choices.prototype.unhighlightItem = function (item) { - if (!item || !item.id) { - return this; - } - - var id = item.id, - _a = item.groupId, - groupId = _a === void 0 ? -1 : _a, - _b = item.value, - value = _b === void 0 ? '' : _b, - _c = item.label, - label = _c === void 0 ? '' : _c; - var group = groupId >= 0 ? this._store.getGroupById(groupId) : null; - - this._store.dispatch(items_1.highlightItem(id, false)); - - this.passedElement.triggerEvent(constants_1.EVENTS.highlightItem, { - id: id, - value: value, - label: label, - groupValue: group && group.value ? group.value : null - }); - return this; - }; - - Choices.prototype.highlightAll = function () { - var _this = this; - - this._store.items.forEach(function (item) { - return _this.highlightItem(item); - }); - - return this; - }; - - Choices.prototype.unhighlightAll = function () { - var _this = this; - - this._store.items.forEach(function (item) { - return _this.unhighlightItem(item); - }); - - return this; - }; - - Choices.prototype.removeActiveItemsByValue = function (value) { - var _this = this; - - this._store.activeItems.filter(function (item) { - return item.value === value; - }).forEach(function (item) { - return _this._removeItem(item); - }); - - return this; - }; - - Choices.prototype.removeActiveItems = function (excludedId) { - var _this = this; - - this._store.activeItems.filter(function (_a) { - var id = _a.id; - return id !== excludedId; - }).forEach(function (item) { - return _this._removeItem(item); - }); - - return this; - }; - - Choices.prototype.removeHighlightedItems = function (runEvent) { - var _this = this; - - if (runEvent === void 0) { - runEvent = false; - } - - this._store.highlightedActiveItems.forEach(function (item) { - _this._removeItem(item); // If this action was performed by the user - // trigger the event - - - if (runEvent) { - _this._triggerChange(item.value); - } - }); - - return this; - }; - - Choices.prototype.showDropdown = function (preventInputFocus) { - var _this = this; - - if (this.dropdown.isActive) { - return this; - } - - requestAnimationFrame(function () { - _this.dropdown.show(); - - _this.containerOuter.open(_this.dropdown.distanceFromTopWindow); - - if (!preventInputFocus && _this._canSearch) { - _this.input.focus(); - } - - _this.passedElement.triggerEvent(constants_1.EVENTS.showDropdown, {}); - }); - return this; - }; - - Choices.prototype.hideDropdown = function (preventInputBlur) { - var _this = this; - - if (!this.dropdown.isActive) { - return this; - } - - requestAnimationFrame(function () { - _this.dropdown.hide(); - - _this.containerOuter.close(); - - if (!preventInputBlur && _this._canSearch) { - _this.input.removeActiveDescendant(); - - _this.input.blur(); - } - - _this.passedElement.triggerEvent(constants_1.EVENTS.hideDropdown, {}); - }); - return this; - }; - - Choices.prototype.getValue = function (valueOnly) { - if (valueOnly === void 0) { - valueOnly = false; - } - - var values = this._store.activeItems.reduce(function (selectedItems, item) { - var itemValue = valueOnly ? item.value : item; - selectedItems.push(itemValue); - return selectedItems; - }, []); - - return this._isSelectOneElement ? values[0] : values; - }; - - Choices.prototype.setValue = function (items) { - var _this = this; - - if (!this.initialised) { - return this; - } - - items.forEach(function (value) { - return _this._setChoiceOrItem(value); - }); - return this; - }; - - Choices.prototype.setChoiceByValue = function (value) { - var _this = this; - - if (!this.initialised || this._isTextElement) { - return this; - } // If only one value has been passed, convert to array - - - var choiceValue = Array.isArray(value) ? value : [value]; // Loop through each value and - - choiceValue.forEach(function (val) { - return _this._findAndSelectChoiceByValue(val); - }); - return this; - }; - /** - * Set choices of select input via an array of objects (or function that returns array of object or promise of it), - * a value field name and a label field name. - * This behaves the same as passing items via the choices option but can be called after initialising Choices. - * This can also be used to add groups of choices (see example 2); Optionally pass a true `replaceChoices` value to remove any existing choices. - * Optionally pass a `customProperties` object to add additional data to your choices (useful when searching/filtering etc). - * - * **Input types affected:** select-one, select-multiple - * - * @example - * ```js - * const example = new Choices(element); - * - * example.setChoices([ - * {value: 'One', label: 'Label One', disabled: true}, - * {value: 'Two', label: 'Label Two', selected: true}, - * {value: 'Three', label: 'Label Three'}, - * ], 'value', 'label', false); - * ``` - * - * @example - * ```js - * const example = new Choices(element); - * - * example.setChoices(async () => { - * try { - * const items = await fetch('/items'); - * return items.json() - * } catch(err) { - * console.error(err) - * } - * }); - * ``` - * - * @example - * ```js - * const example = new Choices(element); - * - * example.setChoices([{ - * label: 'Group one', - * id: 1, - * disabled: false, - * choices: [ - * {value: 'Child One', label: 'Child One', selected: true}, - * {value: 'Child Two', label: 'Child Two', disabled: true}, - * {value: 'Child Three', label: 'Child Three'}, - * ] - * }, - * { - * label: 'Group two', - * id: 2, - * disabled: false, - * choices: [ - * {value: 'Child Four', label: 'Child Four', disabled: true}, - * {value: 'Child Five', label: 'Child Five'}, - * {value: 'Child Six', label: 'Child Six', customProperties: { - * description: 'Custom description about child six', - * random: 'Another random custom property' - * }}, - * ] - * }], 'value', 'label', false); - * ``` - */ - - - Choices.prototype.setChoices = function (choicesArrayOrFetcher, value, label, replaceChoices) { - var _this = this; - - if (choicesArrayOrFetcher === void 0) { - choicesArrayOrFetcher = []; - } - - if (value === void 0) { - value = 'value'; - } - - if (label === void 0) { - label = 'label'; - } - - if (replaceChoices === void 0) { - replaceChoices = false; - } - - if (!this.initialised) { - throw new ReferenceError("setChoices was called on a non-initialized instance of Choices"); - } - - if (!this._isSelectElement) { - throw new TypeError("setChoices can't be used with INPUT based Choices"); - } - - if (typeof value !== 'string' || !value) { - throw new TypeError("value parameter must be a name of 'value' field in passed objects"); - } // Clear choices if needed - - - if (replaceChoices) { - this.clearChoices(); - } - - if (typeof choicesArrayOrFetcher === 'function') { - // it's a choices fetcher function - var fetcher_1 = choicesArrayOrFetcher(this); - - if (typeof Promise === 'function' && fetcher_1 instanceof Promise) { - // that's a promise - // eslint-disable-next-line compat/compat - return new Promise(function (resolve) { - return requestAnimationFrame(resolve); - }) // eslint-disable-line compat/compat - .then(function () { - return _this._handleLoadingState(true); - }).then(function () { - return fetcher_1; - }).then(function (data) { - return _this.setChoices(data, value, label, replaceChoices); - }).catch(function (err) { - if (!_this.config.silent) { - console.error(err); - } - }).then(function () { - return _this._handleLoadingState(false); - }).then(function () { - return _this; - }); - } // function returned something else than promise, let's check if it's an array of choices - - - if (!Array.isArray(fetcher_1)) { - throw new TypeError(".setChoices first argument function must return either array of choices or Promise, got: " + typeof fetcher_1); - } // recursion with results, it's sync and choices were cleared already - - - return this.setChoices(fetcher_1, value, label, false); - } - - if (!Array.isArray(choicesArrayOrFetcher)) { - throw new TypeError(".setChoices must be called either with array of choices with a function resulting into Promise of array of choices"); - } - - this.containerOuter.removeLoadingState(); - - this._startLoading(); - - choicesArrayOrFetcher.forEach(function (groupOrChoice) { - if (groupOrChoice.choices) { - _this._addGroup({ - id: groupOrChoice.id ? parseInt("" + groupOrChoice.id, 10) : null, - group: groupOrChoice, - valueKey: value, - labelKey: label - }); - } else { - var choice = groupOrChoice; - - _this._addChoice({ - value: choice[value], - label: choice[label], - isSelected: !!choice.selected, - isDisabled: !!choice.disabled, - placeholder: !!choice.placeholder, - customProperties: choice.customProperties - }); - } - }); - - this._stopLoading(); - - return this; - }; - - Choices.prototype.clearChoices = function () { - this._store.dispatch(choices_1.clearChoices()); - - return this; - }; - - Choices.prototype.clearStore = function () { - this._store.dispatch(misc_1.clearAll()); - - return this; - }; - - Choices.prototype.clearInput = function () { - var shouldSetInputWidth = !this._isSelectOneElement; - this.input.clear(shouldSetInputWidth); - - if (!this._isTextElement && this._canSearch) { - this._isSearching = false; - - this._store.dispatch(choices_1.activateChoices(true)); - } - - return this; - }; - - Choices.prototype._render = function () { - if (this._store.isLoading()) { - return; - } - - this._currentState = this._store.state; - var stateChanged = this._currentState.choices !== this._prevState.choices || this._currentState.groups !== this._prevState.groups || this._currentState.items !== this._prevState.items; - var shouldRenderChoices = this._isSelectElement; - var shouldRenderItems = this._currentState.items !== this._prevState.items; - - if (!stateChanged) { - return; - } - - if (shouldRenderChoices) { - this._renderChoices(); - } - - if (shouldRenderItems) { - this._renderItems(); - } - - this._prevState = this._currentState; - }; - - Choices.prototype._renderChoices = function () { - var _this = this; - - var _a = this._store, - activeGroups = _a.activeGroups, - activeChoices = _a.activeChoices; - var choiceListFragment = document.createDocumentFragment(); - this.choiceList.clear(); - - if (this.config.resetScrollPosition) { - requestAnimationFrame(function () { - return _this.choiceList.scrollToTop(); - }); - } // If we have grouped options - - - if (activeGroups.length >= 1 && !this._isSearching) { - // If we have a placeholder choice along with groups - var activePlaceholders = activeChoices.filter(function (activeChoice) { - return activeChoice.placeholder === true && activeChoice.groupId === -1; - }); - - if (activePlaceholders.length >= 1) { - choiceListFragment = this._createChoicesFragment(activePlaceholders, choiceListFragment); - } - - choiceListFragment = this._createGroupsFragment(activeGroups, activeChoices, choiceListFragment); - } else if (activeChoices.length >= 1) { - choiceListFragment = this._createChoicesFragment(activeChoices, choiceListFragment); - } // If we have choices to show - - - if (choiceListFragment.childNodes && choiceListFragment.childNodes.length > 0) { - var activeItems = this._store.activeItems; - - var canAddItem = this._canAddItem(activeItems, this.input.value); // ...and we can select them - - - if (canAddItem.response) { - // ...append them and highlight the first choice - this.choiceList.append(choiceListFragment); - - this._highlightChoice(); - } else { - var notice = this._getTemplate('notice', canAddItem.notice); - - this.choiceList.append(notice); - } - } else { - // Otherwise show a notice - var dropdownItem = void 0; - var notice = void 0; - - if (this._isSearching) { - notice = typeof this.config.noResultsText === 'function' ? this.config.noResultsText() : this.config.noResultsText; - dropdownItem = this._getTemplate('notice', notice, 'no-results'); - } else { - notice = typeof this.config.noChoicesText === 'function' ? this.config.noChoicesText() : this.config.noChoicesText; - dropdownItem = this._getTemplate('notice', notice, 'no-choices'); - } - - this.choiceList.append(dropdownItem); - } - }; - - Choices.prototype._renderItems = function () { - var activeItems = this._store.activeItems || []; - this.itemList.clear(); // Create a fragment to store our list items - // (so we don't have to update the DOM for each item) - - var itemListFragment = this._createItemsFragment(activeItems); // If we have items to add, append them - - - if (itemListFragment.childNodes) { - this.itemList.append(itemListFragment); - } - }; - - Choices.prototype._createGroupsFragment = function (groups, choices, fragment) { - var _this = this; - - if (fragment === void 0) { - fragment = document.createDocumentFragment(); - } - - var getGroupChoices = function getGroupChoices(group) { - return choices.filter(function (choice) { - if (_this._isSelectOneElement) { - return choice.groupId === group.id; - } - - return choice.groupId === group.id && (_this.config.renderSelectedChoices === 'always' || !choice.selected); - }); - }; // If sorting is enabled, filter groups - - - if (this.config.shouldSort) { - groups.sort(this.config.sorter); - } - - groups.forEach(function (group) { - var groupChoices = getGroupChoices(group); - - if (groupChoices.length >= 1) { - var dropdownGroup = _this._getTemplate('choiceGroup', group); - - fragment.appendChild(dropdownGroup); - - _this._createChoicesFragment(groupChoices, fragment, true); - } - }); - return fragment; - }; - - Choices.prototype._createChoicesFragment = function (choices, fragment, withinGroup) { - var _this = this; - - if (fragment === void 0) { - fragment = document.createDocumentFragment(); - } - - if (withinGroup === void 0) { - withinGroup = false; - } // Create a fragment to store our list items (so we don't have to update the DOM for each item) - - - var _a = this.config, - renderSelectedChoices = _a.renderSelectedChoices, - searchResultLimit = _a.searchResultLimit, - renderChoiceLimit = _a.renderChoiceLimit; - var filter = this._isSearching ? utils_1.sortByScore : this.config.sorter; - - var appendChoice = function appendChoice(choice) { - var shouldRender = renderSelectedChoices === 'auto' ? _this._isSelectOneElement || !choice.selected : true; - - if (shouldRender) { - var dropdownItem = _this._getTemplate('choice', choice, _this.config.itemSelectText); - - fragment.appendChild(dropdownItem); - } - }; - - var rendererableChoices = choices; - - if (renderSelectedChoices === 'auto' && !this._isSelectOneElement) { - rendererableChoices = choices.filter(function (choice) { - return !choice.selected; - }); - } // Split array into placeholders and "normal" choices - - - var _b = rendererableChoices.reduce(function (acc, choice) { - if (choice.placeholder) { - acc.placeholderChoices.push(choice); - } else { - acc.normalChoices.push(choice); - } - - return acc; - }, { - placeholderChoices: [], - normalChoices: [] - }), - placeholderChoices = _b.placeholderChoices, - normalChoices = _b.normalChoices; // If sorting is enabled or the user is searching, filter choices - - - if (this.config.shouldSort || this._isSearching) { - normalChoices.sort(filter); - } - - var choiceLimit = rendererableChoices.length; // Prepend placeholeder - - var sortedChoices = this._isSelectOneElement ? __spreadArrays(placeholderChoices, normalChoices) : normalChoices; - - if (this._isSearching) { - choiceLimit = searchResultLimit; - } else if (renderChoiceLimit && renderChoiceLimit > 0 && !withinGroup) { - choiceLimit = renderChoiceLimit; - } // Add each choice to dropdown within range - - - for (var i = 0; i < choiceLimit; i += 1) { - if (sortedChoices[i]) { - appendChoice(sortedChoices[i]); - } - } - - return fragment; - }; - - Choices.prototype._createItemsFragment = function (items, fragment) { - var _this = this; - - if (fragment === void 0) { - fragment = document.createDocumentFragment(); - } // Create fragment to add elements to - - - var _a = this.config, - shouldSortItems = _a.shouldSortItems, - sorter = _a.sorter, - removeItemButton = _a.removeItemButton; // If sorting is enabled, filter items - - if (shouldSortItems && !this._isSelectOneElement) { - items.sort(sorter); - } - - if (this._isTextElement) { - // Update the value of the hidden input - this.passedElement.value = items.map(function (_a) { - var value = _a.value; - return value; - }).join(this.config.delimiter); - } else { - // Update the options of the hidden input - this.passedElement.options = items; - } - - var addItemToFragment = function addItemToFragment(item) { - // Create new list element - var listItem = _this._getTemplate('item', item, removeItemButton); // Append it to list - - - fragment.appendChild(listItem); - }; // Add each list item to list - - - items.forEach(addItemToFragment); - return fragment; - }; - - Choices.prototype._triggerChange = function (value) { - if (value === undefined || value === null) { - return; - } - - this.passedElement.triggerEvent(constants_1.EVENTS.change, { - value: value - }); - }; - - Choices.prototype._selectPlaceholderChoice = function (placeholderChoice) { - this._addItem({ - value: placeholderChoice.value, - label: placeholderChoice.label, - choiceId: placeholderChoice.id, - groupId: placeholderChoice.groupId, - placeholder: placeholderChoice.placeholder - }); - - this._triggerChange(placeholderChoice.value); - }; - - Choices.prototype._handleButtonAction = function (activeItems, element) { - if (!activeItems || !element || !this.config.removeItems || !this.config.removeItemButton) { - return; - } - - var itemId = element.parentNode && element.parentNode.dataset.id; - var itemToRemove = itemId && activeItems.find(function (item) { - return item.id === parseInt(itemId, 10); - }); - - if (!itemToRemove) { - return; - } // Remove item associated with button - - - this._removeItem(itemToRemove); - - this._triggerChange(itemToRemove.value); - - if (this._isSelectOneElement && this._store.placeholderChoice) { - this._selectPlaceholderChoice(this._store.placeholderChoice); - } - }; - - Choices.prototype._handleItemAction = function (activeItems, element, hasShiftKey) { - var _this = this; - - if (hasShiftKey === void 0) { - hasShiftKey = false; - } - - if (!activeItems || !element || !this.config.removeItems || this._isSelectOneElement) { - return; - } - - var passedId = element.dataset.id; // We only want to select one item with a click - // so we deselect any items that aren't the target - // unless shift is being pressed - - activeItems.forEach(function (item) { - if (item.id === parseInt("" + passedId, 10) && !item.highlighted) { - _this.highlightItem(item); - } else if (!hasShiftKey && item.highlighted) { - _this.unhighlightItem(item); - } - }); // Focus input as without focus, a user cannot do anything with a - // highlighted item - - this.input.focus(); - }; - - Choices.prototype._handleChoiceAction = function (activeItems, element) { - if (!activeItems || !element) { - return; - } // If we are clicking on an option - - - var id = element.dataset.id; - - var choice = id && this._store.getChoiceById(id); - - if (!choice) { - return; - } - - var passedKeyCode = activeItems[0] && activeItems[0].keyCode ? activeItems[0].keyCode : undefined; - var hasActiveDropdown = this.dropdown.isActive; // Update choice keyCode - - choice.keyCode = passedKeyCode; - this.passedElement.triggerEvent(constants_1.EVENTS.choice, { - choice: choice - }); - - if (!choice.selected && !choice.disabled) { - var canAddItem = this._canAddItem(activeItems, choice.value); - - if (canAddItem.response) { - this._addItem({ - value: choice.value, - label: choice.label, - choiceId: choice.id, - groupId: choice.groupId, - customProperties: choice.customProperties, - placeholder: choice.placeholder, - keyCode: choice.keyCode - }); - - this._triggerChange(choice.value); - } - } - - this.clearInput(); // We want to close the dropdown if we are dealing with a single select box - - if (hasActiveDropdown && this._isSelectOneElement) { - this.hideDropdown(true); - this.containerOuter.focus(); - } - }; - - Choices.prototype._handleBackspace = function (activeItems) { - if (!this.config.removeItems || !activeItems) { - return; - } - - var lastItem = activeItems[activeItems.length - 1]; - var hasHighlightedItems = activeItems.some(function (item) { - return item.highlighted; - }); // If editing the last item is allowed and there are not other selected items, - // we can edit the item value. Otherwise if we can remove items, remove all selected items - - if (this.config.editItems && !hasHighlightedItems && lastItem) { - this.input.value = lastItem.value; - this.input.setWidth(); - - this._removeItem(lastItem); - - this._triggerChange(lastItem.value); - } else { - if (!hasHighlightedItems) { - // Highlight last item if none already highlighted - this.highlightItem(lastItem, false); - } - - this.removeHighlightedItems(true); - } - }; - - Choices.prototype._startLoading = function () { - this._store.dispatch(misc_1.setIsLoading(true)); - }; - - Choices.prototype._stopLoading = function () { - this._store.dispatch(misc_1.setIsLoading(false)); - }; - - Choices.prototype._handleLoadingState = function (setLoading) { - if (setLoading === void 0) { - setLoading = true; - } - - var placeholderItem = this.itemList.getChild("." + this.config.classNames.placeholder); - - if (setLoading) { - this.disable(); - this.containerOuter.addLoadingState(); - - if (this._isSelectOneElement) { - if (!placeholderItem) { - placeholderItem = this._getTemplate('placeholder', this.config.loadingText); - - if (placeholderItem) { - this.itemList.append(placeholderItem); - } - } else { - placeholderItem.innerHTML = this.config.loadingText; - } - } else { - this.input.placeholder = this.config.loadingText; - } - } else { - this.enable(); - this.containerOuter.removeLoadingState(); - - if (this._isSelectOneElement) { - if (placeholderItem) { - placeholderItem.innerHTML = this._placeholderValue || ''; - } - } else { - this.input.placeholder = this._placeholderValue || ''; - } - } - }; - - Choices.prototype._handleSearch = function (value) { - if (!value || !this.input.isFocussed) { - return; - } - - var choices = this._store.choices; - var _a = this.config, - searchFloor = _a.searchFloor, - searchChoices = _a.searchChoices; - var hasUnactiveChoices = choices.some(function (option) { - return !option.active; - }); // Check that we have a value to search and the input was an alphanumeric character - - if (value && value.length >= searchFloor) { - var resultCount = searchChoices ? this._searchChoices(value) : 0; // Trigger search event - - this.passedElement.triggerEvent(constants_1.EVENTS.search, { - value: value, - resultCount: resultCount - }); - } else if (hasUnactiveChoices) { - // Otherwise reset choices to active - this._isSearching = false; - - this._store.dispatch(choices_1.activateChoices(true)); - } - }; - - Choices.prototype._canAddItem = function (activeItems, value) { - var canAddItem = true; - var notice = typeof this.config.addItemText === 'function' ? this.config.addItemText(value) : this.config.addItemText; - - if (!this._isSelectOneElement) { - var isDuplicateValue = utils_1.existsInArray(activeItems, value); - - if (this.config.maxItemCount > 0 && this.config.maxItemCount <= activeItems.length) { - // If there is a max entry limit and we have reached that limit - // don't update - canAddItem = false; - notice = typeof this.config.maxItemText === 'function' ? this.config.maxItemText(this.config.maxItemCount) : this.config.maxItemText; - } - - if (!this.config.duplicateItemsAllowed && isDuplicateValue && canAddItem) { - canAddItem = false; - notice = typeof this.config.uniqueItemText === 'function' ? this.config.uniqueItemText(value) : this.config.uniqueItemText; - } - - if (this._isTextElement && this.config.addItems && canAddItem && typeof this.config.addItemFilter === 'function' && !this.config.addItemFilter(value)) { - canAddItem = false; - notice = typeof this.config.customAddItemText === 'function' ? this.config.customAddItemText(value) : this.config.customAddItemText; - } - } - - return { - response: canAddItem, - notice: notice - }; - }; - - Choices.prototype._searchChoices = function (value) { - var newValue = typeof value === 'string' ? value.trim() : value; - var currentValue = typeof this._currentValue === 'string' ? this._currentValue.trim() : this._currentValue; - - if (newValue.length < 1 && newValue === currentValue + " ") { - return 0; - } // If new value matches the desired length and is not the same as the current value with a space - - - var haystack = this._store.searchableChoices; - var needle = newValue; - - var keys = __spreadArrays(this.config.searchFields); - - var options = Object.assign(this.config.fuseOptions, { - keys: keys, - includeMatches: true - }); - var fuse = new fuse_js_1.default(haystack, options); - var results = fuse.search(needle); // see https://github.com/krisk/Fuse/issues/303 - - this._currentValue = newValue; - this._highlightPosition = 0; - this._isSearching = true; - - this._store.dispatch(choices_1.filterChoices(results)); - - return results.length; - }; - - Choices.prototype._addEventListeners = function () { - var documentElement = document.documentElement; // capture events - can cancel event processing or propagation - - documentElement.addEventListener('touchend', this._onTouchEnd, true); - this.containerOuter.element.addEventListener('keydown', this._onKeyDown, true); - this.containerOuter.element.addEventListener('mousedown', this._onMouseDown, true); // passive events - doesn't call `preventDefault` or `stopPropagation` - - documentElement.addEventListener('click', this._onClick, { - passive: true - }); - documentElement.addEventListener('touchmove', this._onTouchMove, { - passive: true - }); - this.dropdown.element.addEventListener('mouseover', this._onMouseOver, { - passive: true - }); - - if (this._isSelectOneElement) { - this.containerOuter.element.addEventListener('focus', this._onFocus, { - passive: true - }); - this.containerOuter.element.addEventListener('blur', this._onBlur, { - passive: true - }); - } - - this.input.element.addEventListener('keyup', this._onKeyUp, { - passive: true - }); - this.input.element.addEventListener('focus', this._onFocus, { - passive: true - }); - this.input.element.addEventListener('blur', this._onBlur, { - passive: true - }); - - if (this.input.element.form) { - this.input.element.form.addEventListener('reset', this._onFormReset, { - passive: true - }); - } - - this.input.addEventListeners(); - }; - - Choices.prototype._removeEventListeners = function () { - var documentElement = document.documentElement; - documentElement.removeEventListener('touchend', this._onTouchEnd, true); - this.containerOuter.element.removeEventListener('keydown', this._onKeyDown, true); - this.containerOuter.element.removeEventListener('mousedown', this._onMouseDown, true); - documentElement.removeEventListener('click', this._onClick); - documentElement.removeEventListener('touchmove', this._onTouchMove); - this.dropdown.element.removeEventListener('mouseover', this._onMouseOver); - - if (this._isSelectOneElement) { - this.containerOuter.element.removeEventListener('focus', this._onFocus); - this.containerOuter.element.removeEventListener('blur', this._onBlur); - } - - this.input.element.removeEventListener('keyup', this._onKeyUp); - this.input.element.removeEventListener('focus', this._onFocus); - this.input.element.removeEventListener('blur', this._onBlur); - - if (this.input.element.form) { - this.input.element.form.removeEventListener('reset', this._onFormReset); - } - - this.input.removeEventListeners(); - }; - - Choices.prototype._onKeyDown = function (event) { - var keyCode = event.keyCode; - var activeItems = this._store.activeItems; - var hasFocusedInput = this.input.isFocussed; - var hasActiveDropdown = this.dropdown.isActive; - var hasItems = this.itemList.hasChildren(); - var keyString = String.fromCharCode(keyCode); - var wasAlphaNumericChar = /[a-zA-Z0-9-_ ]/.test(keyString); - var BACK_KEY = constants_1.KEY_CODES.BACK_KEY, - DELETE_KEY = constants_1.KEY_CODES.DELETE_KEY, - ENTER_KEY = constants_1.KEY_CODES.ENTER_KEY, - A_KEY = constants_1.KEY_CODES.A_KEY, - ESC_KEY = constants_1.KEY_CODES.ESC_KEY, - UP_KEY = constants_1.KEY_CODES.UP_KEY, - DOWN_KEY = constants_1.KEY_CODES.DOWN_KEY, - PAGE_UP_KEY = constants_1.KEY_CODES.PAGE_UP_KEY, - PAGE_DOWN_KEY = constants_1.KEY_CODES.PAGE_DOWN_KEY; - - if (!this._isTextElement && !hasActiveDropdown && wasAlphaNumericChar) { - this.showDropdown(); - - if (!this.input.isFocussed) { - /* - We update the input value with the pressed key as - the input was not focussed at the time of key press - therefore does not have the value of the key. - */ - this.input.value += keyString.toLowerCase(); - } - } - - switch (keyCode) { - case A_KEY: - return this._onSelectKey(event, hasItems); - - case ENTER_KEY: - return this._onEnterKey(event, activeItems, hasActiveDropdown); - - case ESC_KEY: - return this._onEscapeKey(hasActiveDropdown); - - case UP_KEY: - case PAGE_UP_KEY: - case DOWN_KEY: - case PAGE_DOWN_KEY: - return this._onDirectionKey(event, hasActiveDropdown); - - case DELETE_KEY: - case BACK_KEY: - return this._onDeleteKey(event, activeItems, hasFocusedInput); - - default: - } - }; - - Choices.prototype._onKeyUp = function (_a) { - var target = _a.target, - keyCode = _a.keyCode; - var value = this.input.value; - var activeItems = this._store.activeItems; - - var canAddItem = this._canAddItem(activeItems, value); - - var backKey = constants_1.KEY_CODES.BACK_KEY, - deleteKey = constants_1.KEY_CODES.DELETE_KEY; // We are typing into a text input and have a value, we want to show a dropdown - // notice. Otherwise hide the dropdown - - if (this._isTextElement) { - var canShowDropdownNotice = canAddItem.notice && value; - - if (canShowDropdownNotice) { - var dropdownItem = this._getTemplate('notice', canAddItem.notice); - - this.dropdown.element.innerHTML = dropdownItem.outerHTML; - this.showDropdown(true); - } else { - this.hideDropdown(true); - } - } else { - var wasRemovalKeyCode = keyCode === backKey || keyCode === deleteKey; - var userHasRemovedValue = wasRemovalKeyCode && target && !target.value; - var canReactivateChoices = !this._isTextElement && this._isSearching; - var canSearch = this._canSearch && canAddItem.response; - - if (userHasRemovedValue && canReactivateChoices) { - this._isSearching = false; - - this._store.dispatch(choices_1.activateChoices(true)); - } else if (canSearch) { - this._handleSearch(this.input.value); - } - } - - this._canSearch = this.config.searchEnabled; - }; - - Choices.prototype._onSelectKey = function (event, hasItems) { - var ctrlKey = event.ctrlKey, - metaKey = event.metaKey; - var hasCtrlDownKeyPressed = ctrlKey || metaKey; // If CTRL + A or CMD + A have been pressed and there are items to select - - if (hasCtrlDownKeyPressed && hasItems) { - this._canSearch = false; - var shouldHightlightAll = this.config.removeItems && !this.input.value && this.input.element === document.activeElement; - - if (shouldHightlightAll) { - this.highlightAll(); - } - } - }; - - Choices.prototype._onEnterKey = function (event, activeItems, hasActiveDropdown) { - var target = event.target; - var enterKey = constants_1.KEY_CODES.ENTER_KEY; - var targetWasButton = target && target.hasAttribute('data-button'); - - if (this._isTextElement && target && target.value) { - var value = this.input.value; - - var canAddItem = this._canAddItem(activeItems, value); - - if (canAddItem.response) { - this.hideDropdown(true); - - this._addItem({ - value: value - }); - - this._triggerChange(value); - - this.clearInput(); - } - } - - if (targetWasButton) { - this._handleButtonAction(activeItems, target); - - event.preventDefault(); - } - - if (hasActiveDropdown) { - var highlightedChoice = this.dropdown.getChild("." + this.config.classNames.highlightedState); - - if (highlightedChoice) { - // add enter keyCode value - if (activeItems[0]) { - activeItems[0].keyCode = enterKey; // eslint-disable-line no-param-reassign - } - - this._handleChoiceAction(activeItems, highlightedChoice); - } - - event.preventDefault(); - } else if (this._isSelectOneElement) { - this.showDropdown(); - event.preventDefault(); - } - }; - - Choices.prototype._onEscapeKey = function (hasActiveDropdown) { - if (hasActiveDropdown) { - this.hideDropdown(true); - this.containerOuter.focus(); - } - }; - - Choices.prototype._onDirectionKey = function (event, hasActiveDropdown) { - var keyCode = event.keyCode, - metaKey = event.metaKey; - var downKey = constants_1.KEY_CODES.DOWN_KEY, - pageUpKey = constants_1.KEY_CODES.PAGE_UP_KEY, - pageDownKey = constants_1.KEY_CODES.PAGE_DOWN_KEY; // If up or down key is pressed, traverse through options - - if (hasActiveDropdown || this._isSelectOneElement) { - this.showDropdown(); - this._canSearch = false; - var directionInt = keyCode === downKey || keyCode === pageDownKey ? 1 : -1; - var skipKey = metaKey || keyCode === pageDownKey || keyCode === pageUpKey; - var selectableChoiceIdentifier = '[data-choice-selectable]'; - var nextEl = void 0; - - if (skipKey) { - if (directionInt > 0) { - nextEl = this.dropdown.element.querySelector(selectableChoiceIdentifier + ":last-of-type"); - } else { - nextEl = this.dropdown.element.querySelector(selectableChoiceIdentifier); - } - } else { - var currentEl = this.dropdown.element.querySelector("." + this.config.classNames.highlightedState); - - if (currentEl) { - nextEl = utils_1.getAdjacentEl(currentEl, selectableChoiceIdentifier, directionInt); - } else { - nextEl = this.dropdown.element.querySelector(selectableChoiceIdentifier); - } - } - - if (nextEl) { - // We prevent default to stop the cursor moving - // when pressing the arrow - if (!utils_1.isScrolledIntoView(nextEl, this.choiceList.element, directionInt)) { - this.choiceList.scrollToChildElement(nextEl, directionInt); - } - - this._highlightChoice(nextEl); - } // Prevent default to maintain cursor position whilst - // traversing dropdown options - - - event.preventDefault(); - } - }; - - Choices.prototype._onDeleteKey = function (event, activeItems, hasFocusedInput) { - var target = event.target; // If backspace or delete key is pressed and the input has no value - - if (!this._isSelectOneElement && !target.value && hasFocusedInput) { - this._handleBackspace(activeItems); - - event.preventDefault(); - } - }; - - Choices.prototype._onTouchMove = function () { - if (this._wasTap) { - this._wasTap = false; - } - }; - - Choices.prototype._onTouchEnd = function (event) { - var target = (event || event.touches[0]).target; - var touchWasWithinContainer = this._wasTap && this.containerOuter.element.contains(target); - - if (touchWasWithinContainer) { - var containerWasExactTarget = target === this.containerOuter.element || target === this.containerInner.element; - - if (containerWasExactTarget) { - if (this._isTextElement) { - this.input.focus(); - } else if (this._isSelectMultipleElement) { - this.showDropdown(); - } - } // Prevents focus event firing - - - event.stopPropagation(); - } - - this._wasTap = true; - }; - /** - * Handles mousedown event in capture mode for containetOuter.element - */ - - - Choices.prototype._onMouseDown = function (event) { - var target = event.target; - - if (!(target instanceof HTMLElement)) { - return; - } // If we have our mouse down on the scrollbar and are on IE11... - - - if (IS_IE11 && this.choiceList.element.contains(target)) { - // check if click was on a scrollbar area - var firstChoice = this.choiceList.element.firstElementChild; - var isOnScrollbar = this._direction === 'ltr' ? event.offsetX >= firstChoice.offsetWidth : event.offsetX < firstChoice.offsetLeft; - this._isScrollingOnIe = isOnScrollbar; - } - - if (target === this.input.element) { - return; - } - - var item = target.closest('[data-button],[data-item],[data-choice]'); - - if (item instanceof HTMLElement) { - var hasShiftKey = event.shiftKey; - var activeItems = this._store.activeItems; - var dataset = item.dataset; - - if ('button' in dataset) { - this._handleButtonAction(activeItems, item); - } else if ('item' in dataset) { - this._handleItemAction(activeItems, item, hasShiftKey); - } else if ('choice' in dataset) { - this._handleChoiceAction(activeItems, item); - } - } - - event.preventDefault(); - }; - /** - * Handles mouseover event over this.dropdown - * @param {MouseEvent} event - */ - - - Choices.prototype._onMouseOver = function (_a) { - var target = _a.target; - - if (target instanceof HTMLElement && 'choice' in target.dataset) { - this._highlightChoice(target); - } - }; - - Choices.prototype._onClick = function (_a) { - var target = _a.target; - var clickWasWithinContainer = this.containerOuter.element.contains(target); - - if (clickWasWithinContainer) { - if (!this.dropdown.isActive && !this.containerOuter.isDisabled) { - if (this._isTextElement) { - if (document.activeElement !== this.input.element) { - this.input.focus(); - } - } else { - this.showDropdown(); - this.containerOuter.focus(); - } - } else if (this._isSelectOneElement && target !== this.input.element && !this.dropdown.element.contains(target)) { - this.hideDropdown(); - } - } else { - var hasHighlightedItems = this._store.highlightedActiveItems.length > 0; - - if (hasHighlightedItems) { - this.unhighlightAll(); - } - - this.containerOuter.removeFocusState(); - this.hideDropdown(true); - } - }; - - Choices.prototype._onFocus = function (_a) { - var _b; - - var _this = this; - - var target = _a.target; - var focusWasWithinContainer = target && this.containerOuter.element.contains(target); - - if (!focusWasWithinContainer) { - return; - } - - var focusActions = (_b = {}, _b[constants_1.TEXT_TYPE] = function () { - if (target === _this.input.element) { - _this.containerOuter.addFocusState(); - } - }, _b[constants_1.SELECT_ONE_TYPE] = function () { - _this.containerOuter.addFocusState(); - - if (target === _this.input.element) { - _this.showDropdown(true); - } - }, _b[constants_1.SELECT_MULTIPLE_TYPE] = function () { - if (target === _this.input.element) { - _this.showDropdown(true); // If element is a select box, the focused element is the container and the dropdown - // isn't already open, focus and show dropdown - - - _this.containerOuter.addFocusState(); - } - }, _b); - focusActions[this.passedElement.element.type](); - }; - - Choices.prototype._onBlur = function (_a) { - var _b; - - var _this = this; - - var target = _a.target; - var blurWasWithinContainer = target && this.containerOuter.element.contains(target); - - if (blurWasWithinContainer && !this._isScrollingOnIe) { - var activeItems = this._store.activeItems; - var hasHighlightedItems_1 = activeItems.some(function (item) { - return item.highlighted; - }); - var blurActions = (_b = {}, _b[constants_1.TEXT_TYPE] = function () { - if (target === _this.input.element) { - _this.containerOuter.removeFocusState(); - - if (hasHighlightedItems_1) { - _this.unhighlightAll(); - } - - _this.hideDropdown(true); - } - }, _b[constants_1.SELECT_ONE_TYPE] = function () { - _this.containerOuter.removeFocusState(); - - if (target === _this.input.element || target === _this.containerOuter.element && !_this._canSearch) { - _this.hideDropdown(true); - } - }, _b[constants_1.SELECT_MULTIPLE_TYPE] = function () { - if (target === _this.input.element) { - _this.containerOuter.removeFocusState(); - - _this.hideDropdown(true); - - if (hasHighlightedItems_1) { - _this.unhighlightAll(); - } - } - }, _b); - blurActions[this.passedElement.element.type](); - } else { - // On IE11, clicking the scollbar blurs our input and thus - // closes the dropdown. To stop this, we refocus our input - // if we know we are on IE *and* are scrolling. - this._isScrollingOnIe = false; - this.input.element.focus(); - } - }; - - Choices.prototype._onFormReset = function () { - this._store.dispatch(misc_1.resetTo(this._initialState)); - }; - - Choices.prototype._highlightChoice = function (el) { - var _this = this; - - if (el === void 0) { - el = null; - } - - var choices = Array.from(this.dropdown.element.querySelectorAll('[data-choice-selectable]')); - - if (!choices.length) { - return; - } - - var passedEl = el; - var highlightedChoices = Array.from(this.dropdown.element.querySelectorAll("." + this.config.classNames.highlightedState)); // Remove any highlighted choices - - highlightedChoices.forEach(function (choice) { - choice.classList.remove(_this.config.classNames.highlightedState); - choice.setAttribute('aria-selected', 'false'); - }); - - if (passedEl) { - this._highlightPosition = choices.indexOf(passedEl); - } else { - // Highlight choice based on last known highlight location - if (choices.length > this._highlightPosition) { - // If we have an option to highlight - passedEl = choices[this._highlightPosition]; - } else { - // Otherwise highlight the option before - passedEl = choices[choices.length - 1]; - } - - if (!passedEl) { - passedEl = choices[0]; - } - } - - passedEl.classList.add(this.config.classNames.highlightedState); - passedEl.setAttribute('aria-selected', 'true'); - this.passedElement.triggerEvent(constants_1.EVENTS.highlightChoice, { - el: passedEl - }); - - if (this.dropdown.isActive) { - // IE11 ignores aria-label and blocks virtual keyboard - // if aria-activedescendant is set without a dropdown - this.input.setActiveDescendant(passedEl.id); - this.containerOuter.setActiveDescendant(passedEl.id); - } - }; - - Choices.prototype._addItem = function (_a) { - var value = _a.value, - _b = _a.label, - label = _b === void 0 ? null : _b, - _c = _a.choiceId, - choiceId = _c === void 0 ? -1 : _c, - _d = _a.groupId, - groupId = _d === void 0 ? -1 : _d, - _e = _a.customProperties, - customProperties = _e === void 0 ? {} : _e, - _f = _a.placeholder, - placeholder = _f === void 0 ? false : _f, - _g = _a.keyCode, - keyCode = _g === void 0 ? -1 : _g; - var passedValue = typeof value === 'string' ? value.trim() : value; - var items = this._store.items; - var passedLabel = label || passedValue; - var passedOptionId = choiceId || -1; - var group = groupId >= 0 ? this._store.getGroupById(groupId) : null; - var id = items ? items.length + 1 : 1; // If a prepended value has been passed, prepend it - - if (this.config.prependValue) { - passedValue = this.config.prependValue + passedValue.toString(); - } // If an appended value has been passed, append it - - - if (this.config.appendValue) { - passedValue += this.config.appendValue.toString(); - } - - this._store.dispatch(items_1.addItem({ - value: passedValue, - label: passedLabel, - id: id, - choiceId: passedOptionId, - groupId: groupId, - customProperties: customProperties, - placeholder: placeholder, - keyCode: keyCode - })); - - if (this._isSelectOneElement) { - this.removeActiveItems(id); - } // Trigger change event - - - this.passedElement.triggerEvent(constants_1.EVENTS.addItem, { - id: id, - value: passedValue, - label: passedLabel, - customProperties: customProperties, - groupValue: group && group.value ? group.value : null, - keyCode: keyCode - }); - }; - - Choices.prototype._removeItem = function (item) { - var id = item.id, - value = item.value, - label = item.label, - customProperties = item.customProperties, - choiceId = item.choiceId, - groupId = item.groupId; - var group = groupId && groupId >= 0 ? this._store.getGroupById(groupId) : null; - - if (!id || !choiceId) { - return; - } - - this._store.dispatch(items_1.removeItem(id, choiceId)); - - this.passedElement.triggerEvent(constants_1.EVENTS.removeItem, { - id: id, - value: value, - label: label, - customProperties: customProperties, - groupValue: group && group.value ? group.value : null - }); - }; - - Choices.prototype._addChoice = function (_a) { - var value = _a.value, - _b = _a.label, - label = _b === void 0 ? null : _b, - _c = _a.isSelected, - isSelected = _c === void 0 ? false : _c, - _d = _a.isDisabled, - isDisabled = _d === void 0 ? false : _d, - _e = _a.groupId, - groupId = _e === void 0 ? -1 : _e, - _f = _a.customProperties, - customProperties = _f === void 0 ? {} : _f, - _g = _a.placeholder, - placeholder = _g === void 0 ? false : _g, - _h = _a.keyCode, - keyCode = _h === void 0 ? -1 : _h; - - if (typeof value === 'undefined' || value === null) { - return; - } // Generate unique id - - - var choices = this._store.choices; - var choiceLabel = label || value; - var choiceId = choices ? choices.length + 1 : 1; - var choiceElementId = this._baseId + "-" + this._idNames.itemChoice + "-" + choiceId; - - this._store.dispatch(choices_1.addChoice({ - id: choiceId, - groupId: groupId, - elementId: choiceElementId, - value: value, - label: choiceLabel, - disabled: isDisabled, - customProperties: customProperties, - placeholder: placeholder, - keyCode: keyCode - })); - - if (isSelected) { - this._addItem({ - value: value, - label: choiceLabel, - choiceId: choiceId, - customProperties: customProperties, - placeholder: placeholder, - keyCode: keyCode - }); - } - }; - - Choices.prototype._addGroup = function (_a) { - var _this = this; - - var group = _a.group, - id = _a.id, - _b = _a.valueKey, - valueKey = _b === void 0 ? 'value' : _b, - _c = _a.labelKey, - labelKey = _c === void 0 ? 'label' : _c; - var groupChoices = utils_1.isType('Object', group) ? group.choices : Array.from(group.getElementsByTagName('OPTION')); - var groupId = id || Math.floor(new Date().valueOf() * Math.random()); - var isDisabled = group.disabled ? group.disabled : false; - - if (groupChoices) { - this._store.dispatch(groups_1.addGroup({ - value: group.label, - id: groupId, - active: true, - disabled: isDisabled - })); - - var addGroupChoices = function addGroupChoices(choice) { - var isOptDisabled = choice.disabled || choice.parentNode && choice.parentNode.disabled; - - _this._addChoice({ - value: choice[valueKey], - label: utils_1.isType('Object', choice) ? choice[labelKey] : choice.innerHTML, - isSelected: choice.selected, - isDisabled: isOptDisabled, - groupId: groupId, - customProperties: choice.customProperties, - placeholder: choice.placeholder - }); - }; - - groupChoices.forEach(addGroupChoices); - } else { - this._store.dispatch(groups_1.addGroup({ - value: group.label, - id: group.id, - active: false, - disabled: group.disabled - })); - } - }; - - Choices.prototype._getTemplate = function (template) { - var _a; - - var args = []; - - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - - var classNames = this.config.classNames; - return (_a = this._templates[template]).call.apply(_a, __spreadArrays([this, classNames], args)); - }; - - Choices.prototype._createTemplates = function () { - var callbackOnCreateTemplates = this.config.callbackOnCreateTemplates; - var userTemplates = {}; - - if (callbackOnCreateTemplates && typeof callbackOnCreateTemplates === 'function') { - userTemplates = callbackOnCreateTemplates.call(this, utils_1.strToEl); - } - - this._templates = deepmerge_1.default(templates_1.default, userTemplates); - }; - - Choices.prototype._createElements = function () { - this.containerOuter = new components_1.Container({ - element: this._getTemplate('containerOuter', this._direction, this._isSelectElement, this._isSelectOneElement, this.config.searchEnabled, this.passedElement.element.type), - classNames: this.config.classNames, - type: this.passedElement.element.type, - position: this.config.position - }); - this.containerInner = new components_1.Container({ - element: this._getTemplate('containerInner'), - classNames: this.config.classNames, - type: this.passedElement.element.type, - position: this.config.position - }); - this.input = new components_1.Input({ - element: this._getTemplate('input', this._placeholderValue), - classNames: this.config.classNames, - type: this.passedElement.element.type, - preventPaste: !this.config.paste - }); - this.choiceList = new components_1.List({ - element: this._getTemplate('choiceList', this._isSelectOneElement) - }); - this.itemList = new components_1.List({ - element: this._getTemplate('itemList', this._isSelectOneElement) - }); - this.dropdown = new components_1.Dropdown({ - element: this._getTemplate('dropdown'), - classNames: this.config.classNames, - type: this.passedElement.element.type - }); - }; - - Choices.prototype._createStructure = function () { - // Hide original element - this.passedElement.conceal(); // Wrap input in container preserving DOM ordering - - this.containerInner.wrap(this.passedElement.element); // Wrapper inner container with outer container - - this.containerOuter.wrap(this.containerInner.element); - - if (this._isSelectOneElement) { - this.input.placeholder = this.config.searchPlaceholderValue || ''; - } else if (this._placeholderValue) { - this.input.placeholder = this._placeholderValue; - this.input.setWidth(); - } - - this.containerOuter.element.appendChild(this.containerInner.element); - this.containerOuter.element.appendChild(this.dropdown.element); - this.containerInner.element.appendChild(this.itemList.element); - - if (!this._isTextElement) { - this.dropdown.element.appendChild(this.choiceList.element); - } - - if (!this._isSelectOneElement) { - this.containerInner.element.appendChild(this.input.element); - } else if (this.config.searchEnabled) { - this.dropdown.element.insertBefore(this.input.element, this.dropdown.element.firstChild); - } - - if (this._isSelectElement) { - this._highlightPosition = 0; - this._isSearching = false; - - this._startLoading(); - - if (this._presetGroups.length) { - this._addPredefinedGroups(this._presetGroups); - } else { - this._addPredefinedChoices(this._presetChoices); - } - - this._stopLoading(); - } - - if (this._isTextElement) { - this._addPredefinedItems(this._presetItems); - } - }; - - Choices.prototype._addPredefinedGroups = function (groups) { - var _this = this; // If we have a placeholder option - - - var placeholderChoice = this.passedElement.placeholderOption; - - if (placeholderChoice && placeholderChoice.parentNode && placeholderChoice.parentNode.tagName === 'SELECT') { - this._addChoice({ - value: placeholderChoice.value, - label: placeholderChoice.innerHTML, - isSelected: placeholderChoice.selected, - isDisabled: placeholderChoice.disabled, - placeholder: true - }); - } - - groups.forEach(function (group) { - return _this._addGroup({ - group: group, - id: group.id || null - }); - }); - }; - - Choices.prototype._addPredefinedChoices = function (choices) { - var _this = this; // If sorting is enabled or the user is searching, filter choices - - - if (this.config.shouldSort) { - choices.sort(this.config.sorter); - } - - var hasSelectedChoice = choices.some(function (choice) { - return choice.selected; - }); - var firstEnabledChoiceIndex = choices.findIndex(function (choice) { - return choice.disabled === undefined || !choice.disabled; - }); - choices.forEach(function (choice, index) { - var _a = choice.value, - value = _a === void 0 ? '' : _a, - label = choice.label, - customProperties = choice.customProperties, - placeholder = choice.placeholder; - - if (_this._isSelectElement) { - // If the choice is actually a group - if (choice.choices) { - _this._addGroup({ - group: choice, - id: choice.id || null - }); - } else { - /** - * If there is a selected choice already or the choice is not the first in - * the array, add each choice normally. - * - * Otherwise we pre-select the first enabled choice in the array ("select-one" only) - */ - var shouldPreselect = _this._isSelectOneElement && !hasSelectedChoice && index === firstEnabledChoiceIndex; - var isSelected = shouldPreselect ? true : choice.selected; - var isDisabled = choice.disabled; - console.log(isDisabled, choice); - - _this._addChoice({ - value: value, - label: label, - isSelected: !!isSelected, - isDisabled: !!isDisabled, - placeholder: !!placeholder, - customProperties: customProperties - }); - } - } else { - _this._addChoice({ - value: value, - label: label, - isSelected: !!choice.selected, - isDisabled: !!choice.disabled, - placeholder: !!choice.placeholder, - customProperties: customProperties - }); - } - }); - }; - - Choices.prototype._addPredefinedItems = function (items) { - var _this = this; - - items.forEach(function (item) { - if (typeof item === 'object' && item.value) { - _this._addItem({ - value: item.value, - label: item.label, - choiceId: item.id, - customProperties: item.customProperties, - placeholder: item.placeholder - }); - } - - if (typeof item === 'string') { - _this._addItem({ - value: item - }); - } - }); - }; - - Choices.prototype._setChoiceOrItem = function (item) { - var _this = this; - - var itemType = utils_1.getType(item).toLowerCase(); - var handleType = { - object: function object() { - if (!item.value) { - return; - } // If we are dealing with a select input, we need to create an option first - // that is then selected. For text inputs we can just add items normally. - - - if (!_this._isTextElement) { - _this._addChoice({ - value: item.value, - label: item.label, - isSelected: true, - isDisabled: false, - customProperties: item.customProperties, - placeholder: item.placeholder - }); - } else { - _this._addItem({ - value: item.value, - label: item.label, - choiceId: item.id, - customProperties: item.customProperties, - placeholder: item.placeholder - }); - } - }, - string: function string() { - if (!_this._isTextElement) { - _this._addChoice({ - value: item, - label: item, - isSelected: true, - isDisabled: false - }); - } else { - _this._addItem({ - value: item - }); - } - } - }; - handleType[itemType](); - }; - - Choices.prototype._findAndSelectChoiceByValue = function (value) { - var _this = this; - - var choices = this._store.choices; // Check 'value' property exists and the choice isn't already selected - - var foundChoice = choices.find(function (choice) { - return _this.config.valueComparer(choice.value, value); - }); - - if (foundChoice && !foundChoice.selected) { - this._addItem({ - value: foundChoice.value, - label: foundChoice.label, - choiceId: foundChoice.id, - groupId: foundChoice.groupId, - customProperties: foundChoice.customProperties, - placeholder: foundChoice.placeholder, - keyCode: foundChoice.keyCode - }); - } - }; - - Choices.prototype._generatePlaceholderValue = function () { - if (this._isSelectElement) { - var placeholderOption = this.passedElement.placeholderOption; - return placeholderOption ? placeholderOption.text : null; - } - - var _a = this.config, - placeholder = _a.placeholder, - placeholderValue = _a.placeholderValue; - var dataset = this.passedElement.element.dataset; - - if (placeholder) { - if (placeholderValue) { - return placeholderValue; - } - - if (dataset.placeholder) { - return dataset.placeholder; - } - } - - return null; - }; - - return Choices; - }(); - - exports.default = Choices; - - /***/ }), - /* 9 */ - /***/ (function(module, exports, __webpack_require__) { - - /*! - * Fuse.js v3.4.6 - Lightweight fuzzy-search (http://fusejs.io) - * - * Copyright (c) 2012-2017 Kirollos Risk (http://kiro.me) - * All Rights Reserved. Apache Software License 2.0 - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - !function(e,t){ true?module.exports=t():undefined}(this,function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=1)}([function(e,t){e.exports=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===Object.prototype.toString.call(e)}},function(e,t,n){function r(e){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function o(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{limit:!1};this._log('---------\nSearch pattern: "'.concat(e,'"'));var n=this._prepareSearchers(e),r=n.tokenSearchers,o=n.fullSearcher,i=this._search(r,o),a=i.weights,s=i.results;return this._computeScore(a,s),this.options.shouldSort&&this._sort(s),t.limit&&"number"==typeof t.limit&&(s=s.slice(0,t.limit)),this._format(s)}},{key:"_prepareSearchers",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];if(this.options.tokenize)for(var n=e.split(this.options.tokenSeparator),r=0,o=n.length;r0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0,n=this.list,r={},o=[];if("string"==typeof n[0]){for(var i=0,a=n.length;i1)throw new Error("Key weight has to be > 0 and <= 1");d=d.name}else s[d]={weight:1};this._analyze({key:d,value:this.options.getFn(l,d),record:l,index:c},{resultMap:r,results:o,tokenSearchers:e,fullSearcher:t})}return{weights:s,results:o}}},{key:"_analyze",value:function(e,t){var n=e.key,r=e.arrayIndex,o=void 0===r?-1:r,i=e.value,a=e.record,c=e.index,h=t.tokenSearchers,l=void 0===h?[]:h,u=t.fullSearcher,f=void 0===u?[]:u,d=t.resultMap,v=void 0===d?{}:d,p=t.results,g=void 0===p?[]:p;if(null!=i){var y=!1,m=-1,k=0;if("string"==typeof i){this._log("\nKey: ".concat(""===n?"-":n));var S=f.search(i);if(this._log('Full text: "'.concat(i,'", score: ').concat(S.score)),this.options.tokenize){for(var x=i.split(this.options.tokenSeparator),b=[],M=0;M-1&&(P=(P+m)/2),this._log("Score average:",P);var F=!this.options.tokenize||!this.options.matchAllTokens||k>=l.length;if(this._log("\nCheck Matches: ".concat(F)),(y||S.isMatch)&&F){var T=v[c];T?T.output.push({key:n,arrayIndex:o,value:i,score:P,matchedIndices:S.matchedIndices}):(v[c]={item:a,output:[{key:n,arrayIndex:o,value:i,score:P,matchedIndices:S.matchedIndices}]},g.push(v[c]))}}else if(s(i))for(var z=0,E=i.length;z-1&&(a.arrayIndex=i.arrayIndex),t.matches.push(a)}}}),this.options.includeScore&&o.push(function(e,t){t.score=e.score});for(var i=0,a=e.length;in)return o(e,this.pattern,r);var a=this.options,s=a.location,c=a.distance,h=a.threshold,l=a.findAllMatches,u=a.minMatchCharLength;return i(e,this.pattern,this.patternAlphabet,{location:s,distance:c,threshold:h,findAllMatches:l,minMatchCharLength:u})}}])&&r(t.prototype,n),s&&r(t,s),e}();e.exports=s},function(e,t){var n=/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g;e.exports=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:/ +/g,o=new RegExp(t.replace(n,"\\$&").replace(r,"|")),i=e.match(o),a=!!i,s=[];if(a)for(var c=0,h=i.length;c=P;z-=1){var E=z-1,K=n[e.charAt(E)];if(K&&(x[E]=1),T[z]=(T[z+1]<<1|1)&K,0!==I&&(T[z]|=(L[z+1]|L[z])<<1|1|L[z+1]),T[z]&C&&(w=r(t,{errors:I,currentLocation:E,expectedLocation:g,distance:h}))<=m){if(m=w,(k=E)<=g)break;P=Math.max(1,2*g-k)}}if(r(t,{errors:I+1,currentLocation:g,expectedLocation:g,distance:h})>m)break;L=T}return{isMatch:k>=0,score:0===w?.001:w,matchedIndices:o(x,p)}}},function(e,t){e.exports=function(e,t){var n=t.errors,r=void 0===n?0:n,o=t.currentLocation,i=void 0===o?0:o,a=t.expectedLocation,s=void 0===a?0:a,c=t.distance,h=void 0===c?100:c,l=r/e.length,u=Math.abs(s-i);return h?l+u/h:u?1:l}},function(e,t){e.exports=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=[],r=-1,o=-1,i=0,a=e.length;i=t&&n.push([r,o]),r=-1)}return e[i-1]&&i-r>=t&&n.push([r,i-1]),n}},function(e,t){e.exports=function(e){for(var t={},n=e.length,r=0;r -1) { - return state.map(function (obj) { - var choice = obj; - - if (choice.id === parseInt("" + addItemAction_1.choiceId, 10)) { - choice.selected = true; - } - - return choice; - }); - } - - return state; - } - - case 'REMOVE_ITEM': - { - var removeItemAction_1 = action; // When an item is removed and it has an associated choice, - // we want to re-enable it so it can be chosen again - - if (removeItemAction_1.choiceId && removeItemAction_1.choiceId > -1) { - return state.map(function (obj) { - var choice = obj; - - if (choice.id === parseInt("" + removeItemAction_1.choiceId, 10)) { - choice.selected = false; - } - - return choice; - }); - } - - return state; - } - - case 'FILTER_CHOICES': - { - var filterChoicesAction_1 = action; - return state.map(function (obj) { - var choice = obj; // Set active state based on whether choice is - // within filtered results - - choice.active = filterChoicesAction_1.results.some(function (_a) { - var item = _a.item, - score = _a.score; - - if (item.id === choice.id) { - choice.score = score; - return true; - } - - return false; - }); - return choice; - }); - } - - case 'ACTIVATE_CHOICES': - { - var activateChoicesAction_1 = action; - return state.map(function (obj) { - var choice = obj; - choice.active = activateChoicesAction_1.active; - return choice; - }); - } - - case 'CLEAR_CHOICES': - { - return exports.defaultState; - } - - default: - { - return state; - } - } - } - - exports.default = choices; - - /***/ }), - /* 17 */ - /***/ (function(module, exports, __webpack_require__) { - - "use strict"; - - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.defaultState = false; - - var general = function general(state, action) { - if (state === void 0) { - state = exports.defaultState; - } - - switch (action.type) { - case 'SET_IS_LOADING': - { - return action.isLoading; - } - - default: - { - return state; - } - } - }; - - exports.default = general; - - /***/ }), - /* 18 */ - /***/ (function(module, exports, __webpack_require__) { - - "use strict"; - - - var __importDefault = this && this.__importDefault || function (mod) { - return mod && mod.__esModule ? mod : { - "default": mod - }; - }; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var dropdown_1 = __importDefault(__webpack_require__(19)); - - exports.Dropdown = dropdown_1.default; - - var container_1 = __importDefault(__webpack_require__(20)); - - exports.Container = container_1.default; - - var input_1 = __importDefault(__webpack_require__(21)); - - exports.Input = input_1.default; - - var list_1 = __importDefault(__webpack_require__(22)); - - exports.List = list_1.default; - - var wrapped_input_1 = __importDefault(__webpack_require__(23)); - - exports.WrappedInput = wrapped_input_1.default; - - var wrapped_select_1 = __importDefault(__webpack_require__(24)); - - exports.WrappedSelect = wrapped_select_1.default; - - /***/ }), - /* 19 */ - /***/ (function(module, exports, __webpack_require__) { - - "use strict"; - - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var Dropdown = - /** @class */ - function () { - function Dropdown(_a) { - var element = _a.element, - type = _a.type, - classNames = _a.classNames; - this.element = element; - this.classNames = classNames; - this.type = type; - this.isActive = false; - } - - Object.defineProperty(Dropdown.prototype, "distanceFromTopWindow", { - /** - * Bottom position of dropdown in viewport coordinates - */ - get: function get() { - return this.element.getBoundingClientRect().bottom; - }, - enumerable: true, - configurable: true - }); - - Dropdown.prototype.getChild = function (selector) { - return this.element.querySelector(selector); - }; - /** - * Show dropdown to user by adding active state class - */ - - - Dropdown.prototype.show = function () { - this.element.classList.add(this.classNames.activeState); - this.element.setAttribute('aria-expanded', 'true'); - this.isActive = true; - return this; - }; - /** - * Hide dropdown from user - */ - - - Dropdown.prototype.hide = function () { - this.element.classList.remove(this.classNames.activeState); - this.element.setAttribute('aria-expanded', 'false'); - this.isActive = false; - return this; - }; - - return Dropdown; - }(); - - exports.default = Dropdown; - - /***/ }), - /* 20 */ - /***/ (function(module, exports, __webpack_require__) { - - "use strict"; - - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var utils_1 = __webpack_require__(1); - - var constants_1 = __webpack_require__(0); - - var Container = - /** @class */ - function () { - function Container(_a) { - var element = _a.element, - type = _a.type, - classNames = _a.classNames, - position = _a.position; - this.element = element; - this.classNames = classNames; - this.type = type; - this.position = position; - this.isOpen = false; - this.isFlipped = false; - this.isFocussed = false; - this.isDisabled = false; - this.isLoading = false; - this._onFocus = this._onFocus.bind(this); - this._onBlur = this._onBlur.bind(this); - } - - Container.prototype.addEventListeners = function () { - this.element.addEventListener('focus', this._onFocus); - this.element.addEventListener('blur', this._onBlur); - }; - - Container.prototype.removeEventListeners = function () { - this.element.removeEventListener('focus', this._onFocus); - this.element.removeEventListener('blur', this._onBlur); - }; - /** - * Determine whether container should be flipped based on passed - * dropdown position - */ - - - Container.prototype.shouldFlip = function (dropdownPos) { - if (typeof dropdownPos !== 'number') { - return false; - } // If flip is enabled and the dropdown bottom position is - // greater than the window height flip the dropdown. - - - var shouldFlip = false; - - if (this.position === 'auto') { - shouldFlip = !window.matchMedia("(min-height: " + (dropdownPos + 1) + "px)").matches; - } else if (this.position === 'top') { - shouldFlip = true; - } - - return shouldFlip; - }; - - Container.prototype.setActiveDescendant = function (activeDescendantID) { - this.element.setAttribute('aria-activedescendant', activeDescendantID); - }; - - Container.prototype.removeActiveDescendant = function () { - this.element.removeAttribute('aria-activedescendant'); - }; - - Container.prototype.open = function (dropdownPos) { - this.element.classList.add(this.classNames.openState); - this.element.setAttribute('aria-expanded', 'true'); - this.isOpen = true; - - if (this.shouldFlip(dropdownPos)) { - this.element.classList.add(this.classNames.flippedState); - this.isFlipped = true; - } - }; - - Container.prototype.close = function () { - this.element.classList.remove(this.classNames.openState); - this.element.setAttribute('aria-expanded', 'false'); - this.removeActiveDescendant(); - this.isOpen = false; // A dropdown flips if it does not have space within the page - - if (this.isFlipped) { - this.element.classList.remove(this.classNames.flippedState); - this.isFlipped = false; - } - }; - - Container.prototype.focus = function () { - if (!this.isFocussed) { - this.element.focus(); - } - }; - - Container.prototype.addFocusState = function () { - this.element.classList.add(this.classNames.focusState); - }; - - Container.prototype.removeFocusState = function () { - this.element.classList.remove(this.classNames.focusState); - }; - - Container.prototype.enable = function () { - this.element.classList.remove(this.classNames.disabledState); - this.element.removeAttribute('aria-disabled'); - - if (this.type === constants_1.SELECT_ONE_TYPE) { - this.element.setAttribute('tabindex', '0'); - } - - this.isDisabled = false; - }; - - Container.prototype.disable = function () { - this.element.classList.add(this.classNames.disabledState); - this.element.setAttribute('aria-disabled', 'true'); - - if (this.type === constants_1.SELECT_ONE_TYPE) { - this.element.setAttribute('tabindex', '-1'); - } - - this.isDisabled = true; - }; - - Container.prototype.wrap = function (element) { - utils_1.wrap(element, this.element); - }; - - Container.prototype.unwrap = function (element) { - if (this.element.parentNode) { - // Move passed element outside this element - this.element.parentNode.insertBefore(element, this.element); // Remove this element - - this.element.parentNode.removeChild(this.element); - } - }; - - Container.prototype.addLoadingState = function () { - this.element.classList.add(this.classNames.loadingState); - this.element.setAttribute('aria-busy', 'true'); - this.isLoading = true; - }; - - Container.prototype.removeLoadingState = function () { - this.element.classList.remove(this.classNames.loadingState); - this.element.removeAttribute('aria-busy'); - this.isLoading = false; - }; - - Container.prototype._onFocus = function () { - this.isFocussed = true; - }; - - Container.prototype._onBlur = function () { - this.isFocussed = false; - }; - - return Container; - }(); - - exports.default = Container; - - /***/ }), - /* 21 */ - /***/ (function(module, exports, __webpack_require__) { - - "use strict"; - - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var utils_1 = __webpack_require__(1); - - var constants_1 = __webpack_require__(0); - - var Input = - /** @class */ - function () { - function Input(_a) { - var element = _a.element, - type = _a.type, - classNames = _a.classNames, - preventPaste = _a.preventPaste; - this.element = element; - this.type = type; - this.classNames = classNames; - this.preventPaste = preventPaste; - this.isFocussed = this.element.isEqualNode(document.activeElement); - this.isDisabled = element.disabled; - this._onPaste = this._onPaste.bind(this); - this._onInput = this._onInput.bind(this); - this._onFocus = this._onFocus.bind(this); - this._onBlur = this._onBlur.bind(this); - } - - Object.defineProperty(Input.prototype, "placeholder", { - set: function set(placeholder) { - this.element.placeholder = placeholder; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(Input.prototype, "value", { - get: function get() { - return utils_1.sanitise(this.element.value); - }, - set: function set(value) { - this.element.value = value; - }, - enumerable: true, - configurable: true - }); - - Input.prototype.addEventListeners = function () { - this.element.addEventListener('paste', this._onPaste); - this.element.addEventListener('input', this._onInput, { - passive: true - }); - this.element.addEventListener('focus', this._onFocus, { - passive: true - }); - this.element.addEventListener('blur', this._onBlur, { - passive: true - }); - }; - - Input.prototype.removeEventListeners = function () { - this.element.removeEventListener('input', this._onInput); - this.element.removeEventListener('paste', this._onPaste); - this.element.removeEventListener('focus', this._onFocus); - this.element.removeEventListener('blur', this._onBlur); - }; - - Input.prototype.enable = function () { - this.element.removeAttribute('disabled'); - this.isDisabled = false; - }; - - Input.prototype.disable = function () { - this.element.setAttribute('disabled', ''); - this.isDisabled = true; - }; - - Input.prototype.focus = function () { - if (!this.isFocussed) { - this.element.focus(); - } - }; - - Input.prototype.blur = function () { - if (this.isFocussed) { - this.element.blur(); - } - }; - - Input.prototype.clear = function (setWidth) { - if (setWidth === void 0) { - setWidth = true; - } - - if (this.element.value) { - this.element.value = ''; - } - - if (setWidth) { - this.setWidth(); - } - - return this; - }; - /** - * Set the correct input width based on placeholder - * value or input value - */ - - - Input.prototype.setWidth = function () { - // Resize input to contents or placeholder - var _a = this.element, - style = _a.style, - value = _a.value, - placeholder = _a.placeholder; - style.minWidth = placeholder.length + 1 + "ch"; - style.width = value.length + 1 + "ch"; - }; - - Input.prototype.setActiveDescendant = function (activeDescendantID) { - this.element.setAttribute('aria-activedescendant', activeDescendantID); - }; - - Input.prototype.removeActiveDescendant = function () { - this.element.removeAttribute('aria-activedescendant'); - }; - - Input.prototype._onInput = function () { - if (this.type !== constants_1.SELECT_ONE_TYPE) { - this.setWidth(); - } - }; - - Input.prototype._onPaste = function (event) { - if (this.preventPaste) { - event.preventDefault(); - } - }; - - Input.prototype._onFocus = function () { - this.isFocussed = true; - }; - - Input.prototype._onBlur = function () { - this.isFocussed = false; - }; - - return Input; - }(); - - exports.default = Input; - - /***/ }), - /* 22 */ - /***/ (function(module, exports, __webpack_require__) { - - "use strict"; - - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var constants_1 = __webpack_require__(0); - - var List = - /** @class */ - function () { - function List(_a) { - var element = _a.element; - this.element = element; - this.scrollPos = this.element.scrollTop; - this.height = this.element.offsetHeight; - } - - List.prototype.clear = function () { - this.element.innerHTML = ''; - }; - - List.prototype.append = function (node) { - this.element.appendChild(node); - }; - - List.prototype.getChild = function (selector) { - return this.element.querySelector(selector); - }; - - List.prototype.hasChildren = function () { - return this.element.hasChildNodes(); - }; - - List.prototype.scrollToTop = function () { - this.element.scrollTop = 0; - }; - - List.prototype.scrollToChildElement = function (element, direction) { - var _this = this; - - if (!element) { - return; - } - - var listHeight = this.element.offsetHeight; // Scroll position of dropdown - - var listScrollPosition = this.element.scrollTop + listHeight; - var elementHeight = element.offsetHeight; // Distance from bottom of element to top of parent - - var elementPos = element.offsetTop + elementHeight; // Difference between the element and scroll position - - var destination = direction > 0 ? this.element.scrollTop + elementPos - listScrollPosition : element.offsetTop; - requestAnimationFrame(function () { - _this._animateScroll(destination, direction); - }); - }; - - List.prototype._scrollDown = function (scrollPos, strength, destination) { - var easing = (destination - scrollPos) / strength; - var distance = easing > 1 ? easing : 1; - this.element.scrollTop = scrollPos + distance; - }; - - List.prototype._scrollUp = function (scrollPos, strength, destination) { - var easing = (scrollPos - destination) / strength; - var distance = easing > 1 ? easing : 1; - this.element.scrollTop = scrollPos - distance; - }; - - List.prototype._animateScroll = function (destination, direction) { - var _this = this; - - var strength = constants_1.SCROLLING_SPEED; - var choiceListScrollTop = this.element.scrollTop; - var continueAnimation = false; - - if (direction > 0) { - this._scrollDown(choiceListScrollTop, strength, destination); - - if (choiceListScrollTop < destination) { - continueAnimation = true; - } - } else { - this._scrollUp(choiceListScrollTop, strength, destination); - - if (choiceListScrollTop > destination) { - continueAnimation = true; - } - } - - if (continueAnimation) { - requestAnimationFrame(function () { - _this._animateScroll(destination, direction); - }); - } - }; - - return List; - }(); - - exports.default = List; - - /***/ }), - /* 23 */ - /***/ (function(module, exports, __webpack_require__) { - - "use strict"; - - - var __extends = this && this.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (b.hasOwnProperty(p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - }(); - - var __importDefault = this && this.__importDefault || function (mod) { - return mod && mod.__esModule ? mod : { - "default": mod - }; - }; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var wrapped_element_1 = __importDefault(__webpack_require__(5)); - - var WrappedInput = - /** @class */ - function (_super) { - __extends(WrappedInput, _super); - - function WrappedInput(_a) { - var element = _a.element, - classNames = _a.classNames, - delimiter = _a.delimiter; - - var _this = _super.call(this, { - element: element, - classNames: classNames - }) || this; - - _this.delimiter = delimiter; - return _this; - } - - Object.defineProperty(WrappedInput.prototype, "value", { - get: function get() { - return this.element.value; - }, - set: function set(value) { - this.element.setAttribute('value', value); - this.element.value = value; - }, - enumerable: true, - configurable: true - }); - return WrappedInput; - }(wrapped_element_1.default); - - exports.default = WrappedInput; - - /***/ }), - /* 24 */ - /***/ (function(module, exports, __webpack_require__) { - - "use strict"; - - - var __extends = this && this.__extends || function () { - var _extendStatics = function extendStatics(d, b) { - _extendStatics = Object.setPrototypeOf || { - __proto__: [] - } instanceof Array && function (d, b) { - d.__proto__ = b; - } || function (d, b) { - for (var p in b) { - if (b.hasOwnProperty(p)) d[p] = b[p]; - } - }; - - return _extendStatics(d, b); - }; - - return function (d, b) { - _extendStatics(d, b); - - function __() { - this.constructor = d; - } - - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - }(); - - var __importDefault = this && this.__importDefault || function (mod) { - return mod && mod.__esModule ? mod : { - "default": mod - }; - }; - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var wrapped_element_1 = __importDefault(__webpack_require__(5)); - - var WrappedSelect = - /** @class */ - function (_super) { - __extends(WrappedSelect, _super); - - function WrappedSelect(_a) { - var element = _a.element, - classNames = _a.classNames, - template = _a.template; - - var _this = _super.call(this, { - element: element, - classNames: classNames - }) || this; - - _this.template = template; - return _this; - } - - Object.defineProperty(WrappedSelect.prototype, "placeholderOption", { - get: function get() { - return this.element.querySelector('option[value=""]') || // Backward compatibility layer for the non-standard placeholder attribute supported in older versions. - this.element.querySelector('option[placeholder]'); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(WrappedSelect.prototype, "optionGroups", { - get: function get() { - return Array.from(this.element.getElementsByTagName('OPTGROUP')); - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(WrappedSelect.prototype, "options", { - get: function get() { - return Array.from(this.element.options); - }, - set: function set(options) { - var _this = this; - - var fragment = document.createDocumentFragment(); - - var addOptionToFragment = function addOptionToFragment(data) { - // Create a standard select option - var option = _this.template(data); // Append it to fragment - - - fragment.appendChild(option); - }; // Add each list item to list - - - options.forEach(function (optionData) { - return addOptionToFragment(optionData); - }); - this.appendDocFragment(fragment); - }, - enumerable: true, - configurable: true - }); - - WrappedSelect.prototype.appendDocFragment = function (fragment) { - this.element.innerHTML = ''; - this.element.appendChild(fragment); - }; - - return WrappedSelect; - }(wrapped_element_1.default); - - exports.default = WrappedSelect; - - /***/ }), - /* 25 */ - /***/ (function(module, exports, __webpack_require__) { - - "use strict"; - - - Object.defineProperty(exports, "__esModule", { - value: true - }); - /** - * Helpers to create HTML elements used by Choices - * Can be overridden by providing `callbackOnCreateTemplates` option - */ - - var templates = { - containerOuter: function containerOuter(_a, dir, isSelectElement, isSelectOneElement, searchEnabled, passedElementType) { - var containerOuter = _a.containerOuter; - var div = Object.assign(document.createElement('div'), { - className: containerOuter - }); - div.dataset.type = passedElementType; - - if (dir) { - div.dir = dir; - } - - if (isSelectOneElement) { - div.tabIndex = 0; - } - - if (isSelectElement) { - div.setAttribute('role', searchEnabled ? 'combobox' : 'listbox'); - - if (searchEnabled) { - div.setAttribute('aria-autocomplete', 'list'); - } - } - - div.setAttribute('aria-haspopup', 'true'); - div.setAttribute('aria-expanded', 'false'); - return div; - }, - containerInner: function containerInner(_a) { - var containerInner = _a.containerInner; - return Object.assign(document.createElement('div'), { - className: containerInner - }); - }, - itemList: function itemList(_a, isSelectOneElement) { - var list = _a.list, - listSingle = _a.listSingle, - listItems = _a.listItems; - return Object.assign(document.createElement('div'), { - className: list + " " + (isSelectOneElement ? listSingle : listItems) - }); - }, - placeholder: function placeholder(_a, value) { - var placeholder = _a.placeholder; - return Object.assign(document.createElement('div'), { - className: placeholder, - innerHTML: value - }); - }, - item: function item(_a, _b, removeItemButton) { - var item = _a.item, - button = _a.button, - highlightedState = _a.highlightedState, - itemSelectable = _a.itemSelectable, - placeholder = _a.placeholder; - var id = _b.id, - value = _b.value, - label = _b.label, - customProperties = _b.customProperties, - active = _b.active, - disabled = _b.disabled, - highlighted = _b.highlighted, - isPlaceholder = _b.placeholder; - var div = Object.assign(document.createElement('div'), { - className: item, - innerHTML: label - }); - Object.assign(div.dataset, { - item: '', - id: id, - value: value, - customProperties: customProperties - }); - - if (active) { - div.setAttribute('aria-selected', 'true'); - } - - if (disabled) { - div.setAttribute('aria-disabled', 'true'); - } - - if (isPlaceholder) { - div.classList.add(placeholder); - } - - div.classList.add(highlighted ? highlightedState : itemSelectable); - - if (removeItemButton) { - if (disabled) { - div.classList.remove(itemSelectable); - } - - div.dataset.deletable = ''; - /** @todo This MUST be localizable, not hardcoded! */ - - var REMOVE_ITEM_TEXT = 'Remove item'; - var removeButton = Object.assign(document.createElement('button'), { - type: 'button', - className: button, - innerHTML: REMOVE_ITEM_TEXT - }); - removeButton.setAttribute('aria-label', REMOVE_ITEM_TEXT + ": '" + value + "'"); - removeButton.dataset.button = ''; - div.appendChild(removeButton); - } - - return div; - }, - choiceList: function choiceList(_a, isSelectOneElement) { - var list = _a.list; - var div = Object.assign(document.createElement('div'), { - className: list - }); - - if (!isSelectOneElement) { - div.setAttribute('aria-multiselectable', 'true'); - } - - div.setAttribute('role', 'listbox'); - return div; - }, - choiceGroup: function choiceGroup(_a, _b) { - var group = _a.group, - groupHeading = _a.groupHeading, - itemDisabled = _a.itemDisabled; - var id = _b.id, - value = _b.value, - disabled = _b.disabled; - var div = Object.assign(document.createElement('div'), { - className: group + " " + (disabled ? itemDisabled : '') - }); - div.setAttribute('role', 'group'); - Object.assign(div.dataset, { - group: '', - id: id, - value: value - }); - - if (disabled) { - div.setAttribute('aria-disabled', 'true'); - } - - div.appendChild(Object.assign(document.createElement('div'), { - className: groupHeading, - innerHTML: value - })); - return div; - }, - choice: function choice(_a, _b, selectText) { - var item = _a.item, - itemChoice = _a.itemChoice, - itemSelectable = _a.itemSelectable, - selectedState = _a.selectedState, - itemDisabled = _a.itemDisabled, - placeholder = _a.placeholder; - var id = _b.id, - value = _b.value, - label = _b.label, - groupId = _b.groupId, - elementId = _b.elementId, - isDisabled = _b.disabled, - isSelected = _b.selected, - isPlaceholder = _b.placeholder; - var div = Object.assign(document.createElement('div'), { - id: elementId, - innerHTML: label, - className: item + " " + itemChoice - }); - - if (isSelected) { - div.classList.add(selectedState); - } - - if (isPlaceholder) { - div.classList.add(placeholder); - } - - div.setAttribute('role', groupId && groupId > 0 ? 'treeitem' : 'option'); - Object.assign(div.dataset, { - choice: '', - id: id, - value: value, - selectText: selectText - }); - - if (isDisabled) { - div.classList.add(itemDisabled); - div.dataset.choiceDisabled = ''; - div.setAttribute('aria-disabled', 'true'); - } else { - div.classList.add(itemSelectable); - div.dataset.choiceSelectable = ''; - } - - return div; - }, - input: function input(_a, placeholderValue) { - var input = _a.input, - inputCloned = _a.inputCloned; - var inp = Object.assign(document.createElement('input'), { - type: 'text', - className: input + " " + inputCloned, - autocomplete: 'off', - autocapitalize: 'off', - spellcheck: false - }); - inp.setAttribute('role', 'textbox'); - inp.setAttribute('aria-autocomplete', 'list'); - inp.setAttribute('aria-label', placeholderValue); - return inp; - }, - dropdown: function dropdown(_a) { - var list = _a.list, - listDropdown = _a.listDropdown; - var div = document.createElement('div'); - div.classList.add(list, listDropdown); - div.setAttribute('aria-expanded', 'false'); - return div; - }, - notice: function notice(_a, innerHTML, type) { - var item = _a.item, - itemChoice = _a.itemChoice, - noResults = _a.noResults, - noChoices = _a.noChoices; - - if (type === void 0) { - type = ''; - } - - var classes = [item, itemChoice]; - - if (type === 'no-choices') { - classes.push(noChoices); - } else if (type === 'no-results') { - classes.push(noResults); - } - - return Object.assign(document.createElement('div'), { - innerHTML: innerHTML, - className: classes.join(' ') - }); - }, - option: function option(_a) { - var label = _a.label, - value = _a.value, - customProperties = _a.customProperties, - active = _a.active, - disabled = _a.disabled; - var opt = new Option(label, value, false, active); - - if (customProperties) { - opt.dataset.customProperties = "" + customProperties; - } - - opt.disabled = !!disabled; - return opt; - } - }; - exports.default = templates; - - /***/ }), - /* 26 */ - /***/ (function(module, exports, __webpack_require__) { - - "use strict"; - - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var constants_1 = __webpack_require__(0); - - exports.addChoice = function (_a) { - var value = _a.value, - label = _a.label, - id = _a.id, - groupId = _a.groupId, - disabled = _a.disabled, - elementId = _a.elementId, - customProperties = _a.customProperties, - placeholder = _a.placeholder, - keyCode = _a.keyCode; - return { - type: constants_1.ACTION_TYPES.ADD_CHOICE, - value: value, - label: label, - id: id, - groupId: groupId, - disabled: disabled, - elementId: elementId, - customProperties: customProperties, - placeholder: placeholder, - keyCode: keyCode - }; - }; - - exports.filterChoices = function (results) { - return { - type: constants_1.ACTION_TYPES.FILTER_CHOICES, - results: results - }; - }; - - exports.activateChoices = function (active) { - if (active === void 0) { - active = true; - } - - return { - type: constants_1.ACTION_TYPES.ACTIVATE_CHOICES, - active: active - }; - }; - - exports.clearChoices = function () { - return { - type: constants_1.ACTION_TYPES.CLEAR_CHOICES - }; - }; - - /***/ }), - /* 27 */ - /***/ (function(module, exports, __webpack_require__) { - - "use strict"; - - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var constants_1 = __webpack_require__(0); - - exports.addItem = function (_a) { - var value = _a.value, - label = _a.label, - id = _a.id, - choiceId = _a.choiceId, - groupId = _a.groupId, - customProperties = _a.customProperties, - placeholder = _a.placeholder, - keyCode = _a.keyCode; - return { - type: constants_1.ACTION_TYPES.ADD_ITEM, - value: value, - label: label, - id: id, - choiceId: choiceId, - groupId: groupId, - customProperties: customProperties, - placeholder: placeholder, - keyCode: keyCode - }; - }; - - exports.removeItem = function (id, choiceId) { - return { - type: constants_1.ACTION_TYPES.REMOVE_ITEM, - id: id, - choiceId: choiceId - }; - }; - - exports.highlightItem = function (id, highlighted) { - return { - type: constants_1.ACTION_TYPES.HIGHLIGHT_ITEM, - id: id, - highlighted: highlighted - }; - }; - - /***/ }), - /* 28 */ - /***/ (function(module, exports, __webpack_require__) { - - "use strict"; - - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var constants_1 = __webpack_require__(0); - - exports.addGroup = function (_a) { - var value = _a.value, - id = _a.id, - active = _a.active, - disabled = _a.disabled; - return { - type: constants_1.ACTION_TYPES.ADD_GROUP, - value: value, - id: id, - active: active, - disabled: disabled - }; - }; - - /***/ }), - /* 29 */ - /***/ (function(module, exports, __webpack_require__) { - - "use strict"; - - - Object.defineProperty(exports, "__esModule", { - value: true - }); - - var constants_1 = __webpack_require__(0); - - exports.clearAll = function () { - return { - type: constants_1.ACTION_TYPES.CLEAR_ALL - }; - }; - - exports.resetTo = function (state) { - return { - type: constants_1.ACTION_TYPES.RESET_TO, - state: state - }; - }; - - exports.setIsLoading = function (isLoading) { - return { - type: constants_1.ACTION_TYPES.SET_IS_LOADING, - isLoading: isLoading - }; - }; - - /***/ }) - /******/ ])["default"]; -}); diff --git a/library/backend/assets/js/choices.min.js b/library/backend/assets/js/choices.min.js deleted file mode 100644 index 4bbe630..0000000 --- a/library/backend/assets/js/choices.min.js +++ /dev/null @@ -1,11 +0,0 @@ -/*! choices.js v9.0.1 | © 2019 Josh Johnson | https://github.com/jshjohnson/Choices#readme */ -window.Choices=function(e){var t={};function i(n){if(t[n])return t[n].exports;var s=t[n]={i:n,l:!1,exports:{}};return e[n].call(s.exports,s,s.exports,i),s.l=!0,s.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var s in e)i.d(n,s,function(t){return e[t]}.bind(null,s));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="/public/assets/scripts/",i(i.s=4)}([function(e,t,i){"use strict";var n=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===s}(e)}(e)};var s="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function r(e,t){return!1!==t.clone&&t.isMergeableObject(e)?l((i=e,Array.isArray(i)?[]:{}),e,t):e;var i}function o(e,t,i){return e.concat(t).map((function(e){return r(e,i)}))}function a(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return e.propertyIsEnumerable(t)})):[]}(e))}function c(e,t,i){var n={};return i.isMergeableObject(e)&&a(e).forEach((function(t){n[t]=r(e[t],i)})),a(t).forEach((function(s){(function(e,t){try{return t in e&&!(Object.hasOwnProperty.call(e,t)&&Object.propertyIsEnumerable.call(e,t))}catch(e){return!1}})(e,s)||(i.isMergeableObject(t[s])&&e[s]?n[s]=function(e,t){if(!t.customMerge)return l;var i=t.customMerge(e);return"function"==typeof i?i:l}(s,i)(e[s],t[s],i):n[s]=r(t[s],i))})),n}function l(e,t,i){(i=i||{}).arrayMerge=i.arrayMerge||o,i.isMergeableObject=i.isMergeableObject||n,i.cloneUnlessOtherwiseSpecified=r;var s=Array.isArray(t);return s===Array.isArray(e)?s?i.arrayMerge(e,t,i):c(e,t,i):r(t,i)}l.all=function(e,t){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,i){return l(e,i,t)}),{})};var h=l;e.exports=h},function(e,t,i){"use strict";(function(e,n){var s,r=i(3);s="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==e?e:n;var o=Object(r.a)(s);t.a=o}).call(this,i(5),i(6)(e))},function(e,t,i){ - /*! - * Fuse.js v3.4.5 - Lightweight fuzzy-search (http://fusejs.io) - * - * Copyright (c) 2012-2017 Kirollos Risk (http://kiro.me) - * All Rights Reserved. Apache Software License 2.0 - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - e.exports=function(e){var t={};function i(n){if(t[n])return t[n].exports;var s=t[n]={i:n,l:!1,exports:{}};return e[n].call(s.exports,s,s.exports,i),s.l=!0,s.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var s in e)i.d(n,s,function(t){return e[t]}.bind(null,s));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=1)}([function(e,t){e.exports=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===Object.prototype.toString.call(e)}},function(e,t,i){function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function s(e,t){for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:{limit:!1};this._log('---------\nSearch pattern: "'.concat(e,'"'));var i=this._prepareSearchers(e),n=i.tokenSearchers,s=i.fullSearcher,r=this._search(n,s),o=r.weights,a=r.results;return this._computeScore(o,a),this.options.shouldSort&&this._sort(a),t.limit&&"number"==typeof t.limit&&(a=a.slice(0,t.limit)),this._format(a)}},{key:"_prepareSearchers",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=[];if(this.options.tokenize)for(var i=e.split(this.options.tokenSeparator),n=0,s=i.length;n0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0,i=this.list,n={},s=[];if("string"==typeof i[0]){for(var r=0,o=i.length;r1)throw new Error("Key weight has to be > 0 and <= 1");p=p.name}else a[p]={weight:1};this._analyze({key:p,value:this.options.getFn(h,p),record:h,index:c},{resultMap:n,results:s,tokenSearchers:e,fullSearcher:t})}return{weights:a,results:s}}},{key:"_analyze",value:function(e,t){var i=e.key,n=e.arrayIndex,s=void 0===n?-1:n,r=e.value,o=e.record,c=e.index,l=t.tokenSearchers,h=void 0===l?[]:l,u=t.fullSearcher,d=void 0===u?[]:u,p=t.resultMap,m=void 0===p?{}:p,f=t.results,v=void 0===f?[]:f;if(null!=r){var g=!1,_=-1,b=0;if("string"==typeof r){this._log("\nKey: ".concat(""===i?"-":i));var y=d.search(r);if(this._log('Full text: "'.concat(r,'", score: ').concat(y.score)),this.options.tokenize){for(var E=r.split(this.options.tokenSeparator),I=[],S=0;S-1&&(P=(P+_)/2),this._log("Score average:",P);var D=!this.options.tokenize||!this.options.matchAllTokens||b>=h.length;if(this._log("\nCheck Matches: ".concat(D)),(g||y.isMatch)&&D){var M=m[c];M?M.output.push({key:i,arrayIndex:s,value:r,score:P,matchedIndices:y.matchedIndices}):(m[c]={item:o,output:[{key:i,arrayIndex:s,value:r,score:P,matchedIndices:y.matchedIndices}]},v.push(m[c]))}}else if(a(r))for(var N=0,F=r.length;N-1&&(o.arrayIndex=r.arrayIndex),t.matches.push(o)}}})),this.options.includeScore&&s.push((function(e,t){t.score=e.score}));for(var r=0,o=e.length;ri)return s(e,this.pattern,n);var o=this.options,a=o.location,c=o.distance,l=o.threshold,h=o.findAllMatches,u=o.minMatchCharLength;return r(e,this.pattern,this.patternAlphabet,{location:a,distance:c,threshold:l,findAllMatches:h,minMatchCharLength:u})}}])&&n(t.prototype,i),e}();e.exports=a},function(e,t){var i=/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g;e.exports=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:/ +/g,s=new RegExp(t.replace(i,"\\$&").replace(n,"|")),r=e.match(s),o=!!r,a=[];if(o)for(var c=0,l=r.length;c=P;N-=1){var F=N-1,j=i[e.charAt(F)];if(j&&(E[F]=1),M[N]=(M[N+1]<<1|1)&j,0!==T&&(M[N]|=(O[N+1]|O[N])<<1|1|O[N+1]),M[N]&L&&(C=n(t,{errors:T,currentLocation:F,expectedLocation:v,distance:l}))<=_){if(_=C,(b=F)<=v)break;P=Math.max(1,2*v-b)}}if(n(t,{errors:T+1,currentLocation:v,expectedLocation:v,distance:l})>_)break;O=M}return{isMatch:b>=0,score:0===C?.001:C,matchedIndices:s(E,f)}}},function(e,t){e.exports=function(e,t){var i=t.errors,n=void 0===i?0:i,s=t.currentLocation,r=void 0===s?0:s,o=t.expectedLocation,a=void 0===o?0:o,c=t.distance,l=void 0===c?100:c,h=n/e.length,u=Math.abs(a-r);return l?h+u/l:u?1:h}},function(e,t){e.exports=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,i=[],n=-1,s=-1,r=0,o=e.length;r=t&&i.push([n,s]),n=-1)}return e[r-1]&&r-n>=t&&i.push([n,r-1]),i}},function(e,t){e.exports=function(e){for(var t={},i=e.length,n=0;n/g,"&rt;").replace(/-1?e.map((function(e){var i=e;return i.id===parseInt(t.choiceId,10)&&(i.selected=!0),i})):e;case"REMOVE_ITEM":return t.choiceId>-1?e.map((function(e){var i=e;return i.id===parseInt(t.choiceId,10)&&(i.selected=!1),i})):e;case"FILTER_CHOICES":return e.map((function(e){var i=e;return i.active=t.results.some((function(e){var t=e.item,n=e.score;return t.id===i.id&&(i.score=n,!0)})),i}));case"ACTIVATE_CHOICES":return e.map((function(e){var i=e;return i.active=t.active,i}));case"CLEAR_CHOICES":return f;default:return e}},general:_}),T=function(e,t){var i=e;if("CLEAR_ALL"===t.type)i=void 0;else if("RESET_TO"===t.type)return C(t.state);return L(i,t)};function x(e,t){for(var i=0;i"'+S(e)+'"'},maxItemText:function(e){return"Only "+e+" values can be added"},valueComparer:function(e,t){return e===t},fuseOptions:{includeScore:!0},callbackOnInit:null,callbackOnCreateTemplates:null,classNames:{containerOuter:"choices",containerInner:"choices__inner",input:"choices__input",inputCloned:"choices__input--cloned",list:"choices__list",listItems:"choices__list--multiple",listSingle:"choices__list--single",listDropdown:"choices__list--dropdown",item:"choices__item",itemSelectable:"choices__item--selectable",itemDisabled:"choices__item--disabled",itemChoice:"choices__item--choice",placeholder:"choices__placeholder",group:"choices__group",groupHeading:"choices__heading",button:"choices__button",activeState:"is-active",focusState:"is-focused",openState:"is-open",disabledState:"is-disabled",highlightedState:"is-highlighted",selectedState:"is-selected",flippedState:"is-flipped",loadingState:"is-loading",noResults:"has-no-results",noChoices:"has-no-choices"}},N="showDropdown",F="hideDropdown",j="change",K="choice",R="search",H="addItem",B="removeItem",V="highlightItem",G="highlightChoice",q="ADD_CHOICE",U="FILTER_CHOICES",z="ACTIVATE_CHOICES",W="CLEAR_CHOICES",X="ADD_GROUP",$="ADD_ITEM",J="REMOVE_ITEM",Y="HIGHLIGHT_ITEM",Z=46,Q=8,ee=13,te=65,ie=27,ne=38,se=40,re=33,oe=34,ae="text",ce="select-one",le="select-multiple",he=function(){function e(e){var t=e.element,i=e.type,n=e.classNames,s=e.position;this.element=t,this.classNames=n,this.type=i,this.position=s,this.isOpen=!1,this.isFlipped=!1,this.isFocussed=!1,this.isDisabled=!1,this.isLoading=!1,this._onFocus=this._onFocus.bind(this),this._onBlur=this._onBlur.bind(this)}var t=e.prototype;return t.addEventListeners=function(){this.element.addEventListener("focus",this._onFocus),this.element.addEventListener("blur",this._onBlur)},t.removeEventListeners=function(){this.element.removeEventListener("focus",this._onFocus),this.element.removeEventListener("blur",this._onBlur)},t.shouldFlip=function(e){if("number"!=typeof e)return!1;var t=!1;return"auto"===this.position?t=!window.matchMedia("(min-height: "+(e+1)+"px)").matches:"top"===this.position&&(t=!0),t},t.setActiveDescendant=function(e){this.element.setAttribute("aria-activedescendant",e)},t.removeActiveDescendant=function(){this.element.removeAttribute("aria-activedescendant")},t.open=function(e){this.element.classList.add(this.classNames.openState),this.element.setAttribute("aria-expanded","true"),this.isOpen=!0,this.shouldFlip(e)&&(this.element.classList.add(this.classNames.flippedState),this.isFlipped=!0)},t.close=function(){this.element.classList.remove(this.classNames.openState),this.element.setAttribute("aria-expanded","false"),this.removeActiveDescendant(),this.isOpen=!1,this.isFlipped&&(this.element.classList.remove(this.classNames.flippedState),this.isFlipped=!1)},t.focus=function(){this.isFocussed||this.element.focus()},t.addFocusState=function(){this.element.classList.add(this.classNames.focusState)},t.removeFocusState=function(){this.element.classList.remove(this.classNames.focusState)},t.enable=function(){this.element.classList.remove(this.classNames.disabledState),this.element.removeAttribute("aria-disabled"),this.type===ce&&this.element.setAttribute("tabindex","0"),this.isDisabled=!1},t.disable=function(){this.element.classList.add(this.classNames.disabledState),this.element.setAttribute("aria-disabled","true"),this.type===ce&&this.element.setAttribute("tabindex","-1"),this.isDisabled=!0},t.wrap=function(e){!function(e,t){void 0===t&&(t=document.createElement("div")),e.nextSibling?e.parentNode.insertBefore(t,e.nextSibling):e.parentNode.appendChild(t),t.appendChild(e)}(e,this.element)},t.unwrap=function(e){this.element.parentNode.insertBefore(e,this.element),this.element.parentNode.removeChild(this.element)},t.addLoadingState=function(){this.element.classList.add(this.classNames.loadingState),this.element.setAttribute("aria-busy","true"),this.isLoading=!0},t.removeLoadingState=function(){this.element.classList.remove(this.classNames.loadingState),this.element.removeAttribute("aria-busy"),this.isLoading=!1},t._onFocus=function(){this.isFocussed=!0},t._onBlur=function(){this.isFocussed=!1},e}();function ue(e,t){for(var i=0;i0?this.element.scrollTop+o-s:e.offsetTop;requestAnimationFrame((function(){i._animateScroll(a,t)}))}},t._scrollDown=function(e,t,i){var n=(i-e)/t,s=n>1?n:1;this.element.scrollTop=e+s},t._scrollUp=function(e,t,i){var n=(e-i)/t,s=n>1?n:1;this.element.scrollTop=e-s},t._animateScroll=function(e,t){var i=this,n=this.element.scrollTop,s=!1;t>0?(this._scrollDown(n,4,e),ne&&(s=!0)),s&&requestAnimationFrame((function(){i._animateScroll(e,t)}))},e}();function me(e,t){for(var i=0;i0?"treeitem":"option"),Object.assign(g.dataset,{choice:"",id:l,value:h,selectText:i}),m?(g.classList.add(a),g.dataset.choiceDisabled="",g.setAttribute("aria-disabled","true")):(g.classList.add(r),g.dataset.choiceSelectable=""),g},input:function(e,t){var i=e.input,n=e.inputCloned,s=Object.assign(document.createElement("input"),{type:"text",className:i+" "+n,autocomplete:"off",autocapitalize:"off",spellcheck:!1});return s.setAttribute("role","textbox"),s.setAttribute("aria-autocomplete","list"),s.setAttribute("aria-label",t),s},dropdown:function(e){var t=e.list,i=e.listDropdown,n=document.createElement("div");return n.classList.add(t,i),n.setAttribute("aria-expanded","false"),n},notice:function(e,t,i){var n=e.item,s=e.itemChoice,r=e.noResults,o=e.noChoices;void 0===i&&(i="");var a=[n,s];return"no-choices"===i?a.push(o):"no-results"===i&&a.push(r),Object.assign(document.createElement("div"),{innerHTML:t,className:a.join(" ")})},option:function(e){var t=e.label,i=e.value,n=e.customProperties,s=e.active,r=e.disabled,o=new Option(t,i,!1,s);return n&&(o.dataset.customProperties=n),o.disabled=r,o}},Ee=function(e){return void 0===e&&(e=!0),{type:z,active:e}},Ie=function(e,t){return{type:Y,id:e,highlighted:t}},Se=function(e){var t=e.value,i=e.id,n=e.active,s=e.disabled;return{type:X,value:t,id:i,active:n,disabled:s}},we=function(e){return{type:"SET_IS_LOADING",isLoading:e}};function Oe(e,t){for(var i=0;i=0?this._store.getGroupById(s):null;return this._store.dispatch(Ie(i,!0)),t&&this.passedElement.triggerEvent(V,{id:i,value:o,label:c,groupValue:l&&l.value?l.value:null}),this},r.unhighlightItem=function(e){if(!e)return this;var t=e.id,i=e.groupId,n=void 0===i?-1:i,s=e.value,r=void 0===s?"":s,o=e.label,a=void 0===o?"":o,c=n>=0?this._store.getGroupById(n):null;return this._store.dispatch(Ie(t,!1)),this.passedElement.triggerEvent(V,{id:t,value:r,label:a,groupValue:c&&c.value?c.value:null}),this},r.highlightAll=function(){var e=this;return this._store.items.forEach((function(t){return e.highlightItem(t)})),this},r.unhighlightAll=function(){var e=this;return this._store.items.forEach((function(t){return e.unhighlightItem(t)})),this},r.removeActiveItemsByValue=function(e){var t=this;return this._store.activeItems.filter((function(t){return t.value===e})).forEach((function(e){return t._removeItem(e)})),this},r.removeActiveItems=function(e){var t=this;return this._store.activeItems.filter((function(t){return t.id!==e})).forEach((function(e){return t._removeItem(e)})),this},r.removeHighlightedItems=function(e){var t=this;return void 0===e&&(e=!1),this._store.highlightedActiveItems.forEach((function(i){t._removeItem(i),e&&t._triggerChange(i.value)})),this},r.showDropdown=function(e){var t=this;return this.dropdown.isActive?this:(requestAnimationFrame((function(){t.dropdown.show(),t.containerOuter.open(t.dropdown.distanceFromTopWindow),!e&&t._canSearch&&t.input.focus(),t.passedElement.triggerEvent(N,{})})),this)},r.hideDropdown=function(e){var t=this;return this.dropdown.isActive?(requestAnimationFrame((function(){t.dropdown.hide(),t.containerOuter.close(),!e&&t._canSearch&&(t.input.removeActiveDescendant(),t.input.blur()),t.passedElement.triggerEvent(F,{})})),this):this},r.getValue=function(e){void 0===e&&(e=!1);var t=this._store.activeItems.reduce((function(t,i){var n=e?i.value:i;return t.push(n),t}),[]);return this._isSelectOneElement?t[0]:t},r.setValue=function(e){var t=this;return this.initialised?(e.forEach((function(e){return t._setChoiceOrItem(e)})),this):this},r.setChoiceByValue=function(e){var t=this;return!this.initialised||this._isTextElement?this:((Array.isArray(e)?e:[e]).forEach((function(e){return t._findAndSelectChoiceByValue(e)})),this)},r.setChoices=function(e,t,i,n){var s=this;if(void 0===e&&(e=[]),void 0===t&&(t="value"),void 0===i&&(i="label"),void 0===n&&(n=!1),!this.initialised)throw new ReferenceError("setChoices was called on a non-initialized instance of Choices");if(!this._isSelectElement)throw new TypeError("setChoices can't be used with INPUT based Choices");if("string"!=typeof t||!t)throw new TypeError("value parameter must be a name of 'value' field in passed objects");if(n&&this.clearChoices(),"function"==typeof e){var r=e(this);if("function"==typeof Promise&&r instanceof Promise)return new Promise((function(e){return requestAnimationFrame(e)})).then((function(){return s._handleLoadingState(!0)})).then((function(){return r})).then((function(e){return s.setChoices(e,t,i,n)})).catch((function(e){s.config.silent||console.error(e)})).then((function(){return s._handleLoadingState(!1)})).then((function(){return s}));if(!Array.isArray(r))throw new TypeError(".setChoices first argument function must return either array of choices or Promise, got: "+typeof r);return this.setChoices(r,t,i,!1)}if(!Array.isArray(e))throw new TypeError(".setChoices must be called either with array of choices with a function resulting into Promise of array of choices");return this.containerOuter.removeLoadingState(),this._startLoading(),e.forEach((function(e){e.choices?s._addGroup({id:parseInt(e.id,10)||null,group:e,valueKey:t,labelKey:i}):s._addChoice({value:e[t],label:e[i],isSelected:e.selected,isDisabled:e.disabled,customProperties:e.customProperties,placeholder:e.placeholder})})),this._stopLoading(),this},r.clearChoices=function(){return this._store.dispatch({type:W}),this},r.clearStore=function(){return this._store.dispatch({type:"CLEAR_ALL"}),this},r.clearInput=function(){var e=!this._isSelectOneElement;return this.input.clear(e),!this._isTextElement&&this._canSearch&&(this._isSearching=!1,this._store.dispatch(Ee(!0))),this},r._render=function(){if(!this._store.isLoading()){this._currentState=this._store.state;var e=this._currentState.choices!==this._prevState.choices||this._currentState.groups!==this._prevState.groups||this._currentState.items!==this._prevState.items,t=this._isSelectElement,i=this._currentState.items!==this._prevState.items;e&&(t&&this._renderChoices(),i&&this._renderItems(),this._prevState=this._currentState)}},r._renderChoices=function(){var e=this,t=this._store,i=t.activeGroups,n=t.activeChoices,s=document.createDocumentFragment();if(this.choiceList.clear(),this.config.resetScrollPosition&&requestAnimationFrame((function(){return e.choiceList.scrollToTop()})),i.length>=1&&!this._isSearching){var r=n.filter((function(e){return!0===e.placeholder&&-1===e.groupId}));r.length>=1&&(s=this._createChoicesFragment(r,s)),s=this._createGroupsFragment(i,n,s)}else n.length>=1&&(s=this._createChoicesFragment(n,s));if(s.childNodes&&s.childNodes.length>0){var o=this._store.activeItems,a=this._canAddItem(o,this.input.value);a.response?(this.choiceList.append(s),this._highlightChoice()):this.choiceList.append(this._getTemplate("notice",a.notice))}else{var c,l;this._isSearching?(l="function"==typeof this.config.noResultsText?this.config.noResultsText():this.config.noResultsText,c=this._getTemplate("notice",l,"no-results")):(l="function"==typeof this.config.noChoicesText?this.config.noChoicesText():this.config.noChoicesText,c=this._getTemplate("notice",l,"no-choices")),this.choiceList.append(c)}},r._renderItems=function(){var e=this._store.activeItems||[];this.itemList.clear();var t=this._createItemsFragment(e);t.childNodes&&this.itemList.append(t)},r._createGroupsFragment=function(e,t,i){var n=this;void 0===i&&(i=document.createDocumentFragment());return this.config.shouldSort&&e.sort(this.config.sorter),e.forEach((function(e){var s=function(e){return t.filter((function(t){return n._isSelectOneElement?t.groupId===e.id:t.groupId===e.id&&("always"===n.config.renderSelectedChoices||!t.selected)}))}(e);if(s.length>=1){var r=n._getTemplate("choiceGroup",e);i.appendChild(r),n._createChoicesFragment(s,i,!0)}})),i},r._createChoicesFragment=function(e,t,i){var n=this;void 0===t&&(t=document.createDocumentFragment()),void 0===i&&(i=!1);var s=this.config,r=s.renderSelectedChoices,o=s.searchResultLimit,a=s.renderChoiceLimit,c=this._isSearching?O:this.config.sorter,l=function(e){if("auto"!==r||(n._isSelectOneElement||!e.selected)){var i=n._getTemplate("choice",e,n.config.itemSelectText);t.appendChild(i)}},h=e;"auto"!==r||this._isSelectOneElement||(h=e.filter((function(e){return!e.selected})));var u=h.reduce((function(e,t){return t.placeholder?e.placeholderChoices.push(t):e.normalChoices.push(t),e}),{placeholderChoices:[],normalChoices:[]}),d=u.placeholderChoices,p=u.normalChoices;(this.config.shouldSort||this._isSearching)&&p.sort(c);var m=h.length,f=this._isSelectOneElement?[].concat(d,p):p;this._isSearching?m=o:a&&a>0&&!i&&(m=a);for(var v=0;v=n){var o=s?this._searchChoices(e):0;this.passedElement.triggerEvent(R,{value:e,resultCount:o})}else r&&(this._isSearching=!1,this._store.dispatch(Ee(!0)))}},r._canAddItem=function(e,t){var i=!0,n="function"==typeof this.config.addItemText?this.config.addItemText(t):this.config.addItemText;if(!this._isSelectOneElement){var s=function(e,t,i){return void 0===i&&(i="value"),e.some((function(e){return"string"==typeof t?e[i]===t.trim():e[i]===t}))}(e,t);this.config.maxItemCount>0&&this.config.maxItemCount<=e.length&&(i=!1,n="function"==typeof this.config.maxItemText?this.config.maxItemText(this.config.maxItemCount):this.config.maxItemText),!this.config.duplicateItemsAllowed&&s&&i&&(i=!1,n="function"==typeof this.config.uniqueItemText?this.config.uniqueItemText(t):this.config.uniqueItemText),this._isTextElement&&this.config.addItems&&i&&"function"==typeof this.config.addItemFilter&&!this.config.addItemFilter(t)&&(i=!1,n="function"==typeof this.config.customAddItemText?this.config.customAddItemText(t):this.config.customAddItemText)}return{response:i,notice:n}},r._searchChoices=function(e){var t="string"==typeof e?e.trim():e,i="string"==typeof this._currentValue?this._currentValue.trim():this._currentValue;if(t.length<1&&t===i+" ")return 0;var n=this._store.searchableChoices,r=t,o=[].concat(this.config.searchFields),a=Object.assign(this.config.fuseOptions,{keys:o}),c=new s.a(n,a).search(r);return this._currentValue=t,this._highlightPosition=0,this._isSearching=!0,this._store.dispatch(function(e){return{type:U,results:e}}(c)),c.length},r._addEventListeners=function(){var e=document.documentElement;e.addEventListener("touchend",this._onTouchEnd,!0),this.containerOuter.element.addEventListener("keydown",this._onKeyDown,!0),this.containerOuter.element.addEventListener("mousedown",this._onMouseDown,!0),e.addEventListener("click",this._onClick,{passive:!0}),e.addEventListener("touchmove",this._onTouchMove,{passive:!0}),this.dropdown.element.addEventListener("mouseover",this._onMouseOver,{passive:!0}),this._isSelectOneElement&&(this.containerOuter.element.addEventListener("focus",this._onFocus,{passive:!0}),this.containerOuter.element.addEventListener("blur",this._onBlur,{passive:!0})),this.input.element.addEventListener("keyup",this._onKeyUp,{passive:!0}),this.input.element.addEventListener("focus",this._onFocus,{passive:!0}),this.input.element.addEventListener("blur",this._onBlur,{passive:!0}),this.input.element.form&&this.input.element.form.addEventListener("reset",this._onFormReset,{passive:!0}),this.input.addEventListeners()},r._removeEventListeners=function(){var e=document.documentElement;e.removeEventListener("touchend",this._onTouchEnd,!0),this.containerOuter.element.removeEventListener("keydown",this._onKeyDown,!0),this.containerOuter.element.removeEventListener("mousedown",this._onMouseDown,!0),e.removeEventListener("click",this._onClick),e.removeEventListener("touchmove",this._onTouchMove),this.dropdown.element.removeEventListener("mouseover",this._onMouseOver),this._isSelectOneElement&&(this.containerOuter.element.removeEventListener("focus",this._onFocus),this.containerOuter.element.removeEventListener("blur",this._onBlur)),this.input.element.removeEventListener("keyup",this._onKeyUp),this.input.element.removeEventListener("focus",this._onFocus),this.input.element.removeEventListener("blur",this._onBlur),this.input.element.form&&this.input.element.form.removeEventListener("reset",this._onFormReset),this.input.removeEventListeners()},r._onKeyDown=function(e){var t,i=e.target,n=e.keyCode,s=e.ctrlKey,r=e.metaKey,o=this._store.activeItems,a=this.input.isFocussed,c=this.dropdown.isActive,l=this.itemList.hasChildren(),h=String.fromCharCode(n),u=Z,d=Q,p=ee,m=te,f=ie,v=ne,g=se,_=re,b=oe,y=s||r;!this._isTextElement&&/[a-zA-Z0-9-_ ]/.test(h)&&this.showDropdown();var E=((t={})[m]=this._onAKey,t[p]=this._onEnterKey,t[f]=this._onEscapeKey,t[v]=this._onDirectionKey,t[_]=this._onDirectionKey,t[g]=this._onDirectionKey,t[b]=this._onDirectionKey,t[d]=this._onDeleteKey,t[u]=this._onDeleteKey,t);E[n]&&E[n]({event:e,target:i,keyCode:n,metaKey:r,activeItems:o,hasFocusedInput:a,hasActiveDropdown:c,hasItems:l,hasCtrlDownKeyPressed:y})},r._onKeyUp=function(e){var t=e.target,i=e.keyCode,n=this.input.value,s=this._store.activeItems,r=this._canAddItem(s,n),o=Z,a=Q;if(this._isTextElement){if(r.notice&&n){var c=this._getTemplate("notice",r.notice);this.dropdown.element.innerHTML=c.outerHTML,this.showDropdown(!0)}else this.hideDropdown(!0)}else{var l=(i===o||i===a)&&!t.value,h=!this._isTextElement&&this._isSearching,u=this._canSearch&&r.response;l&&h?(this._isSearching=!1,this._store.dispatch(Ee(!0))):u&&this._handleSearch(this.input.value)}this._canSearch=this.config.searchEnabled},r._onAKey=function(e){var t=e.hasItems;e.hasCtrlDownKeyPressed&&t&&(this._canSearch=!1,this.config.removeItems&&!this.input.value&&this.input.element===document.activeElement&&this.highlightAll())},r._onEnterKey=function(e){var t=e.event,i=e.target,n=e.activeItems,s=e.hasActiveDropdown,r=ee,o=i.hasAttribute("data-button");if(this._isTextElement&&i.value){var a=this.input.value;this._canAddItem(n,a).response&&(this.hideDropdown(!0),this._addItem({value:a}),this._triggerChange(a),this.clearInput())}if(o&&(this._handleButtonAction(n,i),t.preventDefault()),s){var c=this.dropdown.getChild("."+this.config.classNames.highlightedState);c&&(n[0]&&(n[0].keyCode=r),this._handleChoiceAction(n,c)),t.preventDefault()}else this._isSelectOneElement&&(this.showDropdown(),t.preventDefault())},r._onEscapeKey=function(e){e.hasActiveDropdown&&(this.hideDropdown(!0),this.containerOuter.focus())},r._onDirectionKey=function(e){var t,i,n,s=e.event,r=e.hasActiveDropdown,o=e.keyCode,a=e.metaKey,c=se,l=re,h=oe;if(r||this._isSelectOneElement){this.showDropdown(),this._canSearch=!1;var u,d=o===c||o===h?1:-1;if(a||o===h||o===l)u=d>0?this.dropdown.element.querySelector("[data-choice-selectable]:last-of-type"):this.dropdown.element.querySelector("[data-choice-selectable]");else{var p=this.dropdown.element.querySelector("."+this.config.classNames.highlightedState);u=p?function(e,t,i){if(void 0===i&&(i=1),e instanceof Element&&"string"==typeof t){for(var n=(i>0?"next":"previous")+"ElementSibling",s=e[n];s;){if(s.matches(t))return s;s=s[n]}return s}}(p,"[data-choice-selectable]",d):this.dropdown.element.querySelector("[data-choice-selectable]")}u&&(t=u,i=this.choiceList.element,void 0===(n=d)&&(n=1),t&&(n>0?i.scrollTop+i.offsetHeight>=t.offsetTop+t.offsetHeight:t.offsetTop>=i.scrollTop)||this.choiceList.scrollToChildElement(u,d),this._highlightChoice(u)),s.preventDefault()}},r._onDeleteKey=function(e){var t=e.event,i=e.target,n=e.hasFocusedInput,s=e.activeItems;!n||i.value||this._isSelectOneElement||(this._handleBackspace(s),t.preventDefault())},r._onTouchMove=function(){this._wasTap&&(this._wasTap=!1)},r._onTouchEnd=function(e){var t=(e||e.touches[0]).target;this._wasTap&&this.containerOuter.element.contains(t)&&((t===this.containerOuter.element||t===this.containerInner.element)&&(this._isTextElement?this.input.focus():this._isSelectMultipleElement&&this.showDropdown()),e.stopPropagation());this._wasTap=!0},r._onMouseDown=function(e){var t=e.target;if(t instanceof HTMLElement){if(Ce&&this.choiceList.element.contains(t)){var i=this.choiceList.element.firstElementChild,n="ltr"===this._direction?e.offsetX>=i.offsetWidth:e.offsetX0&&this.unhighlightAll(),this.containerOuter.removeFocusState(),this.hideDropdown(!0))},r._onFocus=function(e){var t,i=this,n=e.target;this.containerOuter.element.contains(n)&&((t={})[ae]=function(){n===i.input.element&&i.containerOuter.addFocusState()},t[ce]=function(){i.containerOuter.addFocusState(),n===i.input.element&&i.showDropdown(!0)},t[le]=function(){n===i.input.element&&(i.showDropdown(!0),i.containerOuter.addFocusState())},t)[this.passedElement.element.type]()},r._onBlur=function(e){var t=this,i=e.target;if(this.containerOuter.element.contains(i)&&!this._isScrollingOnIe){var n,s=this._store.activeItems.some((function(e){return e.highlighted}));((n={})[ae]=function(){i===t.input.element&&(t.containerOuter.removeFocusState(),s&&t.unhighlightAll(),t.hideDropdown(!0))},n[ce]=function(){t.containerOuter.removeFocusState(),(i===t.input.element||i===t.containerOuter.element&&!t._canSearch)&&t.hideDropdown(!0)},n[le]=function(){i===t.input.element&&(t.containerOuter.removeFocusState(),t.hideDropdown(!0),s&&t.unhighlightAll())},n)[this.passedElement.element.type]()}else this._isScrollingOnIe=!1,this.input.element.focus()},r._onFormReset=function(){this._store.dispatch({type:"RESET_TO",state:this._initialState})},r._highlightChoice=function(e){var t=this;void 0===e&&(e=null);var i=Array.from(this.dropdown.element.querySelectorAll("[data-choice-selectable]"));if(i.length){var n=e;Array.from(this.dropdown.element.querySelectorAll("."+this.config.classNames.highlightedState)).forEach((function(e){e.classList.remove(t.config.classNames.highlightedState),e.setAttribute("aria-selected","false")})),n?this._highlightPosition=i.indexOf(n):(n=i.length>this._highlightPosition?i[this._highlightPosition]:i[i.length-1])||(n=i[0]),n.classList.add(this.config.classNames.highlightedState),n.setAttribute("aria-selected","true"),this.passedElement.triggerEvent(G,{el:n}),this.dropdown.isActive&&(this.input.setActiveDescendant(n.id),this.containerOuter.setActiveDescendant(n.id))}},r._addItem=function(e){var t=e.value,i=e.label,n=void 0===i?null:i,s=e.choiceId,r=void 0===s?-1:s,o=e.groupId,a=void 0===o?-1:o,c=e.customProperties,l=void 0===c?null:c,h=e.placeholder,u=void 0!==h&&h,d=e.keyCode,p=void 0===d?null:d,m="string"==typeof t?t.trim():t,f=p,v=l,g=this._store.items,_=n||m,b=r||-1,y=a>=0?this._store.getGroupById(a):null,E=g?g.length+1:1;return this.config.prependValue&&(m=this.config.prependValue+m.toString()),this.config.appendValue&&(m+=this.config.appendValue.toString()),this._store.dispatch(function(e){var t=e.value,i=e.label,n=e.id,s=e.choiceId,r=e.groupId,o=e.customProperties,a=e.placeholder,c=e.keyCode;return{type:$,value:t,label:i,id:n,choiceId:s,groupId:r,customProperties:o,placeholder:a,keyCode:c}}({value:m,label:_,id:E,choiceId:b,groupId:a,customProperties:l,placeholder:u,keyCode:f})),this._isSelectOneElement&&this.removeActiveItems(E),this.passedElement.triggerEvent(H,{id:E,value:m,label:_,customProperties:v,groupValue:y&&y.value?y.value:void 0,keyCode:f}),this},r._removeItem=function(e){if(!e||!I("Object",e))return this;var t=e.id,i=e.value,n=e.label,s=e.choiceId,r=e.groupId,o=r>=0?this._store.getGroupById(r):null;return this._store.dispatch(function(e,t){return{type:J,id:e,choiceId:t}}(t,s)),o&&o.value?this.passedElement.triggerEvent(B,{id:t,value:i,label:n,groupValue:o.value}):this.passedElement.triggerEvent(B,{id:t,value:i,label:n}),this},r._addChoice=function(e){var t=e.value,i=e.label,n=void 0===i?null:i,s=e.isSelected,r=void 0!==s&&s,o=e.isDisabled,a=void 0!==o&&o,c=e.groupId,l=void 0===c?-1:c,h=e.customProperties,u=void 0===h?null:h,d=e.placeholder,p=void 0!==d&&d,m=e.keyCode,f=void 0===m?null:m;if(null!=t){var v=this._store.choices,g=n||t,_=v?v.length+1:1,b=this._baseId+"-"+this._idNames.itemChoice+"-"+_;this._store.dispatch(function(e){var t=e.value,i=e.label,n=e.id,s=e.groupId,r=e.disabled,o=e.elementId,a=e.customProperties,c=e.placeholder,l=e.keyCode;return{type:q,value:t,label:i,id:n,groupId:s,disabled:r,elementId:o,customProperties:a,placeholder:c,keyCode:l}}({id:_,groupId:l,elementId:b,value:t,label:g,disabled:a,customProperties:u,placeholder:p,keyCode:f})),r&&this._addItem({value:t,label:g,choiceId:_,customProperties:u,placeholder:p,keyCode:f})}},r._addGroup=function(e){var t=this,i=e.group,n=e.id,s=e.valueKey,r=void 0===s?"value":s,o=e.labelKey,a=void 0===o?"label":o,c=I("Object",i)?i.choices:Array.from(i.getElementsByTagName("OPTION")),l=n||Math.floor((new Date).valueOf()*Math.random()),h=!!i.disabled&&i.disabled;if(c){this._store.dispatch(Se({value:i.label,id:l,active:!0,disabled:h}));c.forEach((function(e){var i=e.disabled||e.parentNode&&e.parentNode.disabled;t._addChoice({value:e[r],label:I("Object",e)?e[a]:e.innerHTML,isSelected:e.selected,isDisabled:i,groupId:l,customProperties:e.customProperties,placeholder:e.placeholder})}))}else this._store.dispatch(Se({value:i.label,id:i.id,active:!1,disabled:i.disabled}))},r._getTemplate=function(e){var t;if(!e)return null;for(var i=this.config.classNames,n=arguments.length,s=new Array(n>1?n-1:0),r=1;r 0 && arguments[0] !== undefined ? arguments[0] : this.active.collection; - return this.refs[collection].sort(sortByIndex); - } - }]); - - return Manager; - }(); - - function sortByIndex(_ref2, _ref3) { - var index1 = _ref2.node.sortableInfo.index; - var index2 = _ref3.node.sortableInfo.index; - return index1 - index2; - } - - function _arrayWithoutHoles(arr) { - if (Array.isArray(arr)) { - for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { - arr2[i] = arr[i]; - } - - return arr2; - } - } - - var arrayWithoutHoles = _arrayWithoutHoles; - - function _iterableToArray(iter) { - if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); - } - - var iterableToArray = _iterableToArray; - - function _nonIterableSpread() { - throw new TypeError("Invalid attempt to spread non-iterable instance"); - } - - var nonIterableSpread = _nonIterableSpread; - - function _toConsumableArray(arr) { - return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread(); - } - - var toConsumableArray = _toConsumableArray; - - function arrayMove(array, from, to) { - { - if (typeof console !== 'undefined') { - console.warn("Deprecation warning: arrayMove will no longer be exported by 'react-sortable-hoc' in the next major release. Please install the `array-move` package locally instead. https://www.npmjs.com/package/array-move"); - } - } - - array = array.slice(); - array.splice(to < 0 ? array.length + to : to, 0, array.splice(from, 1)[0]); - return array; - } - function omit(obj, keysToOmit) { - return Object.keys(obj).reduce(function (acc, key) { - if (keysToOmit.indexOf(key) === -1) { - acc[key] = obj[key]; - } - - return acc; - }, {}); - } - var events = { - end: ['touchend', 'touchcancel', 'mouseup'], - move: ['touchmove', 'mousemove'], - start: ['touchstart', 'mousedown'] - }; - var vendorPrefix = function () { - if (typeof window === 'undefined' || typeof document === 'undefined') { - return ''; - } - - var styles = window.getComputedStyle(document.documentElement, '') || ['-moz-hidden-iframe']; - var pre = (Array.prototype.slice.call(styles).join('').match(/-(moz|webkit|ms)-/) || styles.OLink === '' && ['', 'o'])[1]; - - switch (pre) { - case 'ms': - return 'ms'; - - default: - return pre && pre.length ? pre[0].toUpperCase() + pre.substr(1) : ''; - } - }(); - function setInlineStyles(node, styles) { - Object.keys(styles).forEach(function (key) { - node.style[key] = styles[key]; - }); - } - function setTranslate3d(node, translate) { - node.style["".concat(vendorPrefix, "Transform")] = translate == null ? '' : "translate3d(".concat(translate.x, "px,").concat(translate.y, "px,0)"); - } - function setTransitionDuration(node, duration) { - node.style["".concat(vendorPrefix, "TransitionDuration")] = duration == null ? '' : "".concat(duration, "ms"); - } - function closest(el, fn) { - while (el) { - if (fn(el)) { - return el; - } - - el = el.parentNode; - } - - return null; - } - function limit(min, max, value) { - return Math.max(min, Math.min(value, max)); - } - - function getPixelValue(stringValue) { - if (stringValue.substr(-2) === 'px') { - return parseFloat(stringValue); - } - - return 0; - } - - function getElementMargin(element) { - var style = window.getComputedStyle(element); - return { - bottom: getPixelValue(style.marginBottom), - left: getPixelValue(style.marginLeft), - right: getPixelValue(style.marginRight), - top: getPixelValue(style.marginTop) - }; - } - function provideDisplayName(prefix, Component) { - var componentName = Component.displayName || Component.name; - return componentName ? "".concat(prefix, "(").concat(componentName, ")") : prefix; - } - function getScrollAdjustedBoundingClientRect(node, scrollDelta) { - var boundingClientRect = node.getBoundingClientRect(); - return { - top: boundingClientRect.top + scrollDelta.top, - left: boundingClientRect.left + scrollDelta.left - }; - } - function getPosition(event) { - if (event.touches && event.touches.length) { - return { - x: event.touches[0].pageX, - y: event.touches[0].pageY - }; - } else if (event.changedTouches && event.changedTouches.length) { - return { - x: event.changedTouches[0].pageX, - y: event.changedTouches[0].pageY - }; - } else { - return { - x: event.pageX, - y: event.pageY - }; - } - } - function isTouchEvent(event) { - return event.touches && event.touches.length || event.changedTouches && event.changedTouches.length; - } - function getEdgeOffset(node, parent) { - var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { - left: 0, - top: 0 - }; - - if (!node) { - return undefined; - } - - var nodeOffset = { - left: offset.left + node.offsetLeft, - top: offset.top + node.offsetTop - }; - - if (node.parentNode === parent) { - return nodeOffset; - } - - return getEdgeOffset(node.parentNode, parent, nodeOffset); - } - function getTargetIndex(newIndex, prevIndex, oldIndex) { - if (newIndex < oldIndex && newIndex > prevIndex) { - return newIndex - 1; - } else if (newIndex > oldIndex && newIndex < prevIndex) { - return newIndex + 1; - } else { - return newIndex; - } - } - function getLockPixelOffset(_ref) { - var lockOffset = _ref.lockOffset, - width = _ref.width, - height = _ref.height; - var offsetX = lockOffset; - var offsetY = lockOffset; - var unit = 'px'; - - if (typeof lockOffset === 'string') { - var match = /^[+-]?\d*(?:\.\d*)?(px|%)$/.exec(lockOffset); - invariant_1(match !== null, 'lockOffset value should be a number or a string of a ' + 'number followed by "px" or "%". Given %s', lockOffset); - offsetX = parseFloat(lockOffset); - offsetY = parseFloat(lockOffset); - unit = match[1]; - } - - invariant_1(isFinite(offsetX) && isFinite(offsetY), 'lockOffset value should be a finite. Given %s', lockOffset); - - if (unit === '%') { - offsetX = offsetX * width / 100; - offsetY = offsetY * height / 100; - } - - return { - x: offsetX, - y: offsetY - }; - } - function getLockPixelOffsets(_ref2) { - var height = _ref2.height, - width = _ref2.width, - lockOffset = _ref2.lockOffset; - var offsets = Array.isArray(lockOffset) ? lockOffset : [lockOffset, lockOffset]; - invariant_1(offsets.length === 2, 'lockOffset prop of SortableContainer should be a single ' + 'value or an array of exactly two values. Given %s', lockOffset); - - var _offsets = slicedToArray(offsets, 2), - minLockOffset = _offsets[0], - maxLockOffset = _offsets[1]; - - return [getLockPixelOffset({ - height: height, - lockOffset: minLockOffset, - width: width - }), getLockPixelOffset({ - height: height, - lockOffset: maxLockOffset, - width: width - })]; - } - - function isScrollable(el) { - var computedStyle = window.getComputedStyle(el); - var overflowRegex = /(auto|scroll)/; - var properties = ['overflow', 'overflowX', 'overflowY']; - return properties.find(function (property) { - return overflowRegex.test(computedStyle[property]); - }); - } - - function getScrollingParent(el) { - if (!(el instanceof HTMLElement)) { - return null; - } else if (isScrollable(el)) { - return el; - } else { - return getScrollingParent(el.parentNode); - } - } - function getContainerGridGap(element) { - var style = window.getComputedStyle(element); - - if (style.display === 'grid') { - return { - x: getPixelValue(style.gridColumnGap), - y: getPixelValue(style.gridRowGap) - }; - } - - return { - x: 0, - y: 0 - }; - } - var KEYCODE = { - TAB: 9, - ESC: 27, - SPACE: 32, - LEFT: 37, - UP: 38, - RIGHT: 39, - DOWN: 40 - }; - var NodeType = { - Anchor: 'A', - Button: 'BUTTON', - Canvas: 'CANVAS', - Input: 'INPUT', - Option: 'OPTION', - Textarea: 'TEXTAREA', - Select: 'SELECT' - }; - function cloneNode(node) { - var selector = 'input, textarea, select, canvas, [contenteditable]'; - var fields = node.querySelectorAll(selector); - var clonedNode = node.cloneNode(true); - - var clonedFields = toConsumableArray(clonedNode.querySelectorAll(selector)); - - clonedFields.forEach(function (field, i) { - if (field.type !== 'file') { - field.value = fields[i].value; - } - - if (field.type === 'radio' && field.name) { - field.name = "__sortableClone__".concat(field.name); - } - - if (field.tagName === NodeType.Canvas && fields[i].width > 0 && fields[i].height > 0) { - var destCtx = field.getContext('2d'); - destCtx.drawImage(fields[i], 0, 0); - } - }); - return clonedNode; - } - - function sortableHandle(WrappedComponent) { - var _class, _temp; - - var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { - withRef: false - }; - return _temp = _class = function (_React$Component) { - inherits(WithSortableHandle, _React$Component); - - function WithSortableHandle() { - classCallCheck(this, WithSortableHandle); - - return possibleConstructorReturn(this, getPrototypeOf(WithSortableHandle).apply(this, arguments)); - } - - createClass(WithSortableHandle, [{ - key: "componentDidMount", - value: function componentDidMount() { - var node = reactDom.findDOMNode(this); - node.sortableHandle = true; - } - }, { - key: "getWrappedInstance", - value: function getWrappedInstance() { - invariant_1(config.withRef, 'To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableHandle() call'); - return this.refs.wrappedInstance; - } - }, { - key: "render", - value: function render() { - var ref = config.withRef ? 'wrappedInstance' : null; - return React.createElement(WrappedComponent, _extends_1({ - ref: ref - }, this.props)); - } - }]); - - return WithSortableHandle; - }(React.Component), defineProperty(_class, "displayName", provideDisplayName('sortableHandle', WrappedComponent)), _temp; - } - function isSortableHandle(node) { - return node.sortableHandle != null; - } - - var AutoScroller = function () { - function AutoScroller(container, onScrollCallback) { - classCallCheck(this, AutoScroller); - - this.container = container; - this.onScrollCallback = onScrollCallback; - } - - createClass(AutoScroller, [{ - key: "clear", - value: function clear() { - if (this.interval == null) { - return; - } - - clearInterval(this.interval); - this.interval = null; - } - }, { - key: "update", - value: function update(_ref) { - var _this = this; - - var translate = _ref.translate, - minTranslate = _ref.minTranslate, - maxTranslate = _ref.maxTranslate, - width = _ref.width, - height = _ref.height; - var direction = { - x: 0, - y: 0 - }; - var speed = { - x: 1, - y: 1 - }; - var acceleration = { - x: 10, - y: 10 - }; - var _this$container = this.container, - scrollTop = _this$container.scrollTop, - scrollLeft = _this$container.scrollLeft, - scrollHeight = _this$container.scrollHeight, - scrollWidth = _this$container.scrollWidth, - clientHeight = _this$container.clientHeight, - clientWidth = _this$container.clientWidth; - var isTop = scrollTop === 0; - var isBottom = scrollHeight - scrollTop - clientHeight === 0; - var isLeft = scrollLeft === 0; - var isRight = scrollWidth - scrollLeft - clientWidth === 0; - - if (translate.y >= maxTranslate.y - height / 2 && !isBottom) { - direction.y = 1; - speed.y = acceleration.y * Math.abs((maxTranslate.y - height / 2 - translate.y) / height); - } else if (translate.x >= maxTranslate.x - width / 2 && !isRight) { - direction.x = 1; - speed.x = acceleration.x * Math.abs((maxTranslate.x - width / 2 - translate.x) / width); - } else if (translate.y <= minTranslate.y + height / 2 && !isTop) { - direction.y = -1; - speed.y = acceleration.y * Math.abs((translate.y - height / 2 - minTranslate.y) / height); - } else if (translate.x <= minTranslate.x + width / 2 && !isLeft) { - direction.x = -1; - speed.x = acceleration.x * Math.abs((translate.x - width / 2 - minTranslate.x) / width); - } - - if (this.interval) { - this.clear(); - this.isAutoScrolling = false; - } - - if (direction.x !== 0 || direction.y !== 0) { - this.interval = setInterval(function () { - _this.isAutoScrolling = true; - var offset = { - left: speed.x * direction.x, - top: speed.y * direction.y - }; - _this.container.scrollTop += offset.top; - _this.container.scrollLeft += offset.left; - - _this.onScrollCallback(offset); - }, 5); - } - } - }]); - - return AutoScroller; - }(); - - function defaultGetHelperDimensions(_ref) { - var node = _ref.node; - return { - height: node.offsetHeight, - width: node.offsetWidth - }; - } - - function defaultShouldCancelStart(event) { - var interactiveElements = [NodeType.Input, NodeType.Textarea, NodeType.Select, NodeType.Option, NodeType.Button]; - - if (interactiveElements.indexOf(event.target.tagName) !== -1) { - return true; - } - - if (closest(event.target, function (el) { - return el.contentEditable === 'true'; - })) { - return true; - } - - return false; - } - - var propTypes = { - axis: PropTypes.oneOf(['x', 'y', 'xy']), - contentWindow: PropTypes.any, - disableAutoscroll: PropTypes.bool, - distance: PropTypes.number, - getContainer: PropTypes.func, - getHelperDimensions: PropTypes.func, - helperClass: PropTypes.string, - helperContainer: PropTypes.oneOfType([PropTypes.func, typeof HTMLElement === 'undefined' ? PropTypes.any : PropTypes.instanceOf(HTMLElement)]), - hideSortableGhost: PropTypes.bool, - keyboardSortingTransitionDuration: PropTypes.number, - lockAxis: PropTypes.string, - lockOffset: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string]))]), - lockToContainerEdges: PropTypes.bool, - onSortEnd: PropTypes.func, - onSortMove: PropTypes.func, - onSortOver: PropTypes.func, - onSortStart: PropTypes.func, - pressDelay: PropTypes.number, - pressThreshold: PropTypes.number, - keyCodes: PropTypes.shape({ - lift: PropTypes.arrayOf(PropTypes.number), - drop: PropTypes.arrayOf(PropTypes.number), - cancel: PropTypes.arrayOf(PropTypes.number), - up: PropTypes.arrayOf(PropTypes.number), - down: PropTypes.arrayOf(PropTypes.number) - }), - shouldCancelStart: PropTypes.func, - transitionDuration: PropTypes.number, - updateBeforeSortStart: PropTypes.func, - useDragHandle: PropTypes.bool, - useWindowAsScrollContainer: PropTypes.bool - }; - var defaultKeyCodes = { - lift: [KEYCODE.SPACE], - drop: [KEYCODE.SPACE], - cancel: [KEYCODE.ESC], - up: [KEYCODE.UP, KEYCODE.LEFT], - down: [KEYCODE.DOWN, KEYCODE.RIGHT] - }; - var defaultProps = { - axis: 'y', - disableAutoscroll: false, - distance: 0, - getHelperDimensions: defaultGetHelperDimensions, - hideSortableGhost: true, - lockOffset: '50%', - lockToContainerEdges: false, - pressDelay: 0, - pressThreshold: 5, - keyCodes: defaultKeyCodes, - shouldCancelStart: defaultShouldCancelStart, - transitionDuration: 300, - useWindowAsScrollContainer: false - }; - var omittedProps = Object.keys(propTypes); - function validateProps(props) { - invariant_1(!(props.distance && props.pressDelay), 'Attempted to set both `pressDelay` and `distance` on SortableContainer, you may only use one or the other, not both at the same time.'); - } - - function _finallyRethrows(body, finalizer) { - try { - var result = body(); - } catch (e) { - return finalizer(true, e); - } - - if (result && result.then) { - return result.then(finalizer.bind(null, false), finalizer.bind(null, true)); - } - - return finalizer(false, value); - } - function sortableContainer(WrappedComponent) { - var _class, _temp; - - var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { - withRef: false - }; - return _temp = _class = function (_React$Component) { - inherits(WithSortableContainer, _React$Component); - - function WithSortableContainer(props) { - var _this; - - classCallCheck(this, WithSortableContainer); - - _this = possibleConstructorReturn(this, getPrototypeOf(WithSortableContainer).call(this, props)); - - defineProperty(assertThisInitialized(assertThisInitialized(_this)), "state", {}); - - defineProperty(assertThisInitialized(assertThisInitialized(_this)), "handleStart", function (event) { - var _this$props = _this.props, - distance = _this$props.distance, - shouldCancelStart = _this$props.shouldCancelStart; - - if (event.button === 2 || shouldCancelStart(event)) { - return; - } - - _this.touched = true; - _this.position = getPosition(event); - var node = closest(event.target, function (el) { - return el.sortableInfo != null; - }); - - if (node && node.sortableInfo && _this.nodeIsChild(node) && !_this.state.sorting) { - var useDragHandle = _this.props.useDragHandle; - var _node$sortableInfo = node.sortableInfo, - index = _node$sortableInfo.index, - collection = _node$sortableInfo.collection, - disabled = _node$sortableInfo.disabled; - - if (disabled) { - return; - } - - if (useDragHandle && !closest(event.target, isSortableHandle)) { - return; - } - - _this.manager.active = { - collection: collection, - index: index - }; - - if (!isTouchEvent(event) && event.target.tagName === NodeType.Anchor) { - event.preventDefault(); - } - - if (!distance) { - if (_this.props.pressDelay === 0) { - _this.handlePress(event); - } else { - _this.pressTimer = setTimeout(function () { - return _this.handlePress(event); - }, _this.props.pressDelay); - } - } - } - }); - - defineProperty(assertThisInitialized(assertThisInitialized(_this)), "nodeIsChild", function (node) { - return node.sortableInfo.manager === _this.manager; - }); - - defineProperty(assertThisInitialized(assertThisInitialized(_this)), "handleMove", function (event) { - var _this$props2 = _this.props, - distance = _this$props2.distance, - pressThreshold = _this$props2.pressThreshold; - - if (!_this.state.sorting && _this.touched && !_this._awaitingUpdateBeforeSortStart) { - var position = getPosition(event); - var delta = { - x: _this.position.x - position.x, - y: _this.position.y - position.y - }; - var combinedDelta = Math.abs(delta.x) + Math.abs(delta.y); - _this.delta = delta; - - if (!distance && (!pressThreshold || combinedDelta >= pressThreshold)) { - clearTimeout(_this.cancelTimer); - _this.cancelTimer = setTimeout(_this.cancel, 0); - } else if (distance && combinedDelta >= distance && _this.manager.isActive()) { - _this.handlePress(event); - } - } - }); - - defineProperty(assertThisInitialized(assertThisInitialized(_this)), "handleEnd", function () { - _this.touched = false; - - _this.cancel(); - }); - - defineProperty(assertThisInitialized(assertThisInitialized(_this)), "cancel", function () { - var distance = _this.props.distance; - var sorting = _this.state.sorting; - - if (!sorting) { - if (!distance) { - clearTimeout(_this.pressTimer); - } - - _this.manager.active = null; - } - }); - - defineProperty(assertThisInitialized(assertThisInitialized(_this)), "handlePress", function (event) { - try { - var active = _this.manager.getActive(); - - var _temp6 = function () { - if (active) { - var _temp7 = function _temp7() { - var index = _node.sortableInfo.index; - var margin = getElementMargin(_node); - var gridGap = getContainerGridGap(_this.container); - - var containerBoundingRect = _this.scrollContainer.getBoundingClientRect(); - - var dimensions = _getHelperDimensions({ - index: index, - node: _node, - collection: _collection - }); - - _this.node = _node; - _this.margin = margin; - _this.gridGap = gridGap; - _this.width = dimensions.width; - _this.height = dimensions.height; - _this.marginOffset = { - x: _this.margin.left + _this.margin.right + _this.gridGap.x, - y: Math.max(_this.margin.top, _this.margin.bottom, _this.gridGap.y) - }; - _this.boundingClientRect = _node.getBoundingClientRect(); - _this.containerBoundingRect = containerBoundingRect; - _this.index = index; - _this.newIndex = index; - _this.axis = { - x: _axis.indexOf('x') >= 0, - y: _axis.indexOf('y') >= 0 - }; - _this.offsetEdge = getEdgeOffset(_node, _this.container); - - if (_isKeySorting) { - _this.initialOffset = getPosition(objectSpread({}, event, { - pageX: _this.boundingClientRect.left, - pageY: _this.boundingClientRect.top - })); - } else { - _this.initialOffset = getPosition(event); - } - - _this.initialScroll = { - left: _this.scrollContainer.scrollLeft, - top: _this.scrollContainer.scrollTop - }; - _this.initialWindowScroll = { - left: window.pageXOffset, - top: window.pageYOffset - }; - _this.helper = _this.helperContainer.appendChild(cloneNode(_node)); - setInlineStyles(_this.helper, { - boxSizing: 'border-box', - height: "".concat(_this.height, "px"), - left: "".concat(_this.boundingClientRect.left - margin.left, "px"), - pointerEvents: 'none', - position: 'fixed', - top: "".concat(_this.boundingClientRect.top - margin.top, "px"), - width: "".concat(_this.width, "px") - }); - - if (_isKeySorting) { - _this.helper.focus(); - } - - if (_hideSortableGhost) { - _this.sortableGhost = _node; - setInlineStyles(_node, { - opacity: 0, - visibility: 'hidden' - }); - } - - _this.minTranslate = {}; - _this.maxTranslate = {}; - - if (_isKeySorting) { - var _ref = _useWindowAsScrollContainer ? { - top: 0, - left: 0, - width: _this.contentWindow.innerWidth, - height: _this.contentWindow.innerHeight - } : _this.containerBoundingRect, - containerTop = _ref.top, - containerLeft = _ref.left, - containerWidth = _ref.width, - containerHeight = _ref.height; - - var containerBottom = containerTop + containerHeight; - var containerRight = containerLeft + containerWidth; - - if (_this.axis.x) { - _this.minTranslate.x = containerLeft - _this.boundingClientRect.left; - _this.maxTranslate.x = containerRight - (_this.boundingClientRect.left + _this.width); - } - - if (_this.axis.y) { - _this.minTranslate.y = containerTop - _this.boundingClientRect.top; - _this.maxTranslate.y = containerBottom - (_this.boundingClientRect.top + _this.height); - } - } else { - if (_this.axis.x) { - _this.minTranslate.x = (_useWindowAsScrollContainer ? 0 : containerBoundingRect.left) - _this.boundingClientRect.left - _this.width / 2; - _this.maxTranslate.x = (_useWindowAsScrollContainer ? _this.contentWindow.innerWidth : containerBoundingRect.left + containerBoundingRect.width) - _this.boundingClientRect.left - _this.width / 2; - } - - if (_this.axis.y) { - _this.minTranslate.y = (_useWindowAsScrollContainer ? 0 : containerBoundingRect.top) - _this.boundingClientRect.top - _this.height / 2; - _this.maxTranslate.y = (_useWindowAsScrollContainer ? _this.contentWindow.innerHeight : containerBoundingRect.top + containerBoundingRect.height) - _this.boundingClientRect.top - _this.height / 2; - } - } - - if (_helperClass) { - _helperClass.split(' ').forEach(function (className) { - return _this.helper.classList.add(className); - }); - } - - _this.listenerNode = event.touches ? _node : _this.contentWindow; - - if (_isKeySorting) { - _this.listenerNode.addEventListener('wheel', _this.handleKeyEnd, true); - - _this.listenerNode.addEventListener('mousedown', _this.handleKeyEnd, true); - - _this.listenerNode.addEventListener('keydown', _this.handleKeyDown); - } else { - events.move.forEach(function (eventName) { - return _this.listenerNode.addEventListener(eventName, _this.handleSortMove, false); - }); - events.end.forEach(function (eventName) { - return _this.listenerNode.addEventListener(eventName, _this.handleSortEnd, false); - }); - } - - _this.setState({ - sorting: true, - sortingIndex: index - }); - - if (_onSortStart) { - _onSortStart({ - node: _node, - index: index, - collection: _collection, - isKeySorting: _isKeySorting, - nodes: _this.manager.getOrderedRefs(), - helper: _this.helper - }, event); - } - - if (_isKeySorting) { - _this.keyMove(0); - } - }; - - var _this$props3 = _this.props, - _axis = _this$props3.axis, - _getHelperDimensions = _this$props3.getHelperDimensions, - _helperClass = _this$props3.helperClass, - _hideSortableGhost = _this$props3.hideSortableGhost, - updateBeforeSortStart = _this$props3.updateBeforeSortStart, - _onSortStart = _this$props3.onSortStart, - _useWindowAsScrollContainer = _this$props3.useWindowAsScrollContainer; - var _node = active.node, - _collection = active.collection; - var _isKeySorting = _this.manager.isKeySorting; - - var _temp8 = function () { - if (typeof updateBeforeSortStart === 'function') { - _this._awaitingUpdateBeforeSortStart = true; - - var _temp9 = _finallyRethrows(function () { - var index = _node.sortableInfo.index; - return Promise.resolve(updateBeforeSortStart({ - collection: _collection, - index: index, - node: _node, - isKeySorting: _isKeySorting - }, event)).then(function () {}); - }, function (_wasThrown, _result) { - _this._awaitingUpdateBeforeSortStart = false; - if (_wasThrown) throw _result; - return _result; - }); - - if (_temp9 && _temp9.then) return _temp9.then(function () {}); - } - }(); - - return _temp8 && _temp8.then ? _temp8.then(_temp7) : _temp7(_temp8); - } - }(); - - return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0); - } catch (e) { - return Promise.reject(e); - } - }); - - defineProperty(assertThisInitialized(assertThisInitialized(_this)), "handleSortMove", function (event) { - var onSortMove = _this.props.onSortMove; - - if (typeof event.preventDefault === 'function') { - event.preventDefault(); - } - - _this.updateHelperPosition(event); - - _this.animateNodes(); - - _this.autoscroll(); - - if (onSortMove) { - onSortMove(event); - } - }); - - defineProperty(assertThisInitialized(assertThisInitialized(_this)), "handleSortEnd", function (event) { - var _this$props4 = _this.props, - hideSortableGhost = _this$props4.hideSortableGhost, - onSortEnd = _this$props4.onSortEnd; - var _this$manager = _this.manager, - collection = _this$manager.active.collection, - isKeySorting = _this$manager.isKeySorting; - - var nodes = _this.manager.getOrderedRefs(); - - if (_this.listenerNode) { - if (isKeySorting) { - _this.listenerNode.removeEventListener('wheel', _this.handleKeyEnd, true); - - _this.listenerNode.removeEventListener('mousedown', _this.handleKeyEnd, true); - - _this.listenerNode.removeEventListener('keydown', _this.handleKeyDown); - } else { - events.move.forEach(function (eventName) { - return _this.listenerNode.removeEventListener(eventName, _this.handleSortMove); - }); - events.end.forEach(function (eventName) { - return _this.listenerNode.removeEventListener(eventName, _this.handleSortEnd); - }); - } - } - - _this.helper.parentNode.removeChild(_this.helper); - - if (hideSortableGhost && _this.sortableGhost) { - setInlineStyles(_this.sortableGhost, { - opacity: '', - visibility: '' - }); - } - - for (var i = 0, len = nodes.length; i < len; i++) { - var _node2 = nodes[i]; - var el = _node2.node; - _node2.edgeOffset = null; - _node2.boundingClientRect = null; - setTranslate3d(el, null); - setTransitionDuration(el, null); - _node2.translate = null; - } - - _this.autoScroller.clear(); - - _this.manager.active = null; - _this.manager.isKeySorting = false; - - _this.setState({ - sorting: false, - sortingIndex: null - }); - - if (typeof onSortEnd === 'function') { - onSortEnd({ - collection: collection, - newIndex: _this.newIndex, - oldIndex: _this.index, - isKeySorting: isKeySorting, - nodes: nodes - }, event); - } - - _this.touched = false; - }); - - defineProperty(assertThisInitialized(assertThisInitialized(_this)), "autoscroll", function () { - var disableAutoscroll = _this.props.disableAutoscroll; - var isKeySorting = _this.manager.isKeySorting; - - if (disableAutoscroll) { - _this.autoScroller.clear(); - - return; - } - - if (isKeySorting) { - var translate = objectSpread({}, _this.translate); - - var scrollX = 0; - var scrollY = 0; - - if (_this.axis.x) { - translate.x = Math.min(_this.maxTranslate.x, Math.max(_this.minTranslate.x, _this.translate.x)); - scrollX = _this.translate.x - translate.x; - } - - if (_this.axis.y) { - translate.y = Math.min(_this.maxTranslate.y, Math.max(_this.minTranslate.y, _this.translate.y)); - scrollY = _this.translate.y - translate.y; - } - - _this.translate = translate; - setTranslate3d(_this.helper, _this.translate); - _this.scrollContainer.scrollLeft += scrollX; - _this.scrollContainer.scrollTop += scrollY; - return; - } - - _this.autoScroller.update({ - height: _this.height, - maxTranslate: _this.maxTranslate, - minTranslate: _this.minTranslate, - translate: _this.translate, - width: _this.width - }); - }); - - defineProperty(assertThisInitialized(assertThisInitialized(_this)), "onAutoScroll", function (offset) { - _this.translate.x += offset.left; - _this.translate.y += offset.top; - - _this.animateNodes(); - }); - - defineProperty(assertThisInitialized(assertThisInitialized(_this)), "handleKeyDown", function (event) { - var keyCode = event.keyCode; - var _this$props5 = _this.props, - shouldCancelStart = _this$props5.shouldCancelStart, - _this$props5$keyCodes = _this$props5.keyCodes, - customKeyCodes = _this$props5$keyCodes === void 0 ? {} : _this$props5$keyCodes; - - var keyCodes = objectSpread({}, defaultKeyCodes, customKeyCodes); - - if (_this.manager.active && !_this.manager.isKeySorting || !_this.manager.active && (!keyCodes.lift.includes(keyCode) || shouldCancelStart(event) || !_this.isValidSortingTarget(event))) { - return; - } - - event.stopPropagation(); - event.preventDefault(); - - if (keyCodes.lift.includes(keyCode) && !_this.manager.active) { - _this.keyLift(event); - } else if (keyCodes.drop.includes(keyCode) && _this.manager.active) { - _this.keyDrop(event); - } else if (keyCodes.cancel.includes(keyCode)) { - _this.newIndex = _this.manager.active.index; - - _this.keyDrop(event); - } else if (keyCodes.up.includes(keyCode)) { - _this.keyMove(-1); - } else if (keyCodes.down.includes(keyCode)) { - _this.keyMove(1); - } - }); - - defineProperty(assertThisInitialized(assertThisInitialized(_this)), "keyLift", function (event) { - var target = event.target; - var node = closest(target, function (el) { - return el.sortableInfo != null; - }); - var _node$sortableInfo2 = node.sortableInfo, - index = _node$sortableInfo2.index, - collection = _node$sortableInfo2.collection; - _this.initialFocusedNode = target; - _this.manager.isKeySorting = true; - _this.manager.active = { - index: index, - collection: collection - }; - - _this.handlePress(event); - }); - - defineProperty(assertThisInitialized(assertThisInitialized(_this)), "keyMove", function (shift) { - var nodes = _this.manager.getOrderedRefs(); - - var lastIndex = nodes[nodes.length - 1].node.sortableInfo.index; - var newIndex = _this.newIndex + shift; - var prevIndex = _this.newIndex; - - if (newIndex < 0 || newIndex > lastIndex) { - return; - } - - _this.prevIndex = prevIndex; - _this.newIndex = newIndex; - var targetIndex = getTargetIndex(_this.newIndex, _this.prevIndex, _this.index); - var target = nodes.find(function (_ref2) { - var node = _ref2.node; - return node.sortableInfo.index === targetIndex; - }); - var targetNode = target.node; - var scrollDelta = _this.containerScrollDelta; - var targetBoundingClientRect = target.boundingClientRect || getScrollAdjustedBoundingClientRect(targetNode, scrollDelta); - var targetTranslate = target.translate || { - x: 0, - y: 0 - }; - var targetPosition = { - top: targetBoundingClientRect.top + targetTranslate.y - scrollDelta.top, - left: targetBoundingClientRect.left + targetTranslate.x - scrollDelta.left - }; - var shouldAdjustForSize = prevIndex < newIndex; - var sizeAdjustment = { - x: shouldAdjustForSize && _this.axis.x ? targetNode.offsetWidth - _this.width : 0, - y: shouldAdjustForSize && _this.axis.y ? targetNode.offsetHeight - _this.height : 0 - }; - - _this.handleSortMove({ - pageX: targetPosition.left + sizeAdjustment.x, - pageY: targetPosition.top + sizeAdjustment.y, - ignoreTransition: shift === 0 - }); - }); - - defineProperty(assertThisInitialized(assertThisInitialized(_this)), "keyDrop", function (event) { - _this.handleSortEnd(event); - - if (_this.initialFocusedNode) { - _this.initialFocusedNode.focus(); - } - }); - - defineProperty(assertThisInitialized(assertThisInitialized(_this)), "handleKeyEnd", function (event) { - if (_this.manager.active) { - _this.keyDrop(event); - } - }); - - defineProperty(assertThisInitialized(assertThisInitialized(_this)), "isValidSortingTarget", function (event) { - var useDragHandle = _this.props.useDragHandle; - var target = event.target; - var node = closest(target, function (el) { - return el.sortableInfo != null; - }); - return node && node.sortableInfo && !node.sortableInfo.disabled && (useDragHandle ? isSortableHandle(target) : target.sortableInfo); - }); - - validateProps(props); - _this.manager = new Manager(); - _this.events = { - end: _this.handleEnd, - move: _this.handleMove, - start: _this.handleStart - }; - return _this; - } - - createClass(WithSortableContainer, [{ - key: "getChildContext", - value: function getChildContext() { - return { - manager: this.manager - }; - } - }, { - key: "componentDidMount", - value: function componentDidMount() { - var _this2 = this; - - var useWindowAsScrollContainer = this.props.useWindowAsScrollContainer; - var container = this.getContainer(); - Promise.resolve(container).then(function (containerNode) { - _this2.container = containerNode; - _this2.document = _this2.container.ownerDocument || document; - var contentWindow = _this2.props.contentWindow || _this2.document.defaultView || window; - _this2.contentWindow = typeof contentWindow === 'function' ? contentWindow() : contentWindow; - _this2.scrollContainer = useWindowAsScrollContainer ? _this2.document.scrollingElement || _this2.document.documentElement : getScrollingParent(_this2.container) || _this2.container; - _this2.autoScroller = new AutoScroller(_this2.scrollContainer, _this2.onAutoScroll); - Object.keys(_this2.events).forEach(function (key) { - return events[key].forEach(function (eventName) { - return _this2.container.addEventListener(eventName, _this2.events[key], false); - }); - }); - - _this2.container.addEventListener('keydown', _this2.handleKeyDown); - }); - } - }, { - key: "componentWillUnmount", - value: function componentWillUnmount() { - var _this3 = this; - - if (this.helper && this.helper.parentNode) { - this.helper.parentNode.removeChild(this.helper); - } - - if (!this.container) { - return; - } - - Object.keys(this.events).forEach(function (key) { - return events[key].forEach(function (eventName) { - return _this3.container.removeEventListener(eventName, _this3.events[key]); - }); - }); - this.container.removeEventListener('keydown', this.handleKeyDown); - } - }, { - key: "updateHelperPosition", - value: function updateHelperPosition(event) { - var _this$props6 = this.props, - lockAxis = _this$props6.lockAxis, - lockOffset = _this$props6.lockOffset, - lockToContainerEdges = _this$props6.lockToContainerEdges, - transitionDuration = _this$props6.transitionDuration, - _this$props6$keyboard = _this$props6.keyboardSortingTransitionDuration, - keyboardSortingTransitionDuration = _this$props6$keyboard === void 0 ? transitionDuration : _this$props6$keyboard; - var isKeySorting = this.manager.isKeySorting; - var ignoreTransition = event.ignoreTransition; - var offset = getPosition(event); - var translate = { - x: offset.x - this.initialOffset.x, - y: offset.y - this.initialOffset.y - }; - translate.y -= window.pageYOffset - this.initialWindowScroll.top; - translate.x -= window.pageXOffset - this.initialWindowScroll.left; - this.translate = translate; - - if (lockToContainerEdges) { - var _getLockPixelOffsets = getLockPixelOffsets({ - height: this.height, - lockOffset: lockOffset, - width: this.width - }), - _getLockPixelOffsets2 = slicedToArray(_getLockPixelOffsets, 2), - minLockOffset = _getLockPixelOffsets2[0], - maxLockOffset = _getLockPixelOffsets2[1]; - - var minOffset = { - x: this.width / 2 - minLockOffset.x, - y: this.height / 2 - minLockOffset.y - }; - var maxOffset = { - x: this.width / 2 - maxLockOffset.x, - y: this.height / 2 - maxLockOffset.y - }; - translate.x = limit(this.minTranslate.x + minOffset.x, this.maxTranslate.x - maxOffset.x, translate.x); - translate.y = limit(this.minTranslate.y + minOffset.y, this.maxTranslate.y - maxOffset.y, translate.y); - } - - if (lockAxis === 'x') { - translate.y = 0; - } else if (lockAxis === 'y') { - translate.x = 0; - } - - if (isKeySorting && keyboardSortingTransitionDuration && !ignoreTransition) { - setTransitionDuration(this.helper, keyboardSortingTransitionDuration); - } - - setTranslate3d(this.helper, translate); - } - }, { - key: "animateNodes", - value: function animateNodes() { - var _this$props7 = this.props, - transitionDuration = _this$props7.transitionDuration, - hideSortableGhost = _this$props7.hideSortableGhost, - onSortOver = _this$props7.onSortOver; - var containerScrollDelta = this.containerScrollDelta, - windowScrollDelta = this.windowScrollDelta; - var nodes = this.manager.getOrderedRefs(); - var sortingOffset = { - left: this.offsetEdge.left + this.translate.x + containerScrollDelta.left, - top: this.offsetEdge.top + this.translate.y + containerScrollDelta.top - }; - var isKeySorting = this.manager.isKeySorting; - var prevIndex = this.newIndex; - this.newIndex = null; - - for (var i = 0, len = nodes.length; i < len; i++) { - var _node3 = nodes[i].node; - var index = _node3.sortableInfo.index; - var width = _node3.offsetWidth; - var height = _node3.offsetHeight; - var offset = { - height: this.height > height ? height / 2 : this.height / 2, - width: this.width > width ? width / 2 : this.width / 2 - }; - var mustShiftBackward = isKeySorting && index > this.index && index <= prevIndex; - var mustShiftForward = isKeySorting && index < this.index && index >= prevIndex; - var translate = { - x: 0, - y: 0 - }; - var edgeOffset = nodes[i].edgeOffset; - - if (!edgeOffset) { - edgeOffset = getEdgeOffset(_node3, this.container); - nodes[i].edgeOffset = edgeOffset; - - if (isKeySorting) { - nodes[i].boundingClientRect = getScrollAdjustedBoundingClientRect(_node3, containerScrollDelta); - } - } - - var nextNode = i < nodes.length - 1 && nodes[i + 1]; - var prevNode = i > 0 && nodes[i - 1]; - - if (nextNode && !nextNode.edgeOffset) { - nextNode.edgeOffset = getEdgeOffset(nextNode.node, this.container); - - if (isKeySorting) { - nextNode.boundingClientRect = getScrollAdjustedBoundingClientRect(nextNode.node, containerScrollDelta); - } - } - - if (index === this.index) { - if (hideSortableGhost) { - this.sortableGhost = _node3; - setInlineStyles(_node3, { - opacity: 0, - visibility: 'hidden' - }); - } - - continue; - } - - if (transitionDuration) { - setTransitionDuration(_node3, transitionDuration); - } - - if (this.axis.x) { - if (this.axis.y) { - if (mustShiftForward || index < this.index && (sortingOffset.left + windowScrollDelta.left - offset.width <= edgeOffset.left && sortingOffset.top + windowScrollDelta.top <= edgeOffset.top + offset.height || sortingOffset.top + windowScrollDelta.top + offset.height <= edgeOffset.top)) { - translate.x = this.width + this.marginOffset.x; - - if (edgeOffset.left + translate.x > this.containerBoundingRect.width - offset.width) { - if (nextNode) { - translate.x = nextNode.edgeOffset.left - edgeOffset.left; - translate.y = nextNode.edgeOffset.top - edgeOffset.top; - } - } - - if (this.newIndex === null) { - this.newIndex = index; - } - } else if (mustShiftBackward || index > this.index && (sortingOffset.left + windowScrollDelta.left + offset.width >= edgeOffset.left && sortingOffset.top + windowScrollDelta.top + offset.height >= edgeOffset.top || sortingOffset.top + windowScrollDelta.top + offset.height >= edgeOffset.top + height)) { - translate.x = -(this.width + this.marginOffset.x); - - if (edgeOffset.left + translate.x < this.containerBoundingRect.left + offset.width) { - if (prevNode) { - translate.x = prevNode.edgeOffset.left - edgeOffset.left; - translate.y = prevNode.edgeOffset.top - edgeOffset.top; - } - } - - this.newIndex = index; - } - } else { - if (mustShiftBackward || index > this.index && sortingOffset.left + windowScrollDelta.left + offset.width >= edgeOffset.left) { - translate.x = -(this.width + this.marginOffset.x); - this.newIndex = index; - } else if (mustShiftForward || index < this.index && sortingOffset.left + windowScrollDelta.left <= edgeOffset.left + offset.width) { - translate.x = this.width + this.marginOffset.x; - - if (this.newIndex == null) { - this.newIndex = index; - } - } - } - } else if (this.axis.y) { - if (mustShiftBackward || index > this.index && sortingOffset.top + windowScrollDelta.top + offset.height >= edgeOffset.top) { - translate.y = -(this.height + this.marginOffset.y); - this.newIndex = index; - } else if (mustShiftForward || index < this.index && sortingOffset.top + windowScrollDelta.top <= edgeOffset.top + offset.height) { - translate.y = this.height + this.marginOffset.y; - - if (this.newIndex == null) { - this.newIndex = index; - } - } - } - - setTranslate3d(_node3, translate); - nodes[i].translate = translate; - } - - if (this.newIndex == null) { - this.newIndex = this.index; - } - - if (isKeySorting) { - this.newIndex = prevIndex; - } - - var oldIndex = isKeySorting ? this.prevIndex : prevIndex; - - if (onSortOver && this.newIndex !== oldIndex) { - onSortOver({ - collection: this.manager.active.collection, - index: this.index, - newIndex: this.newIndex, - oldIndex: oldIndex, - isKeySorting: isKeySorting, - nodes: nodes, - helper: this.helper - }); - } - } - }, { - key: "getWrappedInstance", - value: function getWrappedInstance() { - invariant_1(config.withRef, 'To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableContainer() call'); - return this.refs.wrappedInstance; - } - }, { - key: "getContainer", - value: function getContainer() { - var getContainer = this.props.getContainer; - - if (typeof getContainer !== 'function') { - return reactDom.findDOMNode(this); - } - - return getContainer(config.withRef ? this.getWrappedInstance() : undefined); - } - }, { - key: "render", - value: function render() { - var ref = config.withRef ? 'wrappedInstance' : null; - return React.createElement(WrappedComponent, _extends_1({ - ref: ref - }, omit(this.props, omittedProps))); - } - }, { - key: "helperContainer", - get: function get() { - var helperContainer = this.props.helperContainer; - - if (typeof helperContainer === 'function') { - return helperContainer(); - } - - return this.props.helperContainer || this.document.body; - } - }, { - key: "containerScrollDelta", - get: function get() { - var useWindowAsScrollContainer = this.props.useWindowAsScrollContainer; - - if (useWindowAsScrollContainer) { - return { - left: 0, - top: 0 - }; - } - - return { - left: this.scrollContainer.scrollLeft - this.initialScroll.left, - top: this.scrollContainer.scrollTop - this.initialScroll.top - }; - } - }, { - key: "windowScrollDelta", - get: function get() { - return { - left: this.contentWindow.pageXOffset - this.initialWindowScroll.left, - top: this.contentWindow.pageYOffset - this.initialWindowScroll.top - }; - } - }]); - - return WithSortableContainer; - }(React.Component), defineProperty(_class, "displayName", provideDisplayName('sortableList', WrappedComponent)), defineProperty(_class, "defaultProps", defaultProps), defineProperty(_class, "propTypes", propTypes), defineProperty(_class, "childContextTypes", { - manager: PropTypes.object.isRequired - }), _temp; - } - - var propTypes$1 = { - index: PropTypes.number.isRequired, - collection: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), - disabled: PropTypes.bool - }; - var omittedProps$1 = Object.keys(propTypes$1); - function sortableElement(WrappedComponent) { - var _class, _temp; - - var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { - withRef: false - }; - return _temp = _class = function (_React$Component) { - inherits(WithSortableElement, _React$Component); - - function WithSortableElement() { - classCallCheck(this, WithSortableElement); - - return possibleConstructorReturn(this, getPrototypeOf(WithSortableElement).apply(this, arguments)); - } - - createClass(WithSortableElement, [{ - key: "componentDidMount", - value: function componentDidMount() { - this.register(); - } - }, { - key: "componentDidUpdate", - value: function componentDidUpdate(prevProps) { - if (this.node) { - if (prevProps.index !== this.props.index) { - this.node.sortableInfo.index = this.props.index; - } - - if (prevProps.disabled !== this.props.disabled) { - this.node.sortableInfo.disabled = this.props.disabled; - } - } - - if (prevProps.collection !== this.props.collection) { - this.unregister(prevProps.collection); - this.register(); - } - } - }, { - key: "componentWillUnmount", - value: function componentWillUnmount() { - this.unregister(); - } - }, { - key: "register", - value: function register() { - var _this$props = this.props, - collection = _this$props.collection, - disabled = _this$props.disabled, - index = _this$props.index; - var node = reactDom.findDOMNode(this); - node.sortableInfo = { - collection: collection, - disabled: disabled, - index: index, - manager: this.context.manager - }; - this.node = node; - this.ref = { - node: node - }; - this.context.manager.add(collection, this.ref); - } - }, { - key: "unregister", - value: function unregister() { - var collection = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props.collection; - this.context.manager.remove(collection, this.ref); - } - }, { - key: "getWrappedInstance", - value: function getWrappedInstance() { - invariant_1(config.withRef, 'To access the wrapped instance, you need to pass in {withRef: true} as the second argument of the SortableElement() call'); - return this.refs.wrappedInstance; - } - }, { - key: "render", - value: function render() { - var ref = config.withRef ? 'wrappedInstance' : null; - return React.createElement(WrappedComponent, _extends_1({ - ref: ref - }, omit(this.props, omittedProps$1))); - } - }]); - - return WithSortableElement; - }(React.Component), defineProperty(_class, "displayName", provideDisplayName('sortableElement', WrappedComponent)), defineProperty(_class, "contextTypes", { - manager: PropTypes.object.isRequired - }), defineProperty(_class, "propTypes", propTypes$1), defineProperty(_class, "defaultProps", { - collection: 0 - }), _temp; - } - - exports.SortableContainer = sortableContainer; - exports.sortableContainer = sortableContainer; - exports.SortableElement = sortableElement; - exports.sortableElement = sortableElement; - exports.SortableHandle = sortableHandle; - exports.sortableHandle = sortableHandle; - exports.arrayMove = arrayMove; - - Object.defineProperty(exports, '__esModule', { value: true }); - -})); diff --git a/library/backend/assets/js/react-sortable-hoc.umd.min.js b/library/backend/assets/js/react-sortable-hoc.umd.min.js deleted file mode 100644 index 116ff16..0000000 --- a/library/backend/assets/js/react-sortable-hoc.umd.min.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(f){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=f();else if("function"==typeof define&&define.amd)define([],f);else{var g;g="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,g.PropTypes=f()}}(function(){return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var i="function"==typeof require&&require,o=0;o=r.y-a/2&&!v?(s.y=1,l.y=d*Math.abs((r.y-a/2-n.y)/a)):n.x>=r.x-i/2&&!x?(s.x=1,l.x=c*Math.abs((r.x-i/2-n.x)/i)):n.y<=o.y+a/2&&!g?(s.y=-1,l.y=d*Math.abs((n.y-a/2-o.y)/a)):n.x<=o.x+i/2&&!m&&(s.x=-1,l.x=c*Math.abs((n.x-i/2-o.x)/i)),this.interval&&(this.clear(),this.isAutoScrolling=!1),0===s.x&&0===s.y||(this.interval=setInterval(function(){t.isAutoScrolling=!0;var e={left:l.x*s.x,top:l.y*s.y};t.container.scrollTop+=e.top,t.container.scrollLeft+=e.left,t.onScrollCallback(e)},5))}}]),n}();var Z={axis:i.oneOf(["x","y","xy"]),contentWindow:i.any,disableAutoscroll:i.bool,distance:i.number,getContainer:i.func,getHelperDimensions:i.func,helperClass:i.string,helperContainer:i.oneOfType([i.func,"undefined"==typeof HTMLElement?i.any:i.instanceOf(HTMLElement)]),hideSortableGhost:i.bool,keyboardSortingTransitionDuration:i.number,lockAxis:i.string,lockOffset:i.oneOfType([i.number,i.string,i.arrayOf(i.oneOfType([i.number,i.string]))]),lockToContainerEdges:i.bool,onSortEnd:i.func,onSortMove:i.func,onSortOver:i.func,onSortStart:i.func,pressDelay:i.number,pressThreshold:i.number,keyCodes:i.shape({lift:i.arrayOf(i.number),drop:i.arrayOf(i.number),cancel:i.arrayOf(i.number),up:i.arrayOf(i.number),down:i.arrayOf(i.number)}),shouldCancelStart:i.func,transitionDuration:i.number,updateBeforeSortStart:i.func,useDragHandle:i.bool,useWindowAsScrollContainer:i.bool},ee={lift:[U],drop:[U],cancel:[X],up:[q,Y],down:[V,F]},te={axis:"y",disableAutoscroll:!1,distance:0,getHelperDimensions:function(e){var t=e.node;return{height:t.offsetHeight,width:t.offsetWidth}},hideSortableGhost:!0,lockOffset:"50%",lockToContainerEdges:!1,pressDelay:0,pressThreshold:5,keyCodes:ee,shouldCancelStart:function(e){return-1!==[z.Input,z.Textarea,z.Select,z.Option,z.Button].indexOf(e.target.tagName)||!!L(e.target,function(e){return"true"===e.contentEditable})},transitionDuration:300,useWindowAsScrollContainer:!1},ne=Object.keys(Z);function oe(t){var e,n,o=1g?g/2:this.height/2,m=this.width>y?y/2:this.width/2,x=c&&p>this.index&&p<=d,b=c&&pthis.containerBoundingRect.width-m&&O&&(w.x=O.edgeOffset.left-S.left,w.y=O.edgeOffset.top-S.top),null===this.newIndex&&(this.newIndex=p)):(x||p>this.index&&(s+i.left+m>=S.left&&l+i.top+v>=S.top||l+i.top+v>=S.top+g))&&(w.x=-(this.width+this.marginOffset.x),S.left+w.xthis.index&&s+i.left+m>=S.left?(w.x=-(this.width+this.marginOffset.x),this.newIndex=p):(b||pthis.index&&l+i.top+v>=S.top?(w.y=-(this.height+this.marginOffset.y),this.newIndex=p):(b||p + * @author owenm + * @license MIT + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = global || self, global.Sortable = factory()); +}(this, function () { 'use strict'; + + function _typeof(obj) { + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function (obj) { + return typeof obj; + }; + } else { + _typeof = function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + + return _typeof(obj); + } + + function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; + } + + function _extends() { + _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends.apply(this, arguments); + } + + function _objectSpread(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + var ownKeys = Object.keys(source); + + if (typeof Object.getOwnPropertySymbols === 'function') { + ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { + return Object.getOwnPropertyDescriptor(source, sym).enumerable; + })); + } + + ownKeys.forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } + + return target; + } + + function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; + } + + function _objectWithoutProperties(source, excluded) { + if (source == null) return {}; + + var target = _objectWithoutPropertiesLoose(source, excluded); + + var key, i; + + if (Object.getOwnPropertySymbols) { + var sourceSymbolKeys = Object.getOwnPropertySymbols(source); + + for (i = 0; i < sourceSymbolKeys.length; i++) { + key = sourceSymbolKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; + target[key] = source[key]; + } + } + + return target; + } + + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); + } + + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) { + for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; + + return arr2; + } + } + + function _iterableToArray(iter) { + if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); + } + + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance"); + } + + var version = "1.13.0"; + + function userAgent(pattern) { + if (typeof window !== 'undefined' && window.navigator) { + return !! + /*@__PURE__*/ + navigator.userAgent.match(pattern); + } + } + + var IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i); + var Edge = userAgent(/Edge/i); + var FireFox = userAgent(/firefox/i); + var Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i); + var IOS = userAgent(/iP(ad|od|hone)/i); + var ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i); + + var captureMode = { + capture: false, + passive: false + }; + + function on(el, event, fn) { + el.addEventListener(event, fn, !IE11OrLess && captureMode); + } + + function off(el, event, fn) { + el.removeEventListener(event, fn, !IE11OrLess && captureMode); + } + + function matches( + /**HTMLElement*/ + el, + /**String*/ + selector) { + if (!selector) return; + selector[0] === '>' && (selector = selector.substring(1)); + + if (el) { + try { + if (el.matches) { + return el.matches(selector); + } else if (el.msMatchesSelector) { + return el.msMatchesSelector(selector); + } else if (el.webkitMatchesSelector) { + return el.webkitMatchesSelector(selector); + } + } catch (_) { + return false; + } + } + + return false; + } + + function getParentOrHost(el) { + return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode; + } + + function closest( + /**HTMLElement*/ + el, + /**String*/ + selector, + /**HTMLElement*/ + ctx, includeCTX) { + if (el) { + ctx = ctx || document; + + do { + if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) { + return el; + } + + if (el === ctx) break; + /* jshint boss:true */ + } while (el = getParentOrHost(el)); + } + + return null; + } + + var R_SPACE = /\s+/g; + + function toggleClass(el, name, state) { + if (el && name) { + if (el.classList) { + el.classList[state ? 'add' : 'remove'](name); + } else { + var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' '); + el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' '); + } + } + } + + function css(el, prop, val) { + var style = el && el.style; + + if (style) { + if (val === void 0) { + if (document.defaultView && document.defaultView.getComputedStyle) { + val = document.defaultView.getComputedStyle(el, ''); + } else if (el.currentStyle) { + val = el.currentStyle; + } + + return prop === void 0 ? val : val[prop]; + } else { + if (!(prop in style) && prop.indexOf('webkit') === -1) { + prop = '-webkit-' + prop; + } + + style[prop] = val + (typeof val === 'string' ? '' : 'px'); + } + } + } + + function matrix(el, selfOnly) { + var appliedTransforms = ''; + + if (typeof el === 'string') { + appliedTransforms = el; + } else { + do { + var transform = css(el, 'transform'); + + if (transform && transform !== 'none') { + appliedTransforms = transform + ' ' + appliedTransforms; + } + /* jshint boss:true */ + + } while (!selfOnly && (el = el.parentNode)); + } + + var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix; + /*jshint -W056 */ + + return matrixFn && new matrixFn(appliedTransforms); + } + + function find(ctx, tagName, iterator) { + if (ctx) { + var list = ctx.getElementsByTagName(tagName), + i = 0, + n = list.length; + + if (iterator) { + for (; i < n; i++) { + iterator(list[i], i); + } + } + + return list; + } + + return []; + } + + function getWindowScrollingElement() { + var scrollingElement = document.scrollingElement; + + if (scrollingElement) { + return scrollingElement; + } else { + return document.documentElement; + } + } + /** + * Returns the "bounding client rect" of given element + * @param {HTMLElement} el The element whose boundingClientRect is wanted + * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container + * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr + * @param {[Boolean]} undoScale Whether the container's scale() should be undone + * @param {[HTMLElement]} container The parent the element will be placed in + * @return {Object} The boundingClientRect of el, with specified adjustments + */ + + + function getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) { + if (!el.getBoundingClientRect && el !== window) return; + var elRect, top, left, bottom, right, height, width; + + if (el !== window && el.parentNode && el !== getWindowScrollingElement()) { + elRect = el.getBoundingClientRect(); + top = elRect.top; + left = elRect.left; + bottom = elRect.bottom; + right = elRect.right; + height = elRect.height; + width = elRect.width; + } else { + top = 0; + left = 0; + bottom = window.innerHeight; + right = window.innerWidth; + height = window.innerHeight; + width = window.innerWidth; + } + + if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) { + // Adjust for translate() + container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312) + // Not needed on <= IE11 + + if (!IE11OrLess) { + do { + if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) { + var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container + + top -= containerRect.top + parseInt(css(container, 'border-top-width')); + left -= containerRect.left + parseInt(css(container, 'border-left-width')); + bottom = top + elRect.height; + right = left + elRect.width; + break; + } + /* jshint boss:true */ + + } while (container = container.parentNode); + } + } + + if (undoScale && el !== window) { + // Adjust for scale() + var elMatrix = matrix(container || el), + scaleX = elMatrix && elMatrix.a, + scaleY = elMatrix && elMatrix.d; + + if (elMatrix) { + top /= scaleY; + left /= scaleX; + width /= scaleX; + height /= scaleY; + bottom = top + height; + right = left + width; + } + } + + return { + top: top, + left: left, + bottom: bottom, + right: right, + width: width, + height: height + }; + } + /** + * Checks if a side of an element is scrolled past a side of its parents + * @param {HTMLElement} el The element who's side being scrolled out of view is in question + * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom') + * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom') + * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element + */ + + + function isScrolledPast(el, elSide, parentSide) { + var parent = getParentAutoScrollElement(el, true), + elSideVal = getRect(el)[elSide]; + /* jshint boss:true */ + + while (parent) { + var parentSideVal = getRect(parent)[parentSide], + visible = void 0; + + if (parentSide === 'top' || parentSide === 'left') { + visible = elSideVal >= parentSideVal; + } else { + visible = elSideVal <= parentSideVal; + } + + if (!visible) return parent; + if (parent === getWindowScrollingElement()) break; + parent = getParentAutoScrollElement(parent, false); + } + + return false; + } + /** + * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible) + * and non-draggable elements + * @param {HTMLElement} el The parent element + * @param {Number} childNum The index of the child + * @param {Object} options Parent Sortable's options + * @return {HTMLElement} The child at index childNum, or null if not found + */ + + + function getChild(el, childNum, options) { + var currentChild = 0, + i = 0, + children = el.children; + + while (i < children.length) { + if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && children[i] !== Sortable.dragged && closest(children[i], options.draggable, el, false)) { + if (currentChild === childNum) { + return children[i]; + } + + currentChild++; + } + + i++; + } + + return null; + } + /** + * Gets the last child in the el, ignoring ghostEl or invisible elements (clones) + * @param {HTMLElement} el Parent element + * @param {selector} selector Any other elements that should be ignored + * @return {HTMLElement} The last child, ignoring ghostEl + */ + + + function lastChild(el, selector) { + var last = el.lastElementChild; + + while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) { + last = last.previousElementSibling; + } + + return last || null; + } + /** + * Returns the index of an element within its parent for a selected set of + * elements + * @param {HTMLElement} el + * @param {selector} selector + * @return {number} + */ + + + function index(el, selector) { + var index = 0; + + if (!el || !el.parentNode) { + return -1; + } + /* jshint boss:true */ + + + while (el = el.previousElementSibling) { + if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) { + index++; + } + } + + return index; + } + /** + * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements. + * The value is returned in real pixels. + * @param {HTMLElement} el + * @return {Array} Offsets in the format of [left, top] + */ + + + function getRelativeScrollOffset(el) { + var offsetLeft = 0, + offsetTop = 0, + winScroller = getWindowScrollingElement(); + + if (el) { + do { + var elMatrix = matrix(el), + scaleX = elMatrix.a, + scaleY = elMatrix.d; + offsetLeft += el.scrollLeft * scaleX; + offsetTop += el.scrollTop * scaleY; + } while (el !== winScroller && (el = el.parentNode)); + } + + return [offsetLeft, offsetTop]; + } + /** + * Returns the index of the object within the given array + * @param {Array} arr Array that may or may not hold the object + * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find + * @return {Number} The index of the object in the array, or -1 + */ + + + function indexOfObject(arr, obj) { + for (var i in arr) { + if (!arr.hasOwnProperty(i)) continue; + + for (var key in obj) { + if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i); + } + } + + return -1; + } + + function getParentAutoScrollElement(el, includeSelf) { + // skip to window + if (!el || !el.getBoundingClientRect) return getWindowScrollingElement(); + var elem = el; + var gotSelf = false; + + do { + // we don't need to get elem css if it isn't even overflowing in the first place (performance) + if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) { + var elemCSS = css(elem); + + if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) { + if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement(); + if (gotSelf || includeSelf) return elem; + gotSelf = true; + } + } + /* jshint boss:true */ + + } while (elem = elem.parentNode); + + return getWindowScrollingElement(); + } + + function extend(dst, src) { + if (dst && src) { + for (var key in src) { + if (src.hasOwnProperty(key)) { + dst[key] = src[key]; + } + } + } + + return dst; + } + + function isRectEqual(rect1, rect2) { + return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width); + } + + var _throttleTimeout; + + function throttle(callback, ms) { + return function () { + if (!_throttleTimeout) { + var args = arguments, + _this = this; + + if (args.length === 1) { + callback.call(_this, args[0]); + } else { + callback.apply(_this, args); + } + + _throttleTimeout = setTimeout(function () { + _throttleTimeout = void 0; + }, ms); + } + }; + } + + function cancelThrottle() { + clearTimeout(_throttleTimeout); + _throttleTimeout = void 0; + } + + function scrollBy(el, x, y) { + el.scrollLeft += x; + el.scrollTop += y; + } + + function clone(el) { + var Polymer = window.Polymer; + var $ = window.jQuery || window.Zepto; + + if (Polymer && Polymer.dom) { + return Polymer.dom(el).cloneNode(true); + } else if ($) { + return $(el).clone(true)[0]; + } else { + return el.cloneNode(true); + } + } + + function setRect(el, rect) { + css(el, 'position', 'absolute'); + css(el, 'top', rect.top); + css(el, 'left', rect.left); + css(el, 'width', rect.width); + css(el, 'height', rect.height); + } + + function unsetRect(el) { + css(el, 'position', ''); + css(el, 'top', ''); + css(el, 'left', ''); + css(el, 'width', ''); + css(el, 'height', ''); + } + + var expando = 'Sortable' + new Date().getTime(); + + function AnimationStateManager() { + var animationStates = [], + animationCallbackId; + return { + captureAnimationState: function captureAnimationState() { + animationStates = []; + if (!this.options.animation) return; + var children = [].slice.call(this.el.children); + children.forEach(function (child) { + if (css(child, 'display') === 'none' || child === Sortable.ghost) return; + animationStates.push({ + target: child, + rect: getRect(child) + }); + + var fromRect = _objectSpread({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation + + + if (child.thisAnimationDuration) { + var childMatrix = matrix(child, true); + + if (childMatrix) { + fromRect.top -= childMatrix.f; + fromRect.left -= childMatrix.e; + } + } + + child.fromRect = fromRect; + }); + }, + addAnimationState: function addAnimationState(state) { + animationStates.push(state); + }, + removeAnimationState: function removeAnimationState(target) { + animationStates.splice(indexOfObject(animationStates, { + target: target + }), 1); + }, + animateAll: function animateAll(callback) { + var _this = this; + + if (!this.options.animation) { + clearTimeout(animationCallbackId); + if (typeof callback === 'function') callback(); + return; + } + + var animating = false, + animationTime = 0; + animationStates.forEach(function (state) { + var time = 0, + target = state.target, + fromRect = target.fromRect, + toRect = getRect(target), + prevFromRect = target.prevFromRect, + prevToRect = target.prevToRect, + animatingRect = state.rect, + targetMatrix = matrix(target, true); + + if (targetMatrix) { + // Compensate for current animation + toRect.top -= targetMatrix.f; + toRect.left -= targetMatrix.e; + } + + target.toRect = toRect; + + if (target.thisAnimationDuration) { + // Could also check if animatingRect is between fromRect and toRect + if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect + (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) { + // If returning to same place as started from animation and on same axis + time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options); + } + } // if fromRect != toRect: animate + + + if (!isRectEqual(toRect, fromRect)) { + target.prevFromRect = fromRect; + target.prevToRect = toRect; + + if (!time) { + time = _this.options.animation; + } + + _this.animate(target, animatingRect, toRect, time); + } + + if (time) { + animating = true; + animationTime = Math.max(animationTime, time); + clearTimeout(target.animationResetTimer); + target.animationResetTimer = setTimeout(function () { + target.animationTime = 0; + target.prevFromRect = null; + target.fromRect = null; + target.prevToRect = null; + target.thisAnimationDuration = null; + }, time); + target.thisAnimationDuration = time; + } + }); + clearTimeout(animationCallbackId); + + if (!animating) { + if (typeof callback === 'function') callback(); + } else { + animationCallbackId = setTimeout(function () { + if (typeof callback === 'function') callback(); + }, animationTime); + } + + animationStates = []; + }, + animate: function animate(target, currentRect, toRect, duration) { + if (duration) { + css(target, 'transition', ''); + css(target, 'transform', ''); + var elMatrix = matrix(this.el), + scaleX = elMatrix && elMatrix.a, + scaleY = elMatrix && elMatrix.d, + translateX = (currentRect.left - toRect.left) / (scaleX || 1), + translateY = (currentRect.top - toRect.top) / (scaleY || 1); + target.animatingX = !!translateX; + target.animatingY = !!translateY; + css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)'); + this.forRepaintDummy = repaint(target); // repaint + + css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : '')); + css(target, 'transform', 'translate3d(0,0,0)'); + typeof target.animated === 'number' && clearTimeout(target.animated); + target.animated = setTimeout(function () { + css(target, 'transition', ''); + css(target, 'transform', ''); + target.animated = false; + target.animatingX = false; + target.animatingY = false; + }, duration); + } + } + }; + } + + function repaint(target) { + return target.offsetWidth; + } + + function calculateRealTime(animatingRect, fromRect, toRect, options) { + return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation; + } + + var plugins = []; + var defaults = { + initializeByDefault: true + }; + var PluginManager = { + mount: function mount(plugin) { + // Set default static properties + for (var option in defaults) { + if (defaults.hasOwnProperty(option) && !(option in plugin)) { + plugin[option] = defaults[option]; + } + } + + plugins.forEach(function (p) { + if (p.pluginName === plugin.pluginName) { + throw "Sortable: Cannot mount plugin ".concat(plugin.pluginName, " more than once"); + } + }); + plugins.push(plugin); + }, + pluginEvent: function pluginEvent(eventName, sortable, evt) { + var _this = this; + + this.eventCanceled = false; + + evt.cancel = function () { + _this.eventCanceled = true; + }; + + var eventNameGlobal = eventName + 'Global'; + plugins.forEach(function (plugin) { + if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable + + if (sortable[plugin.pluginName][eventNameGlobal]) { + sortable[plugin.pluginName][eventNameGlobal](_objectSpread({ + sortable: sortable + }, evt)); + } // Only fire plugin event if plugin is enabled in this sortable, + // and plugin has event defined + + + if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) { + sortable[plugin.pluginName][eventName](_objectSpread({ + sortable: sortable + }, evt)); + } + }); + }, + initializePlugins: function initializePlugins(sortable, el, defaults, options) { + plugins.forEach(function (plugin) { + var pluginName = plugin.pluginName; + if (!sortable.options[pluginName] && !plugin.initializeByDefault) return; + var initialized = new plugin(sortable, el, sortable.options); + initialized.sortable = sortable; + initialized.options = sortable.options; + sortable[pluginName] = initialized; // Add default options from plugin + + _extends(defaults, initialized.defaults); + }); + + for (var option in sortable.options) { + if (!sortable.options.hasOwnProperty(option)) continue; + var modified = this.modifyOption(sortable, option, sortable.options[option]); + + if (typeof modified !== 'undefined') { + sortable.options[option] = modified; + } + } + }, + getEventProperties: function getEventProperties(name, sortable) { + var eventProperties = {}; + plugins.forEach(function (plugin) { + if (typeof plugin.eventProperties !== 'function') return; + + _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name)); + }); + return eventProperties; + }, + modifyOption: function modifyOption(sortable, name, value) { + var modifiedValue; + plugins.forEach(function (plugin) { + // Plugin must exist on the Sortable + if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin + + if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') { + modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value); + } + }); + return modifiedValue; + } + }; + + function dispatchEvent(_ref) { + var sortable = _ref.sortable, + rootEl = _ref.rootEl, + name = _ref.name, + targetEl = _ref.targetEl, + cloneEl = _ref.cloneEl, + toEl = _ref.toEl, + fromEl = _ref.fromEl, + oldIndex = _ref.oldIndex, + newIndex = _ref.newIndex, + oldDraggableIndex = _ref.oldDraggableIndex, + newDraggableIndex = _ref.newDraggableIndex, + originalEvent = _ref.originalEvent, + putSortable = _ref.putSortable, + extraEventProperties = _ref.extraEventProperties; + sortable = sortable || rootEl && rootEl[expando]; + if (!sortable) return; + var evt, + options = sortable.options, + onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature + + if (window.CustomEvent && !IE11OrLess && !Edge) { + evt = new CustomEvent(name, { + bubbles: true, + cancelable: true + }); + } else { + evt = document.createEvent('Event'); + evt.initEvent(name, true, true); + } + + evt.to = toEl || rootEl; + evt.from = fromEl || rootEl; + evt.item = targetEl || rootEl; + evt.clone = cloneEl; + evt.oldIndex = oldIndex; + evt.newIndex = newIndex; + evt.oldDraggableIndex = oldDraggableIndex; + evt.newDraggableIndex = newDraggableIndex; + evt.originalEvent = originalEvent; + evt.pullMode = putSortable ? putSortable.lastPutMode : undefined; + + var allEventProperties = _objectSpread({}, extraEventProperties, PluginManager.getEventProperties(name, sortable)); + + for (var option in allEventProperties) { + evt[option] = allEventProperties[option]; + } + + if (rootEl) { + rootEl.dispatchEvent(evt); + } + + if (options[onName]) { + options[onName].call(sortable, evt); + } + } + + var pluginEvent = function pluginEvent(eventName, sortable) { + var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}, + originalEvent = _ref.evt, + data = _objectWithoutProperties(_ref, ["evt"]); + + PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread({ + dragEl: dragEl, + parentEl: parentEl, + ghostEl: ghostEl, + rootEl: rootEl, + nextEl: nextEl, + lastDownEl: lastDownEl, + cloneEl: cloneEl, + cloneHidden: cloneHidden, + dragStarted: moved, + putSortable: putSortable, + activeSortable: Sortable.active, + originalEvent: originalEvent, + oldIndex: oldIndex, + oldDraggableIndex: oldDraggableIndex, + newIndex: newIndex, + newDraggableIndex: newDraggableIndex, + hideGhostForTarget: _hideGhostForTarget, + unhideGhostForTarget: _unhideGhostForTarget, + cloneNowHidden: function cloneNowHidden() { + cloneHidden = true; + }, + cloneNowShown: function cloneNowShown() { + cloneHidden = false; + }, + dispatchSortableEvent: function dispatchSortableEvent(name) { + _dispatchEvent({ + sortable: sortable, + name: name, + originalEvent: originalEvent + }); + } + }, data)); + }; + + function _dispatchEvent(info) { + dispatchEvent(_objectSpread({ + putSortable: putSortable, + cloneEl: cloneEl, + targetEl: dragEl, + rootEl: rootEl, + oldIndex: oldIndex, + oldDraggableIndex: oldDraggableIndex, + newIndex: newIndex, + newDraggableIndex: newDraggableIndex + }, info)); + } + + var dragEl, + parentEl, + ghostEl, + rootEl, + nextEl, + lastDownEl, + cloneEl, + cloneHidden, + oldIndex, + newIndex, + oldDraggableIndex, + newDraggableIndex, + activeGroup, + putSortable, + awaitingDragStarted = false, + ignoreNextClick = false, + sortables = [], + tapEvt, + touchEvt, + lastDx, + lastDy, + tapDistanceLeft, + tapDistanceTop, + moved, + lastTarget, + lastDirection, + pastFirstInvertThresh = false, + isCircumstantialInvert = false, + targetMoveDistance, + // For positioning ghost absolutely + ghostRelativeParent, + ghostRelativeParentInitialScroll = [], + // (left, top) + _silent = false, + savedInputChecked = []; + /** @const */ + + var documentExists = typeof document !== 'undefined', + PositionGhostAbsolutely = IOS, + CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float', + // This will not pass for IE9, because IE9 DnD only works on anchors + supportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'), + supportCssPointerEvents = function () { + if (!documentExists) return; // false when <= IE11 + + if (IE11OrLess) { + return false; + } + + var el = document.createElement('x'); + el.style.cssText = 'pointer-events:auto'; + return el.style.pointerEvents === 'auto'; + }(), + _detectDirection = function _detectDirection(el, options) { + var elCSS = css(el), + elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth), + child1 = getChild(el, 0, options), + child2 = getChild(el, 1, options), + firstChildCSS = child1 && css(child1), + secondChildCSS = child2 && css(child2), + firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width, + secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width; + + if (elCSS.display === 'flex') { + return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal'; + } + + if (elCSS.display === 'grid') { + return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal'; + } + + if (child1 && firstChildCSS["float"] && firstChildCSS["float"] !== 'none') { + var touchingSideChild2 = firstChildCSS["float"] === 'left' ? 'left' : 'right'; + return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal'; + } + + return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal'; + }, + _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) { + var dragElS1Opp = vertical ? dragRect.left : dragRect.top, + dragElS2Opp = vertical ? dragRect.right : dragRect.bottom, + dragElOppLength = vertical ? dragRect.width : dragRect.height, + targetS1Opp = vertical ? targetRect.left : targetRect.top, + targetS2Opp = vertical ? targetRect.right : targetRect.bottom, + targetOppLength = vertical ? targetRect.width : targetRect.height; + return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2; + }, + + /** + * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold. + * @param {Number} x X position + * @param {Number} y Y position + * @return {HTMLElement} Element of the first found nearest Sortable + */ + _detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) { + var ret; + sortables.some(function (sortable) { + if (lastChild(sortable)) return; + var rect = getRect(sortable), + threshold = sortable[expando].options.emptyInsertThreshold, + insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold, + insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold; + + if (threshold && insideHorizontally && insideVertically) { + return ret = sortable; + } + }); + return ret; + }, + _prepareGroup = function _prepareGroup(options) { + function toFn(value, pull) { + return function (to, from, dragEl, evt) { + var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name; + + if (value == null && (pull || sameGroup)) { + // Default pull value + // Default pull and put value if same group + return true; + } else if (value == null || value === false) { + return false; + } else if (pull && value === 'clone') { + return value; + } else if (typeof value === 'function') { + return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt); + } else { + var otherGroup = (pull ? to : from).options.group.name; + return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1; + } + }; + } + + var group = {}; + var originalGroup = options.group; + + if (!originalGroup || _typeof(originalGroup) != 'object') { + originalGroup = { + name: originalGroup + }; + } + + group.name = originalGroup.name; + group.checkPull = toFn(originalGroup.pull, true); + group.checkPut = toFn(originalGroup.put); + group.revertClone = originalGroup.revertClone; + options.group = group; + }, + _hideGhostForTarget = function _hideGhostForTarget() { + if (!supportCssPointerEvents && ghostEl) { + css(ghostEl, 'display', 'none'); + } + }, + _unhideGhostForTarget = function _unhideGhostForTarget() { + if (!supportCssPointerEvents && ghostEl) { + css(ghostEl, 'display', ''); + } + }; // #1184 fix - Prevent click event on fallback if dragged but item not changed position + + + if (documentExists) { + document.addEventListener('click', function (evt) { + if (ignoreNextClick) { + evt.preventDefault(); + evt.stopPropagation && evt.stopPropagation(); + evt.stopImmediatePropagation && evt.stopImmediatePropagation(); + ignoreNextClick = false; + return false; + } + }, true); + } + + var nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) { + if (dragEl) { + evt = evt.touches ? evt.touches[0] : evt; + + var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY); + + if (nearest) { + // Create imitation event + var event = {}; + + for (var i in evt) { + if (evt.hasOwnProperty(i)) { + event[i] = evt[i]; + } + } + + event.target = event.rootEl = nearest; + event.preventDefault = void 0; + event.stopPropagation = void 0; + + nearest[expando]._onDragOver(event); + } + } + }; + + var _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) { + if (dragEl) { + dragEl.parentNode[expando]._isOutsideThisEl(evt.target); + } + }; + /** + * @class Sortable + * @param {HTMLElement} el + * @param {Object} [options] + */ + + + function Sortable(el, options) { + if (!(el && el.nodeType && el.nodeType === 1)) { + throw "Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(el)); + } + + this.el = el; // root element + + this.options = options = _extends({}, options); // Export instance + + el[expando] = this; + var defaults = { + group: null, + sort: true, + disabled: false, + store: null, + handle: null, + draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*', + swapThreshold: 1, + // percentage; 0 <= x <= 1 + invertSwap: false, + // invert always + invertedSwapThreshold: null, + // will be set to same as swapThreshold if default + removeCloneOnHide: true, + direction: function direction() { + return _detectDirection(el, this.options); + }, + ghostClass: 'sortable-ghost', + chosenClass: 'sortable-chosen', + dragClass: 'sortable-drag', + ignore: 'a, img', + filter: null, + preventOnFilter: true, + animation: 0, + easing: null, + setData: function setData(dataTransfer, dragEl) { + dataTransfer.setData('Text', dragEl.textContent); + }, + dropBubble: false, + dragoverBubble: false, + dataIdAttr: 'data-id', + delay: 0, + delayOnTouchOnly: false, + touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1, + forceFallback: false, + fallbackClass: 'sortable-fallback', + fallbackOnBody: false, + fallbackTolerance: 0, + fallbackOffset: { + x: 0, + y: 0 + }, + supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window && !Safari, + emptyInsertThreshold: 5 + }; + PluginManager.initializePlugins(this, el, defaults); // Set default options + + for (var name in defaults) { + !(name in options) && (options[name] = defaults[name]); + } + + _prepareGroup(options); // Bind all private methods + + + for (var fn in this) { + if (fn.charAt(0) === '_' && typeof this[fn] === 'function') { + this[fn] = this[fn].bind(this); + } + } // Setup drag mode + + + this.nativeDraggable = options.forceFallback ? false : supportDraggable; + + if (this.nativeDraggable) { + // Touch start threshold cannot be greater than the native dragstart threshold + this.options.touchStartThreshold = 1; + } // Bind events + + + if (options.supportPointer) { + on(el, 'pointerdown', this._onTapStart); + } else { + on(el, 'mousedown', this._onTapStart); + on(el, 'touchstart', this._onTapStart); + } + + if (this.nativeDraggable) { + on(el, 'dragover', this); + on(el, 'dragenter', this); + } + + sortables.push(this.el); // Restore sorting + + options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager + + _extends(this, AnimationStateManager()); + } + + Sortable.prototype = + /** @lends Sortable.prototype */ + { + constructor: Sortable, + _isOutsideThisEl: function _isOutsideThisEl(target) { + if (!this.el.contains(target) && target !== this.el) { + lastTarget = null; + } + }, + _getDirection: function _getDirection(evt, target) { + return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction; + }, + _onTapStart: function _onTapStart( + /** Event|TouchEvent */ + evt) { + if (!evt.cancelable) return; + + var _this = this, + el = this.el, + options = this.options, + preventOnFilter = options.preventOnFilter, + type = evt.type, + touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt, + target = (touch || evt).target, + originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target, + filter = options.filter; + + _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group. + + + if (dragEl) { + return; + } + + if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) { + return; // only left button and enabled + } // cancel dnd if original target is content editable + + + if (originalTarget.isContentEditable) { + return; + } // Safari ignores further event handling after mousedown + + + if (!this.nativeDraggable && Safari && target && target.tagName.toUpperCase() === 'SELECT') { + return; + } + + target = closest(target, options.draggable, el, false); + + if (target && target.animated) { + return; + } + + if (lastDownEl === target) { + // Ignoring duplicate `down` + return; + } // Get the index of the dragged element within its parent + + + oldIndex = index(target); + oldDraggableIndex = index(target, options.draggable); // Check filter + + if (typeof filter === 'function') { + if (filter.call(this, evt, target, this)) { + _dispatchEvent({ + sortable: _this, + rootEl: originalTarget, + name: 'filter', + targetEl: target, + toEl: el, + fromEl: el + }); + + pluginEvent('filter', _this, { + evt: evt + }); + preventOnFilter && evt.cancelable && evt.preventDefault(); + return; // cancel dnd + } + } else if (filter) { + filter = filter.split(',').some(function (criteria) { + criteria = closest(originalTarget, criteria.trim(), el, false); + + if (criteria) { + _dispatchEvent({ + sortable: _this, + rootEl: criteria, + name: 'filter', + targetEl: target, + fromEl: el, + toEl: el + }); + + pluginEvent('filter', _this, { + evt: evt + }); + return true; + } + }); + + if (filter) { + preventOnFilter && evt.cancelable && evt.preventDefault(); + return; // cancel dnd + } + } + + if (options.handle && !closest(originalTarget, options.handle, el, false)) { + return; + } // Prepare `dragstart` + + + this._prepareDragStart(evt, touch, target); + }, + _prepareDragStart: function _prepareDragStart( + /** Event */ + evt, + /** Touch */ + touch, + /** HTMLElement */ + target) { + var _this = this, + el = _this.el, + options = _this.options, + ownerDocument = el.ownerDocument, + dragStartFn; + + if (target && !dragEl && target.parentNode === el) { + var dragRect = getRect(target); + rootEl = el; + dragEl = target; + parentEl = dragEl.parentNode; + nextEl = dragEl.nextSibling; + lastDownEl = target; + activeGroup = options.group; + Sortable.dragged = dragEl; + tapEvt = { + target: dragEl, + clientX: (touch || evt).clientX, + clientY: (touch || evt).clientY + }; + tapDistanceLeft = tapEvt.clientX - dragRect.left; + tapDistanceTop = tapEvt.clientY - dragRect.top; + this._lastX = (touch || evt).clientX; + this._lastY = (touch || evt).clientY; + dragEl.style['will-change'] = 'all'; + + dragStartFn = function dragStartFn() { + pluginEvent('delayEnded', _this, { + evt: evt + }); + + if (Sortable.eventCanceled) { + _this._onDrop(); + + return; + } // Delayed drag has been triggered + // we can re-enable the events: touchmove/mousemove + + + _this._disableDelayedDragEvents(); + + if (!FireFox && _this.nativeDraggable) { + dragEl.draggable = true; + } // Bind the events: dragstart/dragend + + + _this._triggerDragStart(evt, touch); // Drag start event + + + _dispatchEvent({ + sortable: _this, + name: 'choose', + originalEvent: evt + }); // Chosen item + + + toggleClass(dragEl, options.chosenClass, true); + }; // Disable "draggable" + + + options.ignore.split(',').forEach(function (criteria) { + find(dragEl, criteria.trim(), _disableDraggable); + }); + on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent); + on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent); + on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent); + on(ownerDocument, 'mouseup', _this._onDrop); + on(ownerDocument, 'touchend', _this._onDrop); + on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox) + + if (FireFox && this.nativeDraggable) { + this.options.touchStartThreshold = 4; + dragEl.draggable = true; + } + + pluginEvent('delayStart', this, { + evt: evt + }); // Delay is impossible for native DnD in Edge or IE + + if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) { + if (Sortable.eventCanceled) { + this._onDrop(); + + return; + } // If the user moves the pointer or let go the click or touch + // before the delay has been reached: + // disable the delayed drag + + + on(ownerDocument, 'mouseup', _this._disableDelayedDrag); + on(ownerDocument, 'touchend', _this._disableDelayedDrag); + on(ownerDocument, 'touchcancel', _this._disableDelayedDrag); + on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler); + on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler); + options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler); + _this._dragStartTimer = setTimeout(dragStartFn, options.delay); + } else { + dragStartFn(); + } + } + }, + _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler( + /** TouchEvent|PointerEvent **/ + e) { + var touch = e.touches ? e.touches[0] : e; + + if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) { + this._disableDelayedDrag(); + } + }, + _disableDelayedDrag: function _disableDelayedDrag() { + dragEl && _disableDraggable(dragEl); + clearTimeout(this._dragStartTimer); + + this._disableDelayedDragEvents(); + }, + _disableDelayedDragEvents: function _disableDelayedDragEvents() { + var ownerDocument = this.el.ownerDocument; + off(ownerDocument, 'mouseup', this._disableDelayedDrag); + off(ownerDocument, 'touchend', this._disableDelayedDrag); + off(ownerDocument, 'touchcancel', this._disableDelayedDrag); + off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler); + off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler); + off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler); + }, + _triggerDragStart: function _triggerDragStart( + /** Event */ + evt, + /** Touch */ + touch) { + touch = touch || evt.pointerType == 'touch' && evt; + + if (!this.nativeDraggable || touch) { + if (this.options.supportPointer) { + on(document, 'pointermove', this._onTouchMove); + } else if (touch) { + on(document, 'touchmove', this._onTouchMove); + } else { + on(document, 'mousemove', this._onTouchMove); + } + } else { + on(dragEl, 'dragend', this); + on(rootEl, 'dragstart', this._onDragStart); + } + + try { + if (document.selection) { + // Timeout neccessary for IE9 + _nextTick(function () { + document.selection.empty(); + }); + } else { + window.getSelection().removeAllRanges(); + } + } catch (err) {} + }, + _dragStarted: function _dragStarted(fallback, evt) { + + awaitingDragStarted = false; + + if (rootEl && dragEl) { + pluginEvent('dragStarted', this, { + evt: evt + }); + + if (this.nativeDraggable) { + on(document, 'dragover', _checkOutsideTargetEl); + } + + var options = this.options; // Apply effect + + !fallback && toggleClass(dragEl, options.dragClass, false); + toggleClass(dragEl, options.ghostClass, true); + Sortable.active = this; + fallback && this._appendGhost(); // Drag start event + + _dispatchEvent({ + sortable: this, + name: 'start', + originalEvent: evt + }); + } else { + this._nulling(); + } + }, + _emulateDragOver: function _emulateDragOver() { + if (touchEvt) { + this._lastX = touchEvt.clientX; + this._lastY = touchEvt.clientY; + + _hideGhostForTarget(); + + var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY); + var parent = target; + + while (target && target.shadowRoot) { + target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY); + if (target === parent) break; + parent = target; + } + + dragEl.parentNode[expando]._isOutsideThisEl(target); + + if (parent) { + do { + if (parent[expando]) { + var inserted = void 0; + inserted = parent[expando]._onDragOver({ + clientX: touchEvt.clientX, + clientY: touchEvt.clientY, + target: target, + rootEl: parent + }); + + if (inserted && !this.options.dragoverBubble) { + break; + } + } + + target = parent; // store last element + } + /* jshint boss:true */ + while (parent = parent.parentNode); + } + + _unhideGhostForTarget(); + } + }, + _onTouchMove: function _onTouchMove( + /**TouchEvent*/ + evt) { + if (tapEvt) { + var options = this.options, + fallbackTolerance = options.fallbackTolerance, + fallbackOffset = options.fallbackOffset, + touch = evt.touches ? evt.touches[0] : evt, + ghostMatrix = ghostEl && matrix(ghostEl, true), + scaleX = ghostEl && ghostMatrix && ghostMatrix.a, + scaleY = ghostEl && ghostMatrix && ghostMatrix.d, + relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent), + dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1), + dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging + + if (!Sortable.active && !awaitingDragStarted) { + if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) { + return; + } + + this._onDragStart(evt, true); + } + + if (ghostEl) { + if (ghostMatrix) { + ghostMatrix.e += dx - (lastDx || 0); + ghostMatrix.f += dy - (lastDy || 0); + } else { + ghostMatrix = { + a: 1, + b: 0, + c: 0, + d: 1, + e: dx, + f: dy + }; + } + + var cssMatrix = "matrix(".concat(ghostMatrix.a, ",").concat(ghostMatrix.b, ",").concat(ghostMatrix.c, ",").concat(ghostMatrix.d, ",").concat(ghostMatrix.e, ",").concat(ghostMatrix.f, ")"); + css(ghostEl, 'webkitTransform', cssMatrix); + css(ghostEl, 'mozTransform', cssMatrix); + css(ghostEl, 'msTransform', cssMatrix); + css(ghostEl, 'transform', cssMatrix); + lastDx = dx; + lastDy = dy; + touchEvt = touch; + } + + evt.cancelable && evt.preventDefault(); + } + }, + _appendGhost: function _appendGhost() { + // Bug if using scale(): https://stackoverflow.com/questions/2637058 + // Not being adjusted for + if (!ghostEl) { + var container = this.options.fallbackOnBody ? document.body : rootEl, + rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container), + options = this.options; // Position absolutely + + if (PositionGhostAbsolutely) { + // Get relatively positioned parent + ghostRelativeParent = container; + + while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) { + ghostRelativeParent = ghostRelativeParent.parentNode; + } + + if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) { + if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement(); + rect.top += ghostRelativeParent.scrollTop; + rect.left += ghostRelativeParent.scrollLeft; + } else { + ghostRelativeParent = getWindowScrollingElement(); + } + + ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent); + } + + ghostEl = dragEl.cloneNode(true); + toggleClass(ghostEl, options.ghostClass, false); + toggleClass(ghostEl, options.fallbackClass, true); + toggleClass(ghostEl, options.dragClass, true); + css(ghostEl, 'transition', ''); + css(ghostEl, 'transform', ''); + css(ghostEl, 'box-sizing', 'border-box'); + css(ghostEl, 'margin', 0); + css(ghostEl, 'top', rect.top); + css(ghostEl, 'left', rect.left); + css(ghostEl, 'width', rect.width); + css(ghostEl, 'height', rect.height); + css(ghostEl, 'opacity', '0.8'); + css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed'); + css(ghostEl, 'zIndex', '100000'); + css(ghostEl, 'pointerEvents', 'none'); + Sortable.ghost = ghostEl; + container.appendChild(ghostEl); // Set transform-origin + + css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%'); + } + }, + _onDragStart: function _onDragStart( + /**Event*/ + evt, + /**boolean*/ + fallback) { + var _this = this; + + var dataTransfer = evt.dataTransfer; + var options = _this.options; + pluginEvent('dragStart', this, { + evt: evt + }); + + if (Sortable.eventCanceled) { + this._onDrop(); + + return; + } + + pluginEvent('setupClone', this); + + if (!Sortable.eventCanceled) { + cloneEl = clone(dragEl); + cloneEl.draggable = false; + cloneEl.style['will-change'] = ''; + + this._hideClone(); + + toggleClass(cloneEl, this.options.chosenClass, false); + Sortable.clone = cloneEl; + } // #1143: IFrame support workaround + + + _this.cloneId = _nextTick(function () { + pluginEvent('clone', _this); + if (Sortable.eventCanceled) return; + + if (!_this.options.removeCloneOnHide) { + rootEl.insertBefore(cloneEl, dragEl); + } + + _this._hideClone(); + + _dispatchEvent({ + sortable: _this, + name: 'clone' + }); + }); + !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events + + if (fallback) { + ignoreNextClick = true; + _this._loopId = setInterval(_this._emulateDragOver, 50); + } else { + // Undo what was set in _prepareDragStart before drag started + off(document, 'mouseup', _this._onDrop); + off(document, 'touchend', _this._onDrop); + off(document, 'touchcancel', _this._onDrop); + + if (dataTransfer) { + dataTransfer.effectAllowed = 'move'; + options.setData && options.setData.call(_this, dataTransfer, dragEl); + } + + on(document, 'drop', _this); // #1276 fix: + + css(dragEl, 'transform', 'translateZ(0)'); + } + + awaitingDragStarted = true; + _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt)); + on(document, 'selectstart', _this); + moved = true; + + if (Safari) { + css(document.body, 'user-select', 'none'); + } + }, + // Returns true - if no further action is needed (either inserted or another condition) + _onDragOver: function _onDragOver( + /**Event*/ + evt) { + var el = this.el, + target = evt.target, + dragRect, + targetRect, + revert, + options = this.options, + group = options.group, + activeSortable = Sortable.active, + isOwner = activeGroup === group, + canSort = options.sort, + fromSortable = putSortable || activeSortable, + vertical, + _this = this, + completedFired = false; + + if (_silent) return; + + function dragOverEvent(name, extra) { + pluginEvent(name, _this, _objectSpread({ + evt: evt, + isOwner: isOwner, + axis: vertical ? 'vertical' : 'horizontal', + revert: revert, + dragRect: dragRect, + targetRect: targetRect, + canSort: canSort, + fromSortable: fromSortable, + target: target, + completed: completed, + onMove: function onMove(target, after) { + return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after); + }, + changed: changed + }, extra)); + } // Capture animation state + + + function capture() { + dragOverEvent('dragOverAnimationCapture'); + + _this.captureAnimationState(); + + if (_this !== fromSortable) { + fromSortable.captureAnimationState(); + } + } // Return invocation when dragEl is inserted (or completed) + + + function completed(insertion) { + dragOverEvent('dragOverCompleted', { + insertion: insertion + }); + + if (insertion) { + // Clones must be hidden before folding animation to capture dragRectAbsolute properly + if (isOwner) { + activeSortable._hideClone(); + } else { + activeSortable._showClone(_this); + } + + if (_this !== fromSortable) { + // Set ghost class to new sortable's ghost class + toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false); + toggleClass(dragEl, options.ghostClass, true); + } + + if (putSortable !== _this && _this !== Sortable.active) { + putSortable = _this; + } else if (_this === Sortable.active && putSortable) { + putSortable = null; + } // Animation + + + if (fromSortable === _this) { + _this._ignoreWhileAnimating = target; + } + + _this.animateAll(function () { + dragOverEvent('dragOverAnimationComplete'); + _this._ignoreWhileAnimating = null; + }); + + if (_this !== fromSortable) { + fromSortable.animateAll(); + fromSortable._ignoreWhileAnimating = null; + } + } // Null lastTarget if it is not inside a previously swapped element + + + if (target === dragEl && !dragEl.animated || target === el && !target.animated) { + lastTarget = null; + } // no bubbling and not fallback + + + if (!options.dragoverBubble && !evt.rootEl && target !== document) { + dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted + + + !insertion && nearestEmptyInsertDetectEvent(evt); + } + + !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation(); + return completedFired = true; + } // Call when dragEl has been inserted + + + function changed() { + newIndex = index(dragEl); + newDraggableIndex = index(dragEl, options.draggable); + + _dispatchEvent({ + sortable: _this, + name: 'change', + toEl: el, + newIndex: newIndex, + newDraggableIndex: newDraggableIndex, + originalEvent: evt + }); + } + + if (evt.preventDefault !== void 0) { + evt.cancelable && evt.preventDefault(); + } + + target = closest(target, options.draggable, el, true); + dragOverEvent('dragOver'); + if (Sortable.eventCanceled) return completedFired; + + if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) { + return completed(false); + } + + ignoreNextClick = false; + + if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = !rootEl.contains(dragEl)) // Reverting item into the original list + : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) { + vertical = this._getDirection(evt, target) === 'vertical'; + dragRect = getRect(dragEl); + dragOverEvent('dragOverValid'); + if (Sortable.eventCanceled) return completedFired; + + if (revert) { + parentEl = rootEl; // actualization + + capture(); + + this._hideClone(); + + dragOverEvent('revert'); + + if (!Sortable.eventCanceled) { + if (nextEl) { + rootEl.insertBefore(dragEl, nextEl); + } else { + rootEl.appendChild(dragEl); + } + } + + return completed(true); + } + + var elLastChild = lastChild(el, options.draggable); + + if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) { + // If already at end of list: Do not insert + if (elLastChild === dragEl) { + return completed(false); + } // assign target only if condition is true + + + if (elLastChild && el === evt.target) { + target = elLastChild; + } + + if (target) { + targetRect = getRect(target); + } + + if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) { + capture(); + el.appendChild(dragEl); + parentEl = el; // actualization + + changed(); + return completed(true); + } + } else if (target.parentNode === el) { + targetRect = getRect(target); + var direction = 0, + targetBeforeFirstSwap, + differentLevel = dragEl.parentNode !== el, + differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical), + side1 = vertical ? 'top' : 'left', + scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'), + scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0; + + if (lastTarget !== target) { + targetBeforeFirstSwap = targetRect[side1]; + pastFirstInvertThresh = false; + isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel; + } + + direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target); + var sibling; + + if (direction !== 0) { + // Check if target is beside dragEl in respective direction (ignoring hidden elements) + var dragIndex = index(dragEl); + + do { + dragIndex -= direction; + sibling = parentEl.children[dragIndex]; + } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl)); + } // If dragEl is already beside target: Do not insert + + + if (direction === 0 || sibling === target) { + return completed(false); + } + + lastTarget = target; + lastDirection = direction; + var nextSibling = target.nextElementSibling, + after = false; + after = direction === 1; + + var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after); + + if (moveVector !== false) { + if (moveVector === 1 || moveVector === -1) { + after = moveVector === 1; + } + + _silent = true; + setTimeout(_unsilent, 30); + capture(); + + if (after && !nextSibling) { + el.appendChild(dragEl); + } else { + target.parentNode.insertBefore(dragEl, after ? nextSibling : target); + } // Undo chrome's scroll adjustment (has no effect on other browsers) + + + if (scrolledPastTop) { + scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop); + } + + parentEl = dragEl.parentNode; // actualization + // must be done before animation + + if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) { + targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]); + } + + changed(); + return completed(true); + } + } + + if (el.contains(dragEl)) { + return completed(false); + } + } + + return false; + }, + _ignoreWhileAnimating: null, + _offMoveEvents: function _offMoveEvents() { + off(document, 'mousemove', this._onTouchMove); + off(document, 'touchmove', this._onTouchMove); + off(document, 'pointermove', this._onTouchMove); + off(document, 'dragover', nearestEmptyInsertDetectEvent); + off(document, 'mousemove', nearestEmptyInsertDetectEvent); + off(document, 'touchmove', nearestEmptyInsertDetectEvent); + }, + _offUpEvents: function _offUpEvents() { + var ownerDocument = this.el.ownerDocument; + off(ownerDocument, 'mouseup', this._onDrop); + off(ownerDocument, 'touchend', this._onDrop); + off(ownerDocument, 'pointerup', this._onDrop); + off(ownerDocument, 'touchcancel', this._onDrop); + off(document, 'selectstart', this); + }, + _onDrop: function _onDrop( + /**Event*/ + evt) { + var el = this.el, + options = this.options; // Get the index of the dragged element within its parent + + newIndex = index(dragEl); + newDraggableIndex = index(dragEl, options.draggable); + pluginEvent('drop', this, { + evt: evt + }); + parentEl = dragEl && dragEl.parentNode; // Get again after plugin event + + newIndex = index(dragEl); + newDraggableIndex = index(dragEl, options.draggable); + + if (Sortable.eventCanceled) { + this._nulling(); + + return; + } + + awaitingDragStarted = false; + isCircumstantialInvert = false; + pastFirstInvertThresh = false; + clearInterval(this._loopId); + clearTimeout(this._dragStartTimer); + + _cancelNextTick(this.cloneId); + + _cancelNextTick(this._dragStartId); // Unbind events + + + if (this.nativeDraggable) { + off(document, 'drop', this); + off(el, 'dragstart', this._onDragStart); + } + + this._offMoveEvents(); + + this._offUpEvents(); + + if (Safari) { + css(document.body, 'user-select', ''); + } + + css(dragEl, 'transform', ''); + + if (evt) { + if (moved) { + evt.cancelable && evt.preventDefault(); + !options.dropBubble && evt.stopPropagation(); + } + + ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl); + + if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') { + // Remove clone(s) + cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl); + } + + if (dragEl) { + if (this.nativeDraggable) { + off(dragEl, 'dragend', this); + } + + _disableDraggable(dragEl); + + dragEl.style['will-change'] = ''; // Remove classes + // ghostClass is added in dragStarted + + if (moved && !awaitingDragStarted) { + toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false); + } + + toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event + + _dispatchEvent({ + sortable: this, + name: 'unchoose', + toEl: parentEl, + newIndex: null, + newDraggableIndex: null, + originalEvent: evt + }); + + if (rootEl !== parentEl) { + if (newIndex >= 0) { + // Add event + _dispatchEvent({ + rootEl: parentEl, + name: 'add', + toEl: parentEl, + fromEl: rootEl, + originalEvent: evt + }); // Remove event + + + _dispatchEvent({ + sortable: this, + name: 'remove', + toEl: parentEl, + originalEvent: evt + }); // drag from one list and drop into another + + + _dispatchEvent({ + rootEl: parentEl, + name: 'sort', + toEl: parentEl, + fromEl: rootEl, + originalEvent: evt + }); + + _dispatchEvent({ + sortable: this, + name: 'sort', + toEl: parentEl, + originalEvent: evt + }); + } + + putSortable && putSortable.save(); + } else { + if (newIndex !== oldIndex) { + if (newIndex >= 0) { + // drag & drop within the same list + _dispatchEvent({ + sortable: this, + name: 'update', + toEl: parentEl, + originalEvent: evt + }); + + _dispatchEvent({ + sortable: this, + name: 'sort', + toEl: parentEl, + originalEvent: evt + }); + } + } + } + + if (Sortable.active) { + /* jshint eqnull:true */ + if (newIndex == null || newIndex === -1) { + newIndex = oldIndex; + newDraggableIndex = oldDraggableIndex; + } + + _dispatchEvent({ + sortable: this, + name: 'end', + toEl: parentEl, + originalEvent: evt + }); // Save sorting + + + this.save(); + } + } + } + + this._nulling(); + }, + _nulling: function _nulling() { + pluginEvent('nulling', this); + rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null; + savedInputChecked.forEach(function (el) { + el.checked = true; + }); + savedInputChecked.length = lastDx = lastDy = 0; + }, + handleEvent: function handleEvent( + /**Event*/ + evt) { + switch (evt.type) { + case 'drop': + case 'dragend': + this._onDrop(evt); + + break; + + case 'dragenter': + case 'dragover': + if (dragEl) { + this._onDragOver(evt); + + _globalDragOver(evt); + } + + break; + + case 'selectstart': + evt.preventDefault(); + break; + } + }, + + /** + * Serializes the item into an array of string. + * @returns {String[]} + */ + toArray: function toArray() { + var order = [], + el, + children = this.el.children, + i = 0, + n = children.length, + options = this.options; + + for (; i < n; i++) { + el = children[i]; + + if (closest(el, options.draggable, this.el, false)) { + order.push(el.getAttribute(options.dataIdAttr) || _generateId(el)); + } + } + + return order; + }, + + /** + * Sorts the elements according to the array. + * @param {String[]} order order of the items + */ + sort: function sort(order, useAnimation) { + var items = {}, + rootEl = this.el; + this.toArray().forEach(function (id, i) { + var el = rootEl.children[i]; + + if (closest(el, this.options.draggable, rootEl, false)) { + items[id] = el; + } + }, this); + useAnimation && this.captureAnimationState(); + order.forEach(function (id) { + if (items[id]) { + rootEl.removeChild(items[id]); + rootEl.appendChild(items[id]); + } + }); + useAnimation && this.animateAll(); + }, + + /** + * Save the current sorting + */ + save: function save() { + var store = this.options.store; + store && store.set && store.set(this); + }, + + /** + * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree. + * @param {HTMLElement} el + * @param {String} [selector] default: `options.draggable` + * @returns {HTMLElement|null} + */ + closest: function closest$1(el, selector) { + return closest(el, selector || this.options.draggable, this.el, false); + }, + + /** + * Set/get option + * @param {string} name + * @param {*} [value] + * @returns {*} + */ + option: function option(name, value) { + var options = this.options; + + if (value === void 0) { + return options[name]; + } else { + var modifiedValue = PluginManager.modifyOption(this, name, value); + + if (typeof modifiedValue !== 'undefined') { + options[name] = modifiedValue; + } else { + options[name] = value; + } + + if (name === 'group') { + _prepareGroup(options); + } + } + }, + + /** + * Destroy + */ + destroy: function destroy() { + pluginEvent('destroy', this); + var el = this.el; + el[expando] = null; + off(el, 'mousedown', this._onTapStart); + off(el, 'touchstart', this._onTapStart); + off(el, 'pointerdown', this._onTapStart); + + if (this.nativeDraggable) { + off(el, 'dragover', this); + off(el, 'dragenter', this); + } // Remove draggable attributes + + + Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) { + el.removeAttribute('draggable'); + }); + + this._onDrop(); + + this._disableDelayedDragEvents(); + + sortables.splice(sortables.indexOf(this.el), 1); + this.el = el = null; + }, + _hideClone: function _hideClone() { + if (!cloneHidden) { + pluginEvent('hideClone', this); + if (Sortable.eventCanceled) return; + css(cloneEl, 'display', 'none'); + + if (this.options.removeCloneOnHide && cloneEl.parentNode) { + cloneEl.parentNode.removeChild(cloneEl); + } + + cloneHidden = true; + } + }, + _showClone: function _showClone(putSortable) { + if (putSortable.lastPutMode !== 'clone') { + this._hideClone(); + + return; + } + + if (cloneHidden) { + pluginEvent('showClone', this); + if (Sortable.eventCanceled) return; // show clone at dragEl or original position + + if (dragEl.parentNode == rootEl && !this.options.group.revertClone) { + rootEl.insertBefore(cloneEl, dragEl); + } else if (nextEl) { + rootEl.insertBefore(cloneEl, nextEl); + } else { + rootEl.appendChild(cloneEl); + } + + if (this.options.group.revertClone) { + this.animate(dragEl, cloneEl); + } + + css(cloneEl, 'display', ''); + cloneHidden = false; + } + } + }; + + function _globalDragOver( + /**Event*/ + evt) { + if (evt.dataTransfer) { + evt.dataTransfer.dropEffect = 'move'; + } + + evt.cancelable && evt.preventDefault(); + } + + function _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) { + var evt, + sortable = fromEl[expando], + onMoveFn = sortable.options.onMove, + retVal; // Support for new CustomEvent feature + + if (window.CustomEvent && !IE11OrLess && !Edge) { + evt = new CustomEvent('move', { + bubbles: true, + cancelable: true + }); + } else { + evt = document.createEvent('Event'); + evt.initEvent('move', true, true); + } + + evt.to = toEl; + evt.from = fromEl; + evt.dragged = dragEl; + evt.draggedRect = dragRect; + evt.related = targetEl || toEl; + evt.relatedRect = targetRect || getRect(toEl); + evt.willInsertAfter = willInsertAfter; + evt.originalEvent = originalEvent; + fromEl.dispatchEvent(evt); + + if (onMoveFn) { + retVal = onMoveFn.call(sortable, evt, originalEvent); + } + + return retVal; + } + + function _disableDraggable(el) { + el.draggable = false; + } + + function _unsilent() { + _silent = false; + } + + function _ghostIsLast(evt, vertical, sortable) { + var rect = getRect(lastChild(sortable.el, sortable.options.draggable)); + var spacer = 10; + return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer; + } + + function _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) { + var mouseOnAxis = vertical ? evt.clientY : evt.clientX, + targetLength = vertical ? targetRect.height : targetRect.width, + targetS1 = vertical ? targetRect.top : targetRect.left, + targetS2 = vertical ? targetRect.bottom : targetRect.right, + invert = false; + + if (!invertSwap) { + // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold + if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) { + // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2 + // check if past first invert threshold on side opposite of lastDirection + if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) { + // past first invert threshold, do not restrict inverted threshold to dragEl shadow + pastFirstInvertThresh = true; + } + + if (!pastFirstInvertThresh) { + // dragEl shadow (target move distance shadow) + if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow + : mouseOnAxis > targetS2 - targetMoveDistance) { + return -lastDirection; + } + } else { + invert = true; + } + } else { + // Regular + if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) { + return _getInsertDirection(target); + } + } + } + + invert = invert || invertSwap; + + if (invert) { + // Invert of regular + if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) { + return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1; + } + } + + return 0; + } + /** + * Gets the direction dragEl must be swapped relative to target in order to make it + * seem that dragEl has been "inserted" into that element's position + * @param {HTMLElement} target The target whose position dragEl is being inserted at + * @return {Number} Direction dragEl must be swapped + */ + + + function _getInsertDirection(target) { + if (index(dragEl) < index(target)) { + return 1; + } else { + return -1; + } + } + /** + * Generate id + * @param {HTMLElement} el + * @returns {String} + * @private + */ + + + function _generateId(el) { + var str = el.tagName + el.className + el.src + el.href + el.textContent, + i = str.length, + sum = 0; + + while (i--) { + sum += str.charCodeAt(i); + } + + return sum.toString(36); + } + + function _saveInputCheckedState(root) { + savedInputChecked.length = 0; + var inputs = root.getElementsByTagName('input'); + var idx = inputs.length; + + while (idx--) { + var el = inputs[idx]; + el.checked && savedInputChecked.push(el); + } + } + + function _nextTick(fn) { + return setTimeout(fn, 0); + } + + function _cancelNextTick(id) { + return clearTimeout(id); + } // Fixed #973: + + + if (documentExists) { + on(document, 'touchmove', function (evt) { + if ((Sortable.active || awaitingDragStarted) && evt.cancelable) { + evt.preventDefault(); + } + }); + } // Export utils + + + Sortable.utils = { + on: on, + off: off, + css: css, + find: find, + is: function is(el, selector) { + return !!closest(el, selector, el, false); + }, + extend: extend, + throttle: throttle, + closest: closest, + toggleClass: toggleClass, + clone: clone, + index: index, + nextTick: _nextTick, + cancelNextTick: _cancelNextTick, + detectDirection: _detectDirection, + getChild: getChild + }; + /** + * Get the Sortable instance of an element + * @param {HTMLElement} element The element + * @return {Sortable|undefined} The instance of Sortable + */ + + Sortable.get = function (element) { + return element[expando]; + }; + /** + * Mount a plugin to Sortable + * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted + */ + + + Sortable.mount = function () { + for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) { + plugins[_key] = arguments[_key]; + } + + if (plugins[0].constructor === Array) plugins = plugins[0]; + plugins.forEach(function (plugin) { + if (!plugin.prototype || !plugin.prototype.constructor) { + throw "Sortable: Mounted plugin must be a constructor function, not ".concat({}.toString.call(plugin)); + } + + if (plugin.utils) Sortable.utils = _objectSpread({}, Sortable.utils, plugin.utils); + PluginManager.mount(plugin); + }); + }; + /** + * Create sortable instance + * @param {HTMLElement} el + * @param {Object} [options] + */ + + + Sortable.create = function (el, options) { + return new Sortable(el, options); + }; // Export + + + Sortable.version = version; + + var autoScrolls = [], + scrollEl, + scrollRootEl, + scrolling = false, + lastAutoScrollX, + lastAutoScrollY, + touchEvt$1, + pointerElemChangedInterval; + + function AutoScrollPlugin() { + function AutoScroll() { + this.defaults = { + scroll: true, + scrollSensitivity: 30, + scrollSpeed: 10, + bubbleScroll: true + }; // Bind all private methods + + for (var fn in this) { + if (fn.charAt(0) === '_' && typeof this[fn] === 'function') { + this[fn] = this[fn].bind(this); + } + } + } + + AutoScroll.prototype = { + dragStarted: function dragStarted(_ref) { + var originalEvent = _ref.originalEvent; + + if (this.sortable.nativeDraggable) { + on(document, 'dragover', this._handleAutoScroll); + } else { + if (this.options.supportPointer) { + on(document, 'pointermove', this._handleFallbackAutoScroll); + } else if (originalEvent.touches) { + on(document, 'touchmove', this._handleFallbackAutoScroll); + } else { + on(document, 'mousemove', this._handleFallbackAutoScroll); + } + } + }, + dragOverCompleted: function dragOverCompleted(_ref2) { + var originalEvent = _ref2.originalEvent; + + // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached) + if (!this.options.dragOverBubble && !originalEvent.rootEl) { + this._handleAutoScroll(originalEvent); + } + }, + drop: function drop() { + if (this.sortable.nativeDraggable) { + off(document, 'dragover', this._handleAutoScroll); + } else { + off(document, 'pointermove', this._handleFallbackAutoScroll); + off(document, 'touchmove', this._handleFallbackAutoScroll); + off(document, 'mousemove', this._handleFallbackAutoScroll); + } + + clearPointerElemChangedInterval(); + clearAutoScrolls(); + cancelThrottle(); + }, + nulling: function nulling() { + touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null; + autoScrolls.length = 0; + }, + _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) { + this._handleAutoScroll(evt, true); + }, + _handleAutoScroll: function _handleAutoScroll(evt, fallback) { + var _this = this; + + var x = (evt.touches ? evt.touches[0] : evt).clientX, + y = (evt.touches ? evt.touches[0] : evt).clientY, + elem = document.elementFromPoint(x, y); + touchEvt$1 = evt; // IE does not seem to have native autoscroll, + // Edge's autoscroll seems too conditional, + // MACOS Safari does not have autoscroll, + // Firefox and Chrome are good + + if (fallback || Edge || IE11OrLess || Safari) { + autoScroll(evt, this.options, elem, fallback); // Listener for pointer element change + + var ogElemScroller = getParentAutoScrollElement(elem, true); + + if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) { + pointerElemChangedInterval && clearPointerElemChangedInterval(); // Detect for pointer elem change, emulating native DnD behaviour + + pointerElemChangedInterval = setInterval(function () { + var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true); + + if (newElem !== ogElemScroller) { + ogElemScroller = newElem; + clearAutoScrolls(); + } + + autoScroll(evt, _this.options, newElem, fallback); + }, 10); + lastAutoScrollX = x; + lastAutoScrollY = y; + } + } else { + // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll + if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) { + clearAutoScrolls(); + return; + } + + autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false); + } + } + }; + return _extends(AutoScroll, { + pluginName: 'scroll', + initializeByDefault: true + }); + } + + function clearAutoScrolls() { + autoScrolls.forEach(function (autoScroll) { + clearInterval(autoScroll.pid); + }); + autoScrolls = []; + } + + function clearPointerElemChangedInterval() { + clearInterval(pointerElemChangedInterval); + } + + var autoScroll = throttle(function (evt, options, rootEl, isFallback) { + // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521 + if (!options.scroll) return; + var x = (evt.touches ? evt.touches[0] : evt).clientX, + y = (evt.touches ? evt.touches[0] : evt).clientY, + sens = options.scrollSensitivity, + speed = options.scrollSpeed, + winScroller = getWindowScrollingElement(); + var scrollThisInstance = false, + scrollCustomFn; // New scroll root, set scrollEl + + if (scrollRootEl !== rootEl) { + scrollRootEl = rootEl; + clearAutoScrolls(); + scrollEl = options.scroll; + scrollCustomFn = options.scrollFn; + + if (scrollEl === true) { + scrollEl = getParentAutoScrollElement(rootEl, true); + } + } + + var layersOut = 0; + var currentParent = scrollEl; + + do { + var el = currentParent, + rect = getRect(el), + top = rect.top, + bottom = rect.bottom, + left = rect.left, + right = rect.right, + width = rect.width, + height = rect.height, + canScrollX = void 0, + canScrollY = void 0, + scrollWidth = el.scrollWidth, + scrollHeight = el.scrollHeight, + elCSS = css(el), + scrollPosX = el.scrollLeft, + scrollPosY = el.scrollTop; + + if (el === winScroller) { + canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible'); + canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible'); + } else { + canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll'); + canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll'); + } + + var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX); + var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY); + + if (!autoScrolls[layersOut]) { + for (var i = 0; i <= layersOut; i++) { + if (!autoScrolls[i]) { + autoScrolls[i] = {}; + } + } + } + + if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) { + autoScrolls[layersOut].el = el; + autoScrolls[layersOut].vx = vx; + autoScrolls[layersOut].vy = vy; + clearInterval(autoScrolls[layersOut].pid); + + if (vx != 0 || vy != 0) { + scrollThisInstance = true; + /* jshint loopfunc:true */ + + autoScrolls[layersOut].pid = setInterval(function () { + // emulate drag over during autoscroll (fallback), emulating native DnD behaviour + if (isFallback && this.layer === 0) { + Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely + + } + + var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0; + var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0; + + if (typeof scrollCustomFn === 'function') { + if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') { + return; + } + } + + scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY); + }.bind({ + layer: layersOut + }), 24); + } + } + + layersOut++; + } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false))); + + scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not + }, 30); + + var drop = function drop(_ref) { + var originalEvent = _ref.originalEvent, + putSortable = _ref.putSortable, + dragEl = _ref.dragEl, + activeSortable = _ref.activeSortable, + dispatchSortableEvent = _ref.dispatchSortableEvent, + hideGhostForTarget = _ref.hideGhostForTarget, + unhideGhostForTarget = _ref.unhideGhostForTarget; + if (!originalEvent) return; + var toSortable = putSortable || activeSortable; + hideGhostForTarget(); + var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent; + var target = document.elementFromPoint(touch.clientX, touch.clientY); + unhideGhostForTarget(); + + if (toSortable && !toSortable.el.contains(target)) { + dispatchSortableEvent('spill'); + this.onSpill({ + dragEl: dragEl, + putSortable: putSortable + }); + } + }; + + function Revert() {} + + Revert.prototype = { + startIndex: null, + dragStart: function dragStart(_ref2) { + var oldDraggableIndex = _ref2.oldDraggableIndex; + this.startIndex = oldDraggableIndex; + }, + onSpill: function onSpill(_ref3) { + var dragEl = _ref3.dragEl, + putSortable = _ref3.putSortable; + this.sortable.captureAnimationState(); + + if (putSortable) { + putSortable.captureAnimationState(); + } + + var nextSibling = getChild(this.sortable.el, this.startIndex, this.options); + + if (nextSibling) { + this.sortable.el.insertBefore(dragEl, nextSibling); + } else { + this.sortable.el.appendChild(dragEl); + } + + this.sortable.animateAll(); + + if (putSortable) { + putSortable.animateAll(); + } + }, + drop: drop + }; + + _extends(Revert, { + pluginName: 'revertOnSpill' + }); + + function Remove() {} + + Remove.prototype = { + onSpill: function onSpill(_ref4) { + var dragEl = _ref4.dragEl, + putSortable = _ref4.putSortable; + var parentSortable = putSortable || this.sortable; + parentSortable.captureAnimationState(); + dragEl.parentNode && dragEl.parentNode.removeChild(dragEl); + parentSortable.animateAll(); + }, + drop: drop + }; + + _extends(Remove, { + pluginName: 'removeOnSpill' + }); + + var lastSwapEl; + + function SwapPlugin() { + function Swap() { + this.defaults = { + swapClass: 'sortable-swap-highlight' + }; + } + + Swap.prototype = { + dragStart: function dragStart(_ref) { + var dragEl = _ref.dragEl; + lastSwapEl = dragEl; + }, + dragOverValid: function dragOverValid(_ref2) { + var completed = _ref2.completed, + target = _ref2.target, + onMove = _ref2.onMove, + activeSortable = _ref2.activeSortable, + changed = _ref2.changed, + cancel = _ref2.cancel; + if (!activeSortable.options.swap) return; + var el = this.sortable.el, + options = this.options; + + if (target && target !== el) { + var prevSwapEl = lastSwapEl; + + if (onMove(target) !== false) { + toggleClass(target, options.swapClass, true); + lastSwapEl = target; + } else { + lastSwapEl = null; + } + + if (prevSwapEl && prevSwapEl !== lastSwapEl) { + toggleClass(prevSwapEl, options.swapClass, false); + } + } + + changed(); + completed(true); + cancel(); + }, + drop: function drop(_ref3) { + var activeSortable = _ref3.activeSortable, + putSortable = _ref3.putSortable, + dragEl = _ref3.dragEl; + var toSortable = putSortable || this.sortable; + var options = this.options; + lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false); + + if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) { + if (dragEl !== lastSwapEl) { + toSortable.captureAnimationState(); + if (toSortable !== activeSortable) activeSortable.captureAnimationState(); + swapNodes(dragEl, lastSwapEl); + toSortable.animateAll(); + if (toSortable !== activeSortable) activeSortable.animateAll(); + } + } + }, + nulling: function nulling() { + lastSwapEl = null; + } + }; + return _extends(Swap, { + pluginName: 'swap', + eventProperties: function eventProperties() { + return { + swapItem: lastSwapEl + }; + } + }); + } + + function swapNodes(n1, n2) { + var p1 = n1.parentNode, + p2 = n2.parentNode, + i1, + i2; + if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return; + i1 = index(n1); + i2 = index(n2); + + if (p1.isEqualNode(p2) && i1 < i2) { + i2++; + } + + p1.insertBefore(n2, p1.children[i1]); + p2.insertBefore(n1, p2.children[i2]); + } + + var multiDragElements = [], + multiDragClones = [], + lastMultiDragSelect, + // for selection with modifier key down (SHIFT) + multiDragSortable, + initialFolding = false, + // Initial multi-drag fold when drag started + folding = false, + // Folding any other time + dragStarted = false, + dragEl$1, + clonesFromRect, + clonesHidden; + + function MultiDragPlugin() { + function MultiDrag(sortable) { + // Bind all private methods + for (var fn in this) { + if (fn.charAt(0) === '_' && typeof this[fn] === 'function') { + this[fn] = this[fn].bind(this); + } + } + + if (sortable.options.supportPointer) { + on(document, 'pointerup', this._deselectMultiDrag); + } else { + on(document, 'mouseup', this._deselectMultiDrag); + on(document, 'touchend', this._deselectMultiDrag); + } + + on(document, 'keydown', this._checkKeyDown); + on(document, 'keyup', this._checkKeyUp); + this.defaults = { + selectedClass: 'sortable-selected', + multiDragKey: null, + setData: function setData(dataTransfer, dragEl) { + var data = ''; + + if (multiDragElements.length && multiDragSortable === sortable) { + multiDragElements.forEach(function (multiDragElement, i) { + data += (!i ? '' : ', ') + multiDragElement.textContent; + }); + } else { + data = dragEl.textContent; + } + + dataTransfer.setData('Text', data); + } + }; + } + + MultiDrag.prototype = { + multiDragKeyDown: false, + isMultiDrag: false, + delayStartGlobal: function delayStartGlobal(_ref) { + var dragged = _ref.dragEl; + dragEl$1 = dragged; + }, + delayEnded: function delayEnded() { + this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1); + }, + setupClone: function setupClone(_ref2) { + var sortable = _ref2.sortable, + cancel = _ref2.cancel; + if (!this.isMultiDrag) return; + + for (var i = 0; i < multiDragElements.length; i++) { + multiDragClones.push(clone(multiDragElements[i])); + multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex; + multiDragClones[i].draggable = false; + multiDragClones[i].style['will-change'] = ''; + toggleClass(multiDragClones[i], this.options.selectedClass, false); + multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false); + } + + sortable._hideClone(); + + cancel(); + }, + clone: function clone(_ref3) { + var sortable = _ref3.sortable, + rootEl = _ref3.rootEl, + dispatchSortableEvent = _ref3.dispatchSortableEvent, + cancel = _ref3.cancel; + if (!this.isMultiDrag) return; + + if (!this.options.removeCloneOnHide) { + if (multiDragElements.length && multiDragSortable === sortable) { + insertMultiDragClones(true, rootEl); + dispatchSortableEvent('clone'); + cancel(); + } + } + }, + showClone: function showClone(_ref4) { + var cloneNowShown = _ref4.cloneNowShown, + rootEl = _ref4.rootEl, + cancel = _ref4.cancel; + if (!this.isMultiDrag) return; + insertMultiDragClones(false, rootEl); + multiDragClones.forEach(function (clone) { + css(clone, 'display', ''); + }); + cloneNowShown(); + clonesHidden = false; + cancel(); + }, + hideClone: function hideClone(_ref5) { + var _this = this; + + var sortable = _ref5.sortable, + cloneNowHidden = _ref5.cloneNowHidden, + cancel = _ref5.cancel; + if (!this.isMultiDrag) return; + multiDragClones.forEach(function (clone) { + css(clone, 'display', 'none'); + + if (_this.options.removeCloneOnHide && clone.parentNode) { + clone.parentNode.removeChild(clone); + } + }); + cloneNowHidden(); + clonesHidden = true; + cancel(); + }, + dragStartGlobal: function dragStartGlobal(_ref6) { + var sortable = _ref6.sortable; + + if (!this.isMultiDrag && multiDragSortable) { + multiDragSortable.multiDrag._deselectMultiDrag(); + } + + multiDragElements.forEach(function (multiDragElement) { + multiDragElement.sortableIndex = index(multiDragElement); + }); // Sort multi-drag elements + + multiDragElements = multiDragElements.sort(function (a, b) { + return a.sortableIndex - b.sortableIndex; + }); + dragStarted = true; + }, + dragStarted: function dragStarted(_ref7) { + var _this2 = this; + + var sortable = _ref7.sortable; + if (!this.isMultiDrag) return; + + if (this.options.sort) { + // Capture rects, + // hide multi drag elements (by positioning them absolute), + // set multi drag elements rects to dragRect, + // show multi drag elements, + // animate to rects, + // unset rects & remove from DOM + sortable.captureAnimationState(); + + if (this.options.animation) { + multiDragElements.forEach(function (multiDragElement) { + if (multiDragElement === dragEl$1) return; + css(multiDragElement, 'position', 'absolute'); + }); + var dragRect = getRect(dragEl$1, false, true, true); + multiDragElements.forEach(function (multiDragElement) { + if (multiDragElement === dragEl$1) return; + setRect(multiDragElement, dragRect); + }); + folding = true; + initialFolding = true; + } + } + + sortable.animateAll(function () { + folding = false; + initialFolding = false; + + if (_this2.options.animation) { + multiDragElements.forEach(function (multiDragElement) { + unsetRect(multiDragElement); + }); + } // Remove all auxiliary multidrag items from el, if sorting enabled + + + if (_this2.options.sort) { + removeMultiDragElements(); + } + }); + }, + dragOver: function dragOver(_ref8) { + var target = _ref8.target, + completed = _ref8.completed, + cancel = _ref8.cancel; + + if (folding && ~multiDragElements.indexOf(target)) { + completed(false); + cancel(); + } + }, + revert: function revert(_ref9) { + var fromSortable = _ref9.fromSortable, + rootEl = _ref9.rootEl, + sortable = _ref9.sortable, + dragRect = _ref9.dragRect; + + if (multiDragElements.length > 1) { + // Setup unfold animation + multiDragElements.forEach(function (multiDragElement) { + sortable.addAnimationState({ + target: multiDragElement, + rect: folding ? getRect(multiDragElement) : dragRect + }); + unsetRect(multiDragElement); + multiDragElement.fromRect = dragRect; + fromSortable.removeAnimationState(multiDragElement); + }); + folding = false; + insertMultiDragElements(!this.options.removeCloneOnHide, rootEl); + } + }, + dragOverCompleted: function dragOverCompleted(_ref10) { + var sortable = _ref10.sortable, + isOwner = _ref10.isOwner, + insertion = _ref10.insertion, + activeSortable = _ref10.activeSortable, + parentEl = _ref10.parentEl, + putSortable = _ref10.putSortable; + var options = this.options; + + if (insertion) { + // Clones must be hidden before folding animation to capture dragRectAbsolute properly + if (isOwner) { + activeSortable._hideClone(); + } + + initialFolding = false; // If leaving sort:false root, or already folding - Fold to new location + + if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) { + // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible + var dragRectAbsolute = getRect(dragEl$1, false, true, true); + multiDragElements.forEach(function (multiDragElement) { + if (multiDragElement === dragEl$1) return; + setRect(multiDragElement, dragRectAbsolute); // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted + // while folding, and so that we can capture them again because old sortable will no longer be fromSortable + + parentEl.appendChild(multiDragElement); + }); + folding = true; + } // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out + + + if (!isOwner) { + // Only remove if not folding (folding will remove them anyways) + if (!folding) { + removeMultiDragElements(); + } + + if (multiDragElements.length > 1) { + var clonesHiddenBefore = clonesHidden; + + activeSortable._showClone(sortable); // Unfold animation for clones if showing from hidden + + + if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) { + multiDragClones.forEach(function (clone) { + activeSortable.addAnimationState({ + target: clone, + rect: clonesFromRect + }); + clone.fromRect = clonesFromRect; + clone.thisAnimationDuration = null; + }); + } + } else { + activeSortable._showClone(sortable); + } + } + } + }, + dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) { + var dragRect = _ref11.dragRect, + isOwner = _ref11.isOwner, + activeSortable = _ref11.activeSortable; + multiDragElements.forEach(function (multiDragElement) { + multiDragElement.thisAnimationDuration = null; + }); + + if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) { + clonesFromRect = _extends({}, dragRect); + var dragMatrix = matrix(dragEl$1, true); + clonesFromRect.top -= dragMatrix.f; + clonesFromRect.left -= dragMatrix.e; + } + }, + dragOverAnimationComplete: function dragOverAnimationComplete() { + if (folding) { + folding = false; + removeMultiDragElements(); + } + }, + drop: function drop(_ref12) { + var evt = _ref12.originalEvent, + rootEl = _ref12.rootEl, + parentEl = _ref12.parentEl, + sortable = _ref12.sortable, + dispatchSortableEvent = _ref12.dispatchSortableEvent, + oldIndex = _ref12.oldIndex, + putSortable = _ref12.putSortable; + var toSortable = putSortable || this.sortable; + if (!evt) return; + var options = this.options, + children = parentEl.children; // Multi-drag selection + + if (!dragStarted) { + if (options.multiDragKey && !this.multiDragKeyDown) { + this._deselectMultiDrag(); + } + + toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1)); + + if (!~multiDragElements.indexOf(dragEl$1)) { + multiDragElements.push(dragEl$1); + dispatchEvent({ + sortable: sortable, + rootEl: rootEl, + name: 'select', + targetEl: dragEl$1, + originalEvt: evt + }); // Modifier activated, select from last to dragEl + + if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) { + var lastIndex = index(lastMultiDragSelect), + currentIndex = index(dragEl$1); + + if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) { + // Must include lastMultiDragSelect (select it), in case modified selection from no selection + // (but previous selection existed) + var n, i; + + if (currentIndex > lastIndex) { + i = lastIndex; + n = currentIndex; + } else { + i = currentIndex; + n = lastIndex + 1; + } + + for (; i < n; i++) { + if (~multiDragElements.indexOf(children[i])) continue; + toggleClass(children[i], options.selectedClass, true); + multiDragElements.push(children[i]); + dispatchEvent({ + sortable: sortable, + rootEl: rootEl, + name: 'select', + targetEl: children[i], + originalEvt: evt + }); + } + } + } else { + lastMultiDragSelect = dragEl$1; + } + + multiDragSortable = toSortable; + } else { + multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1); + lastMultiDragSelect = null; + dispatchEvent({ + sortable: sortable, + rootEl: rootEl, + name: 'deselect', + targetEl: dragEl$1, + originalEvt: evt + }); + } + } // Multi-drag drop + + + if (dragStarted && this.isMultiDrag) { + // Do not "unfold" after around dragEl if reverted + if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) { + var dragRect = getRect(dragEl$1), + multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')'); + if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null; + toSortable.captureAnimationState(); + + if (!initialFolding) { + if (options.animation) { + dragEl$1.fromRect = dragRect; + multiDragElements.forEach(function (multiDragElement) { + multiDragElement.thisAnimationDuration = null; + + if (multiDragElement !== dragEl$1) { + var rect = folding ? getRect(multiDragElement) : dragRect; + multiDragElement.fromRect = rect; // Prepare unfold animation + + toSortable.addAnimationState({ + target: multiDragElement, + rect: rect + }); + } + }); + } // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert + // properly they must all be removed + + + removeMultiDragElements(); + multiDragElements.forEach(function (multiDragElement) { + if (children[multiDragIndex]) { + parentEl.insertBefore(multiDragElement, children[multiDragIndex]); + } else { + parentEl.appendChild(multiDragElement); + } + + multiDragIndex++; + }); // If initial folding is done, the elements may have changed position because they are now + // unfolding around dragEl, even though dragEl may not have his index changed, so update event + // must be fired here as Sortable will not. + + if (oldIndex === index(dragEl$1)) { + var update = false; + multiDragElements.forEach(function (multiDragElement) { + if (multiDragElement.sortableIndex !== index(multiDragElement)) { + update = true; + return; + } + }); + + if (update) { + dispatchSortableEvent('update'); + } + } + } // Must be done after capturing individual rects (scroll bar) + + + multiDragElements.forEach(function (multiDragElement) { + unsetRect(multiDragElement); + }); + toSortable.animateAll(); + } + + multiDragSortable = toSortable; + } // Remove clones if necessary + + + if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') { + multiDragClones.forEach(function (clone) { + clone.parentNode && clone.parentNode.removeChild(clone); + }); + } + }, + nullingGlobal: function nullingGlobal() { + this.isMultiDrag = dragStarted = false; + multiDragClones.length = 0; + }, + destroyGlobal: function destroyGlobal() { + this._deselectMultiDrag(); + + off(document, 'pointerup', this._deselectMultiDrag); + off(document, 'mouseup', this._deselectMultiDrag); + off(document, 'touchend', this._deselectMultiDrag); + off(document, 'keydown', this._checkKeyDown); + off(document, 'keyup', this._checkKeyUp); + }, + _deselectMultiDrag: function _deselectMultiDrag(evt) { + if (typeof dragStarted !== "undefined" && dragStarted) return; // Only deselect if selection is in this sortable + + if (multiDragSortable !== this.sortable) return; // Only deselect if target is not item in this sortable + + if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return; // Only deselect if left click + + if (evt && evt.button !== 0) return; + + while (multiDragElements.length) { + var el = multiDragElements[0]; + toggleClass(el, this.options.selectedClass, false); + multiDragElements.shift(); + dispatchEvent({ + sortable: this.sortable, + rootEl: this.sortable.el, + name: 'deselect', + targetEl: el, + originalEvt: evt + }); + } + }, + _checkKeyDown: function _checkKeyDown(evt) { + if (evt.key === this.options.multiDragKey) { + this.multiDragKeyDown = true; + } + }, + _checkKeyUp: function _checkKeyUp(evt) { + if (evt.key === this.options.multiDragKey) { + this.multiDragKeyDown = false; + } + } + }; + return _extends(MultiDrag, { + // Static methods & properties + pluginName: 'multiDrag', + utils: { + /** + * Selects the provided multi-drag item + * @param {HTMLElement} el The element to be selected + */ + select: function select(el) { + var sortable = el.parentNode[expando]; + if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return; + + if (multiDragSortable && multiDragSortable !== sortable) { + multiDragSortable.multiDrag._deselectMultiDrag(); + + multiDragSortable = sortable; + } + + toggleClass(el, sortable.options.selectedClass, true); + multiDragElements.push(el); + }, + + /** + * Deselects the provided multi-drag item + * @param {HTMLElement} el The element to be deselected + */ + deselect: function deselect(el) { + var sortable = el.parentNode[expando], + index = multiDragElements.indexOf(el); + if (!sortable || !sortable.options.multiDrag || !~index) return; + toggleClass(el, sortable.options.selectedClass, false); + multiDragElements.splice(index, 1); + } + }, + eventProperties: function eventProperties() { + var _this3 = this; + + var oldIndicies = [], + newIndicies = []; + multiDragElements.forEach(function (multiDragElement) { + oldIndicies.push({ + multiDragElement: multiDragElement, + index: multiDragElement.sortableIndex + }); // multiDragElements will already be sorted if folding + + var newIndex; + + if (folding && multiDragElement !== dragEl$1) { + newIndex = -1; + } else if (folding) { + newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')'); + } else { + newIndex = index(multiDragElement); + } + + newIndicies.push({ + multiDragElement: multiDragElement, + index: newIndex + }); + }); + return { + items: _toConsumableArray(multiDragElements), + clones: [].concat(multiDragClones), + oldIndicies: oldIndicies, + newIndicies: newIndicies + }; + }, + optionListeners: { + multiDragKey: function multiDragKey(key) { + key = key.toLowerCase(); + + if (key === 'ctrl') { + key = 'Control'; + } else if (key.length > 1) { + key = key.charAt(0).toUpperCase() + key.substr(1); + } + + return key; + } + } + }); + } + + function insertMultiDragElements(clonesInserted, rootEl) { + multiDragElements.forEach(function (multiDragElement, i) { + var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)]; + + if (target) { + rootEl.insertBefore(multiDragElement, target); + } else { + rootEl.appendChild(multiDragElement); + } + }); + } + /** + * Insert multi-drag clones + * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted + * @param {HTMLElement} rootEl + */ + + + function insertMultiDragClones(elementsInserted, rootEl) { + multiDragClones.forEach(function (clone, i) { + var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)]; + + if (target) { + rootEl.insertBefore(clone, target); + } else { + rootEl.appendChild(clone); + } + }); + } + + function removeMultiDragElements() { + multiDragElements.forEach(function (multiDragElement) { + if (multiDragElement === dragEl$1) return; + multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement); + }); + } + + Sortable.mount(new AutoScrollPlugin()); + Sortable.mount(Remove, Revert); + + Sortable.mount(new SwapPlugin()); + Sortable.mount(new MultiDragPlugin()); + + return Sortable; + +})); diff --git a/library/backend/assets/js/sortable.min.js b/library/backend/assets/js/sortable.min.js new file mode 100644 index 0000000..4fe7f0c --- /dev/null +++ b/library/backend/assets/js/sortable.min.js @@ -0,0 +1,2 @@ +/*! Sortable 1.13.0 - MIT | git://github.com/SortableJS/Sortable.git */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).Sortable=e()}(this,function(){"use strict";function o(t){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function a(){return(a=Object.assign||function(t){for(var e=1;e"===e[0]&&(e=e.substring(1)),t)try{if(t.matches)return t.matches(e);if(t.msMatchesSelector)return t.msMatchesSelector(e);if(t.webkitMatchesSelector)return t.webkitMatchesSelector(e)}catch(t){return!1}return!1}}function P(t,e,n,o){if(t){n=n||document;do{if(null!=e&&(">"===e[0]?t.parentNode===n&&h(t,e):h(t,e))||o&&t===n)return t;if(t===n)break}while(t=(i=t).host&&i!==document&&i.host.nodeType?i.host:i.parentNode)}var i;return null}var f,p=/\s+/g;function k(t,e,n){if(t&&e)if(t.classList)t.classList[n?"add":"remove"](e);else{var o=(" "+t.className+" ").replace(p," ").replace(" "+e+" "," ");t.className=(o+(n?" "+e:"")).replace(p," ")}}function R(t,e,n){var o=t&&t.style;if(o){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(t,""):t.currentStyle&&(n=t.currentStyle),void 0===e?n:n[e];e in o||-1!==e.indexOf("webkit")||(e="-webkit-"+e),o[e]=n+("string"==typeof n?"":"px")}}function v(t,e){var n="";if("string"==typeof t)n=t;else do{var o=R(t,"transform");o&&"none"!==o&&(n=o+" "+n)}while(!e&&(t=t.parentNode));var i=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return i&&new i(n)}function g(t,e,n){if(t){var o=t.getElementsByTagName(e),i=0,r=o.length;if(n)for(;i=e.left-n&&r<=e.right+n,i=a>=e.top-n&&a<=e.bottom+n;return n&&o&&i?l=t:void 0}}),l}((t=t.touches?t.touches[0]:t).clientX,t.clientY);if(e){var n={};for(var o in t)t.hasOwnProperty(o)&&(n[o]=t[o]);n.target=n.rootEl=e,n.preventDefault=void 0,n.stopPropagation=void 0,e[j]._onDragOver(n)}}}function kt(t){z&&z.parentNode[j]._isOutsideThisEl(t.target)}function Rt(t,e){if(!t||!t.nodeType||1!==t.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(t));this.el=t,this.options=e=a({},e),t[j]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(t.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Ot(t,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(t,e){t.setData("Text",e.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==Rt.supportPointer&&"PointerEvent"in window&&!u,emptyInsertThreshold:5};for(var o in O.initializePlugins(this,t,n),n)o in e||(e[o]=n[o]);for(var i in Nt(e),this)"_"===i.charAt(0)&&"function"==typeof this[i]&&(this[i]=this[i].bind(this));this.nativeDraggable=!e.forceFallback&&xt,this.nativeDraggable&&(this.options.touchStartThreshold=1),e.supportPointer?d(t,"pointerdown",this._onTapStart):(d(t,"mousedown",this._onTapStart),d(t,"touchstart",this._onTapStart)),this.nativeDraggable&&(d(t,"dragover",this),d(t,"dragenter",this)),bt.push(this.el),e.store&&e.store.get&&this.sort(e.store.get(this)||[]),a(this,T())}function Xt(t,e,n,o,i,r,a,l){var s,c,u=t[j],d=u.options.onMove;return!window.CustomEvent||w||E?(s=document.createEvent("Event")).initEvent("move",!0,!0):s=new CustomEvent("move",{bubbles:!0,cancelable:!0}),s.to=e,s.from=t,s.dragged=n,s.draggedRect=o,s.related=i||e,s.relatedRect=r||X(e),s.willInsertAfter=l,s.originalEvent=a,t.dispatchEvent(s),d&&(c=d.call(u,s,a)),c}function Yt(t){t.draggable=!1}function Bt(){Dt=!1}function Ft(t){for(var e=t.tagName+t.className+t.src+t.href+t.textContent,n=e.length,o=0;n--;)o+=e.charCodeAt(n);return o.toString(36)}function Ht(t){return setTimeout(t,0)}function Lt(t){return clearTimeout(t)}Rt.prototype={constructor:Rt,_isOutsideThisEl:function(t){this.el.contains(t)||t===this.el||(ht=null)},_getDirection:function(t,e){return"function"==typeof this.options.direction?this.options.direction.call(this,t,e,z):this.options.direction},_onTapStart:function(e){if(e.cancelable){var n=this,o=this.el,t=this.options,i=t.preventOnFilter,r=e.type,a=e.touches&&e.touches[0]||e.pointerType&&"touch"===e.pointerType&&e,l=(a||e).target,s=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||l,c=t.filter;if(function(t){St.length=0;var e=t.getElementsByTagName("input"),n=e.length;for(;n--;){var o=e[n];o.checked&&St.push(o)}}(o),!z&&!(/mousedown|pointerdown/.test(r)&&0!==e.button||t.disabled)&&!s.isContentEditable&&(this.nativeDraggable||!u||!l||"SELECT"!==l.tagName.toUpperCase())&&!((l=P(l,t.draggable,o,!1))&&l.animated||Z===l)){if(J=F(l),et=F(l,t.draggable),"function"==typeof c){if(c.call(this,e,l,this))return W({sortable:n,rootEl:s,name:"filter",targetEl:l,toEl:o,fromEl:o}),K("filter",n,{evt:e}),void(i&&e.cancelable&&e.preventDefault())}else if(c&&(c=c.split(",").some(function(t){if(t=P(s,t.trim(),o,!1))return W({sortable:n,rootEl:t,name:"filter",targetEl:l,fromEl:o,toEl:o}),K("filter",n,{evt:e}),!0})))return void(i&&e.cancelable&&e.preventDefault());t.handle&&!P(s,t.handle,o,!1)||this._prepareDragStart(e,a,l)}}},_prepareDragStart:function(t,e,n){var o,i=this,r=i.el,a=i.options,l=r.ownerDocument;if(n&&!z&&n.parentNode===r){var s=X(n);if(q=r,G=(z=n).parentNode,V=z.nextSibling,Z=n,ot=a.group,rt={target:Rt.dragged=z,clientX:(e||t).clientX,clientY:(e||t).clientY},ct=rt.clientX-s.left,ut=rt.clientY-s.top,this._lastX=(e||t).clientX,this._lastY=(e||t).clientY,z.style["will-change"]="all",o=function(){K("delayEnded",i,{evt:t}),Rt.eventCanceled?i._onDrop():(i._disableDelayedDragEvents(),!c&&i.nativeDraggable&&(z.draggable=!0),i._triggerDragStart(t,e),W({sortable:i,name:"choose",originalEvent:t}),k(z,a.chosenClass,!0))},a.ignore.split(",").forEach(function(t){g(z,t.trim(),Yt)}),d(l,"dragover",Pt),d(l,"mousemove",Pt),d(l,"touchmove",Pt),d(l,"mouseup",i._onDrop),d(l,"touchend",i._onDrop),d(l,"touchcancel",i._onDrop),c&&this.nativeDraggable&&(this.options.touchStartThreshold=4,z.draggable=!0),K("delayStart",this,{evt:t}),!a.delay||a.delayOnTouchOnly&&!e||this.nativeDraggable&&(E||w))o();else{if(Rt.eventCanceled)return void this._onDrop();d(l,"mouseup",i._disableDelayedDrag),d(l,"touchend",i._disableDelayedDrag),d(l,"touchcancel",i._disableDelayedDrag),d(l,"mousemove",i._delayedDragTouchMoveHandler),d(l,"touchmove",i._delayedDragTouchMoveHandler),a.supportPointer&&d(l,"pointermove",i._delayedDragTouchMoveHandler),i._dragStartTimer=setTimeout(o,a.delay)}}},_delayedDragTouchMoveHandler:function(t){var e=t.touches?t.touches[0]:t;Math.max(Math.abs(e.clientX-this._lastX),Math.abs(e.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){z&&Yt(z),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var t=this.el.ownerDocument;s(t,"mouseup",this._disableDelayedDrag),s(t,"touchend",this._disableDelayedDrag),s(t,"touchcancel",this._disableDelayedDrag),s(t,"mousemove",this._delayedDragTouchMoveHandler),s(t,"touchmove",this._delayedDragTouchMoveHandler),s(t,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(t,e){e=e||"touch"==t.pointerType&&t,!this.nativeDraggable||e?this.options.supportPointer?d(document,"pointermove",this._onTouchMove):d(document,e?"touchmove":"mousemove",this._onTouchMove):(d(z,"dragend",this),d(q,"dragstart",this._onDragStart));try{document.selection?Ht(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch(t){}},_dragStarted:function(t,e){if(vt=!1,q&&z){K("dragStarted",this,{evt:e}),this.nativeDraggable&&d(document,"dragover",kt);var n=this.options;t||k(z,n.dragClass,!1),k(z,n.ghostClass,!0),Rt.active=this,t&&this._appendGhost(),W({sortable:this,name:"start",originalEvent:e})}else this._nulling()},_emulateDragOver:function(){if(at){this._lastX=at.clientX,this._lastY=at.clientY,At();for(var t=document.elementFromPoint(at.clientX,at.clientY),e=t;t&&t.shadowRoot&&(t=t.shadowRoot.elementFromPoint(at.clientX,at.clientY))!==e;)e=t;if(z.parentNode[j]._isOutsideThisEl(t),e)do{if(e[j]){if(e[j]._onDragOver({clientX:at.clientX,clientY:at.clientY,target:t,rootEl:e})&&!this.options.dragoverBubble)break}t=e}while(e=e.parentNode);It()}},_onTouchMove:function(t){if(rt){var e=this.options,n=e.fallbackTolerance,o=e.fallbackOffset,i=t.touches?t.touches[0]:t,r=U&&v(U,!0),a=U&&r&&r.a,l=U&&r&&r.d,s=Ct&>&&b(gt),c=(i.clientX-rt.clientX+o.x)/(a||1)+(s?s[0]-Et[0]:0)/(a||1),u=(i.clientY-rt.clientY+o.y)/(l||1)+(s?s[1]-Et[1]:0)/(l||1);if(!Rt.active&&!vt){if(n&&Math.max(Math.abs(i.clientX-this._lastX),Math.abs(i.clientY-this._lastY))o.right+10||t.clientX<=o.right&&t.clientY>o.bottom&&t.clientX>=o.left:t.clientX>o.right&&t.clientY>o.top||t.clientX<=o.right&&t.clientY>o.bottom+10}(n,a,this)&&!g.animated){if(g===z)return N(!1);if(g&&l===n.target&&(s=g),s&&(i=X(s)),!1!==Xt(q,l,z,o,s,i,n,!!s))return O(),l.appendChild(z),G=l,A(),N(!0)}else if(s.parentNode===l){i=X(s);var v,m,b,y=z.parentNode!==l,w=!function(t,e,n){var o=n?t.left:t.top,i=n?t.right:t.bottom,r=n?t.width:t.height,a=n?e.left:e.top,l=n?e.right:e.bottom,s=n?e.width:e.height;return o===a||i===l||o+r/2===a+s/2}(z.animated&&z.toRect||o,s.animated&&s.toRect||i,a),E=a?"top":"left",D=Y(s,"top","top")||Y(z,"top","top"),S=D?D.scrollTop:void 0;if(ht!==s&&(m=i[E],yt=!1,wt=!w&&e.invertSwap||y),0!==(v=function(t,e,n,o,i,r,a,l){var s=o?t.clientY:t.clientX,c=o?n.height:n.width,u=o?n.top:n.left,d=o?n.bottom:n.right,h=!1;if(!a)if(l&&ptadd_control( new Control_Cover_Layout( $wp_customize, $option['id'], $option['cargs'] ) ); + } elseif ( 'content-layout' === $option['cargs']['type'] ) { + $wp_customize->add_control( new Control_Content_Layout( $wp_customize, $option['id'], $option['cargs'] ) ); + } elseif ( 'gl-color' === $option['cargs']['type'] ) { $wp_customize->add_control( new Control_Color( $wp_customize, $option['id'], $option['cargs'] ) ); } elseif ( 'border' === $option['cargs']['type'] ) { $wp_customize->add_control( new Control_Border( $wp_customize, $option['id'], $option['cargs'] ) ); - } elseif ( 'font' === $option['cargs']['type'] ) { - $wp_customize->add_control( new Control_Font( $wp_customize, $option['id'], $option['cargs'] ) ); - } elseif ( 'length' === $option['cargs']['type'] ) { $wp_customize->add_control( new Control_Length( $wp_customize, $option['id'], $option['cargs'] ) ); @@ -207,10 +207,10 @@ public function greenlet_add_custom_controls() { $wp_customize->register_control_type( 'Greenlet\Control_Template' ); $wp_customize->register_control_type( 'Greenlet\Control_Template_Sequence' ); $wp_customize->register_control_type( 'Greenlet\Control_Cover_Layout' ); + $wp_customize->register_control_type( 'Greenlet\Control_Content_Layout' ); $wp_customize->register_control_type( 'Greenlet\Control_Divider' ); $wp_customize->register_control_type( 'Greenlet\Control_Color' ); $wp_customize->register_control_type( 'Greenlet\Control_Border' ); - $wp_customize->register_control_type( 'Greenlet\Control_Font' ); $wp_customize->register_control_type( 'Greenlet\Control_Length' ); $wp_customize->register_control_type( 'Greenlet\Control_Preset' ); } diff --git a/library/backend/customizer/custom-controls/class-control-content-layout.php b/library/backend/customizer/custom-controls/class-control-content-layout.php new file mode 100644 index 0000000..b9a3608 --- /dev/null +++ b/library/backend/customizer/custom-controls/class-control-content-layout.php @@ -0,0 +1,124 @@ +json['default'] = $this->setting->default; + if ( isset( $this->default ) ) { + $this->json['default'] = $this->default; + } + + // Value. + $this->json['value'] = $this->value(); + + $this->json['link'] = $this->get_link(); + + // Setting ID. + $this->json['id'] = $this->id; + + // Control Type. + $this->json['type'] = $this->type; + + // Groups / Sections. + $this->json['groups'] = $this->groups; + + // Items. + $this->json['items'] = $this->items; + + // CSS Class. + $this->json['cls'] = $this->cls; + } + + /** + * Displays the control content. + * + * @since 2.5.0 + * @access public + * @return void + */ + protected function content_template() { ?> +
+ 'Default', - 'size' => '1.6rem', - 'style' => 'normal', - 'weight' => '400', - ); - - if ( property_exists( $this->setting, 'default' ) ) { - $this->setting->default = array_replace_recursive( $default, (array) $this->setting->default ); - } - } - - /** - * Enqueue scripts/styles. - * - * @since 1.1.0 - * @access public - * @return void - */ - public function enqueue() { - $min = ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) ? '' : '.min'; - wp_enqueue_script( 'choices', GREENLET_LIBRARY_URL . '/backend/assets/js/choices.min.js', array( 'jquery' ), GREENLET_VERSION, true ); - wp_enqueue_style( 'choices', GREENLET_LIBRARY_URL . '/backend/assets/css/choices.css', array(), GREENLET_VERSION ); - wp_enqueue_script( 'greenlet-controls', GREENLET_LIBRARY_URL . '/backend/assets/js/greenlet-controls' . $min . '.js', array( 'choices' ), GREENLET_VERSION, true ); - wp_localize_script( 'greenlet-controls', 'greenletAllFonts', $this->get_all_fonts() ); - - $color_wings_fonts = array( - 'allFonts' => $this->get_all_fonts(), - 'defaults' => greenlet_font_defaults(), - ); - wp_localize_script( 'greenlet-controls', 'colorWingsFonts', $color_wings_fonts ); - } - - /** - * Refresh the parameters passed to the JavaScript via JSON. - * - * @since 1.1.0 - * @see WP_Customize_Control::to_json() - */ - public function to_json() { - // Get the basics from the parent class. - parent::to_json(); - - // Default value. - $this->json['default'] = $this->setting->default; - if ( isset( $this->default ) ) { - $this->json['default'] = $this->default; - } - - // Value. - $this->json['value'] = $this->value(); - - // Setting ID. - $this->json['id'] = $this->id; - - // Control Type. - $this->json['type'] = $this->type; - - // Choices. - $this->json['choices'] = $this->choices; - - $this->json['fontDefaults'] = greenlet_font_defaults(); - } - - /** - * Get all fonts. - * - * @since 1.1.0 - * @return array All fonts. - */ - public function get_all_fonts() { - return array( - 'system' => array( - 'Default' => array( 'category' => 'default' ), - 'Helvetica' => array( 'category' => 'sans-serif' ), - 'Verdana' => array( 'category' => 'sans-serif' ), - 'Arial' => array( 'category' => 'sans-serif' ), - 'Times' => array( 'category' => 'serif' ), - 'Georgia' => array( 'category' => 'serif' ), - 'Courier' => array( 'category' => 'monospace' ), - ), - 'google' => $this->get_google_fonts(), - ); - } - - /** - * Get Google Fonts. - * - * @since 1.1.0 - * @return array Google fonts array. - */ - public function get_google_fonts() { - $fonts_file = GREENLET_LIBRARY_DIR . '/backend/assets/fonts/google-fonts.json'; - $font_content = greenlet_get_file_contents( $fonts_file ); - return json_decode( $font_content, true ); - } - - /** - * Displays the control content. - * - * @since 1.1.0 - * @access public - * @return void - */ - protected function content_template() { - ?> - <# if ( data.label ) { #>{{{ data.label }}}<# } #> - <# if ( data.description ) { #>{{{ data.description }}}<# } #> - -
- -
- - -
-
-
- -
-
- -
- -
-
- array( 'title' => __( 'Layout', 'greenlet' ), 'description' => __( 'Site Layout.', 'greenlet' ), - 'priority' => 35, + 'priority' => 22, ), ); @@ -301,7 +301,7 @@ function greenlet_options() { 'args' => array( 'title' => __( 'Blog Settings', 'greenlet' ), 'description' => __( 'Blog posts settings.', 'greenlet' ), - 'priority' => 220, + 'priority' => 24, ), ); @@ -361,105 +361,16 @@ function greenlet_options() { $options[] = array( 'type' => 'setting_control', - 'id' => 'featured_image', + 'id' => 'content_layout_list', 'sargs' => array( - 'default' => '1', - ), - 'cargs' => array( - 'type' => 'checkbox', - 'section' => 'blog_list', - 'label' => __( 'Featured Image', 'greenlet' ), - 'description' => __( 'Show featured image on post list and archives.', 'greenlet' ), - ), - ); - - $options[] = array( - 'type' => 'setting_control', - 'id' => 'excerpt_type', - 'sargs' => array( - 'default' => 'excerpt', - ), - 'cargs' => array( - 'type' => 'radio', - 'section' => 'blog_list', - 'label' => __( 'Content display', 'greenlet' ), - 'description' => __( 'Post content display format.', 'greenlet' ), - 'choices' => array( - 'excerpt' => __( 'Excerpt (short text extract)', 'greenlet' ), - 'full' => __( 'Full Content', 'greenlet' ), - ), - ), - ); - - $options[] = array( - 'type' => 'setting_control', - 'id' => 'excerpt_length', - 'sargs' => array( - 'default' => 55, - ), - 'cargs' => array( - 'type' => 'text', - 'section' => 'blog_list', - 'label' => __( 'Excerpt length', 'greenlet' ), - 'description' => __( 'Number of characters in excerpts for post list.', 'greenlet' ), - ), - ); - - $options[] = array( - 'type' => 'setting_control', - 'id' => 'paging_nav', - 'sargs' => array( - 'default' => 'number', - ), - 'cargs' => array( - 'type' => 'radio', - 'section' => 'blog_list', - 'label' => __( 'Pagination', 'greenlet' ), - 'description' => __( 'Paging Navigation display format.', 'greenlet' ), - 'choices' => array( - 'simple' => __( 'Simple', 'greenlet' ), - 'number' => __( 'Numbered', 'greenlet' ), - 'ajax' => __( 'Numbered (Ajax)', 'greenlet' ), - 'load' => __( 'Load More Button', 'greenlet' ), - 'infinite' => __( 'Infinite Scroll', 'greenlet' ), - ), - ), - ); - - $options[] = array( - 'type' => 'setting_control', - 'id' => 'show_meta', - 'sargs' => array( - 'default' => array( 'sticky', 'author', 'date', 'cats', 'tags', 'reply' ), - 'sanitize_callback' => array( 'Greenlet\Sanitizer', 'sanitize_multicheck' ), + 'default' => greenlet_content_layout_defaults(), ), 'cargs' => array( - 'type' => 'multicheck', + 'type' => 'content-layout', 'section' => 'blog_list', - 'label' => __( 'Show Meta Info', 'greenlet' ), - 'choices' => array( - 'sticky' => __( 'Featured (Sticky)', 'greenlet' ), - 'author' => __( 'Author', 'greenlet' ), - 'date' => __( 'Published Date', 'greenlet' ), - 'mod' => __( 'Updated Date', 'greenlet' ), - 'cats' => __( 'Categories', 'greenlet' ), - 'tags' => __( 'Tags', 'greenlet' ), - 'reply' => __( 'Comments', 'greenlet' ), - ), - ), - ); - - $options[] = array( - 'type' => 'setting_control', - 'id' => 'read_more', - 'sargs' => array( - 'default' => __( 'continue reading', 'greenlet' ), - ), - 'cargs' => array( - 'type' => 'text', - 'section' => 'blog_list', - 'label' => __( 'Continue reading text', 'greenlet' ), - 'description' => __( 'Post excerpt more link text', 'greenlet' ), + 'label' => __( 'Post Sections', 'greenlet' ), + 'groups' => array( 'above', 'top', 'middle', 'bottom', 'below' ), + 'items' => greenlet_content_layout_items(), ), ); @@ -474,66 +385,49 @@ function greenlet_options() { $options[] = array( 'type' => 'setting_control', - 'id' => 'breadcrumb', + 'id' => 'content_layout', 'sargs' => array( - 'default' => '1', + 'default' => greenlet_content_layout_defaults( 'single' ), ), 'cargs' => array( - 'type' => 'checkbox', - 'section' => 'blog_single', - 'label' => __( 'Breadcrumb', 'greenlet' ), - 'description' => __( 'Enable breadcrumb navigation', 'greenlet' ), + 'type' => 'content-layout', + 'section' => 'blog_single', + 'label' => __( 'Post Sections', 'greenlet' ), + 'groups' => array( 'above', 'top', 'middle', 'bottom', 'below' ), + 'items' => greenlet_content_layout_items(), ), ); $options[] = array( - 'type' => 'setting_control', - 'id' => 'breadcrumb_sep', - 'sargs' => array( - 'default' => '»', - ), - 'cargs' => array( - 'type' => 'text', - 'section' => 'blog_single', - 'label' => __( 'Breadcrumb Separator', 'greenlet' ), - 'description' => __( 'Separator between links in breadcrumb. Eg: / or >', 'greenlet' ), + 'type' => 'section', + 'id' => 'blog_page', + 'args' => array( + 'title' => __( 'Single Page', 'greenlet' ), + 'panel' => 'blog', ), ); $options[] = array( 'type' => 'setting_control', - 'id' => 'show_author', + 'id' => 'content_layout_page', 'sargs' => array( - 'default' => array( 'name', 'image', 'bio' ), - 'sanitize_callback' => array( 'Greenlet\Sanitizer', 'sanitize_multicheck' ), + 'default' => greenlet_content_layout_defaults( 'page' ), ), 'cargs' => array( - 'type' => 'multicheck', - 'section' => 'blog_single', - 'label' => __( 'Show Author Info', 'greenlet' ), - 'choices' => array( - 'name' => __( 'Name', 'greenlet' ), - 'image' => __( 'Avatar', 'greenlet' ), - 'bio' => __( 'Biographical Info', 'greenlet' ), - ), + 'type' => 'content-layout', + 'section' => 'blog_page', + 'label' => __( 'Page Sections', 'greenlet' ), + 'groups' => array( 'above', 'top', 'middle', 'bottom', 'below' ), + 'items' => greenlet_content_layout_items(), ), ); $options[] = array( - 'type' => 'setting_control', - 'id' => 'show_comments', - 'sargs' => array( - 'default' => array( 'posts', 'pages' ), - 'sanitize_callback' => array( 'Greenlet\Sanitizer', 'sanitize_multicheck' ), - ), - 'cargs' => array( - 'type' => 'multicheck', - 'section' => 'blog_single', - 'label' => __( 'Show Comments', 'greenlet' ), - 'choices' => array( - 'posts' => __( 'Posts', 'greenlet' ), - 'pages' => __( 'Pages', 'greenlet' ), - ), + 'type' => 'section', + 'id' => 'blog_extra', + 'args' => array( + 'title' => __( 'Others', 'greenlet' ), + 'panel' => 'blog', ), ); @@ -545,36 +439,12 @@ function greenlet_options() { ), 'cargs' => array( 'type' => 'checkbox', - 'section' => 'blog_single', + 'section' => 'blog_extra', 'label' => __( 'Schema Markup', 'greenlet' ), 'description' => __( 'Enable Schema Markup', 'greenlet' ), ), ); - $options[] = array( - 'type' => 'setting_control', - 'id' => 'editor_styles', - 'sargs' => array( - 'default' => false, - 'transport' => 'postMessage', - ), - 'cargs' => array( - 'type' => 'checkbox', - 'section' => 'blog_single', - 'label' => __( 'Editor Styles', 'greenlet' ), - 'description' => __( 'Match the Post editor styles to the frontend styles.', 'greenlet' ), - ), - ); - - $options[] = array( - 'type' => 'section', - 'id' => 'blog_extra', - 'args' => array( - 'title' => __( 'Others', 'greenlet' ), - 'panel' => 'blog', - ), - ); - $options[] = array( 'type' => 'setting_control', 'id' => 'search_submit', @@ -623,12 +493,28 @@ function greenlet_options() { ), ); + $options[] = array( + 'type' => 'setting_control', + 'id' => 'editor_styles', + 'sargs' => array( + 'default' => false, + 'transport' => 'postMessage', + ), + 'cargs' => array( + 'type' => 'checkbox', + 'section' => 'blog_extra', + 'label' => __( 'Editor Styles', 'greenlet' ), + 'description' => __( 'Match the Post editor styles to the frontend styles.', 'greenlet' ), + 'priority' => 900, + ), + ); + $options[] = array( 'type' => 'section', 'id' => 'performance', 'args' => array( 'title' => __( 'Performance', 'greenlet' ), - 'priority' => 250, + 'priority' => 26, ), ); @@ -721,7 +607,7 @@ function greenlet_options() { 'id' => 'presets', 'args' => array( 'title' => __( 'Presets', 'greenlet' ), - 'priority' => 300, + 'priority' => 28, ), ); diff --git a/library/backend/customizer/presets.json b/library/backend/customizer/presets.json index 8e3ed90..5dc5a20 100644 --- a/library/backend/customizer/presets.json +++ b/library/backend/customizer/presets.json @@ -5,57 +5,29 @@ "css_framework": "default", "css_path": "", "load_js": false, - "header_layout": [{"columns":"3-9","primary":true,"items":{"1":["logo"],"2":[{"id":"menu","meta":{"slug":false,"toggler":"enable"}}]}}], + "header_layout": [{"columns":"3-9","primary":true,"items":{"1":[{"id":"logo"},{"id":"widgets"}],"2":[{"id":"menu","meta":{"slug":false,"toggler":"enable"}},{"id":"widgets"}]}}], "sidebars_qty": "3", "home_template": { "template": "8-4", - "sequence": [ - "main", - "sidebar-1" - ] + "sequence": ["main", "sidebar-1"] }, "default_template": { "template": "12", - "sequence": [ - "main" - ] + "sequence": ["main"] }, "post_template": { "template": "12", - "sequence": [ - "main" - ] + "sequence": ["main"] }, "archive_template": { "template": "12", - "sequence": [ - "main" - ] + "sequence": ["main"] }, - "footer_layout": [{"columns":"12","primary":true,"items":[]}], + "footer_layout": [{"columns":"12","primary":true,"items":{"1":[{"id":"php","meta":{"template":"templates/copyright"}}]}}], "post_list_layout": "list", - "breadcrumb": "1", - "breadcrumb_sep": "»", - "featured_image": "1", - "excerpt_length": 55, - "paging_nav": "number", - "show_author": [ - "name", - "image", - "bio" - ], - "show_meta": [ - "sticky", - "author", - "date", - "cats", - "tags", - "reply" - ], - "show_comments": [ - "posts", - "pages" - ], + "content_layout_list": {"above":[{"id":"breadcrumb","meta":{"separator":{"val":"»"}}},{"id":"list_title"}],"top":[{"id":"title"},{"id":"meta","meta":{"layout":{"val":[{"id":"sticky"},{"id":"author"},{"id":"date"},{"id":"cats"},{"id":"tags"},{"id":"reply"},{"id":"mod","visible":false}]}}}],"middle":[{"id":"image"},{"id":"content","meta":{"display":{"val":"excerpt"},"excerpt_length":{"val":55},"read_more":{"val":"continue reading"}}}],"bottom":[{"id":"author","meta":{"layout":{"val":[{"id":"image"},{"id":"name"},{"id":"bio"}]}},"visible":false}],"below":[{"id":"pagination","meta":{"format":{"val":"number"}}}]}, + "content_layout": {"above":[{"id":"breadcrumb","meta":{"separator":{"val":"»"}}}],"top":[{"id":"title"},{"id":"meta","meta":{"layout":{"val":[{"id":"sticky"},{"id":"author"},{"id":"date"},{"id":"cats"},{"id":"tags"},{"id":"reply"},{"id":"mod","visible":false}]}}}],"middle":[{"id":"image"},{"id":"content"}],"bottom":[{"id":"author","meta":{"layout":{"val":[{"id":"image"},{"id":"name"},{"id":"bio"}]}}}],"below":[{"id":"comments"}]}, + "content_layout_page": {"above":[{"id":"breadcrumb","meta":{"separator":{"val":"»"}},"visible":false}],"top":[{"id":"title"},{"id":"meta","meta":{"layout":{"val":[{"id":"sticky"},{"id":"author"},{"id":"date"},{"id":"cats"},{"id":"tags"},{"id":"reply"},{"id":"mod","visible":false}]}},"visible":false}],"middle":[{"id":"image"},{"id":"content"}],"bottom":[{"id":"author","meta":{"layout":{"val":[{"id":"image"},{"id":"name"},{"id":"bio"}]}},"visible":false}],"below":[{"id":"comments"}]}, "schema": "1", "defer_css": "1", "disable_emojis": false, @@ -127,7 +99,6 @@ } } }, - "show_meta": [], "home_template": { "template": "12", "sequence": [ "main" ] @@ -160,12 +131,11 @@ } }, "post_list_layout": "grid", - "show_meta": ["author", "date"], + "content_layout_list": {"top":[{"id":"title"},{"id":"meta","meta":{"layout":{"val":[{"id":"sticky","visible":false},{"id":"author"},{"id":"date"},{"id":"cats","visible":false},{"id":"tags","visible":false},{"id":"reply","visible":false},{"id":"mod","visible":false}]}}}],"below":[{"id":"pagination","meta":{"format":{"val":"load"}}}]}, "home_template": { "template": "12", "sequence": [ "main" ] - }, - "paging_nav": "load" + } }, "Avocado": { "color_wings": { diff --git a/library/backend/helpers.php b/library/backend/helpers.php index 0582f9b..e85cb8f 100644 --- a/library/backend/helpers.php +++ b/library/backend/helpers.php @@ -205,7 +205,7 @@ function greenlet_css_frameworks() { 'greenlet_css_frameworks', array( 'default' => __( 'Greenlet Framework', 'greenlet' ), - 'bootstrap' => __( 'Bootstrap 4.5.3', 'greenlet' ), + 'bootstrap' => __( 'Bootstrap 4.6.0', 'greenlet' ), ) ); } diff --git a/library/common/deprecated.php b/library/common/deprecated.php new file mode 100644 index 0000000..d535ca1 --- /dev/null +++ b/library/common/deprecated.php @@ -0,0 +1,29 @@ + '3-9', 'primary' => true, 'items' => array( - 1 => array( 'logo', 'widgets' ), + 1 => array( array( 'id' => 'logo' ), array( 'id' => 'widgets' ) ), 2 => array( array( 'id' => 'menu', @@ -625,7 +629,7 @@ function greenlet_cover_layout_defaults( $position = 'header' ) { 'toggler' => 'enable', ), ), - 'widgets', + array( 'id' => 'widgets' ), ), ), ), @@ -634,7 +638,14 @@ function greenlet_cover_layout_defaults( $position = 'header' ) { array( 'columns' => '12', 'primary' => true, - 'items' => array( 1 => array( 'widgets' ) ), + 'items' => array( + 1 => array( + array( + 'id' => 'php', + 'meta' => array( 'template' => 'templates/copyright' ), + ), + ), + ), ), ); return $$position; @@ -701,3 +712,192 @@ function greenlet_font_defaults() { ); } } + +if ( ! function_exists( 'greenlet_content_layout_items' ) ) { + /** + * Get content layout items. + * + * @since 2.5.0 + * @return array Content layout items. + */ + function greenlet_content_layout_items() { + $items = array( + 'title' => __( 'Title', 'greenlet' ), + 'meta' => __( 'Post Meta', 'greenlet' ), + 'image' => __( 'Featured Image', 'greenlet' ), + 'content' => __( 'Post Content', 'greenlet' ), + 'author' => __( 'Author Info', 'greenlet' ), + 'breadcrumb' => __( 'Breadcrumb', 'greenlet' ), + 'list_title' => __( 'List Title', 'greenlet' ), + 'comments' => __( 'Comments', 'greenlet' ), + 'pagination' => __( 'Pagination', 'greenlet' ), + ); + + $items['meta:author'] = array( + 'name' => __( 'Name', 'greenlet' ), + 'image' => __( 'Avatar', 'greenlet' ), + 'bio' => __( 'Biographical Info', 'greenlet' ), + ); + + $items['meta:meta'] = array( + 'sticky' => __( 'Featured', 'greenlet' ), + 'author' => __( 'Author', 'greenlet' ), + 'date' => __( 'Published', 'greenlet' ), + 'mod' => __( 'Updated', 'greenlet' ), + 'cats' => __( 'Categories', 'greenlet' ), + 'tags' => __( 'Tags', 'greenlet' ), + 'reply' => __( 'Comments', 'greenlet' ), + ); + + $items['controls'] = array( + 'layout' => array( 'type' => 'sorter' ), + 'separator' => array( + 'type' => 'input', + 'label' => __( 'Separator', 'greenlet' ), + 'desc' => __( 'Separator between links. Eg: / or >', 'greenlet' ), + ), + 'excerpt_length' => array( + 'type' => 'number', + 'label' => __( 'Excerpt Length', 'greenlet' ), + ), + 'read_more' => array( + 'type' => 'input', + 'label' => __( 'Continue reading text', 'greenlet' ), + ), + 'display' => array( + 'type' => 'radio', + 'label' => __( 'Display Format', 'greenlet' ), + 'choices' => array( + 'excerpt' => __( 'Excerpt (short text extract)', 'greenlet' ), + 'full' => __( 'Full Content', 'greenlet' ), + ), + ), + 'format' => array( + 'type' => 'radio', + 'label' => __( 'Display Format', 'greenlet' ), + 'choices' => array( + 'simple' => __( 'Simple', 'greenlet' ), + 'number' => __( 'Numbered', 'greenlet' ), + 'ajax' => __( 'Numbered (Ajax)', 'greenlet' ), + 'load' => __( 'Load More Button', 'greenlet' ), + 'infinite' => __( 'Infinite Scroll', 'greenlet' ), + ), + ), + ); + + return $items; + } +} + +if ( ! function_exists( 'greenlet_content_layout_defaults' ) ) { + /** + * Get Post content layout default sequence. + * + * @since 2.5.0 + * + * @param string $type Page type to get the layout defaults for. + * @return array Content Layout defaults. + */ + function greenlet_content_layout_defaults( $type = 'list' ) { + $groups = array( + 'above' => array( + array( + 'id' => 'breadcrumb', + 'meta' => array( + 'separator' => array( 'val' => '»' ), + ), + ), + ), + 'top' => array( + array( 'id' => 'title' ), + array( + 'id' => 'meta', + 'meta' => array( + 'layout' => array( + 'val' => array( + array( 'id' => 'sticky' ), + array( 'id' => 'author' ), + array( 'id' => 'date' ), + array( 'id' => 'cats' ), + array( 'id' => 'tags' ), + array( 'id' => 'reply' ), + array( + 'id' => 'mod', + 'visible' => false, + ), + ), + ), + ), + ), + ), + 'middle' => array( + array( 'id' => 'image' ), + array( 'id' => 'content' ), + ), + 'bottom' => array( + array( + 'id' => 'author', + 'meta' => array( + 'layout' => array( + 'val' => array( + array( 'id' => 'image' ), + array( 'id' => 'name' ), + array( 'id' => 'bio' ), + ), + ), + ), + ), + ), + ); + + if ( 'list' === $type ) { + array_push( $groups['above'], array( 'id' => 'list_title' ) ); + $groups['middle'][1] = array( + 'id' => 'content', + 'meta' => array( + 'display' => array( 'val' => 'excerpt' ), + 'excerpt_length' => array( 'val' => 55 ), + 'read_more' => array( 'val' => __( 'continue reading', 'greenlet' ) ), + ), + ); + + $groups['bottom'][0]['visible'] = false; + + $groups['below'] = array( + array( + 'id' => 'pagination', + 'meta' => array( + 'format' => array( 'val' => 'number' ), + ), + ), + ); + } elseif ( 'page' === $type ) { + $groups['above'][0]['visible'] = false; + $groups['top'][1]['visible'] = false; + $groups['bottom'][0]['visible'] = false; + } + + if ( ( 'single' === $type ) || ( 'page' === $type ) ) { + $groups['below'] = array( array( 'id' => 'comments' ) ); + } + + return $groups; + } +} + +if ( ! function_exists( 'greenlet_get_content_layout' ) ) { + /** + * Get Content Layout for the current page. + * + * @since 2.5.0 + * @return array Content layout. + */ + function greenlet_get_content_layout() { + if ( is_single() ) { + return gl_get_option( 'content_layout', greenlet_content_layout_defaults( 'single' ) ); + } elseif ( is_singular() ) { + return gl_get_option( 'content_layout_page', greenlet_content_layout_defaults( 'page' ) ); + } + return gl_get_option( 'content_layout_list', greenlet_content_layout_defaults() ); + } +} diff --git a/library/frontend/attributes.php b/library/frontend/attributes.php index e94af17..06500e9 100644 --- a/library/frontend/attributes.php +++ b/library/frontend/attributes.php @@ -99,9 +99,22 @@ function greenlet_attr( $args, $get_array = false ) { $attributes = apply_filters( 'greenlet_attr_col', $attributes, $primary, $css_framework, $width, $mq ); } - // If schema enabled, add filter to each primary class. + // If schema enabled, add attributes to each element. if ( gl_get_option( 'schema', '1' ) ) { - add_filter( "greenlet_attr_{$primary}", 'greenlet_attribute', 10, 2 ); + add_filter( "greenlet_attr_{$primary}", 'greenlet_attributes', 10, 2 ); + } + + /** + * Add framework attributes. + * + * @var string $primary HTML class. + * @var array $css_framework Current CSS framework. + */ + if ( apply_filters( 'greenlet_add_framework_attributes', true, $primary, $css_framework ) ) { + // If bootstrap, add extra classes to each primary class. + if ( 'bootstrap' === $css_framework ) { + add_filter( "greenlet_attr_{$primary}", 'greenlet_framework_attributes', 10, 2 ); + } } /** @@ -132,17 +145,18 @@ function greenlet_attr( $args, $get_array = false ) { } /** - * Get attributes array. + * Get schema added attributes. * * Returns extra attributes array for schema, rel, role etc. * * @since 1.0.0 + * @since 2.5.0 Renamed from greenlet_attribute to greenlet_attributes. * * @param array $attributes HTML attributes. - * @param string $primary HTML class. - * @return array of extra attributes. + * @param string $primary HTML class. + * @return array Schema added attributes. */ -function greenlet_attribute( $attributes, $primary ) { +function greenlet_attributes( $attributes, $primary ) { // If $primary variable. switch ( $primary ) { @@ -213,7 +227,7 @@ function greenlet_attribute( $attributes, $primary ) { } break; - // Is sidebar, add complementory role, sidebar schema. + // Is sidebar, add complementary role, sidebar schema. case 'sidebar': $attributes['role'] = 'complementary'; $attributes['itemscope'] = 'itemscope'; @@ -314,62 +328,25 @@ function greenlet_attribute( $attributes, $primary ) { return $attributes; } - /** - * Converts number to words. + * Get framework classes added attributes. * - * @since 1.0.0 - * @param integer $num Number to be converted. - * @return string Number in words. + * @since 2.5.0 + * @param array $attributes HTML attributes. + * @param string $primary HTML class. + * @return array classes added attributes. */ -function greenlet_read_number( $num ) { - $num = (int) $num; - $word = ''; - - // from 0 to 99. - $mod = floor( $num / 10 ); - if ( 0 === $mod ) { // ones place. - if ( 1 === $num ) { - $word .= 'one'; - } elseif ( 2 === $num ) { - $word .= 'two'; - } elseif ( 3 === $num ) { - $word .= 'three'; - } elseif ( 4 === $num ) { - $word .= 'four'; - } elseif ( 5 === $num ) { - $word .= 'five'; - } elseif ( 6 === $num ) { - $word .= 'six'; - } elseif ( 7 === $num ) { - $word .= 'seven'; - } elseif ( 8 === $num ) { - $word .= 'eight'; - } elseif ( 9 === $num ) { - $word .= 'nine'; - } - } elseif ( 1 === $mod ) { // if there's a one in the ten's place. - if ( 10 === $num ) { - $word .= 'ten'; - } elseif ( 11 === $num ) { - $word .= 'eleven'; - } elseif ( 12 === $num ) { - $word .= 'twelve'; - } elseif ( 13 === $num ) { - $word .= 'thirteen'; - } elseif ( 14 === $num ) { - $word .= 'fourteen'; - } elseif ( 15 === $num ) { - $word .= 'fifteen'; - } elseif ( 16 === $num ) { - $word .= 'sixteen'; - } elseif ( 17 === $num ) { - $word .= 'seventeen'; - } elseif ( 18 === $num ) { - $word .= 'eighteen'; - } elseif ( 19 === $num ) { - $word .= 'nineteen'; - } +function greenlet_framework_attributes( $attributes, $primary ) { + $classes = array( + 'search-input' => ' form-control', + 'search-submit' => ' btn btn-light', + 'more-link' => ' btn btn-light', + 'to-top' => ' btn btn-light', + ); + + if ( isset( $classes[ $primary ] ) ) { + $attributes['class'] .= $classes[ $primary ]; } - return $word; + + return $attributes; } diff --git a/library/frontend/footer-structure.php b/library/frontend/footer-structure.php index 1563031..2a503a6 100644 --- a/library/frontend/footer-structure.php +++ b/library/frontend/footer-structure.php @@ -12,25 +12,6 @@ add_action( 'greenlet_footer', 'greenlet_do_footer' ); add_action( 'greenlet_after_footer', 'greenlet_to_top_button' ); -/** - * Display the footer text. - * - * @since 2.0.0 - * @return void - */ -function greenlet_footer_text() { - $text = sprintf( '

', greenlet_attr( 'copyright' ) ); - $text .= sprintf( - '© %1$s · %3$s · %4$s %5$s

', - date_i18n( __( 'Y', 'greenlet' ) ), - esc_url( get_home_url() ), - get_bloginfo( 'name' ), - __( 'Powered By', 'greenlet' ), - __( 'Greenlet', 'greenlet' ) - ); - echo wp_kses_post( apply_filters( 'greenlet_copyright', $text ) ); -} - /** * Display the footer. * @@ -39,11 +20,6 @@ function greenlet_footer_text() { * @return void */ function greenlet_do_footer() { - $cover_rows = gl_get_option( 'footer_layout', greenlet_cover_layout_defaults( 'footer' ) ); - $last_footer = count( $cover_rows ); - - add_action( "greenlet_after_footer_{$last_footer}_columns", 'greenlet_footer_text' ); - greenlet_cover( 'footer' ); } @@ -52,7 +28,7 @@ function greenlet_do_footer() { */ function greenlet_to_top_button() { if ( false !== gl_get_option( 'to_top', '1' ) ) { - echo ''; } diff --git a/library/frontend/main-structure.php b/library/frontend/main-structure.php index aef34e3..883c9e1 100644 --- a/library/frontend/main-structure.php +++ b/library/frontend/main-structure.php @@ -13,16 +13,16 @@ add_action( 'pre_get_posts', 'greenlet_set_query' ); add_action( 'greenlet_main_container', 'greenlet_do_main_container' ); -add_action( 'greenlet_before_loop', 'greenlet_breadcrumb', 2 ); -add_action( 'greenlet_before_loop', 'greenlet_archive_header_template' ); +add_action( 'greenlet_before_loop', 'greenlet_do_before' ); add_action( 'greenlet_archive_header', 'greenlet_do_archive_header' ); add_action( 'greenlet_loop', 'greenlet_meta_icons' ); add_action( 'greenlet_loop', 'greenlet_do_loop' ); add_action( 'greenlet_entry_header', 'greenlet_do_entry_header' ); add_action( 'greenlet_entry_content', 'greenlet_do_entry_content' ); add_action( 'greenlet_entry_footer', 'greenlet_do_entry_footer' ); -add_action( 'greenlet_after_entry', 'greenlet_comments_template' ); +add_action( 'greenlet_after_loop', 'greenlet_do_after' ); add_action( 'greenlet_post_meta', 'greenlet_post_meta' ); +add_action( 'greenlet_post_author_info', 'greenlet_post_author_info' ); add_action( 'greenlet_before_while', 'greenlet_posts_open' ); add_action( 'greenlet_after_endwhile', 'greenlet_posts_close' ); add_action( 'greenlet_after_endwhile', 'greenlet_paging_nav' ); @@ -171,12 +171,13 @@ function greenlet_do_main_container() { } /** - * Renders breadcrumb. + * Render breadcrumb. * * @since 1.0.0 + * @param string $separator Separator. * @return void */ -function greenlet_breadcrumb() { +function greenlet_breadcrumb( $separator ) { if ( ! is_front_page() && ( false !== gl_get_option( 'breadcrumb', '1' ) ) ) { do_action( 'greenlet_before_breadcrumb' ); @@ -200,7 +201,7 @@ function greenlet_breadcrumb() { } elseif ( function_exists( 'breadcrumbs_everywhere' ) ) { breadcrumbs_everywhere(); } else { - get_template_part( 'templates/breadcrumb' ); + get_template_part( 'templates/breadcrumb', null, array( 'separator' => $separator ) ); } do_action( 'greenlet_after_breadcrumb' ); @@ -350,44 +351,150 @@ function greenlet_run_loop( $query = null ) { } /** - * Renders post header. + * Render post content section like entry header, entry content, etc. * - * @since 1.0.0 - * @return void + * @since 2.5.0 + * @param string $section Content section. */ -function greenlet_do_entry_header() { - - if ( is_front_page() && is_singular() ) { +function greenlet_render_content_section( $section ) { + $content_layout = greenlet_get_content_layout(); + if ( ! isset( $content_layout[ $section ] ) ) { return; } - greenlet_markup( 'entry-header', greenlet_attr( 'entry-header' ) ); + $markup = false; + if ( 'top' === $section ) { + $markup = array( 'entry-header', 'entry-header' ); + } elseif ( 'middle' === $section ) { + $markup = array( 'entry-content', 'entry-content clearfix' ); + } elseif ( 'bottom' === $section ) { + $markup = array( 'entry-footer', 'entry-footer' ); + } - // If single page, display title. Else, display title in a link. - if ( is_singular() ) { - printf( '

', wp_kses( greenlet_attr( 'entry-title' ), null ) ); - the_title(); - echo '

'; - } else { - printf( '

', wp_kses( greenlet_attr( 'entry-title' ), null ) ); - $title = get_the_title(); + $has_items = false; + foreach ( $content_layout[ $section ] as $item ) { + if ( ! isset( $item['visible'] ) || ! ! $item['visible'] ) { + $has_items = true; + break; + } + } - if ( empty( $title ) ) { - ?> - - - - ', wp_kses( greenlet_attr( 'entry-title' ), null ) ); + the_title(); + echo '

'; + } else { + printf( '

', wp_kses( greenlet_attr( 'entry-title' ), null ) ); + $title = get_the_title(); + + if ( empty( $title ) ) { + ?> + + + + '; + } + } elseif ( 'meta' === $item['id'] ) { + do_action( 'greenlet_post_meta', $item['meta']['layout']['val'] ); + } elseif ( 'image' === $item['id'] ) { + if ( is_single() || is_page() ) { + if ( has_post_thumbnail() ) { + greenlet_markup( 'featured-image', greenlet_attr( 'featured-image' ) ); + the_post_thumbnail(); + greenlet_markup_close(); + } + } else { + // If the post has a thumbnail and not password protected, display. + if ( has_post_thumbnail() && ! post_password_required() ) { + greenlet_markup( 'entry-thumbnail', greenlet_attr( 'entry-thumbnail' ) ); + echo ''; + the_post_thumbnail( 'medium' ); + echo ''; + greenlet_markup_close(); + } + } + } elseif ( 'content' === $item['id'] ) { + if ( is_single() || is_page() ) { + the_content(); + apply_filters( 'greenlet_page_break', wp_link_pages() ); + } else { + global $post, $excerpt_length, $read_more; + $is_more = strpos( $post->post_content, '' ); + $more = '' . gl_get_option( 'read_more', __( 'continue reading', 'greenlet' ) ) . ''; + + $read_more = $item['meta']['read_more']['val']; + + if ( 'full' === $item['meta']['display']['val'] ) { + the_content(); + } elseif ( $is_more ) { + the_content( $more ); + } elseif ( 0 !== $item['meta']['excerpt_length']['val'] ) { + $excerpt_length = $item['meta']['excerpt_length']['val']; + the_excerpt(); + } + } + } elseif ( 'author' === $item['id'] ) { + do_action( 'greenlet_post_author_info', $item['meta']['layout']['val'] ); + } elseif ( 'comments' === $item['id'] ) { + comments_template(); } - echo '

'; } - $show_meta = gl_get_option( 'show_meta', array( 'sticky', 'author', 'date', 'cats', 'tags', 'reply' ) ); - do_action( 'greenlet_post_meta', $show_meta ); + if ( ( false !== $markup ) && $has_items ) { + greenlet_markup_close(); + } +} - greenlet_markup_close(); +/** + * Render sections before main loop. + * + * @since 2.5.0 + */ +function greenlet_do_before() { + greenlet_render_content_section( 'above' ); +} + +/** + * Render sections after main loop. + * + * @since 2.5.0 + */ +function greenlet_do_after() { + greenlet_render_content_section( 'below' ); +} + +/** + * Render post header. + * + * @since 1.0.0 + * @return void + */ +function greenlet_do_entry_header() { + + if ( is_front_page() && is_singular() ) { + return; + } + + greenlet_render_content_section( 'top' ); } /** @@ -437,7 +544,7 @@ function greenlet_meta_icons() { } /** - * Renders post meta. + * Render post meta. * * @since 1.0.0 * @param array $show_meta Meta info display details. @@ -453,19 +560,22 @@ function greenlet_post_meta( $show_meta ) { ), ); - if ( get_post_type() === 'post' ) { - // If the post is sticky, mark it. - if ( is_sticky() && in_array( 'sticky', $show_meta, true ) ) { + $cat_list = get_the_category_list( ', ' ); + $tag_list = get_the_tag_list( '', ', ' ); + + foreach ( $show_meta as $item ) { + if ( isset( $item['visible'] ) && ! $item['visible'] ) { + continue; + } + + if ( ( 'sticky' === $item['id'] ) && is_sticky() ) { printf( '
  • %s
  • ', wp_kses( greenlet_attr( 'meta-featured-post list-inline-item' ), null ), 'pin', esc_html__( 'Featured', 'greenlet' ) ); - } - - // Get the post author. - if ( in_array( 'author', $show_meta, true ) ) { + } elseif ( 'author' === $item['id'] ) { printf( '
  • ', wp_kses( greenlet_attr( 'meta-author list-inline-item' ), null ), @@ -473,52 +583,35 @@ function greenlet_post_meta( $show_meta ) { esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ), get_the_author() ); - } - - // Get the date. - if ( in_array( 'date', $show_meta, true ) ) { + } elseif ( 'date' === $item['id'] ) { printf( '
  • %s
  • ', wp_kses( greenlet_attr( 'meta-date list-inline-item' ), null ), 'date', get_the_date() ); - } - - // Get the date. - if ( in_array( 'mod', $show_meta, true ) ) { + } elseif ( 'mod' === $item['id'] ) { printf( '
  • %s
  • ', wp_kses( greenlet_attr( 'meta-modified list-inline-item' ), null ), 'clock', get_the_modified_date() // phpcs:ignore ); - } - - // The categories. - $category_list = get_the_category_list( ', ' ); - if ( $category_list && in_array( 'cats', $show_meta, true ) ) { + } elseif ( ( 'cats' === $item['id'] ) && $cat_list ) { printf( '
  • %s
  • ', wp_kses( greenlet_attr( 'meta-categories list-inline-item' ), null ), 'folder', - wp_kses( $category_list, $term_list_tags ) + wp_kses( $cat_list, $term_list_tags ) ); - } - - // The tags. - $tag_list = get_the_tag_list( '', ', ' ); - if ( $tag_list && in_array( 'tags', $show_meta, true ) ) { + } elseif ( ( 'tags' === $item['id'] ) && $tag_list ) { printf( '
  • %s
  • ', wp_kses( greenlet_attr( 'meta-tags list-inline-item' ), null ), 'tag', wp_kses( $tag_list, $term_list_tags ) ); - } - - // Comments link. - if ( comments_open() && in_array( 'reply', $show_meta, true ) ) { + } elseif ( ( 'reply' === $item['id'] ) && comments_open() ) { printf( '
  • ', wp_kses( greenlet_attr( 'meta-reply list-inline-item' ), null ), @@ -527,108 +620,59 @@ function greenlet_post_meta( $show_meta ) { comments_popup_link( __( 'Leave a comment', 'greenlet' ), __( 'One comment', 'greenlet' ), __( 'View all % comments', 'greenlet' ) ); echo '
  • '; } + } - // Edit link. - if ( is_user_logged_in() && current_user_can( 'edit_posts' ) && ! is_customize_preview() ) { - printf( '
  • ', wp_kses( greenlet_attr( 'meta-edit list-inline-item' ), null ) ); - edit_post_link( __( 'Edit', 'greenlet' ) ); - echo '
  • '; - } + // Edit link. + if ( is_user_logged_in() && current_user_can( 'edit_posts' ) && ! is_customize_preview() ) { + printf( '
  • ', wp_kses( greenlet_attr( 'meta-edit list-inline-item' ), null ) ); + edit_post_link( __( 'Edit', 'greenlet' ) ); + echo '
  • '; } greenlet_markup_close(); } /** - * Renders post content. + * Render post content. * * @since 1.0.0 * @return void */ function greenlet_do_entry_content() { - - greenlet_markup( 'entry-content', greenlet_attr( 'entry-content clearfix' ) ); - - if ( is_single() || is_page() ) { - - if ( has_post_thumbnail() ) { - greenlet_markup( 'featured-image', greenlet_attr( 'featured-image' ) ); - the_post_thumbnail(); - greenlet_markup_close(); - } - - the_content(); - apply_filters( 'greenlet_page_break', wp_link_pages() ); - } else { - - $excerpt_type = gl_get_option( 'excerpt_type', 'excerpt' ); - $show_image = gl_get_option( 'featured_image', '1' ); - - global $post; - $is_more = strpos( $post->post_content, '' ); - $more = '' . gl_get_option( 'read_more', __( 'continue reading', 'greenlet' ) ) . ''; - - // If the post has a thumbnail and not password protected, display. - if ( ( false !== $show_image ) && has_post_thumbnail() && ! post_password_required() ) { - - greenlet_markup( 'entry-thumbnail', greenlet_attr( 'entry-thumbnail' ) ); - echo ''; - the_post_thumbnail( 'medium' ); - echo ''; - greenlet_markup_close(); - } - - if ( 'full' === $excerpt_type ) { - the_content(); - } elseif ( $is_more ) { - the_content( $more ); - } elseif ( 0 !== greenlet_excerpt_length( 55 ) ) { - the_excerpt(); - } - } - - greenlet_markup_close(); + greenlet_render_content_section( 'middle' ); } /** - * Renders post footer. + * Render post footer. * * @since 1.0.0 * @return void */ function greenlet_do_entry_footer() { + greenlet_render_content_section( 'bottom' ); +} - $show_author = gl_get_option( 'show_author', array( 'name', 'image', 'bio' ) ); - - $name = null; - $image = null; - $bio = null; - - if ( is_array( $show_author ) && count( $show_author ) > 0 ) { - $name = in_array( 'name', $show_author, true ) ? true : false; - $image = in_array( 'image', $show_author, true ) ? true : false; - $bio = in_array( 'bio', $show_author, true ) ? true : false; - } - - // If we have a single post. - if ( is_single() && ( $name || $image || $bio ) ) { - - greenlet_markup( 'entry-footer', greenlet_attr( 'entry-footer' ) ); - - if ( $image ) { +/** + * Render author info. + * + * @since 2.5.0 + * @param array $author_items Author info display items. + * @return void + */ +function greenlet_post_author_info( $author_items ) { + foreach ( $author_items as $item ) { + if ( isset( $item['visible'] ) && ! $item['visible'] ) { + continue; + } + if ( 'image' === $item['id'] ) { $size = apply_filters( 'greenlet_author_bio_avatar_size', 56 ); printf( '
    %s
    ', wp_kses( greenlet_attr( 'author-avatar' ), null ), get_avatar( get_the_author_meta( 'user_email' ), $size ) ); - } - - printf( '
    ', wp_kses( greenlet_attr( 'author-description' ), null ) ); - - if ( $name ) { - + } elseif ( 'name' === $item['id'] ) { $author_url = esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ); $author = sprintf( @@ -639,20 +683,13 @@ function greenlet_do_entry_footer() { get_the_author() ); - $heading = sprintf( '

    %s %s

    ', greenlet_attr( 'author-heading' ), __( 'Author:', 'greenlet' ), $author ); + $heading = sprintf( '

    %s

    ', greenlet_attr( 'author-heading' ), $author ); echo apply_filters( 'greenlet_author', $heading, $author ); // phpcs:ignore - } - - if ( $bio && get_the_author_meta( 'description' ) ) { - + } elseif ( ( 'bio' === $item['id'] ) && get_the_author_meta( 'description' ) ) { $desc = sprintf( '

    %s

    ', greenlet_attr( 'author-bio' ), get_the_author_meta( 'description' ) ); echo apply_filters( 'greenlet_author_description', $desc ); // phpcs:ignore } - - echo '
    '; - - greenlet_markup_close(); } } @@ -668,9 +705,9 @@ function greenlet_excerpt_more( $more ) { return $more; } - global $post; - $more = '' . gl_get_option( 'read_more', __( 'continue reading', 'greenlet' ) ) . ''; - return apply_filters( 'greenlet_more_link', '' . $more . '' ); + global $post, $read_more; + $more = '' . $read_more . ''; + return apply_filters( 'greenlet_more_link', '' . $more . '' ); } /** @@ -685,9 +722,8 @@ function greenlet_excerpt_length( $length ) { return $length; } - $length = gl_get_option( 'excerpt_length', 55 ); - $length = apply_filters( 'greenlet_excerpt_length', $length ); - return $length; + global $excerpt_length; + return $excerpt_length; } /** @@ -716,21 +752,6 @@ function greenlet_posts_close() { } } -/** - * Renders comment template. - * - * @since 1.0.0 - * @return void - */ -function greenlet_comments_template() { - $show = gl_get_option( 'show_comments', array( 'posts' ) ); - if ( comments_open() ) { - if ( ( is_page() && in_array( 'pages', $show, true ) ) || ( is_single() && in_array( 'posts', $show, true ) ) ) { - comments_template(); - } - } -} - /** * Renders pagination navigation. * @@ -739,8 +760,16 @@ function greenlet_comments_template() { * @return void */ function greenlet_paging_nav( $query = null ) { + if ( is_singular() ) { + return; + } + + $cl = greenlet_get_content_layout(); + if ( ! isset( $cl['below'] ) || ( count( $cl['below'] ) < 1 ) || ! isset( $cl['below'][0]['id'] ) || ( isset( $cl['below'][0]['visible'] ) && ! $cl['below'][0]['visible'] ) ) { + return; + } - $format = gl_get_option( 'paging_nav', 'number' ); + $format = $cl['below'][0]['meta']['format']['val']; $pag_attr = greenlet_attr( "pagination {$format}" ); if ( empty( $query ) ) { @@ -1073,9 +1102,9 @@ function greenlet_search_form() { $html = ''; return $html; diff --git a/library/frontend/scripts.php b/library/frontend/scripts.php index d9104df..529d299 100644 --- a/library/frontend/scripts.php +++ b/library/frontend/scripts.php @@ -72,6 +72,10 @@ function greenlet_scripts() { $styles_href = GREENLET_STYLE_URL . '/styles' . $min . '.css'; greenlet_enqueue_style( 'greenlet-styles', $styles_href ); + + if ( 'bootstrap' === $css_framework ) { + greenlet_enqueue_style( 'bootstrap-extra', GREENLET_STYLE_URL . '/bootstrap-extra' . $min . '.css' ); + } } } diff --git a/library/init.php b/library/init.php index e0070d8..8a813d6 100644 --- a/library/init.php +++ b/library/init.php @@ -46,7 +46,7 @@ function greenlet_constants() { define( 'GREENLET_CHILD_URL', get_stylesheet_directory_uri() ); // Define other constants. - define( 'GREENLET_VERSION', '2.4.0' ); + define( 'GREENLET_VERSION', '2.5.0' ); } add_action( 'greenlet_init', 'greenlet_constants' ); @@ -78,6 +78,7 @@ function greenlet_load_framework() { require_once GREENLET_LIBRARY_DIR . '/common/helpers.php'; require_once GREENLET_LIBRARY_DIR . '/common/setup.php'; require_once GREENLET_LIBRARY_DIR . '/common/class-columns.php'; + require_once GREENLET_LIBRARY_DIR . '/common/deprecated.php'; require_once GREENLET_LIBRARY_DIR . '/pro/class-pro.php'; require_once GREENLET_LIBRARY_DIR . '/addons/colorwings/pro/class-pro.php'; diff --git a/library/languages/fr_FR.mo b/library/languages/fr_FR.mo index 25ac1f5..f27794d 100644 Binary files a/library/languages/fr_FR.mo and b/library/languages/fr_FR.mo differ diff --git a/library/languages/fr_FR.po b/library/languages/fr_FR.po index b0de8f9..174783e 100644 --- a/library/languages/fr_FR.po +++ b/library/languages/fr_FR.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Greenlet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-11-10 22:01+0000\n" -"PO-Revision-Date: 2021-01-27 18:37+0000\n" +"PO-Revision-Date: 2021-02-06 18:08+0000\n" "Last-Translator: Greenlet Team \n" "Language-Team: French (France)\n" "Language: fr_FR\n" @@ -14,12 +14,12 @@ msgstr "" "X-Generator: Loco https://localise.biz/\n" "X-Loco-Version: 2.4.6; wp-5.6" -#: library/frontend/main-structure.php:238 -#: library/frontend/main-structure.php:246 -#: library/frontend/main-structure.php:254 -#: library/frontend/main-structure.php:262 -#: library/frontend/main-structure.php:265 -#: library/frontend/main-structure.php:268 +#: library/frontend/main-structure.php:239 +#: library/frontend/main-structure.php:247 +#: library/frontend/main-structure.php:255 +#: library/frontend/main-structure.php:263 +#: library/frontend/main-structure.php:266 +#: library/frontend/main-structure.php:269 msgid " Archives" msgstr "Les archives" @@ -37,7 +37,7 @@ msgid_plural "%d Items" msgstr[0] "%d élément" msgstr[1] "%d éléments" -#: library/frontend/main-structure.php:788 +#: library/frontend/main-structure.php:817 msgid "« Newer Posts" msgstr "« Messages plus récents" @@ -45,16 +45,16 @@ msgstr "« Messages plus récents" msgid "← Older Comments" msgstr "← Commentaires plus anciens" -#: library/backend/assets/js/greenlet-controls.js:1632 -#: library/backend/assets/js/greenlet-controls.js:1774 +#: library/backend/assets/js/greenlet-controls.js:1068 +#: library/backend/assets/js/greenlet-controls.js:1210 msgid "Add Header" msgstr "Ajouter un en-tête" -#: library/backend/assets/js/greenlet-controls.js:1283 +#: library/backend/assets/js/greenlet-controls.js:713 msgid "Add/Edit widgets" msgstr "Ajouter / modifier des widgets" -#: library/backend/assets/js/greenlet-controls.js:1764 +#: library/backend/assets/js/greenlet-controls.js:1200 msgid "Advanced" msgstr "Avancée" @@ -79,24 +79,24 @@ msgstr "Disposition des archives" msgid "Archive page Products Count." msgstr "Page d'archive Nombre de produits." -#: library/backend/customizer/options.php:442 +#: library/common/helpers.php:744 msgid "Author" msgstr "Auteur" -#: library/frontend/main-structure.php:642 -msgid "Author:" -msgstr "Auteur:" +#: library/common/helpers.php:729 +msgid "Author Info" +msgstr "Informations sur l'auteur" -#: library/backend/customizer/options.php:516 +#: library/common/helpers.php:738 msgid "Avatar" msgstr "Avatar" -#: library/frontend/footer-structure.php:55 -#: library/backend/customizer/options.php:606 +#: library/frontend/footer-structure.php:31 +#: library/backend/customizer/options.php:476 msgid "Back to top" msgstr "Retour au sommet" -#: library/backend/customizer/options.php:517 +#: library/common/helpers.php:739 msgid "Biographical Info" msgstr "Information biographique" @@ -110,17 +110,14 @@ msgid "Blog Settings" msgstr "Paramètres du blog" #: library/backend/helpers.php:208 -msgid "Bootstrap 4.5.3" -msgstr "Bootstrap 4.5.3" +#| msgid "Bootstrap 4.5.3" +msgid "Bootstrap 4.6.0" +msgstr "Bootstrap 4.6.0" -#: library/backend/customizer/options.php:484 +#: library/common/helpers.php:730 msgid "Breadcrumb" msgstr "Breadcrumb" -#: library/backend/customizer/options.php:498 -msgid "Breadcrumb Separator" -msgstr "Breadcrumb Séparateur" - #: library/pro/backend/options.php:165 msgid "Button Background" msgstr "Arrière-plan du bouton" @@ -137,7 +134,7 @@ msgstr "Boutons" msgid "Can not install plugin" msgstr "Impossible d'installer le plugin" -#: library/backend/customizer/options.php:445 +#: library/common/helpers.php:747 msgid "Categories" msgstr "Catégories" @@ -154,7 +151,7 @@ msgid_plural "%s comments" msgstr[0] "%s commentaires" msgstr[1] "%s commentaires" -#: library/backend/customizer/options.php:447 +#: library/common/helpers.php:732 library/common/helpers.php:749 msgid "Comments" msgstr "commentaires" @@ -162,17 +159,11 @@ msgstr "commentaires" msgid "Comments are closed." msgstr "Les commentaires sont fermés." -#: library/backend/customizer/options.php:385 -msgid "Content display" -msgstr "Affichage du contenu" - -#: library/frontend/main-structure.php:569 -#: library/frontend/main-structure.php:672 -#: library/backend/customizer/options.php:456 +#: library/common/helpers.php:860 library/frontend/main-structure.php:442 msgid "continue reading" msgstr "continuer la lecture" -#: library/backend/customizer/options.php:461 +#: library/common/helpers.php:765 msgid "Continue reading text" msgstr "Continuer la lecture du texte" @@ -202,40 +193,44 @@ msgstr "Défaut" msgid "Default Page Layout" msgstr "Mise en page par défaut" -#: library/backend/customizer/options.php:658 +#: library/backend/customizer/options.php:544 msgid "Defer CSS" msgstr "Différer CSS" -#: library/backend/customizer/options.php:700 +#: library/backend/customizer/options.php:586 msgid "Defer WP Block Editor CSS" msgstr "Différer le CSS de l'éditeur de blocs WP" -#: library/backend/assets/js/greenlet-controls.js:1762 +#: library/backend/assets/js/greenlet-controls.js:1198 msgid "Delete" msgstr "Effacer" -#: library/common/helpers.php:538 +#: library/common/helpers.php:542 msgid "Disable" msgstr "Désactiver" -#: library/backend/customizer/options.php:686 +#: library/backend/customizer/options.php:572 msgid "Disable WP Block Editor Style" msgstr "Désactiver le style de l'éditeur de blocs WP" +#: library/common/helpers.php:769 library/common/helpers.php:777 +msgid "Display Format" +msgstr "Format d'affichage" + #: library/backend/options/class-options-admin.php:210 -#: library/backend/assets/js/greenlet-controls.js:276 +#: library/backend/assets/js/greenlet-controls.js:267 msgid "Documentation" msgstr "Documentation" -#: library/frontend/main-structure.php:534 +#: library/frontend/main-structure.php:628 msgid "Edit" msgstr "Éditer" -#: library/backend/customizer/options.php:564 +#: library/backend/customizer/options.php:506 msgid "Editor Styles" msgstr "Styles de l'éditeur" -#: library/common/helpers.php:559 +#: library/common/helpers.php:563 msgid "Effect" msgstr "Effet" @@ -243,15 +238,11 @@ msgstr "Effet" msgid "Eg: 4-8 or 9-3" msgstr "Par exemple: 4-8 ou 9-3" -#: library/common/helpers.php:537 +#: library/common/helpers.php:541 msgid "Enable" msgstr "Activer" -#: library/backend/customizer/options.php:485 -msgid "Enable breadcrumb navigation" -msgstr "Activer la navigation au fil d'Ariane" - -#: library/backend/customizer/options.php:550 +#: library/backend/customizer/options.php:444 msgid "Enable Schema Markup" msgstr "Activer le balisage de schéma" @@ -260,7 +251,7 @@ msgid "Enhance Greenlet with free plugins" msgstr "Améliorez Greenlet avec des plugins gratuits" #: library/backend/customizer/custom-controls/class-control-template.php:97 -#: library/backend/assets/js/greenlet-controls.js:1729 +#: library/backend/assets/js/greenlet-controls.js:1165 msgid "Enter column numbers separated by hyphen." msgstr "Saisissez les numéros de colonne séparés par un tiret." @@ -272,19 +263,16 @@ msgstr "Entrez l'URL si un framework CDN ou CSS différent" msgid "Error 404 - Nothing Found" msgstr "Erreur 404 - Rien trouvé" -#: library/backend/customizer/options.php:388 +#: library/common/helpers.php:771 msgid "Excerpt (short text extract)" msgstr "Extrait (court extrait de texte)" -#: library/backend/customizer/options.php:403 -msgid "Excerpt length" +#: library/common/helpers.php:761 +#| msgid "Excerpt length" +msgid "Excerpt Length" msgstr "Extrait longueur" -#: library/addons/colorwings/class-colorwings-admin.php:100 -msgid "Extra Styles" -msgstr "Styles supplémentaires" - -#: library/backend/assets/js/greenlet-controls.js:1513 +#: library/backend/assets/js/greenlet-controls.js:949 msgid "" "Extra widget areas are added. Please save and refresh this page to reflect " "new Widget areas" @@ -292,15 +280,11 @@ msgstr "" "Des zones de widgets supplémentaires sont ajoutées. Veuillez enregistrer et " "actualiser cette page pour refléter les nouvelles zones de widget" -#: library/frontend/main-structure.php:463 +#: library/common/helpers.php:743 library/frontend/main-structure.php:576 msgid "Featured" msgstr "En vedette" -#: library/backend/customizer/options.php:441 -msgid "Featured (Sticky)" -msgstr "En vedette (collant)" - -#: library/backend/customizer/options.php:371 +#: library/common/helpers.php:727 msgid "Featured Image" msgstr "L'image sélectionnée" @@ -314,23 +298,23 @@ msgstr "Disposition du pied de page" msgid "Framework" msgstr "Cadre" -#: library/common/helpers.php:563 +#: library/common/helpers.php:567 msgid "From Bottom" msgstr "Du bas" -#: library/common/helpers.php:565 +#: library/common/helpers.php:569 msgid "From Left" msgstr "De gauche" -#: library/common/helpers.php:564 +#: library/common/helpers.php:568 msgid "From Right" msgstr "De droite" -#: library/common/helpers.php:562 +#: library/common/helpers.php:566 msgid "From Top" msgstr "De haut" -#: library/backend/customizer/options.php:389 +#: library/common/helpers.php:772 msgid "Full Content" msgstr "Contenu complet" @@ -357,8 +341,7 @@ msgid "Get Pro Version" msgstr "Obtenez la version Pro" #. Name of the theme -#: library/frontend/footer-structure.php:29 -#: library/backend/editor/class-editor.php:217 +#: templates/copyright.php:15 library/backend/editor/class-editor.php:217 msgid "Greenlet" msgstr "Greenlet" @@ -422,7 +405,7 @@ msgstr "la grille" msgid "Header Layout" msgstr "Disposition des en-têtes" -#: library/backend/assets/js/greenlet-controls.js:1764 +#: library/backend/assets/js/greenlet-controls.js:1200 msgid "Hide" msgstr "Cacher" @@ -450,29 +433,29 @@ msgstr "https://greenletwp.com/about/" msgid "https://somecdn.com/css_framework.css" msgstr "https://certainscdn.com/css_framework.css" -#: library/backend/customizer/options.php:591 +#: library/backend/customizer/options.php:461 msgid "Icon" msgstr "Icône" -#: library/backend/customizer/options.php:424 +#: library/common/helpers.php:783 msgid "Infinite Scroll" msgstr "DEFILEMENT infini" -#: library/backend/assets/js/greenlet-preview.js:173 +#: library/backend/assets/js/greenlet-preview.js:176 msgid "Infinite scrolling is temporarily disabled to edit footer." msgstr "" "Le défilement infini est temporairement désactivé pour modifier le pied de " "page." -#: library/backend/customizer/options.php:644 +#: library/backend/customizer/options.php:530 msgid "Inline CSS" msgstr "CSS en ligne" -#: library/backend/customizer/options.php:672 +#: library/backend/customizer/options.php:558 msgid "Inline Javascript" msgstr "Javascript en ligne" -#: library/backend/customizer/options.php:714 +#: library/backend/customizer/options.php:600 msgid "Inline WP Block Editor CSS" msgstr "Éditeur de blocs WP en ligne CSS" @@ -481,7 +464,7 @@ msgid "It looks like nothing was found here. Maybe try a search?" msgstr "" "On dirait que rien n'a été trouvé ici. Peut-être essayer une recherche?" -#: library/backend/assets/js/greenlet-controls.js:1397 +#: library/backend/assets/js/greenlet-controls.js:860 msgid "Items" msgstr "Articles" @@ -497,11 +480,11 @@ msgstr "Disposition" msgid "Layout variation for Post list." msgstr "Variante de mise en page pour la liste des articles." -#: library/frontend/main-structure.php:527 +#: library/frontend/main-structure.php:620 msgid "Leave a comment" msgstr "laissez un commentaire" -#: library/backend/assets/js/greenlet-controls.js:1752 +#: library/backend/assets/js/greenlet-controls.js:1188 msgid "Left" msgstr "La gauche" @@ -509,41 +492,45 @@ msgstr "La gauche" msgid "List" msgstr "liste" -#: library/backend/customizer/options.php:701 +#: library/common/helpers.php:731 +msgid "List Title" +msgstr "Titre de la liste" + +#: library/backend/customizer/options.php:587 msgid "Load Block Editor CSS files after page load." msgstr "" "Chargez les fichiers CSS de l'éditeur de blocs après le chargement de la " "page." -#: library/frontend/main-structure.php:1031 +#: library/frontend/main-structure.php:1060 msgid "Load More" msgstr "Charger plus" -#: library/backend/customizer/options.php:423 +#: library/common/helpers.php:782 msgid "Load More Button" msgstr "Bouton Charger plus" -#: library/backend/customizer/options.php:659 +#: library/backend/customizer/options.php:545 msgid "Load theme CSS files after page load." msgstr "Chargez les fichiers CSS de thème après le chargement de la page." -#: library/backend/customizer/options.php:645 +#: library/backend/customizer/options.php:531 msgid "Load theme CSS files inline, saves network requests." msgstr "" "Charger les fichiers CSS de thème en ligne, enregistre les requêtes réseau." -#: library/backend/customizer/options.php:673 +#: library/backend/customizer/options.php:559 msgid "Load theme JS files inline, saves a network request." msgstr "" "Charger les fichiers JS de thème en ligne, enregistre une demande réseau." -#: library/backend/customizer/options.php:715 +#: library/backend/customizer/options.php:601 msgid "Load WP Block Editor CSS files inline, saves network requests." msgstr "" "Charger les fichiers CSS WP Block Editor en ligne, enregistre les demandes " "réseau." -#: library/common/helpers.php:516 +#: library/common/helpers.php:520 msgid "Logo" msgstr "Logo" @@ -551,13 +538,13 @@ msgstr "Logo" msgid "Logo, Title & Tagline" msgstr "Logo, titre et slogan" -#: library/backend/assets/js/greenlet-controls.js:1652 +#: library/backend/assets/js/greenlet-controls.js:1088 msgid "Main" msgstr "Principale" #: library/backend/helpers.php:22 -#: library/backend/assets/js/greenlet-controls.js:385 -#: library/backend/assets/js/greenlet-controls.js:2020 +#: library/backend/assets/js/greenlet-controls.js:376 +#: library/backend/assets/js/greenlet-controls.js:1740 msgid "Main Content" msgstr "Contenu principal" @@ -578,7 +565,7 @@ msgstr "Styles de disposition principaux" msgid "Main Menu" msgstr "Menu principal" -#: library/backend/assets/js/greenlet-controls.js:1652 +#: library/backend/assets/js/greenlet-controls.js:1088 msgid "Make this Main" msgstr "Rendre ce principal" @@ -586,25 +573,25 @@ msgstr "Rendre ce principal" msgid "Markup is not allowed in CSS." msgstr "Le balisage n'est pas autorisé dans CSS." -#: library/backend/customizer/options.php:565 +#: library/backend/customizer/options.php:507 msgid "Match the Post editor styles to the frontend styles." msgstr "" "Faites correspondre les styles de l'éditeur de publication aux styles " "frontaux." -#: library/common/helpers.php:523 library/common/helpers.php:528 +#: library/common/helpers.php:527 library/common/helpers.php:532 msgid "Menu" msgstr "Menu" -#: library/common/helpers.php:545 +#: library/common/helpers.php:549 msgid "Menu Toggler" msgstr "Menu Toggler" -#: library/common/helpers.php:534 +#: library/common/helpers.php:538 msgid "Mobile toggler" msgstr "Bascule mobile" -#: templates/breadcrumb.php:64 library/frontend/main-structure.php:265 +#: templates/breadcrumb.php:64 library/frontend/main-structure.php:266 msgctxt "Monthly archives date format" msgid "F Y" msgstr "F Y" @@ -617,7 +604,7 @@ msgstr "Plus d'options avec Greenlet Pro" msgid "More options with Pro version" msgstr "Plus d'options avec la version Pro" -#: library/backend/customizer/options.php:515 +#: library/common/helpers.php:737 msgid "Name" msgstr "Nom" @@ -625,17 +612,17 @@ msgstr "Nom" msgid "Newer Comments →" msgstr "Commentaires récents →" -#: library/backend/assets/js/greenlet-controls.js:1750 +#: library/backend/assets/js/greenlet-controls.js:1186 msgid "No" msgstr "Non" -#: library/common/helpers.php:531 +#: library/common/helpers.php:535 msgid "No menus found. Create new menu under menus screen, save and reload." msgstr "" "Aucun menu trouvé. Créez un nouveau menu sous l'écran des menus, enregistrez " "et rechargez." -#: library/common/helpers.php:586 +#: library/common/helpers.php:590 msgid "" "No templates found in your child theme. Add PHP templates under " "child_theme/templates/" @@ -647,10 +634,6 @@ msgstr "" msgid "Nothing found!" msgstr "Rien n'a été trouvé!" -#: library/backend/customizer/options.php:404 -msgid "Number of characters in excerpts for post list." -msgstr "Nombre de caractères dans les extraits de la liste des articles." - #: library/backend/customizer/options.php:357 msgid "Number of posts in a single row (columns)." msgstr "Nombre de messages dans une seule ligne (colonnes)." @@ -673,19 +656,19 @@ msgstr "" "Nombre de barres latérales à enregistrer pour le conteneur principal de la " "page" -#: library/backend/customizer/options.php:421 +#: library/common/helpers.php:780 msgid "Numbered" msgstr "Numéroté" -#: library/backend/customizer/options.php:422 +#: library/common/helpers.php:781 msgid "Numbered (Ajax)" msgstr "Numéroté (Ajax)" -#: library/frontend/main-structure.php:789 +#: library/frontend/main-structure.php:818 msgid "Older Posts »" msgstr "Articles plus anciens »" -#: library/frontend/main-structure.php:527 +#: library/frontend/main-structure.php:620 msgid "One comment" msgstr "un commentaire" @@ -693,7 +676,7 @@ msgstr "un commentaire" msgid "Option available with Pro version" msgstr "Option disponible avec la version Pro" -#: library/backend/customizer/options.php:573 +#: library/backend/customizer/options.php:429 msgid "Others" msgstr "Autres" @@ -701,41 +684,33 @@ msgstr "Autres" msgid "Page Layout" msgstr "Mise en page" -#: library/backend/customizer/options.php:535 -msgid "Pages" -msgstr "Des pages" +#: library/backend/customizer/options.php:419 +msgid "Page Sections" +msgstr "Sections de page" -#: library/backend/customizer/options.php:417 +#: library/common/helpers.php:733 msgid "Pagination" msgstr "Pagination" -#: library/backend/customizer/options.php:418 -msgid "Paging Navigation display format." -msgstr "Format d'affichage de la navigation de pagination." - -#: library/backend/customizer/options.php:630 +#: library/backend/customizer/options.php:516 #: library/backend/options/class-options-admin.php:141 msgid "Performance" msgstr "Performance" -#: library/common/helpers.php:578 +#: library/common/helpers.php:582 msgid "PHP Template" msgstr "Modèle PHP" -#: library/backend/assets/js/greenlet-controls.js:1198 +#: library/backend/assets/js/greenlet-controls.js:628 msgid "" "Please save and refresh this page to reflect the newly added Widget areas" msgstr "" "Veuillez enregistrer et actualiser cette page pour refléter les zones de " "widget nouvellement ajoutées" -#: library/backend/customizer/options.php:386 -msgid "Post content display format." -msgstr "Format d'affichage du contenu de l'article." - -#: library/backend/customizer/options.php:462 -msgid "Post excerpt more link text" -msgstr "Post extrait plus de texte du lien" +#: library/common/helpers.php:728 +msgid "Post Content" +msgstr "Publier un contenu" #: library/backend/customizer/options.php:312 msgid "Post List" @@ -745,11 +720,16 @@ msgstr "Liste des messages" msgid "Post List Layout" msgstr "Disposition de la liste des articles" -#: library/backend/customizer/options.php:534 -msgid "Posts" -msgstr "Des postes" +#: library/common/helpers.php:726 +msgid "Post Meta" +msgstr "Post Meta" + +#: library/backend/customizer/options.php:371 +#: library/backend/customizer/options.php:395 +msgid "Post Sections" +msgstr "Sections d'articles" -#: library/backend/customizer/options.php:687 +#: library/backend/customizer/options.php:573 msgid "Posts created with WP Block Editor may break, disable with caution." msgstr "" "Les publications créées avec WP Block Editor peuvent se casser, désactivez-" @@ -763,11 +743,11 @@ msgstr "Articles par page" msgid "Posts per row" msgstr "Messages par ligne" -#: library/frontend/footer-structure.php:28 +#: templates/copyright.php:14 msgid "Powered By" msgstr "Alimenté par" -#: library/backend/customizer/options.php:723 +#: library/backend/customizer/options.php:609 msgid "Presets" msgstr "Préconfigurations" @@ -791,11 +771,11 @@ msgstr "Présentation des résultats de recherche de produits" msgid "Product Tags Layout" msgstr "Présentation des étiquettes de produit" -#: library/backend/customizer/options.php:443 -msgid "Published Date" -msgstr "date de publication" +#: library/common/helpers.php:745 +msgid "Published" +msgstr "Publié" -#: library/common/helpers.php:555 +#: library/common/helpers.php:559 msgid "Query" msgstr "Requete" @@ -803,33 +783,33 @@ msgstr "Requete" msgid "Report a bug" msgstr "Signaler un bug" -#: library/backend/assets/js/greenlet-controls.js:1754 +#: library/backend/assets/js/greenlet-controls.js:1190 msgid "Right" msgstr "Droite" -#: library/backend/customizer/options.php:549 +#: library/backend/customizer/options.php:443 msgid "Schema Markup" msgstr "Balisage de schéma" -#: library/frontend/main-structure.php:1071 -#: library/frontend/main-structure.php:1076 -#: library/frontend/main-structure.php:1078 +#: library/frontend/main-structure.php:1100 +#: library/frontend/main-structure.php:1105 +#: library/frontend/main-structure.php:1107 msgid "Search" msgstr "Chercher" -#: library/frontend/main-structure.php:1076 +#: library/frontend/main-structure.php:1105 msgid "Search …" msgstr "Chercher …" -#: library/backend/customizer/options.php:587 +#: library/backend/customizer/options.php:457 msgid "Search button" msgstr "Bouton de recherche" -#: library/frontend/main-structure.php:1075 +#: library/frontend/main-structure.php:1104 msgid "Search for:" msgstr "Rechercher:" -#: library/backend/customizer/options.php:588 +#: library/backend/customizer/options.php:458 msgid "Search form submit button content." msgstr "Formulaire de recherche soumettre le contenu du bouton." @@ -837,13 +817,17 @@ msgstr "Formulaire de recherche soumettre le contenu du bouton." msgid "Search: " msgstr "Chercher:" -#: library/backend/assets/js/greenlet-controls.js:1689 +#: library/backend/assets/js/greenlet-controls.js:1125 msgid "Select Columns Layout" msgstr "Sélectionnez la disposition des colonnes" -#: library/backend/customizer/options.php:499 -msgid "Separator between links in breadcrumb. Eg: / or >" -msgstr "Séparateur entre les liens dans le fil d'Ariane. Par exemple: / ou >" +#: library/common/helpers.php:756 +msgid "Separator" +msgstr "Séparateur" + +#: library/common/helpers.php:757 +msgid "Separator between links. Eg: / or >" +msgstr "Séparateur entre les liens. Par exemple: / ou>" #: library/support/woocommerce/backend/options.php:133 msgid "Shop Design" @@ -857,35 +841,18 @@ msgstr "Disposition de la boutique" msgid "Shopping Cart" msgstr "Panier" -#: library/backend/assets/js/greenlet-controls.js:1764 +#: library/backend/assets/js/greenlet-controls.js:1200 msgid "Show" msgstr "Spectacle" -#: library/backend/customizer/options.php:513 -msgid "Show Author Info" -msgstr "Afficher les informations sur l'auteur" - -#: library/backend/customizer/options.php:621 +#: library/backend/customizer/options.php:491 msgid "Show back to top button at position." msgstr "Afficher le bouton de retour en haut à la position." -#: library/backend/customizer/options.php:607 +#: library/backend/customizer/options.php:477 msgid "Show back to top scroll button." msgstr "Afficher le bouton de défilement vers le haut." -#: library/backend/customizer/options.php:532 -msgid "Show Comments" -msgstr "Afficher les commentaires" - -#: library/backend/customizer/options.php:372 -msgid "Show featured image on post list and archives." -msgstr "" -"Afficher l'image sélectionnée sur la liste des publications et les archives." - -#: library/backend/customizer/options.php:439 -msgid "Show Meta Info" -msgstr "Afficher les méta-informations" - #: library/backend/customizer/options.php:55 msgid "Show Tagline" msgstr "Afficher le slogan" @@ -898,8 +865,8 @@ msgstr "Montrer le titre" msgid "Show your love" msgstr "Montre ton amour" -#: library/backend/assets/js/greenlet-controls.js:389 -#: library/backend/assets/js/greenlet-controls.js:2024 +#: library/backend/assets/js/greenlet-controls.js:380 +#: library/backend/assets/js/greenlet-controls.js:1744 msgid "Sidebar" msgstr "Barre latérale" @@ -909,11 +876,15 @@ msgstr "Barre latérale" msgid "Sidebar %s" msgstr "Barre latérale %s" -#: library/backend/customizer/options.php:420 +#: library/common/helpers.php:779 msgid "Simple" msgstr "Facile" -#: library/backend/customizer/options.php:470 +#: library/backend/customizer/options.php:405 +msgid "Single Page" +msgstr "Une seule page" + +#: library/backend/customizer/options.php:381 msgid "Single Post" msgstr "Poste unique" @@ -929,7 +900,7 @@ msgstr "Disposition du site." msgid "Skip to content" msgstr "Aller au contenu" -#: library/backend/assets/js/greenlet-controls.js:1685 +#: library/backend/assets/js/greenlet-controls.js:1121 msgid "Sticky" msgstr "Gluante" @@ -937,7 +908,11 @@ msgstr "Gluante" msgid "String is empty." msgstr "La chaîne est vide." -#: library/backend/assets/js/greenlet-controls.js:1729 +#: library/addons/colorwings/class-colorwings-admin.php:100 +msgid "Style Editor" +msgstr "Éditeur de style" + +#: library/backend/assets/js/greenlet-controls.js:1165 msgid "Sum should be" msgstr "La somme doit être" @@ -949,31 +924,35 @@ msgstr "La somme doit être de 12" msgid "Support forum" msgstr "Forum d'entraide" -#: library/backend/customizer/options.php:446 +#: library/common/helpers.php:748 msgid "Tags" msgstr "Mots clés" -#: library/common/helpers.php:550 +#: library/common/helpers.php:554 msgid "Target" msgstr "Cible" -#: library/common/helpers.php:583 +#: library/common/helpers.php:587 msgid "Template" msgstr "Modèle" -#: library/backend/customizer/options.php:590 +#: library/backend/customizer/options.php:460 msgid "Text" msgstr "Texte" -#: library/backend/customizer/options.php:738 +#: library/backend/customizer/options.php:624 #: library/backend/options/class-options-admin.php:142 msgid "Theme Presets" msgstr "Préréglages de thème" -#: library/frontend/main-structure.php:859 +#: library/frontend/main-structure.php:888 msgid "There are no posts meeting your criteria" msgstr "Aucun post ne correspond à vos critères" +#: library/common/helpers.php:725 +msgid "Title" +msgstr "Titre" + #: library/backend/customizer/options.php:66 msgid "Title Styles" msgstr "Styles de titre" @@ -983,15 +962,15 @@ msgstr "Styles de titre" msgid "Toggle Menu" msgstr "Basculer le menu" -#: library/backend/customizer/options.php:444 -msgid "Updated Date" -msgstr "Date de mise à jour" +#: library/common/helpers.php:746 +msgid "Updated" +msgstr "Actualisé" -#: library/backend/assets/js/greenlet-controls.js:1740 +#: library/backend/assets/js/greenlet-controls.js:1176 msgid "Vertical" msgstr "Verticale" -#: library/frontend/main-structure.php:527 +#: library/frontend/main-structure.php:620 #, php-format msgid "View all % comments" msgstr "Voir tous les % commentaires" @@ -1004,15 +983,15 @@ msgstr "Voir Panier d'achat" msgid "Visual Style Editor" msgstr "Éditeur de style visuel" -#: library/common/helpers.php:572 +#: library/common/helpers.php:576 msgid "Widgets" msgstr "Widgets" -#: library/frontend/footer-structure.php:25 +#: templates/copyright.php:11 msgid "Y" msgstr "Y" -#: templates/breadcrumb.php:68 library/frontend/main-structure.php:268 +#: templates/breadcrumb.php:68 library/frontend/main-structure.php:269 msgctxt "Yearly archives date format" msgid "Y" msgstr "Y" diff --git a/library/languages/greenlet.pot b/library/languages/greenlet.pot index c8af61b..211bfc4 100644 --- a/library/languages/greenlet.pot +++ b/library/languages/greenlet.pot @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: Greenlet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-01-27 18:34+0000\n" +"POT-Creation-Date: 2021-02-06 18:03+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Greenlet Team \n" "Language-Team: \n" @@ -15,12 +15,12 @@ msgstr "" "X-Generator: Loco https://localise.biz/\n" "X-Loco-Version: 2.3.1; wp-5.3" -#: library/frontend/main-structure.php:238 -#: library/frontend/main-structure.php:246 -#: library/frontend/main-structure.php:254 -#: library/frontend/main-structure.php:262 -#: library/frontend/main-structure.php:265 -#: library/frontend/main-structure.php:268 +#: library/frontend/main-structure.php:239 +#: library/frontend/main-structure.php:247 +#: library/frontend/main-structure.php:255 +#: library/frontend/main-structure.php:263 +#: library/frontend/main-structure.php:266 +#: library/frontend/main-structure.php:269 msgid " Archives" msgstr "" @@ -38,7 +38,7 @@ msgid_plural "%d Items" msgstr[0] "" msgstr[1] "" -#: library/frontend/main-structure.php:788 +#: library/frontend/main-structure.php:817 msgid "« Newer Posts" msgstr "" @@ -46,16 +46,16 @@ msgstr "" msgid "← Older Comments" msgstr "" -#: library/backend/assets/js/greenlet-controls.js:1632 -#: library/backend/assets/js/greenlet-controls.js:1774 +#: library/backend/assets/js/greenlet-controls.js:1068 +#: library/backend/assets/js/greenlet-controls.js:1210 msgid "Add Header" msgstr "" -#: library/backend/assets/js/greenlet-controls.js:1283 +#: library/backend/assets/js/greenlet-controls.js:713 msgid "Add/Edit widgets" msgstr "" -#: library/backend/assets/js/greenlet-controls.js:1764 +#: library/backend/assets/js/greenlet-controls.js:1200 msgid "Advanced" msgstr "" @@ -79,24 +79,24 @@ msgstr "" msgid "Archive page Products Count." msgstr "" -#: library/backend/customizer/options.php:442 +#: library/common/helpers.php:744 msgid "Author" msgstr "" -#: library/frontend/main-structure.php:642 -msgid "Author:" +#: library/common/helpers.php:729 +msgid "Author Info" msgstr "" -#: library/backend/customizer/options.php:516 +#: library/common/helpers.php:738 msgid "Avatar" msgstr "" -#: library/frontend/footer-structure.php:55 -#: library/backend/customizer/options.php:606 +#: library/frontend/footer-structure.php:31 +#: library/backend/customizer/options.php:476 msgid "Back to top" msgstr "" -#: library/backend/customizer/options.php:517 +#: library/common/helpers.php:739 msgid "Biographical Info" msgstr "" @@ -110,17 +110,13 @@ msgid "Blog Settings" msgstr "" #: library/backend/helpers.php:208 -msgid "Bootstrap 4.5.3" +msgid "Bootstrap 4.6.0" msgstr "" -#: library/backend/customizer/options.php:484 +#: library/common/helpers.php:730 msgid "Breadcrumb" msgstr "" -#: library/backend/customizer/options.php:498 -msgid "Breadcrumb Separator" -msgstr "" - #: library/pro/backend/options.php:165 msgid "Button Background" msgstr "" @@ -137,7 +133,7 @@ msgstr "" msgid "Can not install plugin" msgstr "" -#: library/backend/customizer/options.php:445 +#: library/common/helpers.php:747 msgid "Categories" msgstr "" @@ -154,7 +150,7 @@ msgid_plural "%s comments" msgstr[0] "" msgstr[1] "" -#: library/backend/customizer/options.php:447 +#: library/common/helpers.php:732 library/common/helpers.php:749 msgid "Comments" msgstr "" @@ -162,17 +158,11 @@ msgstr "" msgid "Comments are closed." msgstr "" -#: library/backend/customizer/options.php:385 -msgid "Content display" -msgstr "" - -#: library/frontend/main-structure.php:569 -#: library/frontend/main-structure.php:672 -#: library/backend/customizer/options.php:456 +#: library/common/helpers.php:860 library/frontend/main-structure.php:442 msgid "continue reading" msgstr "" -#: library/backend/customizer/options.php:461 +#: library/common/helpers.php:765 msgid "Continue reading text" msgstr "" @@ -202,40 +192,44 @@ msgstr "" msgid "Default Page Layout" msgstr "" -#: library/backend/customizer/options.php:658 +#: library/backend/customizer/options.php:544 msgid "Defer CSS" msgstr "" -#: library/backend/customizer/options.php:700 +#: library/backend/customizer/options.php:586 msgid "Defer WP Block Editor CSS" msgstr "" -#: library/backend/assets/js/greenlet-controls.js:1762 +#: library/backend/assets/js/greenlet-controls.js:1198 msgid "Delete" msgstr "" -#: library/common/helpers.php:538 +#: library/common/helpers.php:542 msgid "Disable" msgstr "" -#: library/backend/customizer/options.php:686 +#: library/backend/customizer/options.php:572 msgid "Disable WP Block Editor Style" msgstr "" +#: library/common/helpers.php:769 library/common/helpers.php:777 +msgid "Display Format" +msgstr "" + #: library/backend/options/class-options-admin.php:210 -#: library/backend/assets/js/greenlet-controls.js:276 +#: library/backend/assets/js/greenlet-controls.js:267 msgid "Documentation" msgstr "" -#: library/frontend/main-structure.php:534 +#: library/frontend/main-structure.php:628 msgid "Edit" msgstr "" -#: library/backend/customizer/options.php:564 +#: library/backend/customizer/options.php:506 msgid "Editor Styles" msgstr "" -#: library/common/helpers.php:559 +#: library/common/helpers.php:563 msgid "Effect" msgstr "" @@ -243,15 +237,11 @@ msgstr "" msgid "Eg: 4-8 or 9-3" msgstr "" -#: library/common/helpers.php:537 +#: library/common/helpers.php:541 msgid "Enable" msgstr "" -#: library/backend/customizer/options.php:485 -msgid "Enable breadcrumb navigation" -msgstr "" - -#: library/backend/customizer/options.php:550 +#: library/backend/customizer/options.php:444 msgid "Enable Schema Markup" msgstr "" @@ -260,7 +250,7 @@ msgid "Enhance Greenlet with free plugins" msgstr "" #: library/backend/customizer/custom-controls/class-control-template.php:97 -#: library/backend/assets/js/greenlet-controls.js:1729 +#: library/backend/assets/js/greenlet-controls.js:1165 msgid "Enter column numbers separated by hyphen." msgstr "" @@ -272,33 +262,25 @@ msgstr "" msgid "Error 404 - Nothing Found" msgstr "" -#: library/backend/customizer/options.php:388 +#: library/common/helpers.php:771 msgid "Excerpt (short text extract)" msgstr "" -#: library/backend/customizer/options.php:403 -msgid "Excerpt length" -msgstr "" - -#: library/addons/colorwings/class-colorwings-admin.php:100 -msgid "Extra Styles" +#: library/common/helpers.php:761 +msgid "Excerpt Length" msgstr "" -#: library/backend/assets/js/greenlet-controls.js:1513 +#: library/backend/assets/js/greenlet-controls.js:949 msgid "" "Extra widget areas are added. Please save and refresh this page to reflect " "new Widget areas" msgstr "" -#: library/frontend/main-structure.php:463 +#: library/common/helpers.php:743 library/frontend/main-structure.php:576 msgid "Featured" msgstr "" -#: library/backend/customizer/options.php:441 -msgid "Featured (Sticky)" -msgstr "" - -#: library/backend/customizer/options.php:371 +#: library/common/helpers.php:727 msgid "Featured Image" msgstr "" @@ -312,23 +294,23 @@ msgstr "" msgid "Framework" msgstr "" -#: library/common/helpers.php:563 +#: library/common/helpers.php:567 msgid "From Bottom" msgstr "" -#: library/common/helpers.php:565 +#: library/common/helpers.php:569 msgid "From Left" msgstr "" -#: library/common/helpers.php:564 +#: library/common/helpers.php:568 msgid "From Right" msgstr "" -#: library/common/helpers.php:562 +#: library/common/helpers.php:566 msgid "From Top" msgstr "" -#: library/backend/customizer/options.php:389 +#: library/common/helpers.php:772 msgid "Full Content" msgstr "" @@ -353,8 +335,7 @@ msgid "Get Pro Version" msgstr "" #. Name of the theme -#: library/frontend/footer-structure.php:29 -#: library/backend/editor/class-editor.php:217 +#: templates/copyright.php:15 library/backend/editor/class-editor.php:217 msgid "Greenlet" msgstr "" @@ -406,7 +387,7 @@ msgstr "" msgid "Header Layout" msgstr "" -#: library/backend/assets/js/greenlet-controls.js:1764 +#: library/backend/assets/js/greenlet-controls.js:1200 msgid "Hide" msgstr "" @@ -434,27 +415,27 @@ msgstr "" msgid "https://somecdn.com/css_framework.css" msgstr "" -#: library/backend/customizer/options.php:591 +#: library/backend/customizer/options.php:461 msgid "Icon" msgstr "" -#: library/backend/customizer/options.php:424 +#: library/common/helpers.php:783 msgid "Infinite Scroll" msgstr "" -#: library/backend/assets/js/greenlet-preview.js:173 +#: library/backend/assets/js/greenlet-preview.js:176 msgid "Infinite scrolling is temporarily disabled to edit footer." msgstr "" -#: library/backend/customizer/options.php:644 +#: library/backend/customizer/options.php:530 msgid "Inline CSS" msgstr "" -#: library/backend/customizer/options.php:672 +#: library/backend/customizer/options.php:558 msgid "Inline Javascript" msgstr "" -#: library/backend/customizer/options.php:714 +#: library/backend/customizer/options.php:600 msgid "Inline WP Block Editor CSS" msgstr "" @@ -462,7 +443,7 @@ msgstr "" msgid "It looks like nothing was found here. Maybe try a search?" msgstr "" -#: library/backend/assets/js/greenlet-controls.js:1397 +#: library/backend/assets/js/greenlet-controls.js:860 msgid "Items" msgstr "" @@ -478,11 +459,11 @@ msgstr "" msgid "Layout variation for Post list." msgstr "" -#: library/frontend/main-structure.php:527 +#: library/frontend/main-structure.php:620 msgid "Leave a comment" msgstr "" -#: library/backend/assets/js/greenlet-controls.js:1752 +#: library/backend/assets/js/greenlet-controls.js:1188 msgid "Left" msgstr "" @@ -490,35 +471,39 @@ msgstr "" msgid "List" msgstr "" -#: library/backend/customizer/options.php:701 +#: library/common/helpers.php:731 +msgid "List Title" +msgstr "" + +#: library/backend/customizer/options.php:587 msgid "Load Block Editor CSS files after page load." msgstr "" -#: library/frontend/main-structure.php:1031 +#: library/frontend/main-structure.php:1060 msgid "Load More" msgstr "" -#: library/backend/customizer/options.php:423 +#: library/common/helpers.php:782 msgid "Load More Button" msgstr "" -#: library/backend/customizer/options.php:659 +#: library/backend/customizer/options.php:545 msgid "Load theme CSS files after page load." msgstr "" -#: library/backend/customizer/options.php:645 +#: library/backend/customizer/options.php:531 msgid "Load theme CSS files inline, saves network requests." msgstr "" -#: library/backend/customizer/options.php:673 +#: library/backend/customizer/options.php:559 msgid "Load theme JS files inline, saves a network request." msgstr "" -#: library/backend/customizer/options.php:715 +#: library/backend/customizer/options.php:601 msgid "Load WP Block Editor CSS files inline, saves network requests." msgstr "" -#: library/common/helpers.php:516 +#: library/common/helpers.php:520 msgid "Logo" msgstr "" @@ -526,13 +511,13 @@ msgstr "" msgid "Logo, Title & Tagline" msgstr "" -#: library/backend/assets/js/greenlet-controls.js:1652 +#: library/backend/assets/js/greenlet-controls.js:1088 msgid "Main" msgstr "" #: library/backend/helpers.php:22 -#: library/backend/assets/js/greenlet-controls.js:385 -#: library/backend/assets/js/greenlet-controls.js:2020 +#: library/backend/assets/js/greenlet-controls.js:376 +#: library/backend/assets/js/greenlet-controls.js:1740 msgid "Main Content" msgstr "" @@ -553,7 +538,7 @@ msgstr "" msgid "Main Menu" msgstr "" -#: library/backend/assets/js/greenlet-controls.js:1652 +#: library/backend/assets/js/greenlet-controls.js:1088 msgid "Make this Main" msgstr "" @@ -561,23 +546,23 @@ msgstr "" msgid "Markup is not allowed in CSS." msgstr "" -#: library/backend/customizer/options.php:565 +#: library/backend/customizer/options.php:507 msgid "Match the Post editor styles to the frontend styles." msgstr "" -#: library/common/helpers.php:523 library/common/helpers.php:528 +#: library/common/helpers.php:527 library/common/helpers.php:532 msgid "Menu" msgstr "" -#: library/common/helpers.php:545 +#: library/common/helpers.php:549 msgid "Menu Toggler" msgstr "" -#: library/common/helpers.php:534 +#: library/common/helpers.php:538 msgid "Mobile toggler" msgstr "" -#: templates/breadcrumb.php:64 library/frontend/main-structure.php:265 +#: templates/breadcrumb.php:64 library/frontend/main-structure.php:266 msgctxt "Monthly archives date format" msgid "F Y" msgstr "" @@ -590,7 +575,7 @@ msgstr "" msgid "More options with Pro version" msgstr "" -#: library/backend/customizer/options.php:515 +#: library/common/helpers.php:737 msgid "Name" msgstr "" @@ -598,15 +583,15 @@ msgstr "" msgid "Newer Comments →" msgstr "" -#: library/backend/assets/js/greenlet-controls.js:1750 +#: library/backend/assets/js/greenlet-controls.js:1186 msgid "No" msgstr "" -#: library/common/helpers.php:531 +#: library/common/helpers.php:535 msgid "No menus found. Create new menu under menus screen, save and reload." msgstr "" -#: library/common/helpers.php:586 +#: library/common/helpers.php:590 msgid "" "No templates found in your child theme. Add PHP templates under " "child_theme/templates/" @@ -616,10 +601,6 @@ msgstr "" msgid "Nothing found!" msgstr "" -#: library/backend/customizer/options.php:404 -msgid "Number of characters in excerpts for post list." -msgstr "" - #: library/backend/customizer/options.php:357 msgid "Number of posts in a single row (columns)." msgstr "" @@ -640,19 +621,19 @@ msgstr "" msgid "Number of sidebars to register for the main container of the page" msgstr "" -#: library/backend/customizer/options.php:421 +#: library/common/helpers.php:780 msgid "Numbered" msgstr "" -#: library/backend/customizer/options.php:422 +#: library/common/helpers.php:781 msgid "Numbered (Ajax)" msgstr "" -#: library/frontend/main-structure.php:789 +#: library/frontend/main-structure.php:818 msgid "Older Posts »" msgstr "" -#: library/frontend/main-structure.php:527 +#: library/frontend/main-structure.php:620 msgid "One comment" msgstr "" @@ -660,7 +641,7 @@ msgstr "" msgid "Option available with Pro version" msgstr "" -#: library/backend/customizer/options.php:573 +#: library/backend/customizer/options.php:429 msgid "Others" msgstr "" @@ -668,38 +649,30 @@ msgstr "" msgid "Page Layout" msgstr "" -#: library/backend/customizer/options.php:535 -msgid "Pages" +#: library/backend/customizer/options.php:419 +msgid "Page Sections" msgstr "" -#: library/backend/customizer/options.php:417 +#: library/common/helpers.php:733 msgid "Pagination" msgstr "" -#: library/backend/customizer/options.php:418 -msgid "Paging Navigation display format." -msgstr "" - -#: library/backend/customizer/options.php:630 +#: library/backend/customizer/options.php:516 #: library/backend/options/class-options-admin.php:141 msgid "Performance" msgstr "" -#: library/common/helpers.php:578 +#: library/common/helpers.php:582 msgid "PHP Template" msgstr "" -#: library/backend/assets/js/greenlet-controls.js:1198 +#: library/backend/assets/js/greenlet-controls.js:628 msgid "" "Please save and refresh this page to reflect the newly added Widget areas" msgstr "" -#: library/backend/customizer/options.php:386 -msgid "Post content display format." -msgstr "" - -#: library/backend/customizer/options.php:462 -msgid "Post excerpt more link text" +#: library/common/helpers.php:728 +msgid "Post Content" msgstr "" #: library/backend/customizer/options.php:312 @@ -710,11 +683,16 @@ msgstr "" msgid "Post List Layout" msgstr "" -#: library/backend/customizer/options.php:534 -msgid "Posts" +#: library/common/helpers.php:726 +msgid "Post Meta" +msgstr "" + +#: library/backend/customizer/options.php:371 +#: library/backend/customizer/options.php:395 +msgid "Post Sections" msgstr "" -#: library/backend/customizer/options.php:687 +#: library/backend/customizer/options.php:573 msgid "Posts created with WP Block Editor may break, disable with caution." msgstr "" @@ -726,11 +704,11 @@ msgstr "" msgid "Posts per row" msgstr "" -#: library/frontend/footer-structure.php:28 +#: templates/copyright.php:14 msgid "Powered By" msgstr "" -#: library/backend/customizer/options.php:723 +#: library/backend/customizer/options.php:609 msgid "Presets" msgstr "" @@ -754,11 +732,11 @@ msgstr "" msgid "Product Tags Layout" msgstr "" -#: library/backend/customizer/options.php:443 -msgid "Published Date" +#: library/common/helpers.php:745 +msgid "Published" msgstr "" -#: library/common/helpers.php:555 +#: library/common/helpers.php:559 msgid "Query" msgstr "" @@ -766,33 +744,33 @@ msgstr "" msgid "Report a bug" msgstr "" -#: library/backend/assets/js/greenlet-controls.js:1754 +#: library/backend/assets/js/greenlet-controls.js:1190 msgid "Right" msgstr "" -#: library/backend/customizer/options.php:549 +#: library/backend/customizer/options.php:443 msgid "Schema Markup" msgstr "" -#: library/frontend/main-structure.php:1071 -#: library/frontend/main-structure.php:1076 -#: library/frontend/main-structure.php:1078 +#: library/frontend/main-structure.php:1100 +#: library/frontend/main-structure.php:1105 +#: library/frontend/main-structure.php:1107 msgid "Search" msgstr "" -#: library/frontend/main-structure.php:1076 +#: library/frontend/main-structure.php:1105 msgid "Search …" msgstr "" -#: library/backend/customizer/options.php:587 +#: library/backend/customizer/options.php:457 msgid "Search button" msgstr "" -#: library/frontend/main-structure.php:1075 +#: library/frontend/main-structure.php:1104 msgid "Search for:" msgstr "" -#: library/backend/customizer/options.php:588 +#: library/backend/customizer/options.php:458 msgid "Search form submit button content." msgstr "" @@ -800,12 +778,16 @@ msgstr "" msgid "Search: " msgstr "" -#: library/backend/assets/js/greenlet-controls.js:1689 +#: library/backend/assets/js/greenlet-controls.js:1125 msgid "Select Columns Layout" msgstr "" -#: library/backend/customizer/options.php:499 -msgid "Separator between links in breadcrumb. Eg: / or >" +#: library/common/helpers.php:756 +msgid "Separator" +msgstr "" + +#: library/common/helpers.php:757 +msgid "Separator between links. Eg: / or >" msgstr "" #: library/support/woocommerce/backend/options.php:133 @@ -820,34 +802,18 @@ msgstr "" msgid "Shopping Cart" msgstr "" -#: library/backend/assets/js/greenlet-controls.js:1764 +#: library/backend/assets/js/greenlet-controls.js:1200 msgid "Show" msgstr "" -#: library/backend/customizer/options.php:513 -msgid "Show Author Info" -msgstr "" - -#: library/backend/customizer/options.php:621 +#: library/backend/customizer/options.php:491 msgid "Show back to top button at position." msgstr "" -#: library/backend/customizer/options.php:607 +#: library/backend/customizer/options.php:477 msgid "Show back to top scroll button." msgstr "" -#: library/backend/customizer/options.php:532 -msgid "Show Comments" -msgstr "" - -#: library/backend/customizer/options.php:372 -msgid "Show featured image on post list and archives." -msgstr "" - -#: library/backend/customizer/options.php:439 -msgid "Show Meta Info" -msgstr "" - #: library/backend/customizer/options.php:55 msgid "Show Tagline" msgstr "" @@ -860,8 +826,8 @@ msgstr "" msgid "Show your love" msgstr "" -#: library/backend/assets/js/greenlet-controls.js:389 -#: library/backend/assets/js/greenlet-controls.js:2024 +#: library/backend/assets/js/greenlet-controls.js:380 +#: library/backend/assets/js/greenlet-controls.js:1744 msgid "Sidebar" msgstr "" @@ -871,11 +837,15 @@ msgstr "" msgid "Sidebar %s" msgstr "" -#: library/backend/customizer/options.php:420 +#: library/common/helpers.php:779 msgid "Simple" msgstr "" -#: library/backend/customizer/options.php:470 +#: library/backend/customizer/options.php:405 +msgid "Single Page" +msgstr "" + +#: library/backend/customizer/options.php:381 msgid "Single Post" msgstr "" @@ -891,7 +861,7 @@ msgstr "" msgid "Skip to content" msgstr "" -#: library/backend/assets/js/greenlet-controls.js:1685 +#: library/backend/assets/js/greenlet-controls.js:1121 msgid "Sticky" msgstr "" @@ -899,7 +869,11 @@ msgstr "" msgid "String is empty." msgstr "" -#: library/backend/assets/js/greenlet-controls.js:1729 +#: library/addons/colorwings/class-colorwings-admin.php:100 +msgid "Style Editor" +msgstr "" + +#: library/backend/assets/js/greenlet-controls.js:1165 msgid "Sum should be" msgstr "" @@ -911,31 +885,35 @@ msgstr "" msgid "Support forum" msgstr "" -#: library/backend/customizer/options.php:446 +#: library/common/helpers.php:748 msgid "Tags" msgstr "" -#: library/common/helpers.php:550 +#: library/common/helpers.php:554 msgid "Target" msgstr "" -#: library/common/helpers.php:583 +#: library/common/helpers.php:587 msgid "Template" msgstr "" -#: library/backend/customizer/options.php:590 +#: library/backend/customizer/options.php:460 msgid "Text" msgstr "" -#: library/backend/customizer/options.php:738 +#: library/backend/customizer/options.php:624 #: library/backend/options/class-options-admin.php:142 msgid "Theme Presets" msgstr "" -#: library/frontend/main-structure.php:859 +#: library/frontend/main-structure.php:888 msgid "There are no posts meeting your criteria" msgstr "" +#: library/common/helpers.php:725 +msgid "Title" +msgstr "" + #: library/backend/customizer/options.php:66 msgid "Title Styles" msgstr "" @@ -945,15 +923,15 @@ msgstr "" msgid "Toggle Menu" msgstr "" -#: library/backend/customizer/options.php:444 -msgid "Updated Date" +#: library/common/helpers.php:746 +msgid "Updated" msgstr "" -#: library/backend/assets/js/greenlet-controls.js:1740 +#: library/backend/assets/js/greenlet-controls.js:1176 msgid "Vertical" msgstr "" -#: library/frontend/main-structure.php:527 +#: library/frontend/main-structure.php:620 #, php-format msgid "View all % comments" msgstr "" @@ -966,15 +944,15 @@ msgstr "" msgid "Visual Style Editor" msgstr "" -#: library/common/helpers.php:572 +#: library/common/helpers.php:576 msgid "Widgets" msgstr "" -#: library/frontend/footer-structure.php:25 +#: templates/copyright.php:11 msgid "Y" msgstr "" -#: templates/breadcrumb.php:68 library/frontend/main-structure.php:268 +#: templates/breadcrumb.php:68 library/frontend/main-structure.php:269 msgctxt "Yearly archives date format" msgid "Y" msgstr "" diff --git a/library/languages/kn.mo b/library/languages/kn.mo index b094747..bdd66df 100644 Binary files a/library/languages/kn.mo and b/library/languages/kn.mo differ diff --git a/library/languages/kn.po b/library/languages/kn.po index 02fdb0a..e92f66e 100644 --- a/library/languages/kn.po +++ b/library/languages/kn.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Greenlet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-11-10 22:01+0000\n" -"PO-Revision-Date: 2021-01-27 18:37+0000\n" +"PO-Revision-Date: 2021-02-06 18:07+0000\n" "Last-Translator: Greenlet Team \n" "Language-Team: Kannada\n" "Language: kn\n" @@ -14,12 +14,12 @@ msgstr "" "X-Generator: Loco https://localise.biz/\n" "X-Loco-Version: 2.4.6; wp-5.6" -#: library/frontend/main-structure.php:238 -#: library/frontend/main-structure.php:246 -#: library/frontend/main-structure.php:254 -#: library/frontend/main-structure.php:262 -#: library/frontend/main-structure.php:265 -#: library/frontend/main-structure.php:268 +#: library/frontend/main-structure.php:239 +#: library/frontend/main-structure.php:247 +#: library/frontend/main-structure.php:255 +#: library/frontend/main-structure.php:263 +#: library/frontend/main-structure.php:266 +#: library/frontend/main-structure.php:269 msgid " Archives" msgstr " ದಾಖಲೆಗಳು" @@ -37,7 +37,7 @@ msgid_plural "%d Items" msgstr[0] "%d ವಸ್ತು" msgstr[1] "" -#: library/frontend/main-structure.php:788 +#: library/frontend/main-structure.php:817 msgid "« Newer Posts" msgstr "« ಹೊಸ ಪೋಸ್ಟ್‌ಗಳು" @@ -45,16 +45,16 @@ msgstr "« ಹೊಸ ಪೋಸ್ಟ್‌ಗಳು" msgid "← Older Comments" msgstr "← ಹಳೆಯ ಪ್ರತಿಕ್ರಿಯೆಗಳು" -#: library/backend/assets/js/greenlet-controls.js:1632 -#: library/backend/assets/js/greenlet-controls.js:1774 +#: library/backend/assets/js/greenlet-controls.js:1068 +#: library/backend/assets/js/greenlet-controls.js:1210 msgid "Add Header" msgstr "ಹೆಡರ್ ಸೇರಿಸಿ" -#: library/backend/assets/js/greenlet-controls.js:1283 +#: library/backend/assets/js/greenlet-controls.js:713 msgid "Add/Edit widgets" msgstr "ವಿಜೆಟ್‌ಗಳನ್ನು ಸೇರಿಸಿ / ಸಂಪಾದಿಸಿ" -#: library/backend/assets/js/greenlet-controls.js:1764 +#: library/backend/assets/js/greenlet-controls.js:1200 msgid "Advanced" msgstr "ಹೆಚ್ಚುವರಿ" @@ -78,24 +78,24 @@ msgstr "ಹಳೆಗೂಡಿಕೆ ವಿನ್ಯಾಸ" msgid "Archive page Products Count." msgstr "ಆರ್ಕೈವ್ ಪುಟ ಉತ್ಪನ್ನಗಳ ಎಣಿಕೆ." -#: library/backend/customizer/options.php:442 +#: library/common/helpers.php:744 msgid "Author" msgstr "ಲೇಖಕ" -#: library/frontend/main-structure.php:642 -msgid "Author:" -msgstr "ಲೇಖಕ:" +#: library/common/helpers.php:729 +msgid "Author Info" +msgstr "ಲೇಖಕ ಮಾಹಿತಿ" -#: library/backend/customizer/options.php:516 +#: library/common/helpers.php:738 msgid "Avatar" msgstr "ಅವತಾರ" -#: library/frontend/footer-structure.php:55 -#: library/backend/customizer/options.php:606 +#: library/frontend/footer-structure.php:31 +#: library/backend/customizer/options.php:476 msgid "Back to top" msgstr "ಮತ್ತೆ ಮೇಲಕ್ಕೆ" -#: library/backend/customizer/options.php:517 +#: library/common/helpers.php:739 msgid "Biographical Info" msgstr "ಜೀವನಚರಿತ್ರೆಯ ಮಾಹಿತಿ" @@ -109,17 +109,14 @@ msgid "Blog Settings" msgstr "ಬ್ಲಾಗ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳು" #: library/backend/helpers.php:208 -msgid "Bootstrap 4.5.3" -msgstr "ಬೂಟ್ ಸ್ಟ್ರಾಪ್ 4.5.3" +#| msgid "Bootstrap 4.5.3" +msgid "Bootstrap 4.6.0" +msgstr "ಬೂಟ್ ಸ್ಟ್ರಾಪ್ 4.6.0" -#: library/backend/customizer/options.php:484 +#: library/common/helpers.php:730 msgid "Breadcrumb" msgstr "ಬ್ರೆಡ್‌ಕ್ರಂಬ್" -#: library/backend/customizer/options.php:498 -msgid "Breadcrumb Separator" -msgstr "ಬ್ರೆಡ್‌ಕ್ರಂಬ್ ವಿಭಜಕ" - #: library/pro/backend/options.php:165 msgid "Button Background" msgstr "ಬಟನ್ ಹಿನ್ನೆಲೆ" @@ -136,7 +133,7 @@ msgstr "ಗುಂಡಿಗಳು" msgid "Can not install plugin" msgstr "ಪ್ಲಗಿನ್ ಅನ್ನು ಸ್ಥಾಪಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ" -#: library/backend/customizer/options.php:445 +#: library/common/helpers.php:747 msgid "Categories" msgstr "ವರ್ಗಗಳು" @@ -153,7 +150,7 @@ msgid_plural "%s comments" msgstr[0] "%s ಪ್ರತಿಕ್ರಿಯೆ" msgstr[1] "" -#: library/backend/customizer/options.php:447 +#: library/common/helpers.php:732 library/common/helpers.php:749 msgid "Comments" msgstr "ಪ್ರತಿಕ್ರಿಯೆಗಳು" @@ -161,17 +158,11 @@ msgstr "ಪ್ರತಿಕ್ರಿಯೆಗಳು" msgid "Comments are closed." msgstr "ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ಮುಚ್ಚಲಾಗಿದೆ." -#: library/backend/customizer/options.php:385 -msgid "Content display" -msgstr "ವಿಷಯ ಪ್ರದರ್ಶನ" - -#: library/frontend/main-structure.php:569 -#: library/frontend/main-structure.php:672 -#: library/backend/customizer/options.php:456 +#: library/common/helpers.php:860 library/frontend/main-structure.php:442 msgid "continue reading" msgstr "ಓದುವುದನ್ನು ಮುಂದುವರಿಸಿ" -#: library/backend/customizer/options.php:461 +#: library/common/helpers.php:765 msgid "Continue reading text" msgstr "ಪಠ್ಯವನ್ನು ಓದುವುದನ್ನು ಮುಂದುವರಿಸಿ" @@ -201,40 +192,44 @@ msgstr "ಪೂರ್ವನಿಗದಿತ" msgid "Default Page Layout" msgstr "ಇದ್ದಾಯ್ಕೆ ಪುಟದ ವಿನ್ಯಾಸ" -#: library/backend/customizer/options.php:658 +#: library/backend/customizer/options.php:544 msgid "Defer CSS" msgstr "CSS ಮುಂದೂಡಿ" -#: library/backend/customizer/options.php:700 +#: library/backend/customizer/options.php:586 msgid "Defer WP Block Editor CSS" msgstr "WP ಬ್ಲಾಕ್ ಸಂಪಾದಕ ಸಿಎಸ್ಎಸ್ ಅನ್ನು ಮುಂದೂಡಿ" -#: library/backend/assets/js/greenlet-controls.js:1762 +#: library/backend/assets/js/greenlet-controls.js:1198 msgid "Delete" msgstr "ಅಳಿಸಿ" -#: library/common/helpers.php:538 +#: library/common/helpers.php:542 msgid "Disable" msgstr "ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ" -#: library/backend/customizer/options.php:686 +#: library/backend/customizer/options.php:572 msgid "Disable WP Block Editor Style" msgstr "WP ಬ್ಲಾಕ್ ಸಂಪಾದಕ ಶೈಲಿಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ" +#: library/common/helpers.php:769 library/common/helpers.php:777 +msgid "Display Format" +msgstr "ಪ್ರದರ್ಶನ ಸ್ವರೂಪ" + #: library/backend/options/class-options-admin.php:210 -#: library/backend/assets/js/greenlet-controls.js:276 +#: library/backend/assets/js/greenlet-controls.js:267 msgid "Documentation" msgstr "ದಾಖಲೆ" -#: library/frontend/main-structure.php:534 +#: library/frontend/main-structure.php:628 msgid "Edit" msgstr "ತಿದ್ದು" -#: library/backend/customizer/options.php:564 +#: library/backend/customizer/options.php:506 msgid "Editor Styles" msgstr "ಸಂಪಾದಕ ಶೈಲಿಗಳು" -#: library/common/helpers.php:559 +#: library/common/helpers.php:563 msgid "Effect" msgstr "ಪರಿಣಾಮ" @@ -242,15 +237,11 @@ msgstr "ಪರಿಣಾಮ" msgid "Eg: 4-8 or 9-3" msgstr "ಉದಾ: 4-8 ಅಥವಾ 9-3" -#: library/common/helpers.php:537 +#: library/common/helpers.php:541 msgid "Enable" msgstr "ಸಕ್ರಿಯಗೊಳಿಸಿ" -#: library/backend/customizer/options.php:485 -msgid "Enable breadcrumb navigation" -msgstr "ಬ್ರೆಡ್‌ಕ್ರಂಬ್ ನ್ಯಾವಿಗೇಷನ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ" - -#: library/backend/customizer/options.php:550 +#: library/backend/customizer/options.php:444 msgid "Enable Schema Markup" msgstr "ಸ್ಕೀಮಾ ಮಾರ್ಕಪ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ" @@ -259,7 +250,7 @@ msgid "Enhance Greenlet with free plugins" msgstr "ಉಚಿತ ಪ್ಲಗ್‌ಇನ್‌ಗಳೊಂದಿಗೆ ಗ್ರೀನ್‌ಲೆಟ್ ಅನ್ನು ವರ್ಧಿಸಿ" #: library/backend/customizer/custom-controls/class-control-template.php:97 -#: library/backend/assets/js/greenlet-controls.js:1729 +#: library/backend/assets/js/greenlet-controls.js:1165 msgid "Enter column numbers separated by hyphen." msgstr "ಹೈಫನ್‌ನಿಂದ ಬೇರ್ಪಡಿಸಿದ ಕಾಲಮ್ ಸಂಖ್ಯೆಗಳನ್ನು ನಮೂದಿಸಿ." @@ -271,19 +262,16 @@ msgstr "ವಿಭಿನ್ನ CDN ಅಥವಾ CSS ಚೌಕಟ್ಟು ಇದ msgid "Error 404 - Nothing Found" msgstr "404 - ಏನೂ ಕಂಡುಬಂದಿಲ್ಲ" -#: library/backend/customizer/options.php:388 +#: library/common/helpers.php:771 msgid "Excerpt (short text extract)" msgstr "ಆಯ್ದ ಭಾಗಗಳು (ಸಣ್ಣ ಪಠ್ಯ ಸಾರ)" -#: library/backend/customizer/options.php:403 -msgid "Excerpt length" +#: library/common/helpers.php:761 +#| msgid "Excerpt length" +msgid "Excerpt Length" msgstr "ಆಯ್ದ ಉದ್ದ" -#: library/addons/colorwings/class-colorwings-admin.php:100 -msgid "Extra Styles" -msgstr "ಹೆಚ್ಚುವರಿ ಶೈಲಿಗಳು" - -#: library/backend/assets/js/greenlet-controls.js:1513 +#: library/backend/assets/js/greenlet-controls.js:949 msgid "" "Extra widget areas are added. Please save and refresh this page to reflect " "new Widget areas" @@ -291,15 +279,11 @@ msgstr "" "ಹೆಚ್ಚುವರಿ ವಿಜೆಟ್ ಪ್ರದೇಶಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ. ಹೊಸ ವಿಜೆಟ್ ಪ್ರದೇಶಗಳನ್ನು " "ಪ್ರತಿಬಿಂಬಿಸಲು ದಯವಿಟ್ಟು ಈ ಪುಟವನ್ನು ಉಳಿಸಿ ಮತ್ತು ರಿಫ್ರೆಶ್ ಮಾಡಿ" -#: library/frontend/main-structure.php:463 +#: library/common/helpers.php:743 library/frontend/main-structure.php:576 msgid "Featured" msgstr "ವೈಶಿಷ್ಟ್ಯ" -#: library/backend/customizer/options.php:441 -msgid "Featured (Sticky)" -msgstr "ವೈಶಿಷ್ಟ್ಯಗೊಳಿಸಿದ (ಜಿಗುಟಾದ)" - -#: library/backend/customizer/options.php:371 +#: library/common/helpers.php:727 msgid "Featured Image" msgstr "ಪ್ರಧಾನ ಚಿತ್ರ" @@ -313,23 +297,23 @@ msgstr "ಅಡಿಟಿಪ್ಪಣಿ ವಿನ್ಯಾಸ" msgid "Framework" msgstr "ಚೌಕಟ್ಟು" -#: library/common/helpers.php:563 +#: library/common/helpers.php:567 msgid "From Bottom" msgstr "ಕೆಳಗಿನಿಂದ" -#: library/common/helpers.php:565 +#: library/common/helpers.php:569 msgid "From Left" msgstr "ಎಡದಿಂದ" -#: library/common/helpers.php:564 +#: library/common/helpers.php:568 msgid "From Right" msgstr "ಬಲದಿಂದ" -#: library/common/helpers.php:562 +#: library/common/helpers.php:566 msgid "From Top" msgstr "ಮೇಲಿನಿಂದ" -#: library/backend/customizer/options.php:389 +#: library/common/helpers.php:772 msgid "Full Content" msgstr "ಪೂರ್ಣ ವಿಷಯ" @@ -354,8 +338,7 @@ msgid "Get Pro Version" msgstr "ಪ್ರೊ ಆವೃತ್ತಿ ಪಡೆಯಿರಿ" #. Name of the theme -#: library/frontend/footer-structure.php:29 -#: library/backend/editor/class-editor.php:217 +#: templates/copyright.php:15 library/backend/editor/class-editor.php:217 msgid "Greenlet" msgstr "ಗ್ರೀನ್ಲೆಟ್" @@ -418,7 +401,7 @@ msgstr "ಗ್ರಿಡ್" msgid "Header Layout" msgstr "ಶಿರೋಲೇಖ ನಕ್ಷೆ" -#: library/backend/assets/js/greenlet-controls.js:1764 +#: library/backend/assets/js/greenlet-controls.js:1200 msgid "Hide" msgstr "ಮರೆಮಾಡಿ" @@ -446,29 +429,29 @@ msgstr "https://greenletwp.com/about/" msgid "https://somecdn.com/css_framework.css" msgstr "https://somecdn.com/css_framework.css" -#: library/backend/customizer/options.php:591 +#: library/backend/customizer/options.php:461 msgid "Icon" msgstr "ಐಕಾನ್" -#: library/backend/customizer/options.php:424 +#: library/common/helpers.php:783 msgid "Infinite Scroll" msgstr "ಅನಂತ ಸ್ಕ್ರಾಲ್" -#: library/backend/assets/js/greenlet-preview.js:173 +#: library/backend/assets/js/greenlet-preview.js:176 msgid "Infinite scrolling is temporarily disabled to edit footer." msgstr "" "ಅಡಿಟಿಪ್ಪಣಿ ಸಂಪಾದಿಸಲು ಅನಂತ ಸ್ಕ್ರೋಲಿಂಗ್ ಅನ್ನು ತಾತ್ಕಾಲಿಕವಾಗಿ " "ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ." -#: library/backend/customizer/options.php:644 +#: library/backend/customizer/options.php:530 msgid "Inline CSS" msgstr "ಇನ್ಲೈನ್ ​​ಸಿಎಸ್ಎಸ್" -#: library/backend/customizer/options.php:672 +#: library/backend/customizer/options.php:558 msgid "Inline Javascript" msgstr "ಇನ್ಲೈನ್ ​​ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್" -#: library/backend/customizer/options.php:714 +#: library/backend/customizer/options.php:600 msgid "Inline WP Block Editor CSS" msgstr "ಇನ್ಲೈನ್ WP ಬ್ಲಾಕ್ ಸಂಪಾದಕ ಸಿಎಸ್ಎಸ್" @@ -476,7 +459,7 @@ msgstr "ಇನ್ಲೈನ್ WP ಬ್ಲಾಕ್ ಸಂಪಾದಕ ಸಿಎ msgid "It looks like nothing was found here. Maybe try a search?" msgstr "ಇಲ್ಲಿ ಏನೂ ಕಂಡುಬಂದಿಲ್ಲ ಎಂದು ತೋರುತ್ತಿದೆ. ಹುಡುಕಾಟವನ್ನು ಪ್ರಯತ್ನಿಸಬಹುದೇ?" -#: library/backend/assets/js/greenlet-controls.js:1397 +#: library/backend/assets/js/greenlet-controls.js:860 msgid "Items" msgstr "ಐಟಂಗಳು" @@ -492,11 +475,11 @@ msgstr "ನಕ್ಷೆ" msgid "Layout variation for Post list." msgstr "ಪೋಸ್ಟ್ ಪಟ್ಟಿಗೆ ವಿನ್ಯಾಸ ಬದಲಾವಣೆ." -#: library/frontend/main-structure.php:527 +#: library/frontend/main-structure.php:620 msgid "Leave a comment" msgstr "ಕಾಮೆಂಟ್ ಮಾಡಿ" -#: library/backend/assets/js/greenlet-controls.js:1752 +#: library/backend/assets/js/greenlet-controls.js:1188 msgid "Left" msgstr "ಎಡ" @@ -504,41 +487,45 @@ msgstr "ಎಡ" msgid "List" msgstr "ಪಟ್ಟಿ" -#: library/backend/customizer/options.php:701 +#: library/common/helpers.php:731 +msgid "List Title" +msgstr "ಪಟ್ಟಿ ಶೀರ್ಷಿಕೆ" + +#: library/backend/customizer/options.php:587 msgid "Load Block Editor CSS files after page load." msgstr "ಪುಟ ಲೋಡ್ ನಂತರ ಬ್ಲಾಕ್ ಸಂಪಾದಕ ಸಿಎಸ್ಎಸ್ ಫೈಲ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಿ." -#: library/frontend/main-structure.php:1031 +#: library/frontend/main-structure.php:1060 msgid "Load More" msgstr "ಇನ್ನಷ್ಟು ಲೋಡ್ ಮಾಡಿ" -#: library/backend/customizer/options.php:423 +#: library/common/helpers.php:782 msgid "Load More Button" msgstr "ಇನ್ನಷ್ಟು ಬಟನ್ ಲೋಡ್ ಮಾಡಿ" -#: library/backend/customizer/options.php:659 +#: library/backend/customizer/options.php:545 msgid "Load theme CSS files after page load." msgstr "ಪುಟ ಲೋಡ್ ನಂತರ ಥೀಮ್ CSS ಫೈಲ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಿ." -#: library/backend/customizer/options.php:645 +#: library/backend/customizer/options.php:531 msgid "Load theme CSS files inline, saves network requests." msgstr "" "ಥೀಮ್ ಸಿಎಸ್ಎಸ್ ಫೈಲ್‌ಗಳನ್ನು ಇನ್ಲೈನ್‌ನಲ್ಲಿ ಲೋಡ್ ಮಾಡಿ, ನೆಟ್‌ವರ್ಕ್ ವಿನಂತಿಗಳನ್ನು " "ಉಳಿಸುತ್ತದೆ." -#: library/backend/customizer/options.php:673 +#: library/backend/customizer/options.php:559 msgid "Load theme JS files inline, saves a network request." msgstr "" "ಥೀಮ್ ಜೆಎಸ್ ಫೈಲ್‌ಗಳನ್ನು ಇನ್‌ಲೈನ್‌ನಲ್ಲಿ ಲೋಡ್ ಮಾಡಿ, ನೆಟ್‌ವರ್ಕ್ ವಿನಂತಿಯನ್ನು " "ಉಳಿಸುತ್ತದೆ." -#: library/backend/customizer/options.php:715 +#: library/backend/customizer/options.php:601 msgid "Load WP Block Editor CSS files inline, saves network requests." msgstr "" "WP ಬ್ಲಾಕ್ ಸಂಪಾದಕವನ್ನು CSS ಫೈಲ್‌ಗಳನ್ನು ಇನ್ಲೈನ್‌ನಲ್ಲಿ ಲೋಡ್ ಮಾಡಿ, ನೆಟ್‌ವರ್ಕ್ " "ವಿನಂತಿಗಳನ್ನು ಉಳಿಸುತ್ತದೆ." -#: library/common/helpers.php:516 +#: library/common/helpers.php:520 msgid "Logo" msgstr "ಲೋಗೋ" @@ -546,13 +533,13 @@ msgstr "ಲೋಗೋ" msgid "Logo, Title & Tagline" msgstr "ಲೋಗೋ, ಶೀರ್ಷಿಕೆ ಮತ್ತು ಟ್ಯಾಗ್‌ಲೈನ್" -#: library/backend/assets/js/greenlet-controls.js:1652 +#: library/backend/assets/js/greenlet-controls.js:1088 msgid "Main" msgstr "ಮುಖ್ಯ" #: library/backend/helpers.php:22 -#: library/backend/assets/js/greenlet-controls.js:385 -#: library/backend/assets/js/greenlet-controls.js:2020 +#: library/backend/assets/js/greenlet-controls.js:376 +#: library/backend/assets/js/greenlet-controls.js:1740 msgid "Main Content" msgstr "ಮುಖ್ಯ ವಿಷಯ" @@ -573,7 +560,7 @@ msgstr "ಮುಖ್ಯ ವಿನ್ಯಾಸದ ಶೈಲಿಗಳು" msgid "Main Menu" msgstr "ಮುಖ್ಯ ಪಟ್ಟಿ" -#: library/backend/assets/js/greenlet-controls.js:1652 +#: library/backend/assets/js/greenlet-controls.js:1088 msgid "Make this Main" msgstr "ಇದನ್ನು ಮುಖ್ಯಗೊಳಿಸಿ" @@ -581,23 +568,23 @@ msgstr "ಇದನ್ನು ಮುಖ್ಯಗೊಳಿಸಿ" msgid "Markup is not allowed in CSS." msgstr "ಸಿಎಸ್ಎಸ್ನಲ್ಲಿ ಮಾರ್ಕಪ್ ಅನ್ನು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ." -#: library/backend/customizer/options.php:565 +#: library/backend/customizer/options.php:507 msgid "Match the Post editor styles to the frontend styles." msgstr "ಪೋಸ್ಟ್ ಎಡಿಟರ್ ಶೈಲಿಗಳನ್ನು ಮುಂಭಾಗದ ಶೈಲಿಗಳಿಗೆ ಹೊಂದಿಸಿ." -#: library/common/helpers.php:523 library/common/helpers.php:528 +#: library/common/helpers.php:527 library/common/helpers.php:532 msgid "Menu" msgstr "ಮೆನು" -#: library/common/helpers.php:545 +#: library/common/helpers.php:549 msgid "Menu Toggler" msgstr "ಮೆನು ಟಾಗ್ಲರ್" -#: library/common/helpers.php:534 +#: library/common/helpers.php:538 msgid "Mobile toggler" msgstr "ಮೊಬೈಲ್ ಟಾಗ್ಲರ್" -#: templates/breadcrumb.php:64 library/frontend/main-structure.php:265 +#: templates/breadcrumb.php:64 library/frontend/main-structure.php:266 msgctxt "Monthly archives date format" msgid "F Y" msgstr "F Y" @@ -610,7 +597,7 @@ msgstr "ಗ್ರೀನ್‌ಲೆಟ್ ಪ್ರೊನೊಂದಿಗೆ ಹ msgid "More options with Pro version" msgstr "ಪ್ರೊ ಆವೃತ್ತಿಯೊಂದಿಗೆ ಹೆಚ್ಚಿನ ಆಯ್ಕೆಗಳು" -#: library/backend/customizer/options.php:515 +#: library/common/helpers.php:737 msgid "Name" msgstr "ಹೆಸರು" @@ -618,17 +605,17 @@ msgstr "ಹೆಸರು" msgid "Newer Comments →" msgstr "ಹೊಸ ಪ್ರತಿಕ್ರಿಯೆಗಳು →" -#: library/backend/assets/js/greenlet-controls.js:1750 +#: library/backend/assets/js/greenlet-controls.js:1186 msgid "No" msgstr "ಬೇಡ" -#: library/common/helpers.php:531 +#: library/common/helpers.php:535 msgid "No menus found. Create new menu under menus screen, save and reload." msgstr "" "ಯಾವುದೇ ಮೆನುಗಳು ಕಂಡುಬಂದಿಲ್ಲ. ಮೆನುಗಳ ಪರದೆಯ ಅಡಿಯಲ್ಲಿ ಹೊಸ ಮೆನುವನ್ನು ರಚಿಸಿ, ಉಳಿಸಿ " "ಮತ್ತು ಮರುಲೋಡ್ ಮಾಡಿ." -#: library/common/helpers.php:586 +#: library/common/helpers.php:590 msgid "" "No templates found in your child theme. Add PHP templates under " "child_theme/templates/" @@ -640,10 +627,6 @@ msgstr "" msgid "Nothing found!" msgstr "ಏನೂ ಕಂಡುಬಂದಿಲ್ಲ" -#: library/backend/customizer/options.php:404 -msgid "Number of characters in excerpts for post list." -msgstr "ಪೋಸ್ಟ್ ಪಟ್ಟಿಗಾಗಿ ಆಯ್ದ ಭಾಗಗಳಲ್ಲಿನ ಅಕ್ಷರಗಳ ಸಂಖ್ಯೆ." - #: library/backend/customizer/options.php:357 msgid "Number of posts in a single row (columns)." msgstr "ಒಂದೇ ಸಾಲಿನಲ್ಲಿರುವ ಪೋಸ್ಟ್‌ಗಳ ಸಂಖ್ಯೆ (ಕಾಲಮ್‌ಗಳು)." @@ -664,19 +647,19 @@ msgstr "ಉತ್ಪನ್ನ ಆರ್ಕೈವ್ಸ್ ಪುಟದಲ್ಲ msgid "Number of sidebars to register for the main container of the page" msgstr "ಪುಟದ ಮುಖ್ಯ ಪಾತ್ರೆಯಲ್ಲಿ ನೋಂದಾಯಿಸಲು ಸೈಡ್‌ಬಾರ್‌ಗಳ ಸಂಖ್ಯೆ" -#: library/backend/customizer/options.php:421 +#: library/common/helpers.php:780 msgid "Numbered" msgstr "ಸಂಖ್ಯೆ" -#: library/backend/customizer/options.php:422 +#: library/common/helpers.php:781 msgid "Numbered (Ajax)" msgstr "ಸಂಖ್ಯೆಯ (ಅಜಾಕ್ಸ್)" -#: library/frontend/main-structure.php:789 +#: library/frontend/main-structure.php:818 msgid "Older Posts »" msgstr "ಹಳೆಯ ಪೋಸ್ಟ್‌ಗಳು »" -#: library/frontend/main-structure.php:527 +#: library/frontend/main-structure.php:620 msgid "One comment" msgstr "ಒಂದು ಕಾಮೆಂಟ್" @@ -684,7 +667,7 @@ msgstr "ಒಂದು ಕಾಮೆಂಟ್" msgid "Option available with Pro version" msgstr "ಪ್ರೊ ಆವೃತ್ತಿಯೊಂದಿಗೆ ಆಯ್ಕೆ ಲಭ್ಯವಿದೆ" -#: library/backend/customizer/options.php:573 +#: library/backend/customizer/options.php:429 msgid "Others" msgstr "ಇತರರು" @@ -692,41 +675,33 @@ msgstr "ಇತರರು" msgid "Page Layout" msgstr "ಪುಟದ ವಿನ್ಯಾಸ" -#: library/backend/customizer/options.php:535 -msgid "Pages" -msgstr "ಪುಟಗಳು" +#: library/backend/customizer/options.php:419 +msgid "Page Sections" +msgstr "ಪುಟ ವಿಭಾಗಗಳು" -#: library/backend/customizer/options.php:417 +#: library/common/helpers.php:733 msgid "Pagination" msgstr "ಪುಟದ ಜಾಡುಹಿಡಿತ" -#: library/backend/customizer/options.php:418 -msgid "Paging Navigation display format." -msgstr "ಪುಟದ ಜಾಡುಹಿಡಿತ ಪ್ರದರ್ಶನ ಸ್ವರೂಪ." - -#: library/backend/customizer/options.php:630 +#: library/backend/customizer/options.php:516 #: library/backend/options/class-options-admin.php:141 msgid "Performance" msgstr "ಸಾಮರ್ಥ್ಯ" -#: library/common/helpers.php:578 +#: library/common/helpers.php:582 msgid "PHP Template" msgstr "ಪಿಎಚ್ಪಿ ಟೆಂಪ್ಲೇಟು" -#: library/backend/assets/js/greenlet-controls.js:1198 +#: library/backend/assets/js/greenlet-controls.js:628 msgid "" "Please save and refresh this page to reflect the newly added Widget areas" msgstr "" "ಹೊಸದಾಗಿ ಸೇರಿಸಲಾದ ವಿಜೆಟ್ ಪ್ರದೇಶಗಳನ್ನು ಪ್ರತಿಬಿಂಬಿಸಲು ದಯವಿಟ್ಟು ಈ ಪುಟವನ್ನು ಉಳಿಸಿ " "ಮತ್ತು ರಿಫ್ರೆಶ್ ಮಾಡಿ" -#: library/backend/customizer/options.php:386 -msgid "Post content display format." -msgstr "ವಿಷಯ ಪ್ರದರ್ಶನ ಸ್ವರೂಪವನ್ನು ಪೋಸ್ಟ್ ಮಾಡಿ." - -#: library/backend/customizer/options.php:462 -msgid "Post excerpt more link text" -msgstr "ಪೋಸ್ಟ್ ಆಯ್ದ ಭಾಗಗಳು ಹೆಚ್ಚಿನ ಲಿಂಕ್ ಪಠ್ಯ" +#: library/common/helpers.php:728 +msgid "Post Content" +msgstr "ವಿಷಯವನ್ನು ಪೋಸ್ಟ್ ಮಾಡಿ" #: library/backend/customizer/options.php:312 msgid "Post List" @@ -736,11 +711,16 @@ msgstr "ಪೋಸ್ಟ್ ಪಟ್ಟಿ" msgid "Post List Layout" msgstr "ಪೋಸ್ಟ್ ಪಟ್ಟಿ ವಿನ್ಯಾಸ" -#: library/backend/customizer/options.php:534 -msgid "Posts" -msgstr "ಪೋಸ್ಟ್‌ಗಳು" +#: library/common/helpers.php:726 +msgid "Post Meta" +msgstr "ಪೋಸ್ಟ್ ಮೆಟಾ" + +#: library/backend/customizer/options.php:371 +#: library/backend/customizer/options.php:395 +msgid "Post Sections" +msgstr "ಪೋಸ್ಟ್ ವಿಭಾಗಗಳು" -#: library/backend/customizer/options.php:687 +#: library/backend/customizer/options.php:573 msgid "Posts created with WP Block Editor may break, disable with caution." msgstr "" "WP ಬ್ಲಾಕ್ ಸಂಪಾದಕದೊಂದಿಗೆ ರಚಿಸಲಾದ ಪೋಸ್ಟ್‌ಗಳು ಮುರಿಯಬಹುದು, ಎಚ್ಚರಿಕೆಯಿಂದ " @@ -754,11 +734,11 @@ msgstr "ಪ್ರತಿ ಪುಟಕ್ಕೆ ಪೋಸ್ಟ್‌ಗಳು" msgid "Posts per row" msgstr "ಪ್ರತಿ ಸಾಲಿಗೆ ಪೋಸ್ಟ್‌ಗಳು" -#: library/frontend/footer-structure.php:28 +#: templates/copyright.php:14 msgid "Powered By" msgstr "ಶಕ್ತಿಯ ಅಡಿಪಾಯ:" -#: library/backend/customizer/options.php:723 +#: library/backend/customizer/options.php:609 msgid "Presets" msgstr "ಪೂರ್ವನಿಗದಿಗಳು" @@ -782,11 +762,11 @@ msgstr "ಉತ್ಪನ್ನ ಹುಡುಕಾಟ ಫಲಿತಾಂಶಗಳ msgid "Product Tags Layout" msgstr "ಉತ್ಪನ್ನ ಟ್ಯಾಗ್ಗಳ ವಿನ್ಯಾಸ" -#: library/backend/customizer/options.php:443 -msgid "Published Date" -msgstr "ಪ್ರಕಟಿತ ದಿನಾಂಕ" +#: library/common/helpers.php:745 +msgid "Published" +msgstr "ಪ್ರಕಟಿಸಲಾಗಿದೆ" -#: library/common/helpers.php:555 +#: library/common/helpers.php:559 msgid "Query" msgstr "ಪ್ರಶ್ನೆ" @@ -794,33 +774,33 @@ msgstr "ಪ್ರಶ್ನೆ" msgid "Report a bug" msgstr "ದೋಷವನ್ನು ವರದಿ ಮಾಡಿ" -#: library/backend/assets/js/greenlet-controls.js:1754 +#: library/backend/assets/js/greenlet-controls.js:1190 msgid "Right" msgstr "ಬಲ" -#: library/backend/customizer/options.php:549 +#: library/backend/customizer/options.php:443 msgid "Schema Markup" msgstr "ಸ್ಕೀಮಾ ಮಾರ್ಕಪ್" -#: library/frontend/main-structure.php:1071 -#: library/frontend/main-structure.php:1076 -#: library/frontend/main-structure.php:1078 +#: library/frontend/main-structure.php:1100 +#: library/frontend/main-structure.php:1105 +#: library/frontend/main-structure.php:1107 msgid "Search" msgstr "ಹುಡುಕು" -#: library/frontend/main-structure.php:1076 +#: library/frontend/main-structure.php:1105 msgid "Search …" msgstr "ಹುಡುಕು …" -#: library/backend/customizer/options.php:587 +#: library/backend/customizer/options.php:457 msgid "Search button" msgstr "ಹುಡುಕಾಟ ಬಟನ್" -#: library/frontend/main-structure.php:1075 +#: library/frontend/main-structure.php:1104 msgid "Search for:" msgstr "ಇದಕ್ಕಾಗಿ ಹುಡುಕು" -#: library/backend/customizer/options.php:588 +#: library/backend/customizer/options.php:458 msgid "Search form submit button content." msgstr "ಹುಡುಕಾಟ ಫಾರ್ಮ್ ಬಟನ್ ವಿಷಯವನ್ನು ಸಲ್ಲಿಸಿ." @@ -828,13 +808,17 @@ msgstr "ಹುಡುಕಾಟ ಫಾರ್ಮ್ ಬಟನ್ ವಿಷಯವನ msgid "Search: " msgstr "ಹುಡುಕಿ: " -#: library/backend/assets/js/greenlet-controls.js:1689 +#: library/backend/assets/js/greenlet-controls.js:1125 msgid "Select Columns Layout" msgstr "ಕಾಲಮ್ ಅಟ್ಟಣೆ ಆಯ್ಕೆಮಾಡಿ" -#: library/backend/customizer/options.php:499 -msgid "Separator between links in breadcrumb. Eg: / or >" -msgstr "ಬ್ರೆಡ್‌ಕ್ರಂಬ್‌ನಲ್ಲಿನ ಲಿಂಕ್‌ಗಳ ನಡುವೆ ವಿಭಜಕ. ಉದಾ: / ಅಥವಾ>" +#: library/common/helpers.php:756 +msgid "Separator" +msgstr "ವಿಭಜಕ" + +#: library/common/helpers.php:757 +msgid "Separator between links. Eg: / or >" +msgstr "ಲಿಂಕ್‌ಗಳ ನಡುವೆ ವಿಭಜಕ. ಉದಾ: / ಅಥವಾ>" #: library/support/woocommerce/backend/options.php:133 msgid "Shop Design" @@ -848,34 +832,18 @@ msgstr "ಅಂಗಡಿ ವಿನ್ಯಾಸ" msgid "Shopping Cart" msgstr "ಶಾಪಿಂಗ್ ಕಾರ್ಟ್" -#: library/backend/assets/js/greenlet-controls.js:1764 +#: library/backend/assets/js/greenlet-controls.js:1200 msgid "Show" msgstr "ತೋರಿಸು" -#: library/backend/customizer/options.php:513 -msgid "Show Author Info" -msgstr "ಲೇಖಕರ ಮಾಹಿತಿಯನ್ನು ತೋರಿಸಿ" - -#: library/backend/customizer/options.php:621 +#: library/backend/customizer/options.php:491 msgid "Show back to top button at position." msgstr "ಸ್ಥಾನದಲ್ಲಿರುವ ಮೇಲಿನ ಗುಂಡಿಗೆ ಹಿಂತಿರುಗಿ." -#: library/backend/customizer/options.php:607 +#: library/backend/customizer/options.php:477 msgid "Show back to top scroll button." msgstr "ಮೇಲಿನ ಸ್ಕ್ರಾಲ್ ಬಟನ್‌ಗೆ ಹಿಂತಿರುಗಿ." -#: library/backend/customizer/options.php:532 -msgid "Show Comments" -msgstr "ಪ್ರತಿಕ್ರಿಯೆಗಳನ್ನು ತೋರಿಸಿ" - -#: library/backend/customizer/options.php:372 -msgid "Show featured image on post list and archives." -msgstr "ಪೋಸ್ಟ್ ಪಟ್ಟಿ ಮತ್ತು ಆರ್ಕೈವ್‌ಗಳಲ್ಲಿ ಪ್ರಧಾನ ಚಿತ್ರವನ್ನು ತೋರಿಸಿ." - -#: library/backend/customizer/options.php:439 -msgid "Show Meta Info" -msgstr "ಮೆಟಾ ಮಾಹಿತಿಯನ್ನು ತೋರಿಸಿ" - #: library/backend/customizer/options.php:55 msgid "Show Tagline" msgstr "ಕೂಗುನುಡಿ ತೋರಿಸಿ" @@ -888,8 +856,8 @@ msgstr "ಶೀರ್ಷಿಕೆಯನ್ನು ತೋರಿಸಿ" msgid "Show your love" msgstr "ನಿಮ್ಮ ಪ್ರೀತಿಯನ್ನು ತೋರಿಸಿ" -#: library/backend/assets/js/greenlet-controls.js:389 -#: library/backend/assets/js/greenlet-controls.js:2024 +#: library/backend/assets/js/greenlet-controls.js:380 +#: library/backend/assets/js/greenlet-controls.js:1744 msgid "Sidebar" msgstr "ಅಡ್ಡಪಟ್ಟಿ" @@ -899,11 +867,15 @@ msgstr "ಅಡ್ಡಪಟ್ಟಿ" msgid "Sidebar %s" msgstr "ಅಡ್ಡಪಟ್ಟಿ %s" -#: library/backend/customizer/options.php:420 +#: library/common/helpers.php:779 msgid "Simple" msgstr "ಸರಳ" -#: library/backend/customizer/options.php:470 +#: library/backend/customizer/options.php:405 +msgid "Single Page" +msgstr "ಏಕ ಪುಟ" + +#: library/backend/customizer/options.php:381 msgid "Single Post" msgstr "ಏಕ ಪೋಸ್ಟ್" @@ -919,7 +891,7 @@ msgstr "ಸೈಟ್ ವಿನ್ಯಾಸ." msgid "Skip to content" msgstr "ವಿಷಯಕ್ಕೆ ತೆರಳಿ" -#: library/backend/assets/js/greenlet-controls.js:1685 +#: library/backend/assets/js/greenlet-controls.js:1121 msgid "Sticky" msgstr "ಅಂಟಿಕೊಂಡ" @@ -927,7 +899,11 @@ msgstr "ಅಂಟಿಕೊಂಡ" msgid "String is empty." msgstr "ಸ್ಟ್ರಿಂಗ್ ಖಾಲಿಯಾಗಿದೆ." -#: library/backend/assets/js/greenlet-controls.js:1729 +#: library/addons/colorwings/class-colorwings-admin.php:100 +msgid "Style Editor" +msgstr "ಶೈಲಿ ಸಂಪಾದಕ" + +#: library/backend/assets/js/greenlet-controls.js:1165 msgid "Sum should be" msgstr "ಮೊತ್ತ ಇರಬೇಕು" @@ -939,31 +915,35 @@ msgstr "ಮೊತ್ತ 12 ಆಗಿರಬೇಕು" msgid "Support forum" msgstr "ಬೆಂಬಲ ವೇದಿಕೆ" -#: library/backend/customizer/options.php:446 +#: library/common/helpers.php:748 msgid "Tags" msgstr "ಟ್ಯಾಗ್ಗಳು" -#: library/common/helpers.php:550 +#: library/common/helpers.php:554 msgid "Target" msgstr "ಗುರಿ" -#: library/common/helpers.php:583 +#: library/common/helpers.php:587 msgid "Template" msgstr "ಟೆಂಪ್ಲೇಟು" -#: library/backend/customizer/options.php:590 +#: library/backend/customizer/options.php:460 msgid "Text" msgstr "ಪಠ್ಯ" -#: library/backend/customizer/options.php:738 +#: library/backend/customizer/options.php:624 #: library/backend/options/class-options-admin.php:142 msgid "Theme Presets" msgstr "ಥೀಮ್ ಪೂರ್ವನಿಗದಿಗಳು" -#: library/frontend/main-structure.php:859 +#: library/frontend/main-structure.php:888 msgid "There are no posts meeting your criteria" msgstr "ನಿಮ್ಮ ಮಾನದಂಡಗಳನ್ನು ಪೂರೈಸುವ ಯಾವುದೇ ಪೋಸ್ಟ್‌ಗಳಿಲ್ಲ" +#: library/common/helpers.php:725 +msgid "Title" +msgstr "ಶೀರ್ಷಿಕೆ" + #: library/backend/customizer/options.php:66 msgid "Title Styles" msgstr "ಶೀರ್ಷಿಕೆ ಶೈಲಿಗಳು" @@ -973,15 +953,15 @@ msgstr "ಶೀರ್ಷಿಕೆ ಶೈಲಿಗಳು" msgid "Toggle Menu" msgstr "ಟಾಗಲ್ ಮೆನು" -#: library/backend/customizer/options.php:444 -msgid "Updated Date" -msgstr "ನವೀಕರಿಸಿದ ದಿನಾಂಕ" +#: library/common/helpers.php:746 +msgid "Updated" +msgstr "ನವೀಕರಿಸಲಾಗಿದೆ" -#: library/backend/assets/js/greenlet-controls.js:1740 +#: library/backend/assets/js/greenlet-controls.js:1176 msgid "Vertical" msgstr "ಲಂಬ" -#: library/frontend/main-structure.php:527 +#: library/frontend/main-structure.php:620 #, php-format msgid "View all % comments" msgstr "ಎಲ್ಲಾ %s ಕಾಮೆಂಟ್‌ಗಳನ್ನು ವೀಕ್ಷಿಸಿ" @@ -994,15 +974,15 @@ msgstr "ಶಾಪಿಂಗ್ ಕಾರ್ಟ್ ವೀಕ್ಷಿಸಿ" msgid "Visual Style Editor" msgstr "ವಿಷುಯಲ್ ಸ್ಟೈಲ್ ಎಡಿಟರ್" -#: library/common/helpers.php:572 +#: library/common/helpers.php:576 msgid "Widgets" msgstr "ವಿಡ್ಗೆಟ್ಗಳು" -#: library/frontend/footer-structure.php:25 +#: templates/copyright.php:11 msgid "Y" msgstr "Y" -#: templates/breadcrumb.php:68 library/frontend/main-structure.php:268 +#: templates/breadcrumb.php:68 library/frontend/main-structure.php:269 msgctxt "Yearly archives date format" msgid "Y" msgstr "Y" diff --git a/package-lock.json b/package-lock.json index 22581af..368a5af 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "greenlet", - "version": "2.3.0", + "version": "2.4.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1754,6 +1754,11 @@ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true }, + "classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + }, "clean-css": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz", @@ -3550,6 +3555,15 @@ "fuse.js": "^3.4.5" } }, + "react-sortablejs": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/react-sortablejs/-/react-sortablejs-6.0.0.tgz", + "integrity": "sha512-vzi+TWOnofcYg+dYnC/Iz/ZZkBGG76uM6KaLwuAqBk0349JQxIy3PZizbK0TJdLlK6NnLt4CiEyyQXSSnVYvEw==", + "requires": { + "classnames": "^2.2.6", + "tiny-invariant": "^1.1.0" + } + }, "read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -4221,6 +4235,11 @@ } } }, + "tiny-invariant": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz", + "integrity": "sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==" + }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", diff --git a/package.json b/package.json index 88b77f3..dfef06a 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,10 @@ { "name": "greenlet", - "version": "2.4.0", + "version": "2.5.0", "description": "Extremely fast and highly customizable WordPress theme.", "dependencies": { - "react-select-search": "^2.2.3" + "react-select-search": "^2.2.3", + "react-sortablejs": "^6.0.0" }, "devDependencies": { "@babel/core": "^7.12.9", diff --git a/readme.txt b/readme.txt index 7775bc0..051814d 100644 --- a/readme.txt +++ b/readme.txt @@ -3,10 +3,10 @@ Contributors: greenlet License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html Tags: blog, custom-background, custom-colors, editor-style, featured-images, footer-widgets, full-width-template, rtl-language-support, sticky-post, theme-options, threaded-comments, translation-ready, block-styles, wide-blocks, custom-menu, custom-logo, entertainment, one-column, two-columns, three-columns, four-columns, right-sidebar, left-sidebar, e-commerce, post-formats -Tested up to: 5.6 +Tested up to: 5.6.1 Requires at least: 5.3 Requires PHP: 5.6 -Stable tag: 2.4.0 +Stable tag: 2.5.0 Extremely fast and highly customizable WordPress theme. @@ -36,6 +36,8 @@ Greenlet also is SEO friendly. Theme integrates schema.org efficiently for Searc - Powerful Header and Footer builder - Add Logo, Menu & Togglers to headers & footers - Header and Footer Contents from Widgets or Template File +- Content Layout - Section ordering +- Content Layout - Section visibility - Pagination - Default (Newer and Older Posts) - Pagination - Numbered - Pagination - Numbered Ajax @@ -63,21 +65,20 @@ Greenlet also is SEO friendly. Theme integrates schema.org efficiently for Searc == Changelog == -- New: Option to set primary header, footer -- New: Header, footer builder content sequencing -- New: Documentation links -- Improvement: Accent color change -- Improvement: Header, footer builder with more source options -- Improvement: Update Colorwings to 1.3.0 -- Improvement: Better frontend icons -- Improvement: Better backend icons -- Improvement: Better backend styles -- Improvement: Better customizer notice display -- Improvement: More customizer tooltip -- Improvement: Screenshot update -- Fix: Vertical header, footer fix -- Fix: Inline styles order fix -- Fix: Accessibility fixes +- New: Post sections ordering +- New: Post sections visibility +- New: Section layout for Post list, Single Post & Page +- New: Editable copyright section +- New: Background repeat option +- Improvement: Better search bar styling +- Improvement: Bootstrap styles fix +- Improvement: Bootstrap upgrade to 4.6.0 +- Improvement: Better customizer Content Layout options +- Improvement: Customizer options rearrange & hint +- Improvement: Replace react-sortable with react-sorablejs +- Improvement: Handle Deprecated functions +- Fix: Few frontend styles fixes +- Fix: Removed legacy font control == Copyright == @@ -102,11 +103,6 @@ Screenshot used in the theme is a bespoke image created by the theme author and All the icons used in the theme are created by the theme author and can be distributed under the terms of the GNU GPL v2. -= Choices.js License = - -choices.js is used to create configurable select box by Josh Johnson. (https://github.com/jshjohnson/Choices) -Distributed under the MIT License - = Bootstrap Licence = Bootstrap is HTML, CSS, and JavaScript framework for developing responsive, mobile first projects on the web. (https://github.com/twbs/bootstrap) @@ -117,9 +113,14 @@ Distributed under the MIT License Colorwings is a visual style editor for WordPress by Karthik Bhat. (https://github.com/karthikax/colorwings/) Distributed under the MIT License -= React Sortable HOC Licence = += SortableJS Licence = + +Sortable is a JavaScript library for reorderable drag-and-drop lists. (https://github.com/SortableJS/Sortable/) +Distributed under the MIT License + += react-sortablejs Licence = -React Sortable HOC is a components sorting library by Claudéric Demers. (https://github.com/clauderic/react-sortable-hoc) +react-sortablejs is a React binding library for SortableJS. (https://github.com/SortableJS/react-sortablejs) Distributed under the MIT License = react-select-search Licence = diff --git a/rollup.config.js b/rollup.config.js index 3f64354..35eb975 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -16,6 +16,7 @@ import postcss from 'postcss' const GLOBALS = { jQuery: 'jQuery', react: 'React', + sortablejs: 'Sortable', 'react-dom': 'ReactDOM', } @@ -25,6 +26,7 @@ const EXTERNAL = [ 'react-dom', 'React', 'ReactDOM', + 'sortablejs', ] const getCWBanner = filename => `/** @license ColorWings v1.1.0 @@ -178,6 +180,10 @@ const cssPaths = [ { inputPath: 'src/frontend/css/shop.scss', outputPath: 'assets/css/shop.css', outputMin: 'assets/css/shop.min.css', +}, { + inputPath: 'src/frontend/css/bootstrap-extra.scss', + outputPath: 'assets/css/bootstrap-extra.css', + outputMin: 'assets/css/bootstrap-extra.min.css', }, { inputPath: 'library/pro/src/css/styles.scss', outputPath: 'library/pro/assets/css/styles.css', diff --git a/src/backend/colorwings b/src/backend/colorwings index 485272f..c49afd6 160000 --- a/src/backend/colorwings +++ b/src/backend/colorwings @@ -1 +1 @@ -Subproject commit 485272fb71368dae634e2ac30fc354409dbaab4f +Subproject commit c49afd6a80d5f20d61821588e60894231412d728 diff --git a/src/backend/main/customizer/controls/components/ContentLayout.js b/src/backend/main/customizer/controls/components/ContentLayout.js new file mode 100644 index 0000000..3bb273c --- /dev/null +++ b/src/backend/main/customizer/controls/components/ContentLayout.js @@ -0,0 +1,97 @@ +import { clone } from '../../Helpers' +import Sorter from './Sorter' + +function ContentLayout( { control, updateSettings } ) { + const initItems = clone( control.setting._value ) + + // Format initItems by adding values to default/setting values from Items. + for ( const group in initItems ) { + if ( ! initItems.hasOwnProperty( group ) ) continue + initItems[ group ].forEach( item => { + item.name = control.params.items[ item.id ] + item.visible = ! ( ( 'visible' in item ) && ! item.visible ) + if ( 'meta' in item ) { + if ( 'layout' in item.meta ) { + item.meta.layout.val.forEach( metaItem => { + metaItem.name = control.params.items[ `meta:${ item.id }` ][ metaItem.id ] + metaItem.visible = ! ( ( 'visible' in metaItem ) && ! metaItem.visible ) + } ) + } + for ( const ctrl in item.meta ) { + if ( ! item.meta.hasOwnProperty( ctrl ) ) continue + if ( ctrl in control.params.items.controls ) { + item.meta[ ctrl ] = { ...item.meta[ ctrl ], ...control.params.items.controls[ ctrl ] } + } + } + } + } ) + } + + const [ state, setState ] = React.useState( initItems ) + + const updateNow = ( current = false ) => { + if ( current === false ) current = state + const formatted = {} + for ( const group in current ) { + if ( ! current.hasOwnProperty( group ) ) continue + formatted[ group ] = [] + current[ group ].forEach( item => { + const fItem = { id: item.id, visible: item.visible } + if ( 'meta' in item ) { + fItem.meta = {} + for ( const ctrl in item.meta ) { + if ( ! item.meta.hasOwnProperty( ctrl ) ) continue + if ( item.meta[ ctrl ].type === 'sorter' ) { + fItem.meta[ ctrl ] = { val: item.meta[ ctrl ].val.map( vi => ( { id: vi.id, visible: vi.visible } ) ) } + } else { + fItem.meta[ ctrl ] = { val: item.meta[ ctrl ].val } + } + } + } + formatted[ group ].push( fItem ) + } ) + } + updateSettings( formatted ) + } + + const onChange = ( list, group, update = false ) => { + setState( prev => { + const current = clone( prev ) + current[ group ] = list + ;( update === true ) && updateNow( current ); + return current + } ) + } + + const [ hiddens, setHiddens ] = React.useState( [] ) + const onPreviewChange = ( previewObject ) => { + setHiddens( ( control.params.id === 'content_layout_list' ) && previewObject.pages.is_home ? [ 'above' ] : [] ) + } + + React.useEffect( () => { + cw.Evt.on( 'preview-object-ready', onPreviewChange ) + }, [] ) + + return ( + <> + { control.params.label } +
    + { control.params.groups.map( group => ( +
    +
    + { control.params.groups.length > 1 &&
    { group }
    } + onChange( list, group, update ) } + onEnd={ () => updateNow() } + /> +
    +
    + ) ) } +
    + + ) +} + +export default ContentLayout diff --git a/src/backend/main/customizer/controls/components/RowItems.js b/src/backend/main/customizer/controls/components/RowItems.js index c41f4cd..36b99e7 100644 --- a/src/backend/main/customizer/controls/components/RowItems.js +++ b/src/backend/main/customizer/controls/components/RowItems.js @@ -1,6 +1,7 @@ -import SelectSearch from 'react-select-search' +import { ReactSortable } from 'react-sortablejs' + import Popup from './Popup/Popup' -import { debounce, arrayMoveMutate } from '../../Helpers' +import { debounce, clone } from '../../Helpers' function RowItems( { props } ) { const { __ } = wp.i18n @@ -100,18 +101,20 @@ function RowItems( { props } ) { const debouncedChange = debounce( onChange, 500 ) + const { Select } = cw.components + const renderProp = ( propKey, prop ) => { const defaultValue = ( currentMeta !== undefined ) ? currentMeta[ propKey ] : '' if ( 'select' === prop.type ) { const forwardProps = { options: Object.entries( prop.items ).map( ( [ value, name ] ) => ( { name, value } ) ), - value: defaultValue, + val: defaultValue, onChange: val => onChange( val, propKey ), } if ( ( forwardProps.options.length === 0 ) && ( 'empty' in prop ) ) { return { prop.empty } } - return + return debouncedChange( e.target.value, propKey ) } /> } @@ -135,15 +138,34 @@ function RowItems( { props } ) { ) : null } - const DragHandle = SortableHOC.SortableHandle(() => ::) - const ColItem = SortableHOC.SortableElement(( { children } ) => ( children ) ) - const ColItems = SortableHOC.SortableContainer(( { children } ) =>
    { children }
    ) + const Sorter = ( { rowItems, col } ) => { + const [ list, setList ] = React.useState( clone( rowItems ) ) - const onSortEnd = ( col, from, to ) => { - updateRows( ( prev ) => { - arrayMoveMutate( prev[ i ].items[ col ], from, to ) - return prev - } ) + const onEnd = () => { + const currentItems = list.map( itm => ( { id: itm.id } ) ) + updateRows( prev => { + const current = clone( prev ) + current[ i ].items[ col ] = currentItems + return current + } ) + } + + return ( + + { rowItems.map( ( item, k ) => ( +
    +
    onClickItem( item.id ? item.id : item, col, k ) }> + :: + { item.id ? item.id : item } +
    + + +
    + ) ) } +
    + ) } return ( @@ -156,21 +178,8 @@ function RowItems( { props } ) { return (
    col-{ col }
    - onSortEnd( col, oldIndex, newIndex ) }> - { rowItems.map( ( item, k ) => ( - -
    -
    onClickItem( item.id ? item.id : item, col, k ) }> - - { item.id ? item.id : item } -
    - - -
    -
    - ) ) } +
    +
    @@ -179,7 +188,7 @@ function RowItems( { props } ) { ) ) }
    - +
    ) } ) } diff --git a/src/backend/main/customizer/controls/components/Sorter.js b/src/backend/main/customizer/controls/components/Sorter.js new file mode 100644 index 0000000..16e6de4 --- /dev/null +++ b/src/backend/main/customizer/controls/components/Sorter.js @@ -0,0 +1,76 @@ +import { ReactSortable } from 'react-sortablejs' + +import { clone } from '../../Helpers' + +function Sorter( { items, group, onChange, onEnd } ) { + const changeMeta = ( i, ctrl, metaList, update = false ) => { + const current = clone( items ) + current[ i ].meta[ ctrl ].val = metaList + onChange( current, update ) + } + + const toggleVisible = ( i ) => { + const current = clone( items ) + current[ i ] = { ...current[ i ], visible: ! current[ i ].visible } + onChange( current, true ) + } + + const toggleMeta = ( i ) => { + const current = clone( items ) + current[ i ] = { ...current[ i ], open: ( 'open' in current[ i ] ) ? ! current[ i ].open : true } + onChange( current ) + } + + const getEscaped = ( char ) => { + const chars = { ' ': '\u00A0', '–': '\u002013', '—': '\u002014', '¦': '\u00A6', '•': '\u002022', '&tri;': '\u002023', '…': '\u002026', '‹': '\u002039', '›': '\u00203A', '«': '\u00AB', '»': '\u00BB' } + return ( char in chars ) ? chars[ char ] : char + } + + return ( + + { items.map( ( item, i ) => ( +
    + :: + { item.name } + + { ( 'meta' in item ) && ( + <> + +
    + { Object.entries( item.meta ).map( ( [ ctrl, meta ] ) => { + return ( +
    + { meta.label &&
    { meta.label }
    } + { meta.desc &&
    { meta.desc }
    } + { ( meta.type === 'sorter' ) && ( + changeMeta( i, ctrl, metaList, update ) } onEnd={ onEnd }/> + ) } + { ( meta.type === 'input' ) && ( + changeMeta( i, ctrl, e.target.value, true ) }/> + ) } + { ( meta.type === 'number' ) && ( + changeMeta( i, ctrl, e.target.value, true ) }/> + ) } + { ( meta.type === 'radio' ) && ( + <> + { Object.entries( meta.choices ).map( ( [ choice, label ] ) => ( + + ) ) } + + ) } +
    + ) + } ) } +
    + + ) } +
    + ) ) } +
    + ) +} + +export default Sorter diff --git a/src/backend/main/customizer/controls/content-layout.js b/src/backend/main/customizer/controls/content-layout.js new file mode 100644 index 0000000..ca5ad00 --- /dev/null +++ b/src/backend/main/customizer/controls/content-layout.js @@ -0,0 +1,21 @@ +/** + * Content Layout Control. + * + * @package greenlet + */ + +import ContentLayout from './components/ContentLayout' + +wp.customize.controlConstructor['content-layout'] = wp.customize.Control.extend( + { + ready: function() { + const control = this + + const updateSettings = ( val ) => { + control.setting.set( val ) + } + + ReactDOM.render( , document.getElementById( `${control.id}-root` ) ) + } + } +) diff --git a/src/backend/main/customizer/controls/font.js b/src/backend/main/customizer/controls/font.js deleted file mode 100644 index 1b9a64a..0000000 --- a/src/backend/main/customizer/controls/font.js +++ /dev/null @@ -1,184 +0,0 @@ -/** - * Font Control. - * - * @package greenlet - */ - -import { $ } from '../Helpers' - -wp.customize.controlConstructor['font'] = wp.customize.Control.extend( - { - ready: function() { - var control = this - var select = $( '#font-family-' + control.id ) - var sSelect = $( '#font-style-' + control.id ) - var wSelect = $( '#font-weight-' + control.id ) - var sRange = $( '#font-size-' + control.id ) - var sizeIp = $( '#font-size-ip-' + control.id ) - var suSelect = $( '#font-size-unit-' + control.id ) - - var currentFontDetails = {} - - function setFontOptions( fontFamily = false, fontStyle = false, fontWeight = false, update = false ) { - var font = JSON.parse( JSON.stringify( control.setting._value ) ) - - // If no details are given ( initial load ) set Font Family options. - if ( ! fontFamily && ! fontStyle && ! fontWeight ) { - fontFamily = font.family - var display = ( 'Default' === fontFamily ) ? 'Default System Font' : fontFamily - var options = '' - select.html( options ) - } - - // If fontFamily is given set Font Style options. - if ( ! fontStyle && ! fontWeight ) { - // fontFamily is given. Update font details. - currentFontDetails = control.getFontDetails( fontFamily ) - - fontStyle = font.style - var sOptions = '' - - // If fontStyle not in currentFontDetails.style set first available style. - if ( ! currentFontDetails.variants.hasOwnProperty( fontStyle ) ) { - fontStyle = Object.keys( currentFontDetails.variants )[0] - } - - for ( var style in currentFontDetails.variants ) { - var sSelected = ( style === fontStyle ) ? 'selected="selected"' : '' - sOptions += '' - } - sSelect.html( sOptions ) - } - - // If fontStyle is given set Font Weight options. - if ( ! fontWeight ) { - currentFontDetails[ 'style' ] = fontStyle - - fontWeight = font.weight - var fontWeights = currentFontDetails.variants[ fontStyle ] - var weightLength = fontWeights.length - - // If fontWeight not in currentFontDetails.style[ fontStyle ] set nearest weight. - if ( currentFontDetails.variants[ fontStyle ].indexOf( fontWeight ) === -1 ) { - fontWeight = control.getNearestWeight( fontWeight, currentFontDetails.variants[ fontStyle ] ) - } - - var wOptions = '' - for ( var j = 0; j < weightLength; j++ ) { - var wSelected = ( fontWeights[j].toString() === fontWeight ) ? 'selected="selected"' : '' - wOptions += '' - } - wSelect.html( wOptions ) - } - - if ( fontWeight ) { - currentFontDetails[ 'weight' ] = fontWeight - } - - if ( update ) { - font[ 'family' ] = currentFontDetails.family - font[ 'style' ] = currentFontDetails.style - font[ 'weight' ] = currentFontDetails.weight - font[ 'source' ] = currentFontDetails.source - font[ 'category' ] = currentFontDetails.category - control.setting.set( font ) - } - } - setFontOptions() - - var choiceObj = new Choices( '#font-family-' + control.id, { 'shouldSort': false } ) - $( control.selector + ' .choices' ).on( 'click', function() { control.addFontToChoices( choiceObj, currentFontDetails.family ) } ) - - select.on( 'change', function() { setFontOptions( this.value, false, false, true ) } ) - sSelect.on( 'change', function() { setFontOptions( false, this.value, false, true ) } ) - wSelect.on( 'change', function() { setFontOptions( false, false, this.value, true ) } ) - - function setFontSize() { - var size = control.setting._value.size - var matches = size.match( /^([+-]?(?:\d+|\d*\.\d+))([a-z]*|%)$/ ) - var fontSize = matches[ 1 ] - var sizeUnit = matches[ 2 ] - sRange.val( fontSize ) - sizeIp.val( fontSize ) - suSelect.val( sizeUnit ) - } - setFontSize() - - function updateFontSize( element ) { - var font = JSON.parse( JSON.stringify( control.setting._value ) ) - var fontSize = ( element !== suSelect[0] ) ? element.value : sizeIp.val() - var sizeUnit = ( element === suSelect[0] ) ? element.value : suSelect.val() - if ( element === sRange[0] ) { - sizeIp.val( fontSize ) - } else if ( element === sizeIp[0] ) { - sRange.val( fontSize ) - } - - font[ 'size' ] = '' + fontSize + sizeUnit - control.setting.set( font ); - } - - sRange.on( 'change', function() { updateFontSize( this ) } ) - sizeIp.on( 'change', function() { updateFontSize( this ) } ) - suSelect.on( 'change', function() { updateFontSize( this ) } ) - }, - addFontToChoices: function( choiceObj, currentFont ) { - if ( 'choicesAdded' in choiceObj ) { - return - } - var allChoices = this.getFontChoices( currentFont ) - choiceObj.setChoices( allChoices, 'value', 'label', true ) - choiceObj.showDropdown() - - choiceObj.choicesAdded = true - }, - getFontChoices: function( currentFont ) { - var allChoices = [{ - label: 'System Fonts', - choices: [] - }, { - label: 'Google Fonts', - choices: [] - }] - - for ( var systemFont in greenletAllFonts.system ) { - var label = ( 'Default' === systemFont ) ? 'Default System Font' : systemFont - allChoices[0].choices.push( { value: systemFont, label: label, selected: ( systemFont === currentFont ) } ) - } - - for ( var googleFont in greenletAllFonts.google ) { - allChoices[1].choices.push( { value: googleFont, label: googleFont, selected: ( googleFont === currentFont ) } ) - } - - return allChoices - }, - getFontDetails: function( fontFamily ) { - var details = { 'family': fontFamily, 'source': 'system' } - if ( greenletAllFonts.system.hasOwnProperty( fontFamily ) ) { - details[ 'variants' ] = this.params.fontDefaults.variants - details[ 'category' ] = greenletAllFonts.system[ fontFamily ].category - } else if ( greenletAllFonts.google.hasOwnProperty( fontFamily ) ) { - var variants = greenletAllFonts.google[ fontFamily ][ 0 ] - var category = greenletAllFonts.google[ fontFamily ][ 1 ] - - details[ 'source' ] = 'google' - details[ 'category' ] = category - details[ 'variants' ] = {} - if ( variants[0].length > 0 ) { - details[ 'variants' ][ 'normal' ] = variants[0] - } - if ( variants[1].length > 0 ) { - details[ 'variants' ][ 'italic' ] = variants[1] - } - } - return details; - }, - getNearestWeight: function( weight, weightsArray ) { - return weightsArray.reduce( - function ( prev, curr ) { - return Math.abs( curr - weight ) < Math.abs( prev - weight ) ? curr : prev - } - ) - } - } -) diff --git a/src/backend/main/customizer/controls/setup.js b/src/backend/main/customizer/controls/setup.js index b56d5f2..26840e6 100644 --- a/src/backend/main/customizer/controls/setup.js +++ b/src/backend/main/customizer/controls/setup.js @@ -83,6 +83,9 @@ const insertDocLinks = () => { }, { id: 'sub-accordion-section-blog_single', link: 'customize/single-post-design/' + }, { + id: 'sub-accordion-section-blog_page', + link: 'customize/single-page-design/' }, { id: 'sub-accordion-section-performance', link: 'customize/performance/' diff --git a/src/backend/main/customizer/greenlet-controls.js b/src/backend/main/customizer/greenlet-controls.js index c9cc407..45a35f1 100644 --- a/src/backend/main/customizer/greenlet-controls.js +++ b/src/backend/main/customizer/greenlet-controls.js @@ -10,6 +10,7 @@ import './controls/radio-image' import './controls/template' import './controls/template-selector' import './controls/cover-layout' +import './controls/content-layout' import './controls/length' import './controls/range' import './controls/color' diff --git a/src/backend/main/customizer/greenlet-controls.scss b/src/backend/main/customizer/greenlet-controls.scss index 166b4d4..873f0be 100644 --- a/src/backend/main/customizer/greenlet-controls.scss +++ b/src/backend/main/customizer/greenlet-controls.scss @@ -158,6 +158,24 @@ height: 100%; } +#accordion-section-title_tagline, +#accordion-panel-layout, +#accordion-panel-blog, +#accordion-section-performance, +#accordion-section-presets, +#accordion-section-extra_styles { + h3:before { + content: ''; + width: 4px; + height: 4px; + position: absolute; + right: 6px; + top: calc(50% - 2px); + background: var(--accent); + border-radius: 50%; + } +} + #accordion-section-framework { margin-bottom: 15px; } @@ -459,12 +477,16 @@ } } - .col-name, .col-items { + .col-name, .col-items, .col-items .sortable { padding: 5px; display: flex; flex-wrap: wrap; column-gap: 10px; - row-gap: 15px; + row-gap: 10px; + } + + .col-items .sortable { + padding: 0; } .col-name { @@ -642,6 +664,7 @@ height: 24px; line-height: 24px; font-size: 13px; + border-radius: 0; } } @@ -848,38 +871,6 @@ margin-bottom: 10px; } -.gl-font .size-wrap { - margin-top: 10px; -} - -.gl-row .range-wrap { - padding-right: 5px; - line-height: 1.8; -} - -.gl-font .font-unit { - background-position: right 2px top 55%; - padding: 0 18px 0 5px; -} - -.customize-control-font { - margin-bottom: 25px; -} - -.customize-control.togglable { - max-height: 500px; - transition: .5s all; - opacity: 1; -} - -.customize-control.collapse { - max-height: 0; - overflow: hidden; - margin: 0; - padding: 0; - opacity: 0; -} - .aspect { position: absolute; left: 40%; @@ -957,3 +948,189 @@ } } } + +.gl-sorter { + .group { + position: relative; + padding: 5px 0; + + &.top, &.middle, &.bottom { + &:before { + content: ''; + width: calc(100% + 10px); + height: 100%; + position: absolute; + top: 0; + left: -6px; + border: 1px dashed #bbb; + border-top-color: transparent; + border-bottom-color: transparent; + } + } + + &.top { + padding-top: 22px; + + &:before { + border-top-color: #bbb; + } + + &:after { + content: 'CARD'; + top: 0; + left: 0; + position: absolute; + font-size: 8px; + font-weight: 600; + color: #999; + } + } + + &.bottom { + padding-bottom: 8px; + + &:before { + border-bottom-color: #bbb; + } + } + + &.above, &.below { + padding: 20px 0 10px; + } + } + + .group-inner { + background: #e6e6e6; + padding: 1px 5px 5px 0; + min-height: 44px; + box-sizing: border-box; + position: relative; + } + + .group-title { + position: absolute; + left: 50%; + top: -8px; + font-size: 8px; + line-height: 14px; + background: #e6e6e6; + padding: 0 10px; + text-transform: uppercase; + font-weight: 600; + color: #999; + transform: translateX(-50%); + border-radius: 50%; + } + + .item { + border: 1px solid #c4c8ca; + margin: 5px 0 0 5px; + background: #fff; + } + + .hidden-item { + opacity: .6; + transition: .2s opacity; + + &:hover { + opacity: 1; + } + } + + .handle { + padding: 12px; + display: inline-block; + line-height: .7; + font-size: 16px; + cursor: move; + } + + .title { + font-weight: 500; + } + + button { + float: right; + padding: 8px 6px 5px; + background: none; + border: 1px solid transparent; + border-left-color: #eee; + color: #565f67; + cursor: pointer; + + &:focus { + outline: none; + border-color: var(--accent); + box-shadow: inset 0 0 0 1px var(--accent); + } + } + + .dashicons { + font-size: 16px; + + &:after { + opacity: 0; + margin-left: -4px; + } + } + + .dashicons-visibility:after { + content: '\f530'; + } + + .dashicons-hidden:after { + content: '\f177'; + } + + button:hover .dashicons-visibility, button:hover .dashicons-hidden { + &:before { + font-size: 0; + opacity: 0; + } + + &:after { + opacity: 1; + } + } + + .toggler .dashicons { + font-size: 14px; + line-height: 20px; + transition: .2s transform; + } + + .toggler.open .dashicons { + transform: rotateZ( -180deg ); + } + + .item-meta { + display: none; + + &.open { + display: block; + } + + label { + display: block; + padding: 6px 0; + + span { + margin-left: 4px; + } + } + } + + .meta-control { + padding: 10px; + border-top: 1px solid #ddd; + } + + .control-label { + font-weight: 500; + margin-bottom: 6px; + } + + .control-description { + margin-bottom: 6px; + } +} diff --git a/src/backend/main/editor/greenlet-meta.scss b/src/backend/main/editor/greenlet-meta.scss index e0360c6..5210025 100644 --- a/src/backend/main/editor/greenlet-meta.scss +++ b/src/backend/main/editor/greenlet-meta.scss @@ -83,7 +83,8 @@ svg.svg-def { } svg { - max-width: 100%; + width: 100%; + max-width: 58px; height: 32px; display: block; } diff --git a/src/backend/main/preview/actions.js b/src/backend/main/preview/actions.js index 9f2e5b1..74dbb6a 100644 --- a/src/backend/main/preview/actions.js +++ b/src/backend/main/preview/actions.js @@ -23,3 +23,7 @@ export const toggleToTop = ( val ) => { btn[ 0 ].style.display = 'none' } } + +export const changeAjaxUrl = () => { + greenletData.ajaxurl = `${ greenletData.ajaxurl }${ window.location.search }` +} diff --git a/src/backend/main/preview/greenlet-preview.js b/src/backend/main/preview/greenlet-preview.js index 5b000dd..5010257 100644 --- a/src/backend/main/preview/greenlet-preview.js +++ b/src/backend/main/preview/greenlet-preview.js @@ -4,7 +4,7 @@ * @package greenlet */ -import { toggleToTop, dScrollTo } from './actions' +import { toggleToTop, dScrollTo, changeAjaxUrl } from './actions' import Canvas from './components/Canvas' function isCustomizer() { @@ -28,5 +28,7 @@ if ( isCustomizer() ) { wp.customize( 'to_top', setting => setting.bind( toggleToTop ) ) wp.customize( 'to_top_at', setting => setting.bind( dScrollTo ) ) + + changeAjaxUrl() } ) } diff --git a/src/frontend/css/bootstrap-extra.scss b/src/frontend/css/bootstrap-extra.scss new file mode 100644 index 0000000..fc0e605 --- /dev/null +++ b/src/frontend/css/bootstrap-extra.scss @@ -0,0 +1,44 @@ +:root { + --radius: .25rem; + --radius-small: .12rem; +} + +.site-header h1 { + font-size: 2.5rem; +} + +.nav-menu ul, .widget ul { + padding: 0; +} + +.widget li { + margin-bottom: .8rem; +} + +.search-form { + margin-bottom: 1rem; +} + +.search-submit { + height: 2.4em; + display: inline-flex; + align-items: center; + border-color: var(--border); +} + +.widget-title { + font-size: 1.2rem; +} + +.more-link { + line-height: 1em; + vertical-align: unset; +} + +.comment-form textarea { + width: 100%; +} + +.to-top { + border-color: var(--border); +} diff --git a/src/frontend/css/bootstrap.css b/src/frontend/css/bootstrap.css index a3171be..2282e0a 100644 --- a/src/frontend/css/bootstrap.css +++ b/src/frontend/css/bootstrap.css @@ -1,7 +1,7 @@ /*! - * Bootstrap v4.5.3 (https://getbootstrap.com/) - * Copyright 2011-2020 The Bootstrap Authors - * Copyright 2011-2020 Twitter, Inc. + * Bootstrap v4.6.0 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ :root { @@ -31,7 +31,7 @@ --breakpoint-md: 768px; --breakpoint-lg: 992px; --breakpoint-xl: 1200px; - --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; } @@ -54,7 +54,7 @@ article, aside, figcaption, figure, footer, header, hgroup, main, nav, section { body { margin: 0; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 1rem; font-weight: 400; line-height: 1.5; @@ -228,9 +228,8 @@ button { border-radius: 0; } -button:focus { - outline: 1px dotted; - outline: 5px auto -webkit-focus-ring-color; +button:focus:not(:focus-visible) { + outline: 0; } input, @@ -2241,6 +2240,11 @@ textarea.form-control { border-radius: 0.25rem; } +.form-row > .col > .valid-tooltip, +.form-row > [class*="col-"] > .valid-tooltip { + left: 5px; +} + .was-validated :valid ~ .valid-feedback, .was-validated :valid ~ .valid-tooltip, .is-valid ~ .valid-feedback, @@ -2270,7 +2274,7 @@ textarea.form-control { .was-validated .custom-select:valid, .custom-select.is-valid { border-color: #28a745; padding-right: calc(0.75em + 2.3125rem); - background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat, #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat; } .was-validated .custom-select:valid:focus, .custom-select.is-valid:focus { @@ -2342,6 +2346,11 @@ textarea.form-control { border-radius: 0.25rem; } +.form-row > .col > .invalid-tooltip, +.form-row > [class*="col-"] > .invalid-tooltip { + left: 5px; +} + .was-validated :invalid ~ .invalid-feedback, .was-validated :invalid ~ .invalid-tooltip, .is-invalid ~ .invalid-feedback, @@ -2371,7 +2380,7 @@ textarea.form-control { .was-validated .custom-select:invalid, .custom-select.is-invalid { border-color: #dc3545; padding-right: calc(0.75em + 2.3125rem); - background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat, #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) no-repeat; } .was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus { @@ -3388,7 +3397,7 @@ input[type="button"].btn-block { .dropdown-item:hover, .dropdown-item:focus { color: #16181b; text-decoration: none; - background-color: #f8f9fa; + background-color: #e9ecef; } .dropdown-item.active, .dropdown-item:active { @@ -3398,7 +3407,7 @@ input[type="button"].btn-block { } .dropdown-item.disabled, .dropdown-item:disabled { - color: #6c757d; + color: #adb5bd; pointer-events: none; background-color: transparent; } @@ -3597,12 +3606,6 @@ input[type="button"].btn-block { z-index: 4; } -.input-group > .form-control:not(:last-child), -.input-group > .custom-select:not(:last-child) { - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - .input-group > .form-control:not(:first-child), .input-group > .custom-select:not(:first-child) { border-top-left-radius: 0; @@ -3617,14 +3620,23 @@ input[type="button"].btn-block { } .input-group > .custom-file:not(:last-child) .custom-file-label, -.input-group > .custom-file:not(:last-child) .custom-file-label::after { +.input-group > .custom-file:not(:first-child) .custom-file-label { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.input-group:not(.has-validation) > .form-control:not(:last-child), +.input-group:not(.has-validation) > .custom-select:not(:last-child), +.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label::after { border-top-right-radius: 0; border-bottom-right-radius: 0; } -.input-group > .custom-file:not(:first-child) .custom-file-label { - border-top-left-radius: 0; - border-bottom-left-radius: 0; +.input-group.has-validation > .form-control:nth-last-child(n + 3), +.input-group.has-validation > .custom-select:nth-last-child(n + 3), +.input-group.has-validation > .custom-file:nth-last-child(n + 3) .custom-file-label::after { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } .input-group-prepend, @@ -3727,8 +3739,10 @@ input[type="button"].btn-block { .input-group > .input-group-prepend > .btn, .input-group > .input-group-prepend > .input-group-text, -.input-group > .input-group-append:not(:last-child) > .btn, -.input-group > .input-group-append:not(:last-child) > .input-group-text, +.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn, +.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text, +.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .btn, +.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .input-group-text, .input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), .input-group > .input-group-append:last-child > .input-group-text:not(:last-child) { border-top-right-radius: 0; @@ -3825,7 +3839,7 @@ input[type="button"].btn-block { width: 1rem; height: 1rem; content: ""; - background: no-repeat 50% / 50% 50%; + background: 50% / 50% 50% no-repeat; } .custom-checkbox .custom-control-label::before { @@ -3914,7 +3928,7 @@ input[type="button"].btn-block { line-height: 1.5; color: #495057; vertical-align: middle; - background: #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px; + background: #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat; border: 1px solid #ced4da; border-radius: 0.25rem; -webkit-appearance: none; @@ -3983,6 +3997,7 @@ input[type="button"].btn-block { width: 100%; height: calc(1.5em + 0.75rem + 2px); margin: 0; + overflow: hidden; opacity: 0; } @@ -4012,6 +4027,7 @@ input[type="button"].btn-block { z-index: 1; height: calc(1.5em + 0.75rem + 2px); padding: 0.375rem 0.75rem; + overflow: hidden; font-weight: 400; line-height: 1.5; color: #495057; @@ -4048,7 +4064,7 @@ input[type="button"].btn-block { } .custom-range:focus { - outline: none; + outline: 0; } .custom-range:focus::-webkit-slider-thumb { @@ -4243,11 +4259,8 @@ input[type="button"].btn-block { border-bottom: 1px solid #dee2e6; } -.nav-tabs .nav-item { - margin-bottom: -1px; -} - .nav-tabs .nav-link { + margin-bottom: -1px; border: 1px solid transparent; border-top-left-radius: 0.25rem; border-top-right-radius: 0.25rem; @@ -4403,8 +4416,12 @@ input[type="button"].btn-block { height: 1.5em; vertical-align: middle; content: ""; - background: no-repeat center center; - background-size: 100% 100%; + background: 50% / 100% 100% no-repeat; +} + +.navbar-nav-scroll { + max-height: 75vh; + overflow-y: auto; } @media (max-width: 575.98px) { @@ -4438,6 +4455,9 @@ input[type="button"].btn-block { -ms-flex-wrap: nowrap; flex-wrap: nowrap; } + .navbar-expand-sm .navbar-nav-scroll { + overflow: visible; + } .navbar-expand-sm .navbar-collapse { display: -ms-flexbox !important; display: flex !important; @@ -4480,6 +4500,9 @@ input[type="button"].btn-block { -ms-flex-wrap: nowrap; flex-wrap: nowrap; } + .navbar-expand-md .navbar-nav-scroll { + overflow: visible; + } .navbar-expand-md .navbar-collapse { display: -ms-flexbox !important; display: flex !important; @@ -4522,6 +4545,9 @@ input[type="button"].btn-block { -ms-flex-wrap: nowrap; flex-wrap: nowrap; } + .navbar-expand-lg .navbar-nav-scroll { + overflow: visible; + } .navbar-expand-lg .navbar-collapse { display: -ms-flexbox !important; display: flex !important; @@ -4564,6 +4590,9 @@ input[type="button"].btn-block { -ms-flex-wrap: nowrap; flex-wrap: nowrap; } + .navbar-expand-xl .navbar-nav-scroll { + overflow: visible; + } .navbar-expand-xl .navbar-collapse { display: -ms-flexbox !important; display: flex !important; @@ -4608,6 +4637,10 @@ input[type="button"].btn-block { flex-wrap: nowrap; } +.navbar-expand .navbar-nav-scroll { + overflow: visible; +} + .navbar-expand .navbar-collapse { display: -ms-flexbox !important; display: flex !important; @@ -4972,17 +5005,12 @@ input[type="button"].btn-block { border-radius: 0.25rem; } -.breadcrumb-item { - display: -ms-flexbox; - display: flex; -} - .breadcrumb-item + .breadcrumb-item { padding-left: 0.5rem; } .breadcrumb-item + .breadcrumb-item::before { - display: inline-block; + float: left; padding-right: 0.5rem; color: #6c757d; content: "/"; @@ -5465,8 +5493,8 @@ a.badge-dark:focus, a.badge-dark.focus { } .progress-bar-animated { - -webkit-animation: progress-bar-stripes 1s linear infinite; - animation: progress-bar-stripes 1s linear infinite; + -webkit-animation: 1s linear infinite progress-bar-stripes; + animation: 1s linear infinite progress-bar-stripes; } @media (prefers-reduced-motion: reduce) { @@ -6145,7 +6173,7 @@ a.close.disabled { z-index: 1070; display: block; margin: 0; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-style: normal; font-weight: 400; line-height: 1.5; @@ -6258,7 +6286,7 @@ a.close.disabled { z-index: 1060; display: block; max-width: 276px; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-style: normal; font-weight: 400; line-height: 1.5; @@ -6546,7 +6574,7 @@ a.close.disabled { display: inline-block; width: 20px; height: 20px; - background: no-repeat 50% / 100% 100%; + background: 50% / 100% 100% no-repeat; } .carousel-control-prev-icon { @@ -6635,8 +6663,8 @@ a.close.disabled { border: 0.25em solid currentColor; border-right-color: transparent; border-radius: 50%; - -webkit-animation: spinner-border .75s linear infinite; - animation: spinner-border .75s linear infinite; + -webkit-animation: .75s linear infinite spinner-border; + animation: .75s linear infinite spinner-border; } .spinner-border-sm { @@ -6677,8 +6705,8 @@ a.close.disabled { background-color: currentColor; border-radius: 50%; opacity: 0; - -webkit-animation: spinner-grow .75s linear infinite; - animation: spinner-grow .75s linear infinite; + -webkit-animation: .75s linear infinite spinner-grow; + animation: .75s linear infinite spinner-grow; } .spinner-grow-sm { @@ -6686,6 +6714,14 @@ a.close.disabled { height: 1rem; } +@media (prefers-reduced-motion: reduce) { + .spinner-border, + .spinner-grow { + -webkit-animation-duration: 1.5s; + animation-duration: 1.5s; + } +} + .align-baseline { vertical-align: baseline !important; } @@ -7954,7 +7990,6 @@ button.bg-dark:focus { .user-select-all { -webkit-user-select: all !important; -moz-user-select: all !important; - -ms-user-select: all !important; user-select: all !important; } diff --git a/src/frontend/css/bootstrap.min.css b/src/frontend/css/bootstrap.min.css index 286cde4..ef399d2 100644 --- a/src/frontend/css/bootstrap.min.css +++ b/src/frontend/css/bootstrap.min.css @@ -1,7 +1,7 @@ /*! - * Bootstrap v4.5.3 (https://getbootstrap.com/) - * Copyright 2011-2020 The Bootstrap Authors - * Copyright 2011-2020 Twitter, Inc. + * Bootstrap v4.6.0 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#0069d9;border-color:#0062cc;box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;z-index:1;display:block;min-height:1.5rem;padding-left:1.5rem;-webkit-print-color-adjust:exact;color-adjust:exact}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before,.custom-control-input[disabled]~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item,.nav-fill>.nav-link{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{-ms-flex-negative:0;flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-ms-flex:1 0 0%;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item{display:-ms-flexbox;display:flex}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;z-index:2;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;line-height:0;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{-ms-flex-preferred-size:350px;flex-basis:350px;max-width:350px;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);height:-webkit-min-content;height:-moz-min-content;height:min-content;content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem);height:-webkit-min-content;height:-moz-min-content;height:min-content}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;-ms-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;word-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}} + */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-row>.col>.valid-tooltip,.form-row>[class*=col-]>.valid-tooltip{left:5px}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-row>.col>.invalid-tooltip,.form-row>[class*=col-]>.invalid-tooltip{left:5px}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#0069d9;border-color:#0062cc;box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:first-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label::after,.input-group:not(.has-validation)>.custom-select:not(:last-child),.input-group:not(.has-validation)>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label::after,.input-group.has-validation>.custom-select:nth-last-child(n+3),.input-group.has-validation>.form-control:nth-last-child(n+3){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.btn,.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.input-group-text,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.btn,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;z-index:1;display:block;min-height:1.5rem;padding-left:1.5rem;-webkit-print-color-adjust:exact;color-adjust:exact}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before,.custom-control-input[disabled]~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:50%/50% 50% no-repeat}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;overflow:hidden;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;overflow:hidden;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item,.nav-fill>.nav-link{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:50%/100% 100% no-repeat}.navbar-nav-scroll{max-height:75vh;overflow-y:auto}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{-ms-flex-negative:0;flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-ms-flex:1 0 0%;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;z-index:2;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;line-height:0;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{-ms-flex-preferred-size:350px;flex-basis:350px;max-width:350px;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);height:-webkit-min-content;height:-moz-min-content;height:min-content;content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem);height:-webkit-min-content;height:-moz-min-content;height:min-content}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;word-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}} /*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/src/frontend/css/styles/main.scss b/src/frontend/css/styles/main.scss index d71dc3b..1ae5fd3 100644 --- a/src/frontend/css/styles/main.scss +++ b/src/frontend/css/styles/main.scss @@ -365,6 +365,7 @@ input[type="checkbox"].menu-toggle { .entry-meta { li { color: var(--link); + margin: 0; } svg { @@ -390,14 +391,21 @@ input[type="checkbox"].menu-toggle { * 3.1 Pagination styles. */ .pagination { - text-align: center; + display: flex; justify-content: center; margin: 2rem 0; li { - display: inline; + list-style: none; + margin: 0; + + &:not(:first-child) { + margin-left: .6rem; + } a, span { + display: block; + line-height: 1; padding: 0.8rem 1.2rem; color: var(--button); background: var(--button-bg); @@ -450,8 +458,7 @@ input[type="checkbox"].menu-toggle { border-top: 1px solid var(--hr); .author-avatar { - display: inline-block; - vertical-align: bottom; + float: left; img { display: block; @@ -464,12 +471,11 @@ input[type="checkbox"].menu-toggle { .author-heading { font-size: 1em; margin: 0; - line-height: 40px; - padding-left: 20px; + padding-left: 50px; } - .author-description { - display: inline-block; + .author-bio { + padding-left: 50px; } } @@ -508,6 +514,7 @@ input[type="checkbox"].menu-toggle { */ .search-form { display: flex; + position: relative; label { flex-grow: 1; @@ -517,10 +524,13 @@ input[type="checkbox"].menu-toggle { .search-input { width: 100%; margin: 0; - border-radius: var(--radius) 0 0 var(--radius); + border-radius: var(--radius); + padding-right: 5.6rem; } .search-submit { + position: absolute; + right: 0; min-height: 28px; margin-bottom: 0; border-radius: 0 var(--radius) var(--radius) 0; diff --git a/style.css b/style.css index 3dca1e9..7cb3e27 100644 --- a/style.css +++ b/style.css @@ -2,9 +2,9 @@ * Theme Name: Greenlet * Theme URI: https://greenletwp.com * Description: Greenlet is an extremely fast, lightweight best SEO WordPress theme made for blogs, personal portfolio, business, and Woocommerce Stores. While Greenlet setup is quick and easy, it provides dozens of options for customization without affecting the speed and size of your website. Features: 100/100 Google Page Speed score | Extremely Lightweight (~25KB) | Schema Markup Added | No jQuery | 12 Column Design System | 8 Predefined Layouts (extendable) | Unlimited Post Layout | Unlimited Header and Footer layout | Pagination ( Default, Numbered, Ajax, Load More, Infinite Scroll ) | ML Support | RTL Support | Visual style edtor | Mobile Ready | Breadcrumb | WooCommerce Support | Theme Presets and so much more. - * Version: 2.4.0 + * Version: 2.5.0 * Requires at least: 5.3 - * Tested up to: 5.6 + * Tested up to: 5.6.1 * Requires PHP: 5.6 * Author: Greenlet Team * Author URI: https://greenletwp.com/about/ diff --git a/templates/breadcrumb.php b/templates/breadcrumb.php index 191b321..de03bf7 100644 --- a/templates/breadcrumb.php +++ b/templates/breadcrumb.php @@ -2,11 +2,11 @@ /** * Breadcrumb Template. * - * @package greenlet\library\frontend + * @package greenlet\templates */ global $post; -$separator = gl_get_option( 'breadcrumb_sep', '»' ); +$separator = ( isset( $args ) && isset( $args['separator'] ) ) ? $args['separator'] : '»'; printf( '
    ', wp_kses( greenlet_attr( 'breadcrumb' ), null ) ); printf( '
    ', wp_kses( greenlet_attr( 'breadcrumb-item' ), null ) ); diff --git a/templates/copyright.php b/templates/copyright.php new file mode 100644 index 0000000..6e0c300 --- /dev/null +++ b/templates/copyright.php @@ -0,0 +1,17 @@ +

    ', greenlet_attr( 'copyright' ) ); +$text .= sprintf( + '© %1$s · %3$s · %4$s %5$s

    ', + date_i18n( __( 'Y', 'greenlet' ) ), + esc_url( get_home_url() ), + get_bloginfo( 'name' ), + __( 'Powered By', 'greenlet' ), + __( 'Greenlet', 'greenlet' ) +); +echo wp_kses_post( apply_filters( 'greenlet_copyright', $text ) ); diff --git a/tests/e2e/cypress/integration/customizer-content.js b/tests/e2e/cypress/integration/customizer-content.js new file mode 100644 index 0000000..c643785 --- /dev/null +++ b/tests/e2e/cypress/integration/customizer-content.js @@ -0,0 +1,46 @@ +/** + * Customizer Tests. + */ + +import 'cypress-wait-until' + +describe('Customizer', () => { + + before(() => { + let url = Cypress.env( Cypress.env('ENV') ); + let customizerUrl = `${url}/wp-admin/customize.php` + cy.visit(customizerUrl); + cy.request(customizerUrl).then(() => { + cy.get( '#user_login' ).type( Cypress.env( 'admin_user' ) ); + cy.get( '#user_pass' ).type( Cypress.env( 'admin_pass' ) ); + cy.get( '#wp-submit' ).click(); + }) + + Cypress.Cookies.defaults({ + whitelist: /wordpress_.*/ + }) + }) + + after( () => { + cy.get('#customize-header-actions a.customize-controls-close').click( { force: true } ) + cy.get('#wp-admin-bar-logout a').click({ force: true }) + }) + + it('Should contain Blog settings', () => { + cy.get('#accordion-panel-blog').contains('Blog') + }) + + it('Should contain Post List', () => { + cy.get('#accordion-section-blog_list').contains('Post List') + }) + + it('Should contain Single Post', () => { + cy.get('#accordion-section-blog_single').contains('Single Post') + }) + + it('Should contain Single Page', () => { + cy.get('#accordion-section-blog_page').contains('Single Page') + }) + + // Todo: add more tests. +}) diff --git a/tests/e2e/cypress/integration/customizer-cover.js b/tests/e2e/cypress/integration/customizer-cover.js index 3a6d31c..51acc94 100644 --- a/tests/e2e/cypress/integration/customizer-cover.js +++ b/tests/e2e/cypress/integration/customizer-cover.js @@ -57,11 +57,10 @@ describe('Customizer', () => { cy.window().then( win => { settings = win.wp.customize.control('header_layout').setting._value }).then(() => { - console.log( settings ) expect( settings ).to.deep.equal( [ { "columns":"3-9", "primary":true, - "items":{"1":["logo","widgets"],"2":[{"id":"menu","meta":{"slug":false,"toggler":"enable"}},"widgets"]} + "items":{"1":[{"id":"logo"},{"id":"widgets"}],"2":[{"id":"menu","meta":{"slug":false,"toggler":"enable"}},{"id":"widgets"}]} } ] ) }) }) @@ -116,5 +115,83 @@ describe('Customizer', () => { // Todo: Test other header options like custom input, vertical, header contents etc. }) + + describe('Footer Layout', () => { + before( () => { + cy.get('#accordion-section-footer_section').click() + }) + + after( () => { + const initHeight = Cypress.config( 'viewportHeight' ) + cy.viewport( Cypress.config( 'viewportWidth' ), 300 ) + cy.get('#customize-controls .control-section:visible').scrollTo(0, 0 ) + cy.get('.customize-section-back:visible').click( { force: true } ) + cy.viewport( Cypress.config( 'viewportWidth' ), initHeight ) + }) + + it('Contains correct control settings', () => { + let settings = [] + cy.window().then( win => { + settings = win.wp.customize.control('footer_layout').setting._value + }).then(() => { + expect( settings ).to.deep.equal( [ { + "columns":"12", + "primary":true, + "items":{"1":[{"id":"php","meta":{"template":"templates/copyright"}}]} + } ] ) + }) + }) + + it('Contains Add before & after', () => { + cy.get('.add-before').should('be.visible') + cy.get('.add-after').should('exist') + }) + + it('Contains Default footer', () => { + cy.get('.row').contains('Footer 1') + }) + + it('Updates Footer columns', () => { + cy.get('#footer_layout-root .row:first [type="radio"]').check('4-4-4', { force: true }) + + cy.waitUntil(() => cy.get('#customize-preview iframe').then(($iframe) => { + const body = $iframe.contents().find('body') + if (body.length > 0) { + return (body.find('.footer-1 .row:first .footer-column-1').hasClass('col-4') + && body.find('.footer-1 .row:first .footer-column-2').hasClass('col-4') + && body.find('.footer-1 .row:first .footer-column-3').hasClass('col-4')) + } + return false; + }), { timeout: 5000 }) + }) + + it('Adds Footer', () => { + cy.get('#footer_layout-root .add-after button').click( { force: true } ) + + cy.waitUntil(() => cy.get('#customize-preview iframe').then(($iframe) => { + const body = $iframe.contents().find('body') + if (body.length > 0) { + return body.find('.footer-2 .footer-column-1').hasClass('col-12') + } + return false; + }), { timeout: 5000 }) + }) + + it('Deletes Footer', () => { + cy.get('#footer_layout-root .row:nth-child(2)').click( { force: true } ) + cy.get('#footer_layout-root .row:nth-child(2) [type="checkbox"]').check( { force: true } ) + cy.get('#footer_layout-root .row:nth-child(2) button.delete').click( { force: true } ) + + cy.waitUntil(() => cy.get('#customize-preview iframe').then(($iframe) => { + const body = $iframe.contents().find('body') + if (body.length > 0) { + return body.find('.footer-2').length === 0 + } + return false; + }), { timeout: 5000 }) + }) + + // Todo: Test other footer options like custom input, vertical, footer contents etc. + }) }) }) diff --git a/tests/e2e/package.json b/tests/e2e/package.json index 189fbba..0d56c40 100644 --- a/tests/e2e/package.json +++ b/tests/e2e/package.json @@ -1,6 +1,6 @@ { "name": "e2e-testing", - "version": "2.4.0", + "version": "2.5.0", "description": "End to End Testing for Greenlet", "main": "index.js", "scripts": {