Version Description
18 February 2021 =
New: Text stroke feature
New: Event Calendar widget
New: Happy particle effects disable option
Tweak: Updated kses function to support more attributes
Tweak: Added html tag support in Data Table widget
Tweak: Added slider widget dots size control
Tweak: Added carousel widget dots size control
Fix: Shape divider spell
Fix: Chart widgets console error
Fix: Widget background overlay class mismatch issue
Fix: Data Table widget compatibility issue with WPML
Download this release
Release Info
Developer | thehappymonster |
Plugin | Happy Addons for Elementor (Mega Menu, Post Grid, Woocommerce Product Grid, Table, Event Calendar, Slider Elementor Widget) |
Version | 2.20.0 |
Comparing to | |
See all releases |
Code changes from version 2.19.0 to 2.20.0
- assets/admin/css/dashboard.css +10 -4
- assets/admin/css/dashboard.min.css +1 -1
- assets/css/main.css +1 -0
- assets/css/main.min.css +1 -0
- assets/css/widgets/event-calendar.min.css +1 -0
- assets/imgs/shape-divider/{abstruct-web.svg → abstract-web.svg} +0 -0
- assets/imgs/shape-divider/{multi-web.svg → multi-wave.svg} +0 -0
- assets/js/happy-addons.js +166 -1
- assets/js/happy-addons.min.js +1 -1
- assets/vendor/aesthetic-icon-picker/icons/font-awesome.js +22 -0
- assets/vendor/aesthetic-icon-picker/icons/font-awesome.min.js +1 -0
- assets/vendor/fullcalendar/fullcalendar.min.css +1 -0
- assets/vendor/fullcalendar/fullcalendar.min.js +6 -0
- assets/vendor/fullcalendar/locales-all.min.js +1 -0
- base.php +4 -0
- changelog.txt +16 -2
- classes/assets-manager.php +26 -0
- classes/extensions-manager.php +9 -0
- classes/finder-edit.php +169 -169
- classes/widgets-manager.php +10 -0
- classes/wpml-manager.php +50 -9
- controls/foreground.php +252 -252
- controls/text-stroke.php +97 -0
- extensions/shape-divider.php +8 -8
- extensions/widgets-extended.php +200 -148
- inc/functions.php +104 -16
- plugin.php +4 -4
- readme.txt +22 -7
- templates/admin/dashboard-home.php +160 -160
- templates/admin/dashboard-main.php +71 -71
- templates/admin/dashboard-pro.php +93 -93
- widgets/bar-chart/classes/data-map.php +178 -178
- widgets/bar-chart/widget.php +1 -1
- widgets/calderaform/widget.php +559 -559
- widgets/carousel/widget.php +33 -39
- widgets/cf7/widget.php +543 -543
- widgets/data-table/widget.php +20 -24
- widgets/event-calendar/widget.php +2270 -0
- widgets/ninjaform/widget.php +551 -551
- widgets/number/widget.php +369 -369
- widgets/slider/widget.php +33 -29
- widgets/weform/widget.php +713 -713
- widgets/wpform/widget.php +646 -646
- wpml/data-table.php +106 -0
- wpml/horizontal-timeline.php +75 -0
assets/admin/css/dashboard.css
CHANGED
@@ -129,7 +129,14 @@
|
|
129 |
border-top: 1px dashed #e8e8e8;
|
130 |
}
|
131 |
.ha-dashboard-widgets {
|
132 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
133 |
margin-left: -10px;
|
134 |
}
|
135 |
.ha-dashboard-widgets__item {
|
@@ -138,7 +145,6 @@
|
|
138 |
display: -webkit-flex;
|
139 |
display: -ms-flexbox;
|
140 |
display: flex;
|
141 |
-
float: left;
|
142 |
overflow: hidden;
|
143 |
-webkit-box-align: center;
|
144 |
-webkit-align-items: center;
|
@@ -157,12 +163,12 @@
|
|
157 |
width: calc(50% - 20px);
|
158 |
}
|
159 |
}
|
160 |
-
@media (min-width:
|
161 |
.ha-dashboard-widgets__item {
|
162 |
width: calc(33.33% - 20px);
|
163 |
}
|
164 |
}
|
165 |
-
@media (min-width:
|
166 |
.ha-dashboard-widgets__item {
|
167 |
width: calc(25% - 20px);
|
168 |
}
|
129 |
border-top: 1px dashed #e8e8e8;
|
130 |
}
|
131 |
.ha-dashboard-widgets {
|
132 |
+
display: -webkit-box;
|
133 |
+
display: -webkit-flex;
|
134 |
+
display: -ms-flexbox;
|
135 |
+
display: flex;
|
136 |
+
-webkit-flex-wrap: wrap;
|
137 |
+
-ms-flex-wrap: wrap;
|
138 |
+
flex-wrap: wrap;
|
139 |
+
margin-right: -10px;
|
140 |
margin-left: -10px;
|
141 |
}
|
142 |
.ha-dashboard-widgets__item {
|
145 |
display: -webkit-flex;
|
146 |
display: -ms-flexbox;
|
147 |
display: flex;
|
|
|
148 |
overflow: hidden;
|
149 |
-webkit-box-align: center;
|
150 |
-webkit-align-items: center;
|
163 |
width: calc(50% - 20px);
|
164 |
}
|
165 |
}
|
166 |
+
@media (min-width: 1350px) {
|
167 |
.ha-dashboard-widgets__item {
|
168 |
width: calc(33.33% - 20px);
|
169 |
}
|
170 |
}
|
171 |
+
@media (min-width: 1500px) {
|
172 |
.ha-dashboard-widgets__item {
|
173 |
width: calc(25% - 20px);
|
174 |
}
|
assets/admin/css/dashboard.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.ha-dashboard-tabs__content-item:after,.ha-dashboard-tabs__nav:after,.ha-dashboard-widgets:after{display:block;clear:both;content:""}.ha-dashboard{padding-top:20px}.ha-dashboard,.ha-dashboard *{box-sizing:border-box;font-family:"Nunito",sans-serif}.ha-dashboard-btn{display:inline-block;padding:15px 25px;border:0;border-radius:5px;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);text-align:center;text-decoration:none;font-weight:700;font-size:13px;line-height:1;cursor:pointer;-webkit-transition:all .2s;transition:all .2s}.ha-dashboard-btn:active,.ha-dashboard-btn:focus,.ha-dashboard-btn:hover{outline:0;box-shadow:none}.ha-dashboard-btn--lg{padding:15px 30px;font-size:14px}.ha-dashboard-btn--save{width:13em;background-color:#5db429;color:#fff}.ha-dashboard-btn--save:active,.ha-dashboard-btn--save:focus,.ha-dashboard-btn--save:hover{background-color:#488a20;color:#fff}.ha-dashboard-btn--save.disabled,.ha-dashboard-btn--save:disabled{background-color:#b3b3b3;box-shadow:none;opacity:.7;cursor:not-allowed}.ha-dashboard-tabs__nav-btn{float:right}.ha-dashboard-tabs__nav-item{display:block;float:left;padding:15px 40px;border-top:3px solid #bbb;border-radius:5px 5px 0 0;background-color:#e8e8e8;color:#888;text-decoration:none;text-transform:uppercase;font-weight:700;font-size:14px}.ha-dashboard-tabs__nav-item--pro{border-color:#d6226e;background-color:#e2498a;color:#fff}.ha-dashboard-tabs__nav-item.tab--is-active,.ha-dashboard-tabs__nav-item:active,.ha-dashboard-tabs__nav-item:focus,.ha-dashboard-tabs__nav-item:hover{outline:none;border-color:#562dd4;background-color:#fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);color:#562dd4;-webkit-transition:all .3s;transition:all .3s}.ha-dashboard-tabs__nav-item--pro.tab--is-active,.ha-dashboard-tabs__nav-item--pro:active,.ha-dashboard-tabs__nav-item--pro:focus,.ha-dashboard-tabs__nav-item--pro:hover{border-color:#e2498a;color:#e2498a}.ha-dashboard-tabs__nav-item:not(:last-child){margin-right:10px}.ha-dashboard-tabs__content-item{display:none;padding:40px;border-radius:0 0 5px 5px;background-color:#fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.ha-dashboard-tabs__content-item.tab--is-active{position:relative;z-index:1;display:block}.ha-dashboard-panel__header{padding-bottom:40px}.ha-dashboard-panel__header-content>h2{margin:0 0 20px;font-size:2em}.ha-dashboard-panel__header-content>p{margin:0;color:#8c8c8c}.ha-dashboard-panel__footer{margin-top:20px;padding-top:20px;border-top:1px dashed #e8e8e8}.ha-dashboard-widgets{margin-right:-10px;margin-left:-10px}.ha-dashboard-widgets__item{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;float:left;overflow:hidden;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;margin-right:10px;margin-bottom:20px;margin-left:10px;padding:30px 20px;width:calc(100% - 20px);border:1px solid #e8e8e8;border-radius:5px}@media (min-width:650px){.ha-dashboard-widgets__item{width:calc(50% - 20px)}}@media (min-width:1100px){.ha-dashboard-widgets__item{width:calc(33.33% - 20px)}}@media (min-width:1350px){.ha-dashboard-widgets__item{width:calc(25% - 20px)}}.ha-dashboard-widgets__item.item--is-placeholder{opacity:.7}.ha-dashboard-widgets__item-icon{display:inline-block;margin-right:10px;width:30px;text-align:center;font-size:20px}.ha-dashboard-widgets__item:hover .ha-dashboard-widgets__item-icon{background-image:-webkit-linear-gradient(315deg,#e2498a 25%,#562dd4 100%);background-image:linear-gradient(135deg,#e2498a 25%,#562dd4 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.ha-dashboard-widgets__item-title{display:inline-block;margin:0;color:#444;font-weight:400;font-size:13px}.ha-dashboard-widgets__item-title>label{font-weight:700}.ha-dashboard-widgets__item-preview{display:inline-block;margin-left:5px;color:#c2cbd2;font-size:10px;-webkit-transition:all .2s;transition:all .2s}.ha-dashboard-widgets__item-preview:active,.ha-dashboard-widgets__item-preview:focus,.ha-dashboard-widgets__item-preview:hover{box-shadow:none;color:#8799a7}.ha-dashboard-widgets__item-badge{position:absolute;top:-2px;left:-18px;padding:6px 8px 3px;width:50px;background-color:#e2498a;color:#fff;text-align:center;text-transform:uppercase;font-weight:700;font-size:7px;line-height:1;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.ha-dashboard-widgets__item-toggle{position:absolute!important;right:20px}.ha-dashboard .ha-toggle{position:relative;display:block;overflow:hidden;width:40px;height:24px;border-radius:100px;background-color:#e8e8e8;box-shadow:inset 0 0 2px 1px rgba(0,0,0,.05)}.ha-dashboard .ha-toggle__check,.ha-dashboard .ha-toggle__switch,.ha-dashboard .ha-toggle__track{position:absolute;display:block}.ha-dashboard .ha-toggle__check{top:0;left:0;z-index:6;width:100%;height:100%;opacity:0;cursor:pointer}.ha-dashboard .ha-toggle__check.disabled,.ha-dashboard .ha-toggle__check:disabled{z-index:0;opacity:0}.ha-dashboard .ha-toggle__check:checked~.ha-toggle__track{box-shadow:inset 0 0 0 20px #562dd4}.ha-dashboard .ha-toggle__check:checked~.ha-toggle__switch{right:2px;left:18px;-webkit-transition:.35s cubic-bezier(.785,.135,.15,.86);transition:.35s cubic-bezier(.785,.135,.15,.86);-webkit-transition-delay:.05s,0s;transition-delay:.05s,0s;-webkit-transition-property:left,right;transition-property:left,right}.ha-dashboard .ha-toggle__switch,.ha-dashboard .ha-toggle__track{-webkit-transition:.35s cubic-bezier(.785,.135,.15,.86);transition:.35s cubic-bezier(.785,.135,.15,.86)}.ha-dashboard .ha-toggle__switch{z-index:1;background-color:#fff;-webkit-transition-delay:0s,.05s;transition-delay:0s,.05s;-webkit-transition-property:left,right;transition-property:left,right;top:2px;right:18px;bottom:2px;left:2px;border-radius:36px;box-shadow:0 1px 2px rgba(0,0,0,.2)}.ha-dashboard .ha-toggle__track{top:0;right:0;bottom:0;left:0;border-radius:40px;box-shadow:inset 0 0 0 2px rgba(0,0,0,.01)}@-webkit-keyframes animateTextIndent{0%,to{letter-spacing:15px}50%{letter-spacing:0}}@keyframes animateTextIndent{0%,to{letter-spacing:15px}50%{letter-spacing:0}}.ha-action-list{margin:-4px;padding-top:20px;font-weight:700;font-size:14px;opacity:.7}.ha-action--divider{padding-right:10px;padding-left:10px;color:#e8e8e8}.ha-action--btn{display:inline-block;margin:4px;padding:5px 10px 4px;outline:none;border:1px solid;border-radius:3px;background:0 0;box-shadow:none;font-weight:700;line-height:1;cursor:pointer}.ha-action--btn[data-filter="*"]{color:#666}.ha-action--btn[data-filter="*"]:focus,.ha-action--btn[data-filter="*"]:hover{border-color:#666;background-color:#666;color:#fff}.ha-action--btn[data-filter=free]{color:#562dd4}.ha-action--btn[data-filter=free]:focus,.ha-action--btn[data-filter=free]:hover{border-color:#562dd4;background-color:#562dd4;color:#fff}.ha-action--btn[data-filter=pro]{color:#e2498a}.ha-action--btn[data-filter=pro]:focus,.ha-action--btn[data-filter=pro]:hover{border-color:#e2498a;background-color:#e2498a;color:#fff}.ha-action--btn[data-action=enable],.ha-action--btn[data-action=enable_feature]{color:#5db429}.ha-action--btn[data-action=enable]:focus,.ha-action--btn[data-action=enable]:hover,.ha-action--btn[data-action=enable_feature]:focus,.ha-action--btn[data-action=enable_feature]:hover{border-color:#5db429;background-color:#5db429;color:#fff}.ha-action--btn[data-action=disable],.ha-action--btn[data-action=disable_feature]{color:#e63d3d}.ha-action--btn[data-action=disable]:focus,.ha-action--btn[data-action=disable]:hover,.ha-action--btn[data-action=disable_feature]:focus,.ha-action--btn[data-action=disable_feature]:hover{border-color:#e63d3d;background-color:#e63d3d;color:#fff}.ha-home-banner{position:relative;padding-top:25.2%;border-radius:5px;background:url(../../imgs/admin/dashboard-header.png) no-repeat center center/cover}.ha-home-banner__content{position:absolute;top:50%;left:50%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;padding-right:15px;padding-left:15px;max-width:1000px;width:100%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.ha-home-banner__logo{position:relative;top:-8px;margin-right:50px;width:150px;height:auto}.ha-home-banner__divider{width:4px;height:60px;border-radius:10px;background-color:#fff}.ha-home-banner h2{float:left;margin:0;padding-left:50px;color:#fff;font-size:28px;line-height:1.1}.ha-home-banner h2>span{font-weight:400}.ha-home-body{margin-right:auto;margin-left:auto;padding-right:15px;padding-left:15px;max-width:1000px}.ha-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.ha-feature-title{margin-bottom:1rem;font-weight:700;font-size:28px}.ha-feature-sub-title-a{color:#242424;text-decoration:none}.ha-feature-sub-title-a:hover{color:#e2498a}.ha-feature-sub-title{margin-bottom:1rem;font-weight:700;font-size:18px;line-height:1.4}.ha-btn{display:inline-block;padding:.95rem 1.5rem;border-radius:4px;text-decoration:none;font-weight:700;font-size:14px}.ha-btn:focus,.ha-btn:hover{outline:none;box-shadow:none}.ha-btn-primary{background:#5e3bc4;color:#fff}.ha-btn-primary:focus,.ha-btn-primary:hover{background:#4b2f9d;color:#fff}.ha-btn-secondary{background:#e2498a;color:#fff}.ha-btn-secondary:focus,.ha-btn-secondary:hover{background:#d6226e;color:#fff}.btn-more:hover,.ha-text-primary{color:#5e3bc4}.ha-media h3 a:hover,.ha-text-secondary{color:#e2498a}.btn-more,.ha-btn-view{color:#e2498a;text-decoration:none;font-size:16px}.ha-btn-view{color:#835ef1}.ha-cta{padding:2.5rem 3rem;background:#e2498a;background-image:-webkit-linear-gradient(320deg,#e05da4 0%,#7249cf 100%);background-image:linear-gradient(130deg,#e05da4 0%,#7249cf 100%);color:#fff}.ha-cta .ha-feature-title{margin-top:0;color:#fff}.ha-cta p{margin-bottom:1rem;color:#daacdd}.ha-cta .link{color:#fff;text-decoration:underline;font-size:16px}.ha-cta .link:hover,.ha-media h3 a{text-decoration:none}.ha-cta .btn-contribute{display:inline-block;padding:.95rem 1.5rem;border-radius:4px;background:#fff;color:#7f4bca;text-decoration:none;font-size:15px}.ha-cta .btn-contribute:hover{background:#e2498a;color:#fff}.ha-section-title{margin:0;font-size:48px;line-height:1}.ha-badge{display:inline-block;margin-bottom:.3rem;padding:.6rem 1rem;border-radius:5px;background:#e2498a;background-image:-webkit-linear-gradient(320deg,#e05da4 0%,#7249cf 100%);background-image:linear-gradient(130deg,#e05da4 0%,#7249cf 100%);color:#fff;font-weight:700;font-size:24px}.ha-sub-title-sm{margin:.3rem 0 0;font-size:16px}.ha-border-box{padding:3rem;border:1px solid #ececec;border-radius:5px;box-shadow:10px 0 20px rgba(0,0,0,.05)}.ha-media{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-media img{width:180px;height:auto}.ha-media h3 a{color:#242424;line-height:1.4}.ha-media .ha-date{color:#8c8c8c}.ha-media-body{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.ha-pro-widget{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;margin-bottom:25px;padding:1.5rem 1rem;border-radius:4px;background:#7c58e5;color:#fff;text-decoration:none;font-weight:700;font-size:13px}.ha-pro-widget:focus,.ha-pro-widget:hover{background:#df4b89;color:#fff}.ha-pro-widget i{padding-right:15px;font-weight:700;font-size:20px}.ha-dashboard .f18{font-size:18px}.ha-dashboard .f16{font-size:16px}.ha-dashboard .ha-py-5{padding-top:4rem;padding-bottom:4rem}.ha-dashboard .ha-pt-0{padding-top:0}.ha-dashboard .ha-pb-0{padding-bottom:0}.ha-dashboard .ha-pb-3{margin-bottom:3rem}.ha-dashboard .ha-pt-2{padding-top:2rem}.ha-dashboard .ha-pt-3{padding-top:3rem}.ha-dashboard .ha-pr-2{padding-right:2rem}.ha-dashboard .ha-pl-2{padding-left:2rem}.ha-dashboard .ha-mt-0{margin-top:0}.ha-dashboard .ha-mb-0{margin-bottom:0}.ha-dashboard .ha-mb-2{margin-bottom:2rem}.ha-dashboard .ha-mb-3{margin-bottom:3rem}.ha-dashboard .ha-mr-3{margin-right:1.5rem}.ha-dashboard p{margin-bottom:2.5rem}.ha-dashboard a,.ha-dashboard a:hover{-webkit-transition:all .3s;transition:all .3s}.ha-dashboard .ha-rounded{border-radius:5px}.ha-dashboard .ha-align-center{text-align:center}.ha-dashboard .ha-align-right{text-align:right}.ha-dashboard .ha-img-fluid{max-width:100%;height:auto}.ha-dashboard .ha-align-items-center{-webkit-box-align:center!important;-webkit-align-items:center!important;align-items:center!important;-ms-flex-align:center!important}.ha-dashboard .ha-align-items-end{-webkit-box-align:end!important;-webkit-align-items:flex-end!important;align-items:flex-end!important;-ms-flex-align:end!important}.ha-dashboard .ha-min-height-455{min-height:455px}.ha-dashboard .ha-title-icon-size{width:48px;height:auto}@media (min-width:768px){.ha-col{position:relative;padding-right:15px;padding-left:15px;width:100%}.ha-col-11,.ha-col-12{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.ha-col-11{-webkit-flex:0 0 91.666667%;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.ha-col-10,.ha-col-9{-webkit-box-flex:0;-webkit-flex:0 0 83.333333%;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.ha-col-9{-webkit-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.ha-col-7,.ha-col-8{-webkit-box-flex:0;-webkit-flex:0 0 66.666667%;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.ha-col-7{-webkit-flex:0 0 58.333333%;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.ha-col-5,.ha-col-6{-webkit-box-flex:0;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.ha-col-5{-webkit-flex:0 0 41.666667%;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.ha-col-3,.ha-col-4{-webkit-box-flex:0;-webkit-flex:0 0 33.333333%;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.ha-col-3{-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.ha-col-1,.ha-col-2{-webkit-box-flex:0;-webkit-flex:0 0 16.666667%;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.ha-col-1{-webkit-flex:0 0 8.333333%;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}}[data-tooltip]{position:relative;z-index:2;cursor:pointer}[data-tooltip]:after,[data-tooltip]:before{visibility:hidden;opacity:0;pointer-events:none}[data-tooltip]:before{position:absolute;bottom:140%;left:50%;padding:5px;width:140px;border-radius:3px;background-color:#000;background-color:rgba(51,51,51,.9);color:#fff;content:attr(data-tooltip);text-align:center;font-size:12px;line-height:1.2;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}[data-tooltip]:after{position:absolute;left:50%;margin-top:-8px;margin-left:-5px;width:0;border-top:5px solid #000;border-top:5px solid rgba(51,51,51,.9);border-right:5px solid transparent;border-left:5px solid transparent;content:" ";font-size:0;line-height:0}[data-tooltip]:hover:after,[data-tooltip]:hover:before{visibility:visible;opacity:1}
|
1 |
+
.ha-dashboard-tabs__content-item:after,.ha-dashboard-tabs__nav:after,.ha-dashboard-widgets:after{display:block;clear:both;content:""}.ha-dashboard{padding-top:20px}.ha-dashboard,.ha-dashboard *{box-sizing:border-box;font-family:"Nunito",sans-serif}.ha-dashboard-btn{display:inline-block;padding:15px 25px;border:0;border-radius:5px;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);text-align:center;text-decoration:none;font-weight:700;font-size:13px;line-height:1;cursor:pointer;-webkit-transition:all .2s;transition:all .2s}.ha-dashboard-btn:active,.ha-dashboard-btn:focus,.ha-dashboard-btn:hover{outline:0;box-shadow:none}.ha-dashboard-btn--lg{padding:15px 30px;font-size:14px}.ha-dashboard-btn--save{width:13em;background-color:#5db429;color:#fff}.ha-dashboard-btn--save:active,.ha-dashboard-btn--save:focus,.ha-dashboard-btn--save:hover{background-color:#488a20;color:#fff}.ha-dashboard-btn--save.disabled,.ha-dashboard-btn--save:disabled{background-color:#b3b3b3;box-shadow:none;opacity:.7;cursor:not-allowed}.ha-dashboard-tabs__nav-btn{float:right}.ha-dashboard-tabs__nav-item{display:block;float:left;padding:15px 40px;border-top:3px solid #bbb;border-radius:5px 5px 0 0;background-color:#e8e8e8;color:#888;text-decoration:none;text-transform:uppercase;font-weight:700;font-size:14px}.ha-dashboard-tabs__nav-item--pro{border-color:#d6226e;background-color:#e2498a;color:#fff}.ha-dashboard-tabs__nav-item.tab--is-active,.ha-dashboard-tabs__nav-item:active,.ha-dashboard-tabs__nav-item:focus,.ha-dashboard-tabs__nav-item:hover{outline:none;border-color:#562dd4;background-color:#fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);color:#562dd4;-webkit-transition:all .3s;transition:all .3s}.ha-dashboard-tabs__nav-item--pro.tab--is-active,.ha-dashboard-tabs__nav-item--pro:active,.ha-dashboard-tabs__nav-item--pro:focus,.ha-dashboard-tabs__nav-item--pro:hover{border-color:#e2498a;color:#e2498a}.ha-dashboard-tabs__nav-item:not(:last-child){margin-right:10px}.ha-dashboard-tabs__content-item{display:none;padding:40px;border-radius:0 0 5px 5px;background-color:#fff;box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}.ha-dashboard-tabs__content-item.tab--is-active{position:relative;z-index:1;display:block}.ha-dashboard-panel__header{padding-bottom:40px}.ha-dashboard-panel__header-content>h2{margin:0 0 20px;font-size:2em}.ha-dashboard-panel__header-content>p{margin:0;color:#8c8c8c}.ha-dashboard-panel__footer{margin-top:20px;padding-top:20px;border-top:1px dashed #e8e8e8}.ha-dashboard-widgets,.ha-dashboard-widgets__item{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.ha-dashboard-widgets{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-10px;margin-left:-10px}.ha-dashboard-widgets__item{position:relative;overflow:hidden;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;margin-right:10px;margin-bottom:20px;margin-left:10px;padding:30px 20px;width:calc(100% - 20px);border:1px solid #e8e8e8;border-radius:5px}@media (min-width:650px){.ha-dashboard-widgets__item{width:calc(50% - 20px)}}@media (min-width:1350px){.ha-dashboard-widgets__item{width:calc(33.33% - 20px)}}@media (min-width:1500px){.ha-dashboard-widgets__item{width:calc(25% - 20px)}}.ha-dashboard-widgets__item.item--is-placeholder{opacity:.7}.ha-dashboard-widgets__item-icon{display:inline-block;margin-right:10px;width:30px;text-align:center;font-size:20px}.ha-dashboard-widgets__item:hover .ha-dashboard-widgets__item-icon{background-image:-webkit-linear-gradient(315deg,#e2498a 25%,#562dd4 100%);background-image:linear-gradient(135deg,#e2498a 25%,#562dd4 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.ha-dashboard-widgets__item-title{display:inline-block;margin:0;color:#444;font-weight:400;font-size:13px}.ha-dashboard-widgets__item-title>label{font-weight:700}.ha-dashboard-widgets__item-preview{display:inline-block;margin-left:5px;color:#c2cbd2;font-size:10px;-webkit-transition:all .2s;transition:all .2s}.ha-dashboard-widgets__item-preview:active,.ha-dashboard-widgets__item-preview:focus,.ha-dashboard-widgets__item-preview:hover{box-shadow:none;color:#8799a7}.ha-dashboard-widgets__item-badge{position:absolute;top:-2px;left:-18px;padding:6px 8px 3px;width:50px;background-color:#e2498a;color:#fff;text-align:center;text-transform:uppercase;font-weight:700;font-size:7px;line-height:1;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.ha-dashboard-widgets__item-toggle{position:absolute!important;right:20px}.ha-dashboard .ha-toggle{position:relative;display:block;overflow:hidden;width:40px;height:24px;border-radius:100px;background-color:#e8e8e8;box-shadow:inset 0 0 2px 1px rgba(0,0,0,.05)}.ha-dashboard .ha-toggle__check,.ha-dashboard .ha-toggle__switch,.ha-dashboard .ha-toggle__track{position:absolute;display:block}.ha-dashboard .ha-toggle__check{top:0;left:0;z-index:6;width:100%;height:100%;opacity:0;cursor:pointer}.ha-dashboard .ha-toggle__check.disabled,.ha-dashboard .ha-toggle__check:disabled{z-index:0;opacity:0}.ha-dashboard .ha-toggle__check:checked~.ha-toggle__track{box-shadow:inset 0 0 0 20px #562dd4}.ha-dashboard .ha-toggle__check:checked~.ha-toggle__switch{right:2px;left:18px;-webkit-transition:.35s cubic-bezier(.785,.135,.15,.86);transition:.35s cubic-bezier(.785,.135,.15,.86);-webkit-transition-delay:.05s,0s;transition-delay:.05s,0s;-webkit-transition-property:left,right;transition-property:left,right}.ha-dashboard .ha-toggle__switch,.ha-dashboard .ha-toggle__track{-webkit-transition:.35s cubic-bezier(.785,.135,.15,.86);transition:.35s cubic-bezier(.785,.135,.15,.86)}.ha-dashboard .ha-toggle__switch{z-index:1;background-color:#fff;-webkit-transition-delay:0s,.05s;transition-delay:0s,.05s;-webkit-transition-property:left,right;transition-property:left,right;top:2px;right:18px;bottom:2px;left:2px;border-radius:36px;box-shadow:0 1px 2px rgba(0,0,0,.2)}.ha-dashboard .ha-toggle__track{top:0;right:0;bottom:0;left:0;border-radius:40px;box-shadow:inset 0 0 0 2px rgba(0,0,0,.01)}@-webkit-keyframes animateTextIndent{0%,to{letter-spacing:15px}50%{letter-spacing:0}}@keyframes animateTextIndent{0%,to{letter-spacing:15px}50%{letter-spacing:0}}.ha-action-list{margin:-4px;padding-top:20px;font-weight:700;font-size:14px;opacity:.7}.ha-action--divider{padding-right:10px;padding-left:10px;color:#e8e8e8}.ha-action--btn{display:inline-block;margin:4px;padding:5px 10px 4px;outline:none;border:1px solid;border-radius:3px;background:0 0;box-shadow:none;font-weight:700;line-height:1;cursor:pointer}.ha-action--btn[data-filter="*"]{color:#666}.ha-action--btn[data-filter="*"]:focus,.ha-action--btn[data-filter="*"]:hover{border-color:#666;background-color:#666;color:#fff}.ha-action--btn[data-filter=free]{color:#562dd4}.ha-action--btn[data-filter=free]:focus,.ha-action--btn[data-filter=free]:hover{border-color:#562dd4;background-color:#562dd4;color:#fff}.ha-action--btn[data-filter=pro]{color:#e2498a}.ha-action--btn[data-filter=pro]:focus,.ha-action--btn[data-filter=pro]:hover{border-color:#e2498a;background-color:#e2498a;color:#fff}.ha-action--btn[data-action=enable],.ha-action--btn[data-action=enable_feature]{color:#5db429}.ha-action--btn[data-action=enable]:focus,.ha-action--btn[data-action=enable]:hover,.ha-action--btn[data-action=enable_feature]:focus,.ha-action--btn[data-action=enable_feature]:hover{border-color:#5db429;background-color:#5db429;color:#fff}.ha-action--btn[data-action=disable],.ha-action--btn[data-action=disable_feature]{color:#e63d3d}.ha-action--btn[data-action=disable]:focus,.ha-action--btn[data-action=disable]:hover,.ha-action--btn[data-action=disable_feature]:focus,.ha-action--btn[data-action=disable_feature]:hover{border-color:#e63d3d;background-color:#e63d3d;color:#fff}.ha-home-banner{position:relative;padding-top:25.2%;border-radius:5px;background:url(../../imgs/admin/dashboard-header.png) no-repeat center center/cover}.ha-home-banner__content{position:absolute;top:50%;left:50%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;padding-right:15px;padding-left:15px;max-width:1000px;width:100%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.ha-home-banner__logo{position:relative;top:-8px;margin-right:50px;width:150px;height:auto}.ha-home-banner__divider{width:4px;height:60px;border-radius:10px;background-color:#fff}.ha-home-banner h2{float:left;margin:0;padding-left:50px;color:#fff;font-size:28px;line-height:1.1}.ha-home-banner h2>span{font-weight:400}.ha-home-body{margin-right:auto;margin-left:auto;padding-right:15px;padding-left:15px;max-width:1000px}.ha-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.ha-feature-title{margin-bottom:1rem;font-weight:700;font-size:28px}.ha-feature-sub-title-a{color:#242424;text-decoration:none}.ha-feature-sub-title-a:hover{color:#e2498a}.ha-feature-sub-title{margin-bottom:1rem;font-weight:700;font-size:18px;line-height:1.4}.ha-btn{display:inline-block;padding:.95rem 1.5rem;border-radius:4px;text-decoration:none;font-weight:700;font-size:14px}.ha-btn:focus,.ha-btn:hover{outline:none;box-shadow:none}.ha-btn-primary{background:#5e3bc4;color:#fff}.ha-btn-primary:focus,.ha-btn-primary:hover{background:#4b2f9d;color:#fff}.ha-btn-secondary{background:#e2498a;color:#fff}.ha-btn-secondary:focus,.ha-btn-secondary:hover{background:#d6226e;color:#fff}.btn-more:hover,.ha-text-primary{color:#5e3bc4}.ha-media h3 a:hover,.ha-text-secondary{color:#e2498a}.btn-more,.ha-btn-view{color:#e2498a;text-decoration:none;font-size:16px}.ha-btn-view{color:#835ef1}.ha-cta{padding:2.5rem 3rem;background:#e2498a;background-image:-webkit-linear-gradient(320deg,#e05da4 0%,#7249cf 100%);background-image:linear-gradient(130deg,#e05da4 0%,#7249cf 100%);color:#fff}.ha-cta .ha-feature-title{margin-top:0;color:#fff}.ha-cta p{margin-bottom:1rem;color:#daacdd}.ha-cta .link{color:#fff;text-decoration:underline;font-size:16px}.ha-cta .link:hover,.ha-media h3 a{text-decoration:none}.ha-cta .btn-contribute{display:inline-block;padding:.95rem 1.5rem;border-radius:4px;background:#fff;color:#7f4bca;text-decoration:none;font-size:15px}.ha-cta .btn-contribute:hover{background:#e2498a;color:#fff}.ha-section-title{margin:0;font-size:48px;line-height:1}.ha-badge{display:inline-block;margin-bottom:.3rem;padding:.6rem 1rem;border-radius:5px;background:#e2498a;background-image:-webkit-linear-gradient(320deg,#e05da4 0%,#7249cf 100%);background-image:linear-gradient(130deg,#e05da4 0%,#7249cf 100%);color:#fff;font-weight:700;font-size:24px}.ha-sub-title-sm{margin:.3rem 0 0;font-size:16px}.ha-border-box{padding:3rem;border:1px solid #ececec;border-radius:5px;box-shadow:10px 0 20px rgba(0,0,0,.05)}.ha-media{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-media img{width:180px;height:auto}.ha-media h3 a{color:#242424;line-height:1.4}.ha-media .ha-date{color:#8c8c8c}.ha-media-body{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.ha-pro-widget{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;margin-bottom:25px;padding:1.5rem 1rem;border-radius:4px;background:#7c58e5;color:#fff;text-decoration:none;font-weight:700;font-size:13px}.ha-pro-widget:focus,.ha-pro-widget:hover{background:#df4b89;color:#fff}.ha-pro-widget i{padding-right:15px;font-weight:700;font-size:20px}.ha-dashboard .f18{font-size:18px}.ha-dashboard .f16{font-size:16px}.ha-dashboard .ha-py-5{padding-top:4rem;padding-bottom:4rem}.ha-dashboard .ha-pt-0{padding-top:0}.ha-dashboard .ha-pb-0{padding-bottom:0}.ha-dashboard .ha-pb-3{margin-bottom:3rem}.ha-dashboard .ha-pt-2{padding-top:2rem}.ha-dashboard .ha-pt-3{padding-top:3rem}.ha-dashboard .ha-pr-2{padding-right:2rem}.ha-dashboard .ha-pl-2{padding-left:2rem}.ha-dashboard .ha-mt-0{margin-top:0}.ha-dashboard .ha-mb-0{margin-bottom:0}.ha-dashboard .ha-mb-2{margin-bottom:2rem}.ha-dashboard .ha-mb-3{margin-bottom:3rem}.ha-dashboard .ha-mr-3{margin-right:1.5rem}.ha-dashboard p{margin-bottom:2.5rem}.ha-dashboard a,.ha-dashboard a:hover{-webkit-transition:all .3s;transition:all .3s}.ha-dashboard .ha-rounded{border-radius:5px}.ha-dashboard .ha-align-center{text-align:center}.ha-dashboard .ha-align-right{text-align:right}.ha-dashboard .ha-img-fluid{max-width:100%;height:auto}.ha-dashboard .ha-align-items-center{-webkit-box-align:center!important;-webkit-align-items:center!important;align-items:center!important;-ms-flex-align:center!important}.ha-dashboard .ha-align-items-end{-webkit-box-align:end!important;-webkit-align-items:flex-end!important;align-items:flex-end!important;-ms-flex-align:end!important}.ha-dashboard .ha-min-height-455{min-height:455px}.ha-dashboard .ha-title-icon-size{width:48px;height:auto}@media (min-width:768px){.ha-col{position:relative;padding-right:15px;padding-left:15px;width:100%}.ha-col-11,.ha-col-12{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.ha-col-11{-webkit-flex:0 0 91.666667%;-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.ha-col-10,.ha-col-9{-webkit-box-flex:0;-webkit-flex:0 0 83.333333%;-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.ha-col-9{-webkit-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.ha-col-7,.ha-col-8{-webkit-box-flex:0;-webkit-flex:0 0 66.666667%;-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.ha-col-7{-webkit-flex:0 0 58.333333%;-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.ha-col-5,.ha-col-6{-webkit-box-flex:0;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.ha-col-5{-webkit-flex:0 0 41.666667%;-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.ha-col-3,.ha-col-4{-webkit-box-flex:0;-webkit-flex:0 0 33.333333%;-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.ha-col-3{-webkit-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.ha-col-1,.ha-col-2{-webkit-box-flex:0;-webkit-flex:0 0 16.666667%;-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.ha-col-1{-webkit-flex:0 0 8.333333%;-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}}[data-tooltip]{position:relative;z-index:2;cursor:pointer}[data-tooltip]:after,[data-tooltip]:before{visibility:hidden;opacity:0;pointer-events:none}[data-tooltip]:before{position:absolute;bottom:140%;left:50%;padding:5px;width:140px;border-radius:3px;background-color:#000;background-color:rgba(51,51,51,.9);color:#fff;content:attr(data-tooltip);text-align:center;font-size:12px;line-height:1.2;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}[data-tooltip]:after{position:absolute;left:50%;margin-top:-8px;margin-left:-5px;width:0;border-top:5px solid #000;border-top:5px solid rgba(51,51,51,.9);border-right:5px solid transparent;border-left:5px solid transparent;content:" ";font-size:0;line-height:0}[data-tooltip]:hover:after,[data-tooltip]:hover:before{visibility:visible;opacity:1}
|
assets/css/main.css
CHANGED
@@ -4,6 +4,7 @@
|
|
4 |
.ha-css-transform-yes{-webkit-transition-duration:var(--ha-tfx-transition-duration,.2s);transition-duration:var(--ha-tfx-transition-duration,.2s);-webkit-transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transform:translate(var(--ha-tfx-translate-x,0),var(--ha-tfx-translate-y,0)) scale(var(--ha-tfx-scale-x,1),var(--ha-tfx-scale-y,1)) skew(var(--ha-tfx-skew-x,0),var(--ha-tfx-skew-y,0)) rotateX(var(--ha-tfx-rotate-x,0)) rotateY(var(--ha-tfx-rotate-y,0)) rotateZ(var(--ha-tfx-rotate-z,0));transform:translate(var(--ha-tfx-translate-x,0),var(--ha-tfx-translate-y,0)) scale(var(--ha-tfx-scale-x,1),var(--ha-tfx-scale-y,1)) skew(var(--ha-tfx-skew-x,0),var(--ha-tfx-skew-y,0)) rotateX(var(--ha-tfx-rotate-x,0)) rotateY(var(--ha-tfx-rotate-y,0)) rotateZ(var(--ha-tfx-rotate-z,0))}.ha-css-transform-yes:hover{-webkit-transform:translate(var(--ha-tfx-translate-x-hover,var(--ha-tfx-translate-x,0)),var(--ha-tfx-translate-y-hover,var(--ha-tfx-translate-y,0))) scale(var(--ha-tfx-scale-x-hover,var(--ha-tfx-scale-x,1)),var(--ha-tfx-scale-y-hover,var(--ha-tfx-scale-y,1))) skew(var(--ha-tfx-skew-x-hover,var(--ha-tfx-skew-x,0)),var(--ha-tfx-skew-y-hover,var(--ha-tfx-skew-y,0))) rotateX(var(--ha-tfx-rotate-x-hover,var(--ha-tfx-rotate-x,0))) rotateY(var(--ha-tfx-rotate-y-hover,var(--ha-tfx-rotate-y,0))) rotateZ(var(--ha-tfx-rotate-z-hover,var(--ha-tfx-rotate-z,0)));transform:translate(var(--ha-tfx-translate-x-hover,var(--ha-tfx-translate-x,0)),var(--ha-tfx-translate-y-hover,var(--ha-tfx-translate-y,0))) scale(var(--ha-tfx-scale-x-hover,var(--ha-tfx-scale-x,1)),var(--ha-tfx-scale-y-hover,var(--ha-tfx-scale-y,1))) skew(var(--ha-tfx-skew-x-hover,var(--ha-tfx-skew-x,0)),var(--ha-tfx-skew-y-hover,var(--ha-tfx-skew-y,0))) rotateX(var(--ha-tfx-rotate-x-hover,var(--ha-tfx-rotate-x,0))) rotateY(var(--ha-tfx-rotate-y-hover,var(--ha-tfx-rotate-y,0))) rotateZ(var(--ha-tfx-rotate-z-hover,var(--ha-tfx-rotate-z,0)))}.happy-addon>.elementor-widget-container{word-wrap:break-word;overflow-wrap:break-word;box-sizing:border-box}.happy-addon>.elementor-widget-container *{box-sizing:border-box}.happy-addon p:empty{display:none}.happy-addon .elementor-inline-editing{min-height:auto!important}.happy-addon-pro img{max-width:100%;height:auto;-o-object-fit:cover;object-fit:cover}.ha-screen-reader-text{position:absolute;overflow:hidden;clip:rect(1px,1px,1px,1px);margin:-1px;padding:0;width:1px;height:1px;border:0;word-wrap:normal!important;-webkit-clip-path:inset(50%);clip-path:inset(50%)}.ha-has-bg-overlay>.elementor-widget-container{position:relative;z-index:1}.ha-has-bg-overlay>.elementor-widget-container:before{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;content:""}.ha-popup--is-enabled .ha-js-popup,.ha-popup--is-enabled .ha-js-popup img{cursor:-webkit-zoom-in!important;cursor:zoom-in!important}.mfp-wrap .mfp-arrow,.mfp-wrap .mfp-close{background-color:transparent}.mfp-wrap .mfp-arrow:focus,.mfp-wrap .mfp-close:focus{outline-width:thin}
|
5 |
.ha-data-table .elementor-widget-container{overflow:hidden}.ha-data-table .ha-table{margin-bottom:0}.ha-data-table .ha-table__head-column-cell{padding:20px;border:1px solid;border-color:#5636d1 #320ebd #5636d1 #5636d1;background-color:#5636d1;color:#fff;vertical-align:middle;text-align:center}.ha-data-table .ha-table__head-column-cell-wrap{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table .ha-table__head-column-cell-icon{padding-left:10px;line-height:1}.ha-data-table .ha-table__body-row-cell-icon img,.ha-data-table .ha-table__head-column-cell-icon img{width:40px;-o-object-fit:cover;object-fit:cover}.ha-data-table .ha-table__body-row-cell-icon svg,.ha-data-table .ha-table__head-column-cell-icon svg{width:40px;height:auto;fill:currentColor}.ha-data-table .ha-table__body-row:nth-child(even),.ha-data-table .ha-table__body-row:nth-child(odd){background-color:#fff}.ha-data-table .ha-table__body-row:nth-child(even):hover{background-color:rgba(86,54,209,.08)}.ha-data-table .ha-table__body-row:nth-child(odd):hover{background-color:rgba(232,53,124,.08)}.ha-data-table .ha-table__body-row-cell{padding:15px;border:1px solid #ddd;background-color:transparent;vertical-align:middle}.ha-data-table .ha-table__body-row-cell-wrap{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table .ha-table__body-row-cell-icon{padding-left:10px;line-height:1}.ha-data-table .ha-table__body .ha-table__head-column-cell{display:none}.ha-data-table.ha-column-icon-bottom .ha-table__head-column-cell-icon,.ha-data-table.ha-column-icon-top .ha-table__head-column-cell-icon{width:100%}.ha-data-table.ha-column-icon-left .ha-table__head-column-cell-icon,.ha-data-table.ha-column-icon-right .ha-table__head-column-cell-icon{width:auto}.ha-data-table.ha-row-icon-bottom .ha-table__body-row-cell-icon,.ha-data-table.ha-row-icon-top .ha-table__body-row-cell-icon{width:100%}.ha-data-table.ha-row-icon-left .ha-table__body-row-cell-icon,.ha-data-table.ha-row-icon-right .ha-table__body-row-cell-icon{width:auto}.ha-data-table.ha-column-icon-left .ha-table__head-column-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-data-table.ha-column-icon-right .ha-table__head-column-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table.ha-column-icon-top .ha-table__head-column-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.ha-data-table.ha-column-icon-bottom .ha-table__head-column-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-data-table.ha-row-icon-left .ha-table__body-row-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-data-table.ha-row-icon-right .ha-table__body-row-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table.ha-row-icon-top .ha-table__body-row-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.ha-data-table.ha-row-icon-bottom .ha-table__body-row-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}@media (max-width:767px){.ha-data-table .ha-table__head{display:none}.ha-data-table .ha-table__body .ha-table__body-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-data-table .ha-table__body .ha-table__body-row-cell{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;margin-top:-1px;padding:0!important}.ha-data-table .ha-table__body .ha-table__body-row-cell:first-child{margin-top:auto}.ha-data-table .ha-table__body .ha-table__head-column-cell{display:block;width:100%}.ha-data-table .ha-table__body .ha-table__body-row-cell-wrap{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%}.ha-data-table.ha-row-icon-left.ha-row-alignment-left .ha-table__body-row-cell-wrap{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-data-table.ha-row-icon-left.ha-row-alignment-center .ha-table__body-row-cell-wrap{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-left.ha-row-alignment-right .ha-table__body-row-cell-wrap{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-left .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-left .ha-table__body-row-cell-wrap{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-center .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-center .ha-table__body-row-cell-wrap{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-right .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-right .ha-table__body-row-cell-wrap{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}}
|
6 |
.ha-dual-btn,.ha-dual-btn-connector{display:inline-block}.ha-dual-btn-wrapper{position:relative;text-align:center;font-weight:400}.ha-dual-btn{padding:1.3rem 2.3rem;max-width:100%;color:#fff;text-decoration:none;font-size:14px;line-height:1}.ha-dual-btn--left{background-color:#562dd4}.ha-dual-btn--left:focus,.ha-dual-btn--left:hover{background-color:#4423ab;color:#fff}.ha-dual-btn--right{background-color:#e2498a}.ha-dual-btn--right:focus,.ha-dual-btn--right:hover{background-color:#d6226e;color:#fff}.ha-dual-btn-connector{position:absolute!important;z-index:9;overflow:hidden;width:30px;height:30px;border-radius:100%;background-color:#fff;box-shadow:0 0 0 5px rgba(255,255,255,.3);color:#27374c;text-transform:uppercase;font-size:12px;line-height:30px;-webkit-transform:translate(50%,-50%);-ms-transform:translate(50%,-50%);transform:translate(50%,-50%)}.ha-dual-btn-icon>svg{width:1em;height:auto;vertical-align:top;fill:currentColor}.ha-dual-btn-icon>i{font-size:1em}.ha-dual-btn-icon--before{margin-right:5px}.ha-dual-btn-icon--after{margin-left:5px}.ha-dual-button>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.ha-dual-button--mobile-layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--mobile-layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--mobile-layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--mobile-layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--mobile-layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-center>.elementor-widget-container{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--mobile-layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--mobile-layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--mobile-layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--mobile-layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--mobile-layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}@media (min-width:768px){.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-center>.elementor-widget-container{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--tablet-layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--tablet-layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--tablet-layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--tablet-layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--tablet-layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--tablet-layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--tablet-layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--tablet-layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--tablet-layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--tablet-layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}}@media (min-width:1025px){.ha-dual-button--layout-stack.ha-dual-button--align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--layout-stack.ha-dual-button--align-center>.elementor-widget-container{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--layout-stack.ha-dual-button--align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--layout-queue.ha-dual-button--align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--layout-queue.ha-dual-button--align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--layout-queue.ha-dual-button--align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}}
|
|
|
7 |
.ha-flip-box-container:after{display:block;visibility:hidden;clear:both;height:0;content:" ";font-size:0}.ha-flip-box-container .ha-flip-box-inner{position:relative;z-index:1;margin:0;padding:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.ha-flip-box-container .ha-flip-box-inner:hover .ha-flip-box-back{z-index:1}.ha-flip-box-container .ha-flip-box-inner:hover .ha-flip-box-front{z-index:-1}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-inner-wrapper{position:relative;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-perspective:1000px;perspective:1000px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front{top:0;right:0;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;height:250px;background-position:center;background-clip:padding-box;background-size:cover;background-repeat:no-repeat;text-align:center;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front{background-color:transparent;position:relative;bottom:0;z-index:10;padding:30px;border:1px solid #ddd;border-radius:.3rem}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back:before,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front:before{position:absolute;top:0;left:0;z-index:-9;width:100%;height:100%;background-color:transparent;content:""}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back{position:absolute;z-index:-1;padding:46px;border-radius:.3rem;background-color:#562dd4;color:#fff}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-text,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-text{text-align:center}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-text p,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-text p{margin-top:10px;margin-bottom:0}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon.icon{padding:20px;border-radius:50%;background-color:#f1f4f8;color:#242424}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon{display:inline-block;margin-bottom:20px;text-align:center;font-size:28px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon svg{display:block;width:1em;height:1em;fill:currentColor}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i{position:relative}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i:before,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon img,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon img{width:60px;height:60px;vertical-align:middle;-o-object-fit:cover;object-fit:cover}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-box-heading{margin:0;font-weight:700;font-size:20px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner p{margin-bottom:0;font-size:16px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-box-heading-back{margin:0;color:#fff;font-size:18px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon{display:inline-block;margin-bottom:20px;color:#fff;text-align:center;font-size:20px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon svg{display:block;width:1em;height:1em;fill:currentColor}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i{position:relative}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right .ha-flip-box-front,.ha-flip-box-container .ha-flip-box-inner.ha-flip-right:hover .ha-flip-box-back{-webkit-transform:rotateY(0);transform:rotateY(0)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right .ha-flip-box-back{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right:hover .ha-flip-box-front{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up .ha-flip-box-front,.ha-flip-box-container .ha-flip-box-inner.ha-flip-up:hover .ha-flip-box-back{-webkit-transform:rotateX(0);transform:rotateX(0)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up .ha-flip-box-back{-webkit-transform:rotateX(-180deg);transform:rotateX(-180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up:hover .ha-flip-box-front{-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.ha-flip-box-container.ha-flip-effect-classic .ha-flip-box-back,.ha-flip-box-container.ha-flip-effect-classic .ha-flip-box-front{-webkit-transition:-webkit-transform .6s cubic-bezier(.2,.85,.4,1.275);transition:transform .6s cubic-bezier(.2,.85,.4,1.275);transition:transform .6s cubic-bezier(.2,.85,.4,1.275),-webkit-transform .6s cubic-bezier(.2,.85,.4,1.275)}
|
8 |
.ha-fun-factor__content .ha-fun-factor__content-number,.ha-fun-factor__content .ha-fun-factor__content-text{margin-top:0;margin-bottom:15px;font-size:24px}.ha-ff-icon--left .ha-fun-factor__content{padding-left:20px}.ha-ff-icon--right .ha-fun-factor__content{padding-right:20px}.ha-fun-factor__divider{display:block;margin-bottom:15px;height:1px;background-color:#ccc}.ha-ff-icon--top .ha-fun-factor__media{display:inline-block;margin-top:10px;margin-bottom:10px}.ha-ff-icon--top .ha-fun-factor__media--image{width:200px}:not(.ha-ff-icon--top) .ha-fun-factor__media--image{-webkit-box-flex:0;-webkit-flex:0 0 200px;-ms-flex:0 0 200px;flex:0 0 200px;max-width:200px}.ha-fun-factor__media--image img{width:100%;height:100%;vertical-align:bottom;-o-object-fit:cover;object-fit:cover}.ha-fun-factor__media--icon{font-size:3rem}.ha-fun-factor__media--icon i,.ha-fun-factor__media--icon svg{position:relative;display:block;width:1em;height:1em;fill:currentColor}.ha-fun-factor__media--icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-fun-factor__wrap{padding:10px;word-wrap:break-word;overflow-wrap:break-word}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;text-align:right}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{display:block;margin-right:auto;margin-left:auto}.ha-ff-icon--top>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{display:block;margin-right:auto;margin-left:auto;width:100px}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{width:100%!important}.ha-fun-factor__divider-align-left{margin-left:0!important;text-align:left}.ha-fun-factor__divider-align-right{margin-right:0!important;text-align:right}.ha-fun-factor__divider-align-center{margin-right:auto!important;margin-left:auto!important;text-align:center}
|
9 |
.ha-filter{margin-bottom:20px}.ha-filter__item{display:inline-block;overflow:hidden;margin-bottom:10px;padding:8px 20px;max-width:100%;border:2px solid #885cff;border-radius:3px;background-color:transparent;color:#885cff;text-transform:uppercase;text-overflow:ellipsis;font-size:14px;line-height:1.2;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ha-filter__item:focus,.ha-filter__item:hover{outline:0;background-color:#885cff;color:#fff}.ha-filter__item--active,.ha-filter__item:active{background-color:#885cff;color:#fff}.ha-filter__item:not(:last-child){margin-right:10px}
|
4 |
.ha-css-transform-yes{-webkit-transition-duration:var(--ha-tfx-transition-duration,.2s);transition-duration:var(--ha-tfx-transition-duration,.2s);-webkit-transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transform:translate(var(--ha-tfx-translate-x,0),var(--ha-tfx-translate-y,0)) scale(var(--ha-tfx-scale-x,1),var(--ha-tfx-scale-y,1)) skew(var(--ha-tfx-skew-x,0),var(--ha-tfx-skew-y,0)) rotateX(var(--ha-tfx-rotate-x,0)) rotateY(var(--ha-tfx-rotate-y,0)) rotateZ(var(--ha-tfx-rotate-z,0));transform:translate(var(--ha-tfx-translate-x,0),var(--ha-tfx-translate-y,0)) scale(var(--ha-tfx-scale-x,1),var(--ha-tfx-scale-y,1)) skew(var(--ha-tfx-skew-x,0),var(--ha-tfx-skew-y,0)) rotateX(var(--ha-tfx-rotate-x,0)) rotateY(var(--ha-tfx-rotate-y,0)) rotateZ(var(--ha-tfx-rotate-z,0))}.ha-css-transform-yes:hover{-webkit-transform:translate(var(--ha-tfx-translate-x-hover,var(--ha-tfx-translate-x,0)),var(--ha-tfx-translate-y-hover,var(--ha-tfx-translate-y,0))) scale(var(--ha-tfx-scale-x-hover,var(--ha-tfx-scale-x,1)),var(--ha-tfx-scale-y-hover,var(--ha-tfx-scale-y,1))) skew(var(--ha-tfx-skew-x-hover,var(--ha-tfx-skew-x,0)),var(--ha-tfx-skew-y-hover,var(--ha-tfx-skew-y,0))) rotateX(var(--ha-tfx-rotate-x-hover,var(--ha-tfx-rotate-x,0))) rotateY(var(--ha-tfx-rotate-y-hover,var(--ha-tfx-rotate-y,0))) rotateZ(var(--ha-tfx-rotate-z-hover,var(--ha-tfx-rotate-z,0)));transform:translate(var(--ha-tfx-translate-x-hover,var(--ha-tfx-translate-x,0)),var(--ha-tfx-translate-y-hover,var(--ha-tfx-translate-y,0))) scale(var(--ha-tfx-scale-x-hover,var(--ha-tfx-scale-x,1)),var(--ha-tfx-scale-y-hover,var(--ha-tfx-scale-y,1))) skew(var(--ha-tfx-skew-x-hover,var(--ha-tfx-skew-x,0)),var(--ha-tfx-skew-y-hover,var(--ha-tfx-skew-y,0))) rotateX(var(--ha-tfx-rotate-x-hover,var(--ha-tfx-rotate-x,0))) rotateY(var(--ha-tfx-rotate-y-hover,var(--ha-tfx-rotate-y,0))) rotateZ(var(--ha-tfx-rotate-z-hover,var(--ha-tfx-rotate-z,0)))}.happy-addon>.elementor-widget-container{word-wrap:break-word;overflow-wrap:break-word;box-sizing:border-box}.happy-addon>.elementor-widget-container *{box-sizing:border-box}.happy-addon p:empty{display:none}.happy-addon .elementor-inline-editing{min-height:auto!important}.happy-addon-pro img{max-width:100%;height:auto;-o-object-fit:cover;object-fit:cover}.ha-screen-reader-text{position:absolute;overflow:hidden;clip:rect(1px,1px,1px,1px);margin:-1px;padding:0;width:1px;height:1px;border:0;word-wrap:normal!important;-webkit-clip-path:inset(50%);clip-path:inset(50%)}.ha-has-bg-overlay>.elementor-widget-container{position:relative;z-index:1}.ha-has-bg-overlay>.elementor-widget-container:before{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;content:""}.ha-popup--is-enabled .ha-js-popup,.ha-popup--is-enabled .ha-js-popup img{cursor:-webkit-zoom-in!important;cursor:zoom-in!important}.mfp-wrap .mfp-arrow,.mfp-wrap .mfp-close{background-color:transparent}.mfp-wrap .mfp-arrow:focus,.mfp-wrap .mfp-close:focus{outline-width:thin}
|
5 |
.ha-data-table .elementor-widget-container{overflow:hidden}.ha-data-table .ha-table{margin-bottom:0}.ha-data-table .ha-table__head-column-cell{padding:20px;border:1px solid;border-color:#5636d1 #320ebd #5636d1 #5636d1;background-color:#5636d1;color:#fff;vertical-align:middle;text-align:center}.ha-data-table .ha-table__head-column-cell-wrap{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table .ha-table__head-column-cell-icon{padding-left:10px;line-height:1}.ha-data-table .ha-table__body-row-cell-icon img,.ha-data-table .ha-table__head-column-cell-icon img{width:40px;-o-object-fit:cover;object-fit:cover}.ha-data-table .ha-table__body-row-cell-icon svg,.ha-data-table .ha-table__head-column-cell-icon svg{width:40px;height:auto;fill:currentColor}.ha-data-table .ha-table__body-row:nth-child(even),.ha-data-table .ha-table__body-row:nth-child(odd){background-color:#fff}.ha-data-table .ha-table__body-row:nth-child(even):hover{background-color:rgba(86,54,209,.08)}.ha-data-table .ha-table__body-row:nth-child(odd):hover{background-color:rgba(232,53,124,.08)}.ha-data-table .ha-table__body-row-cell{padding:15px;border:1px solid #ddd;background-color:transparent;vertical-align:middle}.ha-data-table .ha-table__body-row-cell-wrap{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table .ha-table__body-row-cell-icon{padding-left:10px;line-height:1}.ha-data-table .ha-table__body .ha-table__head-column-cell{display:none}.ha-data-table.ha-column-icon-bottom .ha-table__head-column-cell-icon,.ha-data-table.ha-column-icon-top .ha-table__head-column-cell-icon{width:100%}.ha-data-table.ha-column-icon-left .ha-table__head-column-cell-icon,.ha-data-table.ha-column-icon-right .ha-table__head-column-cell-icon{width:auto}.ha-data-table.ha-row-icon-bottom .ha-table__body-row-cell-icon,.ha-data-table.ha-row-icon-top .ha-table__body-row-cell-icon{width:100%}.ha-data-table.ha-row-icon-left .ha-table__body-row-cell-icon,.ha-data-table.ha-row-icon-right .ha-table__body-row-cell-icon{width:auto}.ha-data-table.ha-column-icon-left .ha-table__head-column-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-data-table.ha-column-icon-right .ha-table__head-column-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table.ha-column-icon-top .ha-table__head-column-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.ha-data-table.ha-column-icon-bottom .ha-table__head-column-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-data-table.ha-row-icon-left .ha-table__body-row-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-data-table.ha-row-icon-right .ha-table__body-row-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table.ha-row-icon-top .ha-table__body-row-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.ha-data-table.ha-row-icon-bottom .ha-table__body-row-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}@media (max-width:767px){.ha-data-table .ha-table__head{display:none}.ha-data-table .ha-table__body .ha-table__body-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-data-table .ha-table__body .ha-table__body-row-cell{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;margin-top:-1px;padding:0!important}.ha-data-table .ha-table__body .ha-table__body-row-cell:first-child{margin-top:auto}.ha-data-table .ha-table__body .ha-table__head-column-cell{display:block;width:100%}.ha-data-table .ha-table__body .ha-table__body-row-cell-wrap{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%}.ha-data-table.ha-row-icon-left.ha-row-alignment-left .ha-table__body-row-cell-wrap{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-data-table.ha-row-icon-left.ha-row-alignment-center .ha-table__body-row-cell-wrap{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-left.ha-row-alignment-right .ha-table__body-row-cell-wrap{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-left .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-left .ha-table__body-row-cell-wrap{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-center .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-center .ha-table__body-row-cell-wrap{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-right .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-right .ha-table__body-row-cell-wrap{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}}
|
6 |
.ha-dual-btn,.ha-dual-btn-connector{display:inline-block}.ha-dual-btn-wrapper{position:relative;text-align:center;font-weight:400}.ha-dual-btn{padding:1.3rem 2.3rem;max-width:100%;color:#fff;text-decoration:none;font-size:14px;line-height:1}.ha-dual-btn--left{background-color:#562dd4}.ha-dual-btn--left:focus,.ha-dual-btn--left:hover{background-color:#4423ab;color:#fff}.ha-dual-btn--right{background-color:#e2498a}.ha-dual-btn--right:focus,.ha-dual-btn--right:hover{background-color:#d6226e;color:#fff}.ha-dual-btn-connector{position:absolute!important;z-index:9;overflow:hidden;width:30px;height:30px;border-radius:100%;background-color:#fff;box-shadow:0 0 0 5px rgba(255,255,255,.3);color:#27374c;text-transform:uppercase;font-size:12px;line-height:30px;-webkit-transform:translate(50%,-50%);-ms-transform:translate(50%,-50%);transform:translate(50%,-50%)}.ha-dual-btn-icon>svg{width:1em;height:auto;vertical-align:top;fill:currentColor}.ha-dual-btn-icon>i{font-size:1em}.ha-dual-btn-icon--before{margin-right:5px}.ha-dual-btn-icon--after{margin-left:5px}.ha-dual-button>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.ha-dual-button--mobile-layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--mobile-layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--mobile-layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--mobile-layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--mobile-layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-center>.elementor-widget-container{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--mobile-layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--mobile-layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--mobile-layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--mobile-layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--mobile-layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}@media (min-width:768px){.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-center>.elementor-widget-container{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--tablet-layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--tablet-layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--tablet-layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--tablet-layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--tablet-layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--tablet-layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--tablet-layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--tablet-layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--tablet-layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--tablet-layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}}@media (min-width:1025px){.ha-dual-button--layout-stack.ha-dual-button--align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--layout-stack.ha-dual-button--align-center>.elementor-widget-container{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--layout-stack.ha-dual-button--align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--layout-queue.ha-dual-button--align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--layout-queue.ha-dual-button--align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--layout-queue.ha-dual-button--align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}}
|
7 |
+
.ha-ec-popup-wrapper,.ha-ec-popup-wrapper.ha-ec-popup-ready:before{top:0;left:0;width:100%;height:100%;-webkit-transition:all .3s ease-out;transition:all .3s ease-out}.ha-ec-popup-wrapper{--ha-ec-popup-image-width:16.666667%;z-index:-1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;visibility:hidden;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:fixed}.ha-ec-popup-wrapper.ha-ec-popup-ready{z-index:99999;visibility:visible;opacity:1}.ha-ec-popup-wrapper.ha-ec-popup-ready:before{position:absolute;background:rgba(0,0,0,.7);content:""}.ha-ec-popup{position:relative;display:block;padding:40px;width:900px;background:#fff;box-shadow:0 3px 13px 0 rgba(0,0,0,.08);-webkit-transition:all ease .4s;transition:all ease .4s;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.ha-ec-popup-wrapper.ha-ec-popup-ready .ha-ec-popup{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.ha-ec-popup-body,.ha-ec-popup-close{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-ec-popup-close{position:absolute;top:-18px;right:-15px;z-index:9999;overflow:visible;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:#fff;box-shadow:2px 0 12px 3px rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19);color:#000;text-align:center;font-size:24px;cursor:pointer;-webkit-transition:all ease .4s;transition:all ease .4s}.ha-ec-popup-body{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.ha-ec-popup-content,.ha-ec-popup-image,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-dayGridMonth-button,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-listMonth-button,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-listWeek-button,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-timeGridDay-button,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-timeGridWeek-button{position:relative}.ha-ec-popup-image{overflow:hidden;-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-ec-popup-image-width,16.66667%);-ms-flex:0 0 var(--ha-ec-popup-image-width,16.66667%);flex:0 0 var(--ha-ec-popup-image-width,16.66667%);margin-right:15px;max-width:var(--ha-ec-popup-image-width,16.66667%)}.ha-ec-popup-content{-webkit-box-flex:0;-webkit-flex:0 0 calc(100% - (15px + var(--ha-ec-popup-image-width,16.666667%)));-ms-flex:0 0 calc(100% - (15px + var(--ha-ec-popup-image-width,16.666667%)));flex:0 0 calc(100% - (15px + var(--ha-ec-popup-image-width,16.666667%)));max-width:calc(100% - (15px + var(--ha-ec-popup-image-width,16.666667%)))}.ha-ec-popup-image img{max-width:100%;height:auto;border:none;border-radius:5px 5px 5px 5px;box-shadow:none}.ha-ec-popup-content h3{margin-top:0;margin-bottom:10px;font-weight:700;font-size:24px}.ha-ec-popup-content p.ha-ec-popup-desc{margin-bottom:15px;color:#666;font-size:16px}.ha-ec-popup-content p.ha-ec-popup-desc p{margin-bottom:0}.ha-ec-popup-content ul,.ha-ec-popup-content ul li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.ha-ec-popup-content ul{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0;padding:0;width:100%;list-style:none}.ha-ec-popup-content ul li{position:relative;float:left;-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end;margin-right:15px;margin-bottom:30px;line-height:1}.ha-ec-popup-content ul li:last-child{margin-right:0}.ha-ec-popup-content .ha-ec-guest-icon,.ha-ec-popup-content .ha-ec-location-icon,.ha-ec-popup-content .ha-ec-time-icon{font-size:18px}.ha-ec-popup-content ul li .ha-ec-guest-title,.ha-ec-popup-content ul li .ha-ec-location-title,.ha-ec-popup-content ul li .ha-ec-time-title{display:block;margin-bottom:10px;color:#666;font-style:italic;font-size:12px;line-height:1}.ha-ec-popup-content ul li .ha-ec-event-guest,.ha-ec-popup-content ul li .ha-ec-event-location,.ha-ec-popup-content ul li .ha-ec-event-time{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;color:#666;font-weight:700;font-size:16px;line-height:1}.ha-ec-popup-content ul li svg{padding-right:5px;width:auto;height:.9em;fill:currentColor}.ha-ec-popup-content .ha-ec-popup-readmore{display:block;overflow:hidden}.ha-ec-popup-content .ha-ec-popup-readmore a.ha-ec-popup-readmore-link{display:inline-block}span.ha-ec-error-message{display:block;margin:5px 0;padding:10px;border-left-width:5px;border-left-style:solid;border-left-color:#ffb900}.ha-ec-wrapper .fc table{overflow:auto;margin:auto}.ha-ec-wrapper table tbody tr td,.ha-ec-wrapper table tbody tr td:not(.fc-timegrid-slot):not(.fc-timegrid-col),.ha-ec-wrapper table tbody tr th{background-color:transparent}.ha-ec-wrapper table tbody tr td.fc-timegrid-slot{background:0 0!important}.ha-ec-wrapper .fc-theme-standard .fc-list,.ha-ec-wrapper .fc-theme-standard .fc-scrollgrid,.ha-ec-wrapper .fc-theme-standard td,.ha-ec-wrapper .fc-theme-standard th,.ha-ec-wrapper table thead:first-child tr:first-child th{border-color:#b0b0b0}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar .fc-button-group{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar .fc-button-group .fc-button-primary{-webkit-box-flex:0;-webkit-flex:none;-ms-flex:none;flex:none}.ha-ec-wrapper .fc .fc-daygrid-day.fc-day-today,.ha-ec-wrapper .fc .fc-timegrid-col.fc-day-today{background-color:#f5f5f5}.ha-ec-wrapper .fc .fc-list-table tr>*{border-right:0!important;border-left:0!important}.ha-ec-wrapper .fc .fc-list-table th .fc-list-day-cushion,.ha-ec-wrapper th.fc-col-header-cell.fc-day{color:#fff}.ha-ec-wrapper th.fc-col-header-cell.fc-day{padding:15px;background-color:#6d39ef}.ha-ec-wrapper .fc .fc-list-table th .fc-list-day-cushion{background-color:#fff}.ha-ec-wrapper .fc-timegrid-slot-label-cushion.fc-scrollgrid-shrink-cushion,.ha-ec-wrapper span.fc-timegrid-axis-cushion.fc-scrollgrid-shrink-cushion.fc-scrollgrid-sync-inner{color:#222}.ha-ec-wrapper .fc .fc-daygrid-day-top{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;color:#222;font-size:1em}.ha-ec-wrapper .fc-daygrid-block-event .fc-event-time,.ha-ec-wrapper .fc-daygrid-block-event .fc-event-title{padding:0}.ha-ec-wrapper .fc-daygrid-day-events .fc-daygrid-event.fc-daygrid-block-event,.ha-ec-wrapper .fc-daygrid-day-events .fc-daygrid-event.fc-daygrid-dot-event{padding:10px}.ha-ec-wrapper .fc-daygrid-event,.ha-ec-wrapper .fc-timegrid-event{border:0!important}.ha-ec-wrapper .fc-daygrid-event,.ha-ec-wrapper .fc-list-event,.ha-ec-wrapper .fc-timegrid-event{background:#ac89ff}.ha-ec-wrapper .fc-daygrid-event,.ha-ec-wrapper .fc-daygrid-event .fc-event-main,.ha-ec-wrapper .fc-list-event,.ha-ec-wrapper .fc-timegrid-event,.ha-ec-wrapper .fc-timegrid-event .fc-event-main,.ha-ec-wrapper a.fc-daygrid-event,.ha-ec-wrapper a.fc-daygrid-event .fc-event-main,.ha-ec-wrapper a.fc-daygrid-event:hover{color:#fff;font-size:14px}.ha-ec-wrapper .fc-daygrid-event .fc-daygrid-event-dot,.ha-ec-wrapper .fc-list-event .fc-list-event-dot{border-color:#fff}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar .fc-toolbar-title{color:#242424;font-size:1.5em}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar .fc-button .fc-icon{font-size:1em}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar .fc-button-group button:not(:first-child){margin-left:5px}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-dayGridMonth-button:before,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-listMonth-button:before,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-listWeek-button:before,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-timeGridDay-button:before,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-timeGridWeek-button:before{display:inline-block;padding-right:5px;padding-left:0;font-weight:900;font-size:1em;font-family:"Font Awesome 5 Free"}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-timeGridWeek-button:before{left:8px;content:"\f03a"}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-timeGridDay-button:before{left:21px;content:"\f0c9"}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-dayGridMonth-button:before{content:"\f00a"}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-listMonth-button:before,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-listWeek-button:before{content:"\f00b"}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button.fc-button-primary{float:none;padding:8px 12px;width:auto;height:auto;border:none;border-radius:3px;background:#f7f7fb;box-shadow:none;color:#242424;text-transform:capitalize;text-shadow:none;font-weight:400;font-size:1em;line-height:19px}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button.fc-button-primary.fc-state-active,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button.fc-button-primary:focus,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button.fc-button-primary:hover,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button.fc-button-primary:visited{background:#e2498a;box-shadow:none;color:#fff}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button.fc-button-primary.fc-button-active{background:#e2498a;color:#fff}@media (max-width:575px){.ha-ec-wrapper .fc-header-toolbar.fc-toolbar .fc-toolbar-chunk{margin-bottom:10px;width:100%;text-align:center}.ha-ec-popup-content,.ha-ec-popup-image{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.ha-ec-popup-body .ha-ec-popup-image{margin-right:0;margin-bottom:15px}.ha-ec-wrapper .fc-daygrid-day-events .fc-daygrid-event.fc-daygrid-block-event,.ha-ec-wrapper .fc-daygrid-day-events .fc-daygrid-event.fc-daygrid-dot-event{padding:0}}
|
8 |
.ha-flip-box-container:after{display:block;visibility:hidden;clear:both;height:0;content:" ";font-size:0}.ha-flip-box-container .ha-flip-box-inner{position:relative;z-index:1;margin:0;padding:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.ha-flip-box-container .ha-flip-box-inner:hover .ha-flip-box-back{z-index:1}.ha-flip-box-container .ha-flip-box-inner:hover .ha-flip-box-front{z-index:-1}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-inner-wrapper{position:relative;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-perspective:1000px;perspective:1000px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front{top:0;right:0;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;height:250px;background-position:center;background-clip:padding-box;background-size:cover;background-repeat:no-repeat;text-align:center;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front{background-color:transparent;position:relative;bottom:0;z-index:10;padding:30px;border:1px solid #ddd;border-radius:.3rem}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back:before,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front:before{position:absolute;top:0;left:0;z-index:-9;width:100%;height:100%;background-color:transparent;content:""}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back{position:absolute;z-index:-1;padding:46px;border-radius:.3rem;background-color:#562dd4;color:#fff}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-text,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-text{text-align:center}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-text p,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-text p{margin-top:10px;margin-bottom:0}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon.icon{padding:20px;border-radius:50%;background-color:#f1f4f8;color:#242424}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon{display:inline-block;margin-bottom:20px;text-align:center;font-size:28px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon svg{display:block;width:1em;height:1em;fill:currentColor}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i{position:relative}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i:before,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon img,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon img{width:60px;height:60px;vertical-align:middle;-o-object-fit:cover;object-fit:cover}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-box-heading{margin:0;font-weight:700;font-size:20px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner p{margin-bottom:0;font-size:16px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-box-heading-back{margin:0;color:#fff;font-size:18px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon{display:inline-block;margin-bottom:20px;color:#fff;text-align:center;font-size:20px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon svg{display:block;width:1em;height:1em;fill:currentColor}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i{position:relative}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right .ha-flip-box-front,.ha-flip-box-container .ha-flip-box-inner.ha-flip-right:hover .ha-flip-box-back{-webkit-transform:rotateY(0);transform:rotateY(0)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right .ha-flip-box-back{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right:hover .ha-flip-box-front{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up .ha-flip-box-front,.ha-flip-box-container .ha-flip-box-inner.ha-flip-up:hover .ha-flip-box-back{-webkit-transform:rotateX(0);transform:rotateX(0)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up .ha-flip-box-back{-webkit-transform:rotateX(-180deg);transform:rotateX(-180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up:hover .ha-flip-box-front{-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.ha-flip-box-container.ha-flip-effect-classic .ha-flip-box-back,.ha-flip-box-container.ha-flip-effect-classic .ha-flip-box-front{-webkit-transition:-webkit-transform .6s cubic-bezier(.2,.85,.4,1.275);transition:transform .6s cubic-bezier(.2,.85,.4,1.275);transition:transform .6s cubic-bezier(.2,.85,.4,1.275),-webkit-transform .6s cubic-bezier(.2,.85,.4,1.275)}
|
9 |
.ha-fun-factor__content .ha-fun-factor__content-number,.ha-fun-factor__content .ha-fun-factor__content-text{margin-top:0;margin-bottom:15px;font-size:24px}.ha-ff-icon--left .ha-fun-factor__content{padding-left:20px}.ha-ff-icon--right .ha-fun-factor__content{padding-right:20px}.ha-fun-factor__divider{display:block;margin-bottom:15px;height:1px;background-color:#ccc}.ha-ff-icon--top .ha-fun-factor__media{display:inline-block;margin-top:10px;margin-bottom:10px}.ha-ff-icon--top .ha-fun-factor__media--image{width:200px}:not(.ha-ff-icon--top) .ha-fun-factor__media--image{-webkit-box-flex:0;-webkit-flex:0 0 200px;-ms-flex:0 0 200px;flex:0 0 200px;max-width:200px}.ha-fun-factor__media--image img{width:100%;height:100%;vertical-align:bottom;-o-object-fit:cover;object-fit:cover}.ha-fun-factor__media--icon{font-size:3rem}.ha-fun-factor__media--icon i,.ha-fun-factor__media--icon svg{position:relative;display:block;width:1em;height:1em;fill:currentColor}.ha-fun-factor__media--icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-fun-factor__wrap{padding:10px;word-wrap:break-word;overflow-wrap:break-word}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;text-align:right}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{display:block;margin-right:auto;margin-left:auto}.ha-ff-icon--top>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{display:block;margin-right:auto;margin-left:auto;width:100px}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{width:100%!important}.ha-fun-factor__divider-align-left{margin-left:0!important;text-align:left}.ha-fun-factor__divider-align-right{margin-right:0!important;text-align:right}.ha-fun-factor__divider-align-center{margin-right:auto!important;margin-left:auto!important;text-align:center}
|
10 |
.ha-filter{margin-bottom:20px}.ha-filter__item{display:inline-block;overflow:hidden;margin-bottom:10px;padding:8px 20px;max-width:100%;border:2px solid #885cff;border-radius:3px;background-color:transparent;color:#885cff;text-transform:uppercase;text-overflow:ellipsis;font-size:14px;line-height:1.2;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ha-filter__item:focus,.ha-filter__item:hover{outline:0;background-color:#885cff;color:#fff}.ha-filter__item--active,.ha-filter__item:active{background-color:#885cff;color:#fff}.ha-filter__item:not(:last-child){margin-right:10px}
|
assets/css/main.min.css
CHANGED
@@ -4,6 +4,7 @@
|
|
4 |
.ha-css-transform-yes{-webkit-transition-duration:var(--ha-tfx-transition-duration,.2s);transition-duration:var(--ha-tfx-transition-duration,.2s);-webkit-transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transform:translate(var(--ha-tfx-translate-x,0),var(--ha-tfx-translate-y,0)) scale(var(--ha-tfx-scale-x,1),var(--ha-tfx-scale-y,1)) skew(var(--ha-tfx-skew-x,0),var(--ha-tfx-skew-y,0)) rotateX(var(--ha-tfx-rotate-x,0)) rotateY(var(--ha-tfx-rotate-y,0)) rotateZ(var(--ha-tfx-rotate-z,0));transform:translate(var(--ha-tfx-translate-x,0),var(--ha-tfx-translate-y,0)) scale(var(--ha-tfx-scale-x,1),var(--ha-tfx-scale-y,1)) skew(var(--ha-tfx-skew-x,0),var(--ha-tfx-skew-y,0)) rotateX(var(--ha-tfx-rotate-x,0)) rotateY(var(--ha-tfx-rotate-y,0)) rotateZ(var(--ha-tfx-rotate-z,0))}.ha-css-transform-yes:hover{-webkit-transform:translate(var(--ha-tfx-translate-x-hover,var(--ha-tfx-translate-x,0)),var(--ha-tfx-translate-y-hover,var(--ha-tfx-translate-y,0))) scale(var(--ha-tfx-scale-x-hover,var(--ha-tfx-scale-x,1)),var(--ha-tfx-scale-y-hover,var(--ha-tfx-scale-y,1))) skew(var(--ha-tfx-skew-x-hover,var(--ha-tfx-skew-x,0)),var(--ha-tfx-skew-y-hover,var(--ha-tfx-skew-y,0))) rotateX(var(--ha-tfx-rotate-x-hover,var(--ha-tfx-rotate-x,0))) rotateY(var(--ha-tfx-rotate-y-hover,var(--ha-tfx-rotate-y,0))) rotateZ(var(--ha-tfx-rotate-z-hover,var(--ha-tfx-rotate-z,0)));transform:translate(var(--ha-tfx-translate-x-hover,var(--ha-tfx-translate-x,0)),var(--ha-tfx-translate-y-hover,var(--ha-tfx-translate-y,0))) scale(var(--ha-tfx-scale-x-hover,var(--ha-tfx-scale-x,1)),var(--ha-tfx-scale-y-hover,var(--ha-tfx-scale-y,1))) skew(var(--ha-tfx-skew-x-hover,var(--ha-tfx-skew-x,0)),var(--ha-tfx-skew-y-hover,var(--ha-tfx-skew-y,0))) rotateX(var(--ha-tfx-rotate-x-hover,var(--ha-tfx-rotate-x,0))) rotateY(var(--ha-tfx-rotate-y-hover,var(--ha-tfx-rotate-y,0))) rotateZ(var(--ha-tfx-rotate-z-hover,var(--ha-tfx-rotate-z,0)))}.happy-addon>.elementor-widget-container{word-wrap:break-word;overflow-wrap:break-word;box-sizing:border-box}.happy-addon>.elementor-widget-container *{box-sizing:border-box}.happy-addon p:empty{display:none}.happy-addon .elementor-inline-editing{min-height:auto!important}.happy-addon-pro img{max-width:100%;height:auto;-o-object-fit:cover;object-fit:cover}.ha-screen-reader-text{position:absolute;overflow:hidden;clip:rect(1px,1px,1px,1px);margin:-1px;padding:0;width:1px;height:1px;border:0;word-wrap:normal!important;-webkit-clip-path:inset(50%);clip-path:inset(50%)}.ha-has-bg-overlay>.elementor-widget-container{position:relative;z-index:1}.ha-has-bg-overlay>.elementor-widget-container:before{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;content:""}.ha-popup--is-enabled .ha-js-popup,.ha-popup--is-enabled .ha-js-popup img{cursor:-webkit-zoom-in!important;cursor:zoom-in!important}.mfp-wrap .mfp-arrow,.mfp-wrap .mfp-close{background-color:transparent}.mfp-wrap .mfp-arrow:focus,.mfp-wrap .mfp-close:focus{outline-width:thin}
|
5 |
.ha-data-table .elementor-widget-container{overflow:hidden}.ha-data-table .ha-table{margin-bottom:0}.ha-data-table .ha-table__head-column-cell{padding:20px;border:1px solid;border-color:#5636d1 #320ebd #5636d1 #5636d1;background-color:#5636d1;color:#fff;vertical-align:middle;text-align:center}.ha-data-table .ha-table__head-column-cell-wrap{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table .ha-table__head-column-cell-icon{padding-left:10px;line-height:1}.ha-data-table .ha-table__body-row-cell-icon img,.ha-data-table .ha-table__head-column-cell-icon img{width:40px;-o-object-fit:cover;object-fit:cover}.ha-data-table .ha-table__body-row-cell-icon svg,.ha-data-table .ha-table__head-column-cell-icon svg{width:40px;height:auto;fill:currentColor}.ha-data-table .ha-table__body-row:nth-child(even),.ha-data-table .ha-table__body-row:nth-child(odd){background-color:#fff}.ha-data-table .ha-table__body-row:nth-child(even):hover{background-color:rgba(86,54,209,.08)}.ha-data-table .ha-table__body-row:nth-child(odd):hover{background-color:rgba(232,53,124,.08)}.ha-data-table .ha-table__body-row-cell{padding:15px;border:1px solid #ddd;background-color:transparent;vertical-align:middle}.ha-data-table .ha-table__body-row-cell-wrap{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table .ha-table__body-row-cell-icon{padding-left:10px;line-height:1}.ha-data-table .ha-table__body .ha-table__head-column-cell{display:none}.ha-data-table.ha-column-icon-bottom .ha-table__head-column-cell-icon,.ha-data-table.ha-column-icon-top .ha-table__head-column-cell-icon{width:100%}.ha-data-table.ha-column-icon-left .ha-table__head-column-cell-icon,.ha-data-table.ha-column-icon-right .ha-table__head-column-cell-icon{width:auto}.ha-data-table.ha-row-icon-bottom .ha-table__body-row-cell-icon,.ha-data-table.ha-row-icon-top .ha-table__body-row-cell-icon{width:100%}.ha-data-table.ha-row-icon-left .ha-table__body-row-cell-icon,.ha-data-table.ha-row-icon-right .ha-table__body-row-cell-icon{width:auto}.ha-data-table.ha-column-icon-left .ha-table__head-column-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-data-table.ha-column-icon-right .ha-table__head-column-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table.ha-column-icon-top .ha-table__head-column-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.ha-data-table.ha-column-icon-bottom .ha-table__head-column-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-data-table.ha-row-icon-left .ha-table__body-row-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-data-table.ha-row-icon-right .ha-table__body-row-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table.ha-row-icon-top .ha-table__body-row-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.ha-data-table.ha-row-icon-bottom .ha-table__body-row-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}@media (max-width:767px){.ha-data-table .ha-table__head{display:none}.ha-data-table .ha-table__body .ha-table__body-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-data-table .ha-table__body .ha-table__body-row-cell{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;margin-top:-1px;padding:0!important}.ha-data-table .ha-table__body .ha-table__body-row-cell:first-child{margin-top:auto}.ha-data-table .ha-table__body .ha-table__head-column-cell{display:block;width:100%}.ha-data-table .ha-table__body .ha-table__body-row-cell-wrap{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%}.ha-data-table.ha-row-icon-left.ha-row-alignment-left .ha-table__body-row-cell-wrap{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-data-table.ha-row-icon-left.ha-row-alignment-center .ha-table__body-row-cell-wrap{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-left.ha-row-alignment-right .ha-table__body-row-cell-wrap{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-left .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-left .ha-table__body-row-cell-wrap{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-center .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-center .ha-table__body-row-cell-wrap{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-right .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-right .ha-table__body-row-cell-wrap{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}}
|
6 |
.ha-dual-btn,.ha-dual-btn-connector{display:inline-block}.ha-dual-btn-wrapper{position:relative;text-align:center;font-weight:400}.ha-dual-btn{padding:1.3rem 2.3rem;max-width:100%;color:#fff;text-decoration:none;font-size:14px;line-height:1}.ha-dual-btn--left{background-color:#562dd4}.ha-dual-btn--left:focus,.ha-dual-btn--left:hover{background-color:#4423ab;color:#fff}.ha-dual-btn--right{background-color:#e2498a}.ha-dual-btn--right:focus,.ha-dual-btn--right:hover{background-color:#d6226e;color:#fff}.ha-dual-btn-connector{position:absolute!important;z-index:9;overflow:hidden;width:30px;height:30px;border-radius:100%;background-color:#fff;box-shadow:0 0 0 5px rgba(255,255,255,.3);color:#27374c;text-transform:uppercase;font-size:12px;line-height:30px;-webkit-transform:translate(50%,-50%);-ms-transform:translate(50%,-50%);transform:translate(50%,-50%)}.ha-dual-btn-icon>svg{width:1em;height:auto;vertical-align:top;fill:currentColor}.ha-dual-btn-icon>i{font-size:1em}.ha-dual-btn-icon--before{margin-right:5px}.ha-dual-btn-icon--after{margin-left:5px}.ha-dual-button>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.ha-dual-button--mobile-layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--mobile-layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--mobile-layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--mobile-layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--mobile-layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-center>.elementor-widget-container{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--mobile-layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--mobile-layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--mobile-layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--mobile-layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--mobile-layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}@media (min-width:768px){.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-center>.elementor-widget-container{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--tablet-layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--tablet-layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--tablet-layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--tablet-layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--tablet-layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--tablet-layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--tablet-layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--tablet-layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--tablet-layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--tablet-layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}}@media (min-width:1025px){.ha-dual-button--layout-stack.ha-dual-button--align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--layout-stack.ha-dual-button--align-center>.elementor-widget-container{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--layout-stack.ha-dual-button--align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--layout-queue.ha-dual-button--align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--layout-queue.ha-dual-button--align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--layout-queue.ha-dual-button--align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}}
|
|
|
7 |
.ha-flip-box-container:after{display:block;visibility:hidden;clear:both;height:0;content:" ";font-size:0}.ha-flip-box-container .ha-flip-box-inner{position:relative;z-index:1;margin:0;padding:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.ha-flip-box-container .ha-flip-box-inner:hover .ha-flip-box-back{z-index:1}.ha-flip-box-container .ha-flip-box-inner:hover .ha-flip-box-front{z-index:-1}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-inner-wrapper{position:relative;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-perspective:1000px;perspective:1000px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front{top:0;right:0;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;height:250px;background-position:center;background-clip:padding-box;background-size:cover;background-repeat:no-repeat;text-align:center;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front{background-color:transparent;position:relative;bottom:0;z-index:10;padding:30px;border:1px solid #ddd;border-radius:.3rem}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back:before,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front:before{position:absolute;top:0;left:0;z-index:-9;width:100%;height:100%;background-color:transparent;content:""}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back{position:absolute;z-index:-1;padding:46px;border-radius:.3rem;background-color:#562dd4;color:#fff}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-text,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-text{text-align:center}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-text p,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-text p{margin-top:10px;margin-bottom:0}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon.icon{padding:20px;border-radius:50%;background-color:#f1f4f8;color:#242424}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon{display:inline-block;margin-bottom:20px;text-align:center;font-size:28px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon svg{display:block;width:1em;height:1em;fill:currentColor}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i{position:relative}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i:before,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon img,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon img{width:60px;height:60px;vertical-align:middle;-o-object-fit:cover;object-fit:cover}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-box-heading{margin:0;font-weight:700;font-size:20px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner p{margin-bottom:0;font-size:16px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-box-heading-back{margin:0;color:#fff;font-size:18px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon{display:inline-block;margin-bottom:20px;color:#fff;text-align:center;font-size:20px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon svg{display:block;width:1em;height:1em;fill:currentColor}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i{position:relative}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right .ha-flip-box-front,.ha-flip-box-container .ha-flip-box-inner.ha-flip-right:hover .ha-flip-box-back{-webkit-transform:rotateY(0);transform:rotateY(0)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right .ha-flip-box-back{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right:hover .ha-flip-box-front{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up .ha-flip-box-front,.ha-flip-box-container .ha-flip-box-inner.ha-flip-up:hover .ha-flip-box-back{-webkit-transform:rotateX(0);transform:rotateX(0)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up .ha-flip-box-back{-webkit-transform:rotateX(-180deg);transform:rotateX(-180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up:hover .ha-flip-box-front{-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.ha-flip-box-container.ha-flip-effect-classic .ha-flip-box-back,.ha-flip-box-container.ha-flip-effect-classic .ha-flip-box-front{-webkit-transition:-webkit-transform .6s cubic-bezier(.2,.85,.4,1.275);transition:transform .6s cubic-bezier(.2,.85,.4,1.275);transition:transform .6s cubic-bezier(.2,.85,.4,1.275),-webkit-transform .6s cubic-bezier(.2,.85,.4,1.275)}
|
8 |
.ha-fun-factor__content .ha-fun-factor__content-number,.ha-fun-factor__content .ha-fun-factor__content-text{margin-top:0;margin-bottom:15px;font-size:24px}.ha-ff-icon--left .ha-fun-factor__content{padding-left:20px}.ha-ff-icon--right .ha-fun-factor__content{padding-right:20px}.ha-fun-factor__divider{display:block;margin-bottom:15px;height:1px;background-color:#ccc}.ha-ff-icon--top .ha-fun-factor__media{display:inline-block;margin-top:10px;margin-bottom:10px}.ha-ff-icon--top .ha-fun-factor__media--image{width:200px}:not(.ha-ff-icon--top) .ha-fun-factor__media--image{-webkit-box-flex:0;-webkit-flex:0 0 200px;-ms-flex:0 0 200px;flex:0 0 200px;max-width:200px}.ha-fun-factor__media--image img{width:100%;height:100%;vertical-align:bottom;-o-object-fit:cover;object-fit:cover}.ha-fun-factor__media--icon{font-size:3rem}.ha-fun-factor__media--icon i,.ha-fun-factor__media--icon svg{position:relative;display:block;width:1em;height:1em;fill:currentColor}.ha-fun-factor__media--icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-fun-factor__wrap{padding:10px;word-wrap:break-word;overflow-wrap:break-word}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;text-align:right}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{display:block;margin-right:auto;margin-left:auto}.ha-ff-icon--top>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{display:block;margin-right:auto;margin-left:auto;width:100px}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{width:100%!important}.ha-fun-factor__divider-align-left{margin-left:0!important;text-align:left}.ha-fun-factor__divider-align-right{margin-right:0!important;text-align:right}.ha-fun-factor__divider-align-center{margin-right:auto!important;margin-left:auto!important;text-align:center}
|
9 |
.ha-filter{margin-bottom:20px}.ha-filter__item{display:inline-block;overflow:hidden;margin-bottom:10px;padding:8px 20px;max-width:100%;border:2px solid #885cff;border-radius:3px;background-color:transparent;color:#885cff;text-transform:uppercase;text-overflow:ellipsis;font-size:14px;line-height:1.2;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ha-filter__item:focus,.ha-filter__item:hover{outline:0;background-color:#885cff;color:#fff}.ha-filter__item--active,.ha-filter__item:active{background-color:#885cff;color:#fff}.ha-filter__item:not(:last-child){margin-right:10px}
|
4 |
.ha-css-transform-yes{-webkit-transition-duration:var(--ha-tfx-transition-duration,.2s);transition-duration:var(--ha-tfx-transition-duration,.2s);-webkit-transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transform:translate(var(--ha-tfx-translate-x,0),var(--ha-tfx-translate-y,0)) scale(var(--ha-tfx-scale-x,1),var(--ha-tfx-scale-y,1)) skew(var(--ha-tfx-skew-x,0),var(--ha-tfx-skew-y,0)) rotateX(var(--ha-tfx-rotate-x,0)) rotateY(var(--ha-tfx-rotate-y,0)) rotateZ(var(--ha-tfx-rotate-z,0));transform:translate(var(--ha-tfx-translate-x,0),var(--ha-tfx-translate-y,0)) scale(var(--ha-tfx-scale-x,1),var(--ha-tfx-scale-y,1)) skew(var(--ha-tfx-skew-x,0),var(--ha-tfx-skew-y,0)) rotateX(var(--ha-tfx-rotate-x,0)) rotateY(var(--ha-tfx-rotate-y,0)) rotateZ(var(--ha-tfx-rotate-z,0))}.ha-css-transform-yes:hover{-webkit-transform:translate(var(--ha-tfx-translate-x-hover,var(--ha-tfx-translate-x,0)),var(--ha-tfx-translate-y-hover,var(--ha-tfx-translate-y,0))) scale(var(--ha-tfx-scale-x-hover,var(--ha-tfx-scale-x,1)),var(--ha-tfx-scale-y-hover,var(--ha-tfx-scale-y,1))) skew(var(--ha-tfx-skew-x-hover,var(--ha-tfx-skew-x,0)),var(--ha-tfx-skew-y-hover,var(--ha-tfx-skew-y,0))) rotateX(var(--ha-tfx-rotate-x-hover,var(--ha-tfx-rotate-x,0))) rotateY(var(--ha-tfx-rotate-y-hover,var(--ha-tfx-rotate-y,0))) rotateZ(var(--ha-tfx-rotate-z-hover,var(--ha-tfx-rotate-z,0)));transform:translate(var(--ha-tfx-translate-x-hover,var(--ha-tfx-translate-x,0)),var(--ha-tfx-translate-y-hover,var(--ha-tfx-translate-y,0))) scale(var(--ha-tfx-scale-x-hover,var(--ha-tfx-scale-x,1)),var(--ha-tfx-scale-y-hover,var(--ha-tfx-scale-y,1))) skew(var(--ha-tfx-skew-x-hover,var(--ha-tfx-skew-x,0)),var(--ha-tfx-skew-y-hover,var(--ha-tfx-skew-y,0))) rotateX(var(--ha-tfx-rotate-x-hover,var(--ha-tfx-rotate-x,0))) rotateY(var(--ha-tfx-rotate-y-hover,var(--ha-tfx-rotate-y,0))) rotateZ(var(--ha-tfx-rotate-z-hover,var(--ha-tfx-rotate-z,0)))}.happy-addon>.elementor-widget-container{word-wrap:break-word;overflow-wrap:break-word;box-sizing:border-box}.happy-addon>.elementor-widget-container *{box-sizing:border-box}.happy-addon p:empty{display:none}.happy-addon .elementor-inline-editing{min-height:auto!important}.happy-addon-pro img{max-width:100%;height:auto;-o-object-fit:cover;object-fit:cover}.ha-screen-reader-text{position:absolute;overflow:hidden;clip:rect(1px,1px,1px,1px);margin:-1px;padding:0;width:1px;height:1px;border:0;word-wrap:normal!important;-webkit-clip-path:inset(50%);clip-path:inset(50%)}.ha-has-bg-overlay>.elementor-widget-container{position:relative;z-index:1}.ha-has-bg-overlay>.elementor-widget-container:before{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;content:""}.ha-popup--is-enabled .ha-js-popup,.ha-popup--is-enabled .ha-js-popup img{cursor:-webkit-zoom-in!important;cursor:zoom-in!important}.mfp-wrap .mfp-arrow,.mfp-wrap .mfp-close{background-color:transparent}.mfp-wrap .mfp-arrow:focus,.mfp-wrap .mfp-close:focus{outline-width:thin}
|
5 |
.ha-data-table .elementor-widget-container{overflow:hidden}.ha-data-table .ha-table{margin-bottom:0}.ha-data-table .ha-table__head-column-cell{padding:20px;border:1px solid;border-color:#5636d1 #320ebd #5636d1 #5636d1;background-color:#5636d1;color:#fff;vertical-align:middle;text-align:center}.ha-data-table .ha-table__head-column-cell-wrap{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table .ha-table__head-column-cell-icon{padding-left:10px;line-height:1}.ha-data-table .ha-table__body-row-cell-icon img,.ha-data-table .ha-table__head-column-cell-icon img{width:40px;-o-object-fit:cover;object-fit:cover}.ha-data-table .ha-table__body-row-cell-icon svg,.ha-data-table .ha-table__head-column-cell-icon svg{width:40px;height:auto;fill:currentColor}.ha-data-table .ha-table__body-row:nth-child(even),.ha-data-table .ha-table__body-row:nth-child(odd){background-color:#fff}.ha-data-table .ha-table__body-row:nth-child(even):hover{background-color:rgba(86,54,209,.08)}.ha-data-table .ha-table__body-row:nth-child(odd):hover{background-color:rgba(232,53,124,.08)}.ha-data-table .ha-table__body-row-cell{padding:15px;border:1px solid #ddd;background-color:transparent;vertical-align:middle}.ha-data-table .ha-table__body-row-cell-wrap{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table .ha-table__body-row-cell-icon{padding-left:10px;line-height:1}.ha-data-table .ha-table__body .ha-table__head-column-cell{display:none}.ha-data-table.ha-column-icon-bottom .ha-table__head-column-cell-icon,.ha-data-table.ha-column-icon-top .ha-table__head-column-cell-icon{width:100%}.ha-data-table.ha-column-icon-left .ha-table__head-column-cell-icon,.ha-data-table.ha-column-icon-right .ha-table__head-column-cell-icon{width:auto}.ha-data-table.ha-row-icon-bottom .ha-table__body-row-cell-icon,.ha-data-table.ha-row-icon-top .ha-table__body-row-cell-icon{width:100%}.ha-data-table.ha-row-icon-left .ha-table__body-row-cell-icon,.ha-data-table.ha-row-icon-right .ha-table__body-row-cell-icon{width:auto}.ha-data-table.ha-column-icon-left .ha-table__head-column-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-data-table.ha-column-icon-right .ha-table__head-column-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table.ha-column-icon-top .ha-table__head-column-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.ha-data-table.ha-column-icon-bottom .ha-table__head-column-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-data-table.ha-row-icon-left .ha-table__body-row-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-data-table.ha-row-icon-right .ha-table__body-row-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table.ha-row-icon-top .ha-table__body-row-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.ha-data-table.ha-row-icon-bottom .ha-table__body-row-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}@media (max-width:767px){.ha-data-table .ha-table__head{display:none}.ha-data-table .ha-table__body .ha-table__body-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-data-table .ha-table__body .ha-table__body-row-cell{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;margin-top:-1px;padding:0!important}.ha-data-table .ha-table__body .ha-table__body-row-cell:first-child{margin-top:auto}.ha-data-table .ha-table__body .ha-table__head-column-cell{display:block;width:100%}.ha-data-table .ha-table__body .ha-table__body-row-cell-wrap{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%}.ha-data-table.ha-row-icon-left.ha-row-alignment-left .ha-table__body-row-cell-wrap{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-data-table.ha-row-icon-left.ha-row-alignment-center .ha-table__body-row-cell-wrap{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-left.ha-row-alignment-right .ha-table__body-row-cell-wrap{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-left .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-left .ha-table__body-row-cell-wrap{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-center .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-center .ha-table__body-row-cell-wrap{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-right .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-right .ha-table__body-row-cell-wrap{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}}
|
6 |
.ha-dual-btn,.ha-dual-btn-connector{display:inline-block}.ha-dual-btn-wrapper{position:relative;text-align:center;font-weight:400}.ha-dual-btn{padding:1.3rem 2.3rem;max-width:100%;color:#fff;text-decoration:none;font-size:14px;line-height:1}.ha-dual-btn--left{background-color:#562dd4}.ha-dual-btn--left:focus,.ha-dual-btn--left:hover{background-color:#4423ab;color:#fff}.ha-dual-btn--right{background-color:#e2498a}.ha-dual-btn--right:focus,.ha-dual-btn--right:hover{background-color:#d6226e;color:#fff}.ha-dual-btn-connector{position:absolute!important;z-index:9;overflow:hidden;width:30px;height:30px;border-radius:100%;background-color:#fff;box-shadow:0 0 0 5px rgba(255,255,255,.3);color:#27374c;text-transform:uppercase;font-size:12px;line-height:30px;-webkit-transform:translate(50%,-50%);-ms-transform:translate(50%,-50%);transform:translate(50%,-50%)}.ha-dual-btn-icon>svg{width:1em;height:auto;vertical-align:top;fill:currentColor}.ha-dual-btn-icon>i{font-size:1em}.ha-dual-btn-icon--before{margin-right:5px}.ha-dual-btn-icon--after{margin-left:5px}.ha-dual-button>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.ha-dual-button--mobile-layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--mobile-layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--mobile-layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--mobile-layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--mobile-layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-center>.elementor-widget-container{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--mobile-layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--mobile-layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--mobile-layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--mobile-layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--mobile-layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}@media (min-width:768px){.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-center>.elementor-widget-container{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--tablet-layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--tablet-layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--tablet-layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--tablet-layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--tablet-layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--tablet-layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--tablet-layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--tablet-layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--tablet-layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--tablet-layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}}@media (min-width:1025px){.ha-dual-button--layout-stack.ha-dual-button--align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--layout-stack.ha-dual-button--align-center>.elementor-widget-container{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--layout-stack.ha-dual-button--align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--layout-queue.ha-dual-button--align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--layout-queue.ha-dual-button--align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--layout-queue.ha-dual-button--align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}}
|
7 |
+
.ha-ec-popup-wrapper,.ha-ec-popup-wrapper.ha-ec-popup-ready:before{top:0;left:0;width:100%;height:100%;-webkit-transition:all .3s ease-out;transition:all .3s ease-out}.ha-ec-popup-wrapper{--ha-ec-popup-image-width:16.666667%;z-index:-1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;visibility:hidden;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:fixed}.ha-ec-popup-wrapper.ha-ec-popup-ready{z-index:99999;visibility:visible;opacity:1}.ha-ec-popup-wrapper.ha-ec-popup-ready:before{position:absolute;background:rgba(0,0,0,.7);content:""}.ha-ec-popup{position:relative;display:block;padding:40px;width:900px;background:#fff;box-shadow:0 3px 13px 0 rgba(0,0,0,.08);-webkit-transition:all ease .4s;transition:all ease .4s;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.ha-ec-popup-wrapper.ha-ec-popup-ready .ha-ec-popup{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.ha-ec-popup-body,.ha-ec-popup-close{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-ec-popup-close{position:absolute;top:-18px;right:-15px;z-index:9999;overflow:visible;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:#fff;box-shadow:2px 0 12px 3px rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19);color:#000;text-align:center;font-size:24px;cursor:pointer;-webkit-transition:all ease .4s;transition:all ease .4s}.ha-ec-popup-body{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.ha-ec-popup-content,.ha-ec-popup-image,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-dayGridMonth-button,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-listMonth-button,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-listWeek-button,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-timeGridDay-button,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-timeGridWeek-button{position:relative}.ha-ec-popup-image{overflow:hidden;-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-ec-popup-image-width,16.66667%);-ms-flex:0 0 var(--ha-ec-popup-image-width,16.66667%);flex:0 0 var(--ha-ec-popup-image-width,16.66667%);margin-right:15px;max-width:var(--ha-ec-popup-image-width,16.66667%)}.ha-ec-popup-content{-webkit-box-flex:0;-webkit-flex:0 0 calc(100% - (15px + var(--ha-ec-popup-image-width,16.666667%)));-ms-flex:0 0 calc(100% - (15px + var(--ha-ec-popup-image-width,16.666667%)));flex:0 0 calc(100% - (15px + var(--ha-ec-popup-image-width,16.666667%)));max-width:calc(100% - (15px + var(--ha-ec-popup-image-width,16.666667%)))}.ha-ec-popup-image img{max-width:100%;height:auto;border:none;border-radius:5px 5px 5px 5px;box-shadow:none}.ha-ec-popup-content h3{margin-top:0;margin-bottom:10px;font-weight:700;font-size:24px}.ha-ec-popup-content p.ha-ec-popup-desc{margin-bottom:15px;color:#666;font-size:16px}.ha-ec-popup-content p.ha-ec-popup-desc p{margin-bottom:0}.ha-ec-popup-content ul,.ha-ec-popup-content ul li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.ha-ec-popup-content ul{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0;padding:0;width:100%;list-style:none}.ha-ec-popup-content ul li{position:relative;float:left;-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end;margin-right:15px;margin-bottom:30px;line-height:1}.ha-ec-popup-content ul li:last-child{margin-right:0}.ha-ec-popup-content .ha-ec-guest-icon,.ha-ec-popup-content .ha-ec-location-icon,.ha-ec-popup-content .ha-ec-time-icon{font-size:18px}.ha-ec-popup-content ul li .ha-ec-guest-title,.ha-ec-popup-content ul li .ha-ec-location-title,.ha-ec-popup-content ul li .ha-ec-time-title{display:block;margin-bottom:10px;color:#666;font-style:italic;font-size:12px;line-height:1}.ha-ec-popup-content ul li .ha-ec-event-guest,.ha-ec-popup-content ul li .ha-ec-event-location,.ha-ec-popup-content ul li .ha-ec-event-time{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;color:#666;font-weight:700;font-size:16px;line-height:1}.ha-ec-popup-content ul li svg{padding-right:5px;width:auto;height:.9em;fill:currentColor}.ha-ec-popup-content .ha-ec-popup-readmore{display:block;overflow:hidden}.ha-ec-popup-content .ha-ec-popup-readmore a.ha-ec-popup-readmore-link{display:inline-block}span.ha-ec-error-message{display:block;margin:5px 0;padding:10px;border-left-width:5px;border-left-style:solid;border-left-color:#ffb900}.ha-ec-wrapper .fc table{overflow:auto;margin:auto}.ha-ec-wrapper table tbody tr td,.ha-ec-wrapper table tbody tr td:not(.fc-timegrid-slot):not(.fc-timegrid-col),.ha-ec-wrapper table tbody tr th{background-color:transparent}.ha-ec-wrapper table tbody tr td.fc-timegrid-slot{background:0 0!important}.ha-ec-wrapper .fc-theme-standard .fc-list,.ha-ec-wrapper .fc-theme-standard .fc-scrollgrid,.ha-ec-wrapper .fc-theme-standard td,.ha-ec-wrapper .fc-theme-standard th,.ha-ec-wrapper table thead:first-child tr:first-child th{border-color:#b0b0b0}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar .fc-button-group{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar .fc-button-group .fc-button-primary{-webkit-box-flex:0;-webkit-flex:none;-ms-flex:none;flex:none}.ha-ec-wrapper .fc .fc-daygrid-day.fc-day-today,.ha-ec-wrapper .fc .fc-timegrid-col.fc-day-today{background-color:#f5f5f5}.ha-ec-wrapper .fc .fc-list-table tr>*{border-right:0!important;border-left:0!important}.ha-ec-wrapper .fc .fc-list-table th .fc-list-day-cushion,.ha-ec-wrapper th.fc-col-header-cell.fc-day{color:#fff}.ha-ec-wrapper th.fc-col-header-cell.fc-day{padding:15px;background-color:#6d39ef}.ha-ec-wrapper .fc .fc-list-table th .fc-list-day-cushion{background-color:#fff}.ha-ec-wrapper .fc-timegrid-slot-label-cushion.fc-scrollgrid-shrink-cushion,.ha-ec-wrapper span.fc-timegrid-axis-cushion.fc-scrollgrid-shrink-cushion.fc-scrollgrid-sync-inner{color:#222}.ha-ec-wrapper .fc .fc-daygrid-day-top{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;color:#222;font-size:1em}.ha-ec-wrapper .fc-daygrid-block-event .fc-event-time,.ha-ec-wrapper .fc-daygrid-block-event .fc-event-title{padding:0}.ha-ec-wrapper .fc-daygrid-day-events .fc-daygrid-event.fc-daygrid-block-event,.ha-ec-wrapper .fc-daygrid-day-events .fc-daygrid-event.fc-daygrid-dot-event{padding:10px}.ha-ec-wrapper .fc-daygrid-event,.ha-ec-wrapper .fc-timegrid-event{border:0!important}.ha-ec-wrapper .fc-daygrid-event,.ha-ec-wrapper .fc-list-event,.ha-ec-wrapper .fc-timegrid-event{background:#ac89ff}.ha-ec-wrapper .fc-daygrid-event,.ha-ec-wrapper .fc-daygrid-event .fc-event-main,.ha-ec-wrapper .fc-list-event,.ha-ec-wrapper .fc-timegrid-event,.ha-ec-wrapper .fc-timegrid-event .fc-event-main,.ha-ec-wrapper a.fc-daygrid-event,.ha-ec-wrapper a.fc-daygrid-event .fc-event-main,.ha-ec-wrapper a.fc-daygrid-event:hover{color:#fff;font-size:14px}.ha-ec-wrapper .fc-daygrid-event .fc-daygrid-event-dot,.ha-ec-wrapper .fc-list-event .fc-list-event-dot{border-color:#fff}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar .fc-toolbar-title{color:#242424;font-size:1.5em}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar .fc-button .fc-icon{font-size:1em}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar .fc-button-group button:not(:first-child){margin-left:5px}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-dayGridMonth-button:before,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-listMonth-button:before,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-listWeek-button:before,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-timeGridDay-button:before,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-timeGridWeek-button:before{display:inline-block;padding-right:5px;padding-left:0;font-weight:900;font-size:1em;font-family:"Font Awesome 5 Free"}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-timeGridWeek-button:before{left:8px;content:"\f03a"}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-timeGridDay-button:before{left:21px;content:"\f0c9"}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-dayGridMonth-button:before{content:"\f00a"}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-listMonth-button:before,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-listWeek-button:before{content:"\f00b"}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button.fc-button-primary{float:none;padding:8px 12px;width:auto;height:auto;border:none;border-radius:3px;background:#f7f7fb;box-shadow:none;color:#242424;text-transform:capitalize;text-shadow:none;font-weight:400;font-size:1em;line-height:19px}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button.fc-button-primary.fc-state-active,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button.fc-button-primary:focus,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button.fc-button-primary:hover,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button.fc-button-primary:visited{background:#e2498a;box-shadow:none;color:#fff}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button.fc-button-primary.fc-button-active{background:#e2498a;color:#fff}@media (max-width:575px){.ha-ec-wrapper .fc-header-toolbar.fc-toolbar .fc-toolbar-chunk{margin-bottom:10px;width:100%;text-align:center}.ha-ec-popup-content,.ha-ec-popup-image{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.ha-ec-popup-body .ha-ec-popup-image{margin-right:0;margin-bottom:15px}.ha-ec-wrapper .fc-daygrid-day-events .fc-daygrid-event.fc-daygrid-block-event,.ha-ec-wrapper .fc-daygrid-day-events .fc-daygrid-event.fc-daygrid-dot-event{padding:0}}
|
8 |
.ha-flip-box-container:after{display:block;visibility:hidden;clear:both;height:0;content:" ";font-size:0}.ha-flip-box-container .ha-flip-box-inner{position:relative;z-index:1;margin:0;padding:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.ha-flip-box-container .ha-flip-box-inner:hover .ha-flip-box-back{z-index:1}.ha-flip-box-container .ha-flip-box-inner:hover .ha-flip-box-front{z-index:-1}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-inner-wrapper{position:relative;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-perspective:1000px;perspective:1000px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front{top:0;right:0;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;height:250px;background-position:center;background-clip:padding-box;background-size:cover;background-repeat:no-repeat;text-align:center;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front{background-color:transparent;position:relative;bottom:0;z-index:10;padding:30px;border:1px solid #ddd;border-radius:.3rem}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back:before,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front:before{position:absolute;top:0;left:0;z-index:-9;width:100%;height:100%;background-color:transparent;content:""}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back{position:absolute;z-index:-1;padding:46px;border-radius:.3rem;background-color:#562dd4;color:#fff}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-text,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-text{text-align:center}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-text p,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-text p{margin-top:10px;margin-bottom:0}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon.icon{padding:20px;border-radius:50%;background-color:#f1f4f8;color:#242424}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon{display:inline-block;margin-bottom:20px;text-align:center;font-size:28px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon svg{display:block;width:1em;height:1em;fill:currentColor}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i{position:relative}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i:before,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon img,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon img{width:60px;height:60px;vertical-align:middle;-o-object-fit:cover;object-fit:cover}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-box-heading{margin:0;font-weight:700;font-size:20px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner p{margin-bottom:0;font-size:16px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-box-heading-back{margin:0;color:#fff;font-size:18px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon{display:inline-block;margin-bottom:20px;color:#fff;text-align:center;font-size:20px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon svg{display:block;width:1em;height:1em;fill:currentColor}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i{position:relative}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right .ha-flip-box-front,.ha-flip-box-container .ha-flip-box-inner.ha-flip-right:hover .ha-flip-box-back{-webkit-transform:rotateY(0);transform:rotateY(0)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right .ha-flip-box-back{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right:hover .ha-flip-box-front{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up .ha-flip-box-front,.ha-flip-box-container .ha-flip-box-inner.ha-flip-up:hover .ha-flip-box-back{-webkit-transform:rotateX(0);transform:rotateX(0)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up .ha-flip-box-back{-webkit-transform:rotateX(-180deg);transform:rotateX(-180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up:hover .ha-flip-box-front{-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.ha-flip-box-container.ha-flip-effect-classic .ha-flip-box-back,.ha-flip-box-container.ha-flip-effect-classic .ha-flip-box-front{-webkit-transition:-webkit-transform .6s cubic-bezier(.2,.85,.4,1.275);transition:transform .6s cubic-bezier(.2,.85,.4,1.275);transition:transform .6s cubic-bezier(.2,.85,.4,1.275),-webkit-transform .6s cubic-bezier(.2,.85,.4,1.275)}
|
9 |
.ha-fun-factor__content .ha-fun-factor__content-number,.ha-fun-factor__content .ha-fun-factor__content-text{margin-top:0;margin-bottom:15px;font-size:24px}.ha-ff-icon--left .ha-fun-factor__content{padding-left:20px}.ha-ff-icon--right .ha-fun-factor__content{padding-right:20px}.ha-fun-factor__divider{display:block;margin-bottom:15px;height:1px;background-color:#ccc}.ha-ff-icon--top .ha-fun-factor__media{display:inline-block;margin-top:10px;margin-bottom:10px}.ha-ff-icon--top .ha-fun-factor__media--image{width:200px}:not(.ha-ff-icon--top) .ha-fun-factor__media--image{-webkit-box-flex:0;-webkit-flex:0 0 200px;-ms-flex:0 0 200px;flex:0 0 200px;max-width:200px}.ha-fun-factor__media--image img{width:100%;height:100%;vertical-align:bottom;-o-object-fit:cover;object-fit:cover}.ha-fun-factor__media--icon{font-size:3rem}.ha-fun-factor__media--icon i,.ha-fun-factor__media--icon svg{position:relative;display:block;width:1em;height:1em;fill:currentColor}.ha-fun-factor__media--icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-fun-factor__wrap{padding:10px;word-wrap:break-word;overflow-wrap:break-word}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;text-align:right}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{display:block;margin-right:auto;margin-left:auto}.ha-ff-icon--top>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{display:block;margin-right:auto;margin-left:auto;width:100px}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{width:100%!important}.ha-fun-factor__divider-align-left{margin-left:0!important;text-align:left}.ha-fun-factor__divider-align-right{margin-right:0!important;text-align:right}.ha-fun-factor__divider-align-center{margin-right:auto!important;margin-left:auto!important;text-align:center}
|
10 |
.ha-filter{margin-bottom:20px}.ha-filter__item{display:inline-block;overflow:hidden;margin-bottom:10px;padding:8px 20px;max-width:100%;border:2px solid #885cff;border-radius:3px;background-color:transparent;color:#885cff;text-transform:uppercase;text-overflow:ellipsis;font-size:14px;line-height:1.2;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ha-filter__item:focus,.ha-filter__item:hover{outline:0;background-color:#885cff;color:#fff}.ha-filter__item--active,.ha-filter__item:active{background-color:#885cff;color:#fff}.ha-filter__item:not(:last-child){margin-right:10px}
|
assets/css/widgets/event-calendar.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.ha-ec-popup-wrapper,.ha-ec-popup-wrapper.ha-ec-popup-ready:before{top:0;left:0;width:100%;height:100%;-webkit-transition:all .3s ease-out;transition:all .3s ease-out}.ha-ec-popup-wrapper{--ha-ec-popup-image-width:16.666667%;z-index:-1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;visibility:hidden;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:fixed}.ha-ec-popup-wrapper.ha-ec-popup-ready{z-index:99999;visibility:visible;opacity:1}.ha-ec-popup-wrapper.ha-ec-popup-ready:before{position:absolute;background:rgba(0,0,0,.7);content:""}.ha-ec-popup{position:relative;display:block;padding:40px;width:900px;background:#fff;box-shadow:0 3px 13px 0 rgba(0,0,0,.08);-webkit-transition:all ease .4s;transition:all ease .4s;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0)}.ha-ec-popup-wrapper.ha-ec-popup-ready .ha-ec-popup{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}.ha-ec-popup-body,.ha-ec-popup-close{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-ec-popup-close{position:absolute;top:-18px;right:-15px;z-index:9999;overflow:visible;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:#fff;box-shadow:2px 0 12px 3px rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19);color:#000;text-align:center;font-size:24px;cursor:pointer;-webkit-transition:all ease .4s;transition:all ease .4s}.ha-ec-popup-body{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.ha-ec-popup-content,.ha-ec-popup-image,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-dayGridMonth-button,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-listMonth-button,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-listWeek-button,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-timeGridDay-button,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-timeGridWeek-button{position:relative}.ha-ec-popup-image{overflow:hidden;-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-ec-popup-image-width,16.66667%);-ms-flex:0 0 var(--ha-ec-popup-image-width,16.66667%);flex:0 0 var(--ha-ec-popup-image-width,16.66667%);margin-right:15px;max-width:var(--ha-ec-popup-image-width,16.66667%)}.ha-ec-popup-content{-webkit-box-flex:0;-webkit-flex:0 0 calc(100% - (15px + var(--ha-ec-popup-image-width,16.666667%)));-ms-flex:0 0 calc(100% - (15px + var(--ha-ec-popup-image-width,16.666667%)));flex:0 0 calc(100% - (15px + var(--ha-ec-popup-image-width,16.666667%)));max-width:calc(100% - (15px + var(--ha-ec-popup-image-width,16.666667%)))}.ha-ec-popup-image img{max-width:100%;height:auto;border:none;border-radius:5px 5px 5px 5px;box-shadow:none}.ha-ec-popup-content h3{margin-top:0;margin-bottom:10px;font-weight:700;font-size:24px}.ha-ec-popup-content p.ha-ec-popup-desc{margin-bottom:15px;color:#666;font-size:16px}.ha-ec-popup-content p.ha-ec-popup-desc p{margin-bottom:0}.ha-ec-popup-content ul,.ha-ec-popup-content ul li{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.ha-ec-popup-content ul{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0;padding:0;width:100%;list-style:none}.ha-ec-popup-content ul li{position:relative;float:left;-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end;margin-right:15px;margin-bottom:30px;line-height:1}.ha-ec-popup-content ul li:last-child{margin-right:0}.ha-ec-popup-content .ha-ec-guest-icon,.ha-ec-popup-content .ha-ec-location-icon,.ha-ec-popup-content .ha-ec-time-icon{font-size:18px}.ha-ec-popup-content ul li .ha-ec-guest-title,.ha-ec-popup-content ul li .ha-ec-location-title,.ha-ec-popup-content ul li .ha-ec-time-title{display:block;margin-bottom:10px;color:#666;font-style:italic;font-size:12px;line-height:1}.ha-ec-popup-content ul li .ha-ec-event-guest,.ha-ec-popup-content ul li .ha-ec-event-location,.ha-ec-popup-content ul li .ha-ec-event-time{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;color:#666;font-weight:700;font-size:16px;line-height:1}.ha-ec-popup-content ul li svg{padding-right:5px;width:auto;height:.9em;fill:currentColor}.ha-ec-popup-content .ha-ec-popup-readmore{display:block;overflow:hidden}.ha-ec-popup-content .ha-ec-popup-readmore a.ha-ec-popup-readmore-link{display:inline-block}span.ha-ec-error-message{display:block;margin:5px 0;padding:10px;border-left-width:5px;border-left-style:solid;border-left-color:#ffb900}.ha-ec-wrapper .fc table{overflow:auto;margin:auto}.ha-ec-wrapper table tbody tr td,.ha-ec-wrapper table tbody tr td:not(.fc-timegrid-slot):not(.fc-timegrid-col),.ha-ec-wrapper table tbody tr th{background-color:transparent}.ha-ec-wrapper table tbody tr td.fc-timegrid-slot{background:0 0!important}.ha-ec-wrapper .fc-theme-standard .fc-list,.ha-ec-wrapper .fc-theme-standard .fc-scrollgrid,.ha-ec-wrapper .fc-theme-standard td,.ha-ec-wrapper .fc-theme-standard th,.ha-ec-wrapper table thead:first-child tr:first-child th{border-color:#b0b0b0}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar .fc-button-group{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar .fc-button-group .fc-button-primary{-webkit-box-flex:0;-webkit-flex:none;-ms-flex:none;flex:none}.ha-ec-wrapper .fc .fc-daygrid-day.fc-day-today,.ha-ec-wrapper .fc .fc-timegrid-col.fc-day-today{background-color:#f5f5f5}.ha-ec-wrapper .fc .fc-list-table tr>*{border-right:0!important;border-left:0!important}.ha-ec-wrapper .fc .fc-list-table th .fc-list-day-cushion,.ha-ec-wrapper th.fc-col-header-cell.fc-day{color:#fff}.ha-ec-wrapper th.fc-col-header-cell.fc-day{padding:15px;background-color:#6d39ef}.ha-ec-wrapper .fc .fc-list-table th .fc-list-day-cushion{background-color:#fff}.ha-ec-wrapper .fc-timegrid-slot-label-cushion.fc-scrollgrid-shrink-cushion,.ha-ec-wrapper span.fc-timegrid-axis-cushion.fc-scrollgrid-shrink-cushion.fc-scrollgrid-sync-inner{color:#222}.ha-ec-wrapper .fc .fc-daygrid-day-top{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;color:#222;font-size:1em}.ha-ec-wrapper .fc-daygrid-block-event .fc-event-time,.ha-ec-wrapper .fc-daygrid-block-event .fc-event-title{padding:0}.ha-ec-wrapper .fc-daygrid-day-events .fc-daygrid-event.fc-daygrid-block-event,.ha-ec-wrapper .fc-daygrid-day-events .fc-daygrid-event.fc-daygrid-dot-event{padding:10px}.ha-ec-wrapper .fc-daygrid-event,.ha-ec-wrapper .fc-timegrid-event{border:0!important}.ha-ec-wrapper .fc-daygrid-event,.ha-ec-wrapper .fc-list-event,.ha-ec-wrapper .fc-timegrid-event{background:#ac89ff}.ha-ec-wrapper .fc-daygrid-event,.ha-ec-wrapper .fc-daygrid-event .fc-event-main,.ha-ec-wrapper .fc-list-event,.ha-ec-wrapper .fc-timegrid-event,.ha-ec-wrapper .fc-timegrid-event .fc-event-main,.ha-ec-wrapper a.fc-daygrid-event,.ha-ec-wrapper a.fc-daygrid-event .fc-event-main,.ha-ec-wrapper a.fc-daygrid-event:hover{color:#fff;font-size:14px}.ha-ec-wrapper .fc-daygrid-event .fc-daygrid-event-dot,.ha-ec-wrapper .fc-list-event .fc-list-event-dot{border-color:#fff}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar .fc-toolbar-title{color:#242424;font-size:1.5em}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar .fc-button .fc-icon{font-size:1em}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar .fc-button-group button:not(:first-child){margin-left:5px}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-dayGridMonth-button:before,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-listMonth-button:before,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-listWeek-button:before,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-timeGridDay-button:before,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-timeGridWeek-button:before{display:inline-block;padding-right:5px;padding-left:0;font-weight:900;font-size:1em;font-family:"Font Awesome 5 Free"}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-timeGridWeek-button:before{left:8px;content:"\f03a"}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-timeGridDay-button:before{left:21px;content:"\f0c9"}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-dayGridMonth-button:before{content:"\f00a"}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-listMonth-button:before,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-listWeek-button:before{content:"\f00b"}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button.fc-button-primary{float:none;padding:8px 12px;width:auto;height:auto;border:none;border-radius:3px;background:#f7f7fb;box-shadow:none;color:#242424;text-transform:capitalize;text-shadow:none;font-weight:400;font-size:1em;line-height:19px}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button.fc-button-primary.fc-state-active,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button.fc-button-primary:focus,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button.fc-button-primary:hover,.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button.fc-button-primary:visited{background:#e2498a;box-shadow:none;color:#fff}.ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button.fc-button-primary.fc-button-active{background:#e2498a;color:#fff}@media (max-width:575px){.ha-ec-wrapper .fc-header-toolbar.fc-toolbar .fc-toolbar-chunk{margin-bottom:10px;width:100%;text-align:center}.ha-ec-popup-content,.ha-ec-popup-image{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.ha-ec-popup-body .ha-ec-popup-image{margin-right:0;margin-bottom:15px}.ha-ec-wrapper .fc-daygrid-day-events .fc-daygrid-event.fc-daygrid-block-event,.ha-ec-wrapper .fc-daygrid-day-events .fc-daygrid-event.fc-daygrid-dot-event{padding:0}}
|
assets/imgs/shape-divider/{abstruct-web.svg → abstract-web.svg}
RENAMED
File without changes
|
assets/imgs/shape-divider/{multi-web.svg → multi-wave.svg}
RENAMED
File without changes
|
assets/js/happy-addons.js
CHANGED
@@ -650,6 +650,170 @@
|
|
650 |
|
651 |
};
|
652 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
653 |
// Slider
|
654 |
elementorFrontend.hooks.addAction(
|
655 |
'frontend/element_ready/ha-slider.default',
|
@@ -711,7 +875,7 @@
|
|
711 |
|
712 |
// Background overlay extension
|
713 |
var BackgroundOverlay = function($scope) {
|
714 |
-
$scope.hasClass('elementor-element-edit-mode') && $scope.addClass('has-bg-overlay');
|
715 |
}
|
716 |
|
717 |
var fnHanlders = {
|
@@ -724,6 +888,7 @@
|
|
724 |
'ha-threesixty-rotation.default': Threesixty_Rotation,
|
725 |
'ha-data-table.default' : DataTable,
|
726 |
'widget' : BackgroundOverlay,
|
|
|
727 |
};
|
728 |
|
729 |
$.each( fnHanlders, function( widgetName, handlerFn ) {
|
650 |
|
651 |
};
|
652 |
|
653 |
+
//Event Calendar
|
654 |
+
var Event_Calendar = function($scope) {
|
655 |
+
var calendarEl = $scope.find('.ha-ec');
|
656 |
+
var popup = $scope.find('.ha-ec-popup-wrapper');
|
657 |
+
var popupClose = $scope.find(".ha-ec-popup-close");
|
658 |
+
var events = calendarEl.data('events');
|
659 |
+
var initialview = calendarEl.data('initialview');
|
660 |
+
var firstday = calendarEl.data('firstday');
|
661 |
+
var locale = calendarEl.data('locale');
|
662 |
+
var showPopup = calendarEl.data('show-popup');
|
663 |
+
var allday_text = calendarEl.data('allday-text');
|
664 |
+
|
665 |
+
if( 'undefined' == typeof events){
|
666 |
+
return;
|
667 |
+
}
|
668 |
+
|
669 |
+
var option = {
|
670 |
+
stickyHeaderDates: false,
|
671 |
+
locale: locale,
|
672 |
+
headerToolbar: {
|
673 |
+
left: "prev,next today",
|
674 |
+
center: "title",
|
675 |
+
right: "dayGridMonth,timeGridWeek,timeGridDay,listMonth"
|
676 |
+
},
|
677 |
+
initialView: initialview,
|
678 |
+
firstDay: firstday,
|
679 |
+
eventTimeFormat: { // like '7pm'
|
680 |
+
hour: 'numeric',
|
681 |
+
minute: '2-digit',
|
682 |
+
meridiem: 'short'
|
683 |
+
},
|
684 |
+
events: events,
|
685 |
+
|
686 |
+
height: 'auto',
|
687 |
+
|
688 |
+
eventClick: function (info) {
|
689 |
+
info.jsEvent.preventDefault(); // don't let the browser navigate
|
690 |
+
|
691 |
+
if( 'yes' != showPopup){
|
692 |
+
return;
|
693 |
+
}
|
694 |
+
|
695 |
+
function getTheDate(timeString) {
|
696 |
+
return new Date(timeString);
|
697 |
+
}
|
698 |
+
|
699 |
+
function timeFormat(date) {
|
700 |
+
var hours = date.getHours();
|
701 |
+
var minutes = date.getMinutes();
|
702 |
+
var ampm = hours >= 12 ? 'pm' : 'am';
|
703 |
+
hours = hours % 12;
|
704 |
+
hours = hours ? hours : 12; // the hour '0' should be '12'
|
705 |
+
minutes = minutes < 10 ? '0' + minutes : minutes;
|
706 |
+
var strTime = hours + ':' + minutes + '' + ampm;
|
707 |
+
return strTime;
|
708 |
+
}
|
709 |
+
|
710 |
+
var todayDateString = info.view.calendar.currentData.currentDate.toString(),
|
711 |
+
allDay = info.event.allDay,
|
712 |
+
title = info.event.title,
|
713 |
+
startDate = info.event.startStr,
|
714 |
+
endDate = info.event.endStr,
|
715 |
+
guest = info.event.extendedProps.guest,
|
716 |
+
location = info.event.extendedProps.location,
|
717 |
+
description = info.event.extendedProps.description,
|
718 |
+
detailsUrl = info.event.url,
|
719 |
+
imageUrl = info.event.extendedProps.image;
|
720 |
+
|
721 |
+
var titleWrap = popup.find('.ha-ec-event-title'),
|
722 |
+
timeWrap = popup.find('.ha-ec-event-time-wrap'),
|
723 |
+
guestWrap = popup.find('.ha-ec-event-guest-wrap'),
|
724 |
+
locationWrap = popup.find('.ha-ec-event-location-wrap'),
|
725 |
+
descWrap = popup.find('.ha-ec-popup-desc'),
|
726 |
+
detailsWrap = popup.find('.ha-ec-popup-readmore-link'),
|
727 |
+
imageWrap = popup.find('.ha-ec-popup-image');
|
728 |
+
|
729 |
+
// display none
|
730 |
+
imageWrap.css('display', 'none');
|
731 |
+
titleWrap.css('display', 'none');
|
732 |
+
timeWrap.css('display', 'none');
|
733 |
+
guestWrap.css('display', 'none');
|
734 |
+
locationWrap.css('display', 'none');
|
735 |
+
descWrap.css('display', 'none');
|
736 |
+
detailsWrap.css('display', 'none');
|
737 |
+
|
738 |
+
popup.addClass("ha-ec-popup-ready");
|
739 |
+
|
740 |
+
// image markup
|
741 |
+
if (imageUrl) {
|
742 |
+
imageWrap.removeAttr("style");
|
743 |
+
imageWrap.find('img').attr("src", imageUrl );
|
744 |
+
imageWrap.find('img').attr("alt", title );
|
745 |
+
}
|
746 |
+
|
747 |
+
// title markup
|
748 |
+
if (title) {
|
749 |
+
titleWrap.removeAttr("style");
|
750 |
+
titleWrap.html(title);
|
751 |
+
}
|
752 |
+
|
753 |
+
// guest markup
|
754 |
+
if (guest) {
|
755 |
+
guestWrap.removeAttr("style");
|
756 |
+
guestWrap.find('span.ha-ec-event-guest').html( guest );
|
757 |
+
}
|
758 |
+
|
759 |
+
// location markup
|
760 |
+
if (location) {
|
761 |
+
locationWrap.removeAttr("style");
|
762 |
+
locationWrap.find('span.ha-ec-event-location').html( location );
|
763 |
+
}
|
764 |
+
|
765 |
+
// description markup
|
766 |
+
if (description) {
|
767 |
+
descWrap.removeAttr("style");
|
768 |
+
descWrap.html(description);
|
769 |
+
}
|
770 |
+
|
771 |
+
// time markup
|
772 |
+
if (allDay !== true) {
|
773 |
+
timeWrap.removeAttr("style");
|
774 |
+
startDate = Date.parse(getTheDate(startDate));
|
775 |
+
endDate = Date.parse(getTheDate(endDate));
|
776 |
+
var startTimeText = timeFormat(getTheDate(startDate));
|
777 |
+
var endTimeText = 'Invalid Data';
|
778 |
+
if (startDate < endDate) {
|
779 |
+
endTimeText = timeFormat(getTheDate(endDate));
|
780 |
+
}
|
781 |
+
timeWrap.find('span.ha-ec-event-time').html(startTimeText + ' - ' + endTimeText);
|
782 |
+
}else{
|
783 |
+
timeWrap.removeAttr("style");
|
784 |
+
timeWrap.find('span.ha-ec-event-time').html(allday_text);
|
785 |
+
}
|
786 |
+
|
787 |
+
// read more markup
|
788 |
+
if (detailsUrl) {
|
789 |
+
detailsWrap.removeAttr("style");
|
790 |
+
detailsWrap.attr("href", detailsUrl);
|
791 |
+
if ("on" === info.event.extendedProps.external) {
|
792 |
+
detailsWrap.attr("target", "_blank");
|
793 |
+
}
|
794 |
+
if ("on" === info.event.extendedProps.nofollow) {
|
795 |
+
detailsWrap.attr("rel", "nofollow");
|
796 |
+
}
|
797 |
+
}
|
798 |
+
},
|
799 |
+
dateClick: function (arg) {
|
800 |
+
itemDate = arg.date.toUTCString();
|
801 |
+
}
|
802 |
+
}
|
803 |
+
|
804 |
+
var calendar = new FullCalendar.Calendar( calendarEl[0], option );
|
805 |
+
calendar.render();
|
806 |
+
|
807 |
+
$scope.find(".ha-ec-popup-wrapper").on("click", function (e) {
|
808 |
+
e.stopPropagation();
|
809 |
+
|
810 |
+
if(e.target === e.currentTarget || e.target == popupClose[0] || e.target == popupClose.find(".eicon-editor-close")[0]){
|
811 |
+
popup.addClass("ha-ec-popup-removing").removeClass("ha-ec-popup-ready");
|
812 |
+
}
|
813 |
+
});
|
814 |
+
|
815 |
+
};
|
816 |
+
|
817 |
// Slider
|
818 |
elementorFrontend.hooks.addAction(
|
819 |
'frontend/element_ready/ha-slider.default',
|
875 |
|
876 |
// Background overlay extension
|
877 |
var BackgroundOverlay = function($scope) {
|
878 |
+
$scope.hasClass('elementor-element-edit-mode') && $scope.addClass('ha-has-bg-overlay');
|
879 |
}
|
880 |
|
881 |
var fnHanlders = {
|
888 |
'ha-threesixty-rotation.default': Threesixty_Rotation,
|
889 |
'ha-data-table.default' : DataTable,
|
890 |
'widget' : BackgroundOverlay,
|
891 |
+
'ha-event-calendar.default' : Event_Calendar,
|
892 |
};
|
893 |
|
894 |
$.each( fnHanlders, function( widgetName, handlerFn ) {
|
assets/js/happy-addons.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(e){"use strict";function t(e,t,n){var i;return function(){var a=this,o=arguments,r=function(){i=null,n||e.apply(a,o)},s=n&&!i;clearTimeout(i),i=setTimeout(r,t),s&&e.apply(a,o)}}function n(t,n){var i=t.find(".hajs-filter"),a=i.data("default-filter");i.length&&(i.on("click.onFilterNav","button",function(t){t.stopPropagation();var i=e(this);i.addClass("ha-filter__item--active").siblings().removeClass("ha-filter__item--active"),n(i.data("filter"))}),i.find('[data-filter="'+a+'"]').click())}function i(t){if(t.$element.on("click",t.selector,function(e){e.preventDefault()}),e.fn.magnificPopup){if(!t.isEnabled)return void e.magnificPopup.close();var n=e(window).width(),i=elementorFrontendConfig.breakpoints.md,a=elementorFrontendConfig.breakpoints.lg;t.$element.find(t.selector).magnificPopup({key:t.key,type:"image",image:{titleSrc:function(e){return e.el.attr("title")?e.el.attr("title"):e.el.find("img").attr("alt")}},gallery:{enabled:!0,preload:[1,2]},zoom:{enabled:!0,duration:300,easing:"ease-in-out",opener:function(e){return e.is("img")?e:e.find("img")}},disableOn:function(){return!(t.disableOnMobile&&n<i)&&!(t.disableOnTablet&&n>=i&&n<a)}})}}var a=e(window);e.fn.getHappySettings=function(){return this.data("happy-settings")};var o=function(e){var t=e.find(".hajs-image-comparison"),n=t.getHappySettings();n[{on_hover:"move_slider_on_hover",on_swipe:"move_with_handle_only",on_click:"click_to_move"}[n.move_handle||"on_swipe"]]=!0,delete n.move_handle,t.imagesLoaded().done(function(){t.twentytwenty(n);var e=setTimeout(function(){a.trigger("resize.twentytwenty"),clearTimeout(e)},400)})};a.on("elementor/frontend/init",function(){var r=elementorModules.frontend.handlers.Base,s=r.extend({bindEvents:function(){this.removeArrows(),this.run()},removeArrows:function(){var e=this;this.elements.$container.on("init",function(){e.elements.$container.siblings().hide()})},getDefaultSettings:function(){return{autoplay:!0,arrows:!1,checkVisible:!1,container:".hajs-slick",dots:!1,infinite:!0,rows:0,slidesToShow:1,prevArrow:e("<div />").append(this.findElement(".slick-prev").clone().show()).html(),nextArrow:e("<div />").append(this.findElement(".slick-next").clone().show()).html()}},getDefaultElements:function(){return{$container:this.findElement(this.getSettings("container"))}},onElementChange:t(function(){this.elements.$container.slick("unslick"),this.run()},200),getSlickSettings:function(){var t={infinite:!!this.getElementSettings("loop"),autoplay:!!this.getElementSettings("autoplay"),autoplaySpeed:this.getElementSettings("autoplay_speed"),speed:this.getElementSettings("animation_speed"),centerMode:!!this.getElementSettings("center"),vertical:!!this.getElementSettings("vertical"),slidesToScroll:1};switch(this.getElementSettings("navigation")){case"arrow":t.arrows=!0;break;case"dots":t.dots=!0;break;case"both":t.arrows=!0,t.dots=!0}return t.slidesToShow=parseInt(this.getElementSettings("slides_to_show"))||1,t.responsive=[{breakpoint:elementorFrontend.config.breakpoints.lg,settings:{slidesToShow:parseInt(this.getElementSettings("slides_to_show_tablet"))||t.slidesToShow}},{breakpoint:elementorFrontend.config.breakpoints.md,settings:{slidesToShow:parseInt(this.getElementSettings("slides_to_show_mobile"))||parseInt(this.getElementSettings("slides_to_show_tablet"))||t.slidesToShow}}],e.extend({},this.getSettings(),t)},run:function(){this.elements.$container.slick(this.getSlickSettings())}}),l=function(e){elementorFrontend.waypoint(e,function(){var t=e.find(".ha-number-text");t.numerator(t.data("animation"))})},d=function(t){elementorFrontend.waypoint(t,function(){t.find(".ha-skill-level").each(function(){var t=e(this),n=t.find(".ha-skill-level-text"),i=t.data("level");t.animate({width:i+"%"},500),n.numerator({toValue:i+"%",duration:1300,onStep:function(){n.append("%")}})})})},c=r.extend({onInit:function(){r.prototype.onInit.apply(this,arguments),this.run(),this.runFilter(),a.on("resize",t(this.run.bind(this),100))},getLayoutMode:function(){var e=this.getElementSettings("layout");return"even"===e?"masonry":e},getDefaultSettings:function(){return{itemSelector:".ha-image-grid__item",percentPosition:!0,layoutMode:this.getLayoutMode()}},getDefaultElements:function(){return{$container:this.findElement(".hajs-isotope")}},getLightBoxSettings:function(){return{key:"imagegrid",$element:this.$element,selector:".ha-js-lightbox",isEnabled:!!this.getElementSettings("enable_popup"),disableOnTablet:!!this.getElementSettings("disable_lightbox_on_tablet"),disableOnMobile:!!this.getElementSettings("disable_lightbox_on_mobile")}},runFilter:function(){var e=this,t=this.getLightBoxSettings();n(this.$element,function(n){e.elements.$container.isotope({filter:n}),"*"!==n&&(t.selector=n),i(t)})},onElementChange:function(e){-1!==["layout","image_height","columns","image_margin","enable_popup"].indexOf(e)&&this.run()},run:function(){var e=this;e.elements.$container.isotope(e.getDefaultSettings()).imagesLoaded().progress(function(){e.elements.$container.isotope("layout")}),i(e.getLightBoxSettings())}}),h=r.extend({onInit:function(){r.prototype.onInit.apply(this,arguments),this.run(),this.runFilter(),a.on("resize",t(this.run.bind(this),100))},getDefaultSettings:function(){return{rowHeight:+this.getElementSettings("row_height.size")||150,lastRow:this.getElementSettings("last_row"),margins:+this.getElementSettings("margins.size"),captions:!!this.getElementSettings("show_caption")}},getDefaultElements:function(){return{$container:this.findElement(".hajs-justified-grid")}},getLightBoxSettings:function(){return{key:"justifiedgallery",$element:this.$element,selector:".ha-js-lightbox",isEnabled:!!this.getElementSettings("enable_popup"),disableOnTablet:!!this.getElementSettings("disable_lightbox_on_tablet"),disableOnMobile:!!this.getElementSettings("disable_lightbox_on_mobile")}},runFilter:function(){var e=this,t=this.getLightBoxSettings(),a={lastRow:this.getElementSettings("last_row")};n(e.$element,function(n){"*"!==n&&(a.lastRow="nojustify",t.selector=n),a.filter=n,e.elements.$container.justifiedGallery(a),i(t)})},onElementChange:function(e){-1!==["row_height","last_row","margins","show_caption","enable_popup"].indexOf(e)&&this.run()},run:function(){this.elements.$container.justifiedGallery(this.getDefaultSettings()),i(this.getLightBoxSettings())}}),u=r.extend({onInit:function(){r.prototype.onInit.apply(this,arguments),this.wrapper=this.$element.find(".ha-news-ticker-wrapper"),this.run()},onElementChange:function(e){"item_space"!==e&&"title_typography_font_size"!==e||this.run()},run:function(){var t=this.wrapper.innerHeight(),n=this.wrapper.innerWidth(),i=this.wrapper.find(".ha-news-ticker-container"),a=i.find(".ha-news-ticker-item"),o=this.wrapper.data("scroll-direction"),r="scroll"+o+t+n,s=this.wrapper.data("duration"),l="normal",d=10,c={transform:"translateX(0"+n+"px)"},h={transform:"translateX(-101%)"};"right"===o&&(l="reverse"),a.each(function(){d+=e(this).outerWidth(!0)}),i.css({width:d,display:"flex"}),e.keyframe.define([{name:r,"0%":c,"100%":h}]),i.playKeyframe({name:r,duration:s+"ms",timingFunction:"linear",delay:"0s",iterationCount:"infinite",direction:l,fillMode:"none",complete:function(){}})}}),f=function(e){elementorFrontend.waypoint(e,function(){var t=e.find(".ha-fun-factor__content-number");t.numerator(t.data("animation"))})},m=function(t){elementorFrontend.waypoint(t,function(){var t=e(this),n=t.find(".ha-bar-chart-container"),i=t.find("#ha-bar-chart"),a=n.data("settings");n.length&&new Chart(i,a)})},p=function(t){var n=t.find(".ha-twitter-load-more"),i=t.find(".ha-tweet-items");n.on("click",function(n){n.preventDefault();var a=e(this),o=a.data("settings"),r=a.data("total"),s=t.find(".ha-tweet-item").length;e.ajax({url:HappyLocalize.ajax_url,type:"POST",data:{action:"ha_twitter_feed_action",security:HappyLocalize.nonce,query_settings:o,loaded_item:s},success:function(t){r>s?e(t).appendTo(i):(a.text("All Loaded").addClass("loaded"),setTimeout(function(){a.css({display:"none"})},800))},error:function(e){}})})},g=r.extend({onInit:function(){r.prototype.onInit.apply(this,arguments),this.wrapper=this.$element.find(".ha-post-tab"),this.run()},run:function(){var n=this.wrapper.find(".ha-post-tab-filter"),i=n.find("li"),a=this.wrapper.data("event"),o=this.wrapper.data("query-args");i.on(a,t(function(t){t.preventDefault();var n=e(this),a=n.data("term"),r=n.closest(".ha-post-tab"),s=r.find(".ha-post-tab-content"),l=s.find(".ha-post-tab-loading"),d=s.find(".ha-post-tab-item-wrapper"),c=!1;0===l.length&&(i.removeClass("active"),d.removeClass("active"),n.addClass("active"),d.each(function(){var t=e(this),n=t.data("term");a===n&&(t.addClass("active"),c=!0)}),!1===c&&e.ajax({url:HappyLocalize.ajax_url,type:"POST",data:{action:"ha_post_tab_action",security:HappyLocalize.nonce,post_tab_query:o,term_id:a},beforeSend:function(){s.append('<span class="ha-post-tab-loading"><i class="eicon-spinner eicon-animation-spin"></i></span>')},success:function(e){s.find(".ha-post-tab-loading").remove(),s.append(e)},error:function(e){}}))},200))}}),y=function(t){var n=t.find(".ha-table__head-column-cell");t.find(".ha-table__body-row").each(function(t,i){e(i).find(".ha-table__body-row-cell").each(function(t,i){e(i).prepend('<div class="ha-table__head-column-cell">'+n.eq(t).html()+"</div>")})})},_=function(t){var n=t.find(".ha-threesixty-rotation-inner"),i=n.data("selector"),a=n.data("autoplay"),o=t.find(".ha-threesixty-rotation-magnify"),r=t.find(".ha-threesixty-rotation-360img"),s=o.data("zoom"),l=t.find(".ha-threesixty-rotation-play"),d=circlr(i,{play:!0});if("on"===a){var c=t.find(".ha-threesixty-rotation-autoplay");c.on("click",function(e){e.preventDefault(),d.play(),r.remove()}),setTimeout(function(){c.trigger("click"),c.remove()},1e3)}else l.on("click",function(t){t.preventDefault();var n=e(this),i=n.find("i");i.hasClass("hm-play-button")?(i.removeClass("hm-play-button"),i.addClass("hm-stop"),d.play()):(i.removeClass("hm-stop"),i.addClass("hm-play-button"),d.stop()),r.remove()});o.on("click",function(n){t.find("img").each(function(){-1!==e(this).attr("style").indexOf("block")&&(HappySimplaMagnify(e(this)[0],s),o.css("display","none"),r.remove())})}),e(document).on("click",function(i){var a=e(i.target),s=t.find(".ha-img-magnifier-glass"),l=o.find("i");s.length&&a[0]!==l[0]&&(s.remove(),o.removeAttr("style")),a[0]===n[0]&&r.remove()}),n.on("mouseup mousedown",function(e){r.remove()})};elementorFrontend.hooks.addAction("frontend/element_ready/ha-slider.default",function(e){elementorFrontend.elementsHandler.addHandler(s,{$element:e})}),elementorFrontend.hooks.addAction("frontend/element_ready/ha-carousel.default",function(e){elementorFrontend.elementsHandler.addHandler(s,{$element:e})}),elementorFrontend.hooks.addAction("frontend/element_ready/ha-horizontal-timeline.default",function(e){elementorFrontend.elementsHandler.addHandler(s,{$element:e,autoplay:!1,container:".ha-horizontal-timeline-wrapper",navigation:"arrow",arrows:!0})}),e("[data-ha-element-link]").on("click.onWrapperLink",function(){var t,n,i=e(this),a=i.data("ha-element-link"),o=i.data("id"),r=document.createElement("a");r.id="happy-addons-wrapper-link-"+o,r.href=a.url,r.target=a.is_external?"_blank":"_self",r.rel=a.nofollow?"nofollow noreferer":"",r.style.display="none",document.body.appendChild(r),t=document.getElementById(r.id),t.click(),n=setTimeout(function(){document.body.removeChild(t),clearTimeout(n)})});var v=function(e){e.hasClass("elementor-element-edit-mode")&&e.addClass("has-bg-overlay")},b={"ha-image-compare.default":o,"ha-number.default":l,"ha-skills.default":d,"ha-fun-factor.default":f,"ha-bar-chart.default":m,"ha-twitter-feed.default":p,"ha-threesixty-rotation.default":_,"ha-data-table.default":y,widget:v};e.each(b,function(e,t){elementorFrontend.hooks.addAction("frontend/element_ready/"+e,t)});var w={"ha-image-grid.default":c,"ha-justified-gallery.default":h,"ha-news-ticker.default":u,"ha-post-tab.default":g};e.each(w,function(e,t){elementorFrontend.hooks.addAction("frontend/element_ready/"+e,function(e){elementorFrontend.elementsHandler.addHandler(t,{$element:e})})})})}(jQuery);
|
1 |
+
!function(e){"use strict";function t(e,t,n){var i;return function(){var a=this,o=arguments,r=function(){i=null,n||e.apply(a,o)},s=n&&!i;clearTimeout(i),i=setTimeout(r,t),s&&e.apply(a,o)}}function n(t,n){var i=t.find(".hajs-filter"),a=i.data("default-filter");i.length&&(i.on("click.onFilterNav","button",function(t){t.stopPropagation();var i=e(this);i.addClass("ha-filter__item--active").siblings().removeClass("ha-filter__item--active"),n(i.data("filter"))}),i.find('[data-filter="'+a+'"]').click())}function i(t){if(t.$element.on("click",t.selector,function(e){e.preventDefault()}),e.fn.magnificPopup){if(!t.isEnabled)return void e.magnificPopup.close();var n=e(window).width(),i=elementorFrontendConfig.breakpoints.md,a=elementorFrontendConfig.breakpoints.lg;t.$element.find(t.selector).magnificPopup({key:t.key,type:"image",image:{titleSrc:function(e){return e.el.attr("title")?e.el.attr("title"):e.el.find("img").attr("alt")}},gallery:{enabled:!0,preload:[1,2]},zoom:{enabled:!0,duration:300,easing:"ease-in-out",opener:function(e){return e.is("img")?e:e.find("img")}},disableOn:function(){return!(t.disableOnMobile&&n<i)&&!(t.disableOnTablet&&n>=i&&n<a)}})}}var a=e(window);e.fn.getHappySettings=function(){return this.data("happy-settings")};var o=function(e){var t=e.find(".hajs-image-comparison"),n=t.getHappySettings();n[{on_hover:"move_slider_on_hover",on_swipe:"move_with_handle_only",on_click:"click_to_move"}[n.move_handle||"on_swipe"]]=!0,delete n.move_handle,t.imagesLoaded().done(function(){t.twentytwenty(n);var e=setTimeout(function(){a.trigger("resize.twentytwenty"),clearTimeout(e)},400)})};a.on("elementor/frontend/init",function(){var r=elementorModules.frontend.handlers.Base,s=r.extend({bindEvents:function(){this.removeArrows(),this.run()},removeArrows:function(){var e=this;this.elements.$container.on("init",function(){e.elements.$container.siblings().hide()})},getDefaultSettings:function(){return{autoplay:!0,arrows:!1,checkVisible:!1,container:".hajs-slick",dots:!1,infinite:!0,rows:0,slidesToShow:1,prevArrow:e("<div />").append(this.findElement(".slick-prev").clone().show()).html(),nextArrow:e("<div />").append(this.findElement(".slick-next").clone().show()).html()}},getDefaultElements:function(){return{$container:this.findElement(this.getSettings("container"))}},onElementChange:t(function(){this.elements.$container.slick("unslick"),this.run()},200),getSlickSettings:function(){var t={infinite:!!this.getElementSettings("loop"),autoplay:!!this.getElementSettings("autoplay"),autoplaySpeed:this.getElementSettings("autoplay_speed"),speed:this.getElementSettings("animation_speed"),centerMode:!!this.getElementSettings("center"),vertical:!!this.getElementSettings("vertical"),slidesToScroll:1};switch(this.getElementSettings("navigation")){case"arrow":t.arrows=!0;break;case"dots":t.dots=!0;break;case"both":t.arrows=!0,t.dots=!0}return t.slidesToShow=parseInt(this.getElementSettings("slides_to_show"))||1,t.responsive=[{breakpoint:elementorFrontend.config.breakpoints.lg,settings:{slidesToShow:parseInt(this.getElementSettings("slides_to_show_tablet"))||t.slidesToShow}},{breakpoint:elementorFrontend.config.breakpoints.md,settings:{slidesToShow:parseInt(this.getElementSettings("slides_to_show_mobile"))||parseInt(this.getElementSettings("slides_to_show_tablet"))||t.slidesToShow}}],e.extend({},this.getSettings(),t)},run:function(){this.elements.$container.slick(this.getSlickSettings())}}),l=function(e){elementorFrontend.waypoint(e,function(){var t=e.find(".ha-number-text");t.numerator(t.data("animation"))})},d=function(t){elementorFrontend.waypoint(t,function(){t.find(".ha-skill-level").each(function(){var t=e(this),n=t.find(".ha-skill-level-text"),i=t.data("level");t.animate({width:i+"%"},500),n.numerator({toValue:i+"%",duration:1300,onStep:function(){n.append("%")}})})})},c=r.extend({onInit:function(){r.prototype.onInit.apply(this,arguments),this.run(),this.runFilter(),a.on("resize",t(this.run.bind(this),100))},getLayoutMode:function(){var e=this.getElementSettings("layout");return"even"===e?"masonry":e},getDefaultSettings:function(){return{itemSelector:".ha-image-grid__item",percentPosition:!0,layoutMode:this.getLayoutMode()}},getDefaultElements:function(){return{$container:this.findElement(".hajs-isotope")}},getLightBoxSettings:function(){return{key:"imagegrid",$element:this.$element,selector:".ha-js-lightbox",isEnabled:!!this.getElementSettings("enable_popup"),disableOnTablet:!!this.getElementSettings("disable_lightbox_on_tablet"),disableOnMobile:!!this.getElementSettings("disable_lightbox_on_mobile")}},runFilter:function(){var e=this,t=this.getLightBoxSettings();n(this.$element,function(n){e.elements.$container.isotope({filter:n}),"*"!==n&&(t.selector=n),i(t)})},onElementChange:function(e){-1!==["layout","image_height","columns","image_margin","enable_popup"].indexOf(e)&&this.run()},run:function(){var e=this;e.elements.$container.isotope(e.getDefaultSettings()).imagesLoaded().progress(function(){e.elements.$container.isotope("layout")}),i(e.getLightBoxSettings())}}),h=r.extend({onInit:function(){r.prototype.onInit.apply(this,arguments),this.run(),this.runFilter(),a.on("resize",t(this.run.bind(this),100))},getDefaultSettings:function(){return{rowHeight:+this.getElementSettings("row_height.size")||150,lastRow:this.getElementSettings("last_row"),margins:+this.getElementSettings("margins.size"),captions:!!this.getElementSettings("show_caption")}},getDefaultElements:function(){return{$container:this.findElement(".hajs-justified-grid")}},getLightBoxSettings:function(){return{key:"justifiedgallery",$element:this.$element,selector:".ha-js-lightbox",isEnabled:!!this.getElementSettings("enable_popup"),disableOnTablet:!!this.getElementSettings("disable_lightbox_on_tablet"),disableOnMobile:!!this.getElementSettings("disable_lightbox_on_mobile")}},runFilter:function(){var e=this,t=this.getLightBoxSettings(),a={lastRow:this.getElementSettings("last_row")};n(e.$element,function(n){"*"!==n&&(a.lastRow="nojustify",t.selector=n),a.filter=n,e.elements.$container.justifiedGallery(a),i(t)})},onElementChange:function(e){-1!==["row_height","last_row","margins","show_caption","enable_popup"].indexOf(e)&&this.run()},run:function(){this.elements.$container.justifiedGallery(this.getDefaultSettings()),i(this.getLightBoxSettings())}}),u=r.extend({onInit:function(){r.prototype.onInit.apply(this,arguments),this.wrapper=this.$element.find(".ha-news-ticker-wrapper"),this.run()},onElementChange:function(e){"item_space"!==e&&"title_typography_font_size"!==e||this.run()},run:function(){var t=this.wrapper.innerHeight(),n=this.wrapper.innerWidth(),i=this.wrapper.find(".ha-news-ticker-container"),a=i.find(".ha-news-ticker-item"),o=this.wrapper.data("scroll-direction"),r="scroll"+o+t+n,s=this.wrapper.data("duration"),l="normal",d=10,c={transform:"translateX(0"+n+"px)"},h={transform:"translateX(-101%)"};"right"===o&&(l="reverse"),a.each(function(){d+=e(this).outerWidth(!0)}),i.css({width:d,display:"flex"}),e.keyframe.define([{name:r,"0%":c,"100%":h}]),i.playKeyframe({name:r,duration:s+"ms",timingFunction:"linear",delay:"0s",iterationCount:"infinite",direction:l,fillMode:"none",complete:function(){}})}}),f=function(e){elementorFrontend.waypoint(e,function(){var t=e.find(".ha-fun-factor__content-number");t.numerator(t.data("animation"))})},p=function(t){elementorFrontend.waypoint(t,function(){var t=e(this),n=t.find(".ha-bar-chart-container"),i=t.find("#ha-bar-chart"),a=n.data("settings");n.length&&new Chart(i,a)})},m=function(t){var n=t.find(".ha-twitter-load-more"),i=t.find(".ha-tweet-items");n.on("click",function(n){n.preventDefault();var a=e(this),o=a.data("settings"),r=a.data("total"),s=t.find(".ha-tweet-item").length;e.ajax({url:HappyLocalize.ajax_url,type:"POST",data:{action:"ha_twitter_feed_action",security:HappyLocalize.nonce,query_settings:o,loaded_item:s},success:function(t){r>s?e(t).appendTo(i):(a.text("All Loaded").addClass("loaded"),setTimeout(function(){a.css({display:"none"})},800))},error:function(e){}})})},g=r.extend({onInit:function(){r.prototype.onInit.apply(this,arguments),this.wrapper=this.$element.find(".ha-post-tab"),this.run()},run:function(){var n=this.wrapper.find(".ha-post-tab-filter"),i=n.find("li"),a=this.wrapper.data("event"),o=this.wrapper.data("query-args");i.on(a,t(function(t){t.preventDefault();var n=e(this),a=n.data("term"),r=n.closest(".ha-post-tab"),s=r.find(".ha-post-tab-content"),l=s.find(".ha-post-tab-loading"),d=s.find(".ha-post-tab-item-wrapper"),c=!1;0===l.length&&(i.removeClass("active"),d.removeClass("active"),n.addClass("active"),d.each(function(){var t=e(this),n=t.data("term");a===n&&(t.addClass("active"),c=!0)}),!1===c&&e.ajax({url:HappyLocalize.ajax_url,type:"POST",data:{action:"ha_post_tab_action",security:HappyLocalize.nonce,post_tab_query:o,term_id:a},beforeSend:function(){s.append('<span class="ha-post-tab-loading"><i class="eicon-spinner eicon-animation-spin"></i></span>')},success:function(e){s.find(".ha-post-tab-loading").remove(),s.append(e)},error:function(e){}}))},200))}}),v=function(t){var n=t.find(".ha-table__head-column-cell");t.find(".ha-table__body-row").each(function(t,i){e(i).find(".ha-table__body-row-cell").each(function(t,i){e(i).prepend('<div class="ha-table__head-column-cell">'+n.eq(t).html()+"</div>")})})},y=function(t){var n=t.find(".ha-threesixty-rotation-inner"),i=n.data("selector"),a=n.data("autoplay"),o=t.find(".ha-threesixty-rotation-magnify"),r=t.find(".ha-threesixty-rotation-360img"),s=o.data("zoom"),l=t.find(".ha-threesixty-rotation-play"),d=circlr(i,{play:!0});if("on"===a){var c=t.find(".ha-threesixty-rotation-autoplay");c.on("click",function(e){e.preventDefault(),d.play(),r.remove()}),setTimeout(function(){c.trigger("click"),c.remove()},1e3)}else l.on("click",function(t){t.preventDefault();var n=e(this),i=n.find("i");i.hasClass("hm-play-button")?(i.removeClass("hm-play-button"),i.addClass("hm-stop"),d.play()):(i.removeClass("hm-stop"),i.addClass("hm-play-button"),d.stop()),r.remove()});o.on("click",function(n){t.find("img").each(function(){-1!==e(this).attr("style").indexOf("block")&&(HappySimplaMagnify(e(this)[0],s),o.css("display","none"),r.remove())})}),e(document).on("click",function(i){var a=e(i.target),s=t.find(".ha-img-magnifier-glass"),l=o.find("i");s.length&&a[0]!==l[0]&&(s.remove(),o.removeAttr("style")),a[0]===n[0]&&r.remove()}),n.on("mouseup mousedown",function(e){r.remove()})},w=function(e){var t=e.find(".ha-ec"),n=e.find(".ha-ec-popup-wrapper"),i=e.find(".ha-ec-popup-close"),a=t.data("events"),o=t.data("initialview"),r=t.data("firstday"),s=t.data("locale"),l=t.data("show-popup"),d=t.data("allday-text");if(void 0!==a){var c={stickyHeaderDates:!1,locale:s,headerToolbar:{left:"prev,next today",center:"title",right:"dayGridMonth,timeGridWeek,timeGridDay,listMonth"},initialView:o,firstDay:r,eventTimeFormat:{hour:"numeric",minute:"2-digit",meridiem:"short"},events:a,height:"auto",eventClick:function(e){function t(e){return new Date(e)}function i(e){var t=e.getHours(),n=e.getMinutes(),i=t>=12?"pm":"am";return t%=12,t=t||12,n=n<10?"0"+n:n,t+":"+n+i}if(e.jsEvent.preventDefault(),"yes"==l){var a=(e.view.calendar.currentData.currentDate.toString(),e.event.allDay),o=e.event.title,r=e.event.startStr,s=e.event.endStr,c=e.event.extendedProps.guest,h=e.event.extendedProps.location,u=e.event.extendedProps.description,f=e.event.url,p=e.event.extendedProps.image,m=n.find(".ha-ec-event-title"),g=n.find(".ha-ec-event-time-wrap"),v=n.find(".ha-ec-event-guest-wrap"),y=n.find(".ha-ec-event-location-wrap"),w=n.find(".ha-ec-popup-desc"),_=n.find(".ha-ec-popup-readmore-link"),b=n.find(".ha-ec-popup-image");if(b.css("display","none"),m.css("display","none"),g.css("display","none"),v.css("display","none"),y.css("display","none"),w.css("display","none"),_.css("display","none"),n.addClass("ha-ec-popup-ready"),p&&(b.removeAttr("style"),b.find("img").attr("src",p),b.find("img").attr("alt",o)),o&&(m.removeAttr("style"),m.html(o)),c&&(v.removeAttr("style"),v.find("span.ha-ec-event-guest").html(c)),h&&(y.removeAttr("style"),y.find("span.ha-ec-event-location").html(h)),u&&(w.removeAttr("style"),w.html(u)),!0!==a){g.removeAttr("style"),r=Date.parse(t(r)),s=Date.parse(t(s));var S=i(t(r)),k="Invalid Data";r<s&&(k=i(t(s))),g.find("span.ha-ec-event-time").html(S+" - "+k)}else g.removeAttr("style"),g.find("span.ha-ec-event-time").html(d);f&&(_.removeAttr("style"),_.attr("href",f),"on"===e.event.extendedProps.external&&_.attr("target","_blank"),"on"===e.event.extendedProps.nofollow&&_.attr("rel","nofollow"))}},dateClick:function(e){itemDate=e.date.toUTCString()}};new FullCalendar.Calendar(t[0],c).render(),e.find(".ha-ec-popup-wrapper").on("click",function(e){e.stopPropagation(),e.target!==e.currentTarget&&e.target!=i[0]&&e.target!=i.find(".eicon-editor-close")[0]||n.addClass("ha-ec-popup-removing").removeClass("ha-ec-popup-ready")})}};elementorFrontend.hooks.addAction("frontend/element_ready/ha-slider.default",function(e){elementorFrontend.elementsHandler.addHandler(s,{$element:e})}),elementorFrontend.hooks.addAction("frontend/element_ready/ha-carousel.default",function(e){elementorFrontend.elementsHandler.addHandler(s,{$element:e})}),elementorFrontend.hooks.addAction("frontend/element_ready/ha-horizontal-timeline.default",function(e){elementorFrontend.elementsHandler.addHandler(s,{$element:e,autoplay:!1,container:".ha-horizontal-timeline-wrapper",navigation:"arrow",arrows:!0})}),e("[data-ha-element-link]").on("click.onWrapperLink",function(){var t,n,i=e(this),a=i.data("ha-element-link"),o=i.data("id"),r=document.createElement("a");r.id="happy-addons-wrapper-link-"+o,r.href=a.url,r.target=a.is_external?"_blank":"_self",r.rel=a.nofollow?"nofollow noreferer":"",r.style.display="none",document.body.appendChild(r),t=document.getElementById(r.id),t.click(),n=setTimeout(function(){document.body.removeChild(t),clearTimeout(n)})});var _=function(e){e.hasClass("elementor-element-edit-mode")&&e.addClass("ha-has-bg-overlay")},b={"ha-image-compare.default":o,"ha-number.default":l,"ha-skills.default":d,"ha-fun-factor.default":f,"ha-bar-chart.default":p,"ha-twitter-feed.default":m,"ha-threesixty-rotation.default":y,"ha-data-table.default":v,widget:_,"ha-event-calendar.default":w};e.each(b,function(e,t){elementorFrontend.hooks.addAction("frontend/element_ready/"+e,t)});var S={"ha-image-grid.default":c,"ha-justified-gallery.default":h,"ha-news-ticker.default":u,"ha-post-tab.default":g};e.each(S,function(e,t){elementorFrontend.hooks.addAction("frontend/element_ready/"+e,function(e){elementorFrontend.elementsHandler.addHandler(t,{$element:e})})})})}(jQuery);
|
assets/vendor/aesthetic-icon-picker/icons/font-awesome.js
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
return {
|
2 |
+
"font-awesome":{
|
3 |
+
"regular":{
|
4 |
+
"prefix": "far fa-",
|
5 |
+
"icon-style": "fa-regular",
|
6 |
+
"list-icon":"fab fa-font-awesome-alt",
|
7 |
+
"icons":["far fa-address-book", "far fa-address-card", "far fa-angry", "far fa-arrow-alt-circle-down", "far fa-arrow-alt-circle-left", "far fa-arrow-alt-circle-right", "far fa-arrow-alt-circle-up", "far fa-bell", "far fa-bell-slash", "far fa-bookmark", "far fa-building", "far fa-calendar", "far fa-calendar-alt", "far fa-calendar-check", "far fa-calendar-minus", "far fa-calendar-plus", "far fa-calendar-times", "far fa-caret-square-down", "far fa-caret-square-left", "far fa-caret-square-right", "far fa-caret-square-up", "far fa-chart-bar", "far fa-check-circle", "far fa-check-square", "far fa-circle", "far fa-clipboard", "far fa-clock", "far fa-clone", "far fa-closed-captioning", "far fa-comment", "far fa-comment-alt", "far fa-comment-dots", "far fa-comments", "far fa-compass", "far fa-copy", "far fa-copyright", "far fa-credit-card", "far fa-dizzy", "far fa-dot-circle", "far fa-edit", "far fa-envelope", "far fa-envelope-open", "far fa-eye", "far fa-eye-slash", "far fa-file", "far fa-file-alt", "far fa-file-archive", "far fa-file-audio", "far fa-file-code", "far fa-file-excel", "far fa-file-image", "far fa-file-pdf", "far fa-file-powerpoint", "far fa-file-video", "far fa-file-word", "far fa-flag", "far fa-flushed", "far fa-folder", "far fa-folder-open", "far fa-frown", "far fa-frown-open", "far fa-futbol", "far fa-gem", "far fa-grimace", "far fa-grin", "far fa-grin-alt", "far fa-grin-beam", "far fa-grin-beam-sweat", "far fa-grin-hearts", "far fa-grin-squint", "far fa-grin-squint-tears", "far fa-grin-stars", "far fa-grin-tears", "far fa-grin-tongue", "far fa-grin-tongue-squint", "far fa-grin-tongue-wink", "far fa-grin-wink", "far fa-hand-lizard", "far fa-hand-paper", "far fa-hand-peace", "far fa-hand-point-down", "far fa-hand-point-left", "far fa-hand-point-right", "far fa-hand-point-up", "far fa-hand-pointer", "far fa-hand-rock", "far fa-hand-scissors", "far fa-hand-spock", "far fa-handshake", "far fa-hdd", "far fa-heart", "far fa-hospital", "far fa-hourglass", "far fa-id-badge", "far fa-id-card", "far fa-image", "far fa-images", "far fa-keyboard", "far fa-kiss", "far fa-kiss-beam", "far fa-kiss-wink-heart", "far fa-laugh", "far fa-laugh-beam", "far fa-laugh-squint", "far fa-laugh-wink", "far fa-lemon", "far fa-life-ring", "far fa-lightbulb", "far fa-list-alt", "far fa-map", "far fa-meh", "far fa-meh-blank", "far fa-meh-rolling-eyes", "far fa-minus-square", "far fa-money-bill-alt", "far fa-moon", "far fa-newspaper", "far fa-object-group", "far fa-object-ungroup", "far fa-paper-plane", "far fa-pause-circle", "far fa-play-circle", "far fa-plus-square", "far fa-question-circle", "far fa-registered", "far fa-sad-cry", "far fa-sad-tear", "far fa-save", "far fa-share-square", "far fa-smile", "far fa-smile-beam", "far fa-smile-wink", "far fa-snowflake", "far fa-square", "far fa-star", "far fa-star-half", "far fa-sticky-note", "far fa-stop-circle", "far fa-sun", "far fa-surprise", "far fa-thumbs-down", "far fa-thumbs-up", "far fa-times-circle", "far fa-tired", "far fa-trash-alt", "far fa-user", "far fa-user-circle", "far fa-window-close", "far fa-window-maximize", "far fa-window-minimize", "far fa-window-restore"]
|
8 |
+
},
|
9 |
+
"solid":{
|
10 |
+
"prefix": "fas fa-",
|
11 |
+
"icon-style": "fa-solid",
|
12 |
+
"list-icon":"fab fa-font-awesome",
|
13 |
+
"icons":["fas fa-ad", "fas fa-address-book", "fas fa-address-card", "fas fa-adjust", "fas fa-air-freshener", "fas fa-align-center", "fas fa-align-justify", "fas fa-align-left", "fas fa-align-right", "fas fa-allergies", "fas fa-ambulance", "fas fa-american-sign-language-interpreting", "fas fa-anchor", "fas fa-angle-double-down", "fas fa-angle-double-left", "fas fa-angle-double-right", "fas fa-angle-double-up", "fas fa-angle-down", "fas fa-angle-left", "fas fa-angle-right", "fas fa-angle-up", "fas fa-angry", "fas fa-ankh", "fas fa-apple-alt", "fas fa-archive", "fas fa-archway", "fas fa-arrow-alt-circle-down", "fas fa-arrow-alt-circle-left", "fas fa-arrow-alt-circle-right", "fas fa-arrow-alt-circle-up", "fas fa-arrow-circle-down", "fas fa-arrow-circle-left", "fas fa-arrow-circle-right", "fas fa-arrow-circle-up", "fas fa-arrow-down", "fas fa-arrow-left", "fas fa-arrow-right", "fas fa-arrow-up", "fas fa-arrows-alt", "fas fa-arrows-alt-h", "fas fa-arrows-alt-v", "fas fa-assistive-listening-systems", "fas fa-asterisk", "fas fa-at", "fas fa-atlas", "fas fa-atom", "fas fa-audio-description", "fas fa-award", "fas fa-baby", "fas fa-baby-carriage", "fas fa-backspace", "fas fa-backward", "fas fa-bacon", "fas fa-bahai", "fas fa-balance-scale", "fas fa-balance-scale-left", "fas fa-balance-scale-right", "fas fa-ban", "fas fa-band-aid", "fas fa-barcode", "fas fa-bars", "fas fa-baseball-ball", "fas fa-basketball-ball", "fas fa-bath", "fas fa-battery-empty", "fas fa-battery-full", "fas fa-battery-half", "fas fa-battery-quarter", "fas fa-battery-three-quarters", "fas fa-bed", "fas fa-beer", "fas fa-bell", "fas fa-bell-slash", "fas fa-bezier-curve", "fas fa-bible", "fas fa-bicycle", "fas fa-biking", "fas fa-binoculars", "fas fa-biohazard", "fas fa-birthday-cake", "fas fa-blender", "fas fa-blender-phone", "fas fa-blind", "fas fa-blog", "fas fa-bold", "fas fa-bolt", "fas fa-bomb", "fas fa-bone", "fas fa-bong", "fas fa-book", "fas fa-book-dead", "fas fa-book-medical", "fas fa-book-open", "fas fa-book-reader", "fas fa-bookmark", "fas fa-border-all", "fas fa-border-none", "fas fa-border-style", "fas fa-bowling-ball", "fas fa-box", "fas fa-box-open", "fas fa-boxes", "fas fa-braille", "fas fa-brain", "fas fa-bread-slice", "fas fa-briefcase", "fas fa-briefcase-medical", "fas fa-broadcast-tower", "fas fa-broom", "fas fa-brush", "fas fa-bug", "fas fa-building", "fas fa-bullhorn", "fas fa-bullseye", "fas fa-burn", "fas fa-bus", "fas fa-bus-alt", "fas fa-business-time", "fas fa-calculator", "fas fa-calendar", "fas fa-calendar-alt", "fas fa-calendar-check", "fas fa-calendar-day", "fas fa-calendar-minus", "fas fa-calendar-plus", "fas fa-calendar-times", "fas fa-calendar-week", "fas fa-camera", "fas fa-camera-retro", "fas fa-campground", "fas fa-candy-cane", "fas fa-cannabis", "fas fa-capsules", "fas fa-car", "fas fa-car-alt", "fas fa-car-battery", "fas fa-car-crash", "fas fa-car-side", "fas fa-caravan", "fas fa-caret-down", "fas fa-caret-left", "fas fa-caret-right", "fas fa-caret-square-down", "fas fa-caret-square-left", "fas fa-caret-square-right", "fas fa-caret-square-up", "fas fa-caret-up", "fas fa-carrot", "fas fa-cart-arrow-down", "fas fa-cart-plus", "fas fa-cash-register", "fas fa-cat", "fas fa-certificate", "fas fa-chair", "fas fa-chalkboard", "fas fa-chalkboard-teacher", "fas fa-charging-station", "fas fa-chart-area", "fas fa-chart-bar", "fas fa-chart-line", "fas fa-chart-pie", "fas fa-check", "fas fa-check-circle", "fas fa-check-double", "fas fa-check-square", "fas fa-cheese", "fas fa-chess", "fas fa-chess-bishop", "fas fa-chess-board", "fas fa-chess-king", "fas fa-chess-knight", "fas fa-chess-pawn", "fas fa-chess-queen", "fas fa-chess-rook", "fas fa-chevron-circle-down", "fas fa-chevron-circle-left", "fas fa-chevron-circle-right", "fas fa-chevron-circle-up", "fas fa-chevron-down", "fas fa-chevron-left", "fas fa-chevron-right", "fas fa-chevron-up", "fas fa-child", "fas fa-church", "fas fa-circle", "fas fa-circle-notch", "fas fa-city", "fas fa-clinic-medical", "fas fa-clipboard", "fas fa-clipboard-check", "fas fa-clipboard-list", "fas fa-clock", "fas fa-clone", "fas fa-closed-captioning", "fas fa-cloud", "fas fa-cloud-download-alt", "fas fa-cloud-meatball", "fas fa-cloud-moon", "fas fa-cloud-moon-rain", "fas fa-cloud-rain", "fas fa-cloud-showers-heavy", "fas fa-cloud-sun", "fas fa-cloud-sun-rain", "fas fa-cloud-upload-alt", "fas fa-cocktail", "fas fa-code", "fas fa-code-branch", "fas fa-coffee", "fas fa-cog", "fas fa-cogs", "fas fa-coins", "fas fa-columns", "fas fa-comment", "fas fa-comment-alt", "fas fa-comment-dollar", "fas fa-comment-dots", "fas fa-comment-medical", "fas fa-comment-slash", "fas fa-comments", "fas fa-comments-dollar", "fas fa-compact-disc", "fas fa-compass", "fas fa-compress", "fas fa-compress-alt", "fas fa-compress-arrows-alt", "fas fa-concierge-bell", "fas fa-cookie", "fas fa-cookie-bite", "fas fa-copy", "fas fa-copyright", "fas fa-couch", "fas fa-credit-card", "fas fa-crop", "fas fa-crop-alt", "fas fa-cross", "fas fa-crosshairs", "fas fa-crow", "fas fa-crown", "fas fa-crutch", "fas fa-cube", "fas fa-cubes", "fas fa-cut", "fas fa-database", "fas fa-deaf", "fas fa-democrat", "fas fa-desktop", "fas fa-dharmachakra", "fas fa-diagnoses", "fas fa-dice", "fas fa-dice-d20", "fas fa-dice-d6", "fas fa-dice-five", "fas fa-dice-four", "fas fa-dice-one", "fas fa-dice-six", "fas fa-dice-three", "fas fa-dice-two", "fas fa-digital-tachograph", "fas fa-directions", "fas fa-divide", "fas fa-dizzy", "fas fa-dna", "fas fa-dog", "fas fa-dollar-sign", "fas fa-dolly", "fas fa-dolly-flatbed", "fas fa-donate", "fas fa-door-closed", "fas fa-door-open", "fas fa-dot-circle", "fas fa-dove", "fas fa-download", "fas fa-drafting-compass", "fas fa-dragon", "fas fa-draw-polygon", "fas fa-drum", "fas fa-drum-steelpan", "fas fa-drumstick-bite", "fas fa-dumbbell", "fas fa-dumpster", "fas fa-dumpster-fire", "fas fa-dungeon", "fas fa-edit", "fas fa-egg", "fas fa-eject", "fas fa-ellipsis-h", "fas fa-ellipsis-v", "fas fa-envelope", "fas fa-envelope-open", "fas fa-envelope-open-text", "fas fa-envelope-square", "fas fa-equals", "fas fa-eraser", "fas fa-ethernet", "fas fa-euro-sign", "fas fa-exchange-alt", "fas fa-exclamation", "fas fa-exclamation-circle", "fas fa-exclamation-triangle", "fas fa-expand", "fas fa-expand-alt", "fas fa-expand-arrows-alt", "fas fa-external-link-alt", "fas fa-external-link-square-alt", "fas fa-eye", "fas fa-eye-dropper", "fas fa-eye-slash", "fas fa-fan", "fas fa-fast-backward", "fas fa-fast-forward", "fas fa-fax", "fas fa-feather", "fas fa-feather-alt", "fas fa-female", "fas fa-fighter-jet", "fas fa-file", "fas fa-file-alt", "fas fa-file-archive", "fas fa-file-audio", "fas fa-file-code", "fas fa-file-contract", "fas fa-file-csv", "fas fa-file-download", "fas fa-file-excel", "fas fa-file-export", "fas fa-file-image", "fas fa-file-import", "fas fa-file-invoice", "fas fa-file-invoice-dollar", "fas fa-file-medical", "fas fa-file-medical-alt", "fas fa-file-pdf", "fas fa-file-powerpoint", "fas fa-file-prescription", "fas fa-file-signature", "fas fa-file-upload", "fas fa-file-video", "fas fa-file-word", "fas fa-fill", "fas fa-fill-drip", "fas fa-film", "fas fa-filter", "fas fa-fingerprint", "fas fa-fire", "fas fa-fire-alt", "fas fa-fire-extinguisher", "fas fa-first-aid", "fas fa-fish", "fas fa-fist-raised", "fas fa-flag", "fas fa-flag-checkered", "fas fa-flag-usa", "fas fa-flask", "fas fa-flushed", "fas fa-folder", "fas fa-folder-minus", "fas fa-folder-open", "fas fa-folder-plus", "fas fa-font", "fas fa-football-ball", "fas fa-forward", "fas fa-frog", "fas fa-frown", "fas fa-frown-open", "fas fa-funnel-dollar", "fas fa-futbol", "fas fa-gamepad", "fas fa-gas-pump", "fas fa-gavel", "fas fa-gem", "fas fa-genderless", "fas fa-ghost", "fas fa-gift", "fas fa-gifts", "fas fa-glass-cheers", "fas fa-glass-martini", "fas fa-glass-martini-alt", "fas fa-glass-whiskey", "fas fa-glasses", "fas fa-globe", "fas fa-globe-africa", "fas fa-globe-americas", "fas fa-globe-asia", "fas fa-globe-europe", "fas fa-golf-ball", "fas fa-gopuram", "fas fa-graduation-cap", "fas fa-greater-than", "fas fa-greater-than-equal", "fas fa-grimace", "fas fa-grin", "fas fa-grin-alt", "fas fa-grin-beam", "fas fa-grin-beam-sweat", "fas fa-grin-hearts", "fas fa-grin-squint", "fas fa-grin-squint-tears", "fas fa-grin-stars", "fas fa-grin-tears", "fas fa-grin-tongue", "fas fa-grin-tongue-squint", "fas fa-grin-tongue-wink", "fas fa-grin-wink", "fas fa-grip-horizontal", "fas fa-grip-lines", "fas fa-grip-lines-vertical", "fas fa-grip-vertical", "fas fa-guitar", "fas fa-h-square", "fas fa-hamburger", "fas fa-hammer", "fas fa-hamsa", "fas fa-hand-holding", "fas fa-hand-holding-heart", "fas fa-hand-holding-usd", "fas fa-hand-lizard", "fas fa-hand-middle-finger", "fas fa-hand-paper", "fas fa-hand-peace", "fas fa-hand-point-down", "fas fa-hand-point-left", "fas fa-hand-point-right", "fas fa-hand-point-up", "fas fa-hand-pointer", "fas fa-hand-rock", "fas fa-hand-scissors", "fas fa-hand-spock", "fas fa-hands", "fas fa-hands-helping", "fas fa-handshake", "fas fa-hanukiah", "fas fa-hard-hat", "fas fa-hashtag", "fas fa-hat-cowboy", "fas fa-hat-cowboy-side", "fas fa-hat-wizard", "fas fa-hdd", "fas fa-heading", "fas fa-headphones", "fas fa-headphones-alt", "fas fa-headset", "fas fa-heart", "fas fa-heart-broken", "fas fa-heartbeat", "fas fa-helicopter", "fas fa-highlighter", "fas fa-hiking", "fas fa-hippo", "fas fa-history", "fas fa-hockey-puck", "fas fa-holly-berry", "fas fa-home", "fas fa-horse", "fas fa-horse-head", "fas fa-hospital", "fas fa-hospital-alt", "fas fa-hospital-symbol", "fas fa-hot-tub", "fas fa-hotdog", "fas fa-hotel", "fas fa-hourglass", "fas fa-hourglass-end", "fas fa-hourglass-half", "fas fa-hourglass-start", "fas fa-house-damage", "fas fa-hryvnia", "fas fa-i-cursor", "fas fa-ice-cream", "fas fa-icicles", "fas fa-icons", "fas fa-id-badge", "fas fa-id-card", "fas fa-id-card-alt", "fas fa-igloo", "fas fa-image", "fas fa-images", "fas fa-inbox", "fas fa-indent", "fas fa-industry", "fas fa-infinity", "fas fa-info", "fas fa-info-circle", "fas fa-italic", "fas fa-jedi", "fas fa-joint", "fas fa-journal-whills", "fas fa-kaaba", "fas fa-key", "fas fa-keyboard", "fas fa-khanda", "fas fa-kiss", "fas fa-kiss-beam", "fas fa-kiss-wink-heart", "fas fa-kiwi-bird", "fas fa-landmark", "fas fa-language", "fas fa-laptop", "fas fa-laptop-code", "fas fa-laptop-medical", "fas fa-laugh", "fas fa-laugh-beam", "fas fa-laugh-squint", "fas fa-laugh-wink", "fas fa-layer-group", "fas fa-leaf", "fas fa-lemon", "fas fa-less-than", "fas fa-less-than-equal", "fas fa-level-down-alt", "fas fa-level-up-alt", "fas fa-life-ring", "fas fa-lightbulb", "fas fa-link", "fas fa-lira-sign", "fas fa-list", "fas fa-list-alt", "fas fa-list-ol", "fas fa-list-ul", "fas fa-location-arrow", "fas fa-lock", "fas fa-lock-open", "fas fa-long-arrow-alt-down", "fas fa-long-arrow-alt-left", "fas fa-long-arrow-alt-right", "fas fa-long-arrow-alt-up", "fas fa-low-vision", "fas fa-luggage-cart", "fas fa-magic", "fas fa-magnet", "fas fa-mail-bulk", "fas fa-male", "fas fa-map", "fas fa-map-marked", "fas fa-map-marked-alt", "fas fa-map-marker", "fas fa-map-marker-alt", "fas fa-map-pin", "fas fa-map-signs", "fas fa-marker", "fas fa-mars", "fas fa-mars-double", "fas fa-mars-stroke", "fas fa-mars-stroke-h", "fas fa-mars-stroke-v", "fas fa-mask", "fas fa-medal", "fas fa-medkit", "fas fa-meh", "fas fa-meh-blank", "fas fa-meh-rolling-eyes", "fas fa-memory", "fas fa-menorah", "fas fa-mercury", "fas fa-meteor", "fas fa-microchip", "fas fa-microphone", "fas fa-microphone-alt", "fas fa-microphone-alt-slash", "fas fa-microphone-slash", "fas fa-microscope", "fas fa-minus", "fas fa-minus-circle", "fas fa-minus-square", "fas fa-mitten", "fas fa-mobile", "fas fa-mobile-alt", "fas fa-money-bill", "fas fa-money-bill-alt", "fas fa-money-bill-wave", "fas fa-money-bill-wave-alt", "fas fa-money-check", "fas fa-money-check-alt", "fas fa-monument", "fas fa-moon", "fas fa-mortar-pestle", "fas fa-mosque", "fas fa-motorcycle", "fas fa-mountain", "fas fa-mouse", "fas fa-mouse-pointer", "fas fa-mug-hot", "fas fa-music", "fas fa-network-wired", "fas fa-neuter", "fas fa-newspaper", "fas fa-not-equal", "fas fa-notes-medical", "fas fa-object-group", "fas fa-object-ungroup", "fas fa-oil-can", "fas fa-om", "fas fa-otter", "fas fa-outdent", "fas fa-pager", "fas fa-paint-brush", "fas fa-paint-roller", "fas fa-palette", "fas fa-pallet", "fas fa-paper-plane", "fas fa-paperclip", "fas fa-parachute-box", "fas fa-paragraph", "fas fa-parking", "fas fa-passport", "fas fa-pastafarianism", "fas fa-paste", "fas fa-pause", "fas fa-pause-circle", "fas fa-paw", "fas fa-peace", "fas fa-pen", "fas fa-pen-alt", "fas fa-pen-fancy", "fas fa-pen-nib", "fas fa-pen-square", "fas fa-pencil-alt", "fas fa-pencil-ruler", "fas fa-people-carry", "fas fa-pepper-hot", "fas fa-percent", "fas fa-percentage", "fas fa-person-booth", "fas fa-phone", "fas fa-phone-alt", "fas fa-phone-slash", "fas fa-phone-square", "fas fa-phone-square-alt", "fas fa-phone-volume", "fas fa-photo-video", "fas fa-piggy-bank", "fas fa-pills", "fas fa-pizza-slice", "fas fa-place-of-worship", "fas fa-plane", "fas fa-plane-arrival", "fas fa-plane-departure", "fas fa-play", "fas fa-play-circle", "fas fa-plug", "fas fa-plus", "fas fa-plus-circle", "fas fa-plus-square", "fas fa-podcast", "fas fa-poll", "fas fa-poll-h", "fas fa-poo", "fas fa-poo-storm", "fas fa-poop", "fas fa-portrait", "fas fa-pound-sign", "fas fa-power-off", "fas fa-pray", "fas fa-praying-hands", "fas fa-prescription", "fas fa-prescription-bottle", "fas fa-prescription-bottle-alt", "fas fa-print", "fas fa-procedures", "fas fa-project-diagram", "fas fa-puzzle-piece", "fas fa-qrcode", "fas fa-question", "fas fa-question-circle", "fas fa-quidditch", "fas fa-quote-left", "fas fa-quote-right", "fas fa-quran", "fas fa-radiation", "fas fa-radiation-alt", "fas fa-rainbow", "fas fa-random", "fas fa-receipt", "fas fa-record-vinyl", "fas fa-recycle", "fas fa-redo", "fas fa-redo-alt", "fas fa-registered", "fas fa-remove-format", "fas fa-reply", "fas fa-reply-all", "fas fa-republican", "fas fa-restroom", "fas fa-retweet", "fas fa-ribbon", "fas fa-ring", "fas fa-road", "fas fa-robot", "fas fa-rocket", "fas fa-route", "fas fa-rss", "fas fa-rss-square", "fas fa-ruble-sign", "fas fa-ruler", "fas fa-ruler-combined", "fas fa-ruler-horizontal", "fas fa-ruler-vertical", "fas fa-running", "fas fa-rupee-sign", "fas fa-sad-cry", "fas fa-sad-tear", "fas fa-satellite", "fas fa-satellite-dish", "fas fa-save", "fas fa-school", "fas fa-screwdriver", "fas fa-scroll", "fas fa-sd-card", "fas fa-search", "fas fa-search-dollar", "fas fa-search-location", "fas fa-search-minus", "fas fa-search-plus", "fas fa-seedling", "fas fa-server", "fas fa-shapes", "fas fa-share", "fas fa-share-alt", "fas fa-share-alt-square", "fas fa-share-square", "fas fa-shekel-sign", "fas fa-shield-alt", "fas fa-ship", "fas fa-shipping-fast", "fas fa-shoe-prints", "fas fa-shopping-bag", "fas fa-shopping-basket", "fas fa-shopping-cart", "fas fa-shower", "fas fa-shuttle-van", "fas fa-sign", "fas fa-sign-in-alt", "fas fa-sign-language", "fas fa-sign-out-alt", "fas fa-signal", "fas fa-signature", "fas fa-sim-card", "fas fa-sitemap", "fas fa-skating", "fas fa-skiing", "fas fa-skiing-nordic", "fas fa-skull", "fas fa-skull-crossbones", "fas fa-slash", "fas fa-sleigh", "fas fa-sliders-h", "fas fa-smile", "fas fa-smile-beam", "fas fa-smile-wink", "fas fa-smog", "fas fa-smoking", "fas fa-smoking-ban", "fas fa-sms", "fas fa-snowboarding", "fas fa-snowflake", "fas fa-snowman", "fas fa-snowplow", "fas fa-socks", "fas fa-solar-panel", "fas fa-sort", "fas fa-sort-alpha-down", "fas fa-sort-alpha-down-alt", "fas fa-sort-alpha-up", "fas fa-sort-alpha-up-alt", "fas fa-sort-amount-down", "fas fa-sort-amount-down-alt", "fas fa-sort-amount-up", "fas fa-sort-amount-up-alt", "fas fa-sort-down", "fas fa-sort-numeric-down", "fas fa-sort-numeric-down-alt", "fas fa-sort-numeric-up", "fas fa-sort-numeric-up-alt", "fas fa-sort-up", "fas fa-spa", "fas fa-space-shuttle", "fas fa-spell-check", "fas fa-spider", "fas fa-spinner", "fas fa-splotch", "fas fa-spray-can", "fas fa-square", "fas fa-square-full", "fas fa-square-root-alt", "fas fa-stamp", "fas fa-star", "fas fa-star-and-crescent", "fas fa-star-half", "fas fa-star-half-alt", "fas fa-star-of-david", "fas fa-star-of-life", "fas fa-step-backward", "fas fa-step-forward", "fas fa-stethoscope", "fas fa-sticky-note", "fas fa-stop", "fas fa-stop-circle", "fas fa-stopwatch", "fas fa-store", "fas fa-store-alt", "fas fa-stream", "fas fa-street-view", "fas fa-strikethrough", "fas fa-stroopwafel", "fas fa-subscript", "fas fa-subway", "fas fa-suitcase", "fas fa-suitcase-rolling", "fas fa-sun", "fas fa-superscript", "fas fa-surprise", "fas fa-swatchbook", "fas fa-swimmer", "fas fa-swimming-pool", "fas fa-synagogue", "fas fa-sync", "fas fa-sync-alt", "fas fa-syringe", "fas fa-table", "fas fa-table-tennis", "fas fa-tablet", "fas fa-tablet-alt", "fas fa-tablets", "fas fa-tachometer-alt", "fas fa-tag", "fas fa-tags", "fas fa-tape", "fas fa-tasks", "fas fa-taxi", "fas fa-teeth", "fas fa-teeth-open", "fas fa-temperature-high", "fas fa-temperature-low", "fas fa-tenge", "fas fa-terminal", "fas fa-text-height", "fas fa-text-width", "fas fa-th", "fas fa-th-large", "fas fa-th-list", "fas fa-theater-masks", "fas fa-thermometer", "fas fa-thermometer-empty", "fas fa-thermometer-full", "fas fa-thermometer-half", "fas fa-thermometer-quarter", "fas fa-thermometer-three-quarters", "fas fa-thumbs-down", "fas fa-thumbs-up", "fas fa-thumbtack", "fas fa-ticket-alt", "fas fa-times", "fas fa-times-circle", "fas fa-tint", "fas fa-tint-slash", "fas fa-tired", "fas fa-toggle-off", "fas fa-toggle-on", "fas fa-toilet", "fas fa-toilet-paper", "fas fa-toolbox", "fas fa-tools", "fas fa-tooth", "fas fa-torah", "fas fa-torii-gate", "fas fa-tractor", "fas fa-trademark", "fas fa-traffic-light", "fas fa-trailer", "fas fa-train", "fas fa-tram", "fas fa-transgender", "fas fa-transgender-alt", "fas fa-trash", "fas fa-trash-alt", "fas fa-trash-restore", "fas fa-trash-restore-alt", "fas fa-tree", "fas fa-trophy", "fas fa-truck", "fas fa-truck-loading", "fas fa-truck-monster", "fas fa-truck-moving", "fas fa-truck-pickup", "fas fa-tshirt", "fas fa-tty", "fas fa-tv", "fas fa-umbrella", "fas fa-umbrella-beach", "fas fa-underline", "fas fa-undo", "fas fa-undo-alt", "fas fa-universal-access", "fas fa-university", "fas fa-unlink", "fas fa-unlock", "fas fa-unlock-alt", "fas fa-upload", "fas fa-user", "fas fa-user-alt", "fas fa-user-alt-slash", "fas fa-user-astronaut", "fas fa-user-check", "fas fa-user-circle", "fas fa-user-clock", "fas fa-user-cog", "fas fa-user-edit", "fas fa-user-friends", "fas fa-user-graduate", "fas fa-user-injured", "fas fa-user-lock", "fas fa-user-md", "fas fa-user-minus", "fas fa-user-ninja", "fas fa-user-nurse", "fas fa-user-plus", "fas fa-user-secret", "fas fa-user-shield", "fas fa-user-slash", "fas fa-user-tag", "fas fa-user-tie", "fas fa-user-times", "fas fa-users", "fas fa-users-cog", "fas fa-utensil-spoon", "fas fa-utensils", "fas fa-vector-square", "fas fa-venus", "fas fa-venus-double", "fas fa-venus-mars", "fas fa-vial", "fas fa-vials", "fas fa-video", "fas fa-video-slash", "fas fa-vihara", "fas fa-voicemail", "fas fa-volleyball-ball", "fas fa-volume-down", "fas fa-volume-mute", "fas fa-volume-off", "fas fa-volume-up", "fas fa-vote-yea", "fas fa-vr-cardboard", "fas fa-walking", "fas fa-wallet", "fas fa-warehouse", "fas fa-water", "fas fa-wave-square", "fas fa-weight", "fas fa-weight-hanging", "fas fa-wheelchair", "fas fa-wifi", "fas fa-wind", "fas fa-window-close", "fas fa-window-maximize", "fas fa-window-minimize", "fas fa-window-restore", "fas fa-wine-bottle", "fas fa-wine-glass", "fas fa-wine-glass-alt", "fas fa-won-sign", "fas fa-wrench", "fas fa-x-ray", "fas fa-yen-sign", "fas fa-yin-yang"]
|
14 |
+
},
|
15 |
+
"brands":{
|
16 |
+
"prefix": "fab fa-",
|
17 |
+
"icon-style": "fa-brands",
|
18 |
+
"list-icon":"fab fa-font-awesome-flag",
|
19 |
+
"icons":["fab fa-500px", "fab fa-accessible-icon", "fab fa-accusoft", "fab fa-acquisitions-incorporated", "fab fa-adn", "fab fa-adobe", "fab fa-adversal", "fab fa-affiliatetheme", "fab fa-airbnb", "fab fa-algolia", "fab fa-alipay", "fab fa-amazon", "fab fa-amazon-pay", "fab fa-amilia", "fab fa-android", "fab fa-angellist", "fab fa-angrycreative", "fab fa-angular", "fab fa-app-store", "fab fa-app-store-ios", "fab fa-apper", "fab fa-apple", "fab fa-apple-pay", "fab fa-artstation", "fab fa-asymmetrik", "fab fa-atlassian", "fab fa-audible", "fab fa-autoprefixer", "fab fa-avianex", "fab fa-aviato", "fab fa-aws", "fab fa-bandcamp", "fab fa-battle-net", "fab fa-behance", "fab fa-behance-square", "fab fa-bimobject", "fab fa-bitbucket", "fab fa-bitcoin", "fab fa-bity", "fab fa-black-tie", "fab fa-blackberry", "fab fa-blogger", "fab fa-blogger-b", "fab fa-bluetooth", "fab fa-bluetooth-b", "fab fa-bootstrap", "fab fa-btc", "fab fa-buffer", "fab fa-buromobelexperte", "fab fa-buy-n-large", "fab fa-buysellads", "fab fa-canadian-maple-leaf", "fab fa-cc-amazon-pay", "fab fa-cc-amex", "fab fa-cc-apple-pay", "fab fa-cc-diners-club", "fab fa-cc-discover", "fab fa-cc-jcb", "fab fa-cc-mastercard", "fab fa-cc-paypal", "fab fa-cc-stripe", "fab fa-cc-visa", "fab fa-centercode", "fab fa-centos", "fab fa-chrome", "fab fa-chromecast", "fab fa-cloudscale", "fab fa-cloudsmith", "fab fa-cloudversify", "fab fa-codepen", "fab fa-codiepie", "fab fa-confluence", "fab fa-connectdevelop", "fab fa-contao", "fab fa-cotton-bureau", "fab fa-cpanel", "fab fa-creative-commons", "fab fa-creative-commons-by", "fab fa-creative-commons-nc", "fab fa-creative-commons-nc-eu", "fab fa-creative-commons-nc-jp", "fab fa-creative-commons-nd", "fab fa-creative-commons-pd", "fab fa-creative-commons-pd-alt", "fab fa-creative-commons-remix", "fab fa-creative-commons-sa", "fab fa-creative-commons-sampling", "fab fa-creative-commons-sampling-plus", "fab fa-creative-commons-share", "fab fa-creative-commons-zero", "fab fa-critical-role", "fab fa-css3", "fab fa-css3-alt", "fab fa-cuttlefish", "fab fa-d-and-d", "fab fa-d-and-d-beyond", "fab fa-dashcube", "fab fa-delicious", "fab fa-deploydog", "fab fa-deskpro", "fab fa-dev", "fab fa-deviantart", "fab fa-dhl", "fab fa-diaspora", "fab fa-digg", "fab fa-digital-ocean", "fab fa-discord", "fab fa-discourse", "fab fa-dochub", "fab fa-docker", "fab fa-draft2digital", "fab fa-dribbble", "fab fa-dribbble-square", "fab fa-dropbox", "fab fa-drupal", "fab fa-dyalog", "fab fa-earlybirds", "fab fa-ebay", "fab fa-edge", "fab fa-elementor", "fab fa-ello", "fab fa-ember", "fab fa-empire", "fab fa-envira", "fab fa-erlang", "fab fa-ethereum", "fab fa-etsy", "fab fa-evernote", "fab fa-expeditedssl", "fab fa-facebook", "fab fa-facebook-f", "fab fa-facebook-messenger", "fab fa-facebook-square", "fab fa-fantasy-flight-games", "fab fa-fedex", "fab fa-fedora", "fab fa-figma", "fab fa-firefox", "fab fa-firefox-browser", "fab fa-first-order", "fab fa-first-order-alt", "fab fa-firstdraft", "fab fa-flickr", "fab fa-flipboard", "fab fa-fly", "fab fa-font-awesome", "fab fa-font-awesome-alt", "fab fa-font-awesome-flag", "fab fa-fonticons", "fab fa-fonticons-fi", "fab fa-fort-awesome", "fab fa-fort-awesome-alt", "fab fa-forumbee", "fab fa-foursquare", "fab fa-free-code-camp", "fab fa-freebsd", "fab fa-fulcrum", "fab fa-galactic-republic", "fab fa-galactic-senate", "fab fa-get-pocket", "fab fa-gg", "fab fa-gg-circle", "fab fa-git", "fab fa-git-alt", "fab fa-git-square", "fab fa-github", "fab fa-github-alt", "fab fa-github-square", "fab fa-gitkraken", "fab fa-gitlab", "fab fa-gitter", "fab fa-glide", "fab fa-glide-g", "fab fa-gofore", "fab fa-goodreads", "fab fa-goodreads-g", "fab fa-google", "fab fa-google-drive", "fab fa-google-play", "fab fa-google-plus", "fab fa-google-plus-g", "fab fa-google-plus-square", "fab fa-google-wallet", "fab fa-gratipay", "fab fa-grav", "fab fa-gripfire", "fab fa-grunt", "fab fa-gulp", "fab fa-hacker-news", "fab fa-hacker-news-square", "fab fa-hackerrank", "fab fa-hips", "fab fa-hire-a-helper", "fab fa-hooli", "fab fa-hornbill", "fab fa-hotjar", "fab fa-houzz", "fab fa-html5", "fab fa-hubspot", "fab fa-ideal", "fab fa-imdb", "fab fa-instagram", "fab fa-intercom", "fab fa-internet-explorer", "fab fa-invision", "fab fa-ioxhost", "fab fa-itch-io", "fab fa-itunes", "fab fa-itunes-note", "fab fa-java", "fab fa-jedi-order", "fab fa-jenkins", "fab fa-jira", "fab fa-joget", "fab fa-joomla", "fab fa-js", "fab fa-js-square", "fab fa-jsfiddle", "fab fa-kaggle", "fab fa-keybase", "fab fa-keycdn", "fab fa-kickstarter", "fab fa-kickstarter-k", "fab fa-korvue", "fab fa-laravel", "fab fa-lastfm", "fab fa-lastfm-square", "fab fa-leanpub", "fab fa-less", "fab fa-line", "fab fa-linkedin", "fab fa-linkedin-in", "fab fa-linode", "fab fa-linux", "fab fa-lyft", "fab fa-magento", "fab fa-mailchimp", "fab fa-mandalorian", "fab fa-markdown", "fab fa-mastodon", "fab fa-maxcdn", "fab fa-mdb", "fab fa-medapps", "fab fa-medium", "fab fa-medium-m", "fab fa-medrt", "fab fa-meetup", "fab fa-megaport", "fab fa-mendeley", "fab fa-microblog", "fab fa-microsoft", "fab fa-mix", "fab fa-mixcloud", "fab fa-mizuni", "fab fa-modx", "fab fa-monero", "fab fa-napster", "fab fa-neos", "fab fa-nimblr", "fab fa-node", "fab fa-node-js", "fab fa-npm", "fab fa-ns8", "fab fa-nutritionix", "fab fa-odnoklassniki", "fab fa-odnoklassniki-square", "fab fa-old-republic", "fab fa-opencart", "fab fa-openid", "fab fa-opera", "fab fa-optin-monster", "fab fa-orcid", "fab fa-osi", "fab fa-page4", "fab fa-pagelines", "fab fa-palfed", "fab fa-patreon", "fab fa-paypal", "fab fa-penny-arcade", "fab fa-periscope", "fab fa-phabricator", "fab fa-phoenix-framework", "fab fa-phoenix-squadron", "fab fa-php", "fab fa-pied-piper", "fab fa-pied-piper-alt", "fab fa-pied-piper-hat", "fab fa-pied-piper-pp", "fab fa-pied-piper-square", "fab fa-pinterest", "fab fa-pinterest-p", "fab fa-pinterest-square", "fab fa-playstation", "fab fa-product-hunt", "fab fa-pushed", "fab fa-python", "fab fa-qq", "fab fa-quinscape", "fab fa-quora", "fab fa-r-project", "fab fa-raspberry-pi", "fab fa-ravelry", "fab fa-react", "fab fa-reacteurope", "fab fa-readme", "fab fa-rebel", "fab fa-red-river", "fab fa-reddit", "fab fa-reddit-alien", "fab fa-reddit-square", "fab fa-redhat", "fab fa-renren", "fab fa-replyd", "fab fa-researchgate", "fab fa-resolving", "fab fa-rev", "fab fa-rocketchat", "fab fa-rockrms", "fab fa-safari", "fab fa-salesforce", "fab fa-sass", "fab fa-schlix", "fab fa-scribd", "fab fa-searchengin", "fab fa-sellcast", "fab fa-sellsy", "fab fa-servicestack", "fab fa-shirtsinbulk", "fab fa-shopware", "fab fa-simplybuilt", "fab fa-sistrix", "fab fa-sith", "fab fa-sketch", "fab fa-skyatlas", "fab fa-skype", "fab fa-slack", "fab fa-slack-hash", "fab fa-slideshare", "fab fa-snapchat", "fab fa-snapchat-ghost", "fab fa-snapchat-square", "fab fa-soundcloud", "fab fa-sourcetree", "fab fa-speakap", "fab fa-speaker-deck", "fab fa-spotify", "fab fa-squarespace", "fab fa-stack-exchange", "fab fa-stack-overflow", "fab fa-stackpath", "fab fa-staylinked", "fab fa-steam", "fab fa-steam-square", "fab fa-steam-symbol", "fab fa-sticker-mule", "fab fa-strava", "fab fa-stripe", "fab fa-stripe-s", "fab fa-studiovinari", "fab fa-stumbleupon", "fab fa-stumbleupon-circle", "fab fa-superpowers", "fab fa-supple", "fab fa-suse", "fab fa-swift", "fab fa-symfony", "fab fa-teamspeak", "fab fa-telegram", "fab fa-telegram-plane", "fab fa-tencent-weibo", "fab fa-the-red-yeti", "fab fa-themeco", "fab fa-themeisle", "fab fa-think-peaks", "fab fa-trade-federation", "fab fa-trello", "fab fa-tripadvisor", "fab fa-tumblr", "fab fa-tumblr-square", "fab fa-twitch", "fab fa-twitter", "fab fa-twitter-square", "fab fa-typo3", "fab fa-uber", "fab fa-ubuntu", "fab fa-uikit", "fab fa-umbraco", "fab fa-uniregistry", "fab fa-unity", "fab fa-untappd", "fab fa-ups", "fab fa-usb", "fab fa-usps", "fab fa-ussunnah", "fab fa-vaadin", "fab fa-viacoin", "fab fa-viadeo", "fab fa-viadeo-square", "fab fa-viber", "fab fa-vimeo", "fab fa-vimeo-square", "fab fa-vimeo-v", "fab fa-vine", "fab fa-vk", "fab fa-vnv", "fab fa-vuejs", "fab fa-waze", "fab fa-weebly", "fab fa-weibo", "fab fa-weixin", "fab fa-whatsapp", "fab fa-whatsapp-square", "fab fa-whmcs", "fab fa-wikipedia-w", "fab fa-windows", "fab fa-wix", "fab fa-wizards-of-the-coast", "fab fa-wolf-pack-battalion", "fab fa-wordpress", "fab fa-wordpress-simple", "fab fa-wpbeginner", "fab fa-wpexplorer", "fab fa-wpforms", "fab fa-wpressr", "fab fa-xbox", "fab fa-xing", "fab fa-xing-square", "fab fa-y-combinator", "fab fa-yahoo", "fab fa-yammer", "fab fa-yandex", "fab fa-yandex-international", "fab fa-yarn", "fab fa-yelp", "fab fa-yoast", "fab fa-youtube", "fab fa-youtube-square", "fab fa-zhihu"]
|
20 |
+
}
|
21 |
+
}
|
22 |
+
}
|
assets/vendor/aesthetic-icon-picker/icons/font-awesome.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
return{"font-awesome":{regular:{prefix:"far fa-","icon-style":"fa-regular","list-icon":"fab fa-font-awesome-alt",icons:["far fa-address-book","far fa-address-card","far fa-angry","far fa-arrow-alt-circle-down","far fa-arrow-alt-circle-left","far fa-arrow-alt-circle-right","far fa-arrow-alt-circle-up","far fa-bell","far fa-bell-slash","far fa-bookmark","far fa-building","far fa-calendar","far fa-calendar-alt","far fa-calendar-check","far fa-calendar-minus","far fa-calendar-plus","far fa-calendar-times","far fa-caret-square-down","far fa-caret-square-left","far fa-caret-square-right","far fa-caret-square-up","far fa-chart-bar","far fa-check-circle","far fa-check-square","far fa-circle","far fa-clipboard","far fa-clock","far fa-clone","far fa-closed-captioning","far fa-comment","far fa-comment-alt","far fa-comment-dots","far fa-comments","far fa-compass","far fa-copy","far fa-copyright","far fa-credit-card","far fa-dizzy","far fa-dot-circle","far fa-edit","far fa-envelope","far fa-envelope-open","far fa-eye","far fa-eye-slash","far fa-file","far fa-file-alt","far fa-file-archive","far fa-file-audio","far fa-file-code","far fa-file-excel","far fa-file-image","far fa-file-pdf","far fa-file-powerpoint","far fa-file-video","far fa-file-word","far fa-flag","far fa-flushed","far fa-folder","far fa-folder-open","far fa-frown","far fa-frown-open","far fa-futbol","far fa-gem","far fa-grimace","far fa-grin","far fa-grin-alt","far fa-grin-beam","far fa-grin-beam-sweat","far fa-grin-hearts","far fa-grin-squint","far fa-grin-squint-tears","far fa-grin-stars","far fa-grin-tears","far fa-grin-tongue","far fa-grin-tongue-squint","far fa-grin-tongue-wink","far fa-grin-wink","far fa-hand-lizard","far fa-hand-paper","far fa-hand-peace","far fa-hand-point-down","far fa-hand-point-left","far fa-hand-point-right","far fa-hand-point-up","far fa-hand-pointer","far fa-hand-rock","far fa-hand-scissors","far fa-hand-spock","far fa-handshake","far fa-hdd","far fa-heart","far fa-hospital","far fa-hourglass","far fa-id-badge","far fa-id-card","far fa-image","far fa-images","far fa-keyboard","far fa-kiss","far fa-kiss-beam","far fa-kiss-wink-heart","far fa-laugh","far fa-laugh-beam","far fa-laugh-squint","far fa-laugh-wink","far fa-lemon","far fa-life-ring","far fa-lightbulb","far fa-list-alt","far fa-map","far fa-meh","far fa-meh-blank","far fa-meh-rolling-eyes","far fa-minus-square","far fa-money-bill-alt","far fa-moon","far fa-newspaper","far fa-object-group","far fa-object-ungroup","far fa-paper-plane","far fa-pause-circle","far fa-play-circle","far fa-plus-square","far fa-question-circle","far fa-registered","far fa-sad-cry","far fa-sad-tear","far fa-save","far fa-share-square","far fa-smile","far fa-smile-beam","far fa-smile-wink","far fa-snowflake","far fa-square","far fa-star","far fa-star-half","far fa-sticky-note","far fa-stop-circle","far fa-sun","far fa-surprise","far fa-thumbs-down","far fa-thumbs-up","far fa-times-circle","far fa-tired","far fa-trash-alt","far fa-user","far fa-user-circle","far fa-window-close","far fa-window-maximize","far fa-window-minimize","far fa-window-restore"]},solid:{prefix:"fas fa-","icon-style":"fa-solid","list-icon":"fab fa-font-awesome",icons:["fas fa-ad","fas fa-address-book","fas fa-address-card","fas fa-adjust","fas fa-air-freshener","fas fa-align-center","fas fa-align-justify","fas fa-align-left","fas fa-align-right","fas fa-allergies","fas fa-ambulance","fas fa-american-sign-language-interpreting","fas fa-anchor","fas fa-angle-double-down","fas fa-angle-double-left","fas fa-angle-double-right","fas fa-angle-double-up","fas fa-angle-down","fas fa-angle-left","fas fa-angle-right","fas fa-angle-up","fas fa-angry","fas fa-ankh","fas fa-apple-alt","fas fa-archive","fas fa-archway","fas fa-arrow-alt-circle-down","fas fa-arrow-alt-circle-left","fas fa-arrow-alt-circle-right","fas fa-arrow-alt-circle-up","fas fa-arrow-circle-down","fas fa-arrow-circle-left","fas fa-arrow-circle-right","fas fa-arrow-circle-up","fas fa-arrow-down","fas fa-arrow-left","fas fa-arrow-right","fas fa-arrow-up","fas fa-arrows-alt","fas fa-arrows-alt-h","fas fa-arrows-alt-v","fas fa-assistive-listening-systems","fas fa-asterisk","fas fa-at","fas fa-atlas","fas fa-atom","fas fa-audio-description","fas fa-award","fas fa-baby","fas fa-baby-carriage","fas fa-backspace","fas fa-backward","fas fa-bacon","fas fa-bahai","fas fa-balance-scale","fas fa-balance-scale-left","fas fa-balance-scale-right","fas fa-ban","fas fa-band-aid","fas fa-barcode","fas fa-bars","fas fa-baseball-ball","fas fa-basketball-ball","fas fa-bath","fas fa-battery-empty","fas fa-battery-full","fas fa-battery-half","fas fa-battery-quarter","fas fa-battery-three-quarters","fas fa-bed","fas fa-beer","fas fa-bell","fas fa-bell-slash","fas fa-bezier-curve","fas fa-bible","fas fa-bicycle","fas fa-biking","fas fa-binoculars","fas fa-biohazard","fas fa-birthday-cake","fas fa-blender","fas fa-blender-phone","fas fa-blind","fas fa-blog","fas fa-bold","fas fa-bolt","fas fa-bomb","fas fa-bone","fas fa-bong","fas fa-book","fas fa-book-dead","fas fa-book-medical","fas fa-book-open","fas fa-book-reader","fas fa-bookmark","fas fa-border-all","fas fa-border-none","fas fa-border-style","fas fa-bowling-ball","fas fa-box","fas fa-box-open","fas fa-boxes","fas fa-braille","fas fa-brain","fas fa-bread-slice","fas fa-briefcase","fas fa-briefcase-medical","fas fa-broadcast-tower","fas fa-broom","fas fa-brush","fas fa-bug","fas fa-building","fas fa-bullhorn","fas fa-bullseye","fas fa-burn","fas fa-bus","fas fa-bus-alt","fas fa-business-time","fas fa-calculator","fas fa-calendar","fas fa-calendar-alt","fas fa-calendar-check","fas fa-calendar-day","fas fa-calendar-minus","fas fa-calendar-plus","fas fa-calendar-times","fas fa-calendar-week","fas fa-camera","fas fa-camera-retro","fas fa-campground","fas fa-candy-cane","fas fa-cannabis","fas fa-capsules","fas fa-car","fas fa-car-alt","fas fa-car-battery","fas fa-car-crash","fas fa-car-side","fas fa-caravan","fas fa-caret-down","fas fa-caret-left","fas fa-caret-right","fas fa-caret-square-down","fas fa-caret-square-left","fas fa-caret-square-right","fas fa-caret-square-up","fas fa-caret-up","fas fa-carrot","fas fa-cart-arrow-down","fas fa-cart-plus","fas fa-cash-register","fas fa-cat","fas fa-certificate","fas fa-chair","fas fa-chalkboard","fas fa-chalkboard-teacher","fas fa-charging-station","fas fa-chart-area","fas fa-chart-bar","fas fa-chart-line","fas fa-chart-pie","fas fa-check","fas fa-check-circle","fas fa-check-double","fas fa-check-square","fas fa-cheese","fas fa-chess","fas fa-chess-bishop","fas fa-chess-board","fas fa-chess-king","fas fa-chess-knight","fas fa-chess-pawn","fas fa-chess-queen","fas fa-chess-rook","fas fa-chevron-circle-down","fas fa-chevron-circle-left","fas fa-chevron-circle-right","fas fa-chevron-circle-up","fas fa-chevron-down","fas fa-chevron-left","fas fa-chevron-right","fas fa-chevron-up","fas fa-child","fas fa-church","fas fa-circle","fas fa-circle-notch","fas fa-city","fas fa-clinic-medical","fas fa-clipboard","fas fa-clipboard-check","fas fa-clipboard-list","fas fa-clock","fas fa-clone","fas fa-closed-captioning","fas fa-cloud","fas fa-cloud-download-alt","fas fa-cloud-meatball","fas fa-cloud-moon","fas fa-cloud-moon-rain","fas fa-cloud-rain","fas fa-cloud-showers-heavy","fas fa-cloud-sun","fas fa-cloud-sun-rain","fas fa-cloud-upload-alt","fas fa-cocktail","fas fa-code","fas fa-code-branch","fas fa-coffee","fas fa-cog","fas fa-cogs","fas fa-coins","fas fa-columns","fas fa-comment","fas fa-comment-alt","fas fa-comment-dollar","fas fa-comment-dots","fas fa-comment-medical","fas fa-comment-slash","fas fa-comments","fas fa-comments-dollar","fas fa-compact-disc","fas fa-compass","fas fa-compress","fas fa-compress-alt","fas fa-compress-arrows-alt","fas fa-concierge-bell","fas fa-cookie","fas fa-cookie-bite","fas fa-copy","fas fa-copyright","fas fa-couch","fas fa-credit-card","fas fa-crop","fas fa-crop-alt","fas fa-cross","fas fa-crosshairs","fas fa-crow","fas fa-crown","fas fa-crutch","fas fa-cube","fas fa-cubes","fas fa-cut","fas fa-database","fas fa-deaf","fas fa-democrat","fas fa-desktop","fas fa-dharmachakra","fas fa-diagnoses","fas fa-dice","fas fa-dice-d20","fas fa-dice-d6","fas fa-dice-five","fas fa-dice-four","fas fa-dice-one","fas fa-dice-six","fas fa-dice-three","fas fa-dice-two","fas fa-digital-tachograph","fas fa-directions","fas fa-divide","fas fa-dizzy","fas fa-dna","fas fa-dog","fas fa-dollar-sign","fas fa-dolly","fas fa-dolly-flatbed","fas fa-donate","fas fa-door-closed","fas fa-door-open","fas fa-dot-circle","fas fa-dove","fas fa-download","fas fa-drafting-compass","fas fa-dragon","fas fa-draw-polygon","fas fa-drum","fas fa-drum-steelpan","fas fa-drumstick-bite","fas fa-dumbbell","fas fa-dumpster","fas fa-dumpster-fire","fas fa-dungeon","fas fa-edit","fas fa-egg","fas fa-eject","fas fa-ellipsis-h","fas fa-ellipsis-v","fas fa-envelope","fas fa-envelope-open","fas fa-envelope-open-text","fas fa-envelope-square","fas fa-equals","fas fa-eraser","fas fa-ethernet","fas fa-euro-sign","fas fa-exchange-alt","fas fa-exclamation","fas fa-exclamation-circle","fas fa-exclamation-triangle","fas fa-expand","fas fa-expand-alt","fas fa-expand-arrows-alt","fas fa-external-link-alt","fas fa-external-link-square-alt","fas fa-eye","fas fa-eye-dropper","fas fa-eye-slash","fas fa-fan","fas fa-fast-backward","fas fa-fast-forward","fas fa-fax","fas fa-feather","fas fa-feather-alt","fas fa-female","fas fa-fighter-jet","fas fa-file","fas fa-file-alt","fas fa-file-archive","fas fa-file-audio","fas fa-file-code","fas fa-file-contract","fas fa-file-csv","fas fa-file-download","fas fa-file-excel","fas fa-file-export","fas fa-file-image","fas fa-file-import","fas fa-file-invoice","fas fa-file-invoice-dollar","fas fa-file-medical","fas fa-file-medical-alt","fas fa-file-pdf","fas fa-file-powerpoint","fas fa-file-prescription","fas fa-file-signature","fas fa-file-upload","fas fa-file-video","fas fa-file-word","fas fa-fill","fas fa-fill-drip","fas fa-film","fas fa-filter","fas fa-fingerprint","fas fa-fire","fas fa-fire-alt","fas fa-fire-extinguisher","fas fa-first-aid","fas fa-fish","fas fa-fist-raised","fas fa-flag","fas fa-flag-checkered","fas fa-flag-usa","fas fa-flask","fas fa-flushed","fas fa-folder","fas fa-folder-minus","fas fa-folder-open","fas fa-folder-plus","fas fa-font","fas fa-football-ball","fas fa-forward","fas fa-frog","fas fa-frown","fas fa-frown-open","fas fa-funnel-dollar","fas fa-futbol","fas fa-gamepad","fas fa-gas-pump","fas fa-gavel","fas fa-gem","fas fa-genderless","fas fa-ghost","fas fa-gift","fas fa-gifts","fas fa-glass-cheers","fas fa-glass-martini","fas fa-glass-martini-alt","fas fa-glass-whiskey","fas fa-glasses","fas fa-globe","fas fa-globe-africa","fas fa-globe-americas","fas fa-globe-asia","fas fa-globe-europe","fas fa-golf-ball","fas fa-gopuram","fas fa-graduation-cap","fas fa-greater-than","fas fa-greater-than-equal","fas fa-grimace","fas fa-grin","fas fa-grin-alt","fas fa-grin-beam","fas fa-grin-beam-sweat","fas fa-grin-hearts","fas fa-grin-squint","fas fa-grin-squint-tears","fas fa-grin-stars","fas fa-grin-tears","fas fa-grin-tongue","fas fa-grin-tongue-squint","fas fa-grin-tongue-wink","fas fa-grin-wink","fas fa-grip-horizontal","fas fa-grip-lines","fas fa-grip-lines-vertical","fas fa-grip-vertical","fas fa-guitar","fas fa-h-square","fas fa-hamburger","fas fa-hammer","fas fa-hamsa","fas fa-hand-holding","fas fa-hand-holding-heart","fas fa-hand-holding-usd","fas fa-hand-lizard","fas fa-hand-middle-finger","fas fa-hand-paper","fas fa-hand-peace","fas fa-hand-point-down","fas fa-hand-point-left","fas fa-hand-point-right","fas fa-hand-point-up","fas fa-hand-pointer","fas fa-hand-rock","fas fa-hand-scissors","fas fa-hand-spock","fas fa-hands","fas fa-hands-helping","fas fa-handshake","fas fa-hanukiah","fas fa-hard-hat","fas fa-hashtag","fas fa-hat-cowboy","fas fa-hat-cowboy-side","fas fa-hat-wizard","fas fa-hdd","fas fa-heading","fas fa-headphones","fas fa-headphones-alt","fas fa-headset","fas fa-heart","fas fa-heart-broken","fas fa-heartbeat","fas fa-helicopter","fas fa-highlighter","fas fa-hiking","fas fa-hippo","fas fa-history","fas fa-hockey-puck","fas fa-holly-berry","fas fa-home","fas fa-horse","fas fa-horse-head","fas fa-hospital","fas fa-hospital-alt","fas fa-hospital-symbol","fas fa-hot-tub","fas fa-hotdog","fas fa-hotel","fas fa-hourglass","fas fa-hourglass-end","fas fa-hourglass-half","fas fa-hourglass-start","fas fa-house-damage","fas fa-hryvnia","fas fa-i-cursor","fas fa-ice-cream","fas fa-icicles","fas fa-icons","fas fa-id-badge","fas fa-id-card","fas fa-id-card-alt","fas fa-igloo","fas fa-image","fas fa-images","fas fa-inbox","fas fa-indent","fas fa-industry","fas fa-infinity","fas fa-info","fas fa-info-circle","fas fa-italic","fas fa-jedi","fas fa-joint","fas fa-journal-whills","fas fa-kaaba","fas fa-key","fas fa-keyboard","fas fa-khanda","fas fa-kiss","fas fa-kiss-beam","fas fa-kiss-wink-heart","fas fa-kiwi-bird","fas fa-landmark","fas fa-language","fas fa-laptop","fas fa-laptop-code","fas fa-laptop-medical","fas fa-laugh","fas fa-laugh-beam","fas fa-laugh-squint","fas fa-laugh-wink","fas fa-layer-group","fas fa-leaf","fas fa-lemon","fas fa-less-than","fas fa-less-than-equal","fas fa-level-down-alt","fas fa-level-up-alt","fas fa-life-ring","fas fa-lightbulb","fas fa-link","fas fa-lira-sign","fas fa-list","fas fa-list-alt","fas fa-list-ol","fas fa-list-ul","fas fa-location-arrow","fas fa-lock","fas fa-lock-open","fas fa-long-arrow-alt-down","fas fa-long-arrow-alt-left","fas fa-long-arrow-alt-right","fas fa-long-arrow-alt-up","fas fa-low-vision","fas fa-luggage-cart","fas fa-magic","fas fa-magnet","fas fa-mail-bulk","fas fa-male","fas fa-map","fas fa-map-marked","fas fa-map-marked-alt","fas fa-map-marker","fas fa-map-marker-alt","fas fa-map-pin","fas fa-map-signs","fas fa-marker","fas fa-mars","fas fa-mars-double","fas fa-mars-stroke","fas fa-mars-stroke-h","fas fa-mars-stroke-v","fas fa-mask","fas fa-medal","fas fa-medkit","fas fa-meh","fas fa-meh-blank","fas fa-meh-rolling-eyes","fas fa-memory","fas fa-menorah","fas fa-mercury","fas fa-meteor","fas fa-microchip","fas fa-microphone","fas fa-microphone-alt","fas fa-microphone-alt-slash","fas fa-microphone-slash","fas fa-microscope","fas fa-minus","fas fa-minus-circle","fas fa-minus-square","fas fa-mitten","fas fa-mobile","fas fa-mobile-alt","fas fa-money-bill","fas fa-money-bill-alt","fas fa-money-bill-wave","fas fa-money-bill-wave-alt","fas fa-money-check","fas fa-money-check-alt","fas fa-monument","fas fa-moon","fas fa-mortar-pestle","fas fa-mosque","fas fa-motorcycle","fas fa-mountain","fas fa-mouse","fas fa-mouse-pointer","fas fa-mug-hot","fas fa-music","fas fa-network-wired","fas fa-neuter","fas fa-newspaper","fas fa-not-equal","fas fa-notes-medical","fas fa-object-group","fas fa-object-ungroup","fas fa-oil-can","fas fa-om","fas fa-otter","fas fa-outdent","fas fa-pager","fas fa-paint-brush","fas fa-paint-roller","fas fa-palette","fas fa-pallet","fas fa-paper-plane","fas fa-paperclip","fas fa-parachute-box","fas fa-paragraph","fas fa-parking","fas fa-passport","fas fa-pastafarianism","fas fa-paste","fas fa-pause","fas fa-pause-circle","fas fa-paw","fas fa-peace","fas fa-pen","fas fa-pen-alt","fas fa-pen-fancy","fas fa-pen-nib","fas fa-pen-square","fas fa-pencil-alt","fas fa-pencil-ruler","fas fa-people-carry","fas fa-pepper-hot","fas fa-percent","fas fa-percentage","fas fa-person-booth","fas fa-phone","fas fa-phone-alt","fas fa-phone-slash","fas fa-phone-square","fas fa-phone-square-alt","fas fa-phone-volume","fas fa-photo-video","fas fa-piggy-bank","fas fa-pills","fas fa-pizza-slice","fas fa-place-of-worship","fas fa-plane","fas fa-plane-arrival","fas fa-plane-departure","fas fa-play","fas fa-play-circle","fas fa-plug","fas fa-plus","fas fa-plus-circle","fas fa-plus-square","fas fa-podcast","fas fa-poll","fas fa-poll-h","fas fa-poo","fas fa-poo-storm","fas fa-poop","fas fa-portrait","fas fa-pound-sign","fas fa-power-off","fas fa-pray","fas fa-praying-hands","fas fa-prescription","fas fa-prescription-bottle","fas fa-prescription-bottle-alt","fas fa-print","fas fa-procedures","fas fa-project-diagram","fas fa-puzzle-piece","fas fa-qrcode","fas fa-question","fas fa-question-circle","fas fa-quidditch","fas fa-quote-left","fas fa-quote-right","fas fa-quran","fas fa-radiation","fas fa-radiation-alt","fas fa-rainbow","fas fa-random","fas fa-receipt","fas fa-record-vinyl","fas fa-recycle","fas fa-redo","fas fa-redo-alt","fas fa-registered","fas fa-remove-format","fas fa-reply","fas fa-reply-all","fas fa-republican","fas fa-restroom","fas fa-retweet","fas fa-ribbon","fas fa-ring","fas fa-road","fas fa-robot","fas fa-rocket","fas fa-route","fas fa-rss","fas fa-rss-square","fas fa-ruble-sign","fas fa-ruler","fas fa-ruler-combined","fas fa-ruler-horizontal","fas fa-ruler-vertical","fas fa-running","fas fa-rupee-sign","fas fa-sad-cry","fas fa-sad-tear","fas fa-satellite","fas fa-satellite-dish","fas fa-save","fas fa-school","fas fa-screwdriver","fas fa-scroll","fas fa-sd-card","fas fa-search","fas fa-search-dollar","fas fa-search-location","fas fa-search-minus","fas fa-search-plus","fas fa-seedling","fas fa-server","fas fa-shapes","fas fa-share","fas fa-share-alt","fas fa-share-alt-square","fas fa-share-square","fas fa-shekel-sign","fas fa-shield-alt","fas fa-ship","fas fa-shipping-fast","fas fa-shoe-prints","fas fa-shopping-bag","fas fa-shopping-basket","fas fa-shopping-cart","fas fa-shower","fas fa-shuttle-van","fas fa-sign","fas fa-sign-in-alt","fas fa-sign-language","fas fa-sign-out-alt","fas fa-signal","fas fa-signature","fas fa-sim-card","fas fa-sitemap","fas fa-skating","fas fa-skiing","fas fa-skiing-nordic","fas fa-skull","fas fa-skull-crossbones","fas fa-slash","fas fa-sleigh","fas fa-sliders-h","fas fa-smile","fas fa-smile-beam","fas fa-smile-wink","fas fa-smog","fas fa-smoking","fas fa-smoking-ban","fas fa-sms","fas fa-snowboarding","fas fa-snowflake","fas fa-snowman","fas fa-snowplow","fas fa-socks","fas fa-solar-panel","fas fa-sort","fas fa-sort-alpha-down","fas fa-sort-alpha-down-alt","fas fa-sort-alpha-up","fas fa-sort-alpha-up-alt","fas fa-sort-amount-down","fas fa-sort-amount-down-alt","fas fa-sort-amount-up","fas fa-sort-amount-up-alt","fas fa-sort-down","fas fa-sort-numeric-down","fas fa-sort-numeric-down-alt","fas fa-sort-numeric-up","fas fa-sort-numeric-up-alt","fas fa-sort-up","fas fa-spa","fas fa-space-shuttle","fas fa-spell-check","fas fa-spider","fas fa-spinner","fas fa-splotch","fas fa-spray-can","fas fa-square","fas fa-square-full","fas fa-square-root-alt","fas fa-stamp","fas fa-star","fas fa-star-and-crescent","fas fa-star-half","fas fa-star-half-alt","fas fa-star-of-david","fas fa-star-of-life","fas fa-step-backward","fas fa-step-forward","fas fa-stethoscope","fas fa-sticky-note","fas fa-stop","fas fa-stop-circle","fas fa-stopwatch","fas fa-store","fas fa-store-alt","fas fa-stream","fas fa-street-view","fas fa-strikethrough","fas fa-stroopwafel","fas fa-subscript","fas fa-subway","fas fa-suitcase","fas fa-suitcase-rolling","fas fa-sun","fas fa-superscript","fas fa-surprise","fas fa-swatchbook","fas fa-swimmer","fas fa-swimming-pool","fas fa-synagogue","fas fa-sync","fas fa-sync-alt","fas fa-syringe","fas fa-table","fas fa-table-tennis","fas fa-tablet","fas fa-tablet-alt","fas fa-tablets","fas fa-tachometer-alt","fas fa-tag","fas fa-tags","fas fa-tape","fas fa-tasks","fas fa-taxi","fas fa-teeth","fas fa-teeth-open","fas fa-temperature-high","fas fa-temperature-low","fas fa-tenge","fas fa-terminal","fas fa-text-height","fas fa-text-width","fas fa-th","fas fa-th-large","fas fa-th-list","fas fa-theater-masks","fas fa-thermometer","fas fa-thermometer-empty","fas fa-thermometer-full","fas fa-thermometer-half","fas fa-thermometer-quarter","fas fa-thermometer-three-quarters","fas fa-thumbs-down","fas fa-thumbs-up","fas fa-thumbtack","fas fa-ticket-alt","fas fa-times","fas fa-times-circle","fas fa-tint","fas fa-tint-slash","fas fa-tired","fas fa-toggle-off","fas fa-toggle-on","fas fa-toilet","fas fa-toilet-paper","fas fa-toolbox","fas fa-tools","fas fa-tooth","fas fa-torah","fas fa-torii-gate","fas fa-tractor","fas fa-trademark","fas fa-traffic-light","fas fa-trailer","fas fa-train","fas fa-tram","fas fa-transgender","fas fa-transgender-alt","fas fa-trash","fas fa-trash-alt","fas fa-trash-restore","fas fa-trash-restore-alt","fas fa-tree","fas fa-trophy","fas fa-truck","fas fa-truck-loading","fas fa-truck-monster","fas fa-truck-moving","fas fa-truck-pickup","fas fa-tshirt","fas fa-tty","fas fa-tv","fas fa-umbrella","fas fa-umbrella-beach","fas fa-underline","fas fa-undo","fas fa-undo-alt","fas fa-universal-access","fas fa-university","fas fa-unlink","fas fa-unlock","fas fa-unlock-alt","fas fa-upload","fas fa-user","fas fa-user-alt","fas fa-user-alt-slash","fas fa-user-astronaut","fas fa-user-check","fas fa-user-circle","fas fa-user-clock","fas fa-user-cog","fas fa-user-edit","fas fa-user-friends","fas fa-user-graduate","fas fa-user-injured","fas fa-user-lock","fas fa-user-md","fas fa-user-minus","fas fa-user-ninja","fas fa-user-nurse","fas fa-user-plus","fas fa-user-secret","fas fa-user-shield","fas fa-user-slash","fas fa-user-tag","fas fa-user-tie","fas fa-user-times","fas fa-users","fas fa-users-cog","fas fa-utensil-spoon","fas fa-utensils","fas fa-vector-square","fas fa-venus","fas fa-venus-double","fas fa-venus-mars","fas fa-vial","fas fa-vials","fas fa-video","fas fa-video-slash","fas fa-vihara","fas fa-voicemail","fas fa-volleyball-ball","fas fa-volume-down","fas fa-volume-mute","fas fa-volume-off","fas fa-volume-up","fas fa-vote-yea","fas fa-vr-cardboard","fas fa-walking","fas fa-wallet","fas fa-warehouse","fas fa-water","fas fa-wave-square","fas fa-weight","fas fa-weight-hanging","fas fa-wheelchair","fas fa-wifi","fas fa-wind","fas fa-window-close","fas fa-window-maximize","fas fa-window-minimize","fas fa-window-restore","fas fa-wine-bottle","fas fa-wine-glass","fas fa-wine-glass-alt","fas fa-won-sign","fas fa-wrench","fas fa-x-ray","fas fa-yen-sign","fas fa-yin-yang"]},brands:{prefix:"fab fa-","icon-style":"fa-brands","list-icon":"fab fa-font-awesome-flag",icons:["fab fa-500px","fab fa-accessible-icon","fab fa-accusoft","fab fa-acquisitions-incorporated","fab fa-adn","fab fa-adobe","fab fa-adversal","fab fa-affiliatetheme","fab fa-airbnb","fab fa-algolia","fab fa-alipay","fab fa-amazon","fab fa-amazon-pay","fab fa-amilia","fab fa-android","fab fa-angellist","fab fa-angrycreative","fab fa-angular","fab fa-app-store","fab fa-app-store-ios","fab fa-apper","fab fa-apple","fab fa-apple-pay","fab fa-artstation","fab fa-asymmetrik","fab fa-atlassian","fab fa-audible","fab fa-autoprefixer","fab fa-avianex","fab fa-aviato","fab fa-aws","fab fa-bandcamp","fab fa-battle-net","fab fa-behance","fab fa-behance-square","fab fa-bimobject","fab fa-bitbucket","fab fa-bitcoin","fab fa-bity","fab fa-black-tie","fab fa-blackberry","fab fa-blogger","fab fa-blogger-b","fab fa-bluetooth","fab fa-bluetooth-b","fab fa-bootstrap","fab fa-btc","fab fa-buffer","fab fa-buromobelexperte","fab fa-buy-n-large","fab fa-buysellads","fab fa-canadian-maple-leaf","fab fa-cc-amazon-pay","fab fa-cc-amex","fab fa-cc-apple-pay","fab fa-cc-diners-club","fab fa-cc-discover","fab fa-cc-jcb","fab fa-cc-mastercard","fab fa-cc-paypal","fab fa-cc-stripe","fab fa-cc-visa","fab fa-centercode","fab fa-centos","fab fa-chrome","fab fa-chromecast","fab fa-cloudscale","fab fa-cloudsmith","fab fa-cloudversify","fab fa-codepen","fab fa-codiepie","fab fa-confluence","fab fa-connectdevelop","fab fa-contao","fab fa-cotton-bureau","fab fa-cpanel","fab fa-creative-commons","fab fa-creative-commons-by","fab fa-creative-commons-nc","fab fa-creative-commons-nc-eu","fab fa-creative-commons-nc-jp","fab fa-creative-commons-nd","fab fa-creative-commons-pd","fab fa-creative-commons-pd-alt","fab fa-creative-commons-remix","fab fa-creative-commons-sa","fab fa-creative-commons-sampling","fab fa-creative-commons-sampling-plus","fab fa-creative-commons-share","fab fa-creative-commons-zero","fab fa-critical-role","fab fa-css3","fab fa-css3-alt","fab fa-cuttlefish","fab fa-d-and-d","fab fa-d-and-d-beyond","fab fa-dashcube","fab fa-delicious","fab fa-deploydog","fab fa-deskpro","fab fa-dev","fab fa-deviantart","fab fa-dhl","fab fa-diaspora","fab fa-digg","fab fa-digital-ocean","fab fa-discord","fab fa-discourse","fab fa-dochub","fab fa-docker","fab fa-draft2digital","fab fa-dribbble","fab fa-dribbble-square","fab fa-dropbox","fab fa-drupal","fab fa-dyalog","fab fa-earlybirds","fab fa-ebay","fab fa-edge","fab fa-elementor","fab fa-ello","fab fa-ember","fab fa-empire","fab fa-envira","fab fa-erlang","fab fa-ethereum","fab fa-etsy","fab fa-evernote","fab fa-expeditedssl","fab fa-facebook","fab fa-facebook-f","fab fa-facebook-messenger","fab fa-facebook-square","fab fa-fantasy-flight-games","fab fa-fedex","fab fa-fedora","fab fa-figma","fab fa-firefox","fab fa-firefox-browser","fab fa-first-order","fab fa-first-order-alt","fab fa-firstdraft","fab fa-flickr","fab fa-flipboard","fab fa-fly","fab fa-font-awesome","fab fa-font-awesome-alt","fab fa-font-awesome-flag","fab fa-fonticons","fab fa-fonticons-fi","fab fa-fort-awesome","fab fa-fort-awesome-alt","fab fa-forumbee","fab fa-foursquare","fab fa-free-code-camp","fab fa-freebsd","fab fa-fulcrum","fab fa-galactic-republic","fab fa-galactic-senate","fab fa-get-pocket","fab fa-gg","fab fa-gg-circle","fab fa-git","fab fa-git-alt","fab fa-git-square","fab fa-github","fab fa-github-alt","fab fa-github-square","fab fa-gitkraken","fab fa-gitlab","fab fa-gitter","fab fa-glide","fab fa-glide-g","fab fa-gofore","fab fa-goodreads","fab fa-goodreads-g","fab fa-google","fab fa-google-drive","fab fa-google-play","fab fa-google-plus","fab fa-google-plus-g","fab fa-google-plus-square","fab fa-google-wallet","fab fa-gratipay","fab fa-grav","fab fa-gripfire","fab fa-grunt","fab fa-gulp","fab fa-hacker-news","fab fa-hacker-news-square","fab fa-hackerrank","fab fa-hips","fab fa-hire-a-helper","fab fa-hooli","fab fa-hornbill","fab fa-hotjar","fab fa-houzz","fab fa-html5","fab fa-hubspot","fab fa-ideal","fab fa-imdb","fab fa-instagram","fab fa-intercom","fab fa-internet-explorer","fab fa-invision","fab fa-ioxhost","fab fa-itch-io","fab fa-itunes","fab fa-itunes-note","fab fa-java","fab fa-jedi-order","fab fa-jenkins","fab fa-jira","fab fa-joget","fab fa-joomla","fab fa-js","fab fa-js-square","fab fa-jsfiddle","fab fa-kaggle","fab fa-keybase","fab fa-keycdn","fab fa-kickstarter","fab fa-kickstarter-k","fab fa-korvue","fab fa-laravel","fab fa-lastfm","fab fa-lastfm-square","fab fa-leanpub","fab fa-less","fab fa-line","fab fa-linkedin","fab fa-linkedin-in","fab fa-linode","fab fa-linux","fab fa-lyft","fab fa-magento","fab fa-mailchimp","fab fa-mandalorian","fab fa-markdown","fab fa-mastodon","fab fa-maxcdn","fab fa-mdb","fab fa-medapps","fab fa-medium","fab fa-medium-m","fab fa-medrt","fab fa-meetup","fab fa-megaport","fab fa-mendeley","fab fa-microblog","fab fa-microsoft","fab fa-mix","fab fa-mixcloud","fab fa-mizuni","fab fa-modx","fab fa-monero","fab fa-napster","fab fa-neos","fab fa-nimblr","fab fa-node","fab fa-node-js","fab fa-npm","fab fa-ns8","fab fa-nutritionix","fab fa-odnoklassniki","fab fa-odnoklassniki-square","fab fa-old-republic","fab fa-opencart","fab fa-openid","fab fa-opera","fab fa-optin-monster","fab fa-orcid","fab fa-osi","fab fa-page4","fab fa-pagelines","fab fa-palfed","fab fa-patreon","fab fa-paypal","fab fa-penny-arcade","fab fa-periscope","fab fa-phabricator","fab fa-phoenix-framework","fab fa-phoenix-squadron","fab fa-php","fab fa-pied-piper","fab fa-pied-piper-alt","fab fa-pied-piper-hat","fab fa-pied-piper-pp","fab fa-pied-piper-square","fab fa-pinterest","fab fa-pinterest-p","fab fa-pinterest-square","fab fa-playstation","fab fa-product-hunt","fab fa-pushed","fab fa-python","fab fa-qq","fab fa-quinscape","fab fa-quora","fab fa-r-project","fab fa-raspberry-pi","fab fa-ravelry","fab fa-react","fab fa-reacteurope","fab fa-readme","fab fa-rebel","fab fa-red-river","fab fa-reddit","fab fa-reddit-alien","fab fa-reddit-square","fab fa-redhat","fab fa-renren","fab fa-replyd","fab fa-researchgate","fab fa-resolving","fab fa-rev","fab fa-rocketchat","fab fa-rockrms","fab fa-safari","fab fa-salesforce","fab fa-sass","fab fa-schlix","fab fa-scribd","fab fa-searchengin","fab fa-sellcast","fab fa-sellsy","fab fa-servicestack","fab fa-shirtsinbulk","fab fa-shopware","fab fa-simplybuilt","fab fa-sistrix","fab fa-sith","fab fa-sketch","fab fa-skyatlas","fab fa-skype","fab fa-slack","fab fa-slack-hash","fab fa-slideshare","fab fa-snapchat","fab fa-snapchat-ghost","fab fa-snapchat-square","fab fa-soundcloud","fab fa-sourcetree","fab fa-speakap","fab fa-speaker-deck","fab fa-spotify","fab fa-squarespace","fab fa-stack-exchange","fab fa-stack-overflow","fab fa-stackpath","fab fa-staylinked","fab fa-steam","fab fa-steam-square","fab fa-steam-symbol","fab fa-sticker-mule","fab fa-strava","fab fa-stripe","fab fa-stripe-s","fab fa-studiovinari","fab fa-stumbleupon","fab fa-stumbleupon-circle","fab fa-superpowers","fab fa-supple","fab fa-suse","fab fa-swift","fab fa-symfony","fab fa-teamspeak","fab fa-telegram","fab fa-telegram-plane","fab fa-tencent-weibo","fab fa-the-red-yeti","fab fa-themeco","fab fa-themeisle","fab fa-think-peaks","fab fa-trade-federation","fab fa-trello","fab fa-tripadvisor","fab fa-tumblr","fab fa-tumblr-square","fab fa-twitch","fab fa-twitter","fab fa-twitter-square","fab fa-typo3","fab fa-uber","fab fa-ubuntu","fab fa-uikit","fab fa-umbraco","fab fa-uniregistry","fab fa-unity","fab fa-untappd","fab fa-ups","fab fa-usb","fab fa-usps","fab fa-ussunnah","fab fa-vaadin","fab fa-viacoin","fab fa-viadeo","fab fa-viadeo-square","fab fa-viber","fab fa-vimeo","fab fa-vimeo-square","fab fa-vimeo-v","fab fa-vine","fab fa-vk","fab fa-vnv","fab fa-vuejs","fab fa-waze","fab fa-weebly","fab fa-weibo","fab fa-weixin","fab fa-whatsapp","fab fa-whatsapp-square","fab fa-whmcs","fab fa-wikipedia-w","fab fa-windows","fab fa-wix","fab fa-wizards-of-the-coast","fab fa-wolf-pack-battalion","fab fa-wordpress","fab fa-wordpress-simple","fab fa-wpbeginner","fab fa-wpexplorer","fab fa-wpforms","fab fa-wpressr","fab fa-xbox","fab fa-xing","fab fa-xing-square","fab fa-y-combinator","fab fa-yahoo","fab fa-yammer","fab fa-yandex","fab fa-yandex-international","fab fa-yarn","fab fa-yelp","fab fa-yoast","fab fa-youtube","fab fa-youtube-square","fab fa-zhihu"]}}};
|
assets/vendor/fullcalendar/fullcalendar.min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.fc-icon,.fc-unselectable{-moz-user-select:none;-ms-user-select:none}.fc .fc-button,.fc-icon{text-transform:none;text-align:center}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc .fc-button:not(:disabled),.fc a[data-navlink],.fc-event.fc-event-draggable,.fc-event[href]{cursor:pointer}.fc-unselectable{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.fc{display:flex;flex-direction:column;font-size:1em}.fc .fc-button,.fc-icon{display:inline-block;font-weight:400}.fc,.fc *,.fc :after,.fc :before{box-sizing:border-box}.fc table{border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc td,.fc th{vertical-align:top;padding:0}.fc .fc-button,.fc .fc-button .fc-icon,.fc .fc-button-group,.fc .fc-timegrid-slot-label{vertical-align:middle}.fc a[data-navlink]:hover{text-decoration:underline}.fc .fc-button:hover,.fc .fc-list-event-title a,a.fc-event,a.fc-event:hover{text-decoration:none}.fc-direction-ltr{direction:ltr;text-align:left}.fc-direction-rtl{direction:rtl;text-align:right}.fc-theme-standard td,.fc-theme-standard th{border:1px solid #ddd;border:1px solid var(--fc-border-color,#ddd)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@font-face{font-family:fcicons;src:url("data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBfAAAAC8AAAAYGNtYXAXVtKNAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5ZgYydxIAAAF4AAAFNGhlYWQUJ7cIAAAGrAAAADZoaGVhB20DzAAABuQAAAAkaG10eCIABhQAAAcIAAAALGxvY2ED4AU6AAAHNAAAABhtYXhwAA8AjAAAB0wAAAAgbmFtZXsr690AAAdsAAABhnBvc3QAAwAAAAAI9AAAACAAAwPAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpBgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6Qb//f//AAAAAAAg6QD//f//AAH/4xcEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAWIAjQKeAskAEwAAJSc3NjQnJiIHAQYUFwEWMjc2NCcCnuLiDQ0MJAz/AA0NAQAMJAwNDcni4gwjDQwM/wANIwz/AA0NDCMNAAAAAQFiAI0CngLJABMAACUBNjQnASYiBwYUHwEHBhQXFjI3AZ4BAA0N/wAMJAwNDeLiDQ0MJAyNAQAMIw0BAAwMDSMM4uINIwwNDQAAAAIA4gC3Ax4CngATACcAACUnNzY0JyYiDwEGFB8BFjI3NjQnISc3NjQnJiIPAQYUHwEWMjc2NCcB87e3DQ0MIw3VDQ3VDSMMDQ0BK7e3DQ0MJAzVDQ3VDCQMDQ3zuLcMJAwNDdUNIwzWDAwNIwy4twwkDA0N1Q0jDNYMDA0jDAAAAgDiALcDHgKeABMAJwAAJTc2NC8BJiIHBhQfAQcGFBcWMjchNzY0LwEmIgcGFB8BBwYUFxYyNwJJ1Q0N1Q0jDA0Nt7cNDQwjDf7V1Q0N1QwkDA0Nt7cNDQwkDLfWDCMN1Q0NDCQMt7gMIw0MDNYMIw3VDQ0MJAy3uAwjDQwMAAADAFUAAAOrA1UAMwBoAHcAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMhMjY1NCYjISIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAAVYRGRkR/qoRGRkRA1UFBAUOCQkVDAsZDf2rDRkLDBUJCA4FBQUFBQUOCQgVDAsZDQJVDRkLDBUJCQ4FBAVVAgECBQMCBwQECAX9qwQJAwQHAwMFAQICAgIBBQMDBwQDCQQCVQUIBAQHAgMFAgEC/oAZEhEZGRESGQAAAAADAFUAAAOrA1UAMwBoAIkAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMzFRQWMzI2PQEzMjY1NCYrATU0JiMiBh0BIyIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAgBkSEhmAERkZEYAZEhIZgBEZGREDVQUEBQ4JCRUMCxkN/asNGQsMFQkIDgUFBQUFBQ4JCBUMCxkNAlUNGQsMFQkJDgUEBVUCAQIFAwIHBAQIBf2rBAkDBAcDAwUBAgICAgEFAwMHBAMJBAJVBQgEBAcCAwUCAQL+gIASGRkSgBkSERmAEhkZEoAZERIZAAABAOIAjQMeAskAIAAAExcHBhQXFjI/ARcWMjc2NC8BNzY0JyYiDwEnJiIHBhQX4uLiDQ0MJAzi4gwkDA0N4uINDQwkDOLiDCQMDQ0CjeLiDSMMDQ3h4Q0NDCMN4uIMIw0MDOLiDAwNIwwAAAABAAAAAQAAa5n0y18PPPUACwQAAAAAANivOVsAAAAA2K85WwAAAAADqwNVAAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAAAAOrAAEAAAAAAAAAAAAAAAAAAAALBAAAAAAAAAAAAAAAAgAAAAQAAWIEAAFiBAAA4gQAAOIEAABVBAAAVQQAAOIAAAAAAAoAFAAeAEQAagCqAOoBngJkApoAAQAAAAsAigADAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAAcAAAABAAAAAAACAAcAYAABAAAAAAADAAcANgABAAAAAAAEAAcAdQABAAAAAAAFAAsAFQABAAAAAAAGAAcASwABAAAAAAAKABoAigADAAEECQABAA4ABwADAAEECQACAA4AZwADAAEECQADAA4APQADAAEECQAEAA4AfAADAAEECQAFABYAIAADAAEECQAGAA4AUgADAAEECQAKADQApGZjaWNvbnMAZgBjAGkAYwBvAG4Ac1ZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMGZjaWNvbnMAZgBjAGkAYwBvAG4Ac2ZjaWNvbnMAZgBjAGkAYwBvAG4Ac1JlZ3VsYXIAUgBlAGcAdQBsAGEAcmZjaWNvbnMAZgBjAGkAYwBvAG4Ac0ZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=") format('truetype');font-weight:400;font-style:normal}.fc-icon{width:1em;height:1em;-webkit-user-select:none;user-select:none;font-family:fcicons!important;speak:none;font-style:normal;font-variant:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fc-icon-chevron-left:before{content:"\e900"}.fc-icon-chevron-right:before{content:"\e901"}.fc-icon-chevrons-left:before{content:"\e902"}.fc-icon-chevrons-right:before{content:"\e903"}.fc-icon-minus-square:before{content:"\e904"}.fc-icon-plus-square:before{content:"\e905"}.fc-icon-x:before{content:"\e906"}.fc .fc-button{overflow:visible;text-transform:none;margin:0;font-family:inherit}.fc .fc-button::-moz-focus-inner{padding:0;border-style:none}.fc .fc-button{-webkit-appearance:button;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.4em .65em;font-size:1em;line-height:1.5;border-radius:.25em}.fc .fc-button:focus{outline:0;box-shadow:0 0 0 .2rem rgba(44,62,80,.25)}.fc .fc-button-primary:focus,.fc .fc-button-primary:not(:disabled).fc-button-active:focus,.fc .fc-button-primary:not(:disabled):active:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button:disabled{opacity:.65}.fc .fc-button-primary{color:#fff;color:var(--fc-button-text-color,#fff);background-color:#2C3E50;background-color:var(--fc-button-bg-color,#2C3E50);border-color:#2C3E50;border-color:var(--fc-button-border-color,#2C3E50)}.fc .fc-button-primary:hover{color:#fff;color:var(--fc-button-text-color,#fff);background-color:#1e2b37;background-color:var(--fc-button-hover-bg-color,#1e2b37);border-color:#1a252f;border-color:var(--fc-button-hover-border-color,#1a252f)}.fc .fc-button-primary:disabled{color:#fff;color:var(--fc-button-text-color,#fff);background-color:#2C3E50;background-color:var(--fc-button-bg-color,#2C3E50);border-color:#2C3E50;border-color:var(--fc-button-border-color,#2C3E50)}.fc .fc-button-primary:not(:disabled).fc-button-active,.fc .fc-button-primary:not(:disabled):active{color:#fff;color:var(--fc-button-text-color,#fff);background-color:#1a252f;background-color:var(--fc-button-active-bg-color,#1a252f);border-color:#151e27;border-color:var(--fc-button-active-border-color,#151e27)}.fc .fc-button .fc-icon{font-size:1.5em}.fc .fc-button-group{position:relative;display:inline-flex}.fc .fc-button-group>.fc-button{position:relative;flex:1 1 auto}.fc .fc-button-group>.fc-button.fc-button-active,.fc .fc-button-group>.fc-button:active,.fc .fc-button-group>.fc-button:focus,.fc .fc-button-group>.fc-button:hover{z-index:1}.fc-direction-ltr .fc-button-group>.fc-button:not(:first-child){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.fc-direction-ltr .fc-button-group>.fc-button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:first-child){margin-right:-1px;border-top-right-radius:0;border-bottom-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:last-child){border-top-left-radius:0;border-bottom-left-radius:0}.fc .fc-toolbar{display:flex;justify-content:space-between;align-items:center}.fc .fc-toolbar.fc-header-toolbar{margin-bottom:1.5em}.fc .fc-toolbar.fc-footer-toolbar{margin-top:1.5em}.fc .fc-toolbar-title{font-size:1.75em;margin:0}.fc-direction-ltr .fc-toolbar>*>:not(:first-child){margin-left:.75em}.fc-direction-rtl .fc-toolbar>*>:not(:first-child){margin-right:.75em}.fc-direction-rtl .fc-toolbar-ltr{flex-direction:row-reverse}.fc .fc-scroller{-webkit-overflow-scrolling:touch;position:relative}.fc .fc-scroller-liquid{height:100%}.fc .fc-scroller-liquid-absolute{position:absolute;top:0;right:0;left:0;bottom:0}.fc .fc-scroller-harness{position:relative;overflow:hidden;direction:ltr}.fc .fc-scroller-harness-liquid{height:100%}.fc-direction-rtl .fc-scroller-harness>.fc-scroller{direction:rtl}.fc-theme-standard .fc-scrollgrid{border:1px solid #ddd;border:1px solid var(--fc-border-color,#ddd)}.fc .fc-scrollgrid,.fc .fc-scrollgrid-section-footer>*,.fc .fc-scrollgrid-section-header>*{border-bottom-width:0}.fc .fc-scrollgrid,.fc .fc-scrollgrid table{width:100%;table-layout:fixed}.fc .fc-scrollgrid table{border-top-style:hidden;border-left-style:hidden;border-right-style:hidden}.fc .fc-scrollgrid{border-collapse:separate;border-right-width:0}.fc .fc-scrollgrid-liquid{height:100%}.fc .fc-scrollgrid-section,.fc .fc-scrollgrid-section table,.fc .fc-scrollgrid-section>td{height:1px}.fc .fc-scrollgrid-section-liquid{height:auto}.fc .fc-scrollgrid-section-liquid>td{height:100%}.fc .fc-scrollgrid-section>*{border-top-width:0;border-left-width:0}.fc .fc-scrollgrid-section-body table,.fc .fc-scrollgrid-section-footer table{border-bottom-style:hidden}.fc .fc-scrollgrid-section-sticky>*{background:var(--fc-page-bg-color,#fff);position:-webkit-sticky;position:sticky;z-index:2}.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky>*{top:0}.fc .fc-scrollgrid-section-footer.fc-scrollgrid-section-sticky>*{bottom:0}.fc .fc-scrollgrid-sticky-shim{height:1px;margin-bottom:-1px}.fc-sticky{position:-webkit-sticky;position:sticky}.fc .fc-view-harness{flex-grow:1;position:relative}.fc .fc-bg-event,.fc .fc-highlight,.fc .fc-non-business,.fc .fc-view-harness-active>.fc-view{position:absolute;top:0;left:0;right:0;bottom:0}.fc .fc-col-header-cell-cushion{display:inline-block;padding:2px 4px}.fc .fc-non-business{background:rgba(215,215,215,.3);background:var(--fc-non-business-color,rgba(215,215,215,.3))}.fc .fc-bg-event{background:var(--fc-bg-event-color,#8fdf82);opacity:.3;opacity:var(--fc-bg-event-opacity,.3)}.fc .fc-bg-event .fc-event-title{margin:.5em;font-size:.85em;font-size:var(--fc-small-font-size,.85em);font-style:italic}.fc .fc-highlight{background:rgba(188,232,241,.3);background:var(--fc-highlight-color,rgba(188,232,241,.3))}.fc .fc-cell-shaded,.fc .fc-day-disabled{background:rgba(208,208,208,.3);background:var(--fc-neutral-bg-color,rgba(208,208,208,.3))}.fc-event .fc-event-main{position:relative;z-index:2}.fc-event-dragging:not(.fc-event-selected){opacity:.75}.fc-event-dragging.fc-event-selected{box-shadow:0 2px 7px rgba(0,0,0,.3)}.fc-event .fc-event-resizer{display:none;position:absolute;z-index:4}.fc-event-selected .fc-event-resizer,.fc-event:hover .fc-event-resizer,.fc-h-event{display:block}.fc-event-selected .fc-event-resizer{border-radius:4px;border-radius:calc(var(--fc-event-resizer-dot-total-width,8px)/ 2);border-width:1px;border-width:var(--fc-event-resizer-dot-border-width,1px);width:8px;width:var(--fc-event-resizer-dot-total-width,8px);height:8px;height:var(--fc-event-resizer-dot-total-width,8px);border-style:solid;border-color:inherit;background:var(--fc-page-bg-color,#fff)}.fc-event-selected .fc-event-resizer:before{content:'';position:absolute;top:-20px;left:-20px;right:-20px;bottom:-20px}.fc-event-selected{box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event-selected:before{content:"";position:absolute;z-index:3;top:0;left:0;right:0;bottom:0}.fc-event-selected:after{content:"";background:rgba(0,0,0,.25);background:var(--fc-event-selected-overlay-color,rgba(0,0,0,.25));position:absolute;z-index:1;top:-1px;left:-1px;right:-1px;bottom:-1px}.fc-h-event{border:1px solid #3788d8;border:1px solid var(--fc-event-border-color,#3788d8);background-color:#3788d8;background-color:var(--fc-event-bg-color,#3788d8)}.fc-h-event .fc-event-main{color:#fff;color:var(--fc-event-text-color,#fff)}.fc-h-event .fc-event-main-frame{display:flex}.fc-h-event .fc-event-time{max-width:100%;overflow:hidden}.fc-h-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-width:0}.fc-h-event .fc-event-title{display:inline-block;vertical-align:top;left:0;right:0;max-width:100%;overflow:hidden}.fc-h-event.fc-event-selected:before{top:-10px;bottom:-10px}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end){border-top-left-radius:0;border-bottom-left-radius:0;border-left-width:0}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start){border-top-right-radius:0;border-bottom-right-radius:0;border-right-width:0}.fc-h-event:not(.fc-event-selected) .fc-event-resizer{top:0;bottom:0;width:8px;width:var(--fc-event-resizer-thickness,8px)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end{cursor:w-resize;left:-4px;left:calc(var(--fc-event-resizer-thickness,8px)/ -2)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start{cursor:e-resize;right:-4px;right:calc(var(--fc-event-resizer-thickness,8px)/ -2)}.fc-h-event.fc-event-selected .fc-event-resizer{top:50%;margin-top:-4px;margin-top:calc(var(--fc-event-resizer-dot-total-width,8px)/ -2)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-start,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-end{left:-4px;left:calc(var(--fc-event-resizer-dot-total-width,8px)/ -2)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-end,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-start{right:-4px;right:calc(var(--fc-event-resizer-dot-total-width,8px)/ -2)}:root{--fc-daygrid-event-dot-width:8px;--fc-list-event-dot-width:10px;--fc-list-event-hover-bg-color:#f5f5f5}.fc .fc-popover{position:fixed;top:0;box-shadow:0 2px 6px rgba(0,0,0,.15)}.fc .fc-popover-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:3px 4px}.fc .fc-popover-title{margin:0 2px}.fc .fc-popover-close{cursor:pointer;opacity:.65;font-size:1.1em}.fc-theme-standard .fc-popover{border:1px solid #ddd;border:1px solid var(--fc-border-color,#ddd);background:var(--fc-page-bg-color,#fff)}.fc-theme-standard .fc-popover-header{background:rgba(208,208,208,.3);background:var(--fc-neutral-bg-color,rgba(208,208,208,.3))}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{content:"";clear:both;display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:rgba(255,220,40,.15);background-color:var(--fc-today-bg-color,rgba(255,220,40,.15))}.fc .fc-daygrid-day-frame{position:relative;min-height:100%}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{position:relative;z-index:4;padding:4px}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{position:absolute;left:0;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{position:relative;min-height:2em}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{position:absolute;top:0;left:0;right:0}.fc .fc-daygrid-bg-harness{position:absolute;top:0;bottom:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{z-index:6;margin-top:1px}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:2px 3px 0}.fc .fc-daygrid-more-link{position:relative;z-index:4;cursor:pointer}.fc .fc-daygrid-week-number{position:absolute;z-index:5;top:0;padding:2px;min-width:1.5em;text-align:center;background-color:rgba(208,208,208,.3);background-color:var(--fc-neutral-bg-color,rgba(208,208,208,.3));color:grey;color:var(--fc-neutral-text-color,grey)}.fc .fc-more-popover{z-index:8}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-week-number{left:0;border-radius:0 0 3px}.fc-direction-rtl .fc-daygrid-week-number{right:0;border-radius:0 0 0 3px}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{position:relative;white-space:nowrap;border-radius:3px;font-size:.85em;font-size:var(--fc-small-font-size,.85em)}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{display:flex;align-items:center;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;min-width:0;overflow:hidden;font-weight:700}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{top:-10px;bottom:-10px}.fc-daygrid-event-dot{margin:0 4px;box-sizing:content-box;width:0;height:0;border:4px solid #3788d8;border:calc(var(--fc-daygrid-event-dot-width,8px)/ 2) solid var(--fc-event-border-color,#3788d8);border-radius:4px;border-radius:calc(var(--fc-daygrid-event-dot-width,8px)/ 2)}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}.fc-v-event{display:block;border:1px solid #3788d8;border:1px solid var(--fc-event-border-color,#3788d8);background-color:#3788d8;background-color:var(--fc-event-bg-color,#3788d8)}.fc-v-event .fc-event-main{color:#fff;color:var(--fc-event-text-color,#fff);height:100%}.fc-v-event .fc-event-main-frame{height:100%;display:flex;flex-direction:column}.fc-v-event .fc-event-time{flex-grow:0;flex-shrink:0;max-height:100%;overflow:hidden}.fc-v-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-height:0}.fc-v-event .fc-event-title{top:0;bottom:0;max-height:100%;overflow:hidden}.fc-v-event:not(.fc-event-start){border-top-width:0;border-top-left-radius:0;border-top-right-radius:0}.fc-v-event:not(.fc-event-end){border-bottom-width:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.fc-v-event.fc-event-selected:before{left:-10px;right:-10px}.fc-v-event .fc-event-resizer-start{cursor:n-resize}.fc-v-event .fc-event-resizer-end{cursor:s-resize}.fc-v-event:not(.fc-event-selected) .fc-event-resizer{height:8px;height:var(--fc-event-resizer-thickness,8px);left:0;right:0}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-start{top:-4px;top:calc(var(--fc-event-resizer-thickness,8px)/ -2)}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-end{bottom:-4px;bottom:calc(var(--fc-event-resizer-thickness,8px)/ -2)}.fc-v-event.fc-event-selected .fc-event-resizer{left:50%;margin-left:-4px;margin-left:calc(var(--fc-event-resizer-dot-total-width,8px)/ -2)}.fc-v-event.fc-event-selected .fc-event-resizer-start{top:-4px;top:calc(var(--fc-event-resizer-dot-total-width,8px)/ -2)}.fc-v-event.fc-event-selected .fc-event-resizer-end{bottom:-4px;bottom:calc(var(--fc-event-resizer-dot-total-width,8px)/ -2)}.fc .fc-timegrid .fc-daygrid-body{z-index:2}.fc .fc-timegrid-axis-chunk>table,.fc .fc-timegrid-body,.fc .fc-timegrid-slots{position:relative;z-index:1}.fc .fc-timegrid-divider{padding:0 0 2px}.fc .fc-timegrid-body{min-height:100%}.fc .fc-timegrid-axis-chunk{position:relative}.fc .fc-timegrid-slot{height:1.5em;border-bottom:0}.fc .fc-timegrid-slot:empty:before{content:'\00a0'}.fc .fc-timegrid-slot-minor{border-top-style:dotted}.fc .fc-timegrid-slot-label-cushion{display:inline-block;white-space:nowrap}.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{padding:0 4px}.fc .fc-timegrid-axis-frame-liquid{height:100%}.fc .fc-timegrid-axis-frame{overflow:hidden;display:flex;align-items:center;justify-content:flex-end}.fc .fc-timegrid-axis-cushion{max-width:60px;flex-shrink:0}.fc-direction-ltr .fc-timegrid-slot-label-frame{text-align:right}.fc-direction-rtl .fc-timegrid-slot-label-frame{text-align:left}.fc-liquid-hack .fc-timegrid-axis-frame-liquid{height:auto;position:absolute;top:0;right:0;bottom:0;left:0}.fc .fc-timegrid-col.fc-day-today{background-color:rgba(255,220,40,.15);background-color:var(--fc-today-bg-color,rgba(255,220,40,.15))}.fc .fc-timegrid-col-frame{min-height:100%;position:relative}.fc-liquid-hack .fc-timegrid-col-frame{height:auto;position:absolute;top:0;right:0;bottom:0;left:0}.fc-media-screen .fc-timegrid-cols{position:absolute;top:0;left:0;right:0;bottom:0}.fc-media-screen .fc-timegrid-cols>table{height:100%}.fc-media-screen .fc-timegrid-col-bg,.fc-media-screen .fc-timegrid-col-events,.fc-media-screen .fc-timegrid-now-indicator-container{position:absolute;top:0;left:0;right:0}.fc-media-screen .fc-timegrid-event-harness{position:absolute}.fc .fc-timegrid-col-bg{z-index:2}.fc .fc-timegrid-col-bg .fc-non-business{z-index:1}.fc .fc-timegrid-col-bg .fc-bg-event{z-index:2}.fc .fc-timegrid-col-bg .fc-highlight,.fc .fc-timegrid-col-events{z-index:3}.fc .fc-timegrid-bg-harness{position:absolute;left:0;right:0}.fc .fc-timegrid-now-indicator-container{bottom:0;overflow:hidden}.fc-direction-ltr .fc-timegrid-col-events{margin:0 2.5% 0 2px}.fc-direction-rtl .fc-timegrid-col-events{margin:0 2px 0 2.5%}.fc-timegrid-event-harness-inset .fc-timegrid-event,.fc-timegrid-event.fc-event-mirror{box-shadow:0 0 0 1px #fff;box-shadow:0 0 0 1px var(--fc-page-bg-color,#fff)}.fc-timegrid-event{font-size:.85em;font-size:var(--fc-small-font-size,.85em);border-radius:3px}.fc-timegrid-event .fc-event-main{padding:1px 1px 0}.fc-timegrid-event .fc-event-time{white-space:nowrap;font-size:.85em;font-size:var(--fc-small-font-size,.85em);margin-bottom:1px}.fc-timegrid-event-condensed .fc-event-main-frame{flex-direction:row;overflow:hidden}.fc-timegrid-event-condensed .fc-event-time:after{content:'\00a0-\00a0'}.fc-timegrid-event-condensed .fc-event-title{font-size:.85em;font-size:var(--fc-small-font-size,.85em)}.fc-media-screen .fc-timegrid-event{position:absolute;top:0;bottom:1px;left:0;right:0}.fc .fc-timegrid-now-indicator-line{position:absolute;z-index:4;left:0;right:0;border-style:solid;border-color:red;border-color:var(--fc-now-indicator-color,red);border-width:1px 0 0}.fc .fc-timegrid-now-indicator-arrow{position:absolute;z-index:4;margin-top:-5px;border-style:solid;border-color:red;border-color:var(--fc-now-indicator-color,red)}.fc-direction-ltr .fc-timegrid-now-indicator-arrow{left:0;border-width:5px 0 5px 6px;border-top-color:transparent;border-bottom-color:transparent}.fc-direction-rtl .fc-timegrid-now-indicator-arrow{right:0;border-width:5px 6px 5px 0;border-top-color:transparent;border-bottom-color:transparent}.fc-theme-standard .fc-list{border:1px solid #ddd;border:1px solid var(--fc-border-color,#ddd)}.fc .fc-list-empty{background-color:rgba(208,208,208,.3);background-color:var(--fc-neutral-bg-color,rgba(208,208,208,.3));height:100%;display:flex;justify-content:center;align-items:center}.fc .fc-list-empty-cushion{margin:5em 0}.fc .fc-list-table{width:100%;border-style:hidden}.fc .fc-list-table tr>*{border-left:0;border-right:0}.fc .fc-list-sticky .fc-list-day>*{position:-webkit-sticky;position:sticky;top:0;background:var(--fc-page-bg-color,#fff)}.fc .fc-list-table th{padding:0}.fc .fc-list-day-cushion,.fc .fc-list-table td{padding:8px 14px}.fc .fc-list-day-cushion:after{content:"";clear:both;display:table}.fc-theme-standard .fc-list-day-cushion{background-color:rgba(208,208,208,.3);background-color:var(--fc-neutral-bg-color,rgba(208,208,208,.3))}.fc-direction-ltr .fc-list-day-text,.fc-direction-rtl .fc-list-day-side-text{float:left}.fc-direction-ltr .fc-list-day-side-text,.fc-direction-rtl .fc-list-day-text{float:right}.fc-direction-ltr .fc-list-table .fc-list-event-graphic{padding-right:0}.fc-direction-rtl .fc-list-table .fc-list-event-graphic{padding-left:0}.fc .fc-list-event.fc-event-forced-url{cursor:pointer}.fc .fc-list-event:hover td{background-color:#f5f5f5;background-color:var(--fc-list-event-hover-bg-color,#f5f5f5)}.fc .fc-list-event-graphic,.fc .fc-list-event-time{white-space:nowrap;width:1px}.fc .fc-list-event-dot{display:inline-block;box-sizing:content-box;width:0;height:0;border:5px solid #3788d8;border:calc(var(--fc-list-event-dot-width,10px)/ 2) solid var(--fc-event-border-color,#3788d8);border-radius:5px;border-radius:calc(var(--fc-list-event-dot-width,10px)/ 2)}.fc .fc-list-event-title a{color:inherit}.fc .fc-list-event.fc-event-forced-url:hover a{text-decoration:underline}.fc-theme-bootstrap a:not([href]){color:inherit}
|
assets/vendor/fullcalendar/fullcalendar.min.js
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
FullCalendar v5.3.1
|
3 |
+
Docs & License: https://fullcalendar.io/
|
4 |
+
(c) 2020 Adam Shaw
|
5 |
+
*/
|
6 |
+
var FullCalendar=function(e){"use strict";var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,n)};function n(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}var r=function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function o(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),o=0;for(t=0;t<n;t++)for(var i=arguments[t],a=0,s=i.length;a<s;a++,o++)r[o]=i[a];return r}var i,a,s,l,u,c,d,p={},f=[],h=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord/i;function v(e,t){for(var n in t)e[n]=t[n];return e}function g(e){var t=e.parentNode;t&&t.removeChild(e)}function m(e,t,n){var r,o=arguments,i={};for(r in t)"key"!==r&&"ref"!==r&&(i[r]=t[r]);if(arguments.length>3)for(n=[n],r=3;r<arguments.length;r++)n.push(o[r]);if(null!=n&&(i.children=n),"function"==typeof e&&null!=e.defaultProps)for(r in e.defaultProps)void 0===i[r]&&(i[r]=e.defaultProps[r]);return y(e,i,t&&t.key,t&&t.ref,null)}function y(e,t,n,r,o){var a={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:o};return null==o&&(a.__v=a),i.vnode&&i.vnode(a),a}function E(e){return e.children}function S(e,t){this.props=e,this.context=t}function D(e,t){if(null==t)return e.__?D(e.__,e.__.__k.indexOf(e)+1):null;for(var n;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e)return n.__e;return"function"==typeof e.type?D(e):null}function b(e){var t,n;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e){e.__e=e.__c.base=n.__e;break}return b(e)}}function C(e){(!e.__d&&(e.__d=!0)&&a.push(e)&&!s++||u!==i.debounceRendering)&&((u=i.debounceRendering)||l)(w)}function w(){for(var e;s=a.length;)e=a.sort((function(e,t){return e.__v.__b-t.__v.__b})),a=[],e.some((function(e){var t,n,r,o,i,a,s;e.__d&&(a=(i=(t=e).__v).__e,(s=t.__P)&&(n=[],(r=v({},i)).__v=r,o=_(s,i,r,t.__n,void 0!==s.ownerSVGElement,null,n,null==a?D(i):a),I(n,i),o!=a&&b(i)))}))}function R(e,t,n,r,o,i,a,s,l){var u,c,d,h,v,m,y,E=n&&n.__k||f,S=E.length;if(s==p&&(s=null!=i?i[0]:S?D(n,0):null),u=0,t.__k=T(t.__k,(function(n){if(null!=n){if(n.__=t,n.__b=t.__b+1,null===(d=E[u])||d&&n.key==d.key&&n.type===d.type)E[u]=void 0;else for(c=0;c<S;c++){if((d=E[c])&&n.key==d.key&&n.type===d.type){E[c]=void 0;break}d=null}if(h=_(e,n,d=d||p,r,o,i,a,s,l),(c=n.ref)&&d.ref!=c&&(y||(y=[]),d.ref&&y.push(d.ref,null,n),y.push(c,n.__c||h,n)),null!=h){var f;if(null==m&&(m=h),void 0!==n.__d)f=n.__d,n.__d=void 0;else if(i==d||h!=s||null==h.parentNode){e:if(null==s||s.parentNode!==e)e.appendChild(h),f=null;else{for(v=s,c=0;(v=v.nextSibling)&&c<S;c+=2)if(v==h)break e;e.insertBefore(h,s),f=s}"option"==t.type&&(e.value="")}s=void 0!==f?f:h.nextSibling,"function"==typeof t.type&&(t.__d=s)}else s&&d.__e==s&&s.parentNode!=e&&(s=D(d))}return u++,n})),t.__e=m,null!=i&&"function"!=typeof t.type)for(u=i.length;u--;)null!=i[u]&&g(i[u]);for(u=S;u--;)null!=E[u]&&H(E[u],E[u]);if(y)for(u=0;u<y.length;u++)N(y[u],y[++u],y[++u])}function T(e,t,n){if(null==n&&(n=[]),null==e||"boolean"==typeof e)t&&n.push(t(null));else if(Array.isArray(e))for(var r=0;r<e.length;r++)T(e[r],t,n);else n.push(t?t("string"==typeof e||"number"==typeof e?y(null,e,null,null,e):null!=e.__e||null!=e.__c?y(e.type,e.props,e.key,null,e.__v):e):e);return n}function k(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]="number"==typeof n&&!1===h.test(t)?n+"px":null==n?"":n}function M(e,t,n,r,o){var i,a,s,l,u;if(o?"className"===t&&(t="class"):"class"===t&&(t="className"),"style"===t)if(i=e.style,"string"==typeof n)i.cssText=n;else{if("string"==typeof r&&(i.cssText="",r=null),r)for(l in r)n&&l in n||k(i,l,"");if(n)for(u in n)r&&n[u]===r[u]||k(i,u,n[u])}else"o"===t[0]&&"n"===t[1]?(a=t!==(t=t.replace(/Capture$/,"")),s=t.toLowerCase(),t=(s in e?s:t).slice(2),n?(r||e.addEventListener(t,x,a),(e.l||(e.l={}))[t]=n):e.removeEventListener(t,x,a)):"list"!==t&&"tagName"!==t&&"form"!==t&&"type"!==t&&"size"!==t&&!o&&t in e?e[t]=null==n?"":n:"function"!=typeof n&&"dangerouslySetInnerHTML"!==t&&(t!==(t=t.replace(/^xlink:?/,""))?null==n||!1===n?e.removeAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase()):e.setAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase(),n):null==n||!1===n&&!/^ar/.test(t)?e.removeAttribute(t):e.setAttribute(t,n))}function x(e){this.l[e.type](i.event?i.event(e):e)}function _(e,t,n,r,o,a,s,l,u){var c,d,p,f,h,g,m,y,D,b,C=t.type;if(void 0!==t.constructor)return null;(c=i.__b)&&c(t);try{e:if("function"==typeof C){if(y=t.props,D=(c=C.contextType)&&r[c.__c],b=c?D?D.props.value:c.__:r,n.__c?m=(d=t.__c=n.__c).__=d.__E:("prototype"in C&&C.prototype.render?t.__c=d=new C(y,b):(t.__c=d=new S(y,b),d.constructor=C,d.render=O),D&&D.sub(d),d.props=y,d.state||(d.state={}),d.context=b,d.__n=r,p=d.__d=!0,d.__h=[]),null==d.__s&&(d.__s=d.state),null!=C.getDerivedStateFromProps&&(d.__s==d.state&&(d.__s=v({},d.__s)),v(d.__s,C.getDerivedStateFromProps(y,d.__s))),f=d.props,h=d.state,p)null==C.getDerivedStateFromProps&&null!=d.componentWillMount&&d.componentWillMount(),null!=d.componentDidMount&&d.__h.push(d.componentDidMount);else{if(null==C.getDerivedStateFromProps&&y!==f&&null!=d.componentWillReceiveProps&&d.componentWillReceiveProps(y,b),!d.__e&&null!=d.shouldComponentUpdate&&!1===d.shouldComponentUpdate(y,d.__s,b)||t.__v===n.__v&&!d.__){for(d.props=y,d.state=d.__s,t.__v!==n.__v&&(d.__d=!1),d.__v=t,t.__e=n.__e,t.__k=n.__k,d.__h.length&&s.push(d),c=0;c<t.__k.length;c++)t.__k[c]&&(t.__k[c].__=t);break e}null!=d.componentWillUpdate&&d.componentWillUpdate(y,d.__s,b),null!=d.componentDidUpdate&&d.__h.push((function(){d.componentDidUpdate(f,h,g)}))}d.context=b,d.props=y,d.state=d.__s,(c=i.__r)&&c(t),d.__d=!1,d.__v=t,d.__P=e,c=d.render(d.props,d.state,d.context),t.__k=null!=c&&c.type==E&&null==c.key?c.props.children:Array.isArray(c)?c:[c],null!=d.getChildContext&&(r=v(v({},r),d.getChildContext())),p||null==d.getSnapshotBeforeUpdate||(g=d.getSnapshotBeforeUpdate(f,h)),R(e,t,n,r,o,a,s,l,u),d.base=t.__e,d.__h.length&&s.push(d),m&&(d.__E=d.__=null),d.__e=!1}else null==a&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=P(n.__e,t,n,r,o,a,s,u);(c=i.diffed)&&c(t)}catch(e){t.__v=null,i.__e(e,t,n)}return t.__e}function I(e,t){i.__c&&i.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){i.__e(e,t.__v)}}))}function P(e,t,n,r,o,i,a,s){var l,u,c,d,h,v=n.props,g=t.props;if(o="svg"===t.type||o,null!=i)for(l=0;l<i.length;l++)if(null!=(u=i[l])&&((null===t.type?3===u.nodeType:u.localName===t.type)||e==u)){e=u,i[l]=null;break}if(null==e){if(null===t.type)return document.createTextNode(g);e=o?document.createElementNS("http://www.w3.org/2000/svg",t.type):document.createElement(t.type,g.is&&{is:g.is}),i=null,s=!1}if(null===t.type)v!==g&&e.data!=g&&(e.data=g);else{if(null!=i&&(i=f.slice.call(e.childNodes)),c=(v=n.props||p).dangerouslySetInnerHTML,d=g.dangerouslySetInnerHTML,!s){if(v===p)for(v={},h=0;h<e.attributes.length;h++)v[e.attributes[h].name]=e.attributes[h].value;(d||c)&&(d&&c&&d.__html==c.__html||(e.innerHTML=d&&d.__html||""))}(function(e,t,n,r,o){var i;for(i in n)"children"===i||"key"===i||i in t||M(e,i,null,n[i],r);for(i in t)o&&"function"!=typeof t[i]||"children"===i||"key"===i||"value"===i||"checked"===i||n[i]===t[i]||M(e,i,t[i],n[i],r)})(e,g,v,o,s),d?t.__k=[]:(t.__k=t.props.children,R(e,t,n,r,"foreignObject"!==t.type&&o,i,a,p,s)),s||("value"in g&&void 0!==(l=g.value)&&l!==e.value&&M(e,"value",l,v.value,!1),"checked"in g&&void 0!==(l=g.checked)&&l!==e.checked&&M(e,"checked",l,v.checked,!1))}return e}function N(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){i.__e(e,n)}}function H(e,t,n){var r,o,a;if(i.unmount&&i.unmount(e),(r=e.ref)&&(r.current&&r.current!==e.__e||N(r,null,t)),n||"function"==typeof e.type||(n=null!=(o=e.__e)),e.__e=e.__d=void 0,null!=(r=e.__c)){if(r.componentWillUnmount)try{r.componentWillUnmount()}catch(e){i.__e(e,t)}r.base=r.__P=null}if(r=e.__k)for(a=0;a<r.length;a++)r[a]&&H(r[a],t,n);null!=o&&g(o)}function O(e,t,n){return this.constructor(e,n)}function A(e,t,n){var r,o,a;i.__&&i.__(e,t),o=(r=n===c)?null:n&&n.__k||t.__k,e=m(E,null,[e]),a=[],_(t,(r?t:n||t).__k=e,o||p,p,void 0!==t.ownerSVGElement,n&&!r?[n]:o?null:f.slice.call(t.childNodes),a,n||p,r),I(a,e)}i={__e:function(e,t){for(var n,r;t=t.__;)if((n=t.__c)&&!n.__)try{if(n.constructor&&null!=n.constructor.getDerivedStateFromError&&(r=!0,n.setState(n.constructor.getDerivedStateFromError(e))),null!=n.componentDidCatch&&(r=!0,n.componentDidCatch(e)),r)return C(n.__E=n)}catch(t){e=t}throw e}},S.prototype.setState=function(e,t){var n;n=this.__s!==this.state?this.__s:this.__s=v({},this.state),"function"==typeof e&&(e=e(n,this.props)),e&&v(n,e),null!=e&&this.__v&&(t&&this.__h.push(t),C(this))},S.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),C(this))},S.prototype.render=E,a=[],s=0,l="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,c=p,d=0,("undefined"!=typeof globalThis?globalThis:window).FullCalendarVDom={Component:S,createElement:m,render:A,createRef:function(){return{}},Fragment:E,createContext:function(e){var t=function(e){var t={},n={__c:"__cC"+d++,__:e,Consumer:function(e,t){return e.children(t)},Provider:function(e){var r,o=this;return this.getChildContext||(r=[],this.getChildContext=function(){return t[n.__c]=o,t},this.shouldComponentUpdate=function(e){o.props.value!==e.value&&r.some((function(t){t.context=e.value,C(t)}))},this.sub=function(e){r.push(e);var t=e.componentWillUnmount;e.componentWillUnmount=function(){r.splice(r.indexOf(e),1),t&&t.call(e)}}),e.children}};return n.Consumer.contextType=n,n.Provider.__=n,n}(e),n=t.Provider;return t.Provider=function(){var e=this,t=!this.getChildContext,r=n.apply(this,arguments);if(t){var o=[];this.shouldComponentUpdate=function(t){e.props.value!==t.value&&o.some((function(e){e.context=t.value,e.forceUpdate()}))},this.sub=function(e){o.push(e);var t=e.componentWillUnmount;e.componentWillUnmount=function(){o.splice(o.indexOf(e),1),t&&t.call(e)}}}return r},t},flushToDom:function(){var e=i.debounceRendering,t=[];i.debounceRendering=function(e){t.push(e)},A(m(U,{}),document.createElement("div"));for(;t.length;)t.shift()();i.debounceRendering=e}};var U=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.render=function(){return m("div",{})},t.prototype.componentDidMount=function(){this.setState({})},t}(S);var L=function(){function e(e,t){this.context=e,this.internalEventSource=t}return e.prototype.remove=function(){this.context.dispatch({type:"REMOVE_EVENT_SOURCE",sourceId:this.internalEventSource.sourceId})},e.prototype.refetch=function(){this.context.dispatch({type:"FETCH_EVENT_SOURCES",sourceIds:[this.internalEventSource.sourceId]})},Object.defineProperty(e.prototype,"id",{get:function(){return this.internalEventSource.publicId},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"url",{get:function(){return this.internalEventSource.meta.url},enumerable:!1,configurable:!0}),e}();function W(e){e.parentNode&&e.parentNode.removeChild(e)}function V(e,t){if(e.closest)return e.closest(t);if(!document.documentElement.contains(e))return null;do{if(z(e,t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null}function z(e,t){return(e.matches||e.matchesSelector||e.msMatchesSelector).call(e,t)}function F(e,t){for(var n=e instanceof HTMLElement?[e]:e,r=[],o=0;o<n.length;o++)for(var i=n[o].querySelectorAll(t),a=0;a<i.length;a++)r.push(i[a]);return r}var B=/(top|left|right|bottom|width|height)$/i;function j(e,t){for(var n in t)G(e,n,t[n])}function G(e,t,n){null==n?e.style[t]="":"number"==typeof n&&B.test(t)?e.style[t]=n+"px":e.style[t]=n}function q(e){e.preventDefault()}function Y(e,t){return function(n){var r=V(n.target,e);r&&t.call(r,n,r)}}function Z(e,t,n,r){var o=Y(n,r);return e.addEventListener(t,o),function(){e.removeEventListener(t,o)}}var X=["webkitTransitionEnd","otransitionend","oTransitionEnd","msTransitionEnd","transitionend"];function K(e,t){var n=function(r){t(r),X.forEach((function(t){e.removeEventListener(t,n)}))};X.forEach((function(t){e.addEventListener(t,n)}))}var J=0;function $(){return String(J++)}function Q(){document.body.classList.add("fc-not-allowed")}function ee(){document.body.classList.remove("fc-not-allowed")}function te(e){e.classList.add("fc-unselectable"),e.addEventListener("selectstart",q)}function ne(e){e.classList.remove("fc-unselectable"),e.removeEventListener("selectstart",q)}function re(e){e.addEventListener("contextmenu",q)}function oe(e){e.removeEventListener("contextmenu",q)}function ie(e){var t,n,r=[],o=[];for("string"==typeof e?o=e.split(/\s*,\s*/):"function"==typeof e?o=[e]:Array.isArray(e)&&(o=e),t=0;t<o.length;t++)"string"==typeof(n=o[t])?r.push("-"===n.charAt(0)?{field:n.substring(1),order:-1}:{field:n,order:1}):"function"==typeof n&&r.push({func:n});return r}function ae(e,t,n){var r,o;for(r=0;r<n.length;r++)if(o=se(e,t,n[r]))return o;return 0}function se(e,t,n){return n.func?n.func(e,t):le(e[n.field],t[n.field])*(n.order||1)}function le(e,t){return e||t?null==t?-1:null==e?1:"string"==typeof e||"string"==typeof t?String(e).localeCompare(String(t)):e-t:0}function ue(e,t){var n=String(e);return"000".substr(0,t-n.length)+n}function ce(e,t){return e-t}function de(e){return e%1==0}function pe(e){var t=e.querySelector(".fc-scrollgrid-shrink-frame"),n=e.querySelector(".fc-scrollgrid-shrink-cushion");if(!t)throw new Error("needs fc-scrollgrid-shrink-frame className");if(!n)throw new Error("needs fc-scrollgrid-shrink-cushion className");return e.getBoundingClientRect().width-t.getBoundingClientRect().width+n.getBoundingClientRect().width}var fe=["sun","mon","tue","wed","thu","fri","sat"];function he(e,t){var n=ke(e);return n[2]+=7*t,Me(n)}function ve(e,t){var n=ke(e);return n[2]+=t,Me(n)}function ge(e,t){var n=ke(e);return n[6]+=t,Me(n)}function me(e,t){return ye(e,t)/7}function ye(e,t){return(t.valueOf()-e.valueOf())/864e5}function Ee(e,t){var n=be(e),r=be(t);return{years:0,months:0,days:Math.round(ye(n,r)),milliseconds:t.valueOf()-r.valueOf()-(e.valueOf()-n.valueOf())}}function Se(e,t){var n=De(e,t);return null!==n&&n%7==0?n/7:null}function De(e,t){return _e(e)===_e(t)?Math.round(ye(e,t)):null}function be(e){return Me([e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()])}function Ce(e,t,n,r){var o=Me([t,0,1+we(t,n,r)]),i=be(e),a=Math.round(ye(o,i));return Math.floor(a/7)+1}function we(e,t,n){var r=7+t-n;return-((7+Me([e,0,r]).getUTCDay()-t)%7)+r-1}function Re(e){return[e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()]}function Te(e){return new Date(e[0],e[1]||0,null==e[2]?1:e[2],e[3]||0,e[4]||0,e[5]||0)}function ke(e){return[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds()]}function Me(e){return 1===e.length&&(e=e.concat([0])),new Date(Date.UTC.apply(Date,e))}function xe(e){return!isNaN(e.valueOf())}function _e(e){return 1e3*e.getUTCHours()*60*60+1e3*e.getUTCMinutes()*60+1e3*e.getUTCSeconds()+e.getUTCMilliseconds()}function Ie(e,t,n,r){return{instanceId:$(),defId:e,range:t,forcedStartTzo:null==n?null:n,forcedEndTzo:null==r?null:r}}var Pe=Object.prototype.hasOwnProperty;function Ne(e,t){var n={};if(t)for(var r in t){for(var o=[],i=e.length-1;i>=0;i--){var a=e[i][r];if("object"==typeof a&&a)o.unshift(a);else if(void 0!==a){n[r]=a;break}}o.length&&(n[r]=Ne(o))}for(i=e.length-1;i>=0;i--){var s=e[i];for(var l in s)l in n||(n[l]=s[l])}return n}function He(e,t){var n={};for(var r in e)t(e[r],r)&&(n[r]=e[r]);return n}function Oe(e,t){var n={};for(var r in e)n[r]=t(e[r],r);return n}function Ae(e){for(var t={},n=0,r=e;n<r.length;n++){t[r[n]]=!0}return t}function Ue(e){var t=[];for(var n in e)t.push(e[n]);return t}function Le(e,t){if(e===t)return!0;for(var n in e)if(Pe.call(e,n)&&!(n in t))return!1;for(var n in t)if(Pe.call(t,n)&&e[n]!==t[n])return!1;return!0}function We(e,t){var n=[];for(var r in e)Pe.call(e,r)&&(r in t||n.push(r));for(var r in t)Pe.call(t,r)&&e[r]!==t[r]&&n.push(r);return n}function Ve(e,t,n){if(void 0===n&&(n={}),e===t)return!0;for(var r in t)if(!(r in e)||!ze(e[r],t[r],n[r]))return!1;for(var r in e)if(!(r in t))return!1;return!0}function ze(e,t,n){return e===t||!0===n||!!n&&n(e,t)}function Fe(e,t,n,r){void 0===t&&(t=0),void 0===r&&(r=1);var o=[];null==n&&(n=Object.keys(e).length);for(var i=t;i<n;i+=r){var a=e[i];void 0!==a&&o.push(a)}return o}function Be(e,t,n){var r=n.dateEnv,o=n.pluginHooks,i=n.options,a=e.defs,s=e.instances;for(var l in s=He(s,(function(e){return!a[e.defId].recurringDef})),a){var u=a[l];if(u.recurringDef){var c=u.recurringDef.duration;c||(c=u.allDay?i.defaultAllDayEventDuration:i.defaultTimedEventDuration);for(var d=0,p=je(u,c,t,r,o.recurringTypes);d<p.length;d++){var f=p[d],h=Ie(l,{start:f,end:r.add(f,c)});s[h.instanceId]=h}}}return{defs:a,instances:s}}function je(e,t,n,r,o){var i=o[e.recurringDef.typeId].expand(e.recurringDef.typeData,{start:r.subtract(n.start,t),end:n.end},r);return e.allDay&&(i=i.map(be)),i}var Ge=["years","months","days","milliseconds"],qe=/^(-?)(?:(\d+)\.)?(\d+):(\d\d)(?::(\d\d)(?:\.(\d\d\d))?)?/;function Ye(e,t){var n;return"string"==typeof e?function(e){var t=qe.exec(e);if(t){var n=t[1]?-1:1;return{years:0,months:0,days:n*(t[2]?parseInt(t[2],10):0),milliseconds:n*(60*(t[3]?parseInt(t[3],10):0)*60*1e3+60*(t[4]?parseInt(t[4],10):0)*1e3+1e3*(t[5]?parseInt(t[5],10):0)+(t[6]?parseInt(t[6],10):0))}}return null}(e):"object"==typeof e&&e?Ze(e):"number"==typeof e?Ze(((n={})[t||"milliseconds"]=e,n)):null}function Ze(e){var t={years:e.years||e.year||0,months:e.months||e.month||0,days:e.days||e.day||0,milliseconds:60*(e.hours||e.hour||0)*60*1e3+60*(e.minutes||e.minute||0)*1e3+1e3*(e.seconds||e.second||0)+(e.milliseconds||e.millisecond||e.ms||0)},n=e.weeks||e.week;return n&&(t.days+=7*n,t.specifiedWeeks=!0),t}function Xe(e,t){return{years:e.years+t.years,months:e.months+t.months,days:e.days+t.days,milliseconds:e.milliseconds+t.milliseconds}}function Ke(e,t){return{years:e.years*t,months:e.months*t,days:e.days*t,milliseconds:e.milliseconds*t}}function Je(e){return $e(e)/864e5}function $e(e){return 31536e6*e.years+2592e6*e.months+864e5*e.days+e.milliseconds}function Qe(e,t){for(var n=null,r=0;r<Ge.length;r++){var o=Ge[r];if(t[o]){var i=e[o]/t[o];if(!de(i)||null!==n&&n!==i)return null;n=i}else if(e[o])return null}return n}function et(e){var t=e.milliseconds;if(t){if(t%1e3!=0)return{unit:"millisecond",value:t};if(t%6e4!=0)return{unit:"second",value:t/1e3};if(t%36e5!=0)return{unit:"minute",value:t/6e4};if(t)return{unit:"hour",value:t/36e5}}return e.days?e.specifiedWeeks&&e.days%7==0?{unit:"week",value:e.days/7}:{unit:"day",value:e.days}:e.months?{unit:"month",value:e.months}:e.years?{unit:"year",value:e.years}:{unit:"millisecond",value:0}}function tt(e){return e.toISOString().replace(/T.*$/,"")}function nt(e){return ue(e.getUTCHours(),2)+":"+ue(e.getUTCMinutes(),2)+":"+ue(e.getUTCSeconds(),2)}function rt(e,t){void 0===t&&(t=!1);var n=e<0?"-":"+",r=Math.abs(e),o=Math.floor(r/60),i=Math.round(r%60);return t?n+ue(o,2)+":"+ue(i,2):"GMT"+n+o+(i?":"+ue(i,2):"")}function ot(e,t,n){if(e===t)return!0;var r,o=e.length;if(o!==t.length)return!1;for(r=0;r<o;r++)if(!(n?n(e[r],t[r]):e[r]===t[r]))return!1;return!0}function it(e,t,n){var r,o;return function(){for(var i=[],a=0;a<arguments.length;a++)i[a]=arguments[a];if(r){if(!ot(r,i)){n&&n(o);var s=e.apply(this,i);t&&t(s,o)||(o=s)}}else o=e.apply(this,i);return r=i,o}}function at(e,t,n){var r,o;return function(i){if(r){if(!Le(r,i)){n&&n(o);var a=e.call(this,i);t&&t(a,o)||(o=a)}}else o=e.call(this,i);return r=i,o}}var st={week:3,separator:0,omitZeroMinute:0,meridiem:0,omitCommas:0},lt={timeZoneName:7,era:6,year:5,month:4,day:2,weekday:2,hour:1,minute:1,second:1},ut=/\s*([ap])\.?m\.?/i,ct=/,/g,dt=/\s+/g,pt=/\u200e/g,ft=/UTC|GMT/,ht=function(){function e(e){var t={},n={},r=0;for(var o in e)o in st?(n[o]=e[o],r=Math.max(st[o],r)):(t[o]=e[o],o in lt&&(r=Math.max(lt[o],r)));this.standardDateProps=t,this.extendedSettings=n,this.severity=r,this.buildFormattingFunc=it(vt)}return e.prototype.format=function(e,t){return this.buildFormattingFunc(this.standardDateProps,this.extendedSettings,t)(e)},e.prototype.formatRange=function(e,t,n,r){var o=this.standardDateProps,i=this.extendedSettings,a=function(e,t,n){if(n.getMarkerYear(e)!==n.getMarkerYear(t))return 5;if(n.getMarkerMonth(e)!==n.getMarkerMonth(t))return 4;if(n.getMarkerDay(e)!==n.getMarkerDay(t))return 2;if(_e(e)!==_e(t))return 1;return 0}(e.marker,t.marker,n.calendarSystem);if(!a)return this.format(e,n);var s=a;!(s>1)||"numeric"!==o.year&&"2-digit"!==o.year||"numeric"!==o.month&&"2-digit"!==o.month||"numeric"!==o.day&&"2-digit"!==o.day||(s=1);var l=this.format(e,n),u=this.format(t,n);if(l===u)return l;var c=vt(function(e,t){var n={};for(var r in e)(!(r in lt)||lt[r]<=t)&&(n[r]=e[r]);return n}(o,s),i,n),d=c(e),p=c(t),f=function(e,t,n,r){var o=0;for(;o<e.length;){var i=e.indexOf(t,o);if(-1===i)break;var a=e.substr(0,i);o=i+t.length;for(var s=e.substr(o),l=0;l<n.length;){var u=n.indexOf(r,l);if(-1===u)break;var c=n.substr(0,u);l=u+r.length;var d=n.substr(l);if(a===c&&s===d)return{before:a,after:s}}}return null}(l,d,u,p),h=i.separator||r||n.defaultSeparator||"";return f?f.before+d+h+p+f.after:l+h+u},e.prototype.getLargestUnit=function(){switch(this.severity){case 7:case 6:case 5:return"year";case 4:return"month";case 3:return"week";case 2:return"day";default:return"time"}},e}();function vt(e,t,n){var o=Object.keys(e).length;return 1===o&&"short"===e.timeZoneName?function(e){return rt(e.timeZoneOffset)}:0===o&&t.week?function(e){return function(e,t,n,r){var o=[];"narrow"===r?o.push(t):"short"===r&&o.push(t," ");o.push(n.simpleNumberFormat.format(e)),"rtl"===n.options.direction&&o.reverse();return o.join("")}(n.computeWeekNumber(e.marker),n.weekText,n.locale,t.week)}:function(e,t,n){e=r({},e),t=r({},t),function(e,t){e.timeZoneName&&(e.hour||(e.hour="2-digit"),e.minute||(e.minute="2-digit"));"long"===e.timeZoneName&&(e.timeZoneName="short");t.omitZeroMinute&&(e.second||e.millisecond)&&delete t.omitZeroMinute}(e,t),e.timeZone="UTC";var o,i=new Intl.DateTimeFormat(n.locale.codes,e);if(t.omitZeroMinute){var a=r({},e);delete a.minute,o=new Intl.DateTimeFormat(n.locale.codes,a)}return function(r){var a=r.marker;return function(e,t,n,r,o){e=e.replace(pt,""),"short"===n.timeZoneName&&(e=function(e,t){var n=!1;e=e.replace(ft,(function(){return n=!0,t})),n||(e+=" "+t);return e}(e,"UTC"===o.timeZone||null==t.timeZoneOffset?"UTC":rt(t.timeZoneOffset)));r.omitCommas&&(e=e.replace(ct,"").trim());r.omitZeroMinute&&(e=e.replace(":00",""));!1===r.meridiem?e=e.replace(ut,"").trim():"narrow"===r.meridiem?e=e.replace(ut,(function(e,t){return t.toLocaleLowerCase()})):"short"===r.meridiem?e=e.replace(ut,(function(e,t){return t.toLocaleLowerCase()+"m"})):"lowercase"===r.meridiem&&(e=e.replace(ut,(function(e){return e.toLocaleLowerCase()})));return e=(e=e.replace(dt," ")).trim()}((o&&!a.getUTCMinutes()?o:i).format(a),r,e,t,n)}}(e,t,n)}function gt(e,t){var n=t.markerToArray(e.marker);return{marker:e.marker,timeZoneOffset:e.timeZoneOffset,array:n,year:n[0],month:n[1],day:n[2],hour:n[3],minute:n[4],second:n[5],millisecond:n[6]}}function mt(e,t,n,r){var o=gt(e,n.calendarSystem);return{date:o,start:o,end:t?gt(t,n.calendarSystem):null,timeZone:n.timeZone,localeCodes:n.locale.codes,defaultSeparator:r||n.defaultSeparator}}var yt=function(){function e(e){this.cmdStr=e}return e.prototype.format=function(e,t,n){return t.cmdFormatter(this.cmdStr,mt(e,null,t,n))},e.prototype.formatRange=function(e,t,n,r){return n.cmdFormatter(this.cmdStr,mt(e,t,n,r))},e}(),Et=function(){function e(e){this.func=e}return e.prototype.format=function(e,t,n){return this.func(mt(e,null,t,n))},e.prototype.formatRange=function(e,t,n,r){return this.func(mt(e,t,n,r))},e}();function St(e){return"object"==typeof e&&e?new ht(e):"string"==typeof e?new yt(e):"function"==typeof e?new Et(e):void 0}var Dt={navLinkDayClick:_t,navLinkWeekClick:_t,duration:Ye,bootstrapFontAwesome:_t,buttonIcons:_t,customButtons:_t,defaultAllDayEventDuration:Ye,defaultTimedEventDuration:Ye,nextDayThreshold:Ye,scrollTime:Ye,slotMinTime:Ye,slotMaxTime:Ye,dayPopoverFormat:St,slotDuration:Ye,snapDuration:Ye,headerToolbar:_t,footerToolbar:_t,defaultRangeSeparator:String,titleRangeSeparator:String,forceEventDuration:Boolean,dayHeaders:Boolean,dayHeaderFormat:St,dayHeaderClassNames:_t,dayHeaderContent:_t,dayHeaderDidMount:_t,dayHeaderWillUnmount:_t,dayCellClassNames:_t,dayCellContent:_t,dayCellDidMount:_t,dayCellWillUnmount:_t,initialView:String,aspectRatio:Number,weekends:Boolean,weekNumberCalculation:_t,weekNumbers:Boolean,weekNumberClassNames:_t,weekNumberContent:_t,weekNumberDidMount:_t,weekNumberWillUnmount:_t,editable:Boolean,viewClassNames:_t,viewDidMount:_t,viewWillUnmount:_t,nowIndicator:Boolean,nowIndicatorClassNames:_t,nowIndicatorContent:_t,nowIndicatorDidMount:_t,nowIndicatorWillUnmount:_t,showNonCurrentDates:Boolean,lazyFetching:Boolean,startParam:String,endParam:String,timeZoneParam:String,timeZone:String,locales:_t,locale:_t,themeSystem:String,dragRevertDuration:Number,dragScroll:Boolean,allDayMaintainDuration:Boolean,unselectAuto:Boolean,dropAccept:_t,eventOrder:ie,handleWindowResize:Boolean,windowResizeDelay:Number,longPressDelay:Number,eventDragMinDistance:Number,expandRows:Boolean,height:_t,contentHeight:_t,direction:String,weekNumberFormat:St,eventResizableFromStart:Boolean,displayEventTime:Boolean,displayEventEnd:Boolean,weekText:String,progressiveEventRendering:Boolean,businessHours:_t,initialDate:_t,now:_t,eventDataTransform:_t,stickyHeaderDates:_t,stickyFooterScrollbar:_t,viewHeight:_t,defaultAllDay:Boolean,eventSourceFailure:_t,eventSourceSuccess:_t,eventDisplay:String,eventStartEditable:Boolean,eventDurationEditable:Boolean,eventOverlap:_t,eventConstraint:_t,eventAllow:_t,eventBackgroundColor:String,eventBorderColor:String,eventTextColor:String,eventColor:String,eventClassNames:_t,eventContent:_t,eventDidMount:_t,eventWillUnmount:_t,selectConstraint:_t,selectOverlap:_t,selectAllow:_t,droppable:Boolean,unselectCancel:String,slotLabelFormat:_t,slotLaneClassNames:_t,slotLaneContent:_t,slotLaneDidMount:_t,slotLaneWillUnmount:_t,slotLabelClassNames:_t,slotLabelContent:_t,slotLabelDidMount:_t,slotLabelWillUnmount:_t,dayMaxEvents:_t,dayMaxEventRows:_t,dayMinWidth:Number,slotLabelInterval:Ye,allDayText:String,allDayClassNames:_t,allDayContent:_t,allDayDidMount:_t,allDayWillUnmount:_t,slotMinWidth:Number,navLinks:Boolean,eventTimeFormat:St,rerenderDelay:Number,moreLinkText:_t,selectMinDistance:Number,selectable:Boolean,selectLongPressDelay:Number,eventLongPressDelay:Number,selectMirror:Boolean,eventMinHeight:Number,slotEventOverlap:Boolean,plugins:_t,firstDay:Number,dayCount:Number,dateAlignment:String,dateIncrement:Ye,hiddenDays:_t,monthMode:Boolean,fixedWeekCount:Boolean,validRange:_t,visibleRange:_t,titleFormat:_t,noEventsText:String},bt={eventDisplay:"auto",defaultRangeSeparator:" - ",titleRangeSeparator:" – ",defaultTimedEventDuration:"01:00:00",defaultAllDayEventDuration:{day:1},forceEventDuration:!1,nextDayThreshold:"00:00:00",dayHeaders:!0,initialView:"",aspectRatio:1.35,headerToolbar:{start:"title",center:"",end:"today prev,next"},weekends:!0,weekNumbers:!1,weekNumberCalculation:"local",editable:!1,nowIndicator:!1,scrollTime:"06:00:00",slotMinTime:"00:00:00",slotMaxTime:"24:00:00",showNonCurrentDates:!0,lazyFetching:!0,startParam:"start",endParam:"end",timeZoneParam:"timeZone",timeZone:"local",locales:[],locale:"",themeSystem:"standard",dragRevertDuration:500,dragScroll:!0,allDayMaintainDuration:!1,unselectAuto:!0,dropAccept:"*",eventOrder:"start,-duration,allDay,title",dayPopoverFormat:{month:"long",day:"numeric",year:"numeric"},handleWindowResize:!0,windowResizeDelay:100,longPressDelay:1e3,eventDragMinDistance:5,expandRows:!1,navLinks:!1,selectable:!1},Ct={datesSet:_t,eventsSet:_t,eventAdd:_t,eventChange:_t,eventRemove:_t,windowResize:_t,eventClick:_t,eventMouseEnter:_t,eventMouseLeave:_t,select:_t,unselect:_t,loading:_t,_unmount:_t,_beforeprint:_t,_afterprint:_t,_noEventDrop:_t,_noEventResize:_t,_resize:_t,_scrollRequest:_t},wt={buttonText:_t,views:_t,plugins:_t,initialEvents:_t,events:_t,eventSources:_t},Rt={headerToolbar:Tt,footerToolbar:Tt,buttonText:Tt,buttonIcons:Tt};function Tt(e,t){return"object"==typeof e&&"object"==typeof t&&e&&t?Le(e,t):e===t}var kt={type:String,component:_t,buttonText:String,buttonTextKey:String,dateProfileGeneratorClass:_t,usesMinMaxTime:Boolean,classNames:_t,content:_t,didMount:_t,willUnmount:_t};function Mt(e){return Ne(e,Rt)}function xt(e,t){var n={},r={};for(var o in t)o in e&&(n[o]=t[o](e[o]));for(var o in e)o in t||(r[o]=e[o]);return{refined:n,extra:r}}function _t(e){return e}function It(e,t,n,r){for(var o={defs:{},instances:{}},i=Zt(n),a=0,s=e;a<s.length;a++){var l=qt(s[a],t,n,r,i);l&&Pt(l,o)}return o}function Pt(e,t){return void 0===t&&(t={defs:{},instances:{}}),t.defs[e.def.defId]=e.def,e.instance&&(t.instances[e.instance.instanceId]=e.instance),t}function Nt(e,t){var n=e.instances[t];if(n){var r=e.defs[n.defId],o=At(e,(function(e){return t=r,n=e,Boolean(t.groupId&&t.groupId===n.groupId);var t,n}));return o.defs[r.defId]=r,o.instances[n.instanceId]=n,o}return{defs:{},instances:{}}}function Ht(){return{defs:{},instances:{}}}function Ot(e,t){return{defs:r(r({},e.defs),t.defs),instances:r(r({},e.instances),t.instances)}}function At(e,t){var n=He(e.defs,t),r=He(e.instances,(function(e){return n[e.defId]}));return{defs:n,instances:r}}function Ut(e){return Array.isArray(e)?e:"string"==typeof e?e.split(/\s+/):[]}var Lt={display:String,editable:Boolean,startEditable:Boolean,durationEditable:Boolean,constraint:_t,overlap:_t,allow:_t,className:Ut,classNames:Ut,color:String,backgroundColor:String,borderColor:String,textColor:String};function Wt(e,t){var n=function(e,t){return Array.isArray(e)?It(e,null,t,!0):"object"==typeof e&&e?It([e],null,t,!0):null!=e?String(e):null}(e.constraint,t);return{display:e.display||null,startEditable:null!=e.startEditable?e.startEditable:e.editable,durationEditable:null!=e.durationEditable?e.durationEditable:e.editable,constraints:null!=n?[n]:[],overlap:null!=e.overlap?e.overlap:null,allows:null!=e.allow?[e.allow]:[],backgroundColor:e.backgroundColor||e.color||"",borderColor:e.borderColor||e.color||"",textColor:e.textColor||"",classNames:(e.className||[]).concat(e.classNames||[])}}function Vt(e){return e.reduce(zt,Ft)}function zt(e,t){return{display:null!=t.display?t.display:e.display,startEditable:null!=t.startEditable?t.startEditable:e.startEditable,durationEditable:null!=t.durationEditable?t.durationEditable:e.durationEditable,constraints:e.constraints.concat(t.constraints),overlap:"boolean"==typeof t.overlap?t.overlap:e.overlap,allows:e.allows.concat(t.allows),backgroundColor:t.backgroundColor||e.backgroundColor,borderColor:t.borderColor||e.borderColor,textColor:t.textColor||e.textColor,classNames:e.classNames.concat(t.classNames)}}var Ft={display:null,startEditable:null,durationEditable:null,constraints:[],overlap:null,allows:[],backgroundColor:"",borderColor:"",textColor:"",classNames:[]},Bt={id:String,groupId:String,title:String,url:String},jt={start:_t,end:_t,date:_t,allDay:Boolean},Gt=r(r(r({},Bt),jt),{extendedProps:_t});function qt(e,t,n,r,o){void 0===o&&(o=Zt(n));var i=Yt(e,n,o),a=i.refined,s=i.extra,l=function(e,t){var n=null;e&&(n=e.defaultAllDay);null==n&&(n=t.options.defaultAllDay);return n}(t,n),u=function(e,t,n,r){for(var o=0;o<r.length;o++){var i=r[o].parse(e,n);if(i){var a=e.allDay;return null==a&&null==(a=t)&&null==(a=i.allDayGuess)&&(a=!1),{allDay:a,duration:i.duration,typeData:i.typeData,typeId:o}}}return null}(a,l,n.dateEnv,n.pluginHooks.recurringTypes);if(u)return(c=Xt(a,s,t?t.sourceId:"",u.allDay,Boolean(u.duration),n)).recurringDef={typeId:u.typeId,typeData:u.typeData,duration:u.duration},{def:c,instance:null};var c,d=function(e,t,n,r){var o,i,a=e.allDay,s=null,l=!1,u=null,c=null!=e.start?e.start:e.date;if(o=n.dateEnv.createMarkerMeta(c))s=o.marker;else if(!r)return null;null!=e.end&&(i=n.dateEnv.createMarkerMeta(e.end));null==a&&(a=null!=t?t:(!o||o.isTimeUnspecified)&&(!i||i.isTimeUnspecified));a&&s&&(s=be(s));i&&(u=i.marker,a&&(u=be(u)),s&&u<=s&&(u=null));u?l=!0:r||(l=n.options.forceEventDuration||!1,u=n.dateEnv.add(s,a?n.options.defaultAllDayEventDuration:n.options.defaultTimedEventDuration));return{allDay:a,hasEnd:l,range:{start:s,end:u},forcedStartTzo:o?o.forcedTzo:null,forcedEndTzo:i?i.forcedTzo:null}}(a,l,n,r);return d?{def:c=Xt(a,s,t?t.sourceId:"",d.allDay,d.hasEnd,n),instance:Ie(c.defId,d.range,d.forcedStartTzo,d.forcedEndTzo)}:null}function Yt(e,t,n){return void 0===n&&(n=Zt(t)),xt(e,n)}function Zt(e){return r(r(r({},Lt),Gt),e.pluginHooks.eventRefiners)}function Xt(e,t,n,o,i,a){for(var s={title:e.title||"",groupId:e.groupId||"",publicId:e.id||"",url:e.url||"",recurringDef:null,defId:$(),sourceId:n,allDay:o,hasEnd:i,ui:Wt(e,a),extendedProps:r(r({},e.extendedProps||{}),t)},l=0,u=a.pluginHooks.eventDefMemberAdders;l<u.length;l++){var c=u[l];r(s,c(e))}return Object.freeze(s.ui.classNames),Object.freeze(s.extendedProps),s}function Kt(e){var t=Math.floor(ye(e.start,e.end))||1,n=be(e.start);return{start:n,end:ve(n,t)}}function Jt(e,t){void 0===t&&(t=Ye(0));var n=null,r=null;if(e.end){r=be(e.end);var o=e.end.valueOf()-r.valueOf();o&&o>=$e(t)&&(r=ve(r,1))}return e.start&&(n=be(e.start),r&&r<=n&&(r=ve(n,1))),{start:n,end:r}}function $t(e){var t=Jt(e);return ye(t.start,t.end)>1}function Qt(e,t,n,r){return"year"===r?Ye(n.diffWholeYears(e,t),"year"):"month"===r?Ye(n.diffWholeMonths(e,t),"month"):Ee(e,t)}function en(e,t){var n,r,o=[],i=t.start;for(e.sort(tn),n=0;n<e.length;n++)(r=e[n]).start>i&&o.push({start:i,end:r.start}),r.end>i&&(i=r.end);return i<t.end&&o.push({start:i,end:t.end}),o}function tn(e,t){return e.start.valueOf()-t.start.valueOf()}function nn(e,t){var n=e.start,r=e.end,o=null;return null!==t.start&&(n=null===n?t.start:new Date(Math.max(n.valueOf(),t.start.valueOf()))),null!=t.end&&(r=null===r?t.end:new Date(Math.min(r.valueOf(),t.end.valueOf()))),(null===n||null===r||n<r)&&(o={start:n,end:r}),o}function rn(e,t){return(null===e.start?null:e.start.valueOf())===(null===t.start?null:t.start.valueOf())&&(null===e.end?null:e.end.valueOf())===(null===t.end?null:t.end.valueOf())}function on(e,t){return(null===e.end||null===t.start||e.end>t.start)&&(null===e.start||null===t.end||e.start<t.end)}function an(e,t){return(null===e.start||null!==t.start&&t.start>=e.start)&&(null===e.end||null!==t.end&&t.end<=e.end)}function sn(e,t){return(null===e.start||t>=e.start)&&(null===e.end||t<e.end)}function ln(e,t,n,r){var o={},i={},a={},s=[],l=[],u=pn(e.defs,t);for(var c in e.defs){"inverse-background"===(f=u[(S=e.defs[c]).defId]).display&&(S.groupId?(o[S.groupId]=[],a[S.groupId]||(a[S.groupId]=S)):i[c]=[])}for(var d in e.instances){var p=e.instances[d],f=u[(S=e.defs[p.defId]).defId],h=p.range,v=!S.allDay&&r?Jt(h,r):h,g=nn(v,n);g&&("inverse-background"===f.display?S.groupId?o[S.groupId].push(g):i[p.defId].push(g):"none"!==f.display&&("background"===f.display?s:l).push({def:S,ui:f,instance:p,range:g,isStart:v.start&&v.start.valueOf()===g.start.valueOf(),isEnd:v.end&&v.end.valueOf()===g.end.valueOf()}))}for(var m in o)for(var y=0,E=en(o[m],n);y<E.length;y++){var S,D=E[y];f=u[(S=a[m]).defId];s.push({def:S,ui:f,instance:null,range:D,isStart:!1,isEnd:!1})}for(var c in i)for(var b=0,C=en(i[c],n);b<C.length;b++){D=C[b];s.push({def:e.defs[c],ui:u[c],instance:null,range:D,isStart:!1,isEnd:!1})}return{bg:s,fg:l}}function un(e){return"background"===e.ui.display||"inverse-background"===e.ui.display}function cn(e,t){e.fcSeg=t}function dn(e){return e.fcSeg||e.parentNode.fcSeg||null}function pn(e,t){return Oe(e,(function(e){return fn(e,t)}))}function fn(e,t){var n=[];return t[""]&&n.push(t[""]),t[e.defId]&&n.push(t[e.defId]),n.push(e.ui),Vt(n)}function hn(e,t){var n=e.map(vn);return n.sort((function(e,n){return ae(e,n,t)})),n.map((function(e){return e._seg}))}function vn(e){var t=e.eventRange,n=t.def,o=t.instance?t.instance.range:t.range,i=o.start?o.start.valueOf():0,a=o.end?o.end.valueOf():0;return r(r(r({},n.extendedProps),n),{id:n.publicId,start:i,end:a,duration:a-i,allDay:Number(n.allDay),_seg:e})}function gn(e,t){for(var n=t.pluginHooks.isDraggableTransformers,r=e.eventRange,o=r.def,i=r.ui,a=i.startEditable,s=0,l=n;s<l.length;s++){a=(0,l[s])(a,o,i,t)}return a}function mn(e,t){return e.isStart&&e.eventRange.ui.durationEditable&&t.options.eventResizableFromStart}function yn(e,t){return e.isEnd&&e.eventRange.ui.durationEditable}function En(e,t,n,r,o,i,a){var s=n.dateEnv,l=n.options,u=l.displayEventTime,c=l.displayEventEnd,d=e.eventRange.def,p=e.eventRange.instance;if(null==u&&(u=!1!==r),null==c&&(c=!1!==o),u&&!d.allDay&&(e.isStart||e.isEnd)){var f=i||(e.isStart?p.range.start:e.start||e.eventRange.range.start),h=a||(e.isEnd?p.range.end:e.end||e.eventRange.range.end);return c&&d.hasEnd?s.formatRange(f,h,t,{forcedStartTzo:i?null:p.forcedStartTzo,forcedEndTzo:a?null:p.forcedEndTzo}):s.format(f,t,{forcedTzo:i?null:p.forcedStartTzo})}return""}function Sn(e,t,n){var r=e.eventRange.range;return{isPast:r.end<(n||t.start),isFuture:r.start>=(n||t.end),isToday:t&&sn(t,r.start)}}function Dn(e){var t=["fc-event"];return e.isMirror&&t.push("fc-event-mirror"),e.isDraggable&&t.push("fc-event-draggable"),(e.isStartResizable||e.isEndResizable)&&t.push("fc-event-resizable"),e.isDragging&&t.push("fc-event-dragging"),e.isResizing&&t.push("fc-event-resizing"),e.isSelected&&t.push("fc-event-selected"),e.isStart&&t.push("fc-event-start"),e.isEnd&&t.push("fc-event-end"),e.isPast&&t.push("fc-event-past"),e.isToday&&t.push("fc-event-today"),e.isFuture&&t.push("fc-event-future"),t}function bn(e){return e.instance?e.instance.instanceId:e.def.defId+":"+e.range.start.toISOString()}var Cn={start:_t,end:_t,allDay:Boolean};function wn(e,t,n){var o=function(e,t){var n=xt(e,Cn),o=n.refined,i=n.extra,a=o.start?t.createMarkerMeta(o.start):null,s=o.end?t.createMarkerMeta(o.end):null,l=o.allDay;null==l&&(l=a&&a.isTimeUnspecified&&(!s||s.isTimeUnspecified));return r({range:{start:a?a.marker:null,end:s?s.marker:null},allDay:l},i)}(e,t),i=o.range;if(!i.start)return null;if(!i.end){if(null==n)return null;i.end=t.add(i.start,n)}return o}function Rn(e,t){return rn(e.range,t.range)&&e.allDay===t.allDay&&function(e,t){for(var n in t)if("range"!==n&&"allDay"!==n&&e[n]!==t[n])return!1;for(var n in e)if(!(n in t))return!1;return!0}(e,t)}function Tn(e,t,n){return r(r({},kn(e,t,n)),{timeZone:t.timeZone})}function kn(e,t,n){return{start:t.toDate(e.start),end:t.toDate(e.end),startStr:t.formatIso(e.start,{omitTime:n}),endStr:t.formatIso(e.end,{omitTime:n})}}function Mn(e,t,n){var r=Yt({editable:!1},n),o=Xt(r.refined,r.extra,"",e.allDay,!0,n);return{def:o,ui:fn(o,t),instance:Ie(o.defId,e.range),range:e.range,isStart:!0,isEnd:!0}}function xn(e,t,n){n.emitter.trigger("select",r(r({},_n(e,n)),{jsEvent:t?t.origEvent:null,view:n.viewApi||n.calendarApi.view}))}function _n(e,t){for(var n,o,i={},a=0,s=t.pluginHooks.dateSpanTransforms;a<s.length;a++){var l=s[a];r(i,l(e,t))}return r(i,(n=e,o=t.dateEnv,r(r({},kn(n.range,o,n.allDay)),{allDay:n.allDay}))),i}function In(e,t,n){var r=n.dateEnv,o=n.options,i=t;return e?(i=be(i),i=r.add(i,o.defaultAllDayEventDuration)):i=r.add(i,o.defaultTimedEventDuration),i}function Pn(e,t,n,r){var o=pn(e.defs,t),i={defs:{},instances:{}};for(var a in e.defs){var s=e.defs[a];i.defs[a]=Nn(s,o[a],n,r)}for(var l in e.instances){var u=e.instances[l];s=i.defs[u.defId];i.instances[l]=Hn(u,s,o[u.defId],n,r)}return i}function Nn(e,t,n,o){var i=n.standardProps||{};null==i.hasEnd&&t.durationEditable&&(n.startDelta||n.endDelta)&&(i.hasEnd=!0);var a=r(r(r({},e),i),{ui:r(r({},e.ui),i.ui)});n.extendedProps&&(a.extendedProps=r(r({},a.extendedProps),n.extendedProps));for(var s=0,l=o.pluginHooks.eventDefMutationAppliers;s<l.length;s++){(0,l[s])(a,n,o)}return!a.hasEnd&&o.options.forceEventDuration&&(a.hasEnd=!0),a}function Hn(e,t,n,o,i){var a=i.dateEnv,s=o.standardProps&&!0===o.standardProps.allDay,l=o.standardProps&&!1===o.standardProps.hasEnd,u=r({},e);return s&&(u.range=Kt(u.range)),o.datesDelta&&n.startEditable&&(u.range={start:a.add(u.range.start,o.datesDelta),end:a.add(u.range.end,o.datesDelta)}),o.startDelta&&n.durationEditable&&(u.range={start:a.add(u.range.start,o.startDelta),end:u.range.end}),o.endDelta&&n.durationEditable&&(u.range={start:u.range.start,end:a.add(u.range.end,o.endDelta)}),l&&(u.range={start:u.range.start,end:In(t.allDay,u.range.start,i)}),t.allDay&&(u.range={start:be(u.range.start),end:be(u.range.end)}),u.range.end<u.range.start&&(u.range.end=In(t.allDay,u.range.start,i)),u}var On=function(){function e(e,t,n){this.type=e,this.getCurrentData=t,this.dateEnv=n}return Object.defineProperty(e.prototype,"calendar",{get:function(){return this.getCurrentData().calendarApi},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"title",{get:function(){return this.getCurrentData().viewTitle},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"activeStart",{get:function(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.start)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"activeEnd",{get:function(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.end)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"currentStart",{get:function(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.start)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"currentEnd",{get:function(){return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.end)},enumerable:!1,configurable:!0}),e.prototype.getOption=function(e){return this.getCurrentData().options[e]},e}(),An={id:String,defaultAllDay:Boolean,url:String,events:_t,eventDataTransform:_t,success:_t,failure:_t};function Un(e,t,n){var r;if(void 0===n&&(n=Ln(t)),"string"==typeof e?r={url:e}:"function"==typeof e||Array.isArray(e)?r={events:e}:"object"==typeof e&&e&&(r=e),r){var o=xt(r,n),i=o.refined,a=o.extra,s=function(e,t){for(var n=t.pluginHooks.eventSourceDefs,r=n.length-1;r>=0;r--){var o=n[r].parseMeta(e);if(o)return{sourceDefId:r,meta:o}}return null}(i,t);if(s)return{_raw:e,isFetching:!1,latestFetchId:"",fetchRange:null,defaultAllDay:i.defaultAllDay,eventDataTransform:i.eventDataTransform,success:i.success,failure:i.failure,publicId:i.id||"",sourceId:$(),sourceDefId:s.sourceDefId,meta:s.meta,ui:Wt(i,t),extendedProps:a}}return null}function Ln(e){return r(r(r({},Lt),An),e.pluginHooks.eventSourceRefiners)}function Wn(e,t){return"function"==typeof e&&(e=e()),null==e?t.createNowMarker():t.createMarker(e)}var Vn=function(){function e(){}return e.prototype.getCurrentData=function(){return this.currentDataManager.getCurrentData()},e.prototype.dispatch=function(e){return this.currentDataManager.dispatch(e)},Object.defineProperty(e.prototype,"view",{get:function(){return this.getCurrentData().viewApi},enumerable:!1,configurable:!0}),e.prototype.batchRendering=function(e){e()},e.prototype.updateSize=function(){this.trigger("_resize",!0)},e.prototype.setOption=function(e,t){this.dispatch({type:"SET_OPTION",optionName:e,rawOptionValue:t})},e.prototype.getOption=function(e){return this.currentDataManager.currentCalendarOptionsInput[e]},e.prototype.getAvailableLocaleCodes=function(){return Object.keys(this.getCurrentData().availableRawLocales)},e.prototype.on=function(e,t){var n=this.currentDataManager;n.currentCalendarOptionsRefiners[e]?n.emitter.on(e,t):console.warn("Unknown listener name '"+e+"'")},e.prototype.off=function(e,t){this.currentDataManager.emitter.off(e,t)},e.prototype.trigger=function(e){for(var t,n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];(t=this.currentDataManager.emitter).trigger.apply(t,o([e],n))},e.prototype.changeView=function(e,t){var n=this;this.batchRendering((function(){if(n.unselect(),t)if(t.start&&t.end)n.dispatch({type:"CHANGE_VIEW_TYPE",viewType:e}),n.dispatch({type:"SET_OPTION",optionName:"visibleRange",rawOptionValue:t});else{var r=n.getCurrentData().dateEnv;n.dispatch({type:"CHANGE_VIEW_TYPE",viewType:e,dateMarker:r.createMarker(t)})}else n.dispatch({type:"CHANGE_VIEW_TYPE",viewType:e})}))},e.prototype.zoomTo=function(e,t){var n;t=t||"day",n=this.getCurrentData().viewSpecs[t]||this.getUnitViewSpec(t),this.unselect(),n?this.dispatch({type:"CHANGE_VIEW_TYPE",viewType:n.type,dateMarker:e}):this.dispatch({type:"CHANGE_DATE",dateMarker:e})},e.prototype.getUnitViewSpec=function(e){var t,n,r=this.getCurrentData(),o=r.viewSpecs,i=r.toolbarConfig,a=[].concat(i.viewsWithButtons);for(var s in o)a.push(s);for(t=0;t<a.length;t++)if((n=o[a[t]])&&n.singleUnit===e)return n},e.prototype.prev=function(){this.unselect(),this.dispatch({type:"PREV"})},e.prototype.next=function(){this.unselect(),this.dispatch({type:"NEXT"})},e.prototype.prevYear=function(){var e=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:e.dateEnv.addYears(e.currentDate,-1)})},e.prototype.nextYear=function(){var e=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:e.dateEnv.addYears(e.currentDate,1)})},e.prototype.today=function(){var e=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:Wn(e.calendarOptions.now,e.dateEnv)})},e.prototype.gotoDate=function(e){var t=this.getCurrentData();this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:t.dateEnv.createMarker(e)})},e.prototype.incrementDate=function(e){var t=this.getCurrentData(),n=Ye(e);n&&(this.unselect(),this.dispatch({type:"CHANGE_DATE",dateMarker:t.dateEnv.add(t.currentDate,n)}))},e.prototype.getDate=function(){var e=this.getCurrentData();return e.dateEnv.toDate(e.currentDate)},e.prototype.formatDate=function(e,t){var n=this.getCurrentData().dateEnv;return n.format(n.createMarker(e),St(t))},e.prototype.formatRange=function(e,t,n){var r=this.getCurrentData().dateEnv;return r.formatRange(r.createMarker(e),r.createMarker(t),St(n),n)},e.prototype.formatIso=function(e,t){var n=this.getCurrentData().dateEnv;return n.formatIso(n.createMarker(e),{omitTime:t})},e.prototype.select=function(e,t){var n;n=null==t?null!=e.start?e:{start:e,end:null}:{start:e,end:t};var r=this.getCurrentData(),o=wn(n,r.dateEnv,Ye({days:1}));o&&(this.dispatch({type:"SELECT_DATES",selection:o}),xn(o,null,r))},e.prototype.unselect=function(e){var t=this.getCurrentData();t.dateSelection&&(this.dispatch({type:"UNSELECT_DATES"}),function(e,t){t.emitter.trigger("unselect",{jsEvent:e?e.origEvent:null,view:t.viewApi||t.calendarApi.view})}(e,t))},e.prototype.addEvent=function(e,t){if(e instanceof zn){var n=e._def,r=e._instance;return this.getCurrentData().eventStore.defs[n.defId]||(this.dispatch({type:"ADD_EVENTS",eventStore:Pt({def:n,instance:r})}),this.triggerEventAdd(e)),e}var o,i=this.getCurrentData();if(t instanceof L)o=t.internalEventSource;else if("boolean"==typeof t)t&&(o=Ue(i.eventSources)[0]);else if(null!=t){var a=this.getEventSourceById(t);if(!a)return console.warn('Could not find an event source with ID "'+t+'"'),null;o=a.internalEventSource}var s=qt(e,o,i,!1);if(s){var l=new zn(i,s.def,s.def.recurringDef?null:s.instance);return this.dispatch({type:"ADD_EVENTS",eventStore:Pt(s)}),this.triggerEventAdd(l),l}return null},e.prototype.triggerEventAdd=function(e){var t=this;this.getCurrentData().emitter.trigger("eventAdd",{event:e,relatedEvents:[],revert:function(){t.dispatch({type:"REMOVE_EVENTS",eventStore:Fn(e)})}})},e.prototype.getEventById=function(e){var t=this.getCurrentData(),n=t.eventStore,r=n.defs,o=n.instances;for(var i in e=String(e),r){var a=r[i];if(a.publicId===e){if(a.recurringDef)return new zn(t,a,null);for(var s in o){var l=o[s];if(l.defId===a.defId)return new zn(t,a,l)}}}return null},e.prototype.getEvents=function(){var e=this.getCurrentData();return Bn(e.eventStore,e)},e.prototype.removeAllEvents=function(){this.dispatch({type:"REMOVE_ALL_EVENTS"})},e.prototype.getEventSources=function(){var e=this.getCurrentData(),t=e.eventSources,n=[];for(var r in t)n.push(new L(e,t[r]));return n},e.prototype.getEventSourceById=function(e){var t=this.getCurrentData(),n=t.eventSources;for(var r in e=String(e),n)if(n[r].publicId===e)return new L(t,n[r]);return null},e.prototype.addEventSource=function(e){var t=this.getCurrentData();if(e instanceof L)return t.eventSources[e.internalEventSource.sourceId]||this.dispatch({type:"ADD_EVENT_SOURCES",sources:[e.internalEventSource]}),e;var n=Un(e,t);return n?(this.dispatch({type:"ADD_EVENT_SOURCES",sources:[n]}),new L(t,n)):null},e.prototype.removeAllEventSources=function(){this.dispatch({type:"REMOVE_ALL_EVENT_SOURCES"})},e.prototype.refetchEvents=function(){this.dispatch({type:"FETCH_EVENT_SOURCES"})},e.prototype.scrollToTime=function(e){var t=Ye(e);t&&this.trigger("_scrollRequest",{time:t})},e}(),zn=function(){function e(e,t,n){this._context=e,this._def=t,this._instance=n||null}return e.prototype.setProp=function(e,t){var n,r;if(e in jt)console.warn("Could not set date-related prop 'name'. Use one of the date-related methods instead.");else if(e in Bt)t=Bt[e](t),this.mutate({standardProps:(n={},n[e]=t,n)});else if(e in Lt){var o=Lt[e](t);"color"===e?o={backgroundColor:t,borderColor:t}:"editable"===e?o={startEditable:t,durationEditable:t}:((r={})[e]=t,o=r),this.mutate({standardProps:{ui:o}})}else console.warn("Could not set prop '"+e+"'. Use setExtendedProp instead.")},e.prototype.setExtendedProp=function(e,t){var n;this.mutate({extendedProps:(n={},n[e]=t,n)})},e.prototype.setStart=function(e,t){void 0===t&&(t={});var n=this._context.dateEnv,r=n.createMarker(e);if(r&&this._instance){var o=Qt(this._instance.range.start,r,n,t.granularity);t.maintainDuration?this.mutate({datesDelta:o}):this.mutate({startDelta:o})}},e.prototype.setEnd=function(e,t){void 0===t&&(t={});var n,r=this._context.dateEnv;if((null==e||(n=r.createMarker(e)))&&this._instance)if(n){var o=Qt(this._instance.range.end,n,r,t.granularity);this.mutate({endDelta:o})}else this.mutate({standardProps:{hasEnd:!1}})},e.prototype.setDates=function(e,t,n){void 0===n&&(n={});var r,o,i,a=this._context.dateEnv,s={allDay:n.allDay},l=a.createMarker(e);if(l&&((null==t||(r=a.createMarker(t)))&&this._instance)){var u=this._instance.range;!0===n.allDay&&(u=Kt(u));var c=Qt(u.start,l,a,n.granularity);if(r){var d=Qt(u.end,r,a,n.granularity);i=d,(o=c).years===i.years&&o.months===i.months&&o.days===i.days&&o.milliseconds===i.milliseconds?this.mutate({datesDelta:c,standardProps:s}):this.mutate({startDelta:c,endDelta:d,standardProps:s})}else s.hasEnd=!1,this.mutate({datesDelta:c,standardProps:s})}},e.prototype.moveStart=function(e){var t=Ye(e);t&&this.mutate({startDelta:t})},e.prototype.moveEnd=function(e){var t=Ye(e);t&&this.mutate({endDelta:t})},e.prototype.moveDates=function(e){var t=Ye(e);t&&this.mutate({datesDelta:t})},e.prototype.setAllDay=function(e,t){void 0===t&&(t={});var n={allDay:e},r=t.maintainDuration;null==r&&(r=this._context.options.allDayMaintainDuration),this._def.allDay!==e&&(n.hasEnd=r),this.mutate({standardProps:n})},e.prototype.formatRange=function(e){var t=this._context.dateEnv,n=this._instance,r=St(e);return this._def.hasEnd?t.formatRange(n.range.start,n.range.end,r,{forcedStartTzo:n.forcedStartTzo,forcedEndTzo:n.forcedEndTzo}):t.format(n.range.start,r,{forcedTzo:n.forcedStartTzo})},e.prototype.mutate=function(t){var n=this._instance;if(n){var r=this._def,o=this._context,i=Nt(o.getCurrentData().eventStore,n.instanceId);i=Pn(i,{"":{display:"",startEditable:!0,durationEditable:!0,constraints:[],overlap:null,allows:[],backgroundColor:"",borderColor:"",textColor:"",classNames:[]}},t,o);var a=new e(o,r,n);this._def=i.defs[r.defId],this._instance=i.instances[n.instanceId],o.dispatch({type:"MERGE_EVENTS",eventStore:i}),o.emitter.trigger("eventChange",{oldEvent:a,event:this,relatedEvents:Bn(i,o,n),revert:function(){o.dispatch({type:"REMOVE_EVENTS",eventStore:i})}})}},e.prototype.remove=function(){var e=this._context,t=Fn(this);e.dispatch({type:"REMOVE_EVENTS",eventStore:t}),e.emitter.trigger("eventRemove",{event:this,relatedEvents:[],revert:function(){e.dispatch({type:"MERGE_EVENTS",eventStore:t})}})},Object.defineProperty(e.prototype,"source",{get:function(){var e=this._def.sourceId;return e?new L(this._context,this._context.getCurrentData().eventSources[e]):null},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"start",{get:function(){return this._instance?this._context.dateEnv.toDate(this._instance.range.start):null},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"end",{get:function(){return this._instance&&this._def.hasEnd?this._context.dateEnv.toDate(this._instance.range.end):null},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"startStr",{get:function(){var e=this._instance;return e?this._context.dateEnv.formatIso(e.range.start,{omitTime:this._def.allDay,forcedTzo:e.forcedStartTzo}):""},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"endStr",{get:function(){var e=this._instance;return e&&this._def.hasEnd?this._context.dateEnv.formatIso(e.range.end,{omitTime:this._def.allDay,forcedTzo:e.forcedEndTzo}):""},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"id",{get:function(){return this._def.publicId},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"groupId",{get:function(){return this._def.groupId},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"allDay",{get:function(){return this._def.allDay},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"title",{get:function(){return this._def.title},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"url",{get:function(){return this._def.url},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"display",{get:function(){return this._def.ui.display||"auto"},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"startEditable",{get:function(){return this._def.ui.startEditable},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"durationEditable",{get:function(){return this._def.ui.durationEditable},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"constraint",{get:function(){return this._def.ui.constraints[0]||null},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"overlap",{get:function(){return this._def.ui.overlap},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"allow",{get:function(){return this._def.ui.allows[0]||null},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"backgroundColor",{get:function(){return this._def.ui.backgroundColor},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"borderColor",{get:function(){return this._def.ui.borderColor},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"textColor",{get:function(){return this._def.ui.textColor},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"classNames",{get:function(){return this._def.ui.classNames},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"extendedProps",{get:function(){return this._def.extendedProps},enumerable:!1,configurable:!0}),e.prototype.toPlainObject=function(e){void 0===e&&(e={});var t=this._def,n=t.ui,o=this.startStr,i=this.endStr,a={};return t.title&&(a.title=t.title),o&&(a.start=o),i&&(a.end=i),t.publicId&&(a.id=t.publicId),t.groupId&&(a.groupId=t.groupId),t.url&&(a.url=t.url),n.display&&"auto"!==n.display&&(a.display=n.display),e.collapseColor&&n.backgroundColor&&n.backgroundColor===n.borderColor?a.color=n.backgroundColor:(n.backgroundColor&&(a.backgroundColor=n.backgroundColor),n.borderColor&&(a.borderColor=n.borderColor)),n.textColor&&(a.textColor=n.textColor),n.classNames.length&&(a.classNames=n.classNames),Object.keys(t.extendedProps).length&&(e.collapseExtendedProps?r(a,t.extendedProps):a.extendedProps=t.extendedProps),a},e.prototype.toJSON=function(){return this.toPlainObject()},e}();function Fn(e){var t,n,r=e._def,o=e._instance;return{defs:(t={},t[r.defId]=r,t),instances:o?(n={},n[o.instanceId]=o,n):{}}}function Bn(e,t,n){var r=e.defs,o=e.instances,i=[],a=n?n.instanceId:"";for(var s in o){var l=o[s],u=r[l.defId];l.instanceId!==a&&i.push(new zn(t,u,l))}return i}var jn={};var Gn,qn=function(){function e(){}return e.prototype.getMarkerYear=function(e){return e.getUTCFullYear()},e.prototype.getMarkerMonth=function(e){return e.getUTCMonth()},e.prototype.getMarkerDay=function(e){return e.getUTCDate()},e.prototype.arrayToMarker=function(e){return Me(e)},e.prototype.markerToArray=function(e){return ke(e)},e}();Gn=qn,jn["gregory"]=Gn;var Yn=/^\s*(\d{4})(-?(\d{2})(-?(\d{2})([T ](\d{2}):?(\d{2})(:?(\d{2})(\.(\d+))?)?(Z|(([-+])(\d{2})(:?(\d{2}))?))?)?)?)?$/;function Zn(e){var t=Yn.exec(e);if(t){var n=new Date(Date.UTC(Number(t[1]),t[3]?Number(t[3])-1:0,Number(t[5]||1),Number(t[7]||0),Number(t[8]||0),Number(t[10]||0),t[12]?1e3*Number("0."+t[12]):0));if(xe(n)){var r=null;return t[13]&&(r=("-"===t[15]?-1:1)*(60*Number(t[16]||0)+Number(t[18]||0))),{marker:n,isTimeUnspecified:!t[6],timeZoneOffset:r}}}return null}var Xn=function(){function e(e){var t=this.timeZone=e.timeZone,n="local"!==t&&"UTC"!==t;e.namedTimeZoneImpl&&n&&(this.namedTimeZoneImpl=new e.namedTimeZoneImpl(t)),this.canComputeOffset=Boolean(!n||this.namedTimeZoneImpl),this.calendarSystem=function(e){return new jn[e]}(e.calendarSystem),this.locale=e.locale,this.weekDow=e.locale.week.dow,this.weekDoy=e.locale.week.doy,"ISO"===e.weekNumberCalculation&&(this.weekDow=1,this.weekDoy=4),"number"==typeof e.firstDay&&(this.weekDow=e.firstDay),"function"==typeof e.weekNumberCalculation&&(this.weekNumberFunc=e.weekNumberCalculation),this.weekText=null!=e.weekText?e.weekText:e.locale.options.weekText,this.cmdFormatter=e.cmdFormatter,this.defaultSeparator=e.defaultSeparator}return e.prototype.createMarker=function(e){var t=this.createMarkerMeta(e);return null===t?null:t.marker},e.prototype.createNowMarker=function(){return this.canComputeOffset?this.timestampToMarker((new Date).valueOf()):Me(Re(new Date))},e.prototype.createMarkerMeta=function(e){if("string"==typeof e)return this.parse(e);var t=null;return"number"==typeof e?t=this.timestampToMarker(e):e instanceof Date?(e=e.valueOf(),isNaN(e)||(t=this.timestampToMarker(e))):Array.isArray(e)&&(t=Me(e)),null!==t&&xe(t)?{marker:t,isTimeUnspecified:!1,forcedTzo:null}:null},e.prototype.parse=function(e){var t=Zn(e);if(null===t)return null;var n=t.marker,r=null;return null!==t.timeZoneOffset&&(this.canComputeOffset?n=this.timestampToMarker(n.valueOf()-60*t.timeZoneOffset*1e3):r=t.timeZoneOffset),{marker:n,isTimeUnspecified:t.isTimeUnspecified,forcedTzo:r}},e.prototype.getYear=function(e){return this.calendarSystem.getMarkerYear(e)},e.prototype.getMonth=function(e){return this.calendarSystem.getMarkerMonth(e)},e.prototype.add=function(e,t){var n=this.calendarSystem.markerToArray(e);return n[0]+=t.years,n[1]+=t.months,n[2]+=t.days,n[6]+=t.milliseconds,this.calendarSystem.arrayToMarker(n)},e.prototype.subtract=function(e,t){var n=this.calendarSystem.markerToArray(e);return n[0]-=t.years,n[1]-=t.months,n[2]-=t.days,n[6]-=t.milliseconds,this.calendarSystem.arrayToMarker(n)},e.prototype.addYears=function(e,t){var n=this.calendarSystem.markerToArray(e);return n[0]+=t,this.calendarSystem.arrayToMarker(n)},e.prototype.addMonths=function(e,t){var n=this.calendarSystem.markerToArray(e);return n[1]+=t,this.calendarSystem.arrayToMarker(n)},e.prototype.diffWholeYears=function(e,t){var n=this.calendarSystem;return _e(e)===_e(t)&&n.getMarkerDay(e)===n.getMarkerDay(t)&&n.getMarkerMonth(e)===n.getMarkerMonth(t)?n.getMarkerYear(t)-n.getMarkerYear(e):null},e.prototype.diffWholeMonths=function(e,t){var n=this.calendarSystem;return _e(e)===_e(t)&&n.getMarkerDay(e)===n.getMarkerDay(t)?n.getMarkerMonth(t)-n.getMarkerMonth(e)+12*(n.getMarkerYear(t)-n.getMarkerYear(e)):null},e.prototype.greatestWholeUnit=function(e,t){var n=this.diffWholeYears(e,t);return null!==n?{unit:"year",value:n}:null!==(n=this.diffWholeMonths(e,t))?{unit:"month",value:n}:null!==(n=Se(e,t))?{unit:"week",value:n}:null!==(n=De(e,t))?{unit:"day",value:n}:de(n=function(e,t){return(t.valueOf()-e.valueOf())/36e5}(e,t))?{unit:"hour",value:n}:de(n=function(e,t){return(t.valueOf()-e.valueOf())/6e4}(e,t))?{unit:"minute",value:n}:de(n=function(e,t){return(t.valueOf()-e.valueOf())/1e3}(e,t))?{unit:"second",value:n}:{unit:"millisecond",value:t.valueOf()-e.valueOf()}},e.prototype.countDurationsBetween=function(e,t,n){var r;return n.years&&null!==(r=this.diffWholeYears(e,t))?r/(Je(n)/365):n.months&&null!==(r=this.diffWholeMonths(e,t))?r/function(e){return Je(e)/30}(n):n.days&&null!==(r=De(e,t))?r/Je(n):(t.valueOf()-e.valueOf())/$e(n)},e.prototype.startOf=function(e,t){return"year"===t?this.startOfYear(e):"month"===t?this.startOfMonth(e):"week"===t?this.startOfWeek(e):"day"===t?be(e):"hour"===t?function(e){return Me([e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours()])}(e):"minute"===t?function(e){return Me([e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes()])}(e):"second"===t?function(e){return Me([e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds()])}(e):void 0},e.prototype.startOfYear=function(e){return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(e)])},e.prototype.startOfMonth=function(e){return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(e),this.calendarSystem.getMarkerMonth(e)])},e.prototype.startOfWeek=function(e){return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(e),this.calendarSystem.getMarkerMonth(e),e.getUTCDate()-(e.getUTCDay()-this.weekDow+7)%7])},e.prototype.computeWeekNumber=function(e){return this.weekNumberFunc?this.weekNumberFunc(this.toDate(e)):function(e,t,n){var r=e.getUTCFullYear(),o=Ce(e,r,t,n);if(o<1)return Ce(e,r-1,t,n);var i=Ce(e,r+1,t,n);return i>=1?Math.min(o,i):o}(e,this.weekDow,this.weekDoy)},e.prototype.format=function(e,t,n){return void 0===n&&(n={}),t.format({marker:e,timeZoneOffset:null!=n.forcedTzo?n.forcedTzo:this.offsetForMarker(e)},this)},e.prototype.formatRange=function(e,t,n,r){return void 0===r&&(r={}),r.isEndExclusive&&(t=ge(t,-1)),n.formatRange({marker:e,timeZoneOffset:null!=r.forcedStartTzo?r.forcedStartTzo:this.offsetForMarker(e)},{marker:t,timeZoneOffset:null!=r.forcedEndTzo?r.forcedEndTzo:this.offsetForMarker(t)},this,r.defaultSeparator)},e.prototype.formatIso=function(e,t){void 0===t&&(t={});var n=null;return t.omitTimeZoneOffset||(n=null!=t.forcedTzo?t.forcedTzo:this.offsetForMarker(e)),function(e,t,n){void 0===n&&(n=!1);var r=e.toISOString();return r=r.replace(".000",""),n&&(r=r.replace("T00:00:00Z","")),r.length>10&&(null==t?r=r.replace("Z",""):0!==t&&(r=r.replace("Z",rt(t,!0)))),r}(e,n,t.omitTime)},e.prototype.timestampToMarker=function(e){return"local"===this.timeZone?Me(Re(new Date(e))):"UTC"!==this.timeZone&&this.namedTimeZoneImpl?Me(this.namedTimeZoneImpl.timestampToArray(e)):new Date(e)},e.prototype.offsetForMarker=function(e){return"local"===this.timeZone?-Te(ke(e)).getTimezoneOffset():"UTC"===this.timeZone?0:this.namedTimeZoneImpl?this.namedTimeZoneImpl.offsetForArray(ke(e)):null},e.prototype.toDate=function(e,t){return"local"===this.timeZone?Te(ke(e)):"UTC"===this.timeZone?new Date(e.valueOf()):this.namedTimeZoneImpl?new Date(e.valueOf()-1e3*this.namedTimeZoneImpl.offsetForArray(ke(e))*60):new Date(e.valueOf()-(t||0))},e}(),Kn=[],Jn={code:"en",week:{dow:0,doy:4},direction:"ltr",buttonText:{prev:"prev",next:"next",prevYear:"prev year",nextYear:"next year",year:"year",today:"today",month:"month",week:"week",day:"day",list:"list"},weekText:"W",allDayText:"all-day",moreLinkText:"more",noEventsText:"No events to display"};function $n(e){for(var t=e.length>0?e[0].code:"en",n=Kn.concat(e),r={en:Jn},o=0,i=n;o<i.length;o++){var a=i[o];r[a.code]=a}return{map:r,defaultCode:t}}function Qn(e,t){return"object"!=typeof e||Array.isArray(e)?function(e,t){var n=[].concat(e||[]),r=function(e,t){for(var n=0;n<e.length;n++)for(var r=e[n].toLocaleLowerCase().split("-"),o=r.length;o>0;o--){var i=r.slice(0,o).join("-");if(t[i])return t[i]}return null}(n,t)||Jn;return er(e,n,r)}(e,t):er(e.code,[e.code],e)}function er(e,t,n){var r=Ne([Jn,n],["buttonText"]);delete r.code;var o=r.week;return delete r.week,{codeArg:e,codes:t,week:o,simpleNumberFormat:new Intl.NumberFormat(e),options:r}}function tr(e){var t=Qn(e.locale||"en",$n([]).map);return new Xn(r(r({timeZone:bt.timeZone,calendarSystem:"gregory"},e),{locale:t}))}var nr,rr={startTime:"09:00",endTime:"17:00",daysOfWeek:[1,2,3,4,5],display:"inverse-background",classNames:"fc-non-business",groupId:"_businessHours"};function or(e,t){return It(function(e){var t;t=!0===e?[{}]:Array.isArray(e)?e.filter((function(e){return e.daysOfWeek})):"object"==typeof e&&e?[e]:[];return t=t.map((function(e){return r(r({},rr),e)}))}(e),null,t)}function ir(e,t){return e.left>=t.left&&e.left<t.right&&e.top>=t.top&&e.top<t.bottom}function ar(e,t){var n={left:Math.max(e.left,t.left),right:Math.min(e.right,t.right),top:Math.max(e.top,t.top),bottom:Math.min(e.bottom,t.bottom)};return n.left<n.right&&n.top<n.bottom&&n}function sr(e,t){return{left:Math.min(Math.max(e.left,t.left),t.right),top:Math.min(Math.max(e.top,t.top),t.bottom)}}function lr(e){return{left:(e.left+e.right)/2,top:(e.top+e.bottom)/2}}function ur(e,t){return{left:e.left-t.left,top:e.top-t.top}}function cr(){return null==nr&&(nr=function(){if("undefined"==typeof document)return!0;var e=document.createElement("div");e.style.position="absolute",e.style.top="0px",e.style.left="0px",e.innerHTML="<table><tr><td><div></div></td></tr></table>",e.querySelector("table").style.height="100px",e.querySelector("div").style.height="100%",document.body.appendChild(e);var t=e.querySelector("div").offsetHeight>0;return document.body.removeChild(e),t}()),nr}var dr={defs:{},instances:{}},pr=function(){function e(){this.getKeysForEventDefs=it(this._getKeysForEventDefs),this.splitDateSelection=it(this._splitDateSpan),this.splitEventStore=it(this._splitEventStore),this.splitIndividualUi=it(this._splitIndividualUi),this.splitEventDrag=it(this._splitInteraction),this.splitEventResize=it(this._splitInteraction),this.eventUiBuilders={}}return e.prototype.splitProps=function(e){var t=this,n=this.getKeyInfo(e),r=this.getKeysForEventDefs(e.eventStore),o=this.splitDateSelection(e.dateSelection),i=this.splitIndividualUi(e.eventUiBases,r),a=this.splitEventStore(e.eventStore,r),s=this.splitEventDrag(e.eventDrag),l=this.splitEventResize(e.eventResize),u={};for(var c in this.eventUiBuilders=Oe(n,(function(e,n){return t.eventUiBuilders[n]||it(fr)})),n){var d=n[c],p=a[c]||dr,f=this.eventUiBuilders[c];u[c]={businessHours:d.businessHours||e.businessHours,dateSelection:o[c]||null,eventStore:p,eventUiBases:f(e.eventUiBases[""],d.ui,i[c]),eventSelection:p.instances[e.eventSelection]?e.eventSelection:"",eventDrag:s[c]||null,eventResize:l[c]||null}}return u},e.prototype._splitDateSpan=function(e){var t={};if(e)for(var n=0,r=this.getKeysForDateSpan(e);n<r.length;n++){t[r[n]]=e}return t},e.prototype._getKeysForEventDefs=function(e){var t=this;return Oe(e.defs,(function(e){return t.getKeysForEventDef(e)}))},e.prototype._splitEventStore=function(e,t){var n=e.defs,r=e.instances,o={};for(var i in n)for(var a=0,s=t[i];a<s.length;a++){o[p=s[a]]||(o[p]={defs:{},instances:{}}),o[p].defs[i]=n[i]}for(var l in r)for(var u=r[l],c=0,d=t[u.defId];c<d.length;c++){var p;o[p=d[c]]&&(o[p].instances[l]=u)}return o},e.prototype._splitIndividualUi=function(e,t){var n={};for(var r in e)if(r)for(var o=0,i=t[r];o<i.length;o++){var a=i[o];n[a]||(n[a]={}),n[a][r]=e[r]}return n},e.prototype._splitInteraction=function(e){var t={};if(e){var n=this._splitEventStore(e.affectedEvents,this._getKeysForEventDefs(e.affectedEvents)),r=this._getKeysForEventDefs(e.mutatedEvents),o=this._splitEventStore(e.mutatedEvents,r),i=function(r){t[r]||(t[r]={affectedEvents:n[r]||dr,mutatedEvents:o[r]||dr,isEvent:e.isEvent})};for(var a in n)i(a);for(var a in o)i(a)}return t},e}();function fr(e,t,n){var o=[];e&&o.push(e),t&&o.push(t);var i={"":Vt(o)};return n&&r(i,n),i}function hr(e,t,n,r){return{dow:e.getUTCDay(),isDisabled:Boolean(r&&!sn(r.activeRange,e)),isOther:Boolean(r&&!sn(r.currentRange,e)),isToday:Boolean(t&&sn(t,e)),isPast:Boolean(n?e<n:!!t&&e<t.start),isFuture:Boolean(n?e>n:!!t&&e>=t.end)}}function vr(e,t){var n=["fc-day","fc-day-"+fe[e.dow]];return e.isDisabled?n.push("fc-day-disabled"):(e.isToday&&(n.push("fc-day-today"),n.push(t.getClass("today"))),e.isPast&&n.push("fc-day-past"),e.isFuture&&n.push("fc-day-future"),e.isOther&&n.push("fc-day-other")),n}function gr(e,t){return void 0===t&&(t="day"),JSON.stringify({date:tt(e),type:t})}var mr,yr=null;function Er(){return null===yr&&(yr=function(){var e=document.createElement("div");j(e,{position:"absolute",top:-1e3,left:0,border:0,padding:0,overflow:"scroll",direction:"rtl"}),e.innerHTML="<div></div>",document.body.appendChild(e);var t=e.firstChild.getBoundingClientRect().left>e.getBoundingClientRect().left;return W(e),t}()),yr}function Sr(){return mr||(mr=function(){var e=document.createElement("div");e.style.overflow="scroll",document.body.appendChild(e);var t=Dr(e);return document.body.removeChild(e),t}()),mr}function Dr(e){return{x:e.offsetHeight-e.clientHeight,y:e.offsetWidth-e.clientWidth}}function br(e,t){void 0===t&&(t=!1);var n=window.getComputedStyle(e),r=parseInt(n.borderLeftWidth,10)||0,o=parseInt(n.borderRightWidth,10)||0,i=parseInt(n.borderTopWidth,10)||0,a=parseInt(n.borderBottomWidth,10)||0,s=Dr(e),l=s.y-r-o,u={borderLeft:r,borderRight:o,borderTop:i,borderBottom:a,scrollbarBottom:s.x-i-a,scrollbarLeft:0,scrollbarRight:0};return Er()&&"rtl"===n.direction?u.scrollbarLeft=l:u.scrollbarRight=l,t&&(u.paddingLeft=parseInt(n.paddingLeft,10)||0,u.paddingRight=parseInt(n.paddingRight,10)||0,u.paddingTop=parseInt(n.paddingTop,10)||0,u.paddingBottom=parseInt(n.paddingBottom,10)||0),u}function Cr(e,t,n){void 0===t&&(t=!1);var r=n?e.getBoundingClientRect():wr(e),o=br(e,t),i={left:r.left+o.borderLeft+o.scrollbarLeft,right:r.right-o.borderRight-o.scrollbarRight,top:r.top+o.borderTop,bottom:r.bottom-o.borderBottom-o.scrollbarBottom};return t&&(i.left+=o.paddingLeft,i.right-=o.paddingRight,i.top+=o.paddingTop,i.bottom-=o.paddingBottom),i}function wr(e){var t=e.getBoundingClientRect();return{left:t.left+window.pageXOffset,top:t.top+window.pageYOffset,right:t.right+window.pageXOffset,bottom:t.bottom+window.pageYOffset}}function Rr(e){for(var t=[];e instanceof HTMLElement;){var n=window.getComputedStyle(e);if("fixed"===n.position)break;/(auto|scroll)/.test(n.overflow+n.overflowY+n.overflowX)&&t.push(e),e=e.parentNode}return t}function Tr(e,t,n){var r=!1,o=function(){r||(r=!0,t.apply(this,arguments))},i=function(){r||(r=!0,n&&n.apply(this,arguments))},a=e(o,i);a&&"function"==typeof a.then&&a.then(o,i)}var kr=function(){function e(){this.handlers={},this.thisContext=null}return e.prototype.setThisContext=function(e){this.thisContext=e},e.prototype.setOptions=function(e){this.options=e},e.prototype.on=function(e,t){!function(e,t,n){(e[t]||(e[t]=[])).push(n)}(this.handlers,e,t)},e.prototype.off=function(e,t){!function(e,t,n){n?e[t]&&(e[t]=e[t].filter((function(e){return e!==n}))):delete e[t]}(this.handlers,e,t)},e.prototype.trigger=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];for(var r=this.handlers[e]||[],o=this.options&&this.options[e],i=[].concat(o||[],r),a=0,s=i;a<s.length;a++){var l=s[a];l.apply(this.thisContext,t)}},e.prototype.hasHandlers=function(e){return this.handlers[e]&&this.handlers[e].length||this.options&&this.options[e]},e}();var Mr=function(){function e(e,t,n,r){this.els=t;var o=this.originClientRect=e.getBoundingClientRect();n&&this.buildElHorizontals(o.left),r&&this.buildElVerticals(o.top)}return e.prototype.buildElHorizontals=function(e){for(var t=[],n=[],r=0,o=this.els;r<o.length;r++){var i=o[r].getBoundingClientRect();t.push(i.left-e),n.push(i.right-e)}this.lefts=t,this.rights=n},e.prototype.buildElVerticals=function(e){for(var t=[],n=[],r=0,o=this.els;r<o.length;r++){var i=o[r].getBoundingClientRect();t.push(i.top-e),n.push(i.bottom-e)}this.tops=t,this.bottoms=n},e.prototype.leftToIndex=function(e){var t,n=this.lefts,r=this.rights,o=n.length;for(t=0;t<o;t++)if(e>=n[t]&&e<r[t])return t},e.prototype.topToIndex=function(e){var t,n=this.tops,r=this.bottoms,o=n.length;for(t=0;t<o;t++)if(e>=n[t]&&e<r[t])return t},e.prototype.getWidth=function(e){return this.rights[e]-this.lefts[e]},e.prototype.getHeight=function(e){return this.bottoms[e]-this.tops[e]},e}(),xr=function(){function e(){}return e.prototype.getMaxScrollTop=function(){return this.getScrollHeight()-this.getClientHeight()},e.prototype.getMaxScrollLeft=function(){return this.getScrollWidth()-this.getClientWidth()},e.prototype.canScrollVertically=function(){return this.getMaxScrollTop()>0},e.prototype.canScrollHorizontally=function(){return this.getMaxScrollLeft()>0},e.prototype.canScrollUp=function(){return this.getScrollTop()>0},e.prototype.canScrollDown=function(){return this.getScrollTop()<this.getMaxScrollTop()},e.prototype.canScrollLeft=function(){return this.getScrollLeft()>0},e.prototype.canScrollRight=function(){return this.getScrollLeft()<this.getMaxScrollLeft()},e}(),_r=function(e){function t(t){var n=e.call(this)||this;return n.el=t,n}return n(t,e),t.prototype.getScrollTop=function(){return this.el.scrollTop},t.prototype.getScrollLeft=function(){return this.el.scrollLeft},t.prototype.setScrollTop=function(e){this.el.scrollTop=e},t.prototype.setScrollLeft=function(e){this.el.scrollLeft=e},t.prototype.getScrollWidth=function(){return this.el.scrollWidth},t.prototype.getScrollHeight=function(){return this.el.scrollHeight},t.prototype.getClientHeight=function(){return this.el.clientHeight},t.prototype.getClientWidth=function(){return this.el.clientWidth},t}(xr),Ir=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.getScrollTop=function(){return window.pageYOffset},t.prototype.getScrollLeft=function(){return window.pageXOffset},t.prototype.setScrollTop=function(e){window.scroll(window.pageXOffset,e)},t.prototype.setScrollLeft=function(e){window.scroll(e,window.pageYOffset)},t.prototype.getScrollWidth=function(){return document.documentElement.scrollWidth},t.prototype.getScrollHeight=function(){return document.documentElement.scrollHeight},t.prototype.getClientHeight=function(){return document.documentElement.clientHeight},t.prototype.getClientWidth=function(){return document.documentElement.clientWidth},t}(xr),Pr=function(){function e(e){this.iconOverrideOption&&this.setIconOverride(e[this.iconOverrideOption])}return e.prototype.setIconOverride=function(e){var t,n;if("object"==typeof e&&e){for(n in t=r({},this.iconClasses),e)t[n]=this.applyIconOverridePrefix(e[n]);this.iconClasses=t}else!1===e&&(this.iconClasses={})},e.prototype.applyIconOverridePrefix=function(e){var t=this.iconOverridePrefix;return t&&0!==e.indexOf(t)&&(e=t+e),e},e.prototype.getClass=function(e){return this.classes[e]||""},e.prototype.getIconClass=function(e,t){var n;return(n=t&&this.rtlIconClasses&&this.rtlIconClasses[e]||this.iconClasses[e])?this.baseIconClass+" "+n:""},e.prototype.getCustomButtonIconClass=function(e){var t;return this.iconOverrideCustomButtonOption&&(t=e[this.iconOverrideCustomButtonOption])?this.baseIconClass+" "+this.applyIconOverridePrefix(t):""},e}();if(Pr.prototype.classes={},Pr.prototype.iconClasses={},Pr.prototype.baseIconClass="",Pr.prototype.iconOverridePrefix="","undefined"==typeof FullCalendarVDom)throw new Error("Please import the top-level fullcalendar lib before attempting to import a plugin.");var Nr=FullCalendarVDom.Component,Hr=FullCalendarVDom.createElement,Or=FullCalendarVDom.render,Ar=FullCalendarVDom.createRef,Ur=FullCalendarVDom.Fragment,Lr=FullCalendarVDom.createContext,Wr=FullCalendarVDom.flushToDom,Vr=function(){function e(e,t,n){var o=this;this.execFunc=e,this.emitter=t,this.scrollTime=n,this.handleScrollRequest=function(e){o.queuedRequest=r({},o.queuedRequest||{},e),o.drain()},t.on("_scrollRequest",this.handleScrollRequest),this.fireInitialScroll()}return e.prototype.detach=function(){this.emitter.off("_scrollRequest",this.handleScrollRequest)},e.prototype.update=function(e){e?this.fireInitialScroll():this.drain()},e.prototype.fireInitialScroll=function(){this.handleScrollRequest({time:this.scrollTime})},e.prototype.drain=function(){this.queuedRequest&&this.execFunc(this.queuedRequest)&&(this.queuedRequest=null)},e}(),zr=Lr({});function Fr(e,t,n,r,o,i,a,s,l,u,c,d,p){return{dateEnv:o,options:n,pluginHooks:a,emitter:u,dispatch:s,getCurrentData:l,calendarApi:c,viewSpec:e,viewApi:t,dateProfileGenerator:r,theme:i,isRtl:"rtl"===n.direction,addResizeHandler:function(e){u.on("_resize",e)},removeResizeHandler:function(e){u.off("_resize",e)},createScrollResponder:function(e){return new Vr(e,u,Ye(n.scrollTime))},registerInteractiveComponent:d,unregisterInteractiveComponent:p}}var Br=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.shouldComponentUpdate=function(e,t){return this.debug&&console.log(We(e,this.props),We(t,this.state)),!Ve(this.props,e,this.propEquality)||!Ve(this.state,t,this.stateEquality)},t.addPropsEquality=Gr,t.addStateEquality=qr,t.contextType=zr,t}(Nr);Br.prototype.propEquality={},Br.prototype.stateEquality={};var jr=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.contextType=zr,t}(Br);function Gr(e){var t=Object.create(this.prototype.propEquality);r(t,e),this.prototype.propEquality=t}function qr(e){var t=Object.create(this.prototype.stateEquality);r(t,e),this.prototype.stateEquality=t}function Yr(e,t){"function"==typeof e?e(t):e&&(e.current=t)}function Zr(e,t,n,r,o){switch(t.type){case"RECEIVE_EVENTS":return function(e,t,n,r,o,i){if(t&&n===t.latestFetchId){var a=It(function(e,t,n){var r=n.options.eventDataTransform,o=t?t.eventDataTransform:null;o&&(e=Xr(e,o));r&&(e=Xr(e,r));return e}(o,t,i),t,i);return r&&(a=Be(a,r,i)),Ot(Kr(e,t.sourceId),a)}return e}(e,n[t.sourceId],t.fetchId,t.fetchRange,t.rawEvents,o);case"ADD_EVENTS":return function(e,t,n,r){n&&(t=Be(t,n,r));return Ot(e,t)}(e,t.eventStore,r?r.activeRange:null,o);case"MERGE_EVENTS":return Ot(e,t.eventStore);case"PREV":case"NEXT":case"CHANGE_DATE":case"CHANGE_VIEW_TYPE":return r?Be(e,r.activeRange,o):e;case"REMOVE_EVENTS":return function(e,t){var n=e.defs,r=e.instances,o={},i={};for(var a in n)t.defs[a]||(o[a]=n[a]);for(var s in r)!t.instances[s]&&o[r[s].defId]&&(i[s]=r[s]);return{defs:o,instances:i}}(e,t.eventStore);case"REMOVE_EVENT_SOURCE":return Kr(e,t.sourceId);case"REMOVE_ALL_EVENT_SOURCES":return At(e,(function(e){return!e.sourceId}));case"REMOVE_ALL_EVENTS":return{defs:{},instances:{}};default:return e}}function Xr(e,t){var n;if(t){n=[];for(var r=0,o=e;r<o.length;r++){var i=o[r],a=t(i);a?n.push(a):null==a&&n.push(i)}}else n=e;return n}function Kr(e,t){return At(e,(function(e){return e.sourceId!==t}))}function Jr(e,t){return $r({eventDrag:e},t)}function $r(e,t){var n=t.getCurrentData(),o=r({businessHours:n.businessHours,dateSelection:"",eventStore:n.eventStore,eventUiBases:n.eventUiBases,eventSelection:"",eventDrag:null,eventResize:null},e);return(t.pluginHooks.isPropsValid||Qr)(o,t)}function Qr(e,t,n,o){return void 0===n&&(n={}),!(e.eventDrag&&!function(e,t,n,o){var i=t.getCurrentData(),a=e.eventDrag,s=a.mutatedEvents,l=s.defs,u=s.instances,c=pn(l,a.isEvent?e.eventUiBases:{"":i.selectionConfig});o&&(c=Oe(c,o));var d=(v=e.eventStore,g=a.affectedEvents.instances,{defs:v.defs,instances:He(v.instances,(function(e){return!g[e.instanceId]}))}),p=d.defs,f=d.instances,h=pn(p,e.eventUiBases);var v,g;for(var m in u){var y=u[m],E=y.range,S=c[y.defId],D=l[y.defId];if(!eo(S.constraints,E,d,e.businessHours,t))return!1;var b=t.options.eventOverlap,C="function"==typeof b?b:null;for(var w in f){var R=f[w];if(on(E,R.range)){if(!1===h[R.defId].overlap&&a.isEvent)return!1;if(!1===S.overlap)return!1;if(C&&!C(new zn(t,p[R.defId],R),new zn(t,D,y)))return!1}}for(var T=i.eventStore,k=0,M=S.allows;k<M.length;k++){var x=M[k],_=r(r({},n),{range:y.range,allDay:D.allDay}),I=T.defs[D.defId],P=T.instances[m],N=void 0;if(N=I?new zn(t,I,P):new zn(t,D),!x(_n(_,t),N))return!1}}return!0}(e,t,n,o))&&!(e.dateSelection&&!function(e,t,n,o){var i=e.eventStore,a=i.defs,s=i.instances,l=e.dateSelection,u=l.range,c=t.getCurrentData().selectionConfig;o&&(c=o(c));if(!eo(c.constraints,u,i,e.businessHours,t))return!1;var d=t.options.selectOverlap,p="function"==typeof d?d:null;for(var f in s){var h=s[f];if(on(u,h.range)){if(!1===c.overlap)return!1;if(p&&!p(new zn(t,a[h.defId],h),null))return!1}}for(var v=0,g=c.allows;v<g.length;v++){var m=g[v],y=r(r({},n),l);if(!m(_n(y,t),null))return!1}return!0}(e,t,n,o))}function eo(e,t,n,r,o){for(var i=0,a=e;i<a.length;i++){if(!ro(to(a[i],t,n,r,o),t))return!1}return!0}function to(e,t,n,r,o){return"businessHours"===e?no(Be(r,t,o)):"string"==typeof e?no(At(n,(function(t){return t.groupId===e}))):"object"==typeof e&&e?no(Be(e,t,o)):[]}function no(e){var t=e.instances,n=[];for(var r in t)n.push(t[r].range);return n}function ro(e,t){for(var n=0,r=e;n<r.length;n++){if(an(r[n],t))return!0}return!1}var oo=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.uid=$(),t}return n(t,e),t.prototype.prepareHits=function(){},t.prototype.queryHit=function(e,t,n,r){return null},t.prototype.isInteractionValid=function(e){var t=this.props.dateProfile,n=e.mutatedEvents.instances;if(t)for(var r in n)if(!an(t.validRange,n[r].range))return!1;return Jr(e,this.context)},t.prototype.isDateSelectionValid=function(e){var t,n,r=this.props.dateProfile;return!(r&&!an(r.validRange,e.range))&&(t=e,n=this.context,$r({dateSelection:t},n))},t.prototype.isValidSegDownEl=function(e){return!this.props.eventDrag&&!this.props.eventResize&&!V(e,".fc-event-mirror")&&(this.isPopover()||!this.isInPopover(e))},t.prototype.isValidDateDownEl=function(e){return!(V(e,".fc-event:not(.fc-bg-event)")||V(e,".fc-daygrid-more-link")||V(e,"a[data-navlink]")||this.isInPopover(e))},t.prototype.isPopover=function(){return!1},t.prototype.isInPopover=function(e){return Boolean(V(e,".fc-popover"))},t}(jr);function io(e){return{id:$(),deps:e.deps||[],reducers:e.reducers||[],contextInit:[].concat(e.contextInit||[]),eventRefiners:e.eventRefiners||{},eventDefMemberAdders:e.eventDefMemberAdders||[],eventSourceRefiners:e.eventSourceRefiners||{},isDraggableTransformers:e.isDraggableTransformers||[],eventDragMutationMassagers:e.eventDragMutationMassagers||[],eventDefMutationAppliers:e.eventDefMutationAppliers||[],dateSelectionTransformers:e.dateSelectionTransformers||[],datePointTransforms:e.datePointTransforms||[],dateSpanTransforms:e.dateSpanTransforms||[],views:e.views||{},viewPropsTransformers:e.viewPropsTransformers||[],isPropsValid:e.isPropsValid||null,externalDefTransforms:e.externalDefTransforms||[],eventResizeJoinTransforms:e.eventResizeJoinTransforms||[],viewContainerAppends:e.viewContainerAppends||[],eventDropTransformers:e.eventDropTransformers||[],componentInteractions:e.componentInteractions||[],calendarInteractions:e.calendarInteractions||[],themeClasses:e.themeClasses||{},eventSourceDefs:e.eventSourceDefs||[],cmdFormatter:e.cmdFormatter,recurringTypes:e.recurringTypes||[],namedTimeZonedImpl:e.namedTimeZonedImpl,initialView:e.initialView||"",elementDraggingImpl:e.elementDraggingImpl,optionChangeHandlers:e.optionChangeHandlers||{},scrollGridImpl:e.scrollGridImpl||null,contentTypeHandlers:e.contentTypeHandlers||{},listenerRefiners:e.listenerRefiners||{},optionRefiners:e.optionRefiners||{},propSetHandlers:e.propSetHandlers||{}}}function ao(){var e,t=[],n=[];return function(o,i){return e&&ot(o,t)&&ot(i,n)||(e=function(e,t){var n={},o={reducers:[],contextInit:[],eventRefiners:{},eventDefMemberAdders:[],eventSourceRefiners:{},isDraggableTransformers:[],eventDragMutationMassagers:[],eventDefMutationAppliers:[],dateSelectionTransformers:[],datePointTransforms:[],dateSpanTransforms:[],views:{},viewPropsTransformers:[],isPropsValid:null,externalDefTransforms:[],eventResizeJoinTransforms:[],viewContainerAppends:[],eventDropTransformers:[],componentInteractions:[],calendarInteractions:[],themeClasses:{},eventSourceDefs:[],cmdFormatter:null,recurringTypes:[],namedTimeZonedImpl:null,initialView:"",elementDraggingImpl:null,optionChangeHandlers:{},scrollGridImpl:null,contentTypeHandlers:{},listenerRefiners:{},optionRefiners:{},propSetHandlers:{}};function i(e){for(var t=0,a=e;t<a.length;t++){var s=a[t];n[s.id]||(n[s.id]=!0,i(s.deps),u=s,o={reducers:(l=o).reducers.concat(u.reducers),contextInit:l.contextInit.concat(u.contextInit),eventRefiners:r(r({},l.eventRefiners),u.eventRefiners),eventDefMemberAdders:l.eventDefMemberAdders.concat(u.eventDefMemberAdders),eventSourceRefiners:r(r({},l.eventSourceRefiners),u.eventSourceRefiners),isDraggableTransformers:l.isDraggableTransformers.concat(u.isDraggableTransformers),eventDragMutationMassagers:l.eventDragMutationMassagers.concat(u.eventDragMutationMassagers),eventDefMutationAppliers:l.eventDefMutationAppliers.concat(u.eventDefMutationAppliers),dateSelectionTransformers:l.dateSelectionTransformers.concat(u.dateSelectionTransformers),datePointTransforms:l.datePointTransforms.concat(u.datePointTransforms),dateSpanTransforms:l.dateSpanTransforms.concat(u.dateSpanTransforms),views:r(r({},l.views),u.views),viewPropsTransformers:l.viewPropsTransformers.concat(u.viewPropsTransformers),isPropsValid:u.isPropsValid||l.isPropsValid,externalDefTransforms:l.externalDefTransforms.concat(u.externalDefTransforms),eventResizeJoinTransforms:l.eventResizeJoinTransforms.concat(u.eventResizeJoinTransforms),viewContainerAppends:l.viewContainerAppends.concat(u.viewContainerAppends),eventDropTransformers:l.eventDropTransformers.concat(u.eventDropTransformers),calendarInteractions:l.calendarInteractions.concat(u.calendarInteractions),componentInteractions:l.componentInteractions.concat(u.componentInteractions),themeClasses:r(r({},l.themeClasses),u.themeClasses),eventSourceDefs:l.eventSourceDefs.concat(u.eventSourceDefs),cmdFormatter:u.cmdFormatter||l.cmdFormatter,recurringTypes:l.recurringTypes.concat(u.recurringTypes),namedTimeZonedImpl:u.namedTimeZonedImpl||l.namedTimeZonedImpl,initialView:l.initialView||u.initialView,elementDraggingImpl:l.elementDraggingImpl||u.elementDraggingImpl,optionChangeHandlers:r(r({},l.optionChangeHandlers),u.optionChangeHandlers),scrollGridImpl:u.scrollGridImpl||l.scrollGridImpl,contentTypeHandlers:r(r({},l.contentTypeHandlers),u.contentTypeHandlers),listenerRefiners:r(r({},l.listenerRefiners),u.listenerRefiners),optionRefiners:r(r({},l.optionRefiners),u.optionRefiners),propSetHandlers:r(r({},l.propSetHandlers),u.propSetHandlers)})}var l,u}return e&&i(e),i(t),o}(o,i)),t=o,n=i,e}}var so=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t}(Pr);function lo(e,t,n,o){if(t[e])return t[e];var i=function(e,t,n,o){var i=n[e],a=o[e],s=function(e){return i&&null!==i[e]?i[e]:a&&null!==a[e]?a[e]:null},l=s("component"),u=s("superType"),c=null;if(u){if(u===e)throw new Error("Can't have a custom view type that references itself");c=lo(u,t,n,o)}!l&&c&&(l=c.component);if(!l)return null;return{type:e,component:l,defaults:r(r({},c?c.defaults:{}),i?i.rawOptions:{}),overrides:r(r({},c?c.overrides:{}),a?a.rawOptions:{})}}(e,t,n,o);return i&&(t[e]=i),i}so.prototype.classes={root:"fc-theme-standard",tableCellShaded:"fc-cell-shaded",buttonGroup:"fc-button-group",button:"fc-button fc-button-primary",buttonActive:"fc-button-active"},so.prototype.baseIconClass="fc-icon",so.prototype.iconClasses={close:"fc-icon-x",prev:"fc-icon-chevron-left",next:"fc-icon-chevron-right",prevYear:"fc-icon-chevrons-left",nextYear:"fc-icon-chevrons-right"},so.prototype.rtlIconClasses={prev:"fc-icon-chevron-right",next:"fc-icon-chevron-left",prevYear:"fc-icon-chevrons-right",nextYear:"fc-icon-chevrons-left"},so.prototype.iconOverrideOption="buttonIcons",so.prototype.iconOverrideCustomButtonOption="icon",so.prototype.iconOverridePrefix="fc-icon-";var uo=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.rootElRef=Ar(),t.handleRootEl=function(e){Yr(t.rootElRef,e),t.props.elRef&&Yr(t.props.elRef,e)},t}return n(t,e),t.prototype.render=function(){var e=this,t=this.props,n=t.hookProps;return Hr(ho,{hookProps:n,didMount:t.didMount,willUnmount:t.willUnmount,elRef:this.handleRootEl},(function(r){return Hr(po,{hookProps:n,content:t.content,defaultContent:t.defaultContent,backupElRef:e.rootElRef},(function(e,o){return t.children(r,go(t.classNames,n),e,o)}))}))},t}(jr),co=Lr(0);function po(e){return Hr(co.Consumer,null,(function(t){return Hr(fo,r({renderId:t},e))}))}var fo=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.innerElRef=Ar(),t}return n(t,e),t.prototype.render=function(){return this.props.children(this.innerElRef,this.renderInnerContent())},t.prototype.componentDidMount=function(){this.updateCustomContent()},t.prototype.componentDidUpdate=function(){this.updateCustomContent()},t.prototype.renderInnerContent=function(){var e=this.context.pluginHooks.contentTypeHandlers,t=this.props,n=this.customContentInfo,r=mo(t.content,t.hookProps),o=null;if(void 0===r&&(r=mo(t.defaultContent,t.hookProps)),void 0!==r){if(n)n.contentVal=r[n.contentKey];else if("object"==typeof r)for(var i in e)if(void 0!==r[i]){n=this.customContentInfo={contentKey:i,contentVal:r[i],handler:e[i]()};break}o=n?[]:r}return o},t.prototype.updateCustomContent=function(){this.customContentInfo&&this.customContentInfo.handler(this.innerElRef.current||this.props.backupElRef.current,this.customContentInfo.contentVal)},t}(jr),ho=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.handleRootEl=function(e){t.rootEl=e,t.props.elRef&&Yr(t.props.elRef,e)},t}return n(t,e),t.prototype.render=function(){return this.props.children(this.handleRootEl)},t.prototype.componentDidMount=function(){var e=this.props.didMount;e&&e(r(r({},this.props.hookProps),{el:this.rootEl}))},t.prototype.componentWillUnmount=function(){var e=this.props.willUnmount;e&&e(r(r({},this.props.hookProps),{el:this.rootEl}))},t}(jr);function vo(){var e,t,n=[];return function(r,o){return t&&Le(t,o)&&r===e||(e=r,t=o,n=go(r,o)),n}}function go(e,t){return"function"==typeof e&&(e=e(t)),Ut(e)}function mo(e,t){return"function"==typeof e?e(t,Hr):e}var yo=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.normalizeClassNames=vo(),t}return n(t,e),t.prototype.render=function(){var e=this.props,t=this.context,n=t.options,r={view:t.viewApi},o=this.normalizeClassNames(n.viewClassNames,r);return Hr(ho,{hookProps:r,didMount:n.viewDidMount,willUnmount:n.viewWillUnmount,elRef:e.elRef},(function(t){return e.children(t,["fc-"+e.viewSpec.type+"-view","fc-view"].concat(o))}))},t}(jr);function Eo(e){return Oe(e,So)}function So(e){var t,n="function"==typeof e?{component:e}:e,o=n.component;return n.content&&(t=n,o=function(e){return Hr(zr.Consumer,null,(function(n){return Hr(yo,{viewSpec:n.viewSpec},(function(o,i){var a=r(r({},e),{nextDayThreshold:n.options.nextDayThreshold});return Hr(uo,{hookProps:a,classNames:t.classNames,content:t.content,didMount:t.didMount,willUnmount:t.willUnmount,elRef:o},(function(e,t,n,r){return Hr("div",{className:i.concat(t).join(" "),ref:e},r)}))}))}))}),{superType:n.type,component:o,rawOptions:n}}function Do(e,t,n,o){var i=Eo(e),a=Eo(t.views);return Oe(function(e,t){var n,r={};for(n in e)lo(n,r,e,t);for(n in t)lo(n,r,e,t);return r}(i,a),(function(e){return function(e,t,n,o,i){var a=e.overrides.duration||e.defaults.duration||o.duration||n.duration,s=null,l="",u="",c={};if(a&&(s=function(e){var t=JSON.stringify(e),n=bo[t];void 0===n&&(n=Ye(e),bo[t]=n);return n}(a))){var d=et(s);l=d.unit,1===d.value&&(u=l,c=t[l]?t[l].rawOptions:{})}var p=function(t){var n=t.buttonText||{},r=e.defaults.buttonTextKey;return null!=r&&null!=n[r]?n[r]:null!=n[e.type]?n[e.type]:null!=n[u]?n[u]:void 0};return{type:e.type,component:e.component,duration:s,durationUnit:l,singleUnit:u,optionDefaults:e.defaults,optionOverrides:r(r({},c),e.overrides),buttonTextOverride:p(o)||p(n)||e.overrides.buttonText,buttonTextDefault:p(i)||e.defaults.buttonText||p(bt)||e.type}}(e,a,t,n,o)}))}var bo={};var Co=function(){function e(e){this.props=e,this.nowDate=Wn(e.nowInput,e.dateEnv),this.initHiddenDays()}return e.prototype.buildPrev=function(e,t,n){var r=this.props.dateEnv,o=r.subtract(r.startOf(t,e.currentRangeUnit),e.dateIncrement);return this.build(o,-1,n)},e.prototype.buildNext=function(e,t,n){var r=this.props.dateEnv,o=r.add(r.startOf(t,e.currentRangeUnit),e.dateIncrement);return this.build(o,1,n)},e.prototype.build=function(e,t,n){void 0===n&&(n=!0);var r,o,i,a,s,l,u,c,d=this.props;return r=this.buildValidRange(),r=this.trimHiddenDays(r),n&&(u=e,e=null!=(c=r).start&&u<c.start?c.start:null!=c.end&&u>=c.end?new Date(c.end.valueOf()-1):u),o=this.buildCurrentRangeInfo(e,t),i=/^(year|month|week|day)$/.test(o.unit),a=this.buildRenderRange(this.trimHiddenDays(o.range),o.unit,i),s=a=this.trimHiddenDays(a),d.showNonCurrentDates||(s=nn(s,o.range)),s=nn(s=this.adjustActiveRange(s),r),l=on(o.range,r),{validRange:r,currentRange:o.range,currentRangeUnit:o.unit,isRangeAllDay:i,activeRange:s,renderRange:a,slotMinTime:d.slotMinTime,slotMaxTime:d.slotMaxTime,isValid:l,dateIncrement:this.buildDateIncrement(o.duration)}},e.prototype.buildValidRange=function(){var e=this.props.validRangeInput,t="function"==typeof e?e.call(this.props.calendarApi,this.nowDate):e;return this.refineRange(t)||{start:null,end:null}},e.prototype.buildCurrentRangeInfo=function(e,t){var n,r=this.props,o=null,i=null,a=null;return r.duration?(o=r.duration,i=r.durationUnit,a=this.buildRangeFromDuration(e,t,o,i)):(n=this.props.dayCount)?(i="day",a=this.buildRangeFromDayCount(e,t,n)):(a=this.buildCustomVisibleRange(e))?i=r.dateEnv.greatestWholeUnit(a.start,a.end).unit:(i=et(o=this.getFallbackDuration()).unit,a=this.buildRangeFromDuration(e,t,o,i)),{duration:o,unit:i,range:a}},e.prototype.getFallbackDuration=function(){return Ye({day:1})},e.prototype.adjustActiveRange=function(e){var t=this.props,n=t.dateEnv,r=t.usesMinMaxTime,o=t.slotMinTime,i=t.slotMaxTime,a=e.start,s=e.end;return r&&(Je(o)<0&&(a=be(a),a=n.add(a,o)),Je(i)>1&&(s=ve(s=be(s),-1),s=n.add(s,i))),{start:a,end:s}},e.prototype.buildRangeFromDuration=function(e,t,n,r){var o,i,a,s=this.props,l=s.dateEnv,u=s.dateAlignment;if(!u){var c=this.props.dateIncrement;u=c&&$e(c)<$e(n)?et(c).unit:r}function d(){o=l.startOf(e,u),i=l.add(o,n),a={start:o,end:i}}return Je(n)<=1&&this.isHiddenDay(o)&&(o=be(o=this.skipHiddenDays(o,t))),d(),this.trimHiddenDays(a)||(e=this.skipHiddenDays(e,t),d()),a},e.prototype.buildRangeFromDayCount=function(e,t,n){var r,o=this.props,i=o.dateEnv,a=o.dateAlignment,s=0,l=e;a&&(l=i.startOf(l,a)),l=be(l),r=l=this.skipHiddenDays(l,t);do{r=ve(r,1),this.isHiddenDay(r)||s++}while(s<n);return{start:l,end:r}},e.prototype.buildCustomVisibleRange=function(e){var t=this.props,n=t.visibleRangeInput,r="function"==typeof n?n.call(t.calendarApi,t.dateEnv.toDate(e)):n,o=this.refineRange(r);return!o||null!=o.start&&null!=o.end?o:null},e.prototype.buildRenderRange=function(e,t,n){return e},e.prototype.buildDateIncrement=function(e){var t,n=this.props.dateIncrement;return n||((t=this.props.dateAlignment)?Ye(1,t):e||Ye({days:1}))},e.prototype.refineRange=function(e){if(e){var t=(n=e,r=this.props.dateEnv,o=null,i=null,n.start&&(o=r.createMarker(n.start)),n.end&&(i=r.createMarker(n.end)),o||i?o&&i&&i<o?null:{start:o,end:i}:null);return t&&(t=Jt(t)),t}var n,r,o,i;return null},e.prototype.initHiddenDays=function(){var e,t=this.props.hiddenDays||[],n=[],r=0;for(!1===this.props.weekends&&t.push(0,6),e=0;e<7;e++)(n[e]=-1!==t.indexOf(e))||r++;if(!r)throw new Error("invalid hiddenDays");this.isHiddenDayHash=n},e.prototype.trimHiddenDays=function(e){var t=e.start,n=e.end;return t&&(t=this.skipHiddenDays(t)),n&&(n=this.skipHiddenDays(n,-1,!0)),null==t||null==n||t<n?{start:t,end:n}:null},e.prototype.isHiddenDay=function(e){return e instanceof Date&&(e=e.getUTCDay()),this.isHiddenDayHash[e]},e.prototype.skipHiddenDays=function(e,t,n){for(void 0===t&&(t=1),void 0===n&&(n=!1);this.isHiddenDayHash[(e.getUTCDay()+(n?t:0)+7)%7];)e=ve(e,t);return e},e}();function wo(e,t,n){var r=t?t.activeRange:null;return ko({},function(e,t){var n=Ln(t),r=[].concat(e.eventSources||[]),o=[];e.initialEvents&&r.unshift(e.initialEvents);e.events&&r.unshift(e.events);for(var i=0,a=r;i<a.length;i++){var s=Un(a[i],t,n);s&&o.push(s)}return o}(e,n),r,n)}function Ro(e,t,n,o){var i,a,s=n?n.activeRange:null;switch(t.type){case"ADD_EVENT_SOURCES":return ko(e,t.sources,s,o);case"REMOVE_EVENT_SOURCE":return i=e,a=t.sourceId,He(i,(function(e){return e.sourceId!==a}));case"PREV":case"NEXT":case"CHANGE_DATE":case"CHANGE_VIEW_TYPE":return n?Mo(e,s,o):e;case"FETCH_EVENT_SOURCES":return xo(e,t.sourceIds?Ae(t.sourceIds):Io(e,o),s,o);case"RECEIVE_EVENTS":case"RECEIVE_EVENT_ERROR":return function(e,t,n,o){var i,a=e[t];if(a&&n===a.latestFetchId)return r(r({},e),((i={})[t]=r(r({},a),{isFetching:!1,fetchRange:o}),i));return e}(e,t.sourceId,t.fetchId,t.fetchRange);case"REMOVE_ALL_EVENT_SOURCES":return{};default:return e}}function To(e){var t=0;for(var n in e)e[n].isFetching&&t++;return t}function ko(e,t,n,o){for(var i={},a=0,s=t;a<s.length;a++){var l=s[a];i[l.sourceId]=l}return n&&(i=Mo(i,n,o)),r(r({},e),i)}function Mo(e,t,n){return xo(e,He(e,(function(e){return function(e,t,n){return Po(e,n)?!n.options.lazyFetching||!e.fetchRange||e.isFetching||t.start<e.fetchRange.start||t.end>e.fetchRange.end:!e.latestFetchId}(e,t,n)})),t,n)}function xo(e,t,n,r){var o={};for(var i in e){var a=e[i];t[i]?o[i]=_o(a,n,r):o[i]=a}return o}function _o(e,t,n){var o=n.options,i=n.calendarApi,a=n.pluginHooks.eventSourceDefs[e.sourceDefId],s=$();return a.fetch({eventSource:e,range:t,context:n},(function(r){var a=r.rawEvents;o.eventSourceSuccess&&(a=o.eventSourceSuccess.call(i,a,r.xhr)||a),e.success&&(a=e.success.call(i,a,r.xhr)||a),n.dispatch({type:"RECEIVE_EVENTS",sourceId:e.sourceId,fetchId:s,fetchRange:t,rawEvents:a})}),(function(r){console.warn(r.message,r),o.eventSourceFailure&&o.eventSourceFailure.call(i,r),e.failure&&e.failure(r),n.dispatch({type:"RECEIVE_EVENT_ERROR",sourceId:e.sourceId,fetchId:s,fetchRange:t,error:r})})),r(r({},e),{isFetching:!0,latestFetchId:s})}function Io(e,t){return He(e,(function(e){return Po(e,t)}))}function Po(e,t){return!t.pluginHooks.eventSourceDefs[e.sourceDefId].ignoreRange}function No(e,t){switch(t.type){case"UNSELECT_DATES":return null;case"SELECT_DATES":return t.selection;default:return e}}function Ho(e,t){switch(t.type){case"UNSELECT_EVENT":return"";case"SELECT_EVENT":return t.eventInstanceId;default:return e}}function Oo(e,t){var n;switch(t.type){case"UNSET_EVENT_DRAG":return null;case"SET_EVENT_DRAG":return{affectedEvents:(n=t.state).affectedEvents,mutatedEvents:n.mutatedEvents,isEvent:n.isEvent};default:return e}}function Ao(e,t){var n;switch(t.type){case"UNSET_EVENT_RESIZE":return null;case"SET_EVENT_RESIZE":return{affectedEvents:(n=t.state).affectedEvents,mutatedEvents:n.mutatedEvents,isEvent:n.isEvent};default:return e}}function Uo(e,t,n,r,o){var i=[];return{headerToolbar:e.headerToolbar?Lo(e.headerToolbar,e,t,n,r,o,i):null,footerToolbar:e.footerToolbar?Lo(e.footerToolbar,e,t,n,r,o,i):null,viewsWithButtons:i}}function Lo(e,t,n,r,o,i,a){return Oe(e,(function(e){return function(e,t,n,r,o,i,a){var s="rtl"===t.direction,l=t.customButtons||{},u=n.buttonText||{},c=t.buttonText||{};return(e?e.split(" "):[]).map((function(e){return e.split(",").map((function(e){if("title"===e)return{buttonName:e};var t,n=void 0,d=void 0,p=void 0,f=void 0;return(t=l[e])?(d=function(e){t.click&&t.click.call(e.target,e,e.target)},(p=r.getCustomButtonIconClass(t))||(p=r.getIconClass(e,s))||(f=t.text)):(n=o[e])?(a.push(e),d=function(){i.changeView(e)},(f=n.buttonTextOverride)||(p=r.getIconClass(e,s))||(f=n.buttonTextDefault)):i[e]&&(d=function(){i[e]()},(f=u[e])||(p=r.getIconClass(e,s))||(f=c[e])),{buttonName:e,buttonClick:d,buttonIcon:p,buttonText:f}}))}))}(e,t,n,r,o,i,a)}))}function Wo(e,t,n,r,o){var i=null;"GET"===(e=e.toUpperCase())?t=function(e,t){return e+(-1===e.indexOf("?")?"?":"&")+Vo(t)}(t,n):i=Vo(n);var a=new XMLHttpRequest;a.open(e,t,!0),"GET"!==e&&a.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),a.onload=function(){if(a.status>=200&&a.status<400){var e=!1,t=void 0;try{t=JSON.parse(a.responseText),e=!0}catch(e){}e?r(t,a):o("Failure parsing JSON",a)}else o("Request failed",a)},a.onerror=function(){o("Request failed",a)},a.send(i)}function Vo(e){var t=[];for(var n in e)t.push(encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t.join("&")}function zo(e,t){for(var n=Ue(t.getCurrentData().eventSources),r=[],o=0,i=e;o<i.length;o++){for(var a=i[o],s=!1,l=0;l<n.length;l++)if(n[l]._raw===a){n.splice(l,1),s=!0;break}s||r.push(a)}for(var u=0,c=n;u<c.length;u++){var d=c[u];t.dispatch({type:"REMOVE_EVENT_SOURCE",sourceId:d.sourceId})}for(var p=0,f=r;p<f.length;p++){var h=f[p];t.calendarApi.addEventSource(h)}}var Fo=[io({eventSourceDefs:[{ignoreRange:!0,parseMeta:function(e){return Array.isArray(e.events)?e.events:null},fetch:function(e,t){t({rawEvents:e.eventSource.meta})}}]}),io({eventSourceDefs:[{parseMeta:function(e){return"function"==typeof e.events?e.events:null},fetch:function(e,t,n){var r=e.context.dateEnv;Tr(e.eventSource.meta.bind(null,Tn(e.range,r)),(function(e){t({rawEvents:e})}),n)}}]}),io({eventSourceRefiners:{method:String,extraParams:_t,startParam:String,endParam:String,timeZoneParam:String},eventSourceDefs:[{parseMeta:function(e){return e.url?{url:e.url,method:(e.method||"GET").toUpperCase(),extraParams:e.extraParams,startParam:e.startParam,endParam:e.endParam,timeZoneParam:e.timeZoneParam}:null},fetch:function(e,t,n){var o=e.eventSource.meta,i=function(e,t,n){var o,i,a,s,l=n.dateEnv,u=n.options,c={};null==(o=e.startParam)&&(o=u.startParam);null==(i=e.endParam)&&(i=u.endParam);null==(a=e.timeZoneParam)&&(a=u.timeZoneParam);s="function"==typeof e.extraParams?e.extraParams():e.extraParams||{};r(c,s),c[o]=l.formatIso(t.start),c[i]=l.formatIso(t.end),"local"!==l.timeZone&&(c[a]=l.timeZone);return c}(o,e.range,e.context);Wo(o.method,o.url,i,(function(e,n){t({rawEvents:e,xhr:n})}),(function(e,t){n({message:e,xhr:t})}))}}]}),io({recurringTypes:[{parse:function(e,t){if(e.daysOfWeek||e.startTime||e.endTime||e.startRecur||e.endRecur){var n={daysOfWeek:e.daysOfWeek||null,startTime:e.startTime||null,endTime:e.endTime||null,startRecur:e.startRecur?t.createMarker(e.startRecur):null,endRecur:e.endRecur?t.createMarker(e.endRecur):null},r=void 0;return e.duration&&(r=e.duration),!r&&e.startTime&&e.endTime&&(o=e.endTime,i=e.startTime,r={years:o.years-i.years,months:o.months-i.months,days:o.days-i.days,milliseconds:o.milliseconds-i.milliseconds}),{allDayGuess:Boolean(!e.startTime&&!e.endTime),duration:r,typeData:n}}var o,i;return null},expand:function(e,t,n){var r=nn(t,{start:e.startRecur,end:e.endRecur});return r?function(e,t,n,r){var o=e?Ae(e):null,i=be(n.start),a=n.end,s=[];for(;i<a;){var l=void 0;o&&!o[i.getUTCDay()]||(l=t?r.add(i,t):i,s.push(l)),i=ve(i,1)}return s}(e.daysOfWeek,e.startTime,r,n):[]}}],eventRefiners:{daysOfWeek:_t,startTime:Ye,endTime:Ye,duration:Ye,startRecur:_t,endRecur:_t}}),io({optionChangeHandlers:{events:function(e,t){zo([e],t)},eventSources:zo}}),io({contentTypeHandlers:{html:function(){return Bo},domNodes:function(){return jo}},propSetHandlers:{dateProfile:function(e,t){t.emitter.trigger("datesSet",r(r({},Tn(e.activeRange,t.dateEnv)),{view:t.viewApi}))},eventStore:function(e,t){var n=t.emitter;n.hasHandlers("eventsSet")&&n.trigger("eventsSet",Bn(e,t))}}})];function Bo(e,t){e.innerHTML=t}function jo(e,t){var n=Array.prototype.slice.call(e.childNodes),r=Array.prototype.slice.call(t);if(!ot(n,r)){for(var o=0,i=r;o<i.length;o++){var a=i[o];e.appendChild(a)}n.forEach(W)}}var Go=function(){function e(e){this.drainedOption=e,this.isRunning=!1,this.isDirty=!1,this.pauseDepths={},this.timeoutId=0}return e.prototype.request=function(e){this.isDirty=!0,this.isPaused()||(this.clearTimeout(),null==e?this.tryDrain():this.timeoutId=setTimeout(this.tryDrain.bind(this),e))},e.prototype.pause=function(e){void 0===e&&(e="");var t=this.pauseDepths;t[e]=(t[e]||0)+1,this.clearTimeout()},e.prototype.resume=function(e,t){void 0===e&&(e="");var n=this.pauseDepths;if(e in n){if(t)delete n[e];else--n[e]<=0&&delete n[e];this.tryDrain()}},e.prototype.isPaused=function(){return Object.keys(this.pauseDepths).length},e.prototype.tryDrain=function(){if(!this.isRunning&&!this.isPaused()){for(this.isRunning=!0;this.isDirty;)this.isDirty=!1,this.drained();this.isRunning=!1}},e.prototype.clear=function(){this.clearTimeout(),this.isDirty=!1,this.pauseDepths={}},e.prototype.clearTimeout=function(){this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=0)},e.prototype.drained=function(){this.drainedOption&&this.drainedOption()},e}(),qo=function(){function e(e,t){this.runTaskOption=e,this.drainedOption=t,this.queue=[],this.delayedRunner=new Go(this.drain.bind(this))}return e.prototype.request=function(e,t){this.queue.push(e),this.delayedRunner.request(t)},e.prototype.pause=function(e){this.delayedRunner.pause(e)},e.prototype.resume=function(e,t){this.delayedRunner.resume(e,t)},e.prototype.drain=function(){for(var e=this.queue;e.length;){for(var t=[],n=void 0;n=e.shift();)this.runTask(n),t.push(n);this.drained(t)}},e.prototype.runTask=function(e){this.runTaskOption&&this.runTaskOption(e)},e.prototype.drained=function(e){this.drainedOption&&this.drainedOption(e)},e}();function Yo(e,t,n){var r;return r=/^(year|month)$/.test(e.currentRangeUnit)?e.currentRange:e.activeRange,n.formatRange(r.start,r.end,St(t.titleFormat||function(e){var t=e.currentRangeUnit;if("year"===t)return{year:"numeric"};if("month"===t)return{year:"numeric",month:"long"};var n=De(e.currentRange.start,e.currentRange.end);return null!==n&&n>1?{year:"numeric",month:"short",day:"numeric"}:{year:"numeric",month:"long",day:"numeric"}}(e)),{isEndExclusive:e.isRangeAllDay,defaultSeparator:t.titleRangeSeparator})}var Zo=function(){function e(e){var t=this;this.computeOptionsData=it(this._computeOptionsData),this.computeCurrentViewData=it(this._computeCurrentViewData),this.organizeRawLocales=it($n),this.buildLocale=it(Qn),this.buildPluginHooks=ao(),this.buildDateEnv=it(Xo),this.buildTheme=it(Ko),this.parseToolbars=it(Uo),this.buildViewSpecs=it(Do),this.buildDateProfileGenerator=at(Jo),this.buildViewApi=it($o),this.buildViewUiProps=at(ti),this.buildEventUiBySource=it(Qo,Le),this.buildEventUiBases=it(ei),this.parseContextBusinessHours=at(ni),this.buildTitle=it(Yo),this.emitter=new kr,this.actionRunner=new qo(this._handleAction.bind(this),this.updateData.bind(this)),this.currentCalendarOptionsInput={},this.currentCalendarOptionsRefined={},this.currentViewOptionsInput={},this.currentViewOptionsRefined={},this.currentCalendarOptionsRefiners={},this.getCurrentData=function(){return t.data},this.dispatch=function(e){t.actionRunner.request(e)},this.props=e,this.actionRunner.pause();var n={},o=this.computeOptionsData(e.optionOverrides,n,e.calendarApi),i=o.calendarOptions.initialView||o.pluginHooks.initialView,a=this.computeCurrentViewData(i,o,e.optionOverrides,n);e.calendarApi.currentDataManager=this,this.emitter.setThisContext(e.calendarApi),this.emitter.setOptions(a.options);var s,l,u,c=(s=o.calendarOptions,l=o.dateEnv,null!=(u=s.initialDate)?l.createMarker(u):Wn(s.now,l)),d=a.dateProfileGenerator.build(c);sn(d.activeRange,c)||(c=d.currentRange.start);for(var p={dateEnv:o.dateEnv,options:o.calendarOptions,pluginHooks:o.pluginHooks,calendarApi:e.calendarApi,dispatch:this.dispatch,emitter:this.emitter,getCurrentData:this.getCurrentData},f=0,h=o.pluginHooks.contextInit;f<h.length;f++){(0,h[f])(p)}for(var v=wo(o.calendarOptions,d,p),g={dynamicOptionOverrides:n,currentViewType:i,currentDate:c,dateProfile:d,businessHours:this.parseContextBusinessHours(p),eventSources:v,eventUiBases:{},loadingLevel:To(v),eventStore:{defs:{},instances:{}},renderableEventStore:{defs:{},instances:{}},dateSelection:null,eventSelection:"",eventDrag:null,eventResize:null,selectionConfig:this.buildViewUiProps(p).selectionConfig},m=r(r({},p),g),y=0,E=o.pluginHooks.reducers;y<E.length;y++){var S=E[y];r(g,S(null,null,m))}g.loadingLevel&&this.emitter.trigger("loading",!0),this.state=g,this.updateData(),this.actionRunner.resume()}return e.prototype.resetOptions=function(e,t){var n=this.props;n.optionOverrides=t?r(r({},n.optionOverrides),e):e,this.actionRunner.request({type:"NOTHING"})},e.prototype._handleAction=function(e){var t=this.props,n=this.state,o=this.emitter,i=function(e,t){var n;switch(t.type){case"SET_OPTION":return r(r({},e),((n={})[t.optionName]=t.rawOptionValue,n));default:return e}}(n.dynamicOptionOverrides,e),a=this.computeOptionsData(t.optionOverrides,i,t.calendarApi),s=function(e,t){switch(t.type){case"CHANGE_VIEW_TYPE":return t.viewType}return e}(n.currentViewType,e),l=this.computeCurrentViewData(s,a,t.optionOverrides,i);t.calendarApi.currentDataManager=this,o.setThisContext(t.calendarApi),o.setOptions(l.options);var u={dateEnv:a.dateEnv,options:a.calendarOptions,pluginHooks:a.pluginHooks,calendarApi:t.calendarApi,dispatch:this.dispatch,emitter:o,getCurrentData:this.getCurrentData},c=n.currentDate,d=n.dateProfile;this.data&&this.data.dateProfileGenerator!==l.dateProfileGenerator&&(d=l.dateProfileGenerator.build(c)),d=function(e,t,n,r){var o;switch(t.type){case"CHANGE_VIEW_TYPE":return r.build(t.dateMarker||n);case"CHANGE_DATE":if(!e.activeRange||!sn(e.currentRange,t.dateMarker))return r.build(t.dateMarker);break;case"PREV":if((o=r.buildPrev(e,n)).isValid)return o;break;case"NEXT":if((o=r.buildNext(e,n)).isValid)return o}return e}(d,e,c=function(e,t){switch(t.type){case"CHANGE_DATE":return t.dateMarker;default:return e}}(c,e),l.dateProfileGenerator),sn(d.currentRange,c)||(c=d.currentRange.start);for(var p=Ro(n.eventSources,e,d,u),f=To(p),h=Zr(n.eventStore,e,p,d,u),v=f&&!l.options.progressiveEventRendering&&n.renderableEventStore||h,g=this.buildViewUiProps(u),m=g.eventUiSingleBase,y=g.selectionConfig,E=this.buildEventUiBySource(p),S=this.buildEventUiBases(v.defs,m,E),D=n.loadingLevel||0,b=f,C={dynamicOptionOverrides:i,currentViewType:s,currentDate:c,dateProfile:d,eventSources:p,eventStore:h,renderableEventStore:v,selectionConfig:y,eventUiBases:S,loadingLevel:b,businessHours:this.parseContextBusinessHours(u),dateSelection:No(n.dateSelection,e),eventSelection:Ho(n.eventSelection,e),eventDrag:Oo(n.eventDrag,e),eventResize:Ao(n.eventResize,e)},w=r(r({},u),C),R=0,T=a.pluginHooks.reducers;R<T.length;R++){var k=T[R];r(C,k(n,e,w))}!D&&b?o.trigger("loading",!0):D&&!b&&o.trigger("loading",!1),this.state=C,t.onAction&&t.onAction(e)},e.prototype.updateData=function(){var e,t,n,o,i,a,s,l,u,c=this.props,d=this.state,p=this.data,f=this.computeOptionsData(c.optionOverrides,d.dynamicOptionOverrides,c.calendarApi),h=this.computeCurrentViewData(d.currentViewType,f,c.optionOverrides,d.dynamicOptionOverrides),v=this.data=r(r(r({viewTitle:this.buildTitle(d.dateProfile,h.options,f.dateEnv),calendarApi:c.calendarApi,dispatch:this.dispatch,emitter:this.emitter,getCurrentData:this.getCurrentData},f),h),d),g=f.pluginHooks.optionChangeHandlers,m=p&&p.calendarOptions,y=f.calendarOptions;if(m&&m!==y)for(var E in m.timeZone!==y.timeZone&&(d.eventSources=v.eventSources=(a=v.eventSources,s=d.dateProfile,l=v,u=s?s.activeRange:null,xo(a,Io(a,l),u,l)),d.eventStore=v.eventStore=(e=v.eventStore,t=p.dateEnv,n=v.dateEnv,o=e.defs,i=Oe(e.instances,(function(e){var i=o[e.defId];return i.allDay||i.recurringDef?e:r(r({},e),{range:{start:n.createMarker(t.toDate(e.range.start,e.forcedStartTzo)),end:n.createMarker(t.toDate(e.range.end,e.forcedEndTzo))},forcedStartTzo:n.canComputeOffset?null:e.forcedStartTzo,forcedEndTzo:n.canComputeOffset?null:e.forcedEndTzo})})),{defs:o,instances:i})),g)m[E]!==y[E]&&g[E](y[E],v);c.onData&&c.onData(v)},e.prototype._computeOptionsData=function(e,t,n){var r=this.processRawCalendarOptions(e,t),o=r.refinedOptions,i=r.pluginHooks,a=r.localeDefaults,s=r.availableLocaleData;ri(r.extra);var l=this.buildDateEnv(o.timeZone,o.locale,o.weekNumberCalculation,o.firstDay,o.weekText,i,s,o.defaultRangeSeparator),u=this.buildViewSpecs(i.views,e,t,a),c=this.buildTheme(o,i);return{calendarOptions:o,pluginHooks:i,dateEnv:l,viewSpecs:u,theme:c,toolbarConfig:this.parseToolbars(o,e,c,u,n),localeDefaults:a,availableRawLocales:s.map}},e.prototype.processRawCalendarOptions=function(e,t){var n=Mt([bt,e,t]),o=n.locales,i=n.locale,a=this.organizeRawLocales(o),s=a.map,l=this.buildLocale(i||a.defaultCode,s).options,u=this.buildPluginHooks(e.plugins||[],Fo),c=this.currentCalendarOptionsRefiners=r(r(r(r(r({},Dt),Ct),wt),u.listenerRefiners),u.optionRefiners),d={},p=Mt([bt,l,e,t]),f={},h=this.currentCalendarOptionsInput,v=this.currentCalendarOptionsRefined,g=!1;for(var m in p)"plugins"!==m&&(p[m]===h[m]||Rt[m]&&m in h&&Rt[m](h[m],p[m])?f[m]=v[m]:c[m]?(f[m]=c[m](p[m]),g=!0):d[m]=h[m]);return g&&(this.currentCalendarOptionsInput=p,this.currentCalendarOptionsRefined=f),{rawOptions:this.currentCalendarOptionsInput,refinedOptions:this.currentCalendarOptionsRefined,pluginHooks:u,availableLocaleData:a,localeDefaults:l,extra:d}},e.prototype._computeCurrentViewData=function(e,t,n,r){var o=t.viewSpecs[e];if(!o)throw new Error('viewType "'+e+"\" is not available. Please make sure you've loaded all neccessary plugins");var i=this.processRawViewOptions(o,t.pluginHooks,t.localeDefaults,n,r),a=i.refinedOptions;return ri(i.extra),{viewSpec:o,options:a,dateProfileGenerator:this.buildDateProfileGenerator({dateProfileGeneratorClass:o.optionDefaults.dateProfileGeneratorClass,duration:o.duration,durationUnit:o.durationUnit,usesMinMaxTime:o.optionDefaults.usesMinMaxTime,dateEnv:t.dateEnv,calendarApi:this.props.calendarApi,slotMinTime:a.slotMinTime,slotMaxTime:a.slotMaxTime,showNonCurrentDates:a.showNonCurrentDates,dayCount:a.dayCount,dateAlignment:a.dateAlignment,dateIncrement:a.dateIncrement,hiddenDays:a.hiddenDays,weekends:a.weekends,nowInput:a.now,validRangeInput:a.validRange,visibleRangeInput:a.visibleRange,monthMode:a.monthMode,fixedWeekCount:a.fixedWeekCount}),viewApi:this.buildViewApi(e,this.getCurrentData,t.dateEnv)}},e.prototype.processRawViewOptions=function(e,t,n,o,i){var a=Mt([bt,e.optionDefaults,n,o,e.optionOverrides,i]),s=r(r(r(r(r(r({},Dt),Ct),wt),kt),t.listenerRefiners),t.optionRefiners),l={},u=this.currentViewOptionsInput,c=this.currentViewOptionsRefined,d=!1,p={};for(var f in a)a[f]===u[f]?l[f]=c[f]:(a[f]===this.currentCalendarOptionsInput[f]?f in this.currentCalendarOptionsRefined&&(l[f]=this.currentCalendarOptionsRefined[f]):s[f]?l[f]=s[f](a[f]):p[f]=a[f],d=!0);return d&&(this.currentViewOptionsInput=a,this.currentViewOptionsRefined=l),{rawOptions:this.currentViewOptionsInput,refinedOptions:this.currentViewOptionsRefined,extra:p}},e}();function Xo(e,t,n,r,o,i,a,s){var l=Qn(t||a.defaultCode,a.map);return new Xn({calendarSystem:"gregory",timeZone:e,namedTimeZoneImpl:i.namedTimeZonedImpl,locale:l,weekNumberCalculation:n,firstDay:r,weekText:o,cmdFormatter:i.cmdFormatter,defaultSeparator:s})}function Ko(e,t){return new(t.themeClasses[e.themeSystem]||so)(e)}function Jo(e){return new(e.dateProfileGeneratorClass||Co)(e)}function $o(e,t,n){return new On(e,t,n)}function Qo(e){return Oe(e,(function(e){return e.ui}))}function ei(e,t,n){var r={"":t};for(var o in e){var i=e[o];i.sourceId&&n[i.sourceId]&&(r[o]=n[i.sourceId])}return r}function ti(e){var t=e.options;return{eventUiSingleBase:Wt({display:t.eventDisplay,editable:t.editable,startEditable:t.eventStartEditable,durationEditable:t.eventDurationEditable,constraint:t.eventConstraint,overlap:"boolean"==typeof t.eventOverlap?t.eventOverlap:void 0,allow:t.eventAllow,backgroundColor:t.eventBackgroundColor,borderColor:t.eventBorderColor,textColor:t.eventTextColor,color:t.eventColor},e),selectionConfig:Wt({constraint:t.selectConstraint,overlap:"boolean"==typeof t.selectOverlap?t.selectOverlap:void 0,allow:t.selectAllow},e)}}function ni(e){return or(e.options.businessHours,e)}function ri(e,t){for(var n in e)console.warn("Unknown option '"+n+"'"+(t?" for view '"+t+"'":""))}var oi=function(e){function t(t){var n=e.call(this,t)||this;return n.handleData=function(e){n.dataManager?n.setState(e):n.state=e},n.dataManager=new Zo({optionOverrides:t.optionOverrides,calendarApi:t.calendarApi,onData:n.handleData}),n}return n(t,e),t.prototype.render=function(){return this.props.children(this.state)},t.prototype.componentDidUpdate=function(e){var t=this.props.optionOverrides;t!==e.optionOverrides&&this.dataManager.resetOptions(t)},t}(Nr);var ii=function(e){this.timeZoneName=e},ai=function(){function e(e){this.component=e.component}return e.prototype.destroy=function(){},e}();function si(e,t){return{component:e,el:t.el,useEventCenter:null==t.useEventCenter||t.useEventCenter}}function li(e){var t;return(t={})[e.component.uid]=e,t}var ui={},ci=function(){function e(e,t){this.emitter=new kr}return e.prototype.destroy=function(){},e.prototype.setMirrorIsVisible=function(e){},e.prototype.setMirrorNeedsRevert=function(e){},e.prototype.setAutoScrollEnabled=function(e){},e}(),di={},pi={startTime:Ye,duration:Ye,create:Boolean,sourceId:String};function fi(e){var t=xt(e,pi),n=t.refined,r=t.extra;return{startTime:n.startTime||null,duration:n.duration||null,create:null==n.create||n.create,sourceId:n.sourceId,leftoverProps:r}}var hi=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.render=function(){var e,t,n=this.props,r=n.model,o=n.extraClassName,i=!1,a=r.center;return r.left?(i=!0,e=r.left):e=r.start,r.right?(i=!0,t=r.right):t=r.end,Hr("div",{className:[o||"","fc-toolbar",i?"fc-toolbar-ltr":""].join(" ")},this.renderSection("start",e||[]),this.renderSection("center",a||[]),this.renderSection("end",t||[]))},t.prototype.renderSection=function(e,t){var n=this.props;return Hr(vi,{key:e,widgetGroups:t,title:n.title,activeButton:n.activeButton,isTodayEnabled:n.isTodayEnabled,isPrevEnabled:n.isPrevEnabled,isNextEnabled:n.isNextEnabled})},t}(jr),vi=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.render=function(){var e=this,t=this.props.widgetGroups.map((function(t){return e.renderWidgetGroup(t)}));return Hr.apply(void 0,o(["div",{className:"fc-toolbar-chunk"}],t))},t.prototype.renderWidgetGroup=function(e){for(var t=this.props,n=this.context.theme,i=[],a=!0,s=0,l=e;s<l.length;s++){var u=l[s],c=u.buttonName,d=u.buttonClick,p=u.buttonText,f=u.buttonIcon;if("title"===c)a=!1,i.push(Hr("h2",{className:"fc-toolbar-title"},t.title));else{var h=f?{"aria-label":c}:{},v=["fc-"+c+"-button",n.getClass("button")];c===t.activeButton&&v.push(n.getClass("buttonActive"));var g=!t.isTodayEnabled&&"today"===c||!t.isPrevEnabled&&"prev"===c||!t.isNextEnabled&&"next"===c;i.push(Hr("button",r({disabled:g,className:v.join(" "),onClick:d,type:"button"},h),p||(f?Hr("span",{className:f}):"")))}}if(i.length>1){var m=a&&n.getClass("buttonGroup")||"";return Hr.apply(void 0,o(["div",{className:m}],i))}return i[0]},t}(jr),gi=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.state={availableWidth:null},t.handleEl=function(e){t.el=e,Yr(t.props.elRef,e),t.updateAvailableWidth()},t.handleResize=function(){t.updateAvailableWidth()},t}return n(t,e),t.prototype.render=function(){var e=this.props,t=this.state,n=e.aspectRatio,r=["fc-view-harness",n||e.liquid||e.height?"fc-view-harness-active":"fc-view-harness-passive"],o="",i="";return n?null!==t.availableWidth?o=t.availableWidth/n:i=1/n*100+"%":o=e.height||"",Hr("div",{ref:this.handleEl,onClick:e.onClick,className:r.join(" "),style:{height:o,paddingBottom:i}},e.children)},t.prototype.componentDidMount=function(){this.context.addResizeHandler(this.handleResize)},t.prototype.componentWillUnmount=function(){this.context.removeResizeHandler(this.handleResize)},t.prototype.updateAvailableWidth=function(){this.el&&this.props.aspectRatio&&this.setState({availableWidth:this.el.offsetWidth})},t}(jr),mi=function(e){function t(t){var n=e.call(this,t)||this;return n.handleSegClick=function(e,t){var r=n.component,o=r.context,i=dn(t);if(i&&r.isValidSegDownEl(e.target)){var a=V(e.target,".fc-event-forced-url"),s=a?a.querySelector("a[href]").href:"";o.emitter.trigger("eventClick",{el:t,event:new zn(r.context,i.eventRange.def,i.eventRange.instance),jsEvent:e,view:o.viewApi}),s&&!e.defaultPrevented&&(window.location.href=s)}},n.destroy=Z(t.el,"click",".fc-event",n.handleSegClick),n}return n(t,e),t}(ai),yi=function(e){function t(t){var n,r,o,i,a,s=e.call(this,t)||this;return s.handleEventElRemove=function(e){e===s.currentSegEl&&s.handleSegLeave(null,s.currentSegEl)},s.handleSegEnter=function(e,t){dn(t)&&(s.currentSegEl=t,s.triggerEvent("eventMouseEnter",e,t))},s.handleSegLeave=function(e,t){s.currentSegEl&&(s.currentSegEl=null,s.triggerEvent("eventMouseLeave",e,t))},s.removeHoverListeners=(n=t.el,r=".fc-event",o=s.handleSegEnter,i=s.handleSegLeave,Z(n,"mouseover",r,(function(e,t){if(t!==a){a=t,o(e,t);var n=function(e){a=null,i(e,t),t.removeEventListener("mouseleave",n)};t.addEventListener("mouseleave",n)}}))),s}return n(t,e),t.prototype.destroy=function(){this.removeHoverListeners()},t.prototype.triggerEvent=function(e,t,n){var r=this.component,o=r.context,i=dn(n);t&&!r.isValidSegDownEl(t.target)||o.emitter.trigger(e,{el:n,event:new zn(o,i.eventRange.def,i.eventRange.instance),jsEvent:t,view:o.viewApi})},t}(ai),Ei=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.buildViewContext=it(Fr),t.buildViewPropTransformers=it(Di),t.buildToolbarProps=it(Si),t.handleNavLinkClick=Y("a[data-navlink]",t._handleNavLinkClick.bind(t)),t.headerRef=Ar(),t.footerRef=Ar(),t.interactionsStore={},t.registerInteractiveComponent=function(e,n){var r=si(e,n),o=[mi,yi].concat(t.props.pluginHooks.componentInteractions).map((function(e){return new e(r)}));t.interactionsStore[e.uid]=o,ui[e.uid]=r},t.unregisterInteractiveComponent=function(e){for(var n=0,r=t.interactionsStore[e.uid];n<r.length;n++){r[n].destroy()}delete t.interactionsStore[e.uid],delete ui[e.uid]},t.resizeRunner=new Go((function(){t.props.emitter.trigger("_resize",!0),t.props.emitter.trigger("windowResize",{view:t.props.viewApi})})),t.handleWindowResize=function(e){var n=t.props.options;n.handleWindowResize&&e.target===window&&t.resizeRunner.request(n.windowResizeDelay)},t}return n(t,e),t.prototype.render=function(){var e,t=this.props,n=t.toolbarConfig,o=t.options,i=this.buildToolbarProps(t.viewSpec,t.dateProfile,t.dateProfileGenerator,t.currentDate,Wn(t.options.now,t.dateEnv),t.viewTitle),a=!1,s="";t.isHeightAuto||t.forPrint?s="":null!=o.height?a=!0:null!=o.contentHeight?s=o.contentHeight:e=Math.max(o.aspectRatio,.5);var l=this.buildViewContext(t.viewSpec,t.viewApi,t.options,t.dateProfileGenerator,t.dateEnv,t.theme,t.pluginHooks,t.dispatch,t.getCurrentData,t.emitter,t.calendarApi,this.registerInteractiveComponent,this.unregisterInteractiveComponent);return Hr(zr.Provider,{value:l},n.headerToolbar&&Hr(hi,r({ref:this.headerRef,extraClassName:"fc-header-toolbar",model:n.headerToolbar},i)),Hr(gi,{liquid:a,height:s,aspectRatio:e,onClick:this.handleNavLinkClick},this.renderView(t),this.buildAppendContent()),n.footerToolbar&&Hr(hi,r({ref:this.footerRef,extraClassName:"fc-footer-toolbar",model:n.footerToolbar},i)))},t.prototype.componentDidMount=function(){var e=this.props;this.calendarInteractions=e.pluginHooks.calendarInteractions.map((function(t){return new t(e)})),window.addEventListener("resize",this.handleWindowResize);var t=e.pluginHooks.propSetHandlers;for(var n in t)t[n](e[n],e)},t.prototype.componentDidUpdate=function(e){var t=this.props,n=t.pluginHooks.propSetHandlers;for(var r in n)t[r]!==e[r]&&n[r](t[r],t)},t.prototype.componentWillUnmount=function(){window.removeEventListener("resize",this.handleWindowResize),this.resizeRunner.clear();for(var e=0,t=this.calendarInteractions;e<t.length;e++){t[e].destroy()}this.props.emitter.trigger("_unmount")},t.prototype._handleNavLinkClick=function(e,t){var n=this.props,r=n.dateEnv,o=n.options,i=n.calendarApi,a=t.getAttribute("data-navlink");a=a?JSON.parse(a):{};var s=r.createMarker(a.date),l=a.type,u="day"===l?o.navLinkDayClick:"week"===l?o.navLinkWeekClick:null;"function"==typeof u?u.call(i,r.toDate(s),e):("string"==typeof u&&(l=u),i.zoomTo(s,l))},t.prototype.buildAppendContent=function(){var e=this.props,t=e.pluginHooks.viewContainerAppends.map((function(t){return t(e)}));return Hr.apply(void 0,o([Ur,{}],t))},t.prototype.renderView=function(e){for(var t=e.pluginHooks,n=e.viewSpec,o={dateProfile:e.dateProfile,businessHours:e.businessHours,eventStore:e.renderableEventStore,eventUiBases:e.eventUiBases,dateSelection:e.dateSelection,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,isHeightAuto:e.isHeightAuto,forPrint:e.forPrint},i=0,a=this.buildViewPropTransformers(t.viewPropsTransformers);i<a.length;i++){var s=a[i];r(o,s.transform(o,e))}var l=n.component;return Hr(l,r({},o))},t}(Br);function Si(e,t,n,r,o,i){var a=n.build(o,void 0,!1),s=n.buildPrev(t,r,!1),l=n.buildNext(t,r,!1);return{title:i,activeButton:e.type,isTodayEnabled:a.isValid&&!sn(t.currentRange,o),isPrevEnabled:s.isValid,isNextEnabled:l.isValid}}function Di(e){return e.map((function(e){return new e}))}var bi=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.state={forPrint:!1},t.handleBeforePrint=function(){t.setState({forPrint:!0})},t.handleAfterPrint=function(){t.setState({forPrint:!1})},t}return n(t,e),t.prototype.render=function(){var e=this.props,t=e.options,n=this.state.forPrint,r=n||"auto"===t.height||"auto"===t.contentHeight,o=r||null==t.height?"":t.height,i=["fc",n?"fc-media-print":"fc-media-screen","fc-direction-"+t.direction,e.theme.getClass("root")];return cr()||i.push("fc-liquid-hack"),e.children(i,o,r,n)},t.prototype.componentDidMount=function(){var e=this.props.emitter;e.on("_beforeprint",this.handleBeforePrint),e.on("_afterprint",this.handleAfterPrint)},t.prototype.componentWillUnmount=function(){var e=this.props.emitter;e.off("_beforeprint",this.handleBeforePrint),e.off("_afterprint",this.handleAfterPrint)},t}(jr);function Ci(e,t){return St(!e||t>10?{weekday:"short"}:t>1?{weekday:"short",month:"numeric",day:"numeric",omitCommas:!0}:{weekday:"long"})}var wi="fc-col-header-cell",Ri=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.render=function(){var e=this.context,t=e.dateEnv,n=e.options,o=e.theme,i=e.viewApi,a=this.props,s=a.date,l=a.dateProfile,u=hr(s,a.todayRange,null,l),c=[wi].concat(vr(u,o)),d=t.format(s,a.dayHeaderFormat),p=n.navLinks&&!u.isDisabled&&a.colCnt>1?{"data-navlink":gr(s),tabIndex:0}:{},f=r(r(r({date:t.toDate(s),view:i},a.extraHookProps),{text:d}),u);return Hr(uo,{hookProps:f,classNames:n.dayHeaderClassNames,content:n.dayHeaderContent,defaultContent:ki,didMount:n.dayHeaderDidMount,willUnmount:n.dayHeaderWillUnmount},(function(e,t,n,o){return Hr("th",r({ref:e,className:c.concat(t).join(" "),"data-date":u.isDisabled?void 0:tt(s),colSpan:a.colSpan},a.extraDataAttrs),Hr("div",{className:"fc-scrollgrid-sync-inner"},!u.isDisabled&&Hr("a",r({ref:n,className:["fc-col-header-cell-cushion",a.isSticky?"fc-sticky":""].join(" ")},p),o)))}))},t}(jr),Ti=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.render=function(){var e=this.props,t=this.context,n=t.dateEnv,o=t.theme,i=t.viewApi,a=t.options,s=ve(new Date(2592e5),e.dow),l={dow:e.dow,isDisabled:!1,isFuture:!1,isPast:!1,isToday:!1,isOther:!1},u=[wi].concat(vr(l,o),e.extraClassNames||[]),c=n.format(s,e.dayHeaderFormat),d=r(r(r(r({date:s},l),{view:i}),e.extraHookProps),{text:c});return Hr(uo,{hookProps:d,classNames:a.dayHeaderClassNames,content:a.dayHeaderContent,defaultContent:ki,didMount:a.dayHeaderDidMount,willUnmount:a.dayHeaderWillUnmount},(function(t,n,o,i){return Hr("th",r({ref:t,className:u.concat(n).join(" "),colSpan:e.colSpan},e.extraDataAttrs),Hr("div",{className:"fc-scrollgrid-sync-inner"},Hr("a",{className:["fc-col-header-cell-cushion",e.isSticky?"fc-sticky":""].join(" "),ref:o},i)))}))},t}(jr);function ki(e){return e.text}var Mi=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.initialNowDate=Wn(n.options.now,n.dateEnv),r.initialNowQueriedMs=(new Date).valueOf(),r.state=r.computeTiming().currentState,r}return n(t,e),t.prototype.render=function(){var e=this.props,t=this.state;return e.children(t.nowDate,t.todayRange)},t.prototype.componentDidMount=function(){this.setTimeout()},t.prototype.componentDidUpdate=function(e){e.unit!==this.props.unit&&(this.clearTimeout(),this.setTimeout())},t.prototype.componentWillUnmount=function(){this.clearTimeout()},t.prototype.computeTiming=function(){var e=this.props,t=this.context,n=ge(this.initialNowDate,(new Date).valueOf()-this.initialNowQueriedMs),r=t.dateEnv.startOf(n,e.unit),o=t.dateEnv.add(r,Ye(1,e.unit)),i=o.valueOf()-n.valueOf();return{currentState:{nowDate:r,todayRange:xi(r)},nextState:{nowDate:o,todayRange:xi(o)},waitMs:i}},t.prototype.setTimeout=function(){var e=this,t=this.computeTiming(),n=t.nextState,r=t.waitMs;this.timeoutId=setTimeout((function(){e.setState(n,(function(){e.setTimeout()}))}),r)},t.prototype.clearTimeout=function(){this.timeoutId&&clearTimeout(this.timeoutId)},t.contextType=zr,t}(Nr);function xi(e){var t=be(e);return{start:t,end:ve(t,1)}}var _i=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.createDayHeaderFormatter=it(Ii),t}return n(t,e),t.prototype.render=function(){var e=this.context,t=this.props,n=t.dates,r=t.dateProfile,o=t.datesRepDistinctDays,i=t.renderIntro,a=this.createDayHeaderFormatter(e.options.dayHeaderFormat,o,n.length);return Hr(Mi,{unit:"day"},(function(e,t){return Hr("tr",null,i&&i(),n.map((function(e){return o?Hr(Ri,{key:e.toISOString(),date:e,dateProfile:r,todayRange:t,colCnt:n.length,dayHeaderFormat:a}):Hr(Ti,{key:e.getUTCDay(),dow:e.getUTCDay(),dayHeaderFormat:a})})))}))},t}(jr);function Ii(e,t,n){return e||Ci(t,n)}var Pi=function(){function e(e,t){for(var n=e.start,r=e.end,o=[],i=[],a=-1;n<r;)t.isHiddenDay(n)?o.push(a+.5):(a++,o.push(a),i.push(n)),n=ve(n,1);this.dates=i,this.indices=o,this.cnt=i.length}return e.prototype.sliceRange=function(e){var t=this.getDateDayIndex(e.start),n=this.getDateDayIndex(ve(e.end,-1)),r=Math.max(0,t),o=Math.min(this.cnt-1,n);return(r=Math.ceil(r))<=(o=Math.floor(o))?{firstIndex:r,lastIndex:o,isStart:t===r,isEnd:n===o}:null},e.prototype.getDateDayIndex=function(e){var t=this.indices,n=Math.floor(ye(this.dates[0],e));return n<0?t[0]-1:n>=t.length?t[t.length-1]+1:t[n]},e}(),Ni=function(){function e(e,t){var n,r,o,i=e.dates;if(t){for(r=i[0].getUTCDay(),n=1;n<i.length&&i[n].getUTCDay()!==r;n++);o=Math.ceil(i.length/n)}else o=1,n=i.length;this.rowCnt=o,this.colCnt=n,this.daySeries=e,this.cells=this.buildCells(),this.headerDates=this.buildHeaderDates()}return e.prototype.buildCells=function(){for(var e=[],t=0;t<this.rowCnt;t++){for(var n=[],r=0;r<this.colCnt;r++)n.push(this.buildCell(t,r));e.push(n)}return e},e.prototype.buildCell=function(e,t){var n=this.daySeries.dates[e*this.colCnt+t];return{key:n.toISOString(),date:n}},e.prototype.buildHeaderDates=function(){for(var e=[],t=0;t<this.colCnt;t++)e.push(this.cells[0][t].date);return e},e.prototype.sliceRange=function(e){var t=this.colCnt,n=this.daySeries.sliceRange(e),r=[];if(n)for(var o=n.firstIndex,i=n.lastIndex,a=o;a<=i;){var s=Math.floor(a/t),l=Math.min((s+1)*t,i+1);r.push({row:s,firstCol:a%t,lastCol:(l-1)%t,isStart:n.isStart&&a===o,isEnd:n.isEnd&&l-1===i}),a=l}return r},e}(),Hi=function(){function e(){this.sliceBusinessHours=it(this._sliceBusinessHours),this.sliceDateSelection=it(this._sliceDateSpan),this.sliceEventStore=it(this._sliceEventStore),this.sliceEventDrag=it(this._sliceInteraction),this.sliceEventResize=it(this._sliceInteraction),this.forceDayIfListItem=!1}return e.prototype.sliceProps=function(e,t,n,r){for(var i=[],a=4;a<arguments.length;a++)i[a-4]=arguments[a];var s=e.eventUiBases,l=this.sliceEventStore.apply(this,o([e.eventStore,s,t,n],i));return{dateSelectionSegs:this.sliceDateSelection.apply(this,o([e.dateSelection,s,r],i)),businessHourSegs:this.sliceBusinessHours.apply(this,o([e.businessHours,t,n,r],i)),fgEventSegs:l.fg,bgEventSegs:l.bg,eventDrag:this.sliceEventDrag.apply(this,o([e.eventDrag,s,t,n],i)),eventResize:this.sliceEventResize.apply(this,o([e.eventResize,s,t,n],i)),eventSelection:e.eventSelection}},e.prototype.sliceNowDate=function(e,t){for(var n=[],r=2;r<arguments.length;r++)n[r-2]=arguments[r];return this._sliceDateSpan.apply(this,o([{range:{start:e,end:ge(e,1)},allDay:!1},{},t],n))},e.prototype._sliceBusinessHours=function(e,t,n,r){for(var i=[],a=4;a<arguments.length;a++)i[a-4]=arguments[a];return e?this._sliceEventStore.apply(this,o([Be(e,Oi(t,Boolean(n)),r),{},t,n],i)).bg:[]},e.prototype._sliceEventStore=function(e,t,n,r){for(var o=[],i=4;i<arguments.length;i++)o[i-4]=arguments[i];if(e){var a=ln(e,t,Oi(n,Boolean(r)),r);return{bg:this.sliceEventRanges(a.bg,o),fg:this.sliceEventRanges(a.fg,o)}}return{bg:[],fg:[]}},e.prototype._sliceInteraction=function(e,t,n,r){for(var o=[],i=4;i<arguments.length;i++)o[i-4]=arguments[i];if(!e)return null;var a=ln(e.mutatedEvents,t,Oi(n,Boolean(r)),r);return{segs:this.sliceEventRanges(a.fg,o),affectedInstances:e.affectedEvents.instances,isEvent:e.isEvent}},e.prototype._sliceDateSpan=function(e,t,n){for(var r=[],i=3;i<arguments.length;i++)r[i-3]=arguments[i];if(!e)return[];for(var a=Mn(e,t,n),s=this.sliceRange.apply(this,o([e.range],r)),l=0,u=s;l<u.length;l++){var c=u[l];c.eventRange=a}return s},e.prototype.sliceEventRanges=function(e,t){for(var n=[],r=0,o=e;r<o.length;r++){var i=o[r];n.push.apply(n,this.sliceEventRange(i,t))}return n},e.prototype.sliceEventRange=function(e,t){var n=e.range;this.forceDayIfListItem&&"list-item"===e.ui.display&&(n={start:n.start,end:ve(n.start,1)});for(var r=this.sliceRange.apply(this,o([n],t)),i=0,a=r;i<a.length;i++){var s=a[i];s.eventRange=e,s.isStart=e.isStart&&s.isStart,s.isEnd=e.isEnd&&s.isEnd}return r},e}();function Oi(e,t){var n=e.activeRange;return t?n:{start:ge(n.start,e.slotMinTime.milliseconds),end:ge(n.end,e.slotMaxTime.milliseconds-864e5)}}var Ai=/^(visible|hidden)$/,Ui=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.handleEl=function(e){t.el=e,Yr(t.props.elRef,e)},t}return n(t,e),t.prototype.render=function(){var e=this.props,t=e.liquid,n=e.liquidIsAbsolute,r=t&&n,o=["fc-scroller"];return t&&(n?o.push("fc-scroller-liquid-absolute"):o.push("fc-scroller-liquid")),Hr("div",{ref:this.handleEl,className:o.join(" "),style:{overflowX:e.overflowX,overflowY:e.overflowY,left:r&&-(e.overcomeLeft||0)||"",right:r&&-(e.overcomeRight||0)||"",bottom:r&&-(e.overcomeBottom||0)||"",marginLeft:!r&&-(e.overcomeLeft||0)||"",marginRight:!r&&-(e.overcomeRight||0)||"",marginBottom:!r&&-(e.overcomeBottom||0)||"",maxHeight:e.maxHeight||""}},e.children)},t.prototype.needsXScrolling=function(){if(Ai.test(this.props.overflowX))return!1;for(var e=this.el,t=this.el.getBoundingClientRect().width-this.getYScrollbarWidth(),n=e.children,r=0;r<n.length;r++){if(n[r].getBoundingClientRect().width>t)return!0}return!1},t.prototype.needsYScrolling=function(){if(Ai.test(this.props.overflowY))return!1;for(var e=this.el,t=this.el.getBoundingClientRect().height-this.getXScrollbarWidth(),n=e.children,r=0;r<n.length;r++){if(n[r].getBoundingClientRect().height>t)return!0}return!1},t.prototype.getXScrollbarWidth=function(){return Ai.test(this.props.overflowX)?0:this.el.offsetHeight-this.el.clientHeight},t.prototype.getYScrollbarWidth=function(){return Ai.test(this.props.overflowY)?0:this.el.offsetWidth-this.el.clientWidth},t}(jr),Li=function(){function e(e){var t=this;this.masterCallback=e,this.currentMap={},this.depths={},this.callbackMap={},this.handleValue=function(e,n){var r=t,o=r.depths,i=r.currentMap,a=!1,s=!1;null!==e?(a=n in i,i[n]=e,o[n]=(o[n]||0)+1,s=!0):0==--o[n]&&(delete i[n],delete t.callbackMap[n],a=!0),t.masterCallback&&(a&&t.masterCallback(null,String(n)),s&&t.masterCallback(e,String(n)))}}return e.prototype.createRef=function(e){var t=this,n=this.callbackMap[e];return n||(n=this.callbackMap[e]=function(n){t.handleValue(n,String(e))}),n},e.prototype.collect=function(e,t,n){return Fe(this.currentMap,e,t,n)},e.prototype.getAll=function(){return Ue(this.currentMap)},e}();function Wi(e){for(var t=0,n=0,r=F(e,".fc-scrollgrid-shrink");n<r.length;n++){var o=r[n];t=Math.max(t,pe(o))}return Math.ceil(t)}function Vi(e,t){return e.liquid&&t.liquid}function zi(e,t){return null!=t.maxHeight||Vi(e,t)}function Fi(e,t,n){var r=n.expandRows;return"function"==typeof t.content?t.content(n):Hr("table",{className:[t.tableClassName,e.syncRowHeights?"fc-scrollgrid-sync-table":""].join(" "),style:{minWidth:n.tableMinWidth,width:n.clientWidth,height:r?n.clientHeight:""}},n.tableColGroupNode,Hr("tbody",{},"function"==typeof t.rowContent?t.rowContent(n):t.rowContent))}function Bi(e,t){return ot(e,t,Le)}function ji(e,t){for(var n=[],r=0,i=e;r<i.length;r++)for(var a=i[r],s=a.span||1,l=0;l<s;l++)n.push(Hr("col",{style:{width:"shrink"===a.width?Gi(t):a.width||"",minWidth:a.minWidth||""}}));return Hr.apply(void 0,o(["colgroup",{}],n))}function Gi(e){return null==e?4:e}function qi(e){for(var t=0,n=e;t<n.length;t++){if("shrink"===n[t].width)return!0}return!1}function Yi(e,t){var n=["fc-scrollgrid",t.theme.getClass("table")];return e&&n.push("fc-scrollgrid-liquid"),n}function Zi(e,t){var n=["fc-scrollgrid-section","fc-scrollgrid-section-"+e.type,e.className];return t&&e.liquid&&null==e.maxHeight&&n.push("fc-scrollgrid-section-liquid"),e.isSticky&&n.push("fc-scrollgrid-section-sticky"),n}function Xi(e){return Hr("div",{className:"fc-scrollgrid-sticky-shim",style:{width:e.clientWidth,minWidth:e.tableMinWidth}})}function Ki(e){var t=e.stickyHeaderDates;return null!=t&&"auto"!==t||(t="auto"===e.height||"auto"===e.viewHeight),t}function Ji(e){var t=e.stickyFooterScrollbar;return null!=t&&"auto"!==t||(t="auto"===e.height||"auto"===e.viewHeight),t}var $i=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.processCols=it((function(e){return e}),Bi),t.renderMicroColGroup=it(ji),t.scrollerRefs=new Li,t.scrollerElRefs=new Li(t._handleScrollerEl.bind(t)),t.state={shrinkWidth:null,forceYScrollbars:!1,scrollerClientWidths:{},scrollerClientHeights:{}},t.handleSizing=function(){t.setState(r({shrinkWidth:t.computeShrinkWidth()},t.computeScrollerDims()))},t}return n(t,e),t.prototype.render=function(){for(var e,t=this.props,n=this.state,r=this.context,i=t.sections||[],a=this.processCols(t.cols),s=this.renderMicroColGroup(a,n.shrinkWidth),l=Yi(t.liquid,r),u=i.length,c=0,d=[],p=[],f=[];c<u&&"header"===(e=i[c]).type;)d.push(this.renderSection(e,c,s)),c++;for(;c<u&&"body"===(e=i[c]).type;)p.push(this.renderSection(e,c,s)),c++;for(;c<u&&"footer"===(e=i[c]).type;)f.push(this.renderSection(e,c,s)),c++;var h=!cr();return Hr("table",{className:l.join(" "),style:{height:t.height}},Boolean(!h&&d.length)&&Hr.apply(void 0,o(["thead",{}],d)),Boolean(!h&&p.length)&&Hr.apply(void 0,o(["tbody",{}],p)),Boolean(!h&&f.length)&&Hr.apply(void 0,o(["tfoot",{}],f)),h&&Hr.apply(void 0,o(["tbody",{}],d,p,f)))},t.prototype.renderSection=function(e,t,n){return"outerContent"in e?Hr(Ur,{key:e.key},e.outerContent):Hr("tr",{key:e.key,className:Zi(e,this.props.liquid).join(" ")},this.renderChunkTd(e,t,n,e.chunk))},t.prototype.renderChunkTd=function(e,t,n,r){if("outerContent"in r)return r.outerContent;var o=this.props,i=this.state,a=i.forceYScrollbars,s=i.scrollerClientWidths,l=i.scrollerClientHeights,u=zi(o,e),c=Vi(o,e),d=o.liquid?a?"scroll":u?"auto":"hidden":"visible",p=Fi(e,r,{tableColGroupNode:n,tableMinWidth:"",clientWidth:void 0!==s[t]?s[t]:null,clientHeight:void 0!==l[t]?l[t]:null,expandRows:e.expandRows,syncRowHeights:!1,rowSyncHeights:[],reportRowHeightChange:function(){}});return Hr("td",{ref:r.elRef},Hr("div",{className:"fc-scroller-harness"+(c?" fc-scroller-harness-liquid":"")},Hr(Ui,{ref:this.scrollerRefs.createRef(t),elRef:this.scrollerElRefs.createRef(t),overflowY:d,overflowX:o.liquid?"hidden":"visible",maxHeight:e.maxHeight,liquid:c,liquidIsAbsolute:!0},p)))},t.prototype._handleScrollerEl=function(e,t){var n=parseInt(t,10);Yr(this.props.sections[n].chunk.scrollerElRef,e)},t.prototype.componentDidMount=function(){this.handleSizing(),this.context.addResizeHandler(this.handleSizing)},t.prototype.componentDidUpdate=function(){this.handleSizing()},t.prototype.componentWillUnmount=function(){this.context.removeResizeHandler(this.handleSizing)},t.prototype.computeShrinkWidth=function(){return qi(this.props.cols)?Wi(this.scrollerElRefs.getAll()):0},t.prototype.computeScrollerDims=function(){for(var e=Sr(),t=this.props.sections.length,n=this.scrollerRefs,r=this.scrollerElRefs,o=!1,i={},a={},s=0;s<t;s++){var l=n.currentMap[s];if(l&&l.needsYScrolling()){o=!0;break}}for(s=0;s<t;s++){var u=r.currentMap[s];if(u){var c=u.parentNode;i[s]=Math.floor(c.getBoundingClientRect().width-(o?e.y:0)),a[s]=Math.floor(c.getBoundingClientRect().height)}}return{forceYScrollbars:o,scrollerClientWidths:i,scrollerClientHeights:a}},t}(jr);$i.addStateEquality({scrollerClientWidths:Le,scrollerClientHeights:Le});var Qi=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.elRef=Ar(),t}return n(t,e),t.prototype.render=function(){var e=this.props,t=this.context,n=t.options,r=e.seg,o=r.eventRange,i=o.ui,a={event:new zn(t,o.def,o.instance),view:t.viewApi,timeText:e.timeText,textColor:i.textColor,backgroundColor:i.backgroundColor,borderColor:i.borderColor,isDraggable:!e.disableDragging&&gn(r,t),isStartResizable:!e.disableResizing&&mn(r,t),isEndResizable:!e.disableResizing&&yn(r),isMirror:Boolean(e.isDragging||e.isResizing||e.isDateSelecting),isStart:Boolean(r.isStart),isEnd:Boolean(r.isEnd),isPast:Boolean(e.isPast),isFuture:Boolean(e.isFuture),isToday:Boolean(e.isToday),isSelected:Boolean(e.isSelected),isDragging:Boolean(e.isDragging),isResizing:Boolean(e.isResizing)},s=Dn(a).concat(i.classNames);return Hr(uo,{hookProps:a,classNames:n.eventClassNames,content:n.eventContent,defaultContent:e.defaultContent,didMount:n.eventDidMount,willUnmount:n.eventWillUnmount,elRef:this.elRef},(function(t,n,r,o){return e.children(t,s.concat(n),r,o,a)}))},t.prototype.componentDidMount=function(){cn(this.elRef.current,this.props.seg)},t.prototype.componentDidUpdate=function(e){var t=this.props.seg;t!==e.seg&&cn(this.elRef.current,t)},t}(jr),ea=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.render=function(){var e=this.props,t=this.context,n=e.seg,o=t.options.eventTimeFormat||e.defaultTimeFormat,i=En(n,o,t,e.defaultDisplayEventTime,e.defaultDisplayEventEnd);return Hr(Qi,{seg:n,timeText:i,disableDragging:e.disableDragging,disableResizing:e.disableResizing,defaultContent:e.defaultContent||ta,isDragging:e.isDragging,isResizing:e.isResizing,isDateSelecting:e.isDateSelecting,isSelected:e.isSelected,isPast:e.isPast,isFuture:e.isFuture,isToday:e.isToday},(function(t,o,i,a,s){return Hr("a",r({className:e.extraClassNames.concat(o).join(" "),style:{borderColor:s.borderColor,backgroundColor:s.backgroundColor},ref:t},function(e){var t=e.eventRange.def.url;return t?{href:t}:{}}(n)),Hr("div",{className:"fc-event-main",ref:i,style:{color:s.textColor}},a),s.isStartResizable&&Hr("div",{className:"fc-event-resizer fc-event-resizer-start"}),s.isEndResizable&&Hr("div",{className:"fc-event-resizer fc-event-resizer-end"}))}))},t}(jr);function ta(e){return Hr("div",{className:"fc-event-main-frame"},e.timeText&&Hr("div",{className:"fc-event-time"},e.timeText),Hr("div",{className:"fc-event-title-container"},Hr("div",{className:"fc-event-title fc-sticky"},e.event.title||Hr(Ur,null," "))))}var na=function(e){return Hr(zr.Consumer,null,(function(t){var n=t.options,r={isAxis:e.isAxis,date:t.dateEnv.toDate(e.date),view:t.viewApi};return Hr(uo,{hookProps:r,classNames:n.nowIndicatorClassNames,content:n.nowIndicatorContent,didMount:n.nowIndicatorDidMount,willUnmount:n.nowIndicatorWillUnmount},e.children)}))},ra=St({day:"numeric"}),oa=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.refineHookProps=at(aa),t.normalizeClassNames=vo(),t}return n(t,e),t.prototype.render=function(){var e=this.props,t=this.context,n=t.options,r=this.refineHookProps({date:e.date,dateProfile:e.dateProfile,todayRange:e.todayRange,showDayNumber:e.showDayNumber,extraProps:e.extraHookProps,viewApi:t.viewApi,dateEnv:t.dateEnv}),o=vr(r,t.theme).concat(r.isDisabled?[]:this.normalizeClassNames(n.dayCellClassNames,r)),i=r.isDisabled?{}:{"data-date":tt(e.date)};return Hr(ho,{hookProps:r,didMount:n.dayCellDidMount,willUnmount:n.dayCellWillUnmount,elRef:e.elRef},(function(t){return e.children(t,o,i,r.isDisabled)}))},t}(jr),ia=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.render=function(){var e=this.props,t=this.context,n=t.options,r=aa({date:e.date,dateProfile:e.dateProfile,todayRange:e.todayRange,showDayNumber:e.showDayNumber,extraProps:e.extraHookProps,viewApi:t.viewApi,dateEnv:t.dateEnv});return Hr(po,{hookProps:r,content:n.dayCellContent,defaultContent:e.defaultContent},e.children)},t}(jr);function aa(e){var t=e.date,n=e.dateEnv,o=hr(t,e.todayRange,null,e.dateProfile);return r(r(r({date:n.toDate(t),view:e.viewApi},o),{dayNumberText:e.showDayNumber?n.format(t,ra):""}),e.extraProps)}function sa(e){return Hr("div",{className:"fc-"+e})}var la=function(e){return Hr(Qi,{defaultContent:ua,seg:e.seg,timeText:"",disableDragging:!0,disableResizing:!0,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:!1,isPast:e.isPast,isFuture:e.isFuture,isToday:e.isToday},(function(e,t,n,r,o){return Hr("div",{ref:e,className:["fc-bg-event"].concat(t).join(" "),style:{backgroundColor:o.backgroundColor}},r)}))};function ua(e){return e.event.title&&Hr("div",{className:"fc-event-title"},e.event.title)}var ca=function(e){return Hr(zr.Consumer,null,(function(t){var n=t.dateEnv,r=t.options,o=e.date,i=r.weekNumberFormat||e.defaultFormat,a=n.computeWeekNumber(o),s=n.format(o,i);return Hr(uo,{hookProps:{num:a,text:s,date:o},classNames:r.weekNumberClassNames,content:r.weekNumberContent,defaultContent:da,didMount:r.weekNumberDidMount,willUnmount:r.weekNumberWillUnmount},e.children)}))};function da(e){return e.text}var pa=function(e){function t(t,n){void 0===n&&(n={});var o=e.call(this)||this;return o.isRendering=!1,o.isRendered=!1,o.currentClassNames=[],o.customContentRenderId=0,o.handleAction=function(e){switch(e.type){case"SET_EVENT_DRAG":case"SET_EVENT_RESIZE":o.renderRunner.tryDrain()}},o.handleData=function(e){o.currentData=e,o.renderRunner.request(e.calendarOptions.rerenderDelay)},o.handleRenderRequest=function(){if(o.isRendering){o.isRendered=!0;var e=o.currentData;Or(Hr(bi,{options:e.calendarOptions,theme:e.theme,emitter:e.emitter},(function(t,n,i,a){return o.setClassNames(t),o.setHeight(n),Hr(co.Provider,{value:o.customContentRenderId},Hr(Ei,r({isHeightAuto:i,forPrint:a},e)))})),o.el)}else o.isRendered&&(o.isRendered=!1,Or(null,o.el),o.setClassNames([]),o.setHeight(""));Wr()},o.el=t,o.renderRunner=new Go(o.handleRenderRequest),new Zo({optionOverrides:n,calendarApi:o,onAction:o.handleAction,onData:o.handleData}),o}return n(t,e),Object.defineProperty(t.prototype,"view",{get:function(){return this.currentData.viewApi},enumerable:!1,configurable:!0}),t.prototype.render=function(){var e=this.isRendering;e?this.customContentRenderId++:this.isRendering=!0,this.renderRunner.request(),e&&this.updateSize()},t.prototype.destroy=function(){this.isRendering&&(this.isRendering=!1,this.renderRunner.request())},t.prototype.updateSize=function(){e.prototype.updateSize.call(this),Wr()},t.prototype.batchRendering=function(e){this.renderRunner.pause("batchRendering"),e(),this.renderRunner.resume("batchRendering")},t.prototype.pauseRendering=function(){this.renderRunner.pause("pauseRendering")},t.prototype.resumeRendering=function(){this.renderRunner.resume("pauseRendering",!0)},t.prototype.resetOptions=function(e,t){this.currentDataManager.resetOptions(e,t)},t.prototype.setClassNames=function(e){if(!ot(e,this.currentClassNames)){for(var t=this.el.classList,n=0,r=this.currentClassNames;n<r.length;n++){var o=r[n];t.remove(o)}for(var i=0,a=e;i<a.length;i++){o=a[i];t.add(o)}this.currentClassNames=e}},t.prototype.setHeight=function(e){G(this.el,"height",e)},t}(Vn);di.touchMouseIgnoreWait=500;var fa=0,ha=0,va=!1,ga=function(){function e(e){var t=this;this.subjectEl=null,this.selector="",this.handleSelector="",this.shouldIgnoreMove=!1,this.shouldWatchScroll=!0,this.isDragging=!1,this.isTouchDragging=!1,this.wasTouchScroll=!1,this.handleMouseDown=function(e){if(!t.shouldIgnoreMouse()&&function(e){return 0===e.button&&!e.ctrlKey}(e)&&t.tryStart(e)){var n=t.createEventFromMouse(e,!0);t.emitter.trigger("pointerdown",n),t.initScrollWatch(n),t.shouldIgnoreMove||document.addEventListener("mousemove",t.handleMouseMove),document.addEventListener("mouseup",t.handleMouseUp)}},this.handleMouseMove=function(e){var n=t.createEventFromMouse(e);t.recordCoords(n),t.emitter.trigger("pointermove",n)},this.handleMouseUp=function(e){document.removeEventListener("mousemove",t.handleMouseMove),document.removeEventListener("mouseup",t.handleMouseUp),t.emitter.trigger("pointerup",t.createEventFromMouse(e)),t.cleanup()},this.handleTouchStart=function(e){if(t.tryStart(e)){t.isTouchDragging=!0;var n=t.createEventFromTouch(e,!0);t.emitter.trigger("pointerdown",n),t.initScrollWatch(n);var r=e.target;t.shouldIgnoreMove||r.addEventListener("touchmove",t.handleTouchMove),r.addEventListener("touchend",t.handleTouchEnd),r.addEventListener("touchcancel",t.handleTouchEnd),window.addEventListener("scroll",t.handleTouchScroll,!0)}},this.handleTouchMove=function(e){var n=t.createEventFromTouch(e);t.recordCoords(n),t.emitter.trigger("pointermove",n)},this.handleTouchEnd=function(e){if(t.isDragging){var n=e.target;n.removeEventListener("touchmove",t.handleTouchMove),n.removeEventListener("touchend",t.handleTouchEnd),n.removeEventListener("touchcancel",t.handleTouchEnd),window.removeEventListener("scroll",t.handleTouchScroll,!0),t.emitter.trigger("pointerup",t.createEventFromTouch(e)),t.cleanup(),t.isTouchDragging=!1,fa++,setTimeout((function(){fa--}),di.touchMouseIgnoreWait)}},this.handleTouchScroll=function(){t.wasTouchScroll=!0},this.handleScroll=function(e){if(!t.shouldIgnoreMove){var n=window.pageXOffset-t.prevScrollX+t.prevPageX,r=window.pageYOffset-t.prevScrollY+t.prevPageY;t.emitter.trigger("pointermove",{origEvent:e,isTouch:t.isTouchDragging,subjectEl:t.subjectEl,pageX:n,pageY:r,deltaX:n-t.origPageX,deltaY:r-t.origPageY})}},this.containerEl=e,this.emitter=new kr,e.addEventListener("mousedown",this.handleMouseDown),e.addEventListener("touchstart",this.handleTouchStart,{passive:!0}),ha++||window.addEventListener("touchmove",ma,{passive:!1})}return e.prototype.destroy=function(){this.containerEl.removeEventListener("mousedown",this.handleMouseDown),this.containerEl.removeEventListener("touchstart",this.handleTouchStart,{passive:!0}),--ha||window.removeEventListener("touchmove",ma,{passive:!1})},e.prototype.tryStart=function(e){var t=this.querySubjectEl(e),n=e.target;return!(!t||this.handleSelector&&!V(n,this.handleSelector))&&(this.subjectEl=t,this.isDragging=!0,this.wasTouchScroll=!1,!0)},e.prototype.cleanup=function(){va=!1,this.isDragging=!1,this.subjectEl=null,this.destroyScrollWatch()},e.prototype.querySubjectEl=function(e){return this.selector?V(e.target,this.selector):this.containerEl},e.prototype.shouldIgnoreMouse=function(){return fa||this.isTouchDragging},e.prototype.cancelTouchScroll=function(){this.isDragging&&(va=!0)},e.prototype.initScrollWatch=function(e){this.shouldWatchScroll&&(this.recordCoords(e),window.addEventListener("scroll",this.handleScroll,!0))},e.prototype.recordCoords=function(e){this.shouldWatchScroll&&(this.prevPageX=e.pageX,this.prevPageY=e.pageY,this.prevScrollX=window.pageXOffset,this.prevScrollY=window.pageYOffset)},e.prototype.destroyScrollWatch=function(){this.shouldWatchScroll&&window.removeEventListener("scroll",this.handleScroll,!0)},e.prototype.createEventFromMouse=function(e,t){var n=0,r=0;return t?(this.origPageX=e.pageX,this.origPageY=e.pageY):(n=e.pageX-this.origPageX,r=e.pageY-this.origPageY),{origEvent:e,isTouch:!1,subjectEl:this.subjectEl,pageX:e.pageX,pageY:e.pageY,deltaX:n,deltaY:r}},e.prototype.createEventFromTouch=function(e,t){var n,r,o=e.touches,i=0,a=0;return o&&o.length?(n=o[0].pageX,r=o[0].pageY):(n=e.pageX,r=e.pageY),t?(this.origPageX=n,this.origPageY=r):(i=n-this.origPageX,a=r-this.origPageY),{origEvent:e,isTouch:!0,subjectEl:this.subjectEl,pageX:n,pageY:r,deltaX:i,deltaY:a}},e}();function ma(e){va&&e.preventDefault()}var ya=function(){function e(){this.isVisible=!1,this.sourceEl=null,this.mirrorEl=null,this.sourceElRect=null,this.parentNode=document.body,this.zIndex=9999,this.revertDuration=0}return e.prototype.start=function(e,t,n){this.sourceEl=e,this.sourceElRect=this.sourceEl.getBoundingClientRect(),this.origScreenX=t-window.pageXOffset,this.origScreenY=n-window.pageYOffset,this.deltaX=0,this.deltaY=0,this.updateElPosition()},e.prototype.handleMove=function(e,t){this.deltaX=e-window.pageXOffset-this.origScreenX,this.deltaY=t-window.pageYOffset-this.origScreenY,this.updateElPosition()},e.prototype.setIsVisible=function(e){e?this.isVisible||(this.mirrorEl&&(this.mirrorEl.style.display=""),this.isVisible=e,this.updateElPosition()):this.isVisible&&(this.mirrorEl&&(this.mirrorEl.style.display="none"),this.isVisible=e)},e.prototype.stop=function(e,t){var n=this,r=function(){n.cleanup(),t()};e&&this.mirrorEl&&this.isVisible&&this.revertDuration&&(this.deltaX||this.deltaY)?this.doRevertAnimation(r,this.revertDuration):setTimeout(r,0)},e.prototype.doRevertAnimation=function(e,t){var n=this.mirrorEl,r=this.sourceEl.getBoundingClientRect();n.style.transition="top "+t+"ms,left "+t+"ms",j(n,{left:r.left,top:r.top}),K(n,(function(){n.style.transition="",e()}))},e.prototype.cleanup=function(){this.mirrorEl&&(W(this.mirrorEl),this.mirrorEl=null),this.sourceEl=null},e.prototype.updateElPosition=function(){this.sourceEl&&this.isVisible&&j(this.getMirrorEl(),{left:this.sourceElRect.left+this.deltaX,top:this.sourceElRect.top+this.deltaY})},e.prototype.getMirrorEl=function(){var e=this.sourceElRect,t=this.mirrorEl;return t||((t=this.mirrorEl=this.sourceEl.cloneNode(!0)).classList.add("fc-unselectable"),t.classList.add("fc-event-dragging"),j(t,{position:"fixed",zIndex:this.zIndex,visibility:"",boxSizing:"border-box",width:e.right-e.left,height:e.bottom-e.top,right:"auto",bottom:"auto",margin:0}),this.parentNode.appendChild(t)),t},e}(),Ea=function(e){function t(t,n){var r=e.call(this)||this;return r.handleScroll=function(){r.scrollTop=r.scrollController.getScrollTop(),r.scrollLeft=r.scrollController.getScrollLeft(),r.handleScrollChange()},r.scrollController=t,r.doesListening=n,r.scrollTop=r.origScrollTop=t.getScrollTop(),r.scrollLeft=r.origScrollLeft=t.getScrollLeft(),r.scrollWidth=t.getScrollWidth(),r.scrollHeight=t.getScrollHeight(),r.clientWidth=t.getClientWidth(),r.clientHeight=t.getClientHeight(),r.clientRect=r.computeClientRect(),r.doesListening&&r.getEventTarget().addEventListener("scroll",r.handleScroll),r}return n(t,e),t.prototype.destroy=function(){this.doesListening&&this.getEventTarget().removeEventListener("scroll",this.handleScroll)},t.prototype.getScrollTop=function(){return this.scrollTop},t.prototype.getScrollLeft=function(){return this.scrollLeft},t.prototype.setScrollTop=function(e){this.scrollController.setScrollTop(e),this.doesListening||(this.scrollTop=Math.max(Math.min(e,this.getMaxScrollTop()),0),this.handleScrollChange())},t.prototype.setScrollLeft=function(e){this.scrollController.setScrollLeft(e),this.doesListening||(this.scrollLeft=Math.max(Math.min(e,this.getMaxScrollLeft()),0),this.handleScrollChange())},t.prototype.getClientWidth=function(){return this.clientWidth},t.prototype.getClientHeight=function(){return this.clientHeight},t.prototype.getScrollWidth=function(){return this.scrollWidth},t.prototype.getScrollHeight=function(){return this.scrollHeight},t.prototype.handleScrollChange=function(){},t}(xr),Sa=function(e){function t(t,n){return e.call(this,new _r(t),n)||this}return n(t,e),t.prototype.getEventTarget=function(){return this.scrollController.el},t.prototype.computeClientRect=function(){return Cr(this.scrollController.el)},t}(Ea),Da=function(e){function t(t){return e.call(this,new Ir,t)||this}return n(t,e),t.prototype.getEventTarget=function(){return window},t.prototype.computeClientRect=function(){return{left:this.scrollLeft,right:this.scrollLeft+this.clientWidth,top:this.scrollTop,bottom:this.scrollTop+this.clientHeight}},t.prototype.handleScrollChange=function(){this.clientRect=this.computeClientRect()},t}(Ea),ba="function"==typeof performance?performance.now:Date.now,Ca=function(){function e(){var e=this;this.isEnabled=!0,this.scrollQuery=[window,".fc-scroller"],this.edgeThreshold=50,this.maxVelocity=300,this.pointerScreenX=null,this.pointerScreenY=null,this.isAnimating=!1,this.scrollCaches=null,this.everMovedUp=!1,this.everMovedDown=!1,this.everMovedLeft=!1,this.everMovedRight=!1,this.animate=function(){if(e.isAnimating){var t=e.computeBestEdge(e.pointerScreenX+window.pageXOffset,e.pointerScreenY+window.pageYOffset);if(t){var n=ba();e.handleSide(t,(n-e.msSinceRequest)/1e3),e.requestAnimation(n)}else e.isAnimating=!1}}}return e.prototype.start=function(e,t){this.isEnabled&&(this.scrollCaches=this.buildCaches(),this.pointerScreenX=null,this.pointerScreenY=null,this.everMovedUp=!1,this.everMovedDown=!1,this.everMovedLeft=!1,this.everMovedRight=!1,this.handleMove(e,t))},e.prototype.handleMove=function(e,t){if(this.isEnabled){var n=e-window.pageXOffset,r=t-window.pageYOffset,o=null===this.pointerScreenY?0:r-this.pointerScreenY,i=null===this.pointerScreenX?0:n-this.pointerScreenX;o<0?this.everMovedUp=!0:o>0&&(this.everMovedDown=!0),i<0?this.everMovedLeft=!0:i>0&&(this.everMovedRight=!0),this.pointerScreenX=n,this.pointerScreenY=r,this.isAnimating||(this.isAnimating=!0,this.requestAnimation(ba()))}},e.prototype.stop=function(){if(this.isEnabled){this.isAnimating=!1;for(var e=0,t=this.scrollCaches;e<t.length;e++){t[e].destroy()}this.scrollCaches=null}},e.prototype.requestAnimation=function(e){this.msSinceRequest=e,requestAnimationFrame(this.animate)},e.prototype.handleSide=function(e,t){var n=e.scrollCache,r=this.edgeThreshold,o=r-e.distance,i=o*o/(r*r)*this.maxVelocity*t,a=1;switch(e.name){case"left":a=-1;case"right":n.setScrollLeft(n.getScrollLeft()+i*a);break;case"top":a=-1;case"bottom":n.setScrollTop(n.getScrollTop()+i*a)}},e.prototype.computeBestEdge=function(e,t){for(var n=this.edgeThreshold,r=null,o=0,i=this.scrollCaches;o<i.length;o++){var a=i[o],s=a.clientRect,l=e-s.left,u=s.right-e,c=t-s.top,d=s.bottom-t;l>=0&&u>=0&&c>=0&&d>=0&&(c<=n&&this.everMovedUp&&a.canScrollUp()&&(!r||r.distance>c)&&(r={scrollCache:a,name:"top",distance:c}),d<=n&&this.everMovedDown&&a.canScrollDown()&&(!r||r.distance>d)&&(r={scrollCache:a,name:"bottom",distance:d}),l<=n&&this.everMovedLeft&&a.canScrollLeft()&&(!r||r.distance>l)&&(r={scrollCache:a,name:"left",distance:l}),u<=n&&this.everMovedRight&&a.canScrollRight()&&(!r||r.distance>u)&&(r={scrollCache:a,name:"right",distance:u}))}return r},e.prototype.buildCaches=function(){return this.queryScrollEls().map((function(e){return e===window?new Da(!1):new Sa(e,!1)}))},e.prototype.queryScrollEls=function(){for(var e=[],t=0,n=this.scrollQuery;t<n.length;t++){var r=n[t];"object"==typeof r?e.push(r):e.push.apply(e,Array.prototype.slice.call(document.querySelectorAll(r)))}return e},e}(),wa=function(e){function t(t,n){var r=e.call(this,t)||this;r.delay=null,r.minDistance=0,r.touchScrollAllowed=!0,r.mirrorNeedsRevert=!1,r.isInteracting=!1,r.isDragging=!1,r.isDelayEnded=!1,r.isDistanceSurpassed=!1,r.delayTimeoutId=null,r.onPointerDown=function(e){r.isDragging||(r.isInteracting=!0,r.isDelayEnded=!1,r.isDistanceSurpassed=!1,te(document.body),re(document.body),e.isTouch||e.origEvent.preventDefault(),r.emitter.trigger("pointerdown",e),r.isInteracting&&!r.pointer.shouldIgnoreMove&&(r.mirror.setIsVisible(!1),r.mirror.start(e.subjectEl,e.pageX,e.pageY),r.startDelay(e),r.minDistance||r.handleDistanceSurpassed(e)))},r.onPointerMove=function(e){if(r.isInteracting){if(r.emitter.trigger("pointermove",e),!r.isDistanceSurpassed){var t=r.minDistance,n=e.deltaX,o=e.deltaY;n*n+o*o>=t*t&&r.handleDistanceSurpassed(e)}r.isDragging&&("scroll"!==e.origEvent.type&&(r.mirror.handleMove(e.pageX,e.pageY),r.autoScroller.handleMove(e.pageX,e.pageY)),r.emitter.trigger("dragmove",e))}},r.onPointerUp=function(e){r.isInteracting&&(r.isInteracting=!1,ne(document.body),oe(document.body),r.emitter.trigger("pointerup",e),r.isDragging&&(r.autoScroller.stop(),r.tryStopDrag(e)),r.delayTimeoutId&&(clearTimeout(r.delayTimeoutId),r.delayTimeoutId=null))};var o=r.pointer=new ga(t);return o.emitter.on("pointerdown",r.onPointerDown),o.emitter.on("pointermove",r.onPointerMove),o.emitter.on("pointerup",r.onPointerUp),n&&(o.selector=n),r.mirror=new ya,r.autoScroller=new Ca,r}return n(t,e),t.prototype.destroy=function(){this.pointer.destroy(),this.onPointerUp({})},t.prototype.startDelay=function(e){var t=this;"number"==typeof this.delay?this.delayTimeoutId=setTimeout((function(){t.delayTimeoutId=null,t.handleDelayEnd(e)}),this.delay):this.handleDelayEnd(e)},t.prototype.handleDelayEnd=function(e){this.isDelayEnded=!0,this.tryStartDrag(e)},t.prototype.handleDistanceSurpassed=function(e){this.isDistanceSurpassed=!0,this.tryStartDrag(e)},t.prototype.tryStartDrag=function(e){this.isDelayEnded&&this.isDistanceSurpassed&&(this.pointer.wasTouchScroll&&!this.touchScrollAllowed||(this.isDragging=!0,this.mirrorNeedsRevert=!1,this.autoScroller.start(e.pageX,e.pageY),this.emitter.trigger("dragstart",e),!1===this.touchScrollAllowed&&this.pointer.cancelTouchScroll()))},t.prototype.tryStopDrag=function(e){this.mirror.stop(this.mirrorNeedsRevert,this.stopDrag.bind(this,e))},t.prototype.stopDrag=function(e){this.isDragging=!1,this.emitter.trigger("dragend",e)},t.prototype.setIgnoreMove=function(e){this.pointer.shouldIgnoreMove=e},t.prototype.setMirrorIsVisible=function(e){this.mirror.setIsVisible(e)},t.prototype.setMirrorNeedsRevert=function(e){this.mirrorNeedsRevert=e},t.prototype.setAutoScrollEnabled=function(e){this.autoScroller.isEnabled=e},t}(ci),Ra=function(){function e(e){this.origRect=wr(e),this.scrollCaches=Rr(e).map((function(e){return new Sa(e,!0)}))}return e.prototype.destroy=function(){for(var e=0,t=this.scrollCaches;e<t.length;e++){t[e].destroy()}},e.prototype.computeLeft=function(){for(var e=this.origRect.left,t=0,n=this.scrollCaches;t<n.length;t++){var r=n[t];e+=r.origScrollLeft-r.getScrollLeft()}return e},e.prototype.computeTop=function(){for(var e=this.origRect.top,t=0,n=this.scrollCaches;t<n.length;t++){var r=n[t];e+=r.origScrollTop-r.getScrollTop()}return e},e.prototype.isWithinClipping=function(e,t){for(var n,r,o={left:e,top:t},i=0,a=this.scrollCaches;i<a.length;i++){var s=a[i];if(n=s.getEventTarget(),r=void 0,"HTML"!==(r=n.tagName)&&"BODY"!==r&&!ir(o,s.clientRect))return!1}return!0},e}();var Ta=function(){function e(e,t){var n=this;this.useSubjectCenter=!1,this.requireInitial=!0,this.initialHit=null,this.movingHit=null,this.finalHit=null,this.handlePointerDown=function(e){var t=n.dragging;n.initialHit=null,n.movingHit=null,n.finalHit=null,n.prepareHits(),n.processFirstCoord(e),n.initialHit||!n.requireInitial?(t.setIgnoreMove(!1),n.emitter.trigger("pointerdown",e)):t.setIgnoreMove(!0)},this.handleDragStart=function(e){n.emitter.trigger("dragstart",e),n.handleMove(e,!0)},this.handleDragMove=function(e){n.emitter.trigger("dragmove",e),n.handleMove(e)},this.handlePointerUp=function(e){n.releaseHits(),n.emitter.trigger("pointerup",e)},this.handleDragEnd=function(e){n.movingHit&&n.emitter.trigger("hitupdate",null,!0,e),n.finalHit=n.movingHit,n.movingHit=null,n.emitter.trigger("dragend",e)},this.droppableStore=t,e.emitter.on("pointerdown",this.handlePointerDown),e.emitter.on("dragstart",this.handleDragStart),e.emitter.on("dragmove",this.handleDragMove),e.emitter.on("pointerup",this.handlePointerUp),e.emitter.on("dragend",this.handleDragEnd),this.dragging=e,this.emitter=new kr}return e.prototype.processFirstCoord=function(e){var t,n={left:e.pageX,top:e.pageY},r=n,o=e.subjectEl;o!==document&&(r=sr(r,t=wr(o)));var i=this.initialHit=this.queryHitForOffset(r.left,r.top);if(i){if(this.useSubjectCenter&&t){var a=ar(t,i.rect);a&&(r=lr(a))}this.coordAdjust=ur(r,n)}else this.coordAdjust={left:0,top:0}},e.prototype.handleMove=function(e,t){var n=this.queryHitForOffset(e.pageX+this.coordAdjust.left,e.pageY+this.coordAdjust.top);!t&&ka(this.movingHit,n)||(this.movingHit=n,this.emitter.trigger("hitupdate",n,!1,e))},e.prototype.prepareHits=function(){this.offsetTrackers=Oe(this.droppableStore,(function(e){return e.component.prepareHits(),new Ra(e.el)}))},e.prototype.releaseHits=function(){var e=this.offsetTrackers;for(var t in e)e[t].destroy();this.offsetTrackers={}},e.prototype.queryHitForOffset=function(e,t){var n=this.droppableStore,r=this.offsetTrackers,o=null;for(var i in n){var a=n[i].component,s=r[i];if(s&&s.isWithinClipping(e,t)){var l=s.computeLeft(),u=s.computeTop(),c=e-l,d=t-u,p=s.origRect,f=p.right-p.left,h=p.bottom-p.top;if(c>=0&&c<f&&d>=0&&d<h){var v=a.queryHit(c,d,f,h),g=a.context.getCurrentData().dateProfile;v&&an(g.activeRange,v.dateSpan.range)&&(!o||v.layer>o.layer)&&(v.rect.left+=l,v.rect.right+=l,v.rect.top+=u,v.rect.bottom+=u,o=v)}}}return o},e}();function ka(e,t){return!e&&!t||Boolean(e)===Boolean(t)&&Rn(e.dateSpan,t.dateSpan)}function Ma(e,t){for(var n,o,i={},a=0,s=t.pluginHooks.datePointTransforms;a<s.length;a++){var l=s[a];r(i,l(e,t))}return r(i,(n=e,{date:(o=t.dateEnv).toDate(n.range.start),dateStr:o.formatIso(n.range.start,{omitTime:n.allDay}),allDay:n.allDay})),i}var xa=function(e){function t(t){var n=e.call(this,t)||this;n.handlePointerDown=function(e){var t=n.dragging,r=e.origEvent.target;t.setIgnoreMove(!n.component.isValidDateDownEl(r))},n.handleDragEnd=function(e){var t=n.component;if(!n.dragging.pointer.wasTouchScroll){var o=n.hitDragging,i=o.initialHit,a=o.finalHit;if(i&&a&&ka(i,a)){var s=t.context,l=r(r({},Ma(i.dateSpan,s)),{dayEl:i.dayEl,jsEvent:e.origEvent,view:s.viewApi||s.calendarApi.view});s.emitter.trigger("dateClick",l)}}},n.dragging=new wa(t.el),n.dragging.autoScroller.isEnabled=!1;var o=n.hitDragging=new Ta(n.dragging,li(t));return o.emitter.on("pointerdown",n.handlePointerDown),o.emitter.on("dragend",n.handleDragEnd),n}return n(t,e),t.prototype.destroy=function(){this.dragging.destroy()},t}(ai),_a=function(e){function t(t){var n=e.call(this,t)||this;n.dragSelection=null,n.handlePointerDown=function(e){var t=n,r=t.component,o=t.dragging,i=r.context.options.selectable&&r.isValidDateDownEl(e.origEvent.target);o.setIgnoreMove(!i),o.delay=e.isTouch?function(e){var t=e.context.options,n=t.selectLongPressDelay;null==n&&(n=t.longPressDelay);return n}(r):null},n.handleDragStart=function(e){n.component.context.calendarApi.unselect(e)},n.handleHitUpdate=function(e,t){var o=n.component.context,i=null,a=!1;e&&((i=function(e,t,n){var o=e.dateSpan,i=t.dateSpan,a=[o.range.start,o.range.end,i.range.start,i.range.end];a.sort(ce);for(var s={},l=0,u=n;l<u.length;l++){var c=(0,u[l])(e,t);if(!1===c)return null;c&&r(s,c)}return s.range={start:a[0],end:a[3]},s.allDay=o.allDay,s}(n.hitDragging.initialHit,e,o.pluginHooks.dateSelectionTransformers))&&n.component.isDateSelectionValid(i)||(a=!0,i=null)),i?o.dispatch({type:"SELECT_DATES",selection:i}):t||o.dispatch({type:"UNSELECT_DATES"}),a?Q():ee(),t||(n.dragSelection=i)},n.handlePointerUp=function(e){n.dragSelection&&(xn(n.dragSelection,e,n.component.context),n.dragSelection=null)};var o=t.component.context.options,i=n.dragging=new wa(t.el);i.touchScrollAllowed=!1,i.minDistance=o.selectMinDistance||0,i.autoScroller.isEnabled=o.dragScroll;var a=n.hitDragging=new Ta(n.dragging,li(t));return a.emitter.on("pointerdown",n.handlePointerDown),a.emitter.on("dragstart",n.handleDragStart),a.emitter.on("hitupdate",n.handleHitUpdate),a.emitter.on("pointerup",n.handlePointerUp),n}return n(t,e),t.prototype.destroy=function(){this.dragging.destroy()},t}(ai);var Ia=function(e){function t(n){var o=e.call(this,n)||this;o.subjectEl=null,o.subjectSeg=null,o.isDragging=!1,o.eventRange=null,o.relevantEvents=null,o.receivingContext=null,o.validMutation=null,o.mutatedRelevantEvents=null,o.handlePointerDown=function(e){var t=e.origEvent.target,n=o,r=n.component,i=n.dragging,a=i.mirror,s=r.context.options,l=r.context;o.subjectEl=e.subjectEl;var u=o.subjectSeg=dn(e.subjectEl),c=(o.eventRange=u.eventRange).instance.instanceId;o.relevantEvents=Nt(l.getCurrentData().eventStore,c),i.minDistance=e.isTouch?0:s.eventDragMinDistance,i.delay=e.isTouch&&c!==r.props.eventSelection?function(e){var t=e.context.options,n=t.eventLongPressDelay;null==n&&(n=t.longPressDelay);return n}(r):null,a.parentNode=V(t,".fc"),a.revertDuration=s.dragRevertDuration;var d=r.isValidSegDownEl(t)&&!V(t,".fc-event-resizer");i.setIgnoreMove(!d),o.isDragging=d&&e.subjectEl.classList.contains("fc-event-draggable")},o.handleDragStart=function(e){var t=o.component.context,n=o.eventRange,r=n.instance.instanceId;e.isTouch?r!==o.component.props.eventSelection&&t.dispatch({type:"SELECT_EVENT",eventInstanceId:r}):t.dispatch({type:"UNSELECT_EVENT"}),o.isDragging&&(t.calendarApi.unselect(e),t.emitter.trigger("eventDragStart",{el:o.subjectEl,event:new zn(t,n.def,n.instance),jsEvent:e.origEvent,view:t.viewApi}))},o.handleHitUpdate=function(e,t){if(o.isDragging){var n=o.relevantEvents,r=o.hitDragging.initialHit,i=o.component.context,a=null,s=null,l=null,u=!1,c={affectedEvents:n,mutatedEvents:{defs:{},instances:{}},isEvent:!0};if(e){var d=e.component,p=(a=d.context).options;i===a||p.editable&&p.droppable?(s=function(e,t,n){var r=e.dateSpan,o=t.dateSpan,i=r.range.start,a=o.range.start,s={};r.allDay!==o.allDay&&(s.allDay=o.allDay,s.hasEnd=t.component.context.options.allDayMaintainDuration,o.allDay&&(i=be(i)));var l=Qt(i,a,e.component.context.dateEnv,e.component===t.component?e.component.largeUnit:null);l.milliseconds&&(s.allDay=!1);for(var u={datesDelta:l,standardProps:s},c=0,d=n;c<d.length;c++){(0,d[c])(u,e,t)}return u}(r,e,a.getCurrentData().pluginHooks.eventDragMutationMassagers))&&(l=Pn(n,a.getCurrentData().eventUiBases,s,a),c.mutatedEvents=l,d.isInteractionValid(c)||(u=!0,s=null,l=null,c.mutatedEvents={defs:{},instances:{}})):a=null}o.displayDrag(a,c),u?Q():ee(),t||(i===a&&ka(r,e)&&(s=null),o.dragging.setMirrorNeedsRevert(!s),o.dragging.setMirrorIsVisible(!e||!document.querySelector(".fc-event-mirror")),o.receivingContext=a,o.validMutation=s,o.mutatedRelevantEvents=l)}},o.handlePointerUp=function(){o.isDragging||o.cleanup()},o.handleDragEnd=function(e){if(o.isDragging){var t=o.component.context,n=t.viewApi,i=o,a=i.receivingContext,s=i.validMutation,l=o.eventRange.def,u=o.eventRange.instance,c=new zn(t,l,u),d=o.relevantEvents,p=o.mutatedRelevantEvents,f=o.hitDragging.finalHit;if(o.clearDrag(),t.emitter.trigger("eventDragStop",{el:o.subjectEl,event:c,jsEvent:e.origEvent,view:n}),s){if(a===t){var h=new zn(t,p.defs[l.defId],u?p.instances[u.instanceId]:null);t.dispatch({type:"MERGE_EVENTS",eventStore:p});for(var v={oldEvent:c,event:h,relatedEvents:Bn(p,t,u),revert:function(){t.dispatch({type:"MERGE_EVENTS",eventStore:d})}},g={},m=0,y=t.getCurrentData().pluginHooks.eventDropTransformers;m<y.length;m++){var E=y[m];r(g,E(s,t))}t.emitter.trigger("eventDrop",r(r(r({},v),g),{el:e.subjectEl,delta:s.datesDelta,jsEvent:e.origEvent,view:n})),t.emitter.trigger("eventChange",v)}else if(a){var S={event:c,relatedEvents:Bn(d,t,u),revert:function(){t.dispatch({type:"MERGE_EVENTS",eventStore:d})}};t.emitter.trigger("eventLeave",r(r({},S),{draggedEl:e.subjectEl,view:n})),t.dispatch({type:"REMOVE_EVENTS",eventStore:d}),t.emitter.trigger("eventRemove",S);var D=p.defs[l.defId],b=p.instances[u.instanceId],C=new zn(a,D,b);a.dispatch({type:"MERGE_EVENTS",eventStore:p});var w={event:C,relatedEvents:Bn(p,a,b),revert:function(){a.dispatch({type:"REMOVE_EVENTS",eventStore:p})}};a.emitter.trigger("eventAdd",w),e.isTouch&&a.dispatch({type:"SELECT_EVENT",eventInstanceId:u.instanceId}),a.emitter.trigger("drop",r(r({},Ma(f.dateSpan,a)),{draggedEl:e.subjectEl,jsEvent:e.origEvent,view:f.component.context.viewApi})),a.emitter.trigger("eventReceive",r(r({},w),{draggedEl:e.subjectEl,view:f.component.context.viewApi}))}}else t.emitter.trigger("_noEventDrop")}o.cleanup()};var i=o.component.context.options,a=o.dragging=new wa(n.el);a.pointer.selector=t.SELECTOR,a.touchScrollAllowed=!1,a.autoScroller.isEnabled=i.dragScroll;var s=o.hitDragging=new Ta(o.dragging,ui);return s.useSubjectCenter=n.useEventCenter,s.emitter.on("pointerdown",o.handlePointerDown),s.emitter.on("dragstart",o.handleDragStart),s.emitter.on("hitupdate",o.handleHitUpdate),s.emitter.on("pointerup",o.handlePointerUp),s.emitter.on("dragend",o.handleDragEnd),o}return n(t,e),t.prototype.destroy=function(){this.dragging.destroy()},t.prototype.displayDrag=function(e,t){var n=this.component.context,r=this.receivingContext;r&&r!==e&&(r===n?r.dispatch({type:"SET_EVENT_DRAG",state:{affectedEvents:t.affectedEvents,mutatedEvents:{defs:{},instances:{}},isEvent:!0}}):r.dispatch({type:"UNSET_EVENT_DRAG"})),e&&e.dispatch({type:"SET_EVENT_DRAG",state:t})},t.prototype.clearDrag=function(){var e=this.component.context,t=this.receivingContext;t&&t.dispatch({type:"UNSET_EVENT_DRAG"}),e!==t&&e.dispatch({type:"UNSET_EVENT_DRAG"})},t.prototype.cleanup=function(){this.subjectSeg=null,this.isDragging=!1,this.eventRange=null,this.relevantEvents=null,this.receivingContext=null,this.validMutation=null,this.mutatedRelevantEvents=null},t.SELECTOR=".fc-event-draggable, .fc-event-resizable",t}(ai);var Pa=function(e){function t(t){var n=e.call(this,t)||this;n.draggingSegEl=null,n.draggingSeg=null,n.eventRange=null,n.relevantEvents=null,n.validMutation=null,n.mutatedRelevantEvents=null,n.handlePointerDown=function(e){var t=n.component,r=dn(n.querySegEl(e)),o=n.eventRange=r.eventRange;n.dragging.minDistance=t.context.options.eventDragMinDistance,n.dragging.setIgnoreMove(!n.component.isValidSegDownEl(e.origEvent.target)||e.isTouch&&n.component.props.eventSelection!==o.instance.instanceId)},n.handleDragStart=function(e){var t=n.component.context,r=n.eventRange;n.relevantEvents=Nt(t.getCurrentData().eventStore,n.eventRange.instance.instanceId);var o=n.querySegEl(e);n.draggingSegEl=o,n.draggingSeg=dn(o),t.calendarApi.unselect(),t.emitter.trigger("eventResizeStart",{el:o,event:new zn(t,r.def,r.instance),jsEvent:e.origEvent,view:t.viewApi})},n.handleHitUpdate=function(e,t,o){var i=n.component.context,a=n.relevantEvents,s=n.hitDragging.initialHit,l=n.eventRange.instance,u=null,c=null,d=!1,p={affectedEvents:a,mutatedEvents:{defs:{},instances:{}},isEvent:!0};e&&(u=function(e,t,n,o,i){for(var a=e.component.context.dateEnv,s=e.dateSpan.range.start,l=t.dateSpan.range.start,u=Qt(s,l,a,e.component.largeUnit),c={},d=0,p=i;d<p.length;d++){var f=(0,p[d])(e,t);if(!1===f)return null;f&&r(c,f)}if(n){if(a.add(o.start,u)<o.end)return c.startDelta=u,c}else if(a.add(o.end,u)>o.start)return c.endDelta=u,c;return null}(s,e,o.subjectEl.classList.contains("fc-event-resizer-start"),l.range,i.pluginHooks.eventResizeJoinTransforms)),u&&(c=Pn(a,i.getCurrentData().eventUiBases,u,i),p.mutatedEvents=c,n.component.isInteractionValid(p)||(d=!0,u=null,c=null,p.mutatedEvents=null)),c?i.dispatch({type:"SET_EVENT_RESIZE",state:p}):i.dispatch({type:"UNSET_EVENT_RESIZE"}),d?Q():ee(),t||(u&&ka(s,e)&&(u=null),n.validMutation=u,n.mutatedRelevantEvents=c)},n.handleDragEnd=function(e){var t=n.component.context,o=n.eventRange.def,i=n.eventRange.instance,a=new zn(t,o,i),s=n.relevantEvents,l=n.mutatedRelevantEvents;if(t.emitter.trigger("eventResizeStop",{el:n.draggingSegEl,event:a,jsEvent:e.origEvent,view:t.viewApi}),n.validMutation){var u=new zn(t,l.defs[o.defId],i?l.instances[i.instanceId]:null);t.dispatch({type:"MERGE_EVENTS",eventStore:l});var c={oldEvent:a,event:u,relatedEvents:Bn(l,t,i),revert:function(){t.dispatch({type:"MERGE_EVENTS",eventStore:s})}};t.emitter.trigger("eventResize",r(r({},c),{el:n.draggingSegEl,startDelta:n.validMutation.startDelta||Ye(0),endDelta:n.validMutation.endDelta||Ye(0),jsEvent:e.origEvent,view:t.viewApi})),t.emitter.trigger("eventChange",c)}else t.emitter.trigger("_noEventResize");n.draggingSeg=null,n.relevantEvents=null,n.validMutation=null};var o=t.component,i=n.dragging=new wa(t.el);i.pointer.selector=".fc-event-resizer",i.touchScrollAllowed=!1,i.autoScroller.isEnabled=o.context.options.dragScroll;var a=n.hitDragging=new Ta(n.dragging,li(t));return a.emitter.on("pointerdown",n.handlePointerDown),a.emitter.on("dragstart",n.handleDragStart),a.emitter.on("hitupdate",n.handleHitUpdate),a.emitter.on("dragend",n.handleDragEnd),n}return n(t,e),t.prototype.destroy=function(){this.dragging.destroy()},t.prototype.querySegEl=function(e){return V(e.subjectEl,".fc-event")},t}(ai);var Na=function(){function e(e){var t=this;this.context=e,this.isRecentPointerDateSelect=!1,this.matchesCancel=!1,this.matchesEvent=!1,this.onSelect=function(e){e.jsEvent&&(t.isRecentPointerDateSelect=!0)},this.onDocumentPointerDown=function(e){var n=t.context.options.unselectCancel,r=e.origEvent.target;t.matchesCancel=!!V(r,n),t.matchesEvent=!!V(r,Ia.SELECTOR)},this.onDocumentPointerUp=function(e){var n=t.context,r=t.documentPointer,o=n.getCurrentData();if(!r.wasTouchScroll){if(o.dateSelection&&!t.isRecentPointerDateSelect){var i=n.options.unselectAuto;!i||i&&t.matchesCancel||n.calendarApi.unselect(e)}o.eventSelection&&!t.matchesEvent&&n.dispatch({type:"UNSELECT_EVENT"})}t.isRecentPointerDateSelect=!1};var n=this.documentPointer=new ga(document);n.shouldIgnoreMove=!0,n.shouldWatchScroll=!1,n.emitter.on("pointerdown",this.onDocumentPointerDown),n.emitter.on("pointerup",this.onDocumentPointerUp),e.emitter.on("select",this.onSelect)}return e.prototype.destroy=function(){this.context.emitter.off("select",this.onSelect),this.documentPointer.destroy()},e}(),Ha={dateClick:_t,eventDragStart:_t,eventDragStop:_t,eventDrop:_t,eventResizeStart:_t,eventResizeStop:_t,eventResize:_t,drop:_t,eventReceive:_t,eventLeave:_t},Oa=function(){function e(e,t){var n=this;this.receivingContext=null,this.droppableEvent=null,this.suppliedDragMeta=null,this.dragMeta=null,this.handleDragStart=function(e){n.dragMeta=n.buildDragMeta(e.subjectEl)},this.handleHitUpdate=function(e,t,o){var i=n.hitDragging.dragging,a=null,s=null,l=!1,u={affectedEvents:{defs:{},instances:{}},mutatedEvents:{defs:{},instances:{}},isEvent:n.dragMeta.create};e&&(a=e.component.context,n.canDropElOnCalendar(o.subjectEl,a)&&(s=function(e,t,n){for(var o=r({},t.leftoverProps),i=0,a=n.pluginHooks.externalDefTransforms;i<a.length;i++){var s=a[i];r(o,s(e,t))}var l=Yt(o,n),u=l.refined,c=l.extra,d=Xt(u,c,t.sourceId,e.allDay,n.options.forceEventDuration||Boolean(t.duration),n),p=e.range.start;e.allDay&&t.startTime&&(p=n.dateEnv.add(p,t.startTime));var f=t.duration?n.dateEnv.add(p,t.duration):In(e.allDay,p,n),h=Ie(d.defId,{start:p,end:f});return{def:d,instance:h}}(e.dateSpan,n.dragMeta,a),u.mutatedEvents=Pt(s),(l=!Jr(u,a))&&(u.mutatedEvents={defs:{},instances:{}},s=null))),n.displayDrag(a,u),i.setMirrorIsVisible(t||!s||!document.querySelector(".fc-event-mirror")),l?Q():ee(),t||(i.setMirrorNeedsRevert(!s),n.receivingContext=a,n.droppableEvent=s)},this.handleDragEnd=function(e){var t=n,o=t.receivingContext,i=t.droppableEvent;if(n.clearDrag(),o&&i){var a=n.hitDragging.finalHit,s=a.component.context.viewApi,l=n.dragMeta;if(o.emitter.trigger("drop",r(r({},Ma(a.dateSpan,o)),{draggedEl:e.subjectEl,jsEvent:e.origEvent,view:s})),l.create){var u=Pt(i);o.dispatch({type:"MERGE_EVENTS",eventStore:u}),e.isTouch&&o.dispatch({type:"SELECT_EVENT",eventInstanceId:i.instance.instanceId}),o.emitter.trigger("eventReceive",{event:new zn(o,i.def,i.instance),relatedEvents:[],revert:function(){o.dispatch({type:"REMOVE_EVENTS",eventStore:u})},draggedEl:e.subjectEl,view:s})}}n.receivingContext=null,n.droppableEvent=null};var o=this.hitDragging=new Ta(e,ui);o.requireInitial=!1,o.emitter.on("dragstart",this.handleDragStart),o.emitter.on("hitupdate",this.handleHitUpdate),o.emitter.on("dragend",this.handleDragEnd),this.suppliedDragMeta=t}return e.prototype.buildDragMeta=function(e){return"object"==typeof this.suppliedDragMeta?fi(this.suppliedDragMeta):"function"==typeof this.suppliedDragMeta?fi(this.suppliedDragMeta(e)):fi((t=function(e,t){var n=di.dataAttrPrefix,r=(n?n+"-":"")+t;return e.getAttribute("data-"+r)||""}(e,"event"))?JSON.parse(t):{create:!1});var t},e.prototype.displayDrag=function(e,t){var n=this.receivingContext;n&&n!==e&&n.dispatch({type:"UNSET_EVENT_DRAG"}),e&&e.dispatch({type:"SET_EVENT_DRAG",state:t})},e.prototype.clearDrag=function(){this.receivingContext&&this.receivingContext.dispatch({type:"UNSET_EVENT_DRAG"})},e.prototype.canDropElOnCalendar=function(e,t){var n=t.options.dropAccept;return"function"==typeof n?n.call(t.calendarApi,e):"string"!=typeof n||!n||Boolean(z(e,n))},e}();di.dataAttrPrefix="";var Aa=function(){function e(e,t){var n=this;void 0===t&&(t={}),this.handlePointerDown=function(e){var t=n.dragging,r=n.settings,o=r.minDistance,i=r.longPressDelay;t.minDistance=null!=o?o:e.isTouch?0:bt.eventDragMinDistance,t.delay=e.isTouch?null!=i?i:bt.longPressDelay:0},this.handleDragStart=function(e){e.isTouch&&n.dragging.delay&&e.subjectEl.classList.contains("fc-event")&&n.dragging.mirror.getMirrorEl().classList.add("fc-event-selected")},this.settings=t;var r=this.dragging=new wa(e);r.touchScrollAllowed=!1,null!=t.itemSelector&&(r.pointer.selector=t.itemSelector),null!=t.appendTo&&(r.mirror.parentNode=t.appendTo),r.emitter.on("pointerdown",this.handlePointerDown),r.emitter.on("dragstart",this.handleDragStart),new Oa(r,t.eventData)}return e.prototype.destroy=function(){this.dragging.destroy()},e}(),Ua=function(e){function t(t){var n=e.call(this,t)||this;n.shouldIgnoreMove=!1,n.mirrorSelector="",n.currentMirrorEl=null,n.handlePointerDown=function(e){n.emitter.trigger("pointerdown",e),n.shouldIgnoreMove||n.emitter.trigger("dragstart",e)},n.handlePointerMove=function(e){n.shouldIgnoreMove||n.emitter.trigger("dragmove",e)},n.handlePointerUp=function(e){n.emitter.trigger("pointerup",e),n.shouldIgnoreMove||n.emitter.trigger("dragend",e)};var r=n.pointer=new ga(t);return r.emitter.on("pointerdown",n.handlePointerDown),r.emitter.on("pointermove",n.handlePointerMove),r.emitter.on("pointerup",n.handlePointerUp),n}return n(t,e),t.prototype.destroy=function(){this.pointer.destroy()},t.prototype.setIgnoreMove=function(e){this.shouldIgnoreMove=e},t.prototype.setMirrorIsVisible=function(e){if(e)this.currentMirrorEl&&(this.currentMirrorEl.style.visibility="",this.currentMirrorEl=null);else{var t=this.mirrorSelector?document.querySelector(this.mirrorSelector):null;t&&(this.currentMirrorEl=t,t.style.visibility="hidden")}},t}(ci),La=function(){function e(e,t){var n=document;e===document||e instanceof Element?(n=e,t=t||{}):t=e||{};var r=this.dragging=new Ua(n);"string"==typeof t.itemSelector?r.pointer.selector=t.itemSelector:n===document&&(r.pointer.selector="[data-event]"),"string"==typeof t.mirrorSelector&&(r.mirrorSelector=t.mirrorSelector),new Oa(r,t.eventData)}return e.prototype.destroy=function(){this.dragging.destroy()},e}(),Wa=io({componentInteractions:[xa,_a,Ia,Pa],calendarInteractions:[Na],elementDraggingImpl:wa,listenerRefiners:Ha}),Va=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.headerElRef=Ar(),t}return n(t,e),t.prototype.renderSimpleLayout=function(e,t){var n=this.props,r=this.context,o=[],i=Ki(r.options);return e&&o.push({type:"header",key:"header",isSticky:i,chunk:{elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}}),o.push({type:"body",key:"body",liquid:!0,chunk:{content:t}}),Hr(yo,{viewSpec:r.viewSpec},(function(e,t){return Hr("div",{ref:e,className:["fc-daygrid"].concat(t).join(" ")},Hr($i,{liquid:!n.isHeightAuto&&!n.forPrint,cols:[],sections:o}))}))},t.prototype.renderHScrollLayout=function(e,t,n,r){var o=this.context.pluginHooks.scrollGridImpl;if(!o)throw new Error("No ScrollGrid implementation");var i=this.props,a=this.context,s=!i.forPrint&&Ki(a.options),l=!i.forPrint&&Ji(a.options),u=[];return e&&u.push({type:"header",key:"header",isSticky:s,chunks:[{key:"main",elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}]}),u.push({type:"body",key:"body",liquid:!0,chunks:[{key:"main",content:t}]}),l&&u.push({type:"footer",key:"footer",isSticky:!0,chunks:[{key:"main",content:Xi}]}),Hr(yo,{viewSpec:a.viewSpec},(function(e,t){return Hr("div",{ref:e,className:["fc-daygrid"].concat(t).join(" ")},Hr(o,{liquid:!i.isHeightAuto&&!i.forPrint,colGroups:[{cols:[{span:n,minWidth:r}]}],sections:u}))}))},t}(oo);function za(e,t){for(var n=[],r=0;r<t;r++)n[r]=[];for(var o=0,i=e;o<i.length;o++){var a=i[o];n[a.row].push(a)}return n}function Fa(e,t){for(var n=[],r=0;r<t;r++)n[r]=[];for(var o=0,i=e;o<i.length;o++){var a=i[o];n[a.firstCol].push(a)}return n}function Ba(e,t){var n=[];if(e){for(a=0;a<t;a++)n[a]={affectedInstances:e.affectedInstances,isEvent:e.isEvent,segs:[]};for(var r=0,o=e.segs;r<o.length;r++){var i=o[r];n[i.row].segs.push(i)}}else for(var a=0;a<t;a++)n[a]=null;return n}var ja=St({week:"narrow"}),Ga=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.handleRootEl=function(e){t.rootEl=e,Yr(t.props.elRef,e)},t.handleMoreLinkClick=function(e){var n=t.props;if(n.onMoreClick){var r=n.segsByEachCol,o=r.filter((function(e){return n.segIsHidden[e.eventRange.instance.instanceId]}));n.onMoreClick({date:n.date,allSegs:r,hiddenSegs:o,moreCnt:n.moreCnt,dayEl:t.rootEl,ev:e})}},t}return n(t,e),t.prototype.render=function(){var e=this,t=this.context,n=t.options,o=t.viewApi,i=this.props,a=i.date,s=i.dateProfile,l={num:i.moreCnt,text:i.buildMoreLinkText(i.moreCnt),view:o},u=n.navLinks?{"data-navlink":gr(a,"week"),tabIndex:0}:{};return Hr(oa,{date:a,dateProfile:s,todayRange:i.todayRange,showDayNumber:i.showDayNumber,extraHookProps:i.extraHookProps,elRef:this.handleRootEl},(function(t,o,c,d){return Hr("td",r({ref:t,className:["fc-daygrid-day"].concat(o,i.extraClassNames||[]).join(" ")},c,i.extraDataAttrs),Hr("div",{className:"fc-daygrid-day-frame fc-scrollgrid-sync-inner",ref:i.innerElRef},i.showWeekNumber&&Hr(ca,{date:a,defaultFormat:ja},(function(e,t,n,o){return Hr("a",r({ref:e,className:["fc-daygrid-week-number"].concat(t).join(" ")},u),o)})),!d&&Hr(Za,{date:a,dateProfile:s,showDayNumber:i.showDayNumber,forceDayTop:i.forceDayTop,todayRange:i.todayRange,extraHookProps:i.extraHookProps}),Hr("div",{className:"fc-daygrid-day-events",ref:i.fgContentElRef,style:{paddingBottom:i.fgPaddingBottom}},i.fgContent,Boolean(i.moreCnt)&&Hr("div",{className:"fc-daygrid-day-bottom",style:{marginTop:i.moreMarginTop}},Hr(uo,{hookProps:l,classNames:n.moreLinkClassNames,content:n.moreLinkContent,defaultContent:Ya,didMount:n.moreLinkDidMount,willUnmount:n.moreLinkWillUnmount},(function(t,n,r,o){return Hr("a",{onClick:e.handleMoreLinkClick,ref:t,className:["fc-daygrid-more-link"].concat(n).join(" ")},o)})))),Hr("div",{className:"fc-daygrid-day-bg"},i.bgContent)))}))},t}(oo);function qa(e){return e.dayNumberText}function Ya(e){return e.text}var Za=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.render=function(){var e=this.props,t=this.context.options.navLinks?{"data-navlink":gr(e.date),tabIndex:0}:{};return Hr(ia,{date:e.date,dateProfile:e.dateProfile,todayRange:e.todayRange,showDayNumber:e.showDayNumber,extraHookProps:e.extraHookProps,defaultContent:qa},(function(n,o){return(o||e.forceDayTop)&&Hr("div",{className:"fc-daygrid-day-top",ref:n},Hr("a",r({className:"fc-daygrid-day-number"},t),o||Hr(Ur,null," ")))}))},t}(jr),Xa=St({hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"narrow"});function Ka(e){var t=e.eventRange.ui.display;return"list-item"===t||"auto"===t&&!e.eventRange.def.allDay&&e.firstCol===e.lastCol&&e.isStart&&e.isEnd}var Ja=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.render=function(){var e=this.props,t=this.context,n=t.options.eventTimeFormat||Xa,o=En(e.seg,n,t,!0,e.defaultDisplayEventEnd);return Hr(Qi,{seg:e.seg,timeText:o,defaultContent:$a,isDragging:e.isDragging,isResizing:!1,isDateSelecting:!1,isSelected:e.isSelected,isPast:e.isPast,isFuture:e.isFuture,isToday:e.isToday},(function(t,n,o,i){return Hr("a",r({className:["fc-daygrid-event","fc-daygrid-dot-event"].concat(n).join(" "),ref:t},(a=e.seg,(s=a.eventRange.def.url)?{href:s}:{})),i);var a,s}))},t}(jr);function $a(e){return Hr(Ur,null,Hr("div",{className:"fc-daygrid-event-dot",style:{borderColor:e.borderColor||e.backgroundColor}}),e.timeText&&Hr("div",{className:"fc-event-time"},e.timeText),Hr("div",{className:"fc-event-title"},e.event.title||Hr(Ur,null," ")))}var Qa=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.render=function(){var e=this.props;return Hr(ea,r({},e,{extraClassNames:["fc-daygrid-event","fc-daygrid-block-event","fc-h-event"],defaultTimeFormat:Xa,defaultDisplayEventEnd:e.defaultDisplayEventEnd,disableResizing:!e.seg.eventRange.def.allDay}))},t}(jr);function es(e,t,n,o,i,a,s,l){for(var u=[],c=[],d={},p={},f={},h={},v={},g=0;g<s;g++)u.push([]),c.push(0);for(var m=0,y=t=hn(t,l);m<y.length;m++){T(w=y[m],i[w.eventRange.instance.instanceId+":"+w.firstCol]||0)}!0===n||!0===o?function(e,t,n,r){ns(e,t,n,!0,(function(e){return e.bottom<=r}))}(c,d,u,a):"number"==typeof n?function(e,t,n,r){ns(e,t,n,!1,(function(e,t){return t<r}))}(c,d,u,n):"number"==typeof o&&function(e,t,n,r){ns(e,t,n,!0,(function(e,t){return t<r}))}(c,d,u,o);for(var E=0;E<s;E++){for(var S=0,D=0,b=0,C=u[E];b<C.length;b++){var w,R=C[b];d[(w=R.seg).eventRange.instance.instanceId]||(p[w.eventRange.instance.instanceId]=R.top,w.firstCol===w.lastCol&&w.isStart&&w.isEnd?(f[w.eventRange.instance.instanceId]=R.top-S,D=0,S=R.bottom):D+=R.bottom-R.top)}D&&(c[E]?h[E]=D:v[E]=D)}function T(e,t){if(!k(e,t,0))for(var n=e.firstCol;n<=e.lastCol;n++)for(var r=0,o=u[n];r<o.length;r++){if(k(e,t,o[r].bottom))return}}function k(e,t,n){if(function(e,t,n){for(var r=e.firstCol;r<=e.lastCol;r++)for(var o=0,i=u[r];o<i.length;o++){var a=i[o];if(n<a.bottom&&n+t>a.top)return!1}return!0}(e,t,n)){for(var r=e.firstCol;r<=e.lastCol;r++){for(var o=u[r],i=0;i<o.length&&n>=o[i].top;)i++;o.splice(i,0,{seg:e,top:n,bottom:n+t})}return!0}return!1}for(var M in i)i[M]||(d[M.split(":")[0]]=!0);return{segsByFirstCol:u.map(ts),segsByEachCol:u.map((function(t,n){var o=function(e){for(var t=[],n=0,r=e;n<r.length;n++){var o=r[n];t.push(o.seg)}return t}(t);return o=function(e,t,n){for(var o=t,i=ve(o,1),a={start:o,end:i},s=[],l=0,u=e;l<u.length;l++){var c=u[l],d=c.eventRange,p=d.range,f=nn(p,a);f&&s.push(r(r({},c),{firstCol:n,lastCol:n,eventRange:{def:d.def,ui:r(r({},d.ui),{durationEditable:!1}),instance:d.instance,range:f},isStart:c.isStart&&f.start.valueOf()===p.start.valueOf(),isEnd:c.isEnd&&f.end.valueOf()===p.end.valueOf()}))}return s}(o,e[n].date,n)})),segIsHidden:d,segTops:p,segMarginTops:f,moreCnts:c,moreTops:h,paddingBottoms:v}}function ts(e,t){for(var n=[],r=0,o=e;r<o.length;r++){var i=o[r];i.seg.firstCol===t&&n.push(i.seg)}return n}function ns(e,t,n,r,o){for(var i=e.length,a={},s=[],l=0;l<i;l++)s.push([]);for(l=0;l<i;l++)for(var u=0,c=0,d=n[l];c<d.length;c++){var p=d[c];o(p,u)?f(p):h(p,u,r),p.top!==p.bottom&&u++}function f(e){var t=e.seg,n=t.eventRange.instance.instanceId;if(!a[n]){a[n]=!0;for(var r=t.firstCol;r<=t.lastCol;r++)s[r].push(e)}}function h(n,r,o){var i=n.seg,a=i.eventRange.instance.instanceId;if(!t[a]){t[a]=!0;for(var l=i.firstCol;l<=i.lastCol;l++){var u=++e[l];if(o&&1===u)for(var c=r-1;s[l].length>c;)h(s[l].pop(),s[l].length,!1)}}}}var rs=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.cellElRefs=new Li,t.frameElRefs=new Li,t.fgElRefs=new Li,t.segHarnessRefs=new Li,t.rootElRef=Ar(),t.state={framePositions:null,maxContentHeight:null,segHeights:{}},t}return n(t,e),t.prototype.render=function(){var e=this,t=this.props,n=this.state,r=this.context,o=t.cells.length,i=Fa(t.businessHourSegs,o),a=Fa(t.bgEventSegs,o),s=Fa(this.getHighlightSegs(),o),l=Fa(this.getMirrorSegs(),o),u=es(t.cells,t.fgEventSegs,t.dayMaxEvents,t.dayMaxEventRows,n.segHeights,n.maxContentHeight,o,r.options.eventOrder),c=u.paddingBottoms,d=u.segsByFirstCol,p=u.segsByEachCol,f=u.segIsHidden,h=u.segTops,v=u.segMarginTops,g=u.moreCnts,m=u.moreTops,y=t.eventDrag&&t.eventDrag.affectedInstances||t.eventResize&&t.eventResize.affectedInstances||{};return Hr("tr",{ref:this.rootElRef},t.renderIntro&&t.renderIntro(),t.cells.map((function(n,r){var o=e.renderFgSegs(d[r],f,h,v,y,t.todayRange),u=e.renderFgSegs(l[r],{},h,{},{},t.todayRange,Boolean(t.eventDrag),Boolean(t.eventResize),!1);return Hr(Ga,{key:n.key,elRef:e.cellElRefs.createRef(n.key),innerElRef:e.frameElRefs.createRef(n.key),dateProfile:t.dateProfile,date:n.date,showDayNumber:t.showDayNumbers,showWeekNumber:t.showWeekNumbers&&0===r,forceDayTop:t.showWeekNumbers,todayRange:t.todayRange,extraHookProps:n.extraHookProps,extraDataAttrs:n.extraDataAttrs,extraClassNames:n.extraClassNames,moreCnt:g[r],buildMoreLinkText:t.buildMoreLinkText,onMoreClick:t.onMoreClick,segIsHidden:f,moreMarginTop:m[r],segsByEachCol:p[r],fgPaddingBottom:c[r],fgContentElRef:e.fgElRefs.createRef(n.key),fgContent:Hr(Ur,null,Hr(Ur,null,o),Hr(Ur,null,u)),bgContent:Hr(Ur,null,e.renderFillSegs(s[r],"highlight"),e.renderFillSegs(i[r],"non-business"),e.renderFillSegs(a[r],"bg-event"))})})))},t.prototype.componentDidMount=function(){this.updateSizing(!0)},t.prototype.componentDidUpdate=function(e,t){var n=this.props;this.updateSizing(!Le(e,n))},t.prototype.getHighlightSegs=function(){var e=this.props;return e.eventDrag&&e.eventDrag.segs.length?e.eventDrag.segs:e.eventResize&&e.eventResize.segs.length?e.eventResize.segs:e.dateSelectionSegs},t.prototype.getMirrorSegs=function(){var e=this.props;return e.eventResize&&e.eventResize.segs.length?e.eventResize.segs:[]},t.prototype.renderFgSegs=function(e,t,n,o,i,a,s,l,u){var c=this.context,d=this.props.eventSelection,p=this.state.framePositions,f=1===this.props.cells.length,h=[];if(p)for(var v=0,g=e;v<g.length;v++){var m=g[v],y=m.eventRange.instance.instanceId,E=s||l||u,S=i[y],D=t[y]||S,b=t[y]||E||m.firstCol!==m.lastCol||!m.isStart||!m.isEnd,C=void 0,w=void 0,R=void 0,T=void 0;b?(w=n[y],c.isRtl?(T=0,R=p.lefts[m.lastCol]-p.lefts[m.firstCol]):(R=0,T=p.rights[m.firstCol]-p.rights[m.lastCol])):C=o[y],h.push(Hr("div",{className:"fc-daygrid-event-harness"+(b?" fc-daygrid-event-harness-abs":""),key:y,ref:E?null:this.segHarnessRefs.createRef(y+":"+m.firstCol),style:{visibility:D?"hidden":"",marginTop:C||"",top:w||"",left:R||"",right:T||""}},Ka(m)?Hr(Ja,r({seg:m,isDragging:s,isSelected:y===d,defaultDisplayEventEnd:f},Sn(m,a))):Hr(Qa,r({seg:m,isDragging:s,isResizing:l,isDateSelecting:u,isSelected:y===d,defaultDisplayEventEnd:f},Sn(m,a)))))}return h},t.prototype.renderFillSegs=function(e,t){var n=this.context.isRtl,i=this.props.todayRange,a=this.state.framePositions,s=[];if(a)for(var l=0,u=e;l<u.length;l++){var c=u[l],d=n?{right:0,left:a.lefts[c.lastCol]-a.lefts[c.firstCol]}:{left:0,right:a.rights[c.firstCol]-a.rights[c.lastCol]};s.push(Hr("div",{key:bn(c.eventRange),className:"fc-daygrid-bg-harness",style:d},"bg-event"===t?Hr(la,r({seg:c},Sn(c,i))):sa(t)))}return Hr.apply(void 0,o([Ur,{}],s))},t.prototype.updateSizing=function(e){var t=this.props,n=this.frameElRefs;if(null!==t.clientWidth){if(e){var r=t.cells.map((function(e){return n.currentMap[e.key]}));if(r.length){var o=this.rootElRef.current;this.setState({framePositions:new Mr(o,r,!0,!1)})}}var i=!0===t.dayMaxEvents||!0===t.dayMaxEventRows;this.setState({segHeights:this.computeSegHeights(),maxContentHeight:i?this.computeMaxContentHeight():null})}},t.prototype.computeSegHeights=function(){return Oe(this.segHarnessRefs.currentMap,(function(e){return e.getBoundingClientRect().height}))},t.prototype.computeMaxContentHeight=function(){var e=this.props.cells[0].key,t=this.cellElRefs.currentMap[e],n=this.fgElRefs.currentMap[e];return t.getBoundingClientRect().bottom-n.getBoundingClientRect().top},t.prototype.getCellEls=function(){var e=this.cellElRefs.currentMap;return this.props.cells.map((function(t){return e[t.key]}))},t}(oo);rs.addStateEquality({segHeights:Le});var os=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.repositioner=new Go(t.updateSize.bind(t)),t.handleRootEl=function(e){t.rootEl=e,t.props.elRef&&Yr(t.props.elRef,e)},t.handleDocumentMousedown=function(e){var n=t.props.onClose;n&&!t.rootEl.contains(e.target)&&n()},t.handleDocumentScroll=function(){t.repositioner.request(10)},t.handleCloseClick=function(){var e=t.props.onClose;e&&e()},t}return n(t,e),t.prototype.render=function(){var e=this.context.theme,t=this.props,n=["fc-popover",e.getClass("popover")].concat(t.extraClassNames||[]);return Hr("div",r({className:n.join(" ")},t.extraAttrs,{ref:this.handleRootEl}),Hr("div",{className:"fc-popover-header "+e.getClass("popoverHeader")},Hr("span",{className:"fc-popover-title"},t.title),Hr("span",{className:"fc-popover-close "+e.getIconClass("close"),onClick:this.handleCloseClick})),Hr("div",{className:"fc-popover-body "+e.getClass("popoverContent")},t.children))},t.prototype.componentDidMount=function(){document.addEventListener("mousedown",this.handleDocumentMousedown),document.addEventListener("scroll",this.handleDocumentScroll),this.updateSize()},t.prototype.componentWillUnmount=function(){document.removeEventListener("mousedown",this.handleDocumentMousedown),document.removeEventListener("scroll",this.handleDocumentScroll)},t.prototype.updateSize=function(){var e=this.props,t=e.alignmentEl,n=e.topAlignmentEl,r=this.rootEl;if(r){var o,i=r.getBoundingClientRect(),a=t.getBoundingClientRect(),s=n?n.getBoundingClientRect().top:a.top;s=Math.min(s,window.innerHeight-i.height-10),s=Math.max(s,10),o=this.context.isRtl?a.right-i.width:a.left,o=Math.min(o,window.innerWidth-i.width-10),j(r,{top:s,left:o=Math.max(o,10)})}},t}(jr),is=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.handlePopoverEl=function(e){t.popoverEl=e,e?t.context.registerInteractiveComponent(t,{el:e,useEventCenter:!1}):t.context.unregisterInteractiveComponent(t)},t}return n(t,e),t.prototype.render=function(){var e=this.context,t=e.options,n=e.dateEnv,o=this.props,i=o.date,a=o.hiddenInstances,s=o.todayRange,l=o.dateProfile,u=o.selectedInstanceId,c=n.format(i,t.dayPopoverFormat);return Hr(oa,{date:i,dateProfile:l,todayRange:s,elRef:this.handlePopoverEl},(function(e,t,n){return Hr(os,{elRef:e,title:c,extraClassNames:["fc-more-popover"].concat(t),extraAttrs:n,onClose:o.onCloseClick,alignmentEl:o.alignmentEl,topAlignmentEl:o.topAlignmentEl},Hr(ia,{date:i,dateProfile:l,todayRange:s},(function(e,t){return t&&Hr("div",{className:"fc-more-popover-misc",ref:e},t)})),o.segs.map((function(e){var t=e.eventRange.instance.instanceId;return Hr("div",{className:"fc-daygrid-event-harness",key:t,style:{visibility:a[t]?"hidden":""}},Ka(e)?Hr(Ja,r({seg:e,isDragging:!1,isSelected:t===u,defaultDisplayEventEnd:!1},Sn(e,s))):Hr(Qa,r({seg:e,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:t===u,defaultDisplayEventEnd:!1},Sn(e,s))))})))}))},t.prototype.queryHit=function(e,t,n,r){var o=this.props.date;if(e<n&&t<r)return{component:this,dateSpan:{allDay:!0,range:{start:o,end:ve(o,1)}},dayEl:this.popoverEl,rect:{left:0,top:0,right:n,bottom:r},layer:1}},t.prototype.isPopover=function(){return!0},t}(oo),as=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.splitBusinessHourSegs=it(za),t.splitBgEventSegs=it(za),t.splitFgEventSegs=it(za),t.splitDateSelectionSegs=it(za),t.splitEventDrag=it(Ba),t.splitEventResize=it(Ba),t.buildBuildMoreLinkText=it(ss),t.rowRefs=new Li,t.state={morePopoverState:null},t.handleRootEl=function(e){t.rootEl=e,Yr(t.props.elRef,e)},t.handleMoreLinkClick=function(e){var n=t.context,o=n.dateEnv,i=n.options.moreLinkClick;function a(e){var t=e.eventRange,r=t.def,i=t.instance,a=t.range;return{event:new zn(n,r,i),start:o.toDate(a.start),end:o.toDate(a.end),isStart:e.isStart,isEnd:e.isEnd}}"function"==typeof i&&(i=i({date:o.toDate(e.date),allDay:!0,allSegs:e.allSegs.map(a),hiddenSegs:e.hiddenSegs.map(a),jsEvent:e.ev,view:n.viewApi})),i&&"popover"!==i?"string"==typeof i&&n.calendarApi.zoomTo(e.date,i):t.setState({morePopoverState:r(r({},e),{currentFgEventSegs:t.props.fgEventSegs})})},t.handleMorePopoverClose=function(){t.setState({morePopoverState:null})},t}return n(t,e),t.prototype.render=function(){var e=this,t=this.props,n=t.dateProfile,r=t.dayMaxEventRows,o=t.dayMaxEvents,i=t.expandRows,a=this.state.morePopoverState,s=t.cells.length,l=this.splitBusinessHourSegs(t.businessHourSegs,s),u=this.splitBgEventSegs(t.bgEventSegs,s),c=this.splitFgEventSegs(t.fgEventSegs,s),d=this.splitDateSelectionSegs(t.dateSelectionSegs,s),p=this.splitEventDrag(t.eventDrag,s),f=this.splitEventResize(t.eventResize,s),h=this.buildBuildMoreLinkText(this.context.options.moreLinkText),v=!0===o||!0===r;return v&&!i&&(v=!1,r=null,o=null),Hr("div",{className:["fc-daygrid-body",v?"fc-daygrid-body-balanced":"fc-daygrid-body-unbalanced",i?"":"fc-daygrid-body-natural"].join(" "),ref:this.handleRootEl,style:{width:t.clientWidth,minWidth:t.tableMinWidth}},Hr(Mi,{unit:"day"},(function(v,g){return Hr(Ur,null,Hr("table",{className:"fc-scrollgrid-sync-table",style:{width:t.clientWidth,minWidth:t.tableMinWidth,height:i?t.clientHeight:""}},t.colGroupNode,Hr("tbody",null,t.cells.map((function(i,a){return Hr(rs,{ref:e.rowRefs.createRef(a),key:i.length?i[0].date.toISOString():a,showDayNumbers:s>1,showWeekNumbers:t.showWeekNumbers,todayRange:g,dateProfile:n,cells:i,renderIntro:t.renderRowIntro,businessHourSegs:l[a],eventSelection:t.eventSelection,bgEventSegs:u[a].filter(ls),fgEventSegs:c[a],dateSelectionSegs:d[a],eventDrag:p[a],eventResize:f[a],dayMaxEvents:o,dayMaxEventRows:r,clientWidth:t.clientWidth,clientHeight:t.clientHeight,buildMoreLinkText:h,onMoreClick:e.handleMoreLinkClick})})))),!t.forPrint&&a&&a.currentFgEventSegs===t.fgEventSegs&&Hr(is,{date:a.date,dateProfile:n,segs:a.allSegs,alignmentEl:a.dayEl,topAlignmentEl:1===s?t.headerAlignElRef.current:null,onCloseClick:e.handleMorePopoverClose,selectedInstanceId:t.eventSelection,hiddenInstances:(t.eventDrag?t.eventDrag.affectedInstances:null)||(t.eventResize?t.eventResize.affectedInstances:null)||{},todayRange:g}))})))},t.prototype.prepareHits=function(){this.rowPositions=new Mr(this.rootEl,this.rowRefs.collect().map((function(e){return e.getCellEls()[0]})),!1,!0),this.colPositions=new Mr(this.rootEl,this.rowRefs.currentMap[0].getCellEls(),!0,!1)},t.prototype.positionToHit=function(e,t){var n=this.colPositions,r=this.rowPositions,o=n.leftToIndex(e),i=r.topToIndex(t);if(null!=i&&null!=o)return{row:i,col:o,dateSpan:{range:this.getCellRange(i,o),allDay:!0},dayEl:this.getCellEl(i,o),relativeRect:{left:n.lefts[o],right:n.rights[o],top:r.tops[i],bottom:r.bottoms[i]}}},t.prototype.getCellEl=function(e,t){return this.rowRefs.currentMap[e].getCellEls()[t]},t.prototype.getCellRange=function(e,t){var n=this.props.cells[e][t].date;return{start:n,end:ve(n,1)}},t}(oo);function ss(e){return"function"==typeof e?e:function(t){return"+"+t+" "+e}}function ls(e){return e.eventRange.def.allDay}var us=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.slicer=new cs,t.tableRef=Ar(),t.handleRootEl=function(e){e?t.context.registerInteractiveComponent(t,{el:e}):t.context.unregisterInteractiveComponent(t)},t}return n(t,e),t.prototype.render=function(){var e=this.props,t=this.context;return Hr(as,r({ref:this.tableRef,elRef:this.handleRootEl},this.slicer.sliceProps(e,e.dateProfile,e.nextDayThreshold,t,e.dayTableModel),{dateProfile:e.dateProfile,cells:e.dayTableModel.cells,colGroupNode:e.colGroupNode,tableMinWidth:e.tableMinWidth,renderRowIntro:e.renderRowIntro,dayMaxEvents:e.dayMaxEvents,dayMaxEventRows:e.dayMaxEventRows,showWeekNumbers:e.showWeekNumbers,expandRows:e.expandRows,headerAlignElRef:e.headerAlignElRef,clientWidth:e.clientWidth,clientHeight:e.clientHeight,forPrint:e.forPrint}))},t.prototype.prepareHits=function(){this.tableRef.current.prepareHits()},t.prototype.queryHit=function(e,t){var n=this.tableRef.current.positionToHit(e,t);if(n)return{component:this,dateSpan:n.dateSpan,dayEl:n.dayEl,rect:{left:n.relativeRect.left,right:n.relativeRect.right,top:n.relativeRect.top,bottom:n.relativeRect.bottom},layer:0}},t}(oo),cs=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.forceDayIfListItem=!0,t}return n(t,e),t.prototype.sliceRange=function(e,t){return t.sliceRange(e)},t}(Hi),ds=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.buildDayTableModel=it(ps),t.headerRef=Ar(),t.tableRef=Ar(),t}return n(t,e),t.prototype.render=function(){var e=this,t=this.context,n=t.options,r=t.dateProfileGenerator,o=this.props,i=this.buildDayTableModel(o.dateProfile,r),a=n.dayHeaders&&Hr(_i,{ref:this.headerRef,dateProfile:o.dateProfile,dates:i.headerDates,datesRepDistinctDays:1===i.rowCnt}),s=function(t){return Hr(us,{ref:e.tableRef,dateProfile:o.dateProfile,dayTableModel:i,businessHours:o.businessHours,dateSelection:o.dateSelection,eventStore:o.eventStore,eventUiBases:o.eventUiBases,eventSelection:o.eventSelection,eventDrag:o.eventDrag,eventResize:o.eventResize,nextDayThreshold:n.nextDayThreshold,colGroupNode:t.tableColGroupNode,tableMinWidth:t.tableMinWidth,dayMaxEvents:n.dayMaxEvents,dayMaxEventRows:n.dayMaxEventRows,showWeekNumbers:n.weekNumbers,expandRows:!o.isHeightAuto,headerAlignElRef:e.headerElRef,clientWidth:t.clientWidth,clientHeight:t.clientHeight,forPrint:o.forPrint})};return n.dayMinWidth?this.renderHScrollLayout(a,s,i.colCnt,n.dayMinWidth):this.renderSimpleLayout(a,s)},t}(Va);function ps(e,t){var n=new Pi(e.renderRange,t);return new Ni(n,/year|month|week/.test(e.currentRangeUnit))}var fs=io({initialView:"dayGridMonth",optionRefiners:{moreLinkClick:_t,moreLinkClassNames:_t,moreLinkContent:_t,moreLinkDidMount:_t,moreLinkWillUnmount:_t},views:{dayGrid:{component:ds,dateProfileGeneratorClass:function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.buildRenderRange=function(t,n,r){var o,i=this.props.dateEnv,a=e.prototype.buildRenderRange.call(this,t,n,r),s=a.start,l=a.end;(/^(year|month)$/.test(n)&&(s=i.startOfWeek(s),(o=i.startOfWeek(l)).valueOf()!==l.valueOf()&&(l=he(o,1))),this.props.monthMode&&this.props.fixedWeekCount)&&(l=he(l,6-Math.ceil(me(s,l))));return{start:s,end:l}},t}(Co)},dayGridDay:{type:"dayGrid",duration:{days:1}},dayGridWeek:{type:"dayGrid",duration:{weeks:1}},dayGridMonth:{type:"dayGrid",duration:{months:1},monthMode:!0,fixedWeekCount:!0}}}),hs=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.getKeyInfo=function(){return{allDay:{},timed:{}}},t.prototype.getKeysForDateSpan=function(e){return e.allDay?["allDay"]:["timed"]},t.prototype.getKeysForEventDef=function(e){return e.allDay?un(e)?["timed","allDay"]:["allDay"]:["timed"]},t}(pr),vs=function(){function e(e,t,n){this.positions=e,this.dateProfile=t,this.slatMetas=n}return e.prototype.safeComputeTop=function(e){var t=this.dateProfile;if(sn(t.currentRange,e)){var n=be(e),r=e.valueOf()-n.valueOf();if(r>=$e(t.slotMinTime)&&r<$e(t.slotMaxTime))return this.computeTimeTop(Ye(r))}},e.prototype.computeDateTop=function(e,t){return t||(t=be(e)),this.computeTimeTop(Ye(e.valueOf()-t.valueOf()))},e.prototype.computeTimeTop=function(e){var t,n,r=this.positions,o=this.dateProfile,i=this.slatMetas,a=r.els.length,s=i[1].date.valueOf()-i[0].date.valueOf(),l=(e.milliseconds-$e(o.slotMinTime))/s;return l=Math.max(0,l),l=Math.min(a,l),t=Math.floor(l),n=l-(t=Math.min(t,a-1)),r.tops[t]+r.getHeight(t)*n},e}(),gs=[{hours:1},{minutes:30},{minutes:15},{seconds:30},{seconds:15}],ms=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.rootElRef=Ar(),t.slatElRefs=new Li,t}return n(t,e),t.prototype.render=function(){var e=this.props,t=this.context;return Hr("div",{className:"fc-timegrid-slots",ref:this.rootElRef},Hr("table",{className:t.theme.getClass("table"),style:{minWidth:e.tableMinWidth,width:e.clientWidth,height:e.minHeight}},e.tableColGroupNode,Hr(ys,{slatElRefs:this.slatElRefs,axis:e.axis,slatMetas:e.slatMetas})))},t.prototype.componentDidMount=function(){this.updateSizing()},t.prototype.componentDidUpdate=function(){this.updateSizing()},t.prototype.componentWillUnmount=function(){this.props.onCoords&&this.props.onCoords(null)},t.prototype.updateSizing=function(){var e,t=this.props;t.onCoords&&null!==t.clientWidth&&(this.rootElRef.current.offsetHeight&&t.onCoords(new vs(new Mr(this.rootElRef.current,(e=this.slatElRefs.currentMap,t.slatMetas.map((function(t){return e[t.key]}))),!1,!0),this.props.dateProfile,t.slatMetas)))},t}(jr);var ys=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.render=function(){var e=this.props,t=this.context,n=t.options,o=e.slatElRefs;return Hr("tbody",null,e.slatMetas.map((function(i,a){var s={time:i.time,date:t.dateEnv.toDate(i.date),view:t.viewApi},l=["fc-timegrid-slot","fc-timegrid-slot-lane",i.isLabeled?"":"fc-timegrid-slot-minor"];return Hr("tr",{key:i.key,ref:o.createRef(i.key)},e.axis&&Hr(Ss,r({},i)),Hr(uo,{hookProps:s,classNames:n.slotLaneClassNames,content:n.slotLaneContent,didMount:n.slotLaneDidMount,willUnmount:n.slotLaneWillUnmount},(function(e,t,n,r){return Hr("td",{ref:e,className:l.concat(t).join(" "),"data-time":i.isoTimeStr},r)})))})))},t}(jr),Es=St({hour:"numeric",minute:"2-digit",omitZeroMinute:!0,meridiem:"short"});function Ss(e){var t=["fc-timegrid-slot","fc-timegrid-slot-label",e.isLabeled?"fc-scrollgrid-shrink":"fc-timegrid-slot-minor"];return Hr(zr.Consumer,null,(function(n){if(e.isLabeled){var r=n.dateEnv,o=n.options,i=n.viewApi,a=null==o.slotLabelFormat?Es:Array.isArray(o.slotLabelFormat)?St(o.slotLabelFormat[0]):St(o.slotLabelFormat),s={level:0,time:e.time,date:r.toDate(e.date),view:i,text:r.format(e.date,a)};return Hr(uo,{hookProps:s,classNames:o.slotLabelClassNames,content:o.slotLabelContent,defaultContent:Ds,didMount:o.slotLabelDidMount,willUnmount:o.slotLabelWillUnmount},(function(n,r,o,i){return Hr("td",{ref:n,className:t.concat(r).join(" "),"data-time":e.isoTimeStr},Hr("div",{className:"fc-timegrid-slot-label-frame fc-scrollgrid-shrink-frame"},Hr("div",{className:"fc-timegrid-slot-label-cushion fc-scrollgrid-shrink-cushion",ref:o},i)))}))}return Hr("td",{className:t.join(" "),"data-time":e.isoTimeStr})}))}function Ds(e){return e.text}function bs(e,t,n,r,o){for(var i=new Date(0),a=e,s=Ye(0),l=n||function(e){var t,n,r;for(t=gs.length-1;t>=0;t--)if(n=Ye(gs[t]),null!==(r=Qe(n,e))&&r>1)return n;return e}(r),u=[];$e(a)<$e(t);){var c=o.add(i,a),d=null!==Qe(s,l);u.push({date:c,time:a,key:c.toISOString(),isoTimeStr:nt(c),isLabeled:d}),a=Xe(a,r),s=Xe(s,r)}return u}var Cs=St({week:"short"}),ws=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.allDaySplitter=new hs,t.headerElRef=Ar(),t.rootElRef=Ar(),t.scrollerElRef=Ar(),t.state={slatCoords:null},t.handleScrollTopRequest=function(e){var n=t.scrollerElRef.current;n&&(n.scrollTop=e)},t.renderHeadAxis=function(e){void 0===e&&(e="");var n=t.context.options,o=t.props.dateProfile.renderRange,i=ye(o.start,o.end),a=n.navLinks&&1===i?{"data-navlink":gr(o.start,"week"),tabIndex:0}:{};return n.weekNumbers?Hr(ca,{date:o.start,defaultFormat:Cs},(function(t,n,o,i){return Hr("th",{ref:t,className:["fc-timegrid-axis","fc-scrollgrid-shrink"].concat(n).join(" ")},Hr("div",{className:"fc-timegrid-axis-frame fc-scrollgrid-shrink-frame fc-timegrid-axis-frame-liquid",style:{height:e}},Hr("a",r({ref:o,className:"fc-timegrid-axis-cushion fc-scrollgrid-shrink-cushion fc-scrollgrid-sync-inner"},a),i)))})):Hr("th",{className:"fc-timegrid-axis"},Hr("div",{className:"fc-timegrid-axis-frame",style:{height:e}}))},t.renderTableRowAxis=function(e){var n=t.context,r=n.options,o=n.viewApi,i={text:r.allDayText,view:o};return Hr(uo,{hookProps:i,classNames:r.allDayClassNames,content:r.allDayContent,defaultContent:Rs,didMount:r.allDayDidMount,willUnmount:r.allDayWillUnmount},(function(t,n,r,o){return Hr("td",{ref:t,className:["fc-timegrid-axis","fc-scrollgrid-shrink"].concat(n).join(" ")},Hr("div",{className:"fc-timegrid-axis-frame fc-scrollgrid-shrink-frame"+(null==e?" fc-timegrid-axis-frame-liquid":""),style:{height:e}},Hr("span",{className:"fc-timegrid-axis-cushion fc-scrollgrid-shrink-cushion fc-scrollgrid-sync-inner",ref:r},o)))}))},t.handleSlatCoords=function(e){t.setState({slatCoords:e})},t}return n(t,e),t.prototype.renderSimpleLayout=function(e,t,n){var r=this.context,o=this.props,i=[],a=Ki(r.options);return e&&i.push({type:"header",key:"header",isSticky:a,chunk:{elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}}),t&&(i.push({type:"body",key:"all-day",chunk:{content:t}}),i.push({type:"body",key:"all-day-divider",outerContent:Hr("tr",{className:"fc-scrollgrid-section"},Hr("td",{className:"fc-timegrid-divider "+r.theme.getClass("tableCellShaded")}))})),i.push({type:"body",key:"body",liquid:!0,expandRows:Boolean(r.options.expandRows),chunk:{scrollerElRef:this.scrollerElRef,content:n}}),Hr(yo,{viewSpec:r.viewSpec,elRef:this.rootElRef},(function(e,t){return Hr("div",{className:["fc-timegrid"].concat(t).join(" "),ref:e},Hr($i,{liquid:!o.isHeightAuto&&!o.forPrint,cols:[{width:"shrink"}],sections:i}))}))},t.prototype.renderHScrollLayout=function(e,t,n,r,o,i,a){var s=this,l=this.context.pluginHooks.scrollGridImpl;if(!l)throw new Error("No ScrollGrid implementation");var u=this.context,c=this.props,d=!c.forPrint&&Ki(u.options),p=!c.forPrint&&Ji(u.options),f=[];e&&f.push({type:"header",key:"header",isSticky:d,syncRowHeights:!0,chunks:[{key:"axis",rowContent:function(e){return Hr("tr",null,s.renderHeadAxis(e.rowSyncHeights[0]))}},{key:"cols",elRef:this.headerElRef,tableClassName:"fc-col-header",rowContent:e}]}),t&&(f.push({type:"body",key:"all-day",syncRowHeights:!0,chunks:[{key:"axis",rowContent:function(e){return Hr("tr",null,s.renderTableRowAxis(e.rowSyncHeights[0]))}},{key:"cols",content:t}]}),f.push({key:"all-day-divider",type:"body",outerContent:Hr("tr",{className:"fc-scrollgrid-section"},Hr("td",{colSpan:2,className:"fc-timegrid-divider "+u.theme.getClass("tableCellShaded")}))}));var h=u.options.nowIndicator;return f.push({type:"body",key:"body",liquid:!0,expandRows:Boolean(u.options.expandRows),chunks:[{key:"axis",content:function(e){return Hr("div",{className:"fc-timegrid-axis-chunk"},Hr("table",{style:{height:e.expandRows?e.clientHeight:""}},e.tableColGroupNode,Hr("tbody",null,Hr(Ts,{slatMetas:i}))),Hr("div",{className:"fc-timegrid-now-indicator-container"},Hr(Mi,{unit:h?"minute":"day"},(function(e){var t=h&&a&&a.safeComputeTop(e);return"number"==typeof t?Hr(na,{isAxis:!0,date:e},(function(e,n,r,o){return Hr("div",{ref:e,className:["fc-timegrid-now-indicator-arrow"].concat(n).join(" "),style:{top:t}},o)})):null}))))}},{key:"cols",scrollerElRef:this.scrollerElRef,content:n}]}),p&&f.push({key:"footer",type:"footer",isSticky:!0,chunks:[{key:"axis",content:Xi},{key:"cols",content:Xi}]}),Hr(yo,{viewSpec:u.viewSpec,elRef:this.rootElRef},(function(e,t){return Hr("div",{className:["fc-timegrid"].concat(t).join(" "),ref:e},Hr(l,{liquid:!c.isHeightAuto&&!c.forPrint,colGroups:[{width:"shrink",cols:[{width:"shrink"}]},{cols:[{span:r,minWidth:o}]}],sections:f}))}))},t.prototype.getAllDayMaxEventProps=function(){var e=this.context.options,t=e.dayMaxEvents,n=e.dayMaxEventRows;return!0!==t&&!0!==n||(t=void 0,n=5),{dayMaxEvents:t,dayMaxEventRows:n}},t}(oo);function Rs(e){return e.text}var Ts=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.render=function(){return this.props.slatMetas.map((function(e){return Hr("tr",{key:e.key},Hr(Ss,r({},e)))}))},t}(jr);function ks(e,t){var n,r=[];for(n=0;n<t;n++)r.push([]);if(e)for(n=0;n<e.length;n++)r[e[n].col].push(e[n]);return r}function Ms(e,t){var n=[];if(e){for(a=0;a<t;a++)n[a]={affectedInstances:e.affectedInstances,isEvent:e.isEvent,segs:[]};for(var r=0,o=e.segs;r<o.length;r++){var i=o[r];n[i.col].segs.push(i)}}else for(var a=0;a<t;a++)n[a]=null;return n}function xs(e,t,n,r,o){return _s(e,t,n,r),function(e,t){for(var n=0,r=e;n<r.length;n++){(c=r[n]).level=null,c.forwardCoord=null,c.backwardCoord=null,c.forwardPressure=null}var o,i=function(e){var t,n,r,o=[];for(t=0;t<e.length;t++){for(n=e[t],r=0;r<o.length&&Is(n,o[r]).length;r++);n.level=r,(o[r]||(o[r]=[])).push(n)}return o}(e=hn(e,t));if(function(e){var t,n,r,o,i;for(t=0;t<e.length;t++)for(n=e[t],r=0;r<n.length;r++)for((o=n[r]).forwardSegs=[],i=t+1;i<e.length;i++)Is(o,e[i],o.forwardSegs)}(i),o=i[0]){for(var a=0,s=o;a<s.length;a++){Ps(c=s[a])}for(var l=0,u=o;l<u.length;l++){var c;Ns(c=u[l],0,0,t)}}return e}(e,o)}function _s(e,t,n,r){for(var o=0,i=e;o<i.length;o++){var a=i[o];a.top=n.computeDateTop(a.start,t),a.bottom=Math.max(a.top+(r||0),n.computeDateTop(a.end,t))}}function Is(e,t,n){void 0===n&&(n=[]);for(var r=0;r<t.length;r++)o=e,i=t[r],o.bottom>i.top&&o.top<i.bottom&&n.push(t[r]);var o,i;return n}function Ps(e){var t,n,r=e.forwardSegs,o=0;if(null==e.forwardPressure){for(t=0;t<r.length;t++)Ps(n=r[t]),o=Math.max(o,1+n.forwardPressure);e.forwardPressure=o}}function Ns(e,t,n,r){var o,i=e.forwardSegs;if(null==e.forwardCoord)for(i.length?(!function(e,t){var n=e.map(Hs),r=[{field:"forwardPressure",order:-1},{field:"backwardCoord",order:1}].concat(t);n.sort((function(e,t){return ae(e,t,r)})),n.map((function(e){return e._seg}))}(i,r),Ns(i[0],t+1,n,r),e.forwardCoord=i[0].backwardCoord):e.forwardCoord=1,e.backwardCoord=e.forwardCoord-(e.forwardCoord-n)/(t+1),o=0;o<i.length;o++)Ns(i[o],0,e.forwardCoord,r)}function Hs(e){var t=vn(e);return t.forwardPressure=e.forwardPressure,t.backwardCoord=e.backwardCoord,t}var Os=St({hour:"numeric",minute:"2-digit",meridiem:!1}),As=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.render=function(){var e=["fc-timegrid-event","fc-v-event"];return this.props.isCondensed&&e.push("fc-timegrid-event-condensed"),Hr(ea,r({},this.props,{defaultTimeFormat:Os,extraClassNames:e}))},t}(jr);di.timeGridEventCondensedHeight=30;var Us=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.render=function(){var e=this,t=this.props,n=this.context.options.selectMirror,o=t.eventDrag&&t.eventDrag.segs||t.eventResize&&t.eventResize.segs||n&&t.dateSelectionSegs||[],i=t.eventDrag&&t.eventDrag.affectedInstances||t.eventResize&&t.eventResize.affectedInstances||{};return Hr(oa,{elRef:t.elRef,date:t.date,dateProfile:t.dateProfile,todayRange:t.todayRange,extraHookProps:t.extraHookProps},(function(a,s,l){return Hr("td",r({ref:a,className:["fc-timegrid-col"].concat(s,t.extraClassNames||[]).join(" ")},l,t.extraDataAttrs),Hr("div",{className:"fc-timegrid-col-frame"},Hr("div",{className:"fc-timegrid-col-bg"},e.renderFillSegs(t.businessHourSegs,"non-business"),e.renderFillSegs(t.bgEventSegs,"bg-event"),e.renderFillSegs(t.dateSelectionSegs,"highlight")),Hr("div",{className:"fc-timegrid-col-events"},e.renderFgSegs(t.fgEventSegs,i)),Hr("div",{className:"fc-timegrid-col-events"},e.renderFgSegs(o,{},Boolean(t.eventDrag),Boolean(t.eventResize),Boolean(n))),Hr("div",{className:"fc-timegrid-now-indicator-container"},e.renderNowIndicator(t.nowIndicatorSegs)),Hr(Ls,{date:t.date,dateProfile:t.dateProfile,todayRange:t.todayRange,extraHookProps:t.extraHookProps})))}))},t.prototype.renderFgSegs=function(e,t,n,r,o){var i=this.props;return i.forPrint?this.renderPrintFgSegs(e):i.slatCoords?this.renderPositionedFgSegs(e,t,n,r,o):void 0},t.prototype.renderPrintFgSegs=function(e){var t=this.props;return(e=hn(e,this.context.options.eventOrder)).map((function(e){return Hr("div",{className:"fc-timegrid-event-harness",key:e.eventRange.instance.instanceId},Hr(As,r({seg:e,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:!1,isCondensed:!1},Sn(e,t.todayRange,t.nowDate))))}))},t.prototype.renderPositionedFgSegs=function(e,t,n,o,i){var a=this,s=this.context,l=this.props;return(e=xs(e,l.date,l.slatCoords,s.options.eventMinHeight,s.options.eventOrder)).map((function(e){var s=e.eventRange.instance.instanceId,u=n||o||i?r({left:0,right:0},a.computeSegTopBottomCss(e)):a.computeFgSegPositionCss(e);return Hr("div",{className:"fc-timegrid-event-harness"+(e.level>0?" fc-timegrid-event-harness-inset":""),key:s,style:r({visibility:t[s]?"hidden":""},u)},Hr(As,r({seg:e,isDragging:n,isResizing:o,isDateSelecting:i,isSelected:s===l.eventSelection,isCondensed:e.bottom-e.top<di.timeGridEventCondensedHeight},Sn(e,l.todayRange,l.nowDate))))}))},t.prototype.renderFillSegs=function(e,t){var n=this,o=this.context,i=this.props;if(i.slatCoords){_s(e,i.date,i.slatCoords,o.options.eventMinHeight);var a=e.map((function(e){return Hr("div",{key:bn(e.eventRange),className:"fc-timegrid-bg-harness",style:n.computeSegTopBottomCss(e)},"bg-event"===t?Hr(la,r({seg:e},Sn(e,i.todayRange,i.nowDate))):sa(t))}));return Hr(Ur,null,a)}},t.prototype.renderNowIndicator=function(e){var t=this.props,n=t.slatCoords,r=t.date;if(n)return e.map((function(e,t){return Hr(na,{isAxis:!1,date:r,key:t},(function(t,o,i,a){return Hr("div",{ref:t,className:["fc-timegrid-now-indicator-line"].concat(o).join(" "),style:{top:n.computeDateTop(e.start,r)}},a)}))}))},t.prototype.computeFgSegPositionCss=function(e){var t,n,o=this.context,i=o.isRtl,a=o.options.slotEventOverlap,s=e.backwardCoord,l=e.forwardCoord;a&&(l=Math.min(1,s+2*(l-s))),i?(t=1-l,n=s):(t=s,n=1-l);var u={zIndex:e.level+1,left:100*t+"%",right:100*n+"%"};return a&&e.forwardPressure&&(u[i?"marginLeft":"marginRight"]=20),r(r({},u),this.computeSegTopBottomCss(e))},t.prototype.computeSegTopBottomCss=function(e){return{top:e.top,bottom:-e.bottom}},t}(jr),Ls=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.render=function(){var e=this.props;return Hr(ia,{date:e.date,dateProfile:e.dateProfile,todayRange:e.todayRange,extraHookProps:e.extraHookProps},(function(e,t){return t&&Hr("div",{className:"fc-timegrid-col-misc",ref:e},t)}))},t}(jr),Ws=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.splitFgEventSegs=it(ks),t.splitBgEventSegs=it(ks),t.splitBusinessHourSegs=it(ks),t.splitNowIndicatorSegs=it(ks),t.splitDateSelectionSegs=it(ks),t.splitEventDrag=it(Ms),t.splitEventResize=it(Ms),t.rootElRef=Ar(),t.cellElRefs=new Li,t}return n(t,e),t.prototype.render=function(){var e=this,t=this.props,n=this.context.options.nowIndicator&&t.slatCoords&&t.slatCoords.safeComputeTop(t.nowDate),r=t.cells.length,o=this.splitFgEventSegs(t.fgEventSegs,r),i=this.splitBgEventSegs(t.bgEventSegs,r),a=this.splitBusinessHourSegs(t.businessHourSegs,r),s=this.splitNowIndicatorSegs(t.nowIndicatorSegs,r),l=this.splitDateSelectionSegs(t.dateSelectionSegs,r),u=this.splitEventDrag(t.eventDrag,r),c=this.splitEventResize(t.eventResize,r);return Hr("div",{className:"fc-timegrid-cols",ref:this.rootElRef},Hr("table",{style:{minWidth:t.tableMinWidth,width:t.clientWidth}},t.tableColGroupNode,Hr("tbody",null,Hr("tr",null,t.axis&&Hr("td",{className:"fc-timegrid-col fc-timegrid-axis"},Hr("div",{className:"fc-timegrid-col-frame"},Hr("div",{className:"fc-timegrid-now-indicator-container"},"number"==typeof n&&Hr(na,{isAxis:!0,date:t.nowDate},(function(e,t,r,o){return Hr("div",{ref:e,className:["fc-timegrid-now-indicator-arrow"].concat(t).join(" "),style:{top:n}},o)}))))),t.cells.map((function(n,r){return Hr(Us,{key:n.key,elRef:e.cellElRefs.createRef(n.key),dateProfile:t.dateProfile,date:n.date,nowDate:t.nowDate,todayRange:t.todayRange,extraHookProps:n.extraHookProps,extraDataAttrs:n.extraDataAttrs,extraClassNames:n.extraClassNames,fgEventSegs:o[r],bgEventSegs:i[r],businessHourSegs:a[r],nowIndicatorSegs:s[r],dateSelectionSegs:l[r],eventDrag:u[r],eventResize:c[r],slatCoords:t.slatCoords,eventSelection:t.eventSelection,forPrint:t.forPrint})}))))))},t.prototype.componentDidMount=function(){this.updateCoords()},t.prototype.componentDidUpdate=function(){this.updateCoords()},t.prototype.updateCoords=function(){var e,t=this.props;t.onColCoords&&null!==t.clientWidth&&t.onColCoords(new Mr(this.rootElRef.current,(e=this.cellElRefs.currentMap,t.cells.map((function(t){return e[t.key]}))),!0,!1))},t}(jr);var Vs=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.processSlotOptions=it(zs),t.state={slatCoords:null},t.handleScrollRequest=function(e){var n=t.props.onScrollTopRequest,r=t.state.slatCoords;if(n&&r){if(e.time){var o=r.computeTimeTop(e.time);(o=Math.ceil(o))&&o++,n(o)}return!0}},t.handleColCoords=function(e){t.colCoords=e},t.handleSlatCoords=function(e){t.setState({slatCoords:e}),t.props.onSlatCoords&&t.props.onSlatCoords(e)},t}return n(t,e),t.prototype.render=function(){var e=this.props,t=this.state;return Hr("div",{className:"fc-timegrid-body",ref:e.rootElRef,style:{width:e.clientWidth,minWidth:e.tableMinWidth}},Hr(ms,{axis:e.axis,dateProfile:e.dateProfile,slatMetas:e.slatMetas,clientWidth:e.clientWidth,minHeight:e.expandRows?e.clientHeight:"",tableMinWidth:e.tableMinWidth,tableColGroupNode:e.axis?e.tableColGroupNode:null,onCoords:this.handleSlatCoords}),Hr(Ws,{cells:e.cells,axis:e.axis,dateProfile:e.dateProfile,businessHourSegs:e.businessHourSegs,bgEventSegs:e.bgEventSegs,fgEventSegs:e.fgEventSegs,dateSelectionSegs:e.dateSelectionSegs,eventSelection:e.eventSelection,eventDrag:e.eventDrag,eventResize:e.eventResize,todayRange:e.todayRange,nowDate:e.nowDate,nowIndicatorSegs:e.nowIndicatorSegs,clientWidth:e.clientWidth,tableMinWidth:e.tableMinWidth,tableColGroupNode:e.tableColGroupNode,slatCoords:t.slatCoords,onColCoords:this.handleColCoords,forPrint:e.forPrint}))},t.prototype.componentDidMount=function(){this.scrollResponder=this.context.createScrollResponder(this.handleScrollRequest)},t.prototype.componentDidUpdate=function(e){this.scrollResponder.update(e.dateProfile!==this.props.dateProfile)},t.prototype.componentWillUnmount=function(){this.scrollResponder.detach()},t.prototype.positionToHit=function(e,t){var n=this.context,r=n.dateEnv,o=n.options,i=this.colCoords,a=this.props.dateProfile,s=this.state.slatCoords,l=this.processSlotOptions(this.props.slotDuration,o.snapDuration),u=l.snapDuration,c=l.snapsPerSlot,d=i.leftToIndex(e),p=s.positions.topToIndex(t);if(null!=d&&null!=p){var f=s.positions.tops[p],h=s.positions.getHeight(p),v=(t-f)/h,g=p*c+Math.floor(v*c),m=this.props.cells[d].date,y=Xe(a.slotMinTime,Ke(u,g)),E=r.add(m,y);return{col:d,dateSpan:{range:{start:E,end:r.add(E,u)},allDay:!1},dayEl:i.els[d],relativeRect:{left:i.lefts[d],right:i.rights[d],top:f,bottom:f+h}}}},t}(jr);function zs(e,t){var n=t||e,r=Qe(e,n);return null===r&&(n=e,r=1),{snapDuration:n,snapsPerSlot:r}}var Fs=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.buildDayRanges=it(Bs),t.slicer=new js,t.timeColsRef=Ar(),t.handleRootEl=function(e){e?t.context.registerInteractiveComponent(t,{el:e}):t.context.unregisterInteractiveComponent(t)},t}return n(t,e),t.prototype.render=function(){var e=this,t=this.props,n=this.context,o=t.dateProfile,i=t.dayTableModel,a=n.options.nowIndicator,s=this.buildDayRanges(i,o,n.dateEnv);return Hr(Mi,{unit:a?"minute":"day"},(function(l,u){return Hr(Vs,r({ref:e.timeColsRef,rootElRef:e.handleRootEl},e.slicer.sliceProps(t,o,null,n,s),{forPrint:t.forPrint,axis:t.axis,dateProfile:o,slatMetas:t.slatMetas,slotDuration:t.slotDuration,cells:i.cells[0],tableColGroupNode:t.tableColGroupNode,tableMinWidth:t.tableMinWidth,clientWidth:t.clientWidth,clientHeight:t.clientHeight,expandRows:t.expandRows,nowDate:l,nowIndicatorSegs:a&&e.slicer.sliceNowDate(l,n,s),todayRange:u,onScrollTopRequest:t.onScrollTopRequest,onSlatCoords:t.onSlatCoords}))}))},t.prototype.queryHit=function(e,t){var n=this.timeColsRef.current.positionToHit(e,t);if(n)return{component:this,dateSpan:n.dateSpan,dayEl:n.dayEl,rect:{left:n.relativeRect.left,right:n.relativeRect.right,top:n.relativeRect.top,bottom:n.relativeRect.bottom},layer:0}},t}(oo);function Bs(e,t,n){for(var r=[],o=0,i=e.headerDates;o<i.length;o++){var a=i[o];r.push({start:n.add(a,t.slotMinTime),end:n.add(a,t.slotMaxTime)})}return r}var js=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.sliceRange=function(e,t){for(var n=[],r=0;r<t.length;r++){var o=nn(e,t[r]);o&&n.push({start:o.start,end:o.end,isStart:o.start.valueOf()===e.start.valueOf(),isEnd:o.end.valueOf()===e.end.valueOf(),col:r})}return n},t}(Hi),Gs=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.buildTimeColsModel=it(qs),t.buildSlatMetas=it(bs),t}return n(t,e),t.prototype.render=function(){var e=this,t=this.context,n=t.options,o=t.dateEnv,i=t.dateProfileGenerator,a=this.props,s=a.dateProfile,l=this.buildTimeColsModel(s,i),u=this.allDaySplitter.splitProps(a),c=this.buildSlatMetas(s.slotMinTime,s.slotMaxTime,n.slotLabelInterval,n.slotDuration,o),d=n.dayMinWidth,p=!d,f=d,h=n.dayHeaders&&Hr(_i,{dates:l.headerDates,dateProfile:s,datesRepDistinctDays:!0,renderIntro:p?this.renderHeadAxis:null}),v=!1!==n.allDaySlot&&function(t){return Hr(us,r({},u.allDay,{dateProfile:s,dayTableModel:l,nextDayThreshold:n.nextDayThreshold,tableMinWidth:t.tableMinWidth,colGroupNode:t.tableColGroupNode,renderRowIntro:p?e.renderTableRowAxis:null,showWeekNumbers:!1,expandRows:!1,headerAlignElRef:e.headerElRef,clientWidth:t.clientWidth,clientHeight:t.clientHeight,forPrint:a.forPrint},e.getAllDayMaxEventProps()))},g=function(t){return Hr(Fs,r({},u.timed,{dayTableModel:l,dateProfile:s,axis:p,slotDuration:n.slotDuration,slatMetas:c,forPrint:a.forPrint,tableColGroupNode:t.tableColGroupNode,tableMinWidth:t.tableMinWidth,clientWidth:t.clientWidth,clientHeight:t.clientHeight,onSlatCoords:e.handleSlatCoords,expandRows:t.expandRows,onScrollTopRequest:e.handleScrollTopRequest}))};return f?this.renderHScrollLayout(h,v,g,l.colCnt,d,c,this.state.slatCoords):this.renderSimpleLayout(h,v,g)},t}(ws);function qs(e,t){var n=new Pi(e.renderRange,t);return new Ni(n,!1)}var Ys=io({initialView:"timeGridWeek",optionRefiners:{allDaySlot:Boolean},views:{timeGrid:{component:Gs,usesMinMaxTime:!0,allDaySlot:!0,slotDuration:"00:30:00",slotEventOverlap:!0},timeGridDay:{type:"timeGrid",duration:{days:1}},timeGridWeek:{type:"timeGrid",duration:{weeks:1}}}}),Zs=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.render=function(){var e=this.props,t=e.dayDate,n=e.todayRange,o=this.context,i=o.theme,a=o.dateEnv,s=o.options,l=o.viewApi,u=hr(t,n),c=s.listDayFormat?a.format(t,s.listDayFormat):"",d=s.listDaySideFormat?a.format(t,s.listDaySideFormat):"",p=s.navLinks?gr(t):null,f=r({date:a.toDate(t),view:l,text:c,sideText:d,navLinkData:p},u),h=["fc-list-day"].concat(vr(u,i));return Hr(uo,{hookProps:f,classNames:s.dayHeaderClassNames,content:s.dayHeaderContent,defaultContent:Xs,didMount:s.dayHeaderDidMount,willUnmount:s.dayHeaderWillUnmount},(function(e,n,r,o){return Hr("tr",{ref:e,className:h.concat(n).join(" "),"data-date":tt(t)},Hr("th",{colSpan:3},Hr("div",{className:"fc-list-day-cushion "+i.getClass("tableCellShaded"),ref:r},o)))}))},t}(jr);function Xs(e){var t=e.navLinkData?{"data-navlink":e.navLinkData,tabIndex:0}:{};return Hr(Ur,null,e.text&&Hr("a",r({className:"fc-list-day-text"},t),e.text),e.sideText&&Hr("a",r({className:"fc-list-day-side-text"},t),e.sideText))}var Ks=St({hour:"numeric",minute:"2-digit",meridiem:"short"}),Js=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t.prototype.render=function(){var e=this.props,t=this.context,n=e.seg,r=t.options.eventTimeFormat||Ks;return Hr(Qi,{seg:n,timeText:"",disableDragging:!0,disableResizing:!0,defaultContent:$s,isPast:e.isPast,isFuture:e.isFuture,isToday:e.isToday,isSelected:e.isSelected,isDragging:e.isDragging,isResizing:e.isResizing,isDateSelecting:e.isDateSelecting},(function(e,o,i,a,s){return Hr("tr",{className:["fc-list-event",s.event.url?"fc-event-forced-url":""].concat(o).join(" "),ref:e},function(e,t,n){var r=n.options;if(!1!==r.displayEventTime){var o=e.eventRange.def,i=e.eventRange.instance,a=!1,s=void 0;if(o.allDay?a=!0:$t(e.eventRange.range)?e.isStart?s=En(e,t,n,null,null,i.range.start,e.end):e.isEnd?s=En(e,t,n,null,null,e.start,i.range.end):a=!0:s=En(e,t,n),a){var l={text:n.options.allDayText,view:n.viewApi};return Hr(uo,{hookProps:l,classNames:r.allDayClassNames,content:r.allDayContent,defaultContent:Qs,didMount:r.allDayDidMount,willUnmount:r.allDayWillUnmount},(function(e,t,n,r){return Hr("td",{className:["fc-list-event-time"].concat(t).join(" "),ref:e},r)}))}return Hr("td",{className:"fc-list-event-time"},s)}return null}(n,r,t),Hr("td",{className:"fc-list-event-graphic"},Hr("span",{className:"fc-list-event-dot",style:{borderColor:s.borderColor||s.backgroundColor}})),Hr("td",{className:"fc-list-event-title",ref:i},a))}))},t}(jr);function $s(e){var t=e.event,n=t.url;return Hr("a",r({},n?{href:n}:{}),t.title)}function Qs(e){return e.text}var el=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.computeDateVars=it(nl),t.eventStoreToSegs=it(t._eventStoreToSegs),t.setRootEl=function(e){e?t.context.registerInteractiveComponent(t,{el:e}):t.context.unregisterInteractiveComponent(t)},t}return n(t,e),t.prototype.render=function(){var e=this,t=this.props,n=this.context,r=["fc-list",n.theme.getClass("table"),!1!==n.options.stickyHeaderDates?"fc-list-sticky":""],o=this.computeDateVars(t.dateProfile),i=o.dayDates,a=o.dayRanges,s=this.eventStoreToSegs(t.eventStore,t.eventUiBases,a);return Hr(yo,{viewSpec:n.viewSpec,elRef:this.setRootEl},(function(n,o){return Hr("div",{ref:n,className:r.concat(o).join(" ")},Hr(Ui,{liquid:!t.isHeightAuto,overflowX:t.isHeightAuto?"visible":"hidden",overflowY:t.isHeightAuto?"visible":"auto"},s.length>0?e.renderSegList(s,i):e.renderEmptyMessage()))}))},t.prototype.renderEmptyMessage=function(){var e=this.context,t=e.options,n=e.viewApi,r={text:t.noEventsText,view:n};return Hr(uo,{hookProps:r,classNames:t.noEventsClassNames,content:t.noEventsContent,defaultContent:tl,didMount:t.noEventsDidMount,willUnmount:t.noEventsWillUnmount},(function(e,t,n,r){return Hr("div",{className:["fc-list-empty"].concat(t).join(" "),ref:e},Hr("div",{className:"fc-list-empty-cushion",ref:n},r))}))},t.prototype.renderSegList=function(e,t){var n=this.context,o=n.theme,i=n.options,a=function(e){var t,n,r=[];for(t=0;t<e.length;t++)n=e[t],(r[n.dayIndex]||(r[n.dayIndex]=[])).push(n);return r}(e);return Hr(Mi,{unit:"day"},(function(e,n){for(var s=[],l=0;l<a.length;l++){var u=a[l];if(u){var c=t[l].toISOString();s.push(Hr(Zs,{key:c,dayDate:t[l],todayRange:n}));for(var d=0,p=u=hn(u,i.eventOrder);d<p.length;d++){var f=p[d];s.push(Hr(Js,r({key:c+":"+f.eventRange.instance.instanceId,seg:f,isDragging:!1,isResizing:!1,isDateSelecting:!1,isSelected:!1},Sn(f,n,e))))}}}return Hr("table",{className:"fc-list-table "+o.getClass("table")},Hr("tbody",null,s))}))},t.prototype._eventStoreToSegs=function(e,t,n){return this.eventRangesToSegs(ln(e,t,this.props.dateProfile.activeRange,this.context.options.nextDayThreshold).fg,n)},t.prototype.eventRangesToSegs=function(e,t){for(var n=[],r=0,o=e;r<o.length;r++){var i=o[r];n.push.apply(n,this.eventRangeToSegs(i,t))}return n},t.prototype.eventRangeToSegs=function(e,t){var n,r,o,i=this.context.dateEnv,a=this.context.options.nextDayThreshold,s=e.range,l=e.def.allDay,u=[];for(n=0;n<t.length;n++)if((r=nn(s,t[n]))&&(o={component:this,eventRange:e,start:r.start,end:r.end,isStart:e.isStart&&r.start.valueOf()===s.start.valueOf(),isEnd:e.isEnd&&r.end.valueOf()===s.end.valueOf(),dayIndex:n},u.push(o),!o.isEnd&&!l&&n+1<t.length&&s.end<i.add(t[n+1].start,a))){o.end=s.end,o.isEnd=!0;break}return u},t}(oo);function tl(e){return e.text}function nl(e){for(var t=be(e.renderRange.start),n=e.renderRange.end,r=[],o=[];t<n;)r.push(t),o.push({start:t,end:ve(t,1)}),t=ve(t,1);return{dayDates:r,dayRanges:o}}function rl(e){return!1===e?null:St(e)}var ol=io({optionRefiners:{listDayFormat:rl,listDaySideFormat:rl,noEventsClassNames:_t,noEventsContent:_t,noEventsDidMount:_t,noEventsWillUnmount:_t},views:{list:{component:el,buttonTextKey:"list",listDayFormat:{month:"long",day:"numeric",year:"numeric"}},listDay:{type:"list",duration:{days:1},listDayFormat:{weekday:"long"}},listWeek:{type:"list",duration:{weeks:1},listDayFormat:{weekday:"long"},listDaySideFormat:{month:"long",day:"numeric",year:"numeric"}},listMonth:{type:"list",duration:{month:1},listDaySideFormat:{weekday:"long"}},listYear:{type:"list",duration:{year:1},listDaySideFormat:{weekday:"long"}}}}),il=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return n(t,e),t}(Pr);il.prototype.classes={root:"fc-theme-bootstrap",table:"table-bordered",tableCellShaded:"table-active",buttonGroup:"btn-group",button:"btn btn-primary",buttonActive:"active",popover:"popover",popoverHeader:"popover-header",popoverContent:"popover-body"},il.prototype.baseIconClass="fa",il.prototype.iconClasses={close:"fa-times",prev:"fa-chevron-left",next:"fa-chevron-right",prevYear:"fa-angle-double-left",nextYear:"fa-angle-double-right"},il.prototype.rtlIconClasses={prev:"fa-chevron-right",next:"fa-chevron-left",prevYear:"fa-angle-double-right",nextYear:"fa-angle-double-left"},il.prototype.iconOverrideOption="bootstrapFontAwesome",il.prototype.iconOverrideCustomButtonOption="bootstrapFontAwesome",il.prototype.iconOverridePrefix="fa-";var al=io({themeClasses:{bootstrap:il}});var sl=io({eventSourceDefs:[{parseMeta:function(e){var t=e.googleCalendarId;return!t&&e.url&&(t=function(e){var t;if(/^[^/]+@([^/.]+\.)*(google|googlemail|gmail)\.com$/.test(e))return e;if((t=/^https:\/\/www.googleapis.com\/calendar\/v3\/calendars\/([^/]*)/.exec(e))||(t=/^https?:\/\/www.google.com\/calendar\/feeds\/([^/]*)/.exec(e)))return decodeURIComponent(t[1])}(e.url)),t?{googleCalendarId:t,googleCalendarApiKey:e.googleCalendarApiKey,googleCalendarApiBase:e.googleCalendarApiBase,extraParams:e.extraParams}:null},fetch:function(e,t,n){var o=e.context,i=o.dateEnv,a=o.options,s=e.eventSource.meta,l=s.googleCalendarApiKey||a.googleCalendarApiKey;if(l){var u=function(e){var t=e.googleCalendarApiBase;t||(t="https://www.googleapis.com/calendar/v3/calendars");return t+"/"+encodeURIComponent(e.googleCalendarId)+"/events"}(s),c=s.extraParams,d="function"==typeof c?c():c,p=function(e,t,n,o){var i,a,s;o.canComputeOffset?(a=o.formatIso(e.start),s=o.formatIso(e.end)):(a=ve(e.start,-1).toISOString(),s=ve(e.end,1).toISOString());i=r(r({},n||{}),{key:t,timeMin:a,timeMax:s,singleEvents:!0,maxResults:9999}),"local"!==o.timeZone&&(i.timeZone=o.timeZone);return i}(e.range,l,d,i);Wo("GET",u,p,(function(e,r){var o,i;e.error?n({message:"Google Calendar API: "+e.error.message,errors:e.error.errors,xhr:r}):t({rawEvents:(o=e.items,i=p.timeZone,o.map((function(e){return function(e,t){var n=e.htmlLink||null;n&&t&&(n=function(e,t){return e.replace(/(\?.*?)?(#|$)/,(function(e,n,r){return(n?n+"&":"?")+t+r}))}(n,"ctz="+t));return{id:e.id,title:e.summary,start:e.start.dateTime||e.start.date,end:e.end.dateTime||e.end.date,url:n,location:e.location,description:e.description}}(e,i)}))),xhr:r})}),(function(e,t){n({message:e,xhr:t})}))}else n({message:"Specify a googleCalendarApiKey. See http://fullcalendar.io/docs/google_calendar/"})}}],optionRefiners:{googleCalendarApiKey:String},eventSourceRefiners:{googleCalendarApiKey:String,googleCalendarId:String,googleCalendarApiBase:String,extraParams:_t}});return Fo.push(Wa,fs,Ys,ol,al,sl),e.BASE_OPTION_DEFAULTS=bt,e.BASE_OPTION_REFINERS=Dt,e.BaseComponent=jr,e.BgEvent=la,e.BootstrapTheme=il,e.Calendar=pa,e.CalendarApi=Vn,e.CalendarContent=Ei,e.CalendarDataManager=Zo,e.CalendarDataProvider=oi,e.CalendarRoot=bi,e.Component=Nr,e.ContentHook=po,e.CustomContentRenderContext=co,e.DateComponent=oo,e.DateEnv=Xn,e.DateProfileGenerator=Co,e.DayCellContent=ia,e.DayCellRoot=oa,e.DayGridView=ds,e.DayHeader=_i,e.DaySeriesModel=Pi,e.DayTable=us,e.DayTableModel=Ni,e.DayTableSlicer=cs,e.DayTimeCols=Fs,e.DayTimeColsSlicer=js,e.DayTimeColsView=Gs,e.DelayedRunner=Go,e.Draggable=Aa,e.ElementDragging=ci,e.ElementScrollController=_r,e.Emitter=kr,e.EventApi=zn,e.EventRoot=Qi,e.EventSourceApi=L,e.FeaturefulElementDragging=wa,e.Fragment=Ur,e.Interaction=ai,e.ListView=el,e.MountHook=ho,e.NamedTimeZoneImpl=ii,e.NowIndicatorRoot=na,e.NowTimer=Mi,e.PointerDragging=ga,e.PositionCache=Mr,e.RefMap=Li,e.RenderHook=uo,e.ScrollController=xr,e.ScrollResponder=Vr,e.Scroller=Ui,e.SimpleScrollGrid=$i,e.Slicer=Hi,e.Splitter=pr,e.StandardEvent=ea,e.Table=as,e.TableDateCell=Ri,e.TableDowCell=Ti,e.TableView=Va,e.Theme=Pr,e.ThirdPartyDraggable=La,e.TimeCols=Vs,e.TimeColsSlatsCoords=vs,e.TimeColsView=ws,e.ViewApi=On,e.ViewContextType=zr,e.ViewRoot=yo,e.WeekNumberRoot=ca,e.WindowScrollController=Ir,e.addDays=ve,e.addDurations=Xe,e.addMs=ge,e.addWeeks=he,e.allowContextMenu=oe,e.allowSelection=ne,e.applyMutationToEventStore=Pn,e.applyStyle=j,e.applyStyleProp=G,e.asCleanDays=function(e){return e.years||e.months||e.milliseconds?0:e.days},e.asRoughMinutes=function(e){return $e(e)/6e4},e.asRoughMs=$e,e.asRoughSeconds=function(e){return $e(e)/1e3},e.buildClassNameNormalizer=vo,e.buildDayRanges=Bs,e.buildDayTableModel=ps,e.buildEventApis=Bn,e.buildEventRangeKey=bn,e.buildHashFromArray=function(e,t){for(var n={},r=0;r<e.length;r++){var o=t(e[r],r);n[o[0]]=o[1]}return n},e.buildNavLinkData=gr,e.buildSegCompareObj=vn,e.buildSegTimeText=En,e.buildSlatMetas=bs,e.buildTimeColsModel=qs,e.collectFromHash=Fe,e.combineEventUis=Vt,e.compareByFieldSpec=se,e.compareByFieldSpecs=ae,e.compareNumbers=ce,e.compareObjs=Ve,e.computeEdges=br,e.computeFallbackHeaderFormat=Ci,e.computeHeightAndMargins=function(e){return e.getBoundingClientRect().height+function(e){var t=window.getComputedStyle(e);return parseInt(t.marginTop,10)+parseInt(t.marginBottom,10)}(e)},e.computeInnerRect=Cr,e.computeRect=wr,e.computeSegDraggable=gn,e.computeSegEndResizable=yn,e.computeSegStartResizable=mn,e.computeShrinkWidth=Wi,e.computeSmallestCellWidth=pe,e.computeVisibleDayRange=Jt,e.config=di,e.constrainPoint=sr,e.createContext=Lr,e.createDuration=Ye,e.createElement=Hr,e.createEmptyEventStore=Ht,e.createEventInstance=Ie,e.createEventUi=Wt,e.createFormatter=St,e.createPlugin=io,e.createRef=Ar,e.diffDates=Qt,e.diffDayAndTime=Ee,e.diffDays=ye,e.diffPoints=ur,e.diffWeeks=me,e.diffWholeDays=De,e.diffWholeWeeks=Se,e.disableCursor=Q,e.elementClosest=V,e.elementMatches=z,e.enableCursor=ee,e.eventTupleToStore=Pt,e.filterEventStoreDefs=At,e.filterHash=He,e.findDirectChildren=function(e,t){for(var n=e instanceof HTMLElement?[e]:e,r=[],o=0;o<n.length;o++)for(var i=n[o].children,a=0;a<i.length;a++){var s=i[a];t&&!z(s,t)||r.push(s)}return r},e.findElements=F,e.flexibleCompare=le,e.flushToDom=Wr,e.formatDate=function(e,t){void 0===t&&(t={});var n=tr(t),r=St(t),o=n.createMarkerMeta(e);return o?n.format(o.marker,r,{forcedTzo:o.forcedTzo}):""},e.formatDayString=tt,e.formatIsoTimeString=nt,e.formatRange=function(e,t,n){var r=tr("object"==typeof n&&n?n:{}),o=St(n),i=r.createMarkerMeta(e),a=r.createMarkerMeta(t);return i&&a?r.formatRange(i.marker,a.marker,o,{forcedStartTzo:i.forcedTzo,forcedEndTzo:a.forcedTzo,isEndExclusive:n.isEndExclusive,defaultSeparator:bt.defaultRangeSeparator}):""},e.getAllowYScrolling=zi,e.getCanVGrowWithinCell=cr,e.getClippingParents=Rr,e.getDateMeta=hr,e.getDayClassNames=vr,e.getDefaultEventEnd=In,e.getElSeg=dn,e.getEventClassNames=Dn,e.getIsRtlScrollbarOnLeft=Er,e.getRectCenter=lr,e.getRelevantEvents=Nt,e.getScrollGridClassNames=Yi,e.getScrollbarWidths=Sr,e.getSectionClassNames=Zi,e.getSectionHasLiquidHeight=Vi,e.getSegMeta=Sn,e.getSlotClassNames=function(e,t){var n=["fc-slot","fc-slot-"+fe[e.dow]];return e.isDisabled?n.push("fc-slot-disabled"):(e.isToday&&(n.push("fc-slot-today"),n.push(t.getClass("today"))),e.isPast&&n.push("fc-slot-past"),e.isFuture&&n.push("fc-slot-future")),n},e.getStickyFooterScrollbar=Ji,e.getStickyHeaderDates=Ki,e.getUnequalProps=We,e.globalLocales=Kn,e.globalPlugins=Fo,e.greatestDurationDenominator=et,e.guid=$,e.hasBgRendering=un,e.hasShrinkWidth=qi,e.identity=_t,e.interactionSettingsStore=ui,e.interactionSettingsToStore=li,e.intersectRanges=nn,e.intersectRects=ar,e.isArraysEqual=ot,e.isColPropsEqual=Bi,e.isDateSpansEqual=Rn,e.isInt=de,e.isInteractionValid=Jr,e.isMultiDayRange=$t,e.isPropsEqual=Le,e.isPropsValid=Qr,e.isValidDate=xe,e.listenBySelector=Z,e.mapHash=Oe,e.memoize=it,e.memoizeArraylike=function(e,t,n){var r=[],o=[];return function(i){for(var a=r.length,s=i.length,l=0;l<a;l++)if(i[l]){if(!ot(r[l],i[l])){n&&n(o[l]);var u=e.apply(this,i[l]);t&&t(u,o[l])||(o[l]=u)}}else n&&n(o[l]);for(;l<s;l++)o[l]=e.apply(this,i[l]);return r=i,o.splice(s),o}},e.memoizeHashlike=function(e,t,n){var r={},o={};return function(i){var a={};for(var s in i)if(o[s])if(ot(r[s],i[s]))a[s]=o[s];else{n&&n(o[s]);var l=e.apply(this,i[s]);a[s]=t&&t(l,o[s])?o[s]:l}else a[s]=e.apply(this,i[s]);return r=i,o=a,a}},e.memoizeObjArg=at,e.mergeEventStores=Ot,e.multiplyDuration=Ke,e.padStart=ue,e.parseBusinessHours=or,e.parseClassNames=Ut,e.parseDragMeta=fi,e.parseEventDef=Xt,e.parseFieldSpecs=ie,e.parseMarker=Zn,e.pointInsideRect=ir,e.preventContextMenu=re,e.preventDefault=q,e.preventSelection=te,e.rangeContainsMarker=sn,e.rangeContainsRange=an,e.rangesEqual=rn,e.rangesIntersect=on,e.refineEventDef=Yt,e.refineProps=xt,e.removeElement=W,e.removeExact=function(e,t){for(var n=0,r=0;r<e.length;)e[r]===t?(e.splice(r,1),n++):r++;return n},e.render=Or,e.renderChunkContent=Fi,e.renderFill=sa,e.renderMicroColGroup=ji,e.renderScrollShim=Xi,e.requestJson=Wo,e.sanitizeShrinkWidth=Gi,e.setElSeg=cn,e.setRef=Yr,e.sliceEventStore=ln,e.sliceEvents=function(e,t){return ln(e.eventStore,e.eventUiBases,e.dateProfile.activeRange,t?e.nextDayThreshold:null).fg},e.sortEventSegs=hn,e.startOfDay=be,e.translateRect=function(e,t,n){return{left:e.left+t,right:e.right+t,top:e.top+n,bottom:e.bottom+n}},e.triggerDateSelect=xn,e.unpromisify=Tr,e.version="5.3.1",e.whenTransitionDone=K,e.wholeDivideDurations=Qe,e}({});
|
assets/vendor/fullcalendar/locales-all.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
[].push.apply(FullCalendar.globalLocales,function(){"use strict";return[{code:"af",week:{dow:1,doy:4},buttonText:{prev:"Vorige",next:"Volgende",today:"Vandag",year:"Jaar",month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayText:"Heeldag",moreLinkText:"Addisionele",noEventsText:"Daar is geen gebeurtenisse nie"},{code:"ar-dz",week:{dow:0,doy:4},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},{code:"ar-kw",week:{dow:0,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},{code:"ar-ly",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},{code:"ar-ma",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},{code:"ar-sa",week:{dow:0,doy:6},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},{code:"ar-tn",week:{dow:1,doy:4},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},{code:"ar",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"السابق",next:"التالي",today:"اليوم",month:"شهر",week:"أسبوع",day:"يوم",list:"أجندة"},weekText:"أسبوع",allDayText:"اليوم كله",moreLinkText:"أخرى",noEventsText:"أي أحداث لعرض"},{code:"az",week:{dow:1,doy:4},buttonText:{prev:"Əvvəl",next:"Sonra",today:"Bu Gün",month:"Ay",week:"Həftə",day:"Gün",list:"Gündəm"},weekText:"Həftə",allDayText:"Bütün Gün",moreLinkText:function(e){return"+ daha çox "+e},noEventsText:"Göstərmək üçün hadisə yoxdur"},{code:"bg",week:{dow:1,doy:7},buttonText:{prev:"назад",next:"напред",today:"днес",month:"Месец",week:"Седмица",day:"Ден",list:"График"},allDayText:"Цял ден",moreLinkText:function(e){return"+още "+e},noEventsText:"Няма събития за показване"},{code:"bs",week:{dow:1,doy:7},buttonText:{prev:"Prošli",next:"Sljedeći",today:"Danas",month:"Mjesec",week:"Sedmica",day:"Dan",list:"Raspored"},weekText:"Sed",allDayText:"Cijeli dan",moreLinkText:function(e){return"+ još "+e},noEventsText:"Nema događaja za prikazivanje"},{code:"ca",week:{dow:1,doy:4},buttonText:{prev:"Anterior",next:"Següent",today:"Avui",month:"Mes",week:"Setmana",day:"Dia",list:"Agenda"},weekText:"Set",allDayText:"Tot el dia",moreLinkText:"més",noEventsText:"No hi ha esdeveniments per mostrar"},{code:"cs",week:{dow:1,doy:4},buttonText:{prev:"Dříve",next:"Později",today:"Nyní",month:"Měsíc",week:"Týden",day:"Den",list:"Agenda"},weekText:"Týd",allDayText:"Celý den",moreLinkText:function(e){return"+další: "+e},noEventsText:"Žádné akce k zobrazení"},{code:"da",week:{dow:1,doy:4},buttonText:{prev:"Forrige",next:"Næste",today:"I dag",month:"Måned",week:"Uge",day:"Dag",list:"Agenda"},weekText:"Uge",allDayText:"Hele dagen",moreLinkText:"flere",noEventsText:"Ingen arrangementer at vise"},{code:"de",week:{dow:1,doy:4},buttonText:{prev:"Zurück",next:"Vor",today:"Heute",year:"Jahr",month:"Monat",week:"Woche",day:"Tag",list:"Terminübersicht"},weekText:"KW",allDayText:"Ganztägig",moreLinkText:function(e){return"+ weitere "+e},noEventsText:"Keine Ereignisse anzuzeigen"},{code:"el",week:{dow:1,doy:4},buttonText:{prev:"Προηγούμενος",next:"Επόμενος",today:"Σήμερα",month:"Μήνας",week:"Εβδομάδα",day:"Ημέρα",list:"Ατζέντα"},weekText:"Εβδ",allDayText:"Ολοήμερο",moreLinkText:"περισσότερα",noEventsText:"Δεν υπάρχουν γεγονότα προς εμφάνιση"},{code:"en-au",week:{dow:1,doy:4}},{code:"en-gb",week:{dow:1,doy:4}},{code:"en-nz",week:{dow:1,doy:4}},{code:"es",week:{dow:0,doy:6},buttonText:{prev:"Ant",next:"Sig",today:"Hoy",month:"Mes",week:"Semana",day:"Día",list:"Agenda"},weekText:"Sm",allDayText:"Todo el día",moreLinkText:"más",noEventsText:"No hay eventos para mostrar"},{code:"es",week:{dow:1,doy:4},buttonText:{prev:"Ant",next:"Sig",today:"Hoy",month:"Mes",week:"Semana",day:"Día",list:"Agenda"},weekText:"Sm",allDayText:"Todo el día",moreLinkText:"más",noEventsText:"No hay eventos para mostrar"},{code:"et",week:{dow:1,doy:4},buttonText:{prev:"Eelnev",next:"Järgnev",today:"Täna",month:"Kuu",week:"Nädal",day:"Päev",list:"Päevakord"},weekText:"näd",allDayText:"Kogu päev",moreLinkText:function(e){return"+ veel "+e},noEventsText:"Kuvamiseks puuduvad sündmused"},{code:"eu",week:{dow:1,doy:7},buttonText:{prev:"Aur",next:"Hur",today:"Gaur",month:"Hilabetea",week:"Astea",day:"Eguna",list:"Agenda"},weekText:"As",allDayText:"Egun osoa",moreLinkText:"gehiago",noEventsText:"Ez dago ekitaldirik erakusteko"},{code:"fa",week:{dow:6,doy:12},direction:"rtl",buttonText:{prev:"قبلی",next:"بعدی",today:"امروز",month:"ماه",week:"هفته",day:"روز",list:"برنامه"},weekText:"هف",allDayText:"تمام روز",moreLinkText:function(e){return"بیش از "+e},noEventsText:"هیچ رویدادی به نمایش"},{code:"fi",week:{dow:1,doy:4},buttonText:{prev:"Edellinen",next:"Seuraava",today:"Tänään",month:"Kuukausi",week:"Viikko",day:"Päivä",list:"Tapahtumat"},weekText:"Vk",allDayText:"Koko päivä",moreLinkText:"lisää",noEventsText:"Ei näytettäviä tapahtumia"},{code:"fr",buttonText:{prev:"Précédent",next:"Suivant",today:"Aujourd'hui",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},weekText:"Sem.",allDayText:"Toute la journée",moreLinkText:"en plus",noEventsText:"Aucun événement à afficher"},{code:"fr-ch",week:{dow:1,doy:4},buttonText:{prev:"Précédent",next:"Suivant",today:"Courant",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},weekText:"Sm",allDayText:"Toute la journée",moreLinkText:"en plus",noEventsText:"Aucun événement à afficher"},{code:"fr",week:{dow:1,doy:4},buttonText:{prev:"Précédent",next:"Suivant",today:"Aujourd'hui",year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Planning"},weekText:"Sem.",allDayText:"Toute la journée",moreLinkText:"en plus",noEventsText:"Aucun événement à afficher"},{code:"gl",week:{dow:1,doy:4},buttonText:{prev:"Ant",next:"Seg",today:"Hoxe",month:"Mes",week:"Semana",day:"Día",list:"Axenda"},weekText:"Sm",allDayText:"Todo o día",moreLinkText:"máis",noEventsText:"Non hai eventos para amosar"},{code:"he",direction:"rtl",buttonText:{prev:"הקודם",next:"הבא",today:"היום",month:"חודש",week:"שבוע",day:"יום",list:"סדר יום"},allDayText:"כל היום",moreLinkText:"אחר",noEventsText:"אין אירועים להצגה",weekText:"שבוע"},{code:"hi",week:{dow:0,doy:6},buttonText:{prev:"पिछला",next:"अगला",today:"आज",month:"महीना",week:"सप्ताह",day:"दिन",list:"कार्यसूची"},weekText:"हफ्ता",allDayText:"सभी दिन",moreLinkText:function(e){return"+अधिक "+e},noEventsText:"कोई घटनाओं को प्रदर्शित करने के लिए"},{code:"hr",week:{dow:1,doy:7},buttonText:{prev:"Prijašnji",next:"Sljedeći",today:"Danas",month:"Mjesec",week:"Tjedan",day:"Dan",list:"Raspored"},weekText:"Tje",allDayText:"Cijeli dan",moreLinkText:function(e){return"+ još "+e},noEventsText:"Nema događaja za prikaz"},{code:"hu",week:{dow:1,doy:4},buttonText:{prev:"vissza",next:"előre",today:"ma",month:"Hónap",week:"Hét",day:"Nap",list:"Napló"},weekText:"Hét",allDayText:"Egész nap",moreLinkText:"további",noEventsText:"Nincs megjeleníthető esemény"},{code:"id",week:{dow:1,doy:7},buttonText:{prev:"mundur",next:"maju",today:"hari ini",month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},weekText:"Mg",allDayText:"Sehari penuh",moreLinkText:"lebih",noEventsText:"Tidak ada acara untuk ditampilkan"},{code:"is",week:{dow:1,doy:4},buttonText:{prev:"Fyrri",next:"Næsti",today:"Í dag",month:"Mánuður",week:"Vika",day:"Dagur",list:"Dagskrá"},weekText:"Vika",allDayText:"Allan daginn",moreLinkText:"meira",noEventsText:"Engir viðburðir til að sýna"},{code:"it",week:{dow:1,doy:4},buttonText:{prev:"Prec",next:"Succ",today:"Oggi",month:"Mese",week:"Settimana",day:"Giorno",list:"Agenda"},weekText:"Sm",allDayText:"Tutto il giorno",moreLinkText:function(e){return"+altri "+e},noEventsText:"Non ci sono eventi da visualizzare"},{code:"ja",buttonText:{prev:"前",next:"次",today:"今日",month:"月",week:"週",day:"日",list:"予定リスト"},weekText:"週",allDayText:"終日",moreLinkText:function(e){return"他 "+e+" 件"},noEventsText:"表示する予定はありません"},{code:"ka",week:{dow:1,doy:7},buttonText:{prev:"წინა",next:"შემდეგი",today:"დღეს",month:"თვე",week:"კვირა",day:"დღე",list:"დღის წესრიგი"},weekText:"კვ",allDayText:"მთელი დღე",moreLinkText:function(e){return"+ კიდევ "+e},noEventsText:"ღონისძიებები არ არის"},{code:"kk",week:{dow:1,doy:7},buttonText:{prev:"Алдыңғы",next:"Келесі",today:"Бүгін",month:"Ай",week:"Апта",day:"Күн",list:"Күн тәртібі"},weekText:"Не",allDayText:"Күні бойы",moreLinkText:function(e){return"+ тағы "+e},noEventsText:"Көрсету үшін оқиғалар жоқ"},{code:"ko",buttonText:{prev:"이전달",next:"다음달",today:"오늘",month:"월",week:"주",day:"일",list:"일정목록"},weekText:"주",allDayText:"종일",moreLinkText:"개",noEventsText:"일정이 없습니다"},{code:"lb",week:{dow:1,doy:4},buttonText:{prev:"Zréck",next:"Weider",today:"Haut",month:"Mount",week:"Woch",day:"Dag",list:"Terminiwwersiicht"},weekText:"W",allDayText:"Ganzen Dag",moreLinkText:"méi",noEventsText:"Nee Evenementer ze affichéieren"},{code:"lt",week:{dow:1,doy:4},buttonText:{prev:"Atgal",next:"Pirmyn",today:"Šiandien",month:"Mėnuo",week:"Savaitė",day:"Diena",list:"Darbotvarkė"},weekText:"SAV",allDayText:"Visą dieną",moreLinkText:"daugiau",noEventsText:"Nėra įvykių rodyti"},{code:"lv",week:{dow:1,doy:4},buttonText:{prev:"Iepr.",next:"Nāk.",today:"Šodien",month:"Mēnesis",week:"Nedēļa",day:"Diena",list:"Dienas kārtība"},weekText:"Ned.",allDayText:"Visu dienu",moreLinkText:function(e){return"+vēl "+e},noEventsText:"Nav notikumu"},{code:"mk",buttonText:{prev:"претходно",next:"следно",today:"Денес",month:"Месец",week:"Недела",day:"Ден",list:"График"},weekText:"Сед",allDayText:"Цел ден",moreLinkText:function(e){return"+повеќе "+e},noEventsText:"Нема настани за прикажување"},{code:"ms",week:{dow:1,doy:7},buttonText:{prev:"Sebelum",next:"Selepas",today:"hari ini",month:"Bulan",week:"Minggu",day:"Hari",list:"Agenda"},weekText:"Mg",allDayText:"Sepanjang hari",moreLinkText:function(e){return"masih ada "+e+" acara"},noEventsText:"Tiada peristiwa untuk dipaparkan"},{code:"nb",week:{dow:1,doy:4},buttonText:{prev:"Forrige",next:"Neste",today:"I dag",month:"Måned",week:"Uke",day:"Dag",list:"Agenda"},weekText:"Uke",allDayText:"Hele dagen",moreLinkText:"til",noEventsText:"Ingen hendelser å vise"},{code:"ne",week:{dow:7,doy:1},buttonText:{prev:"अघिल्लो",next:"अर्को",today:"आज",month:"महिना",week:"हप्ता",day:"दिन",list:"सूची"},weekText:"हप्ता",allDayText:"दिनभरि",moreLinkText:"थप लिंक",noEventsText:"देखाउनको लागि कुनै घटनाहरू छैनन्"},{code:"nl",week:{dow:1,doy:4},buttonText:{prev:"Voorgaand",next:"Volgende",today:"Vandaag",year:"Jaar",month:"Maand",week:"Week",day:"Dag",list:"Agenda"},allDayText:"Hele dag",moreLinkText:"extra",noEventsText:"Geen evenementen om te laten zien"},{code:"nn",week:{dow:1,doy:4},buttonText:{prev:"Førre",next:"Neste",today:"I dag",month:"Månad",week:"Veke",day:"Dag",list:"Agenda"},weekText:"Veke",allDayText:"Heile dagen",moreLinkText:"til",noEventsText:"Ingen hendelser å vise"},{code:"pl",week:{dow:1,doy:4},buttonText:{prev:"Poprzedni",next:"Następny",today:"Dziś",month:"Miesiąc",week:"Tydzień",day:"Dzień",list:"Plan dnia"},weekText:"Tydz",allDayText:"Cały dzień",moreLinkText:"więcej",noEventsText:"Brak wydarzeń do wyświetlenia"},{code:"pt-br",buttonText:{prev:"Anterior",next:"Próximo",today:"Hoje",month:"Mês",week:"Semana",day:"Dia",list:"Lista"},weekText:"Sm",allDayText:"dia inteiro",moreLinkText:function(e){return"mais +"+e},noEventsText:"Não há eventos para mostrar"},{code:"pt",week:{dow:1,doy:4},buttonText:{prev:"Anterior",next:"Seguinte",today:"Hoje",month:"Mês",week:"Semana",day:"Dia",list:"Agenda"},weekText:"Sem",allDayText:"Todo o dia",moreLinkText:"mais",noEventsText:"Não há eventos para mostrar"},{code:"ro",week:{dow:1,doy:7},buttonText:{prev:"precedentă",next:"următoare",today:"Azi",month:"Lună",week:"Săptămână",day:"Zi",list:"Agendă"},weekText:"Săpt",allDayText:"Toată ziua",moreLinkText:function(e){return"+alte "+e},noEventsText:"Nu există evenimente de afișat"},{code:"ru",week:{dow:1,doy:4},buttonText:{prev:"Пред",next:"След",today:"Сегодня",month:"Месяц",week:"Неделя",day:"День",list:"Повестка дня"},weekText:"Нед",allDayText:"Весь день",moreLinkText:function(e){return"+ ещё "+e},noEventsText:"Нет событий для отображения"},{code:"sk",week:{dow:1,doy:4},buttonText:{prev:"Predchádzajúci",next:"Nasledujúci",today:"Dnes",month:"Mesiac",week:"Týždeň",day:"Deň",list:"Rozvrh"},weekText:"Ty",allDayText:"Celý deň",moreLinkText:function(e){return"+ďalšie: "+e},noEventsText:"Žiadne akcie na zobrazenie"},{code:"sl",week:{dow:1,doy:7},buttonText:{prev:"Prejšnji",next:"Naslednji",today:"Trenutni",month:"Mesec",week:"Teden",day:"Dan",list:"Dnevni red"},weekText:"Teden",allDayText:"Ves dan",moreLinkText:"več",noEventsText:"Ni dogodkov za prikaz"},{code:"sq",week:{dow:1,doy:4},buttonText:{prev:"mbrapa",next:"Përpara",today:"sot",month:"Muaj",week:"Javë",day:"Ditë",list:"Listë"},weekText:"Ja",allDayText:"Gjithë ditën",moreLinkText:function(e){return"+më tepër "+e},noEventsText:"Nuk ka evente për të shfaqur"},{code:"sr-cyrl",week:{dow:1,doy:7},buttonText:{prev:"Претходна",next:"следећи",today:"Данас",month:"Месец",week:"Недеља",day:"Дан",list:"Планер"},weekText:"Сед",allDayText:"Цео дан",moreLinkText:function(e){return"+ још "+e},noEventsText:"Нема догађаја за приказ"},{code:"sr",week:{dow:1,doy:7},buttonText:{prev:"Prethodna",next:"Sledeći",today:"Danas",month:"Mеsеc",week:"Nеdеlja",day:"Dan",list:"Planеr"},weekText:"Sed",allDayText:"Cеo dan",moreLinkText:function(e){return"+ još "+e},noEventsText:"Nеma događaja za prikaz"},{code:"sv",week:{dow:1,doy:4},buttonText:{prev:"Förra",next:"Nästa",today:"Idag",month:"Månad",week:"Vecka",day:"Dag",list:"Program"},weekText:"v.",allDayText:"Heldag",moreLinkText:"till",noEventsText:"Inga händelser att visa"},{code:"th",week:{dow:1,doy:4},buttonText:{prev:"ก่อนหน้า",next:"ถัดไป",prevYear:"ปีก่อนหน้า",nextYear:"ปีถัดไป",year:"ปี",today:"วันนี้",month:"เดือน",week:"สัปดาห์",day:"วัน",list:"กำหนดการ"},weekText:"สัปดาห์",allDayText:"ตลอดวัน",moreLinkText:"เพิ่มเติม",noEventsText:"ไม่มีกิจกรรมที่จะแสดง"},{code:"tr",week:{dow:1,doy:7},buttonText:{prev:"geri",next:"ileri",today:"bugün",month:"Ay",week:"Hafta",day:"Gün",list:"Ajanda"},weekText:"Hf",allDayText:"Tüm gün",moreLinkText:"daha fazla",noEventsText:"Gösterilecek etkinlik yok"},{code:"ug",buttonText:{month:"ئاي",week:"ھەپتە",day:"كۈن",list:"كۈنتەرتىپ"},allDayText:"پۈتۈن كۈن"},{code:"uk",week:{dow:1,doy:7},buttonText:{prev:"Попередній",next:"далі",today:"Сьогодні",month:"Місяць",week:"Тиждень",day:"День",list:"Порядок денний"},weekText:"Тиж",allDayText:"Увесь день",moreLinkText:function(e){return"+ще "+e+"..."},noEventsText:"Немає подій для відображення"},{code:"uz",buttonText:{month:"Oy",week:"Xafta",day:"Kun",list:"Kun tartibi"},allDayText:"Kun bo'yi",moreLinkText:function(e){return"+ yana "+e},noEventsText:"Ko'rsatish uchun voqealar yo'q"},{code:"vi",week:{dow:1,doy:4},buttonText:{prev:"Trước",next:"Tiếp",today:"Hôm nay",month:"Tháng",week:"Tuần",day:"Ngày",list:"Lịch biểu"},weekText:"Tu",allDayText:"Cả ngày",moreLinkText:function(e){return"+ thêm "+e},noEventsText:"Không có sự kiện để hiển thị"},{code:"zh-cn",week:{dow:1,doy:4},buttonText:{prev:"上月",next:"下月",today:"今天",month:"月",week:"周",day:"日",list:"日程"},weekText:"周",allDayText:"全天",moreLinkText:function(e){return"另外 "+e+" 个"},noEventsText:"没有事件显示"},{code:"zh-tw",buttonText:{prev:"上月",next:"下月",today:"今天",month:"月",week:"週",day:"天",list:"活動列表"},weekText:"周",allDayText:"整天",moreLinkText:"顯示更多",noEventsText:"没有任何活動"}]}());
|
base.php
CHANGED
@@ -132,6 +132,7 @@ class Base {
|
|
132 |
include_once( HAPPY_ADDONS_DIR_PATH . 'controls/foreground.php' );
|
133 |
include_once( HAPPY_ADDONS_DIR_PATH . 'controls/select2.php' );
|
134 |
include_once( HAPPY_ADDONS_DIR_PATH . 'controls/widget-list.php' );
|
|
|
135 |
|
136 |
$Foreground = __NAMESPACE__ . '\Controls\Group_Control_Foreground';
|
137 |
$controls_Manager->add_group_control( $Foreground::get_type(), new $Foreground() );
|
@@ -141,5 +142,8 @@ class Base {
|
|
141 |
|
142 |
$Widget_List = __NAMESPACE__ . '\Controls\Widget_List';
|
143 |
ha_elementor()->controls_manager->register_control( $Widget_List::TYPE, new $Widget_List() );
|
|
|
|
|
|
|
144 |
}
|
145 |
}
|
132 |
include_once( HAPPY_ADDONS_DIR_PATH . 'controls/foreground.php' );
|
133 |
include_once( HAPPY_ADDONS_DIR_PATH . 'controls/select2.php' );
|
134 |
include_once( HAPPY_ADDONS_DIR_PATH . 'controls/widget-list.php' );
|
135 |
+
include_once( HAPPY_ADDONS_DIR_PATH . 'controls/text-stroke.php' );
|
136 |
|
137 |
$Foreground = __NAMESPACE__ . '\Controls\Group_Control_Foreground';
|
138 |
$controls_Manager->add_group_control( $Foreground::get_type(), new $Foreground() );
|
142 |
|
143 |
$Widget_List = __NAMESPACE__ . '\Controls\Widget_List';
|
144 |
ha_elementor()->controls_manager->register_control( $Widget_List::TYPE, new $Widget_List() );
|
145 |
+
|
146 |
+
$Text_Stroke = __NAMESPACE__ . '\Controls\Group_Control_Text_Stroke';
|
147 |
+
$controls_Manager->add_group_control( $Text_Stroke::get_type(), new $Text_Stroke() );
|
148 |
}
|
149 |
}
|
changelog.txt
CHANGED
@@ -1,11 +1,25 @@
|
|
1 |
-
= 2.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
- New: Features control panel
|
4 |
- New: Section Shape Divider - 18 custom shapes (Happy Shapes)
|
5 |
- Tweak: Improved elementor missing notice
|
6 |
- Fix: Misc css bug resolved
|
7 |
|
8 |
-
= 2.18.0 - 5 January
|
9 |
|
10 |
- New: Tabs are sortable in Post Tab widget
|
11 |
- Tweak: Added Post tab widget tab hover cursor
|
1 |
+
= 2.20.0 - 18 February 2021 =
|
2 |
+
|
3 |
+
- New: Text stroke feature
|
4 |
+
- New: Event Calendar widget
|
5 |
+
- New: Happy particle effects disable option
|
6 |
+
- Tweak: Updated kses function to support more attributes
|
7 |
+
- Tweak: Added html tag support in Data Table widget
|
8 |
+
- Tweak: Added slider widget dots size control
|
9 |
+
- Tweak: Added carousel widget dots size control
|
10 |
+
- Fix: Shape divider spell
|
11 |
+
- Fix: Chart widgets console error
|
12 |
+
- Fix: Widget background overlay class mismatch issue
|
13 |
+
- Fix: Data Table widget compatibility issue with WPML
|
14 |
+
|
15 |
+
= 2.19.0 - 20 January 2021 =
|
16 |
|
17 |
- New: Features control panel
|
18 |
- New: Section Shape Divider - 18 custom shapes (Happy Shapes)
|
19 |
- Tweak: Improved elementor missing notice
|
20 |
- Fix: Misc css bug resolved
|
21 |
|
22 |
+
= 2.18.0 - 5 January 2021 =
|
23 |
|
24 |
- New: Tabs are sortable in Post Tab widget
|
25 |
- Tweak: Added Post tab widget tab hover cursor
|
classes/assets-manager.php
CHANGED
@@ -214,6 +214,32 @@ class Assets_Manager {
|
|
214 |
true
|
215 |
);
|
216 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
217 |
// Hover css
|
218 |
wp_register_style(
|
219 |
'hover-css',
|
214 |
true
|
215 |
);
|
216 |
|
217 |
+
// fullcalendar js
|
218 |
+
wp_register_script(
|
219 |
+
'ha-fullcalendar',
|
220 |
+
HAPPY_ADDONS_ASSETS . 'vendor/fullcalendar/fullcalendar.min.js',
|
221 |
+
['jquery'],
|
222 |
+
HAPPY_ADDONS_VERSION,
|
223 |
+
true
|
224 |
+
);
|
225 |
+
|
226 |
+
// fullcalendar language js
|
227 |
+
wp_register_script(
|
228 |
+
'ha-fullcalendar-locales',
|
229 |
+
HAPPY_ADDONS_ASSETS . 'vendor/fullcalendar/locales-all.min.js',
|
230 |
+
['jquery'],
|
231 |
+
HAPPY_ADDONS_VERSION,
|
232 |
+
true
|
233 |
+
);
|
234 |
+
|
235 |
+
// fullcalendar css
|
236 |
+
wp_register_style(
|
237 |
+
'ha-fullcalendar',
|
238 |
+
HAPPY_ADDONS_ASSETS . 'vendor/fullcalendar/fullcalendar.min.css',
|
239 |
+
null,
|
240 |
+
HAPPY_ADDONS_VERSION
|
241 |
+
);
|
242 |
+
|
243 |
// Hover css
|
244 |
wp_register_style(
|
245 |
'hover-css',
|
classes/extensions-manager.php
CHANGED
@@ -69,6 +69,11 @@ class Extensions_Manager {
|
|
69 |
'title' => __( 'Image Masking', 'happy-elementor-addons' ),
|
70 |
'icon' => 'hm hm-image-masking',
|
71 |
'is_pro' => true,
|
|
|
|
|
|
|
|
|
|
|
72 |
]
|
73 |
];
|
74 |
}
|
@@ -148,6 +153,10 @@ class Extensions_Manager {
|
|
148 |
case 'image-masking':
|
149 |
add_filter( 'happyaddons/extensions/image_masking', '__return_false' );
|
150 |
break;
|
|
|
|
|
|
|
|
|
151 |
}
|
152 |
}
|
153 |
}
|
69 |
'title' => __( 'Image Masking', 'happy-elementor-addons' ),
|
70 |
'icon' => 'hm hm-image-masking',
|
71 |
'is_pro' => true,
|
72 |
+
],
|
73 |
+
'happy-particle-effects' => [
|
74 |
+
'title' => __( 'Happy Particle Effects', 'happy-elementor-addons' ),
|
75 |
+
'icon' => 'hm hm-spark',
|
76 |
+
'is_pro' => true,
|
77 |
]
|
78 |
];
|
79 |
}
|
153 |
case 'image-masking':
|
154 |
add_filter( 'happyaddons/extensions/image_masking', '__return_false' );
|
155 |
break;
|
156 |
+
|
157 |
+
case 'happy-particle-effects':
|
158 |
+
add_filter( 'happyaddons/extensions/happy_particle_effects', '__return_false' );
|
159 |
+
break;
|
160 |
}
|
161 |
}
|
162 |
}
|
classes/finder-edit.php
CHANGED
@@ -1,169 +1,169 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Finder tools class
|
4 |
-
*
|
5 |
-
* @package Happy_Addons
|
6 |
-
*/
|
7 |
-
namespace Happy_Addons\Elementor;
|
8 |
-
|
9 |
-
use Elementor\Core\Base\Document;
|
10 |
-
use Elementor\Core\Common\Modules\Finder\Base_Category as Finder_Category;
|
11 |
-
use Elementor\TemplateLibrary\Source_Local;
|
12 |
-
use Happy_Addons\Elementor\Clone_Handler as Cloner;
|
13 |
-
|
14 |
-
defined( 'ABSPATH' ) || die();
|
15 |
-
|
16 |
-
class Finder_Edit extends Finder_Category {
|
17 |
-
|
18 |
-
const SLUG = 'edit';
|
19 |
-
|
20 |
-
/**
|
21 |
-
* Get title.
|
22 |
-
*
|
23 |
-
* @access public
|
24 |
-
*
|
25 |
-
* @return string
|
26 |
-
*/
|
27 |
-
public function get_title() {
|
28 |
-
return __( 'Edit + Happy Clone', 'happy-elementor-addons' );
|
29 |
-
}
|
30 |
-
|
31 |
-
/**
|
32 |
-
* Set category as dynamic
|
33 |
-
*
|
34 |
-
* @return bool
|
35 |
-
*/
|
36 |
-
public function is_dynamic() {
|
37 |
-
return true;
|
38 |
-
}
|
39 |
-
|
40 |
-
/**
|
41 |
-
* Get category items.
|
42 |
-
*
|
43 |
-
* @access public
|
44 |
-
*
|
45 |
-
* @param array $options
|
46 |
-
*
|
47 |
-
* @return array
|
48 |
-
*/
|
49 |
-
public function get_category_items( array $options = [] ) {
|
50 |
-
$post_types = get_post_types( [
|
51 |
-
'exclude_from_search' => false,
|
52 |
-
] );
|
53 |
-
|
54 |
-
$post_types[] = Source_Local::CPT;
|
55 |
-
|
56 |
-
$document_types = ha_elementor()->documents->get_document_types( [
|
57 |
-
'is_editable' => true,
|
58 |
-
] );
|
59 |
-
|
60 |
-
$query_args = [
|
61 |
-
'post_type' => $post_types,
|
62 |
-
'post_status' => [ 'publish', 'draft', 'private', 'pending', 'future' ],
|
63 |
-
'posts_per_page' => '10',
|
64 |
-
'meta_query' => [
|
65 |
-
[
|
66 |
-
'key' => '_elementor_edit_mode',
|
67 |
-
'value' => 'builder',
|
68 |
-
],
|
69 |
-
[
|
70 |
-
'relation' => 'or',
|
71 |
-
[
|
72 |
-
'key' => Document::TYPE_META_KEY,
|
73 |
-
'compare' => 'NOT EXISTS',
|
74 |
-
],
|
75 |
-
[
|
76 |
-
'key' => Document::TYPE_META_KEY,
|
77 |
-
'value' => array_keys( $document_types ),
|
78 |
-
],
|
79 |
-
],
|
80 |
-
],
|
81 |
-
'orderby' => 'modified',
|
82 |
-
's' => $options['filter'],
|
83 |
-
];
|
84 |
-
|
85 |
-
|
86 |
-
if ( Cloner::can_clone() ) {
|
87 |
-
$editor_post_id = isset( $options['editor_post_id'] ) ? $options['editor_post_id'] : 0;
|
88 |
-
$editor_document = ha_elementor()->documents->get( $editor_post_id );
|
89 |
-
$items = [];
|
90 |
-
|
91 |
-
$ref = 'list';
|
92 |
-
|
93 |
-
if ( $editor_document ) {
|
94 |
-
$description = $editor_document->get_title();
|
95 |
-
$icon = 'document-file';
|
96 |
-
$ref = 'editor';
|
97 |
-
|
98 |
-
if ( $editor_document->get_post()->post_type === Source_Local::CPT ) {
|
99 |
-
$description = __( 'Template', 'happy-elementor-addons' ) . ' / ' . $description;
|
100 |
-
$icon = 'post-title';
|
101 |
-
}
|
102 |
-
|
103 |
-
$url = Cloner::get_url( $editor_document->get_id(), $ref );
|
104 |
-
$items[] = [
|
105 |
-
'icon' => $icon,
|
106 |
-
'title' => __( 'Clone / Duplicate This', 'happy-elementor-addons' ),
|
107 |
-
'description' => $description,
|
108 |
-
'url' => $url,
|
109 |
-
'actions' => [
|
110 |
-
[
|
111 |
-
'name' => 'clone',
|
112 |
-
'url' => $url,
|
113 |
-
'icon' => 'clone',
|
114 |
-
]
|
115 |
-
]
|
116 |
-
];
|
117 |
-
}
|
118 |
-
}
|
119 |
-
|
120 |
-
|
121 |
-
$posts_query = new \WP_Query( $query_args );
|
122 |
-
|
123 |
-
foreach ( $posts_query->posts as $post ) {
|
124 |
-
$document = ha_elementor()->documents->get( $post->ID );
|
125 |
-
|
126 |
-
if ( ! $document ) {
|
127 |
-
continue;
|
128 |
-
}
|
129 |
-
|
130 |
-
$is_template = Source_Local::CPT === $post->post_type;
|
131 |
-
|
132 |
-
$description = $document->get_title();
|
133 |
-
|
134 |
-
$icon = 'document-file';
|
135 |
-
|
136 |
-
if ( $is_template ) {
|
137 |
-
$description = __( 'Template', 'happy-elementor-addons' ) . ' / ' . $description;
|
138 |
-
|
139 |
-
$icon = 'post-title';
|
140 |
-
}
|
141 |
-
|
142 |
-
$actions = [
|
143 |
-
[
|
144 |
-
'name' => 'view',
|
145 |
-
'url' => $document->get_permalink(),
|
146 |
-
'icon' => 'eye',
|
147 |
-
],
|
148 |
-
];
|
149 |
-
|
150 |
-
if ( Cloner::can_clone() ) {
|
151 |
-
$actions[] = [
|
152 |
-
'name' => 'clone',
|
153 |
-
'url' => Cloner::get_url( $document->get_id(), $ref ),
|
154 |
-
'icon' => 'clone',
|
155 |
-
];
|
156 |
-
}
|
157 |
-
|
158 |
-
$items[] = [
|
159 |
-
'icon' => $icon,
|
160 |
-
'title' => $post->post_title,
|
161 |
-
'description' => $description,
|
162 |
-
'url' => $document->get_edit_url(),
|
163 |
-
'actions' => $actions,
|
164 |
-
];
|
165 |
-
}
|
166 |
-
|
167 |
-
return $items;
|
168 |
-
}
|
169 |
-
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Finder tools class
|
4 |
+
*
|
5 |
+
* @package Happy_Addons
|
6 |
+
*/
|
7 |
+
namespace Happy_Addons\Elementor;
|
8 |
+
|
9 |
+
use Elementor\Core\Base\Document;
|
10 |
+
use Elementor\Core\Common\Modules\Finder\Base_Category as Finder_Category;
|
11 |
+
use Elementor\TemplateLibrary\Source_Local;
|
12 |
+
use Happy_Addons\Elementor\Clone_Handler as Cloner;
|
13 |
+
|
14 |
+
defined( 'ABSPATH' ) || die();
|
15 |
+
|
16 |
+
class Finder_Edit extends Finder_Category {
|
17 |
+
|
18 |
+
const SLUG = 'edit';
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Get title.
|
22 |
+
*
|
23 |
+
* @access public
|
24 |
+
*
|
25 |
+
* @return string
|
26 |
+
*/
|
27 |
+
public function get_title() {
|
28 |
+
return __( 'Edit + Happy Clone', 'happy-elementor-addons' );
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Set category as dynamic
|
33 |
+
*
|
34 |
+
* @return bool
|
35 |
+
*/
|
36 |
+
public function is_dynamic() {
|
37 |
+
return true;
|
38 |
+
}
|
39 |
+
|
40 |
+
/**
|
41 |
+
* Get category items.
|
42 |
+
*
|
43 |
+
* @access public
|
44 |
+
*
|
45 |
+
* @param array $options
|
46 |
+
*
|
47 |
+
* @return array
|
48 |
+
*/
|
49 |
+
public function get_category_items( array $options = [] ) {
|
50 |
+
$post_types = get_post_types( [
|
51 |
+
'exclude_from_search' => false,
|
52 |
+
] );
|
53 |
+
|
54 |
+
$post_types[] = Source_Local::CPT;
|
55 |
+
|
56 |
+
$document_types = ha_elementor()->documents->get_document_types( [
|
57 |
+
'is_editable' => true,
|
58 |
+
] );
|
59 |
+
|
60 |
+
$query_args = [
|
61 |
+
'post_type' => $post_types,
|
62 |
+
'post_status' => [ 'publish', 'draft', 'private', 'pending', 'future' ],
|
63 |
+
'posts_per_page' => '10',
|
64 |
+
'meta_query' => [
|
65 |
+
[
|
66 |
+
'key' => '_elementor_edit_mode',
|
67 |
+
'value' => 'builder',
|
68 |
+
],
|
69 |
+
[
|
70 |
+
'relation' => 'or',
|
71 |
+
[
|
72 |
+
'key' => Document::TYPE_META_KEY,
|
73 |
+
'compare' => 'NOT EXISTS',
|
74 |
+
],
|
75 |
+
[
|
76 |
+
'key' => Document::TYPE_META_KEY,
|
77 |
+
'value' => array_keys( $document_types ),
|
78 |
+
],
|
79 |
+
],
|
80 |
+
],
|
81 |
+
'orderby' => 'modified',
|
82 |
+
's' => $options['filter'],
|
83 |
+
];
|
84 |
+
|
85 |
+
|
86 |
+
if ( Cloner::can_clone() ) {
|
87 |
+
$editor_post_id = isset( $options['editor_post_id'] ) ? $options['editor_post_id'] : 0;
|
88 |
+
$editor_document = ha_elementor()->documents->get( $editor_post_id );
|
89 |
+
$items = [];
|
90 |
+
|
91 |
+
$ref = 'list';
|
92 |
+
|
93 |
+
if ( $editor_document ) {
|
94 |
+
$description = $editor_document->get_title();
|
95 |
+
$icon = 'document-file';
|
96 |
+
$ref = 'editor';
|
97 |
+
|
98 |
+
if ( $editor_document->get_post()->post_type === Source_Local::CPT ) {
|
99 |
+
$description = __( 'Template', 'happy-elementor-addons' ) . ' / ' . $description;
|
100 |
+
$icon = 'post-title';
|
101 |
+
}
|
102 |
+
|
103 |
+
$url = Cloner::get_url( $editor_document->get_id(), $ref );
|
104 |
+
$items[] = [
|
105 |
+
'icon' => $icon,
|
106 |
+
'title' => __( 'Clone / Duplicate This', 'happy-elementor-addons' ),
|
107 |
+
'description' => $description,
|
108 |
+
'url' => $url,
|
109 |
+
'actions' => [
|
110 |
+
[
|
111 |
+
'name' => 'clone',
|
112 |
+
'url' => $url,
|
113 |
+
'icon' => 'clone',
|
114 |
+
]
|
115 |
+
]
|
116 |
+
];
|
117 |
+
}
|
118 |
+
}
|
119 |
+
|
120 |
+
|
121 |
+
$posts_query = new \WP_Query( $query_args );
|
122 |
+
|
123 |
+
foreach ( $posts_query->posts as $post ) {
|
124 |
+
$document = ha_elementor()->documents->get( $post->ID );
|
125 |
+
|
126 |
+
if ( ! $document ) {
|
127 |
+
continue;
|
128 |
+
}
|
129 |
+
|
130 |
+
$is_template = Source_Local::CPT === $post->post_type;
|
131 |
+
|
132 |
+
$description = $document->get_title();
|
133 |
+
|
134 |
+
$icon = 'document-file';
|
135 |
+
|
136 |
+
if ( $is_template ) {
|
137 |
+
$description = __( 'Template', 'happy-elementor-addons' ) . ' / ' . $description;
|
138 |
+
|
139 |
+
$icon = 'post-title';
|
140 |
+
}
|
141 |
+
|
142 |
+
$actions = [
|
143 |
+
[
|
144 |
+
'name' => 'view',
|
145 |
+
'url' => $document->get_permalink(),
|
146 |
+
'icon' => 'eye',
|
147 |
+
],
|
148 |
+
];
|
149 |
+
|
150 |
+
if ( Cloner::can_clone() ) {
|
151 |
+
$actions[] = [
|
152 |
+
'name' => 'clone',
|
153 |
+
'url' => Cloner::get_url( $document->get_id(), $ref ),
|
154 |
+
'icon' => 'clone',
|
155 |
+
];
|
156 |
+
}
|
157 |
+
|
158 |
+
$items[] = [
|
159 |
+
'icon' => $icon,
|
160 |
+
'title' => $post->post_title,
|
161 |
+
'description' => $description,
|
162 |
+
'url' => $document->get_edit_url(),
|
163 |
+
'actions' => $actions,
|
164 |
+
];
|
165 |
+
}
|
166 |
+
|
167 |
+
return $items;
|
168 |
+
}
|
169 |
+
}
|
classes/widgets-manager.php
CHANGED
@@ -589,6 +589,16 @@ class Widgets_Manager {
|
|
589 |
'js' => ['sharer-js'],
|
590 |
]
|
591 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
592 |
];
|
593 |
}
|
594 |
|
589 |
'js' => ['sharer-js'],
|
590 |
]
|
591 |
],
|
592 |
+
'event-calendar' => [
|
593 |
+
'title' => __( 'Event Calendar', 'happy-elementor-addons' ),
|
594 |
+
'icon' => 'hm hm-calendar2',
|
595 |
+
'css' => ['event-calendar'],
|
596 |
+
'js' => [],
|
597 |
+
'vendor' => [
|
598 |
+
'css' => ['ha-fullcalendar'],
|
599 |
+
'js' => ['ha-fullcalendar','ha-fullcalendar-locales'],
|
600 |
+
],
|
601 |
+
],
|
602 |
];
|
603 |
}
|
604 |
|
classes/wpml-manager.php
CHANGED
@@ -43,6 +43,8 @@ class WPML_Manager {
|
|
43 |
include_once( HAPPY_ADDONS_DIR_PATH . 'wpml/skills.php' );
|
44 |
include_once( HAPPY_ADDONS_DIR_PATH . 'wpml/slider.php' );
|
45 |
include_once( HAPPY_ADDONS_DIR_PATH . 'wpml/social-icons.php' );
|
|
|
|
|
46 |
}
|
47 |
|
48 |
public static function add_widgets_to_translate( $widgets ) {
|
@@ -65,7 +67,9 @@ class WPML_Manager {
|
|
65 |
'editor_type' => 'LINE',
|
66 |
],
|
67 |
],
|
68 |
-
'integration-class' =>
|
|
|
|
|
69 |
],
|
70 |
|
71 |
/**
|
@@ -106,7 +110,9 @@ class WPML_Manager {
|
|
106 |
*/
|
107 |
'carousel' => [
|
108 |
'fields' => [],
|
109 |
-
'integration-class' =>
|
|
|
|
|
110 |
],
|
111 |
|
112 |
/**
|
@@ -253,7 +259,9 @@ class WPML_Manager {
|
|
253 |
'editor_type' => 'LINE',
|
254 |
],
|
255 |
],
|
256 |
-
'integration-class' =>
|
|
|
|
|
257 |
],
|
258 |
|
259 |
/**
|
@@ -295,7 +303,9 @@ class WPML_Manager {
|
|
295 |
'editor_type' => 'LINE',
|
296 |
],
|
297 |
],
|
298 |
-
'integration-class' =>
|
|
|
|
|
299 |
],
|
300 |
|
301 |
/**
|
@@ -303,7 +313,9 @@ class WPML_Manager {
|
|
303 |
*/
|
304 |
'logo-grid' => [
|
305 |
'fields' => [],
|
306 |
-
'integration-class' =>
|
|
|
|
|
307 |
],
|
308 |
|
309 |
/**
|
@@ -396,7 +408,9 @@ class WPML_Manager {
|
|
396 |
'editor_type' => 'LINE',
|
397 |
],
|
398 |
],
|
399 |
-
'integration-class' =>
|
|
|
|
|
400 |
],
|
401 |
|
402 |
/**
|
@@ -427,7 +441,9 @@ class WPML_Manager {
|
|
427 |
*/
|
428 |
'skills' => [
|
429 |
'fields' => [],
|
430 |
-
'integration-class' =>
|
|
|
|
|
431 |
],
|
432 |
|
433 |
/**
|
@@ -435,7 +451,9 @@ class WPML_Manager {
|
|
435 |
*/
|
436 |
'slider' => [
|
437 |
'fields' => [],
|
438 |
-
'integration-class' =>
|
|
|
|
|
439 |
],
|
440 |
|
441 |
/**
|
@@ -443,7 +461,9 @@ class WPML_Manager {
|
|
443 |
*/
|
444 |
'social-icons' => [
|
445 |
'fields' => [],
|
446 |
-
'integration-class' =>
|
|
|
|
|
447 |
],
|
448 |
|
449 |
/**
|
@@ -514,6 +534,27 @@ class WPML_Manager {
|
|
514 |
],
|
515 |
],
|
516 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
517 |
];
|
518 |
|
519 |
foreach ( $widgets_map as $key => $data ) {
|
43 |
include_once( HAPPY_ADDONS_DIR_PATH . 'wpml/skills.php' );
|
44 |
include_once( HAPPY_ADDONS_DIR_PATH . 'wpml/slider.php' );
|
45 |
include_once( HAPPY_ADDONS_DIR_PATH . 'wpml/social-icons.php' );
|
46 |
+
include_once( HAPPY_ADDONS_DIR_PATH . 'wpml/data-table.php' );
|
47 |
+
include_once( HAPPY_ADDONS_DIR_PATH . 'wpml/horizontal-timeline.php' );
|
48 |
}
|
49 |
|
50 |
public static function add_widgets_to_translate( $widgets ) {
|
67 |
'editor_type' => 'LINE',
|
68 |
],
|
69 |
],
|
70 |
+
'integration-class' => [
|
71 |
+
__NAMESPACE__ . '\\WPML_Bar_Chart',
|
72 |
+
]
|
73 |
],
|
74 |
|
75 |
/**
|
110 |
*/
|
111 |
'carousel' => [
|
112 |
'fields' => [],
|
113 |
+
'integration-class' => [
|
114 |
+
__NAMESPACE__ . '\\WPML_Carousel',
|
115 |
+
]
|
116 |
],
|
117 |
|
118 |
/**
|
259 |
'editor_type' => 'LINE',
|
260 |
],
|
261 |
],
|
262 |
+
'integration-class' => [
|
263 |
+
__NAMESPACE__ . '\\WPML_Image_Grid',
|
264 |
+
]
|
265 |
],
|
266 |
|
267 |
/**
|
303 |
'editor_type' => 'LINE',
|
304 |
],
|
305 |
],
|
306 |
+
'integration-class' => [
|
307 |
+
__NAMESPACE__ . '\\WPML_Justified_Gallery',
|
308 |
+
]
|
309 |
],
|
310 |
|
311 |
/**
|
313 |
*/
|
314 |
'logo-grid' => [
|
315 |
'fields' => [],
|
316 |
+
'integration-class' => [
|
317 |
+
__NAMESPACE__ . '\\WPML_Logo_Grid',
|
318 |
+
]
|
319 |
],
|
320 |
|
321 |
/**
|
408 |
'editor_type' => 'LINE',
|
409 |
],
|
410 |
],
|
411 |
+
'integration-class' => [
|
412 |
+
__NAMESPACE__ . '\\WPML_Pricing_Table',
|
413 |
+
]
|
414 |
],
|
415 |
|
416 |
/**
|
441 |
*/
|
442 |
'skills' => [
|
443 |
'fields' => [],
|
444 |
+
'integration-class' => [
|
445 |
+
__NAMESPACE__ . '\\WPML_Skills',
|
446 |
+
]
|
447 |
],
|
448 |
|
449 |
/**
|
451 |
*/
|
452 |
'slider' => [
|
453 |
'fields' => [],
|
454 |
+
'integration-class' => [
|
455 |
+
__NAMESPACE__ . '\\WPML_Slider',
|
456 |
+
]
|
457 |
],
|
458 |
|
459 |
/**
|
461 |
*/
|
462 |
'social-icons' => [
|
463 |
'fields' => [],
|
464 |
+
'integration-class' => [
|
465 |
+
__NAMESPACE__ . '\\WPML_Social_Icons',
|
466 |
+
]
|
467 |
],
|
468 |
|
469 |
/**
|
534 |
],
|
535 |
],
|
536 |
],
|
537 |
+
|
538 |
+
/**
|
539 |
+
* Data table
|
540 |
+
*/
|
541 |
+
'data-table' => [
|
542 |
+
'fields' => [],
|
543 |
+
'integration-class' => [
|
544 |
+
__NAMESPACE__ . '\\WPML_Data_Table_Column_Data',
|
545 |
+
__NAMESPACE__ . '\\WPML_Data_Table_Row_Data',
|
546 |
+
]
|
547 |
+
],
|
548 |
+
|
549 |
+
/**
|
550 |
+
* Horizontal Timeline
|
551 |
+
*/
|
552 |
+
'horizontal-timeline' => [
|
553 |
+
'fields' => [],
|
554 |
+
'integration-class' => [
|
555 |
+
__NAMESPACE__ . '\\WPML_Horizontal_Timeline',
|
556 |
+
]
|
557 |
+
],
|
558 |
];
|
559 |
|
560 |
foreach ( $widgets_map as $key => $data ) {
|
controls/foreground.php
CHANGED
@@ -1,252 +1,252 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Foreground control class
|
4 |
-
*
|
5 |
-
* @package Happy_Addons
|
6 |
-
*/
|
7 |
-
namespace Happy_Addons\Elementor\Controls;
|
8 |
-
|
9 |
-
use Elementor\Group_Control_Base;
|
10 |
-
use Elementor\Controls_Manager;
|
11 |
-
|
12 |
-
defined( 'ABSPATH' ) || die();
|
13 |
-
|
14 |
-
class Group_Control_Foreground extends Group_Control_Base {
|
15 |
-
|
16 |
-
/**
|
17 |
-
* Fields.
|
18 |
-
*
|
19 |
-
* Holds all the background control fields.
|
20 |
-
*
|
21 |
-
* @access protected
|
22 |
-
* @static
|
23 |
-
*
|
24 |
-
* @var array Background control fields.
|
25 |
-
*/
|
26 |
-
protected static $fields;
|
27 |
-
|
28 |
-
/**
|
29 |
-
* Get background control type.
|
30 |
-
*
|
31 |
-
* Retrieve the control type, in this case `ha_text_color`.
|
32 |
-
*
|
33 |
-
* @since 1.0.0
|
34 |
-
* @access public
|
35 |
-
* @static
|
36 |
-
*
|
37 |
-
* @return string Control type.
|
38 |
-
*/
|
39 |
-
public static function get_type() {
|
40 |
-
return 'foreground';
|
41 |
-
}
|
42 |
-
|
43 |
-
/**
|
44 |
-
* Init fields.
|
45 |
-
*
|
46 |
-
* Initialize background control fields.
|
47 |
-
*
|
48 |
-
* @since 1.2.2
|
49 |
-
* @access public
|
50 |
-
*
|
51 |
-
* @return array Control fields.
|
52 |
-
*/
|
53 |
-
public function init_fields() {
|
54 |
-
$fields = [];
|
55 |
-
|
56 |
-
$fields['color_type'] = [
|
57 |
-
'label' => _x( 'Text Color', 'Background Control', 'happy-elementor-addons' ),
|
58 |
-
'type' => Controls_Manager::CHOOSE,
|
59 |
-
'label_block' => false,
|
60 |
-
'render_type' => 'ui',
|
61 |
-
'options' => [
|
62 |
-
'classic' => [
|
63 |
-
'title' => _x( 'Classic', 'Text Color Control', 'happy-elementor-addons' ),
|
64 |
-
'icon' => 'fa fa-paint-brush',
|
65 |
-
],
|
66 |
-
'gradient' => [
|
67 |
-
'title' => _x( 'Gradient', 'Text Color Control', 'happy-elementor-addons' ),
|
68 |
-
'icon' => 'fa fa-barcode',
|
69 |
-
],
|
70 |
-
],
|
71 |
-
'default' => 'classic'
|
72 |
-
];
|
73 |
-
|
74 |
-
$fields['color'] = [
|
75 |
-
'label' => _x( 'Color', 'Background Control', 'happy-elementor-addons' ),
|
76 |
-
'type' => Controls_Manager::COLOR,
|
77 |
-
'default' => '',
|
78 |
-
'title' => _x( 'Text Color', 'Background Control', 'happy-elementor-addons' ),
|
79 |
-
'selectors' => [
|
80 |
-
'{{SELECTOR}}' => 'color: {{VALUE}};',
|
81 |
-
],
|
82 |
-
'condition' => [
|
83 |
-
'color_type' => [ 'classic', 'gradient' ],
|
84 |
-
],
|
85 |
-
];
|
86 |
-
|
87 |
-
$fields['color_stop'] = [
|
88 |
-
'label' => _x( 'Location', 'Background Control', 'happy-elementor-addons' ),
|
89 |
-
'type' => Controls_Manager::SLIDER,
|
90 |
-
'size_units' => [ '%' ],
|
91 |
-
'default' => [
|
92 |
-
'unit' => '%',
|
93 |
-
'size' => 0,
|
94 |
-
],
|
95 |
-
'render_type' => 'ui',
|
96 |
-
'condition' => [
|
97 |
-
'color_type' => [ 'gradient' ],
|
98 |
-
],
|
99 |
-
'of_type' => 'gradient',
|
100 |
-
];
|
101 |
-
|
102 |
-
$fields['color_b'] = [
|
103 |
-
'label' => _x( 'Second Color', 'Background Control', 'happy-elementor-addons' ),
|
104 |
-
'type' => Controls_Manager::COLOR,
|
105 |
-
'default' => '#f2295b',
|
106 |
-
'render_type' => 'ui',
|
107 |
-
'condition' => [
|
108 |
-
'color_type' => [ 'gradient' ],
|
109 |
-
],
|
110 |
-
'of_type' => 'gradient',
|
111 |
-
];
|
112 |
-
|
113 |
-
$fields['color_b_stop'] = [
|
114 |
-
'label' => _x( 'Location', 'Background Control', 'happy-elementor-addons' ),
|
115 |
-
'type' => Controls_Manager::SLIDER,
|
116 |
-
'size_units' => [ '%' ],
|
117 |
-
'default' => [
|
118 |
-
'unit' => '%',
|
119 |
-
'size' => 100,
|
120 |
-
],
|
121 |
-
'render_type' => 'ui',
|
122 |
-
'condition' => [
|
123 |
-
'color_type' => [ 'gradient' ],
|
124 |
-
],
|
125 |
-
'of_type' => 'gradient',
|
126 |
-
];
|
127 |
-
|
128 |
-
$fields['gradient_type'] = [
|
129 |
-
'label' => _x( 'Type', 'Background Control', 'happy-elementor-addons' ),
|
130 |
-
'type' => Controls_Manager::SELECT,
|
131 |
-
'options' => [
|
132 |
-
'linear' => _x( 'Linear', 'Background Control', 'happy-elementor-addons' ),
|
133 |
-
'radial' => _x( 'Radial', 'Background Control', 'happy-elementor-addons' ),
|
134 |
-
],
|
135 |
-
'default' => 'linear',
|
136 |
-
'render_type' => 'ui',
|
137 |
-
'condition' => [
|
138 |
-
'color_type' => [ 'gradient' ],
|
139 |
-
],
|
140 |
-
'of_type' => 'gradient',
|
141 |
-
];
|
142 |
-
|
143 |
-
$fields['gradient_angle'] = [
|
144 |
-
'label' => _x( 'Angle', 'Background Control', 'happy-elementor-addons' ),
|
145 |
-
'type' => Controls_Manager::SLIDER,
|
146 |
-
'size_units' => [ 'deg' ],
|
147 |
-
'default' => [
|
148 |
-
'unit' => 'deg',
|
149 |
-
'size' => 180,
|
150 |
-
],
|
151 |
-
'range' => [
|
152 |
-
'deg' => [
|
153 |
-
'step' => 10,
|
154 |
-
],
|
155 |
-
],
|
156 |
-
'selectors' => [
|
157 |
-
'{{SELECTOR}}' => '-webkit-background-clip: text; -webkit-text-fill-color: transparent; background-color: transparent; background-image: linear-gradient({{SIZE}}{{UNIT}}, {{color.VALUE}} {{color_stop.SIZE}}{{color_stop.UNIT}}, {{color_b.VALUE}} {{color_b_stop.SIZE}}{{color_b_stop.UNIT}})',
|
158 |
-
],
|
159 |
-
'condition' => [
|
160 |
-
'color_type' => [ 'gradient' ],
|
161 |
-
'gradient_type' => 'linear',
|
162 |
-
],
|
163 |
-
'of_type' => 'gradient',
|
164 |
-
];
|
165 |
-
|
166 |
-
$fields['gradient_position'] = [
|
167 |
-
'label' => _x( 'Position', 'Background Control', 'happy-elementor-addons' ),
|
168 |
-
'type' => Controls_Manager::SELECT,
|
169 |
-
'options' => [
|
170 |
-
'center center' => _x( 'Center Center', 'Background Control', 'happy-elementor-addons' ),
|
171 |
-
'center left' => _x( 'Center Left', 'Background Control', 'happy-elementor-addons' ),
|
172 |
-
'center right' => _x( 'Center Right', 'Background Control', 'happy-elementor-addons' ),
|
173 |
-
'top center' => _x( 'Top Center', 'Background Control', 'happy-elementor-addons' ),
|
174 |
-
'top left' => _x( 'Top Left', 'Background Control', 'happy-elementor-addons' ),
|
175 |
-
'top right' => _x( 'Top Right', 'Background Control', 'happy-elementor-addons' ),
|
176 |
-
'bottom center' => _x( 'Bottom Center', 'Background Control', 'happy-elementor-addons' ),
|
177 |
-
'bottom left' => _x( 'Bottom Left', 'Background Control', 'happy-elementor-addons' ),
|
178 |
-
'bottom right' => _x( 'Bottom Right', 'Background Control', 'happy-elementor-addons' ),
|
179 |
-
],
|
180 |
-
'default' => 'center center',
|
181 |
-
'selectors' => [
|
182 |
-
'{{SELECTOR}}' => '-webkit-background-clip: text; -webkit-text-fill-color: transparent; background-color: transparent; background-image: radial-gradient(at {{VALUE}}, {{color.VALUE}} {{color_stop.SIZE}}{{color_stop.UNIT}}, {{color_b.VALUE}} {{color_b_stop.SIZE}}{{color_b_stop.UNIT}})',
|
183 |
-
],
|
184 |
-
'condition' => [
|
185 |
-
'color_type' => [ 'gradient' ],
|
186 |
-
'gradient_type' => 'radial',
|
187 |
-
],
|
188 |
-
'of_type' => 'gradient',
|
189 |
-
];
|
190 |
-
|
191 |
-
return $fields;
|
192 |
-
}
|
193 |
-
|
194 |
-
/**
|
195 |
-
* Get child default args.
|
196 |
-
*
|
197 |
-
* Retrieve the default arguments for all the child controls for a specific group
|
198 |
-
* control.
|
199 |
-
*
|
200 |
-
* @since 1.2.2
|
201 |
-
* @access protected
|
202 |
-
*
|
203 |
-
* @return array Default arguments for all the child controls.
|
204 |
-
*/
|
205 |
-
protected function get_child_default_args() {
|
206 |
-
return [
|
207 |
-
'types' => [ 'classic', 'gradient' ],
|
208 |
-
];
|
209 |
-
}
|
210 |
-
|
211 |
-
/**
|
212 |
-
* Filter fields.
|
213 |
-
*
|
214 |
-
* Filter which controls to display, using `include`, `exclude`, `condition`
|
215 |
-
* and `of_type` arguments.
|
216 |
-
*
|
217 |
-
* @since 1.2.2
|
218 |
-
* @access protected
|
219 |
-
*
|
220 |
-
* @return array Control fields.
|
221 |
-
*/
|
222 |
-
protected function filter_fields() {
|
223 |
-
$fields = parent::filter_fields();
|
224 |
-
|
225 |
-
$args = $this->get_args();
|
226 |
-
|
227 |
-
foreach ( $fields as &$field ) {
|
228 |
-
if ( isset( $field['of_type'] ) && ! in_array( $field['of_type'], $args['types'] ) ) {
|
229 |
-
unset( $field );
|
230 |
-
}
|
231 |
-
}
|
232 |
-
|
233 |
-
return $fields;
|
234 |
-
}
|
235 |
-
|
236 |
-
/**
|
237 |
-
* Get default options.
|
238 |
-
*
|
239 |
-
* Retrieve the default options of the background control. Used to return the
|
240 |
-
* default options while initializing the background control.
|
241 |
-
*
|
242 |
-
* @since 1.9.0
|
243 |
-
* @access protected
|
244 |
-
*
|
245 |
-
* @return array Default background control options.
|
246 |
-
*/
|
247 |
-
protected function get_default_options() {
|
248 |
-
return [
|
249 |
-
'popover' => false,
|
250 |
-
];
|
251 |
-
}
|
252 |
-
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Foreground control class
|
4 |
+
*
|
5 |
+
* @package Happy_Addons
|
6 |
+
*/
|
7 |
+
namespace Happy_Addons\Elementor\Controls;
|
8 |
+
|
9 |
+
use Elementor\Group_Control_Base;
|
10 |
+
use Elementor\Controls_Manager;
|
11 |
+
|
12 |
+
defined( 'ABSPATH' ) || die();
|
13 |
+
|
14 |
+
class Group_Control_Foreground extends Group_Control_Base {
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Fields.
|
18 |
+
*
|
19 |
+
* Holds all the background control fields.
|
20 |
+
*
|
21 |
+
* @access protected
|
22 |
+
* @static
|
23 |
+
*
|
24 |
+
* @var array Background control fields.
|
25 |
+
*/
|
26 |
+
protected static $fields;
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Get background control type.
|
30 |
+
*
|
31 |
+
* Retrieve the control type, in this case `ha_text_color`.
|
32 |
+
*
|
33 |
+
* @since 1.0.0
|
34 |
+
* @access public
|
35 |
+
* @static
|
36 |
+
*
|
37 |
+
* @return string Control type.
|
38 |
+
*/
|
39 |
+
public static function get_type() {
|
40 |
+
return 'foreground';
|
41 |
+
}
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Init fields.
|
45 |
+
*
|
46 |
+
* Initialize background control fields.
|
47 |
+
*
|
48 |
+
* @since 1.2.2
|
49 |
+
* @access public
|
50 |
+
*
|
51 |
+
* @return array Control fields.
|
52 |
+
*/
|
53 |
+
public function init_fields() {
|
54 |
+
$fields = [];
|
55 |
+
|
56 |
+
$fields['color_type'] = [
|
57 |
+
'label' => _x( 'Text Color', 'Background Control', 'happy-elementor-addons' ),
|
58 |
+
'type' => Controls_Manager::CHOOSE,
|
59 |
+
'label_block' => false,
|
60 |
+
'render_type' => 'ui',
|
61 |
+
'options' => [
|
62 |
+
'classic' => [
|
63 |
+
'title' => _x( 'Classic', 'Text Color Control', 'happy-elementor-addons' ),
|
64 |
+
'icon' => 'fa fa-paint-brush',
|
65 |
+
],
|
66 |
+
'gradient' => [
|
67 |
+
'title' => _x( 'Gradient', 'Text Color Control', 'happy-elementor-addons' ),
|
68 |
+
'icon' => 'fa fa-barcode',
|
69 |
+
],
|
70 |
+
],
|
71 |
+
'default' => 'classic'
|
72 |
+
];
|
73 |
+
|
74 |
+
$fields['color'] = [
|
75 |
+
'label' => _x( 'Color', 'Background Control', 'happy-elementor-addons' ),
|
76 |
+
'type' => Controls_Manager::COLOR,
|
77 |
+
'default' => '',
|
78 |
+
'title' => _x( 'Text Color', 'Background Control', 'happy-elementor-addons' ),
|
79 |
+
'selectors' => [
|
80 |
+
'{{SELECTOR}}' => 'color: {{VALUE}};',
|
81 |
+
],
|
82 |
+
'condition' => [
|
83 |
+
'color_type' => [ 'classic', 'gradient' ],
|
84 |
+
],
|
85 |
+
];
|
86 |
+
|
87 |
+
$fields['color_stop'] = [
|
88 |
+
'label' => _x( 'Location', 'Background Control', 'happy-elementor-addons' ),
|
89 |
+
'type' => Controls_Manager::SLIDER,
|
90 |
+
'size_units' => [ '%' ],
|
91 |
+
'default' => [
|
92 |
+
'unit' => '%',
|
93 |
+
'size' => 0,
|
94 |
+
],
|
95 |
+
'render_type' => 'ui',
|
96 |
+
'condition' => [
|
97 |
+
'color_type' => [ 'gradient' ],
|
98 |
+
],
|
99 |
+
'of_type' => 'gradient',
|
100 |
+
];
|
101 |
+
|
102 |
+
$fields['color_b'] = [
|
103 |
+
'label' => _x( 'Second Color', 'Background Control', 'happy-elementor-addons' ),
|
104 |
+
'type' => Controls_Manager::COLOR,
|
105 |
+
'default' => '#f2295b',
|
106 |
+
'render_type' => 'ui',
|
107 |
+
'condition' => [
|
108 |
+
'color_type' => [ 'gradient' ],
|
109 |
+
],
|
110 |
+
'of_type' => 'gradient',
|
111 |
+
];
|
112 |
+
|
113 |
+
$fields['color_b_stop'] = [
|
114 |
+
'label' => _x( 'Location', 'Background Control', 'happy-elementor-addons' ),
|
115 |
+
'type' => Controls_Manager::SLIDER,
|
116 |
+
'size_units' => [ '%' ],
|
117 |
+
'default' => [
|
118 |
+
'unit' => '%',
|
119 |
+
'size' => 100,
|
120 |
+
],
|
121 |
+
'render_type' => 'ui',
|
122 |
+
'condition' => [
|
123 |
+
'color_type' => [ 'gradient' ],
|
124 |
+
],
|
125 |
+
'of_type' => 'gradient',
|
126 |
+
];
|
127 |
+
|
128 |
+
$fields['gradient_type'] = [
|
129 |
+
'label' => _x( 'Type', 'Background Control', 'happy-elementor-addons' ),
|
130 |
+
'type' => Controls_Manager::SELECT,
|
131 |
+
'options' => [
|
132 |
+
'linear' => _x( 'Linear', 'Background Control', 'happy-elementor-addons' ),
|
133 |
+
'radial' => _x( 'Radial', 'Background Control', 'happy-elementor-addons' ),
|
134 |
+
],
|
135 |
+
'default' => 'linear',
|
136 |
+
'render_type' => 'ui',
|
137 |
+
'condition' => [
|
138 |
+
'color_type' => [ 'gradient' ],
|
139 |
+
],
|
140 |
+
'of_type' => 'gradient',
|
141 |
+
];
|
142 |
+
|
143 |
+
$fields['gradient_angle'] = [
|
144 |
+
'label' => _x( 'Angle', 'Background Control', 'happy-elementor-addons' ),
|
145 |
+
'type' => Controls_Manager::SLIDER,
|
146 |
+
'size_units' => [ 'deg' ],
|
147 |
+
'default' => [
|
148 |
+
'unit' => 'deg',
|
149 |
+
'size' => 180,
|
150 |
+
],
|
151 |
+
'range' => [
|
152 |
+
'deg' => [
|
153 |
+
'step' => 10,
|
154 |
+
],
|
155 |
+
],
|
156 |
+
'selectors' => [
|
157 |
+
'{{SELECTOR}}' => '-webkit-background-clip: text; -webkit-text-fill-color: transparent; background-color: transparent; background-image: linear-gradient({{SIZE}}{{UNIT}}, {{color.VALUE}} {{color_stop.SIZE}}{{color_stop.UNIT}}, {{color_b.VALUE}} {{color_b_stop.SIZE}}{{color_b_stop.UNIT}})',
|
158 |
+
],
|
159 |
+
'condition' => [
|
160 |
+
'color_type' => [ 'gradient' ],
|
161 |
+
'gradient_type' => 'linear',
|
162 |
+
],
|
163 |
+
'of_type' => 'gradient',
|
164 |
+
];
|
165 |
+
|
166 |
+
$fields['gradient_position'] = [
|
167 |
+
'label' => _x( 'Position', 'Background Control', 'happy-elementor-addons' ),
|
168 |
+
'type' => Controls_Manager::SELECT,
|
169 |
+
'options' => [
|
170 |
+
'center center' => _x( 'Center Center', 'Background Control', 'happy-elementor-addons' ),
|
171 |
+
'center left' => _x( 'Center Left', 'Background Control', 'happy-elementor-addons' ),
|
172 |
+
'center right' => _x( 'Center Right', 'Background Control', 'happy-elementor-addons' ),
|
173 |
+
'top center' => _x( 'Top Center', 'Background Control', 'happy-elementor-addons' ),
|
174 |
+
'top left' => _x( 'Top Left', 'Background Control', 'happy-elementor-addons' ),
|
175 |
+
'top right' => _x( 'Top Right', 'Background Control', 'happy-elementor-addons' ),
|
176 |
+
'bottom center' => _x( 'Bottom Center', 'Background Control', 'happy-elementor-addons' ),
|
177 |
+
'bottom left' => _x( 'Bottom Left', 'Background Control', 'happy-elementor-addons' ),
|
178 |
+
'bottom right' => _x( 'Bottom Right', 'Background Control', 'happy-elementor-addons' ),
|
179 |
+
],
|
180 |
+
'default' => 'center center',
|
181 |
+
'selectors' => [
|
182 |
+
'{{SELECTOR}}' => '-webkit-background-clip: text; -webkit-text-fill-color: transparent; background-color: transparent; background-image: radial-gradient(at {{VALUE}}, {{color.VALUE}} {{color_stop.SIZE}}{{color_stop.UNIT}}, {{color_b.VALUE}} {{color_b_stop.SIZE}}{{color_b_stop.UNIT}})',
|
183 |
+
],
|
184 |
+
'condition' => [
|
185 |
+
'color_type' => [ 'gradient' ],
|
186 |
+
'gradient_type' => 'radial',
|
187 |
+
],
|
188 |
+
'of_type' => 'gradient',
|
189 |
+
];
|
190 |
+
|
191 |
+
return $fields;
|
192 |
+
}
|
193 |
+
|
194 |
+
/**
|
195 |
+
* Get child default args.
|
196 |
+
*
|
197 |
+
* Retrieve the default arguments for all the child controls for a specific group
|
198 |
+
* control.
|
199 |
+
*
|
200 |
+
* @since 1.2.2
|
201 |
+
* @access protected
|
202 |
+
*
|
203 |
+
* @return array Default arguments for all the child controls.
|
204 |
+
*/
|
205 |
+
protected function get_child_default_args() {
|
206 |
+
return [
|
207 |
+
'types' => [ 'classic', 'gradient' ],
|
208 |
+
];
|
209 |
+
}
|
210 |
+
|
211 |
+
/**
|
212 |
+
* Filter fields.
|
213 |
+
*
|
214 |
+
* Filter which controls to display, using `include`, `exclude`, `condition`
|
215 |
+
* and `of_type` arguments.
|
216 |
+
*
|
217 |
+
* @since 1.2.2
|
218 |
+
* @access protected
|
219 |
+
*
|
220 |
+
* @return array Control fields.
|
221 |
+
*/
|
222 |
+
protected function filter_fields() {
|
223 |
+
$fields = parent::filter_fields();
|
224 |
+
|
225 |
+
$args = $this->get_args();
|
226 |
+
|
227 |
+
foreach ( $fields as &$field ) {
|
228 |
+
if ( isset( $field['of_type'] ) && ! in_array( $field['of_type'], $args['types'] ) ) {
|
229 |
+
unset( $field );
|
230 |
+
}
|
231 |
+
}
|
232 |
+
|
233 |
+
return $fields;
|
234 |
+
}
|
235 |
+
|
236 |
+
/**
|
237 |
+
* Get default options.
|
238 |
+
*
|
239 |
+
* Retrieve the default options of the background control. Used to return the
|
240 |
+
* default options while initializing the background control.
|
241 |
+
*
|
242 |
+
* @since 1.9.0
|
243 |
+
* @access protected
|
244 |
+
*
|
245 |
+
* @return array Default background control options.
|
246 |
+
*/
|
247 |
+
protected function get_default_options() {
|
248 |
+
return [
|
249 |
+
'popover' => false,
|
250 |
+
];
|
251 |
+
}
|
252 |
+
}
|
controls/text-stroke.php
ADDED
@@ -0,0 +1,97 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Text stroke control class
|
4 |
+
*
|
5 |
+
* @package Happy_Addons
|
6 |
+
*/
|
7 |
+
namespace Happy_Addons\Elementor\Controls;
|
8 |
+
|
9 |
+
use Elementor\Group_Control_Base;
|
10 |
+
use Elementor\Controls_Manager;
|
11 |
+
|
12 |
+
defined( 'ABSPATH' ) || die();
|
13 |
+
|
14 |
+
class Group_Control_Text_Stroke extends Group_Control_Base {
|
15 |
+
|
16 |
+
/**
|
17 |
+
* Fields.
|
18 |
+
*
|
19 |
+
* Holds all the background control fields.
|
20 |
+
*
|
21 |
+
* @access protected
|
22 |
+
* @static
|
23 |
+
*
|
24 |
+
* @var array Background control fields.
|
25 |
+
*/
|
26 |
+
protected static $fields;
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Get background control type.
|
30 |
+
*
|
31 |
+
* Retrieve the control type, in this case `ha_text_color`.
|
32 |
+
*
|
33 |
+
* @since 1.0.0
|
34 |
+
* @access public
|
35 |
+
* @static
|
36 |
+
*
|
37 |
+
* @return string Control type.
|
38 |
+
*/
|
39 |
+
public static function get_type() {
|
40 |
+
return 'ha-text-stroke';
|
41 |
+
}
|
42 |
+
|
43 |
+
/**
|
44 |
+
* Init fields.
|
45 |
+
*
|
46 |
+
* Initialize background control fields.
|
47 |
+
*
|
48 |
+
* @since 1.2.2
|
49 |
+
* @access public
|
50 |
+
*
|
51 |
+
* @return array Control fields.
|
52 |
+
*/
|
53 |
+
public function init_fields() {
|
54 |
+
$fields = [];
|
55 |
+
|
56 |
+
$fields['color'] = [
|
57 |
+
'label' => _x( 'Stroke Color', 'Text Stroke', 'happy-elementor-addons' ),
|
58 |
+
'type' => Controls_Manager::COLOR,
|
59 |
+
'render_type' => 'ui',
|
60 |
+
];
|
61 |
+
|
62 |
+
$fields['width'] = [
|
63 |
+
'label' => _x( 'Stroke Width', 'Text Stroke', 'happy-elementor-addons' ),
|
64 |
+
'type' => Controls_Manager::SLIDER,
|
65 |
+
'responsive' => true,
|
66 |
+
'size_units' => [ 'px', 'em' ],
|
67 |
+
'selectors' => [
|
68 |
+
'{{SELECTOR}}' => '-webkit-text-stroke: {{SIZE}}{{UNIT}} {{color.VALUE}}; text-stroke: {{SIZE}}{{UNIT}} {{color.VALUE}};',
|
69 |
+
],
|
70 |
+
];
|
71 |
+
|
72 |
+
return $fields;
|
73 |
+
}
|
74 |
+
|
75 |
+
/**
|
76 |
+
* Get default options.
|
77 |
+
*
|
78 |
+
* Retrieve the default options of the background control. Used to return the
|
79 |
+
* default options while initializing the background control.
|
80 |
+
*
|
81 |
+
* @since 1.9.0
|
82 |
+
* @access protected
|
83 |
+
*
|
84 |
+
* @return array Default background control options.
|
85 |
+
*/
|
86 |
+
protected function get_default_options() {
|
87 |
+
return [
|
88 |
+
'popover' => [
|
89 |
+
'starter_name' => 'ha-text-stroke',
|
90 |
+
'starter_title' => _x( 'Text Stroke ', 'Text Stroke', 'happy-elementor-addons' ) . ' <i style="color: #d5dadf;" class="hm hm-happyaddons"></i>',
|
91 |
+
'settings' => [
|
92 |
+
'render_type' => 'ui',
|
93 |
+
],
|
94 |
+
],
|
95 |
+
];
|
96 |
+
}
|
97 |
+
}
|
extensions/shape-divider.php
CHANGED
@@ -84,10 +84,10 @@ class Shape_Divider {
|
|
84 |
*/
|
85 |
public static function additional_shape_divider( $shape_list ) {
|
86 |
$shape_list = [
|
87 |
-
'
|
88 |
-
'title' => _x( '
|
89 |
-
'path' => HAPPY_ADDONS_DIR_PATH . 'assets/imgs/shape-divider/
|
90 |
-
'url' => HAPPY_ADDONS_ASSETS . 'imgs/shape-divider/
|
91 |
'has_flip' => true,
|
92 |
'has_negative' => false,
|
93 |
'ha_shape' => true,
|
@@ -140,10 +140,10 @@ class Shape_Divider {
|
|
140 |
'has_negative' => false,
|
141 |
'ha_shape' => true,
|
142 |
],
|
143 |
-
'multi-
|
144 |
-
'title' => _x( 'Multi
|
145 |
-
'path' => HAPPY_ADDONS_DIR_PATH . 'assets/imgs/shape-divider/multi-
|
146 |
-
'url' => HAPPY_ADDONS_ASSETS . 'imgs/shape-divider/multi-
|
147 |
'has_flip' => true,
|
148 |
'has_negative' => false,
|
149 |
'ha_shape' => true,
|
84 |
*/
|
85 |
public static function additional_shape_divider( $shape_list ) {
|
86 |
$shape_list = [
|
87 |
+
'abstract-web' => [
|
88 |
+
'title' => _x( 'Abstract Web', 'Shapes', 'happy-elementor-addons' ),
|
89 |
+
'path' => HAPPY_ADDONS_DIR_PATH . 'assets/imgs/shape-divider/abstract-web.svg',
|
90 |
+
'url' => HAPPY_ADDONS_ASSETS . 'imgs/shape-divider/abstract-web.svg',
|
91 |
'has_flip' => true,
|
92 |
'has_negative' => false,
|
93 |
'ha_shape' => true,
|
140 |
'has_negative' => false,
|
141 |
'ha_shape' => true,
|
142 |
],
|
143 |
+
'multi-wave' => [
|
144 |
+
'title' => _x( 'Multi Wave', 'Shapes', 'happy-elementor-addons' ),
|
145 |
+
'path' => HAPPY_ADDONS_DIR_PATH . 'assets/imgs/shape-divider/multi-wave.svg',
|
146 |
+
'url' => HAPPY_ADDONS_ASSETS . 'imgs/shape-divider/multi-wave.svg',
|
147 |
'has_flip' => true,
|
148 |
'has_negative' => false,
|
149 |
'ha_shape' => true,
|
extensions/widgets-extended.php
CHANGED
@@ -8,159 +8,211 @@ namespace Happy_Addons\Elementor\Extension;
|
|
8 |
|
9 |
use Elementor\Controls_Manager;
|
10 |
use Elementor\Widget_Base;
|
|
|
11 |
|
12 |
defined('ABSPATH') || die();
|
13 |
|
14 |
class Widgets_Extended {
|
15 |
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
164 |
}
|
165 |
|
166 |
Widgets_Extended::init();
|
8 |
|
9 |
use Elementor\Controls_Manager;
|
10 |
use Elementor\Widget_Base;
|
11 |
+
use Happy_Addons\Elementor\Controls\Group_Control_Text_Stroke;
|
12 |
|
13 |
defined('ABSPATH') || die();
|
14 |
|
15 |
class Widgets_Extended {
|
16 |
|
17 |
+
public static function init() {
|
18 |
+
add_action( 'elementor/element/button/section_style/after_section_start', [ __CLASS__, 'add_button_controls' ] );
|
19 |
+
|
20 |
+
add_action( 'elementor/element/heading/section_title_style/after_section_end', [ __CLASS__, 'add_text_stroke' ] );
|
21 |
+
add_action( 'elementor/element/theme-page-title/section_title_style/after_section_end', [ __CLASS__, 'add_text_stroke' ] );
|
22 |
+
add_action( 'elementor/element/theme-site-title/section_title_style/after_section_end', [ __CLASS__, 'add_text_stroke' ] );
|
23 |
+
add_action( 'elementor/element/theme-post-title/section_title_style/after_section_end', [ __CLASS__, 'add_text_stroke' ] );
|
24 |
+
add_action( 'elementor/element/woocommerce-product-title/section_title_style/after_section_end', [ __CLASS__, 'add_text_stroke' ] );
|
25 |
+
|
26 |
+
add_action( 'elementor/element/animated-headline/section_style_text/after_section_end', [ __CLASS__, 'add_text_stroke' ] );
|
27 |
+
|
28 |
+
add_action( 'elementor/element/ha-gradient-heading/_section_style_title/after_section_end', [ __CLASS__, 'add_text_stroke' ] );
|
29 |
+
}
|
30 |
+
|
31 |
+
public static function add_text_stroke( Widget_Base $widget ) {
|
32 |
+
$common = [
|
33 |
+
'of' => 'blend_mode',
|
34 |
+
'target' => '.elementor-heading-title',
|
35 |
+
];
|
36 |
+
|
37 |
+
$map = [
|
38 |
+
'heading' => $common,
|
39 |
+
'theme-page-title' => $common,
|
40 |
+
'theme-site-title' => $common,
|
41 |
+
'theme-post-title' => $common,
|
42 |
+
'woocommerce-product-title' => $common,
|
43 |
+
'animated-headline' => [
|
44 |
+
'of' => 'title_color',
|
45 |
+
'target' => '.elementor-headline',
|
46 |
+
],
|
47 |
+
'ha-gradient-heading' => [
|
48 |
+
'of' => 'blend_mode',
|
49 |
+
'target' => '.ha-gradient-heading',
|
50 |
+
],
|
51 |
+
];
|
52 |
+
|
53 |
+
$of = $map[ $widget->get_name() ]['of'];
|
54 |
+
$target = $map[ $widget->get_name() ]['target'];
|
55 |
+
|
56 |
+
$widget->start_injection( [
|
57 |
+
'at' => 'after',
|
58 |
+
'of' => $of,
|
59 |
+
] );
|
60 |
+
|
61 |
+
$widget->add_group_control(
|
62 |
+
Group_Control_Text_Stroke::get_type(),
|
63 |
+
[
|
64 |
+
'name' => 'text_stroke',
|
65 |
+
'selector' => '{{WRAPPER}} ' . $target,
|
66 |
+
]
|
67 |
+
);
|
68 |
+
|
69 |
+
$widget->end_injection();
|
70 |
+
}
|
71 |
+
|
72 |
+
public static function add_button_controls( Widget_Base $widget ) {
|
73 |
+
$widget->add_control(
|
74 |
+
'ha_fixed_size_toggle',
|
75 |
+
[
|
76 |
+
'label' => __( 'Fixed Size', 'happy-elementor-addons' ),
|
77 |
+
'type' => Controls_Manager::POPOVER_TOGGLE,
|
78 |
+
'return_value' => 'yes',
|
79 |
+
]
|
80 |
+
);
|
81 |
+
|
82 |
+
$widget->start_popover();
|
83 |
+
|
84 |
+
$widget->add_responsive_control(
|
85 |
+
'ha_height',
|
86 |
+
[
|
87 |
+
'label' => __( 'Height', 'happy-elementor-addons' ),
|
88 |
+
'type' => Controls_Manager::SLIDER,
|
89 |
+
'default' => [
|
90 |
+
'unit' => 'px',
|
91 |
+
],
|
92 |
+
'range' => [
|
93 |
+
'px' => [
|
94 |
+
'max' => 500,
|
95 |
+
]
|
96 |
+
],
|
97 |
+
'selectors' => [
|
98 |
+
'{{WRAPPER}} .elementor-button' => 'height: {{SIZE}}{{UNIT}};'
|
99 |
+
],
|
100 |
+
'condition' => [
|
101 |
+
'ha_fixed_size_toggle' => 'yes',
|
102 |
+
]
|
103 |
+
]
|
104 |
+
);
|
105 |
+
|
106 |
+
$widget->add_responsive_control(
|
107 |
+
'ha_width',
|
108 |
+
[
|
109 |
+
'label' => __( 'Width', 'happy-elementor-addons' ),
|
110 |
+
'type' => Controls_Manager::SLIDER,
|
111 |
+
'default' => [
|
112 |
+
'unit' => 'px',
|
113 |
+
],
|
114 |
+
'range' => [
|
115 |
+
'px' => [
|
116 |
+
'max' => 500,
|
117 |
+
]
|
118 |
+
],
|
119 |
+
'selectors' => [
|
120 |
+
'{{WRAPPER}} .elementor-button' => 'width: {{SIZE}}{{UNIT}};'
|
121 |
+
],
|
122 |
+
'condition' => [
|
123 |
+
'ha_fixed_size_toggle' => 'yes',
|
124 |
+
]
|
125 |
+
]
|
126 |
+
);
|
127 |
+
|
128 |
+
$widget->add_control(
|
129 |
+
'ha_align_x',
|
130 |
+
[
|
131 |
+
'type' => Controls_Manager::CHOOSE,
|
132 |
+
'label' => __( 'Horizontal Align', 'happy-elementor-addons' ),
|
133 |
+
'default' => 'center',
|
134 |
+
'toggle' => false,
|
135 |
+
'options' => [
|
136 |
+
'left' => [
|
137 |
+
'title' => __( 'Left', 'happy-elementor-addons' ),
|
138 |
+
'icon' => 'eicon-h-align-left',
|
139 |
+
],
|
140 |
+
'center' => [
|
141 |
+
'title' => __( 'Center', 'happy-elementor-addons' ),
|
142 |
+
'icon' => 'eicon-h-align-center',
|
143 |
+
],
|
144 |
+
'right' => [
|
145 |
+
'title' => __( 'Right', 'happy-elementor-addons' ),
|
146 |
+
'icon' => 'eicon-h-align-right',
|
147 |
+
],
|
148 |
+
],
|
149 |
+
'selectors' => [
|
150 |
+
'{{WRAPPER}} .elementor-button' => '{{VALUE}}'
|
151 |
+
],
|
152 |
+
'selectors_dictionary' => [
|
153 |
+
'left' => '-webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start;',
|
154 |
+
'center' => '-webkit-box-pack: center; -ms-flex-pack: center; justify-content: center;',
|
155 |
+
'right' => '-webkit-box-pack: end; -ms-flex-pack: end; justify-content: flex-end;',
|
156 |
+
],
|
157 |
+
'condition' => [
|
158 |
+
'ha_fixed_size_toggle' => 'yes',
|
159 |
+
],
|
160 |
+
]
|
161 |
+
);
|
162 |
+
|
163 |
+
$widget->add_control(
|
164 |
+
'ha_align_y',
|
165 |
+
[
|
166 |
+
'type' => Controls_Manager::CHOOSE,
|
167 |
+
'label' => __( 'Vertical Align', 'happy-elementor-addons' ),
|
168 |
+
'default' => 'center',
|
169 |
+
'toggle' => false,
|
170 |
+
'options' => [
|
171 |
+
'top' => [
|
172 |
+
'title' => __( 'Top', 'happy-elementor-addons' ),
|
173 |
+
'icon' => 'eicon-v-align-top',
|
174 |
+
],
|
175 |
+
'center' => [
|
176 |
+
'title' => __( 'Center', 'happy-elementor-addons' ),
|
177 |
+
'icon' => 'eicon-v-align-middle',
|
178 |
+
],
|
179 |
+
'bottom' => [
|
180 |
+
'title' => __( 'Right', 'happy-elementor-addons' ),
|
181 |
+
'icon' => 'eicon-v-align-bottom',
|
182 |
+
],
|
183 |
+
],
|
184 |
+
'selectors' => [
|
185 |
+
'{{WRAPPER}} .elementor-button' => '{{VALUE}}',
|
186 |
+
],
|
187 |
+
'selectors_dictionary' => [
|
188 |
+
'top' => '-webkit-box-align: start; -ms-flex-align: start; align-items: flex-start;',
|
189 |
+
'center' => '-webkit-box-align: center; -ms-flex-align: center; align-items: center;',
|
190 |
+
'bottom' => '-webkit-box-align: end; -ms-flex-align: end; align-items: flex-end;',
|
191 |
+
],
|
192 |
+
'condition' => [
|
193 |
+
'ha_fixed_size_toggle' => 'yes',
|
194 |
+
],
|
195 |
+
]
|
196 |
+
);
|
197 |
+
|
198 |
+
$widget->add_control(
|
199 |
+
'ha_flex_display',
|
200 |
+
[
|
201 |
+
'type' => Controls_Manager::HIDDEN,
|
202 |
+
'default' => 'inline-flex',
|
203 |
+
'selectors' => [
|
204 |
+
'{{WRAPPER}} .elementor-button' => 'display: -webkit-inline-box; display: -ms-inline-flexbox; display: inline-flex;',
|
205 |
+
],
|
206 |
+
'condition' => [
|
207 |
+
'ha_fixed_size_toggle' => 'yes',
|
208 |
+
'ha_align_x!' => '',
|
209 |
+
'ha_align_y!' => '',
|
210 |
+
],
|
211 |
+
]
|
212 |
+
);
|
213 |
+
|
214 |
+
$widget->end_popover();
|
215 |
+
}
|
216 |
}
|
217 |
|
218 |
Widgets_Extended::init();
|
inc/functions.php
CHANGED
@@ -206,27 +206,92 @@ function ha_elementor() {
|
|
206 |
*/
|
207 |
function ha_get_allowed_html_tags( $level = 'basic' ) {
|
208 |
$allowed_html = [
|
209 |
-
'b' => [
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
'
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
'
|
220 |
-
|
221 |
-
|
222 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
223 |
'abbr' => [
|
224 |
'title' => [],
|
|
|
|
|
|
|
225 |
],
|
226 |
'span' => [
|
227 |
'class' => [],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
228 |
],
|
229 |
-
'strong' => [],
|
230 |
];
|
231 |
|
232 |
if ( $level === 'intermediate' ) {
|
@@ -236,29 +301,52 @@ function ha_get_allowed_html_tags( $level = 'basic' ) {
|
|
236 |
'title' => [],
|
237 |
'class' => [],
|
238 |
'id' => [],
|
|
|
239 |
],
|
240 |
'q' => [
|
241 |
'cite' => [],
|
|
|
|
|
|
|
242 |
],
|
243 |
'img' => [
|
244 |
'src' => [],
|
245 |
'alt' => [],
|
246 |
'height' => [],
|
247 |
'width' => [],
|
|
|
|
|
|
|
248 |
],
|
249 |
'dfn' => [
|
250 |
'title' => [],
|
|
|
|
|
|
|
251 |
],
|
252 |
'time' => [
|
253 |
'datetime' => [],
|
|
|
|
|
|
|
254 |
],
|
255 |
'cite' => [
|
256 |
'title' => [],
|
|
|
|
|
|
|
257 |
],
|
258 |
'acronym' => [
|
259 |
'title' => [],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
260 |
],
|
261 |
-
'hr' => [],
|
262 |
];
|
263 |
|
264 |
$allowed_html = array_merge( $allowed_html, $tags );
|
206 |
*/
|
207 |
function ha_get_allowed_html_tags( $level = 'basic' ) {
|
208 |
$allowed_html = [
|
209 |
+
'b' => [
|
210 |
+
'class' => [],
|
211 |
+
'id' => [],
|
212 |
+
'style' => []
|
213 |
+
],
|
214 |
+
'i' => [
|
215 |
+
'class' => [],
|
216 |
+
'id' => [],
|
217 |
+
'style' => []
|
218 |
+
],
|
219 |
+
'u' => [
|
220 |
+
'class' => [],
|
221 |
+
'id' => [],
|
222 |
+
'style' => []
|
223 |
+
],
|
224 |
+
's' => [
|
225 |
+
'class' => [],
|
226 |
+
'id' => [],
|
227 |
+
'style' => []
|
228 |
+
],
|
229 |
+
'br' => [
|
230 |
+
'class' => [],
|
231 |
+
'id' => [],
|
232 |
+
'style' => []
|
233 |
+
],
|
234 |
+
'em' => [
|
235 |
+
'class' => [],
|
236 |
+
'id' => [],
|
237 |
+
'style' => []
|
238 |
+
],
|
239 |
+
'del' => [
|
240 |
+
'class' => [],
|
241 |
+
'id' => [],
|
242 |
+
'style' => []
|
243 |
+
],
|
244 |
+
'ins' => [
|
245 |
+
'class' => [],
|
246 |
+
'id' => [],
|
247 |
+
'style' => []
|
248 |
+
],
|
249 |
+
'sub' => [
|
250 |
+
'class' => [],
|
251 |
+
'id' => [],
|
252 |
+
'style' => []
|
253 |
+
],
|
254 |
+
'sup' => [
|
255 |
+
'class' => [],
|
256 |
+
'id' => [],
|
257 |
+
'style' => []
|
258 |
+
],
|
259 |
+
'code' => [
|
260 |
+
'class' => [],
|
261 |
+
'id' => [],
|
262 |
+
'style' => []
|
263 |
+
],
|
264 |
+
'mark' => [
|
265 |
+
'class' => [],
|
266 |
+
'id' => [],
|
267 |
+
'style' => []
|
268 |
+
],
|
269 |
+
'small' => [
|
270 |
+
'class' => [],
|
271 |
+
'id' => [],
|
272 |
+
'style' => []
|
273 |
+
],
|
274 |
+
'strike' => [
|
275 |
+
'class' => [],
|
276 |
+
'id' => [],
|
277 |
+
'style' => []
|
278 |
+
],
|
279 |
'abbr' => [
|
280 |
'title' => [],
|
281 |
+
'class' => [],
|
282 |
+
'id' => [],
|
283 |
+
'style' => []
|
284 |
],
|
285 |
'span' => [
|
286 |
'class' => [],
|
287 |
+
'id' => [],
|
288 |
+
'style' => []
|
289 |
+
],
|
290 |
+
'strong' => [
|
291 |
+
'class' => [],
|
292 |
+
'id' => [],
|
293 |
+
'style' => []
|
294 |
],
|
|
|
295 |
];
|
296 |
|
297 |
if ( $level === 'intermediate' ) {
|
301 |
'title' => [],
|
302 |
'class' => [],
|
303 |
'id' => [],
|
304 |
+
'style' => []
|
305 |
],
|
306 |
'q' => [
|
307 |
'cite' => [],
|
308 |
+
'class' => [],
|
309 |
+
'id' => [],
|
310 |
+
'style' => []
|
311 |
],
|
312 |
'img' => [
|
313 |
'src' => [],
|
314 |
'alt' => [],
|
315 |
'height' => [],
|
316 |
'width' => [],
|
317 |
+
'class' => [],
|
318 |
+
'id' => [],
|
319 |
+
'style' => []
|
320 |
],
|
321 |
'dfn' => [
|
322 |
'title' => [],
|
323 |
+
'class' => [],
|
324 |
+
'id' => [],
|
325 |
+
'style' => []
|
326 |
],
|
327 |
'time' => [
|
328 |
'datetime' => [],
|
329 |
+
'class' => [],
|
330 |
+
'id' => [],
|
331 |
+
'style' => []
|
332 |
],
|
333 |
'cite' => [
|
334 |
'title' => [],
|
335 |
+
'class' => [],
|
336 |
+
'id' => [],
|
337 |
+
'style' => []
|
338 |
],
|
339 |
'acronym' => [
|
340 |
'title' => [],
|
341 |
+
'class' => [],
|
342 |
+
'id' => [],
|
343 |
+
'style' => []
|
344 |
+
],
|
345 |
+
'hr' => [
|
346 |
+
'class' => [],
|
347 |
+
'id' => [],
|
348 |
+
'style' => []
|
349 |
],
|
|
|
350 |
];
|
351 |
|
352 |
$allowed_html = array_merge( $allowed_html, $tags );
|
plugin.php
CHANGED
@@ -3,11 +3,11 @@
|
|
3 |
* Plugin Name: Happy Elementor Addons
|
4 |
* Plugin URI: https://happyaddons.com/
|
5 |
* Description: <a href="https://happyaddons.com/">HappyAddons</a> is a collection of slick, powerful widgets that works seamlessly with Elementor page builder. It’s trendy look with detail customization features allows to create extraordinary designs instantly. <a href="https://happyaddons.com/">HappyAddons</a> is free, rapidly growing and comes with great support.
|
6 |
-
* Version: 2.
|
7 |
* Author: weDevs
|
8 |
* Author URI: https://happyaddons.com/
|
9 |
-
* Elementor tested up to: 3.
|
10 |
-
* Elementor Pro tested up to: 3.0
|
11 |
* License: GPLv2
|
12 |
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
13 |
* Text Domain: happy-elementor-addons
|
@@ -36,7 +36,7 @@ Copyright 2019 HappyMonster <http://happymonster.me>
|
|
36 |
|
37 |
defined( 'ABSPATH' ) || die();
|
38 |
|
39 |
-
define( 'HAPPY_ADDONS_VERSION', '2.
|
40 |
define( 'HAPPY_ADDONS__FILE__', __FILE__ );
|
41 |
define( 'HAPPY_ADDONS_DIR_PATH', plugin_dir_path( HAPPY_ADDONS__FILE__ ) );
|
42 |
define( 'HAPPY_ADDONS_DIR_URL', plugin_dir_url( HAPPY_ADDONS__FILE__ ) );
|
3 |
* Plugin Name: Happy Elementor Addons
|
4 |
* Plugin URI: https://happyaddons.com/
|
5 |
* Description: <a href="https://happyaddons.com/">HappyAddons</a> is a collection of slick, powerful widgets that works seamlessly with Elementor page builder. It’s trendy look with detail customization features allows to create extraordinary designs instantly. <a href="https://happyaddons.com/">HappyAddons</a> is free, rapidly growing and comes with great support.
|
6 |
+
* Version: 2.20.0
|
7 |
* Author: weDevs
|
8 |
* Author URI: https://happyaddons.com/
|
9 |
+
* Elementor tested up to: 3.1.1
|
10 |
+
* Elementor Pro tested up to: 3.1.0
|
11 |
* License: GPLv2
|
12 |
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
13 |
* Text Domain: happy-elementor-addons
|
36 |
|
37 |
defined( 'ABSPATH' ) || die();
|
38 |
|
39 |
+
define( 'HAPPY_ADDONS_VERSION', '2.20.0' );
|
40 |
define( 'HAPPY_ADDONS__FILE__', __FILE__ );
|
41 |
define( 'HAPPY_ADDONS_DIR_PATH', plugin_dir_path( HAPPY_ADDONS__FILE__ ) );
|
42 |
define( 'HAPPY_ADDONS_DIR_URL', plugin_dir_url( HAPPY_ADDONS__FILE__ ) );
|
readme.txt
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
=== Happy Addons for Elementor ===
|
2 |
Plugin Name: Happy Addons for Elementor
|
3 |
-
Version: 2.
|
4 |
Author: weDevs
|
5 |
Author URI: https://happyaddons.com/
|
6 |
Contributors: thehappymonster, happyaddons, hasinhayder, mosaddek73, tareq1988, sourav926, wedevs, iqbalrony, mrokon, shshouvo, obiplabon
|
@@ -58,8 +58,9 @@ Unlike most other Elementor addons, Happy Addons offers itself with many robust
|
|
58 |
- [**Post Tab**](https://demo.happyaddons.com/elementor-post-tab-widget-demo/) – Enable users to present your post in multiple workable tabs ideally useful for grouped and related content.
|
59 |
- [**Post List**](https://demo.happyaddons.com/elementor-post-list-widget-demo/) – List any post elegantly using this widget displaying them in a creative and innovative manner with multiple options to play with.
|
60 |
- [**Taxonomy List**](https://demo.happyaddons.com/elementor-taxonomy-widget-demo/) - This widget will help you to create a list of posts by sorting categories, tags, post formats.
|
61 |
-
- [**Horizontal TimeLine**]
|
62 |
-
- [**Social Share**]
|
|
|
63 |
- [**Contact Form 7**](https://demo.happyaddons.com/elementor-contact-form-7-widget-demo/) – This utility widget helps you to integrate existing forms built using CF7 plugin across your web pages without spending too much time.
|
64 |
- [**Caldera Forms**](https://demo.happyaddons.com/elementor-caldera-forms-widget-demo/) – This widget can help you to display your caldera forms to display on your web pages designed with Elementor.
|
65 |
- [**weForms**](https://demo.happyaddons.com/elementor-we-forms-widget-demo/) – Designed forms using weForms plugin and looking for a way to display those on your Elementor powered pages? This is the answer to that.
|
@@ -283,14 +284,28 @@ For a more detailed explanation check out the following documentation
|
|
283 |
|
284 |
== Changelog ==
|
285 |
|
286 |
-
= 2.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
287 |
|
288 |
- New: Features control panel
|
289 |
- New: Section Shape Divider - 18 custom shapes (Happy Shapes)
|
290 |
- Tweak: Improved elementor missing notice
|
291 |
- Fix: Misc css bug resolved
|
292 |
|
293 |
-
= 2.18.0 - 5 January
|
294 |
|
295 |
- New: Tabs are sortable in Post Tab widget
|
296 |
- Tweak: Added Post tab widget tab hover cursor
|
@@ -345,7 +360,7 @@ For a more detailed explanation check out the following documentation
|
|
345 |
- New: Horizontal TimeLine widget
|
346 |
- New: Social Share widget
|
347 |
- New: Happy Icons v4 (44 new icons)
|
348 |
-
- Tweak: Data Table row-cell text link option
|
349 |
- Fix: On Demand Assets Loading compatibility with WPML
|
350 |
- Fix: Post Tab widget compatibility with WPML
|
351 |
- Fix: News Ticker widget compatibility with WPML
|
@@ -379,7 +394,7 @@ For a more detailed explanation check out the following documentation
|
|
379 |
|
380 |
- New: Updated compatibility with WP 5.5.x
|
381 |
- New: Updated compatibility with Elementor 3.x.x
|
382 |
-
- New: Twitter feed timestamp settings
|
383 |
- Tweak: Removed unnecessary Elementor kit assets enqueue
|
384 |
- Tweak: Removed common image styles, instead added widget wise
|
385 |
- Fix: Templates compatibility issue with Elementor 3.x.x
|
1 |
=== Happy Addons for Elementor ===
|
2 |
Plugin Name: Happy Addons for Elementor
|
3 |
+
Version: 2.20.0
|
4 |
Author: weDevs
|
5 |
Author URI: https://happyaddons.com/
|
6 |
Contributors: thehappymonster, happyaddons, hasinhayder, mosaddek73, tareq1988, sourav926, wedevs, iqbalrony, mrokon, shshouvo, obiplabon
|
58 |
- [**Post Tab**](https://demo.happyaddons.com/elementor-post-tab-widget-demo/) – Enable users to present your post in multiple workable tabs ideally useful for grouped and related content.
|
59 |
- [**Post List**](https://demo.happyaddons.com/elementor-post-list-widget-demo/) – List any post elegantly using this widget displaying them in a creative and innovative manner with multiple options to play with.
|
60 |
- [**Taxonomy List**](https://demo.happyaddons.com/elementor-taxonomy-widget-demo/) - This widget will help you to create a list of posts by sorting categories, tags, post formats.
|
61 |
+
- [**Horizontal TimeLine**](https://demo.happyaddons.com/elementor-horizontal-timeline-widget-demo/) – Design your storyline horizontally using the Horizontal Timeline Widget by HappyAddons. It’s absolutely free!
|
62 |
+
- [**Social Share**](https://demo.happyaddons.com/elementor-social-share-widget-demo/) – No need to buy a social share plugin anymore. Get many of the premium features of social share plugins within HappyAddons Social Share widget for free!
|
63 |
+
- [**Event Calender**](https://demo.happyaddons.com/elementor-event-calendar-widget-demo/) – Are you struggling to incorporate an event calendar on your website with the help of Elementor? Don’t worry; we have added an amazing Event Calendar Widget in the HappyAddons Free Version for you! You can create your own personalized calendar manually or use your Google calendar or the Events Calendar Plugin’s calendar to showcase your events.
|
64 |
- [**Contact Form 7**](https://demo.happyaddons.com/elementor-contact-form-7-widget-demo/) – This utility widget helps you to integrate existing forms built using CF7 plugin across your web pages without spending too much time.
|
65 |
- [**Caldera Forms**](https://demo.happyaddons.com/elementor-caldera-forms-widget-demo/) – This widget can help you to display your caldera forms to display on your web pages designed with Elementor.
|
66 |
- [**weForms**](https://demo.happyaddons.com/elementor-we-forms-widget-demo/) – Designed forms using weForms plugin and looking for a way to display those on your Elementor powered pages? This is the answer to that.
|
284 |
|
285 |
== Changelog ==
|
286 |
|
287 |
+
= 2.20.0 - 18 February 2021 =
|
288 |
+
|
289 |
+
- New: Text stroke feature
|
290 |
+
- New: Event Calendar widget
|
291 |
+
- New: Happy particle effects disable option
|
292 |
+
- Tweak: Updated kses function to support more attributes
|
293 |
+
- Tweak: Added html tag support in Data Table widget
|
294 |
+
- Tweak: Added slider widget dots size control
|
295 |
+
- Tweak: Added carousel widget dots size control
|
296 |
+
- Fix: Shape divider spell
|
297 |
+
- Fix: Chart widgets console error
|
298 |
+
- Fix: Widget background overlay class mismatch issue
|
299 |
+
- Fix: Data Table widget compatibility issue with WPML
|
300 |
+
|
301 |
+
= 2.19.0 - 20 January 2021 =
|
302 |
|
303 |
- New: Features control panel
|
304 |
- New: Section Shape Divider - 18 custom shapes (Happy Shapes)
|
305 |
- Tweak: Improved elementor missing notice
|
306 |
- Fix: Misc css bug resolved
|
307 |
|
308 |
+
= 2.18.0 - 5 January 2021 =
|
309 |
|
310 |
- New: Tabs are sortable in Post Tab widget
|
311 |
- Tweak: Added Post tab widget tab hover cursor
|
360 |
- New: Horizontal TimeLine widget
|
361 |
- New: Social Share widget
|
362 |
- New: Happy Icons v4 (44 new icons)
|
363 |
+
- Tweak: Data Table row-cell text link option
|
364 |
- Fix: On Demand Assets Loading compatibility with WPML
|
365 |
- Fix: Post Tab widget compatibility with WPML
|
366 |
- Fix: News Ticker widget compatibility with WPML
|
394 |
|
395 |
- New: Updated compatibility with WP 5.5.x
|
396 |
- New: Updated compatibility with Elementor 3.x.x
|
397 |
+
- New: Twitter feed timestamp settings
|
398 |
- Tweak: Removed unnecessary Elementor kit assets enqueue
|
399 |
- Tweak: Removed common image styles, instead added widget wise
|
400 |
- Fix: Templates compatibility issue with Elementor 3.x.x
|
templates/admin/dashboard-home.php
CHANGED
@@ -1,160 +1,160 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Dashboard home tab template
|
4 |
-
*/
|
5 |
-
|
6 |
-
defined( 'ABSPATH' ) || die();
|
7 |
-
?>
|
8 |
-
<div class="ha-dashboard-panel">
|
9 |
-
<div class="ha-home-banner">
|
10 |
-
<div class="ha-home-banner__content">
|
11 |
-
<img class="ha-home-banner__logo" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/halogo.svg" alt="">
|
12 |
-
<span class="ha-home-banner__divider"></span>
|
13 |
-
<h2>Thanks a lot <br><span>for choosing HappyAddons</span></h2>
|
14 |
-
</div>
|
15 |
-
</div>
|
16 |
-
<div class="ha-home-body">
|
17 |
-
<div class="ha-row ha-py-5 ha-align-items-center">
|
18 |
-
<div class="ha-col ha-col-6">
|
19 |
-
<img class="ha-img-fluid ha-title-icon-size" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/knowledge.svg" alt="">
|
20 |
-
<h3 class="ha-feature-title">Knowledge & Wiki</h3>
|
21 |
-
<p class="f18">We have created full-proof documentation for you. It will help you to understand how our plugin works.</p>
|
22 |
-
<a class="ha-btn ha-btn-primary" target="_blank" rel="noopener" href="https://happyaddons.com/go/docs">Take Me to The Knowledge Page</a>
|
23 |
-
</div>
|
24 |
-
<div class="ha-col ha-col-6">
|
25 |
-
<img class="ha-img-fluid" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/art1.png" alt="">
|
26 |
-
</div>
|
27 |
-
</div>
|
28 |
-
<div class="ha-row ha-py-5 ha-pt-0">
|
29 |
-
<div class="ha-col ha-col-12">
|
30 |
-
<img class="ha-img-fluid ha-title-icon-size" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/film.svg" alt="">
|
31 |
-
<h3 class="ha-feature-title">Video Tutorial</h3>
|
32 |
-
<p class="f16">How to use Floating Effects and manage CSS Transform?</p>
|
33 |
-
</div>
|
34 |
-
<div class="ha-col ha-col-4">
|
35 |
-
<a href="https://www.youtube.com/watch?v=KSRaUaD30Jc" class="ha-feature-sub-title-a">
|
36 |
-
<img class="ha-img-fluid ha-rounded" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/crossdomain-video-cover.jpg" alt="">
|
37 |
-
<h4 class="ha-feature-sub-title">Cross Domain Copy Paste (Pro)</h4>
|
38 |
-
</a>
|
39 |
-
</div>
|
40 |
-
<div class="ha-col ha-col-4">
|
41 |
-
<a href="https://www.youtube.com/watch?v=LmtacsLcFPU" class="ha-feature-sub-title-a">
|
42 |
-
<img class="ha-img-fluid ha-rounded" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/translate-video-cover.jpg" alt="">
|
43 |
-
<h4 class="ha-feature-sub-title">Happy Effects - CSS Transform</h4>
|
44 |
-
</a>
|
45 |
-
</div>
|
46 |
-
<div class="ha-col ha-col-4">
|
47 |
-
<a href="https://www.youtube.com/watch?v=F33g3zqkeog" class="ha-feature-sub-title-a">
|
48 |
-
<img class="ha-img-fluid ha-rounded" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/floating-video-cover.jpg" alt="">
|
49 |
-
<h4 class="ha-feature-sub-title">Happy Effects - Floating Effects</h4>
|
50 |
-
</a>
|
51 |
-
</div>
|
52 |
-
<div class="ha-col ha-col-12 ha-align-center ha-pt-2">
|
53 |
-
<a class="ha-btn ha-btn-secondary" target="_blank" rel="noopener" href="https://www.youtube.com/channel/UC1-e7ewkKB1Dao1U90QFQFA">View more videos</a>
|
54 |
-
</div>
|
55 |
-
</div>
|
56 |
-
<div class="ha-row ha-align-items-end ha-py-5 ha-pt-0">
|
57 |
-
<div class="ha-col ha-col-9">
|
58 |
-
<img class="ha-img-fluid ha-title-icon-size" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/faq.svg" alt="">
|
59 |
-
<h3 class="ha-feature-title ha-text-primary">FAQ</h3>
|
60 |
-
<p class="f16 ha-mb-0">Frequently Asked Questions</p>
|
61 |
-
</div>
|
62 |
-
<div class="ha-col ha-col-3 ha-align-right">
|
63 |
-
<a class="btn-more" target="_blank" rel="noopener" href="https://happyaddons.com/go/faq">Get More FAQ ></a>
|
64 |
-
</div>
|
65 |
-
<div class="ha-col ha-col-12">
|
66 |
-
<div class="ha-row">
|
67 |
-
<div class="ha-col ha-col-6 ha-pt-3">
|
68 |
-
<h4 class="f18">Can I use these addons in my client project?</h4>
|
69 |
-
<p class="ha-mb-0 f16">Yes, absolutely, no holds barred. Use it to bring colorful moments to your customers. And don’t forget to check out our premium features.</p>
|
70 |
-
</div>
|
71 |
-
<div class="ha-col ha-col-6 ha-pt-3">
|
72 |
-
<h4 class="f18">Is there any support policy available for the free users?</h4>
|
73 |
-
<p class="ha-mb-0 f16">Free or pro version, both comes with excellent support from us. However, pro users will get priority support.</p>
|
74 |
-
</div>
|
75 |
-
</div>
|
76 |
-
</div>
|
77 |
-
</div>
|
78 |
-
|
79 |
-
<?php
|
80 |
-
$appsero = \Happy_Addons\Elementor\Base::instance()->appsero;
|
81 |
-
$margin_top = '';
|
82 |
-
if ( $appsero ) :
|
83 |
-
if ( ! $appsero->insights()->notice_dismissed() && ! $appsero->insights()->tracking_allowed() ) :
|
84 |
-
$optin_url = add_query_arg( $appsero->slug . '_tracker_optin', 'true' );
|
85 |
-
$margin_top = 'ha-py-5';
|
86 |
-
?>
|
87 |
-
<div class="ha-row">
|
88 |
-
<div class="ha-col ha-col-12">
|
89 |
-
<div class="ha-cta ha-rounded">
|
90 |
-
<div class="ha-row ha-align-items-center">
|
91 |
-
<div class="ha-col-8">
|
92 |
-
<h3 class="ha-feature-title">Call for Contributors</h3>
|
93 |
-
<p class="f16">Are you interested to contribute to making this plugin more awesome?</p>
|
94 |
-
<a class="link btn-how-to-contribute" href="#">How am I going to contribute?</a>
|
95 |
-
<p class="ha-mb-0" style="display: none;">By allow Happy Elementor Addons to collect non-sensitive diagnostic data and usage information so that we can make sure optimum compatibility.
|
96 |
-
Happy Elementor Addons collect - Server environment details (php, mysql, server, WordPress versions), Number of users in your site, Site language, Number of active and inactive plugins, Site name and url, Your name and email address. We are using Appsero to collect your data. <a href="https://appsero.com/privacy-policy/" target="_blank" style="color:#fff">Learn more</a> about how Appsero collects and handle your data.</p>
|
97 |
-
</div>
|
98 |
-
<div class="ha-cta-action ha-col-4 ha-align-right">
|
99 |
-
<a class="btn-contribute" href="<?php echo esc_url( $optin_url ); ?>">I like to contribute</a>
|
100 |
-
</div>
|
101 |
-
</div>
|
102 |
-
</div>
|
103 |
-
</div>
|
104 |
-
</div>
|
105 |
-
<?php
|
106 |
-
endif;
|
107 |
-
endif;
|
108 |
-
?>
|
109 |
-
|
110 |
-
<div class="ha-row <?php echo $margin_top; ?>">
|
111 |
-
<div class="ha-col ha-col-6">
|
112 |
-
<div class="ha-border-box ha-min-height-455">
|
113 |
-
<img class="ha-img-fluid ha-title-icon-size" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/support-call.svg" alt="">
|
114 |
-
<h3 class="ha-feature-title ha-text-secondary">Support And Feedback</h3>
|
115 |
-
<p class="f16">Feeling like to consult with an expert? Take live Chat support immediately from <a href="https://happyaddons.com/" target="_blank" rel="noopener">HappyAddons</a>. We are always ready to help you 24/7.</p>
|
116 |
-
<p class="f16 ha-mb-2"><strong>Or if you’re facing technical issues with our plugin, then please create a support ticket</strong></p>
|
117 |
-
<a class="ha-btn ha-btn-secondary" target="_blank" rel="noopener" href="https://happyaddons.com/go/contact-support">Get Support</a>
|
118 |
-
</div>
|
119 |
-
</div>
|
120 |
-
<div class="ha-col ha-col-6">
|
121 |
-
<div class="ha-border-box ha-min-height-455">
|
122 |
-
<img class="ha-img-fluid ha-title-icon-size" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/newspaper.svg" alt="">
|
123 |
-
<h3 class="ha-feature-title ha-text-primary">Newsletter Subscription</h3>
|
124 |
-
<p class="f16">To get updated news, current offers, deals, and tips please subscribe to our Newsletters.</p>
|
125 |
-
<a class="ha-btn ha-btn-primary" target="_blank" rel="noopener" href="https://happyaddons.com/go/subscribe">Subscribe Now</a>
|
126 |
-
</div>
|
127 |
-
</div>
|
128 |
-
</div>
|
129 |
-
|
130 |
-
<div class="ha-row ha-py-5 ha-align-items-center">
|
131 |
-
<div class="ha-col ha-col-6">
|
132 |
-
<img class="ha-img-fluid" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/art2.png" alt="">
|
133 |
-
</div>
|
134 |
-
<div class="ha-col ha-col-6">
|
135 |
-
<img class="ha-img-fluid ha-title-icon-size" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/cross-game.svg" alt="">
|
136 |
-
<h3 class="ha-feature-title">Missing Any Feature?</h3>
|
137 |
-
<p class="f16">Are you in need of a feature that’s not available in our plugin? Feel free to do a
|
138 |
-
feature request from here,</p>
|
139 |
-
<a class="ha-btn ha-btn-primary" target="_blank" rel="noopener" href="https://happyaddons.com/go/contact-support">Request Feature</a>
|
140 |
-
</div>
|
141 |
-
</div>
|
142 |
-
|
143 |
-
<div class="ha-row ha-py-5">
|
144 |
-
<div class="ha-col ha-col-12">
|
145 |
-
<div class="ha-border-box">
|
146 |
-
<div class="ha-row ha-align-items-center">
|
147 |
-
<div class="ha-col ha-col-3" >
|
148 |
-
<img class="ha-img-fluid ha-pr-2" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/c-icon.png" alt="">
|
149 |
-
</div>
|
150 |
-
<div class="ha-col ha-col-8">
|
151 |
-
<h3 class="ha-feature-title ha-text-secondary ha-mt-0">Happy with Our Work?</h3>
|
152 |
-
<p class="f16 ha-mb-2">We are really thankful to you that you have chosen our plugin. If our plugin brings a smile in your face while working, please share your happiness by giving us a 5***** rating in WordPress Org. It will make us happy and won’t take more than 2 mins.</p>
|
153 |
-
<a class="ha-btn ha-btn-secondary" target="_blank" rel="noopener" href="https://wordpress.org/support/plugin/happy-elementor-addons/reviews/?filter=5">I’m Happy to Give You 5*</a>
|
154 |
-
</div>
|
155 |
-
</div>
|
156 |
-
</div>
|
157 |
-
</div>
|
158 |
-
</div>
|
159 |
-
</div>
|
160 |
-
</div>
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Dashboard home tab template
|
4 |
+
*/
|
5 |
+
|
6 |
+
defined( 'ABSPATH' ) || die();
|
7 |
+
?>
|
8 |
+
<div class="ha-dashboard-panel">
|
9 |
+
<div class="ha-home-banner">
|
10 |
+
<div class="ha-home-banner__content">
|
11 |
+
<img class="ha-home-banner__logo" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/halogo.svg" alt="">
|
12 |
+
<span class="ha-home-banner__divider"></span>
|
13 |
+
<h2>Thanks a lot <br><span>for choosing HappyAddons</span></h2>
|
14 |
+
</div>
|
15 |
+
</div>
|
16 |
+
<div class="ha-home-body">
|
17 |
+
<div class="ha-row ha-py-5 ha-align-items-center">
|
18 |
+
<div class="ha-col ha-col-6">
|
19 |
+
<img class="ha-img-fluid ha-title-icon-size" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/knowledge.svg" alt="">
|
20 |
+
<h3 class="ha-feature-title">Knowledge & Wiki</h3>
|
21 |
+
<p class="f18">We have created full-proof documentation for you. It will help you to understand how our plugin works.</p>
|
22 |
+
<a class="ha-btn ha-btn-primary" target="_blank" rel="noopener" href="https://happyaddons.com/go/docs">Take Me to The Knowledge Page</a>
|
23 |
+
</div>
|
24 |
+
<div class="ha-col ha-col-6">
|
25 |
+
<img class="ha-img-fluid" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/art1.png" alt="">
|
26 |
+
</div>
|
27 |
+
</div>
|
28 |
+
<div class="ha-row ha-py-5 ha-pt-0">
|
29 |
+
<div class="ha-col ha-col-12">
|
30 |
+
<img class="ha-img-fluid ha-title-icon-size" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/film.svg" alt="">
|
31 |
+
<h3 class="ha-feature-title">Video Tutorial</h3>
|
32 |
+
<p class="f16">How to use Floating Effects and manage CSS Transform?</p>
|
33 |
+
</div>
|
34 |
+
<div class="ha-col ha-col-4">
|
35 |
+
<a href="https://www.youtube.com/watch?v=KSRaUaD30Jc" class="ha-feature-sub-title-a">
|
36 |
+
<img class="ha-img-fluid ha-rounded" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/crossdomain-video-cover.jpg" alt="">
|
37 |
+
<h4 class="ha-feature-sub-title">Cross Domain Copy Paste (Pro)</h4>
|
38 |
+
</a>
|
39 |
+
</div>
|
40 |
+
<div class="ha-col ha-col-4">
|
41 |
+
<a href="https://www.youtube.com/watch?v=LmtacsLcFPU" class="ha-feature-sub-title-a">
|
42 |
+
<img class="ha-img-fluid ha-rounded" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/translate-video-cover.jpg" alt="">
|
43 |
+
<h4 class="ha-feature-sub-title">Happy Effects - CSS Transform</h4>
|
44 |
+
</a>
|
45 |
+
</div>
|
46 |
+
<div class="ha-col ha-col-4">
|
47 |
+
<a href="https://www.youtube.com/watch?v=F33g3zqkeog" class="ha-feature-sub-title-a">
|
48 |
+
<img class="ha-img-fluid ha-rounded" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/floating-video-cover.jpg" alt="">
|
49 |
+
<h4 class="ha-feature-sub-title">Happy Effects - Floating Effects</h4>
|
50 |
+
</a>
|
51 |
+
</div>
|
52 |
+
<div class="ha-col ha-col-12 ha-align-center ha-pt-2">
|
53 |
+
<a class="ha-btn ha-btn-secondary" target="_blank" rel="noopener" href="https://www.youtube.com/channel/UC1-e7ewkKB1Dao1U90QFQFA">View more videos</a>
|
54 |
+
</div>
|
55 |
+
</div>
|
56 |
+
<div class="ha-row ha-align-items-end ha-py-5 ha-pt-0">
|
57 |
+
<div class="ha-col ha-col-9">
|
58 |
+
<img class="ha-img-fluid ha-title-icon-size" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/faq.svg" alt="">
|
59 |
+
<h3 class="ha-feature-title ha-text-primary">FAQ</h3>
|
60 |
+
<p class="f16 ha-mb-0">Frequently Asked Questions</p>
|
61 |
+
</div>
|
62 |
+
<div class="ha-col ha-col-3 ha-align-right">
|
63 |
+
<a class="btn-more" target="_blank" rel="noopener" href="https://happyaddons.com/go/faq">Get More FAQ ></a>
|
64 |
+
</div>
|
65 |
+
<div class="ha-col ha-col-12">
|
66 |
+
<div class="ha-row">
|
67 |
+
<div class="ha-col ha-col-6 ha-pt-3">
|
68 |
+
<h4 class="f18">Can I use these addons in my client project?</h4>
|
69 |
+
<p class="ha-mb-0 f16">Yes, absolutely, no holds barred. Use it to bring colorful moments to your customers. And don’t forget to check out our premium features.</p>
|
70 |
+
</div>
|
71 |
+
<div class="ha-col ha-col-6 ha-pt-3">
|
72 |
+
<h4 class="f18">Is there any support policy available for the free users?</h4>
|
73 |
+
<p class="ha-mb-0 f16">Free or pro version, both comes with excellent support from us. However, pro users will get priority support.</p>
|
74 |
+
</div>
|
75 |
+
</div>
|
76 |
+
</div>
|
77 |
+
</div>
|
78 |
+
|
79 |
+
<?php
|
80 |
+
$appsero = \Happy_Addons\Elementor\Base::instance()->appsero;
|
81 |
+
$margin_top = '';
|
82 |
+
if ( $appsero ) :
|
83 |
+
if ( ! $appsero->insights()->notice_dismissed() && ! $appsero->insights()->tracking_allowed() ) :
|
84 |
+
$optin_url = add_query_arg( $appsero->slug . '_tracker_optin', 'true' );
|
85 |
+
$margin_top = 'ha-py-5';
|
86 |
+
?>
|
87 |
+
<div class="ha-row">
|
88 |
+
<div class="ha-col ha-col-12">
|
89 |
+
<div class="ha-cta ha-rounded">
|
90 |
+
<div class="ha-row ha-align-items-center">
|
91 |
+
<div class="ha-col-8">
|
92 |
+
<h3 class="ha-feature-title">Call for Contributors</h3>
|
93 |
+
<p class="f16">Are you interested to contribute to making this plugin more awesome?</p>
|
94 |
+
<a class="link btn-how-to-contribute" href="#">How am I going to contribute?</a>
|
95 |
+
<p class="ha-mb-0" style="display: none;">By allow Happy Elementor Addons to collect non-sensitive diagnostic data and usage information so that we can make sure optimum compatibility.
|
96 |
+
Happy Elementor Addons collect - Server environment details (php, mysql, server, WordPress versions), Number of users in your site, Site language, Number of active and inactive plugins, Site name and url, Your name and email address. We are using Appsero to collect your data. <a href="https://appsero.com/privacy-policy/" target="_blank" style="color:#fff">Learn more</a> about how Appsero collects and handle your data.</p>
|
97 |
+
</div>
|
98 |
+
<div class="ha-cta-action ha-col-4 ha-align-right">
|
99 |
+
<a class="btn-contribute" href="<?php echo esc_url( $optin_url ); ?>">I like to contribute</a>
|
100 |
+
</div>
|
101 |
+
</div>
|
102 |
+
</div>
|
103 |
+
</div>
|
104 |
+
</div>
|
105 |
+
<?php
|
106 |
+
endif;
|
107 |
+
endif;
|
108 |
+
?>
|
109 |
+
|
110 |
+
<div class="ha-row <?php echo $margin_top; ?>">
|
111 |
+
<div class="ha-col ha-col-6">
|
112 |
+
<div class="ha-border-box ha-min-height-455">
|
113 |
+
<img class="ha-img-fluid ha-title-icon-size" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/support-call.svg" alt="">
|
114 |
+
<h3 class="ha-feature-title ha-text-secondary">Support And Feedback</h3>
|
115 |
+
<p class="f16">Feeling like to consult with an expert? Take live Chat support immediately from <a href="https://happyaddons.com/" target="_blank" rel="noopener">HappyAddons</a>. We are always ready to help you 24/7.</p>
|
116 |
+
<p class="f16 ha-mb-2"><strong>Or if you’re facing technical issues with our plugin, then please create a support ticket</strong></p>
|
117 |
+
<a class="ha-btn ha-btn-secondary" target="_blank" rel="noopener" href="https://happyaddons.com/go/contact-support">Get Support</a>
|
118 |
+
</div>
|
119 |
+
</div>
|
120 |
+
<div class="ha-col ha-col-6">
|
121 |
+
<div class="ha-border-box ha-min-height-455">
|
122 |
+
<img class="ha-img-fluid ha-title-icon-size" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/newspaper.svg" alt="">
|
123 |
+
<h3 class="ha-feature-title ha-text-primary">Newsletter Subscription</h3>
|
124 |
+
<p class="f16">To get updated news, current offers, deals, and tips please subscribe to our Newsletters.</p>
|
125 |
+
<a class="ha-btn ha-btn-primary" target="_blank" rel="noopener" href="https://happyaddons.com/go/subscribe">Subscribe Now</a>
|
126 |
+
</div>
|
127 |
+
</div>
|
128 |
+
</div>
|
129 |
+
|
130 |
+
<div class="ha-row ha-py-5 ha-align-items-center">
|
131 |
+
<div class="ha-col ha-col-6">
|
132 |
+
<img class="ha-img-fluid" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/art2.png" alt="">
|
133 |
+
</div>
|
134 |
+
<div class="ha-col ha-col-6">
|
135 |
+
<img class="ha-img-fluid ha-title-icon-size" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/cross-game.svg" alt="">
|
136 |
+
<h3 class="ha-feature-title">Missing Any Feature?</h3>
|
137 |
+
<p class="f16">Are you in need of a feature that’s not available in our plugin? Feel free to do a
|
138 |
+
feature request from here,</p>
|
139 |
+
<a class="ha-btn ha-btn-primary" target="_blank" rel="noopener" href="https://happyaddons.com/go/contact-support">Request Feature</a>
|
140 |
+
</div>
|
141 |
+
</div>
|
142 |
+
|
143 |
+
<div class="ha-row ha-py-5">
|
144 |
+
<div class="ha-col ha-col-12">
|
145 |
+
<div class="ha-border-box">
|
146 |
+
<div class="ha-row ha-align-items-center">
|
147 |
+
<div class="ha-col ha-col-3" >
|
148 |
+
<img class="ha-img-fluid ha-pr-2" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/c-icon.png" alt="">
|
149 |
+
</div>
|
150 |
+
<div class="ha-col ha-col-8">
|
151 |
+
<h3 class="ha-feature-title ha-text-secondary ha-mt-0">Happy with Our Work?</h3>
|
152 |
+
<p class="f16 ha-mb-2">We are really thankful to you that you have chosen our plugin. If our plugin brings a smile in your face while working, please share your happiness by giving us a 5***** rating in WordPress Org. It will make us happy and won’t take more than 2 mins.</p>
|
153 |
+
<a class="ha-btn ha-btn-secondary" target="_blank" rel="noopener" href="https://wordpress.org/support/plugin/happy-elementor-addons/reviews/?filter=5">I’m Happy to Give You 5*</a>
|
154 |
+
</div>
|
155 |
+
</div>
|
156 |
+
</div>
|
157 |
+
</div>
|
158 |
+
</div>
|
159 |
+
</div>
|
160 |
+
</div>
|
templates/admin/dashboard-main.php
CHANGED
@@ -1,71 +1,71 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Dashboard main template
|
4 |
-
*/
|
5 |
-
|
6 |
-
defined( 'ABSPATH' ) || die();
|
7 |
-
?>
|
8 |
-
<div class="wrap">
|
9 |
-
<h1 class="screen-reader-text"><?php esc_html_e( 'Happy Elementor Addons', 'happy-elementor-addons' ); ?></h1>
|
10 |
-
<form class="ha-dashboard" id="ha-dashboard-form">
|
11 |
-
<div class="ha-dashboard-tabs" role="tablist">
|
12 |
-
<div class="ha-dashboard-tabs__nav">
|
13 |
-
<?php
|
14 |
-
$tab_count = 1;
|
15 |
-
foreach ( self::get_tabs() as $slug => $data ) :
|
16 |
-
$slug = esc_attr( strtolower( $slug ) );
|
17 |
-
$class = 'ha-dashboard-tabs__nav-item ha-dashboard-tabs__nav-item--' . $slug;
|
18 |
-
|
19 |
-
if ( empty( $data['renderer'] ) || ! is_callable( $data['renderer'] ) ) {
|
20 |
-
$class .= ' nav-item-is--link';
|
21 |
-
}
|
22 |
-
|
23 |
-
if ( $tab_count === 1 ) {
|
24 |
-
$class .= ' tab--is-active';
|
25 |
-
}
|
26 |
-
|
27 |
-
if ( ! empty( $data['href'] ) ) {
|
28 |
-
$href = esc_url( $data['href'] );
|
29 |
-
} else {
|
30 |
-
$href = '#' . $slug;
|
31 |
-
}
|
32 |
-
|
33 |
-
printf( '<a href="%1$s" aria-controls="tab-content-%2$s" id="tab-nav-%2$s" class="%3$s" role="tab">%4$s</a>',
|
34 |
-
$href,
|
35 |
-
$slug,
|
36 |
-
$class,
|
37 |
-
isset( $data['title'] ) ? $data['title'] : sprintf( esc_html__( 'Tab %s', 'happy-elementor-addons' ), $tab_count )
|
38 |
-
);
|
39 |
-
|
40 |
-
++$tab_count;
|
41 |
-
endforeach;
|
42 |
-
?>
|
43 |
-
|
44 |
-
<button disabled class="ha-dashboard-tabs__nav-btn ha-dashboard-btn ha-dashboard-btn--lg ha-dashboard-btn--save" type="submit"><?php esc_html_e( 'Save Settings', 'happy-elementor-addons' ); ?></button>
|
45 |
-
</div>
|
46 |
-
<div class="ha-dashboard-tabs__content">
|
47 |
-
<?php
|
48 |
-
$tab_count = 1;
|
49 |
-
foreach ( self::get_tabs() as $slug => $data ) :
|
50 |
-
if ( empty( $data['renderer'] ) || ! is_callable( $data['renderer'] ) ) {
|
51 |
-
continue;
|
52 |
-
}
|
53 |
-
|
54 |
-
$class = 'ha-dashboard-tabs__content-item';
|
55 |
-
if ( $tab_count === 1 ) {
|
56 |
-
$class .= ' tab--is-active';
|
57 |
-
}
|
58 |
-
|
59 |
-
$slug = esc_attr( strtolower( $slug ) );
|
60 |
-
?>
|
61 |
-
<div class="<?php echo $class; ?>" id="tab-content-<?php echo $slug; ?>" role="tabpanel" aria-labelledby="tab-nav-<?php echo $slug; ?>">
|
62 |
-
<?php call_user_func( $data['renderer'], $slug, $data ); ?>
|
63 |
-
</div>
|
64 |
-
<?php
|
65 |
-
++$tab_count;
|
66 |
-
endforeach;
|
67 |
-
?>
|
68 |
-
</div>
|
69 |
-
</div>
|
70 |
-
</form>
|
71 |
-
</div>
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Dashboard main template
|
4 |
+
*/
|
5 |
+
|
6 |
+
defined( 'ABSPATH' ) || die();
|
7 |
+
?>
|
8 |
+
<div class="wrap">
|
9 |
+
<h1 class="screen-reader-text"><?php esc_html_e( 'Happy Elementor Addons', 'happy-elementor-addons' ); ?></h1>
|
10 |
+
<form class="ha-dashboard" id="ha-dashboard-form">
|
11 |
+
<div class="ha-dashboard-tabs" role="tablist">
|
12 |
+
<div class="ha-dashboard-tabs__nav">
|
13 |
+
<?php
|
14 |
+
$tab_count = 1;
|
15 |
+
foreach ( self::get_tabs() as $slug => $data ) :
|
16 |
+
$slug = esc_attr( strtolower( $slug ) );
|
17 |
+
$class = 'ha-dashboard-tabs__nav-item ha-dashboard-tabs__nav-item--' . $slug;
|
18 |
+
|
19 |
+
if ( empty( $data['renderer'] ) || ! is_callable( $data['renderer'] ) ) {
|
20 |
+
$class .= ' nav-item-is--link';
|
21 |
+
}
|
22 |
+
|
23 |
+
if ( $tab_count === 1 ) {
|
24 |
+
$class .= ' tab--is-active';
|
25 |
+
}
|
26 |
+
|
27 |
+
if ( ! empty( $data['href'] ) ) {
|
28 |
+
$href = esc_url( $data['href'] );
|
29 |
+
} else {
|
30 |
+
$href = '#' . $slug;
|
31 |
+
}
|
32 |
+
|
33 |
+
printf( '<a href="%1$s" aria-controls="tab-content-%2$s" id="tab-nav-%2$s" class="%3$s" role="tab">%4$s</a>',
|
34 |
+
$href,
|
35 |
+
$slug,
|
36 |
+
$class,
|
37 |
+
isset( $data['title'] ) ? $data['title'] : sprintf( esc_html__( 'Tab %s', 'happy-elementor-addons' ), $tab_count )
|
38 |
+
);
|
39 |
+
|
40 |
+
++$tab_count;
|
41 |
+
endforeach;
|
42 |
+
?>
|
43 |
+
|
44 |
+
<button disabled class="ha-dashboard-tabs__nav-btn ha-dashboard-btn ha-dashboard-btn--lg ha-dashboard-btn--save" type="submit"><?php esc_html_e( 'Save Settings', 'happy-elementor-addons' ); ?></button>
|
45 |
+
</div>
|
46 |
+
<div class="ha-dashboard-tabs__content">
|
47 |
+
<?php
|
48 |
+
$tab_count = 1;
|
49 |
+
foreach ( self::get_tabs() as $slug => $data ) :
|
50 |
+
if ( empty( $data['renderer'] ) || ! is_callable( $data['renderer'] ) ) {
|
51 |
+
continue;
|
52 |
+
}
|
53 |
+
|
54 |
+
$class = 'ha-dashboard-tabs__content-item';
|
55 |
+
if ( $tab_count === 1 ) {
|
56 |
+
$class .= ' tab--is-active';
|
57 |
+
}
|
58 |
+
|
59 |
+
$slug = esc_attr( strtolower( $slug ) );
|
60 |
+
?>
|
61 |
+
<div class="<?php echo $class; ?>" id="tab-content-<?php echo $slug; ?>" role="tabpanel" aria-labelledby="tab-nav-<?php echo $slug; ?>">
|
62 |
+
<?php call_user_func( $data['renderer'], $slug, $data ); ?>
|
63 |
+
</div>
|
64 |
+
<?php
|
65 |
+
++$tab_count;
|
66 |
+
endforeach;
|
67 |
+
?>
|
68 |
+
</div>
|
69 |
+
</div>
|
70 |
+
</form>
|
71 |
+
</div>
|
templates/admin/dashboard-pro.php
CHANGED
@@ -1,93 +1,93 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Dashboard pro tab template
|
4 |
-
*/
|
5 |
-
|
6 |
-
defined( 'ABSPATH' ) || die();
|
7 |
-
?>
|
8 |
-
<div class="ha-dashboard-panel">
|
9 |
-
<div class="ha-home-banner">
|
10 |
-
<div class="ha-home-banner__content">
|
11 |
-
<img class="ha-home-banner__logo" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/halogo.svg" alt="">
|
12 |
-
<span class="ha-home-banner__divider"></span>
|
13 |
-
<h2><span>What's Inside </span><br>The HappyAddons Pro</h2>
|
14 |
-
</div>
|
15 |
-
</div>
|
16 |
-
<div class="ha-home-body">
|
17 |
-
<div class="ha-row ha-py-5 ha-align-items-center ha-align-center">
|
18 |
-
<div class="ha-col ha-col-12">
|
19 |
-
<div class="ha-badge">PRO</div>
|
20 |
-
<h2 class="ha-section-title ha-text-primary">Features</h2>
|
21 |
-
</div>
|
22 |
-
</div>
|
23 |
-
|
24 |
-
<div class="ha-row ha-py-5 ha-pt-0 ha-align-items-center">
|
25 |
-
<div class="ha-col ha-col-6">
|
26 |
-
<img class="ha-img-fluid ha-title-icon-size" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/cross-domain.svg" alt="">
|
27 |
-
<h3 class="ha-feature-title">Cross Domain Copy Paste</h3>
|
28 |
-
<p class="f18">Do Cross-Domain Widget Copy Paste within different websites!
|
29 |
-
You can easily copy any widgets from your previously designed website and paste it to your newly created website.
|
30 |
-
</p>
|
31 |
-
</div>
|
32 |
-
<div class="ha-col ha-col-6">
|
33 |
-
<img class="ha-img-fluid ha-pl-2" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/pa-1.png" alt="">
|
34 |
-
</div>
|
35 |
-
</div>
|
36 |
-
|
37 |
-
<div class="ha-row ha-py-5 ha-pt-0 ha-align-items-center">
|
38 |
-
<div class="ha-col ha-col-6">
|
39 |
-
<img class="ha-img-fluid ha-pr-2" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/pa-2.png" alt="">
|
40 |
-
</div>
|
41 |
-
<div class="ha-col ha-col-6">
|
42 |
-
<img class="ha-img-fluid ha-title-icon-size" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/preset.svg" alt="">
|
43 |
-
<h3 class="ha-feature-title">Preset</h3>
|
44 |
-
<p class="f16">400+ Preset Library for Widgets with Drop Down facility. Experience the Instagram Photo Editing like experience in Elementor!</p>
|
45 |
-
</div>
|
46 |
-
</div>
|
47 |
-
|
48 |
-
<div class="ha-row ha-py-5 ha-pt-0 ha-align-items-center">
|
49 |
-
<div class="ha-col ha-col-6">
|
50 |
-
<img class="ha-img-fluid ha-title-icon-size" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/nesting.svg" alt="">
|
51 |
-
<h3 class="ha-feature-title">Unlimited Section Nesting</h3>
|
52 |
-
<p class="f18">Don’t you wish to use multiple sections at the same time in Elementor? With HappyAddons, now you can. Create as many sections as you want and organize your elements more effectively.</p>
|
53 |
-
</div>
|
54 |
-
<div class="ha-col ha-col-6">
|
55 |
-
<img class="ha-img-fluid ha-pl-2" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/pa-3.png" alt="">
|
56 |
-
</div>
|
57 |
-
</div>
|
58 |
-
|
59 |
-
<div class="ha-row ha-py-5 ha-pt-0 ha-align-items-center ha-align-center">
|
60 |
-
<div class="ha-col ha-col-12">
|
61 |
-
<div class="ha-badge">PRO</div>
|
62 |
-
<h2 class="ha-section-title ha-text-primary">Widgets</h2>
|
63 |
-
</div>
|
64 |
-
</div>
|
65 |
-
|
66 |
-
<div class="ha-row ha-py-5 ha-pt-0 ha-align-items-center ha-align-center">
|
67 |
-
<?php
|
68 |
-
$pro_widgets = \Happy_Addons\Elementor\Widgets_Manager::get_pro_widget_map();
|
69 |
-
|
70 |
-
foreach ( $pro_widgets as $widget ) :
|
71 |
-
$title = isset( $widget['title'] ) ? $widget['title'] : 'Widget Title';
|
72 |
-
$icon = isset( $widget['icon'] ) ? $widget['icon'] : 'hm hm-happyaddons';
|
73 |
-
$demo = isset( $widget['demo'] ) ? $widget['demo'] : 'https://happyaddons.com/go/get-pro';
|
74 |
-
?>
|
75 |
-
<div class="ha-col ha-col-3">
|
76 |
-
<a class="ha-pro-widget" href="<?php echo esc_url( $demo ); ?>" target="_blank" rel="noopener"><i class="<?php echo $icon; ?>"></i> <?php echo $title; ?></a>
|
77 |
-
</div>
|
78 |
-
<?php
|
79 |
-
endforeach;
|
80 |
-
?>
|
81 |
-
</div>
|
82 |
-
|
83 |
-
<hr>
|
84 |
-
|
85 |
-
<div class="ha-row ha-py-5 ha-pt-0- ha-align-items-center ha-align-center">
|
86 |
-
<div class="ha-col ha-col-12">
|
87 |
-
<h2 class="ha-feature-title ha-mb-3">Get Pro and Experience all those exciting features and widgets</h2>
|
88 |
-
<a style="padding: 20px 40px" class="ha-btn ha-btn-secondary" target="_blank" rel="noopener" href="https://happyaddons.com/go/get-pro">GET PRO</a>
|
89 |
-
</div>
|
90 |
-
</div>
|
91 |
-
|
92 |
-
</div>
|
93 |
-
</div>
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Dashboard pro tab template
|
4 |
+
*/
|
5 |
+
|
6 |
+
defined( 'ABSPATH' ) || die();
|
7 |
+
?>
|
8 |
+
<div class="ha-dashboard-panel">
|
9 |
+
<div class="ha-home-banner">
|
10 |
+
<div class="ha-home-banner__content">
|
11 |
+
<img class="ha-home-banner__logo" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/halogo.svg" alt="">
|
12 |
+
<span class="ha-home-banner__divider"></span>
|
13 |
+
<h2><span>What's Inside </span><br>The HappyAddons Pro</h2>
|
14 |
+
</div>
|
15 |
+
</div>
|
16 |
+
<div class="ha-home-body">
|
17 |
+
<div class="ha-row ha-py-5 ha-align-items-center ha-align-center">
|
18 |
+
<div class="ha-col ha-col-12">
|
19 |
+
<div class="ha-badge">PRO</div>
|
20 |
+
<h2 class="ha-section-title ha-text-primary">Features</h2>
|
21 |
+
</div>
|
22 |
+
</div>
|
23 |
+
|
24 |
+
<div class="ha-row ha-py-5 ha-pt-0 ha-align-items-center">
|
25 |
+
<div class="ha-col ha-col-6">
|
26 |
+
<img class="ha-img-fluid ha-title-icon-size" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/cross-domain.svg" alt="">
|
27 |
+
<h3 class="ha-feature-title">Cross Domain Copy Paste</h3>
|
28 |
+
<p class="f18">Do Cross-Domain Widget Copy Paste within different websites!
|
29 |
+
You can easily copy any widgets from your previously designed website and paste it to your newly created website.
|
30 |
+
</p>
|
31 |
+
</div>
|
32 |
+
<div class="ha-col ha-col-6">
|
33 |
+
<img class="ha-img-fluid ha-pl-2" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/pa-1.png" alt="">
|
34 |
+
</div>
|
35 |
+
</div>
|
36 |
+
|
37 |
+
<div class="ha-row ha-py-5 ha-pt-0 ha-align-items-center">
|
38 |
+
<div class="ha-col ha-col-6">
|
39 |
+
<img class="ha-img-fluid ha-pr-2" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/pa-2.png" alt="">
|
40 |
+
</div>
|
41 |
+
<div class="ha-col ha-col-6">
|
42 |
+
<img class="ha-img-fluid ha-title-icon-size" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/preset.svg" alt="">
|
43 |
+
<h3 class="ha-feature-title">Preset</h3>
|
44 |
+
<p class="f16">400+ Preset Library for Widgets with Drop Down facility. Experience the Instagram Photo Editing like experience in Elementor!</p>
|
45 |
+
</div>
|
46 |
+
</div>
|
47 |
+
|
48 |
+
<div class="ha-row ha-py-5 ha-pt-0 ha-align-items-center">
|
49 |
+
<div class="ha-col ha-col-6">
|
50 |
+
<img class="ha-img-fluid ha-title-icon-size" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/nesting.svg" alt="">
|
51 |
+
<h3 class="ha-feature-title">Unlimited Section Nesting</h3>
|
52 |
+
<p class="f18">Don’t you wish to use multiple sections at the same time in Elementor? With HappyAddons, now you can. Create as many sections as you want and organize your elements more effectively.</p>
|
53 |
+
</div>
|
54 |
+
<div class="ha-col ha-col-6">
|
55 |
+
<img class="ha-img-fluid ha-pl-2" src="<?php echo HAPPY_ADDONS_ASSETS; ?>imgs/admin/pa-3.png" alt="">
|
56 |
+
</div>
|
57 |
+
</div>
|
58 |
+
|
59 |
+
<div class="ha-row ha-py-5 ha-pt-0 ha-align-items-center ha-align-center">
|
60 |
+
<div class="ha-col ha-col-12">
|
61 |
+
<div class="ha-badge">PRO</div>
|
62 |
+
<h2 class="ha-section-title ha-text-primary">Widgets</h2>
|
63 |
+
</div>
|
64 |
+
</div>
|
65 |
+
|
66 |
+
<div class="ha-row ha-py-5 ha-pt-0 ha-align-items-center ha-align-center">
|
67 |
+
<?php
|
68 |
+
$pro_widgets = \Happy_Addons\Elementor\Widgets_Manager::get_pro_widget_map();
|
69 |
+
|
70 |
+
foreach ( $pro_widgets as $widget ) :
|
71 |
+
$title = isset( $widget['title'] ) ? $widget['title'] : 'Widget Title';
|
72 |
+
$icon = isset( $widget['icon'] ) ? $widget['icon'] : 'hm hm-happyaddons';
|
73 |
+
$demo = isset( $widget['demo'] ) ? $widget['demo'] : 'https://happyaddons.com/go/get-pro';
|
74 |
+
?>
|
75 |
+
<div class="ha-col ha-col-3">
|
76 |
+
<a class="ha-pro-widget" href="<?php echo esc_url( $demo ); ?>" target="_blank" rel="noopener"><i class="<?php echo $icon; ?>"></i> <?php echo $title; ?></a>
|
77 |
+
</div>
|
78 |
+
<?php
|
79 |
+
endforeach;
|
80 |
+
?>
|
81 |
+
</div>
|
82 |
+
|
83 |
+
<hr>
|
84 |
+
|
85 |
+
<div class="ha-row ha-py-5 ha-pt-0- ha-align-items-center ha-align-center">
|
86 |
+
<div class="ha-col ha-col-12">
|
87 |
+
<h2 class="ha-feature-title ha-mb-3">Get Pro and Experience all those exciting features and widgets</h2>
|
88 |
+
<a style="padding: 20px 40px" class="ha-btn ha-btn-secondary" target="_blank" rel="noopener" href="https://happyaddons.com/go/get-pro">GET PRO</a>
|
89 |
+
</div>
|
90 |
+
</div>
|
91 |
+
|
92 |
+
</div>
|
93 |
+
</div>
|
widgets/bar-chart/classes/data-map.php
CHANGED
@@ -1,178 +1,178 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Chart widget class
|
4 |
-
*
|
5 |
-
* @package Happy_Addons
|
6 |
-
*/
|
7 |
-
namespace Happy_Addons\Elementor\Widget\Bar_Chart;
|
8 |
-
|
9 |
-
defined( 'ABSPATH' ) || die();
|
10 |
-
|
11 |
-
|
12 |
-
class Data_Map {
|
13 |
-
|
14 |
-
public static function initial($settings) {
|
15 |
-
$data_settings = json_encode(
|
16 |
-
[
|
17 |
-
'type' => $settings['chart_position'],
|
18 |
-
'data' => [
|
19 |
-
'labels' => explode(',', esc_html( $settings['labels'] ) ),
|
20 |
-
'datasets' => self::chart_dataset($settings),
|
21 |
-
],
|
22 |
-
'options' => self::chart_options($settings)
|
23 |
-
]
|
24 |
-
);
|
25 |
-
return $data_settings;
|
26 |
-
}
|
27 |
-
|
28 |
-
public static function chart_dataset($settings) {
|
29 |
-
|
30 |
-
$datasets = [];
|
31 |
-
$items = $settings['chart_data'];
|
32 |
-
|
33 |
-
if ( !empty( $items ) ) {
|
34 |
-
foreach ( $items as $item ) {
|
35 |
-
$item['label'] = !empty( $item['label'] ) ? esc_html( $item['label'] ) : '';
|
36 |
-
$item['data'] = !empty( $item['data'] ) ? array_map( 'trim', explode(',', $item['data'] ) ) : '';
|
37 |
-
$item['backgroundColor'] = !empty( $item['background_color'] ) ? $item['background_color'] : 'rgba(86, 45, 212, 0.7)';
|
38 |
-
$item['hoverBackgroundColor'] = !empty( $item['background_hover_color'] ) ? $item['background_hover_color'] : '#562dd4';
|
39 |
-
$item['borderColor'] = !empty( $item['border_color'] ) ? $item['border_color'] : '#602edc';
|
40 |
-
$item['hoverBorderColor'] = !empty( $item['border_hover_color'] ) ? $item['border_hover_color'] : '#602edc';
|
41 |
-
$item['borderWidth'] = ( $settings['bar_border_width']['size'] !== '' ) ? $settings['bar_border_width']['size'] : 1;
|
42 |
-
|
43 |
-
$datasets[] = $item;
|
44 |
-
}
|
45 |
-
}
|
46 |
-
|
47 |
-
return $datasets;
|
48 |
-
}
|
49 |
-
|
50 |
-
|
51 |
-
public static function chart_options($settings) {
|
52 |
-
|
53 |
-
$xaxes_labels_display = $settings['xaxes_labels_display'] == 'yes' ? true : false;
|
54 |
-
$yaxes_labels_display = $settings['yaxes_labels_display'] == 'yes' ? true : false;
|
55 |
-
$tooltips_display = $settings['tooltip_display'] == 'yes' ? true : false;
|
56 |
-
$legend_display = $settings['legend_display'] == 'yes' ? true : false;
|
57 |
-
$xaxes_grid_display = $settings['xaxes_grid_display'] == 'yes' ? true : false;
|
58 |
-
$yaxes_grid_display = $settings['yaxes_grid_display'] == 'yes' ? true : false;
|
59 |
-
$title_display = $settings['title_display'] == 'yes' ? true : false;
|
60 |
-
|
61 |
-
$legend_style = [
|
62 |
-
'boxWidth' => !empty( $settings['legend_box_width']['size'] ) ? $settings['legend_box_width']['size'] : 45,
|
63 |
-
'fontFamily' => !empty( $settings['legend_font_family'] ) ? $settings['legend_font_family'] : 'auto',
|
64 |
-
'fontSize' => !empty( $settings['legend_font_size']['size'] ) ? $settings['legend_font_size']['size'] : 12,
|
65 |
-
'fontStyle' => (!empty( $settings['legend_font_style'] ) ? $settings['legend_font_style'] : '') . ' ' . (!empty( $settings['legend_font_weight'] ) ? $settings['legend_font_weight'] : ''),
|
66 |
-
'fontColor' => !empty( $settings['legend_font_color'] ) ? $settings['legend_font_color'] : '#222',
|
67 |
-
];
|
68 |
-
|
69 |
-
$tooltip = [
|
70 |
-
'enabled' => $tooltips_display,
|
71 |
-
'backgroundColor' => !empty( $settings['tooltip_background_color'] ) ? $settings['tooltip_background_color'] : 'rgba(0, 0, 0, .7)',
|
72 |
-
'borderWidth' => !empty( $settings['tooltip_border_width']['size'] ) ? $settings['tooltip_border_width']['size'] : 0,
|
73 |
-
'borderColor' => !empty( $settings['tooltip_border_color'] ) ? $settings['tooltip_border_color'] : 'rgba(0, 0, 0, 0.1)',
|
74 |
-
'titleFontFamily' => !empty( $settings['tooltip_title_font_family'] ) ? $settings['tooltip_title_font_family'] : 'auto',
|
75 |
-
'titleFontSize' => !empty( $settings['tooltip_title_font_size']['size'] ) ? $settings['tooltip_title_font_size']['size'] : 12,
|
76 |
-
'titleFontStyle' => (!empty( $settings['tooltip_title_font_style'] ) ? $settings['tooltip_title_font_style'] : '') . ' ' . (!empty( $settings['tooltip_title_font_weight'] ) ? $settings['tooltip_title_font_weight'] : ''),
|
77 |
-
'titleFontColor' => !empty( $settings['tooltip_title_font_color'] ) ? $settings['tooltip_title_font_color'] : '#fff',
|
78 |
-
'bodyFontFamily' => !empty( $settings['tooltip_body_font_family'] ) ? $settings['tooltip_body_font_family'] : 'auto',
|
79 |
-
'bodyFontSize' => !empty( $settings['tooltip_body_font_size']['size'] ) ? $settings['tooltip_body_font_size']['size'] : 11,
|
80 |
-
'bodyFontStyle' => (!empty( $settings['tooltip_body_font_style'] ) ? $settings['tooltip_body_font_style'] : '') . ' ' . (!empty( $settings['tooltip_body_font_weight'] ) ? $settings['tooltip_body_font_weight'] : ''),
|
81 |
-
'bodyFontColor' => !empty( $settings['tooltip_body_font_color'] ) ? $settings['tooltip_body_font_color'] : '#f7f7f7',
|
82 |
-
'cornerRadius' => !empty( $settings['tooltip_border_radius']['size'] ) ? $settings['tooltip_border_radius']['size'] : 6,
|
83 |
-
'xPadding' => !empty( $settings['tooltip_padding']['size'] ) ? $settings['tooltip_padding']['size'] : 6,
|
84 |
-
'yPadding' => !empty( $settings['tooltip_padding']['size'] ) ? $settings['tooltip_padding']['size'] : 6,
|
85 |
-
'caretSize' => !empty( $settings['tooltip_caret_size']['size'] ) ? $settings['tooltip_caret_size']['size'] : 5,
|
86 |
-
'mode' => !empty( $settings['tooltip_mode'] ) ? $settings['tooltip_mode'] : 'nearest',
|
87 |
-
];
|
88 |
-
|
89 |
-
if ( $xaxes_grid_display == 'yes' ) {
|
90 |
-
$xaxes_gridLines = [
|
91 |
-
'drawBorder' => false,
|
92 |
-
'color' => isset( $settings['grid_color'] ) ? $settings['grid_color'] : '#eeeeee',
|
93 |
-
];
|
94 |
-
} else {
|
95 |
-
$xaxes_gridLines = [];
|
96 |
-
}
|
97 |
-
|
98 |
-
if ( $yaxes_grid_display == 'yes' ) {
|
99 |
-
$yaxes_gridLines = [
|
100 |
-
'drawBorder' => false,
|
101 |
-
'color' => isset( $settings['grid_color'] ) ? $settings['grid_color'] : '#eeeeee',
|
102 |
-
];
|
103 |
-
} else {
|
104 |
-
$yaxes_gridLines = [];
|
105 |
-
}
|
106 |
-
|
107 |
-
$options = [
|
108 |
-
'title' => [
|
109 |
-
'display' => $title_display,
|
110 |
-
'text' => $settings['chart_title'],
|
111 |
-
'fontFamily' => !empty( $settings['title_font_family'] ) ? $settings['title_font_family'] : 'auto',
|
112 |
-
'fontSize' => !empty( $settings['title_font_size']['size'] ) ? $settings['title_font_size']['size'] : 18,
|
113 |
-
'fontStyle' => (!empty( $settings['title_font_style'] ) ? $settings['title_font_style'] : '') . ' ' . (!empty( $settings['title_font_weight'] ) ? $settings['title_font_weight'] : ''),
|
114 |
-
'fontColor' => !empty( $settings['title_font_color'] ) ? $settings['title_font_color'] : '#222',
|
115 |
-
],
|
116 |
-
'tooltips' => $tooltip,
|
117 |
-
'legend' => [
|
118 |
-
'display' => $legend_display,
|
119 |
-
'position' => !empty( $settings['legend_position'] ) ? $settings['legend_position'] : 'top',
|
120 |
-
'reverse' => $settings['legend_reverse'] == 'yes' ? true : false,
|
121 |
-
'labels' => $legend_style,
|
122 |
-
],
|
123 |
-
'animation' => [
|
124 |
-
'easing' => $settings['animation_options'],
|
125 |
-
'duration' => $settings['chart_animation_duration'],
|
126 |
-
],
|
127 |
-
'layout' => [
|
128 |
-
'padding' => [
|
129 |
-
'top' => $settings['layout_padding']['top'],
|
130 |
-
'right' => $settings['layout_padding']['right'],
|
131 |
-
'bottom' => $settings['layout_padding']['bottom'],
|
132 |
-
'left' => $settings['layout_padding']['left']
|
133 |
-
]
|
134 |
-
],
|
135 |
-
'maintainAspectRatio' => false,
|
136 |
-
'scales' => [
|
137 |
-
'xAxes' => [
|
138 |
-
[
|
139 |
-
'ticks' => [
|
140 |
-
'display' => $xaxes_labels_display,
|
141 |
-
'beginAtZero' => true,
|
142 |
-
'max' => isset( $settings['axis_range'] ) ? $settings['axis_range'] : 10,
|
143 |
-
'stepSize' => isset( $settings['step_size'] ) ? $settings['step_size'] : 1,
|
144 |
-
'fontFamily' => !empty( $settings['labels_xaxes_font_family'] ) ? $settings['labels_xaxes_font_family'] : 'auto',
|
145 |
-
'fontSize' => !empty( $settings['labels_xaxes_font_size']['size'] ) ? $settings['labels_xaxes_font_size']['size'] : 12,
|
146 |
-
'fontStyle' => (!empty( $settings['labels_xaxes_font_style'] ) ? $settings['labels_xaxes_font_style'] : '') . ' ' . (!empty( $settings['labels_xaxes_font_weight'] ) ? $settings['labels_xaxes_font_weight'] : ''),
|
147 |
-
'fontColor' => !empty( $settings['labels_xaxes_font_color'] ) ? $settings['labels_xaxes_font_color'] : '#222',
|
148 |
-
'padding' => !empty( $settings['labels_padding']['size'] ) ? $settings['labels_padding']['size'] : 10,
|
149 |
-
],
|
150 |
-
'gridLines' => $xaxes_gridLines,
|
151 |
-
'barPercentage' => ( $settings['bar_width']['size'] !== '' ) ? $settings['bar_width']['size'] / 100 : '',
|
152 |
-
'categoryPercentage' => ( $settings['category_width']['size'] !== '' ) ? $settings['category_width']['size'] / 100 : '',
|
153 |
-
]
|
154 |
-
],
|
155 |
-
'yAxes' => [
|
156 |
-
[
|
157 |
-
'ticks' => [
|
158 |
-
'display' => $yaxes_labels_display,
|
159 |
-
'beginAtZero' => true,
|
160 |
-
'max' => isset( $settings['axis_range'] ) ? $settings['axis_range'] : 10,
|
161 |
-
'stepSize' => isset( $settings['step_size'] ) ? $settings['step_size'] : 1,
|
162 |
-
'fontFamily' => !empty( $settings['labels_yaxes_font_family'] ) ? $settings['labels_yaxes_font_family'] : 'auto',
|
163 |
-
'fontSize' => !empty( $settings['labels_yaxes_font_size']['size'] ) ? $settings['labels_yaxes_font_size']['size'] : 12,
|
164 |
-
'fontStyle' => (!empty( $settings['labels_yaxes_font_style'] ) ? $settings['labels_yaxes_font_style'] : '') . ' ' . (!empty( $settings['labels_yaxes_font_weight'] ) ? $settings['labels_yaxes_font_weight'] : ''),
|
165 |
-
'fontColor' => !empty( $settings['labels_yaxes_font_color'] ) ? $settings['labels_yaxes_font_color'] : '#222',
|
166 |
-
'padding' => !empty( $settings['labels_padding']['size'] ) ? $settings['labels_padding']['size'] : 10,
|
167 |
-
],
|
168 |
-
'gridLines' => $yaxes_gridLines,
|
169 |
-
'barPercentage' => ( $settings['bar_width']['size'] !== '' ) ? $settings['bar_width']['size'] / 100 : '',
|
170 |
-
'categoryPercentage' => ( $settings['category_width']['size'] !== '' ) ? $settings['category_width']['size'] / 100 : '',
|
171 |
-
]
|
172 |
-
],
|
173 |
-
],
|
174 |
-
];
|
175 |
-
|
176 |
-
return $options;
|
177 |
-
}
|
178 |
-
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Chart widget class
|
4 |
+
*
|
5 |
+
* @package Happy_Addons
|
6 |
+
*/
|
7 |
+
namespace Happy_Addons\Elementor\Widget\Bar_Chart;
|
8 |
+
|
9 |
+
defined( 'ABSPATH' ) || die();
|
10 |
+
|
11 |
+
|
12 |
+
class Data_Map {
|
13 |
+
|
14 |
+
public static function initial($settings) {
|
15 |
+
$data_settings = json_encode(
|
16 |
+
[
|
17 |
+
'type' => $settings['chart_position'],
|
18 |
+
'data' => [
|
19 |
+
'labels' => explode(',', esc_html( $settings['labels'] ) ),
|
20 |
+
'datasets' => self::chart_dataset($settings),
|
21 |
+
],
|
22 |
+
'options' => self::chart_options($settings)
|
23 |
+
]
|
24 |
+
);
|
25 |
+
return $data_settings;
|
26 |
+
}
|
27 |
+
|
28 |
+
public static function chart_dataset($settings) {
|
29 |
+
|
30 |
+
$datasets = [];
|
31 |
+
$items = $settings['chart_data'];
|
32 |
+
|
33 |
+
if ( !empty( $items ) ) {
|
34 |
+
foreach ( $items as $item ) {
|
35 |
+
$item['label'] = !empty( $item['label'] ) ? esc_html( $item['label'] ) : '';
|
36 |
+
$item['data'] = !empty( $item['data'] ) ? array_map( 'trim', explode(',', $item['data'] ) ) : '';
|
37 |
+
$item['backgroundColor'] = !empty( $item['background_color'] ) ? $item['background_color'] : 'rgba(86, 45, 212, 0.7)';
|
38 |
+
$item['hoverBackgroundColor'] = !empty( $item['background_hover_color'] ) ? $item['background_hover_color'] : '#562dd4';
|
39 |
+
$item['borderColor'] = !empty( $item['border_color'] ) ? $item['border_color'] : '#602edc';
|
40 |
+
$item['hoverBorderColor'] = !empty( $item['border_hover_color'] ) ? $item['border_hover_color'] : '#602edc';
|
41 |
+
$item['borderWidth'] = ( $settings['bar_border_width']['size'] !== '' ) ? $settings['bar_border_width']['size'] : 1;
|
42 |
+
|
43 |
+
$datasets[] = $item;
|
44 |
+
}
|
45 |
+
}
|
46 |
+
|
47 |
+
return $datasets;
|
48 |
+
}
|
49 |
+
|
50 |
+
|
51 |
+
public static function chart_options($settings) {
|
52 |
+
|
53 |
+
$xaxes_labels_display = $settings['xaxes_labels_display'] == 'yes' ? true : false;
|
54 |
+
$yaxes_labels_display = $settings['yaxes_labels_display'] == 'yes' ? true : false;
|
55 |
+
$tooltips_display = $settings['tooltip_display'] == 'yes' ? true : false;
|
56 |
+
$legend_display = $settings['legend_display'] == 'yes' ? true : false;
|
57 |
+
$xaxes_grid_display = $settings['xaxes_grid_display'] == 'yes' ? true : false;
|
58 |
+
$yaxes_grid_display = $settings['yaxes_grid_display'] == 'yes' ? true : false;
|
59 |
+
$title_display = $settings['title_display'] == 'yes' ? true : false;
|
60 |
+
|
61 |
+
$legend_style = [
|
62 |
+
'boxWidth' => !empty( $settings['legend_box_width']['size'] ) ? $settings['legend_box_width']['size'] : 45,
|
63 |
+
'fontFamily' => !empty( $settings['legend_font_family'] ) ? $settings['legend_font_family'] : 'auto',
|
64 |
+
'fontSize' => !empty( $settings['legend_font_size']['size'] ) ? $settings['legend_font_size']['size'] : 12,
|
65 |
+
'fontStyle' => (!empty( $settings['legend_font_style'] ) ? $settings['legend_font_style'] : '') . ' ' . (!empty( $settings['legend_font_weight'] ) ? $settings['legend_font_weight'] : ''),
|
66 |
+
'fontColor' => !empty( $settings['legend_font_color'] ) ? $settings['legend_font_color'] : '#222',
|
67 |
+
];
|
68 |
+
|
69 |
+
$tooltip = [
|
70 |
+
'enabled' => $tooltips_display,
|
71 |
+
'backgroundColor' => !empty( $settings['tooltip_background_color'] ) ? $settings['tooltip_background_color'] : 'rgba(0, 0, 0, .7)',
|
72 |
+
'borderWidth' => !empty( $settings['tooltip_border_width']['size'] ) ? $settings['tooltip_border_width']['size'] : 0,
|
73 |
+
'borderColor' => !empty( $settings['tooltip_border_color'] ) ? $settings['tooltip_border_color'] : 'rgba(0, 0, 0, 0.1)',
|
74 |
+
'titleFontFamily' => !empty( $settings['tooltip_title_font_family'] ) ? $settings['tooltip_title_font_family'] : 'auto',
|
75 |
+
'titleFontSize' => !empty( $settings['tooltip_title_font_size']['size'] ) ? $settings['tooltip_title_font_size']['size'] : 12,
|
76 |
+
'titleFontStyle' => (!empty( $settings['tooltip_title_font_style'] ) ? $settings['tooltip_title_font_style'] : '') . ' ' . (!empty( $settings['tooltip_title_font_weight'] ) ? $settings['tooltip_title_font_weight'] : ''),
|
77 |
+
'titleFontColor' => !empty( $settings['tooltip_title_font_color'] ) ? $settings['tooltip_title_font_color'] : '#fff',
|
78 |
+
'bodyFontFamily' => !empty( $settings['tooltip_body_font_family'] ) ? $settings['tooltip_body_font_family'] : 'auto',
|
79 |
+
'bodyFontSize' => !empty( $settings['tooltip_body_font_size']['size'] ) ? $settings['tooltip_body_font_size']['size'] : 11,
|
80 |
+
'bodyFontStyle' => (!empty( $settings['tooltip_body_font_style'] ) ? $settings['tooltip_body_font_style'] : '') . ' ' . (!empty( $settings['tooltip_body_font_weight'] ) ? $settings['tooltip_body_font_weight'] : ''),
|
81 |
+
'bodyFontColor' => !empty( $settings['tooltip_body_font_color'] ) ? $settings['tooltip_body_font_color'] : '#f7f7f7',
|
82 |
+
'cornerRadius' => !empty( $settings['tooltip_border_radius']['size'] ) ? $settings['tooltip_border_radius']['size'] : 6,
|
83 |
+
'xPadding' => !empty( $settings['tooltip_padding']['size'] ) ? $settings['tooltip_padding']['size'] : 6,
|
84 |
+
'yPadding' => !empty( $settings['tooltip_padding']['size'] ) ? $settings['tooltip_padding']['size'] : 6,
|
85 |
+
'caretSize' => !empty( $settings['tooltip_caret_size']['size'] ) ? $settings['tooltip_caret_size']['size'] : 5,
|
86 |
+
'mode' => !empty( $settings['tooltip_mode'] ) ? $settings['tooltip_mode'] : 'nearest',
|
87 |
+
];
|
88 |
+
|
89 |
+
if ( $xaxes_grid_display == 'yes' ) {
|
90 |
+
$xaxes_gridLines = [
|
91 |
+
'drawBorder' => false,
|
92 |
+
'color' => isset( $settings['grid_color'] ) ? $settings['grid_color'] : '#eeeeee',
|
93 |
+
];
|
94 |
+
} else {
|
95 |
+
$xaxes_gridLines = [];
|
96 |
+
}
|
97 |
+
|
98 |
+
if ( $yaxes_grid_display == 'yes' ) {
|
99 |
+
$yaxes_gridLines = [
|
100 |
+
'drawBorder' => false,
|
101 |
+
'color' => isset( $settings['grid_color'] ) ? $settings['grid_color'] : '#eeeeee',
|
102 |
+
];
|
103 |
+
} else {
|
104 |
+
$yaxes_gridLines = [];
|
105 |
+
}
|
106 |
+
|
107 |
+
$options = [
|
108 |
+
'title' => [
|
109 |
+
'display' => $title_display,
|
110 |
+
'text' => $settings['chart_title'],
|
111 |
+
'fontFamily' => !empty( $settings['title_font_family'] ) ? $settings['title_font_family'] : 'auto',
|
112 |
+
'fontSize' => !empty( $settings['title_font_size']['size'] ) ? $settings['title_font_size']['size'] : 18,
|
113 |
+
'fontStyle' => (!empty( $settings['title_font_style'] ) ? $settings['title_font_style'] : '') . ' ' . (!empty( $settings['title_font_weight'] ) ? $settings['title_font_weight'] : ''),
|
114 |
+
'fontColor' => !empty( $settings['title_font_color'] ) ? $settings['title_font_color'] : '#222',
|
115 |
+
],
|
116 |
+
'tooltips' => $tooltip,
|
117 |
+
'legend' => [
|
118 |
+
'display' => $legend_display,
|
119 |
+
'position' => !empty( $settings['legend_position'] ) ? $settings['legend_position'] : 'top',
|
120 |
+
'reverse' => $settings['legend_reverse'] == 'yes' ? true : false,
|
121 |
+
'labels' => $legend_style,
|
122 |
+
],
|
123 |
+
'animation' => [
|
124 |
+
'easing' => $settings['animation_options'],
|
125 |
+
'duration' => $settings['chart_animation_duration'],
|
126 |
+
],
|
127 |
+
'layout' => [
|
128 |
+
'padding' => [
|
129 |
+
'top' => $settings['layout_padding']['top'],
|
130 |
+
'right' => $settings['layout_padding']['right'],
|
131 |
+
'bottom' => $settings['layout_padding']['bottom'],
|
132 |
+
'left' => $settings['layout_padding']['left']
|
133 |
+
]
|
134 |
+
],
|
135 |
+
'maintainAspectRatio' => false,
|
136 |
+
'scales' => [
|
137 |
+
'xAxes' => [
|
138 |
+
[
|
139 |
+
'ticks' => [
|
140 |
+
'display' => $xaxes_labels_display,
|
141 |
+
'beginAtZero' => true,
|
142 |
+
'max' => isset( $settings['axis_range'] ) ? $settings['axis_range'] : 10,
|
143 |
+
'stepSize' => isset( $settings['step_size'] ) ? $settings['step_size'] : 1,
|
144 |
+
'fontFamily' => !empty( $settings['labels_xaxes_font_family'] ) ? $settings['labels_xaxes_font_family'] : 'auto',
|
145 |
+
'fontSize' => !empty( $settings['labels_xaxes_font_size']['size'] ) ? $settings['labels_xaxes_font_size']['size'] : 12,
|
146 |
+
'fontStyle' => (!empty( $settings['labels_xaxes_font_style'] ) ? $settings['labels_xaxes_font_style'] : '') . ' ' . (!empty( $settings['labels_xaxes_font_weight'] ) ? $settings['labels_xaxes_font_weight'] : ''),
|
147 |
+
'fontColor' => !empty( $settings['labels_xaxes_font_color'] ) ? $settings['labels_xaxes_font_color'] : '#222',
|
148 |
+
'padding' => !empty( $settings['labels_padding']['size'] ) ? $settings['labels_padding']['size'] : 10,
|
149 |
+
],
|
150 |
+
'gridLines' => $xaxes_gridLines,
|
151 |
+
'barPercentage' => ( $settings['bar_width']['size'] !== '' ) ? $settings['bar_width']['size'] / 100 : '',
|
152 |
+
'categoryPercentage' => ( $settings['category_width']['size'] !== '' ) ? $settings['category_width']['size'] / 100 : '',
|
153 |
+
]
|
154 |
+
],
|
155 |
+
'yAxes' => [
|
156 |
+
[
|
157 |
+
'ticks' => [
|
158 |
+
'display' => $yaxes_labels_display,
|
159 |
+
'beginAtZero' => true,
|
160 |
+
'max' => isset( $settings['axis_range'] ) ? $settings['axis_range'] : 10,
|
161 |
+
'stepSize' => isset( $settings['step_size'] ) ? $settings['step_size'] : 1,
|
162 |
+
'fontFamily' => !empty( $settings['labels_yaxes_font_family'] ) ? $settings['labels_yaxes_font_family'] : 'auto',
|
163 |
+
'fontSize' => !empty( $settings['labels_yaxes_font_size']['size'] ) ? $settings['labels_yaxes_font_size']['size'] : 12,
|
164 |
+
'fontStyle' => (!empty( $settings['labels_yaxes_font_style'] ) ? $settings['labels_yaxes_font_style'] : '') . ' ' . (!empty( $settings['labels_yaxes_font_weight'] ) ? $settings['labels_yaxes_font_weight'] : ''),
|
165 |
+
'fontColor' => !empty( $settings['labels_yaxes_font_color'] ) ? $settings['labels_yaxes_font_color'] : '#222',
|
166 |
+
'padding' => !empty( $settings['labels_padding']['size'] ) ? $settings['labels_padding']['size'] : 10,
|
167 |
+
],
|
168 |
+
'gridLines' => $yaxes_gridLines,
|
169 |
+
'barPercentage' => ( $settings['bar_width']['size'] !== '' ) ? $settings['bar_width']['size'] / 100 : '',
|
170 |
+
'categoryPercentage' => ( $settings['category_width']['size'] !== '' ) ? $settings['category_width']['size'] / 100 : '',
|
171 |
+
]
|
172 |
+
],
|
173 |
+
],
|
174 |
+
];
|
175 |
+
|
176 |
+
return $options;
|
177 |
+
}
|
178 |
+
}
|
widgets/bar-chart/widget.php
CHANGED
@@ -154,7 +154,7 @@ class Bar_Chart extends Base {
|
|
154 |
'chart_data',
|
155 |
[
|
156 |
'type' => Controls_Manager::REPEATER,
|
157 |
-
'fields' =>
|
158 |
'title_field' => '{{{ label }}}',
|
159 |
'default' => [
|
160 |
[
|
154 |
'chart_data',
|
155 |
[
|
156 |
'type' => Controls_Manager::REPEATER,
|
157 |
+
'fields' => $repeater->get_controls(),
|
158 |
'title_field' => '{{{ label }}}',
|
159 |
'default' => [
|
160 |
[
|
widgets/calderaform/widget.php
CHANGED
@@ -1,559 +1,559 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Caldera Form widget class
|
4 |
-
*
|
5 |
-
* @package Happy_Addons
|
6 |
-
*/
|
7 |
-
namespace Happy_Addons\Elementor\Widget;
|
8 |
-
|
9 |
-
use Elementor\Controls_Manager;
|
10 |
-
use Elementor\Group_Control_Border;
|
11 |
-
use Elementor\Group_Control_Box_Shadow;
|
12 |
-
use Elementor\Group_Control_Typography;
|
13 |
-
|
14 |
-
defined( 'ABSPATH' ) || die();
|
15 |
-
|
16 |
-
class CalderaForm extends Base {
|
17 |
-
|
18 |
-
/**
|
19 |
-
* Get widget title.
|
20 |
-
*
|
21 |
-
* @since 1.0.0
|
22 |
-
* @access public
|
23 |
-
*
|
24 |
-
* @return string Widget title.
|
25 |
-
*/
|
26 |
-
public function get_title() {
|
27 |
-
return __( 'Caldera Forms', 'happy-elementor-addons' );
|
28 |
-
}
|
29 |
-
|
30 |
-
public function get_custom_help_url() {
|
31 |
-
return 'https://happyaddons.com/docs/happy-addons-for-elementor/widgets/caldera-forms/';
|
32 |
-
}
|
33 |
-
|
34 |
-
/**
|
35 |
-
* Get widget icon.
|
36 |
-
*
|
37 |
-
* @since 1.0.0
|
38 |
-
* @access public
|
39 |
-
*
|
40 |
-
* @return string Widget icon.
|
41 |
-
*/
|
42 |
-
public function get_icon() {
|
43 |
-
return 'hm hm-form';
|
44 |
-
}
|
45 |
-
|
46 |
-
public function get_keywords() {
|
47 |
-
return [ 'caldera', 'wpf', 'wpform' , 'form', 'contact', 'cf7', 'contact form', 'gravity', 'ninja' ];
|
48 |
-
}
|
49 |
-
|
50 |
-
protected function register_content_controls() {
|
51 |
-
$this->start_controls_section(
|
52 |
-
'_section_calderaf',
|
53 |
-
[
|
54 |
-
'label' => ha_is_calderaforms_activated() ? __( 'Caldera Forms', 'happy-elementor-addons' ) : __( 'Missing Notice', 'happy-elementor-addons' ),
|
55 |
-
]
|
56 |
-
);
|
57 |
-
|
58 |
-
if ( ! ha_is_calderaforms_activated() ) {
|
59 |
-
$this->add_control(
|
60 |
-
'_calderaforms_missing_notice',
|
61 |
-
[
|
62 |
-
'type' => Controls_Manager::RAW_HTML,
|
63 |
-
'raw' => sprintf(
|
64 |
-
__( 'Hello %2$s, looks like %1$s is missing in your site. Please click on the link below and install/activate %1$s. Make sure to refresh this page after installation or activation.', 'happy-elementor-addons' ),
|
65 |
-
'<a href="'.esc_url( admin_url( 'plugin-install.php?s=Caldera+Forms&tab=search&type=term' ) ).'" target="_blank" rel="noopener">Caldera Forms</a>',
|
66 |
-
ha_get_current_user_display_name()
|
67 |
-
),
|
68 |
-
'content_classes' => 'elementor-panel-alert elementor-panel-alert-danger',
|
69 |
-
]
|
70 |
-
);
|
71 |
-
|
72 |
-
$this->add_control(
|
73 |
-
'_calderaforms_install',
|
74 |
-
[
|
75 |
-
'type' => Controls_Manager::RAW_HTML,
|
76 |
-
'raw' => '<a href="'.esc_url( admin_url( 'plugin-install.php?s=Caldera+Forms&tab=search&type=term' ) ).'" target="_blank" rel="noopener">Click to install or activate Caldera Forms</a>',
|
77 |
-
]
|
78 |
-
);
|
79 |
-
|
80 |
-
$this->end_controls_section();
|
81 |
-
return;
|
82 |
-
}
|
83 |
-
|
84 |
-
$this->add_control(
|
85 |
-
'form_id',
|
86 |
-
[
|
87 |
-
'label' => __( 'Select Your Form', 'happy-elementor-addons' ),
|
88 |
-
'type' => Controls_Manager::SELECT,
|
89 |
-
'label_block' => true,
|
90 |
-
'options' => ['' => __( '', 'happy-elementor-addons' ) ] + \ha_get_caldera_form(),
|
91 |
-
]
|
92 |
-
);
|
93 |
-
|
94 |
-
$this->end_controls_section();
|
95 |
-
}
|
96 |
-
|
97 |
-
protected function register_style_controls() {
|
98 |
-
$this->start_controls_section(
|
99 |
-
'_section_fields_style',
|
100 |
-
[
|
101 |
-
'label' => __( 'Form Fields', 'happy-elementor-addons' ),
|
102 |
-
'tab' => Controls_Manager::TAB_STYLE,
|
103 |
-
]
|
104 |
-
);
|
105 |
-
|
106 |
-
$this->add_responsive_control(
|
107 |
-
'field_margin',
|
108 |
-
[
|
109 |
-
'label' => __( 'Field Spacing', 'happy-elementor-addons' ),
|
110 |
-
'type' => Controls_Manager::DIMENSIONS,
|
111 |
-
'size_units' => [ 'px', '%' ],
|
112 |
-
'selectors' => [
|
113 |
-
'{{WRAPPER}} .form-group:not(.btn)' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
114 |
-
],
|
115 |
-
]
|
116 |
-
);
|
117 |
-
|
118 |
-
$this->add_responsive_control(
|
119 |
-
'field_padding',
|
120 |
-
[
|
121 |
-
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
122 |
-
'type' => Controls_Manager::DIMENSIONS,
|
123 |
-
'size_units' => [ 'px', 'em', '%' ],
|
124 |
-
'selectors' => [
|
125 |
-
'{{WRAPPER}} .form-group input:not(.btn)' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
126 |
-
],
|
127 |
-
]
|
128 |
-
);
|
129 |
-
|
130 |
-
$this->add_responsive_control(
|
131 |
-
'field_border_radius',
|
132 |
-
[
|
133 |
-
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
134 |
-
'type' => Controls_Manager::DIMENSIONS,
|
135 |
-
'size_units' => [ 'px', '%' ],
|
136 |
-
'selectors' => [
|
137 |
-
'{{WRAPPER}} .form-group input:not(.btn), {{WRAPPER}} .form-group textarea' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
138 |
-
],
|
139 |
-
]
|
140 |
-
);
|
141 |
-
|
142 |
-
$this->add_group_control(
|
143 |
-
Group_Control_Typography::get_type(),
|
144 |
-
[
|
145 |
-
'name' => 'field_typography',
|
146 |
-
'label' => __( 'Typography', 'happy-elementor-addons' ),
|
147 |
-
'selector' => '{{WRAPPER}} .form-group input:not(.btn), {{WRAPPER}} .form-group textarea',
|
148 |
-
]
|
149 |
-
);
|
150 |
-
|
151 |
-
$this->add_control(
|
152 |
-
'field_textcolor',
|
153 |
-
[
|
154 |
-
'label' => __( 'Field Text Color', 'happy-elementor-addons' ),
|
155 |
-
'type' => Controls_Manager::COLOR,
|
156 |
-
'selectors' => [
|
157 |
-
'{{WRAPPER}} .form-group input:not(.btn), {{WRAPPER}} .form-group textarea' => 'color: {{VALUE}}',
|
158 |
-
],
|
159 |
-
]
|
160 |
-
);
|
161 |
-
|
162 |
-
$this->add_control(
|
163 |
-
'field_placeholder_color',
|
164 |
-
[
|
165 |
-
'label' => __( 'Field Placeholder Color', 'happy-elementor-addons' ),
|
166 |
-
'type' => Controls_Manager::COLOR,
|
167 |
-
'selectors' => [
|
168 |
-
'{{WRAPPER}} ::-webkit-input-placeholder' => 'color: {{VALUE}};',
|
169 |
-
'{{WRAPPER}} ::-moz-placeholder' => 'color: {{VALUE}};',
|
170 |
-
'{{WRAPPER}} ::-ms-input-placeholder' => 'color: {{VALUE}};',
|
171 |
-
],
|
172 |
-
]
|
173 |
-
);
|
174 |
-
|
175 |
-
$this->start_controls_tabs( 'tabs_field_state' );
|
176 |
-
|
177 |
-
$this->start_controls_tab(
|
178 |
-
'tab_field_normal',
|
179 |
-
[
|
180 |
-
'label' => __( 'Normal', 'happy-elementor-addons' ),
|
181 |
-
]
|
182 |
-
);
|
183 |
-
|
184 |
-
$this->add_group_control(
|
185 |
-
Group_Control_Border::get_type(),
|
186 |
-
[
|
187 |
-
'name' => 'field_border',
|
188 |
-
'selector' => '{{WRAPPER}} .form-group input:not(.btn), {{WRAPPER}} .form-group textarea',
|
189 |
-
]
|
190 |
-
);
|
191 |
-
|
192 |
-
$this->add_group_control(
|
193 |
-
Group_Control_Box_Shadow::get_type(),
|
194 |
-
[
|
195 |
-
'name' => 'field_box_shadow',
|
196 |
-
'selector' => '{{WRAPPER}} .form-group input:not(.btn), {{WRAPPER}} .form-group textarea',
|
197 |
-
]
|
198 |
-
);
|
199 |
-
|
200 |
-
$this->add_control(
|
201 |
-
'field_bg_color',
|
202 |
-
[
|
203 |
-
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
204 |
-
'type' => Controls_Manager::COLOR,
|
205 |
-
'selectors' => [
|
206 |
-
'{{WRAPPER}} .form-group input:not(.btn), {{WRAPPER}} .form-group textarea' => 'background-color: {{VALUE}}',
|
207 |
-
],
|
208 |
-
]
|
209 |
-
);
|
210 |
-
|
211 |
-
$this->end_controls_tab();
|
212 |
-
|
213 |
-
$this->start_controls_tab(
|
214 |
-
'tab_field_focus',
|
215 |
-
[
|
216 |
-
'label' => __( 'Focus', 'happy-elementor-addons' ),
|
217 |
-
]
|
218 |
-
);
|
219 |
-
|
220 |
-
$this->add_group_control(
|
221 |
-
Group_Control_Border::get_type(),
|
222 |
-
[
|
223 |
-
'name' => 'field_focus_border',
|
224 |
-
'selector' => '{{WRAPPER}} .form-group input:focus:not(.btn), {{WRAPPER}} .form-group textarea:focus',
|
225 |
-
]
|
226 |
-
);
|
227 |
-
|
228 |
-
$this->add_group_control(
|
229 |
-
Group_Control_Box_Shadow::get_type(),
|
230 |
-
[
|
231 |
-
'name' => 'field_focus_box_shadow',
|
232 |
-
'exclude' => [
|
233 |
-
'box_shadow_position',
|
234 |
-
],
|
235 |
-
'selector' => '{{WRAPPER}} .form-group input:focus:not(.btn), {{WRAPPER}} .form-group textarea:focus',
|
236 |
-
]
|
237 |
-
);
|
238 |
-
|
239 |
-
$this->add_control(
|
240 |
-
'field_focus_bg_color',
|
241 |
-
[
|
242 |
-
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
243 |
-
'type' => Controls_Manager::COLOR,
|
244 |
-
'selectors' => [
|
245 |
-
'{{WRAPPER}} .form-group input:focus:not(.btn), {{WRAPPER}} .form-group textarea:focus' => 'background-color: {{VALUE}}',
|
246 |
-
],
|
247 |
-
]
|
248 |
-
);
|
249 |
-
|
250 |
-
$this->end_controls_tab();
|
251 |
-
$this->end_controls_tabs();
|
252 |
-
|
253 |
-
$this->end_controls_section();
|
254 |
-
|
255 |
-
|
256 |
-
$this->start_controls_section(
|
257 |
-
'caldera-form-label',
|
258 |
-
[
|
259 |
-
'label' => __( 'Form Fields Label', 'happy-elementor-addons' ),
|
260 |
-
'tab' => Controls_Manager::TAB_STYLE,
|
261 |
-
]
|
262 |
-
);
|
263 |
-
|
264 |
-
$this->add_responsive_control(
|
265 |
-
'label_margin',
|
266 |
-
[
|
267 |
-
'label' => __( 'Margin', 'happy-elementor-addons' ),
|
268 |
-
'type' => Controls_Manager::DIMENSIONS,
|
269 |
-
'size_units' => [ 'px', '%' ],
|
270 |
-
'selectors' => [
|
271 |
-
'{{WRAPPER}} .caldera-grid label' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
272 |
-
],
|
273 |
-
]
|
274 |
-
);
|
275 |
-
|
276 |
-
$this->add_responsive_control(
|
277 |
-
'label_padding',
|
278 |
-
[
|
279 |
-
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
280 |
-
'type' => Controls_Manager::DIMENSIONS,
|
281 |
-
'size_units' => [ 'px', 'em', '%' ],
|
282 |
-
'selectors' => [
|
283 |
-
'{{WRAPPER}} .caldera-grid label' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
284 |
-
],
|
285 |
-
]
|
286 |
-
);
|
287 |
-
|
288 |
-
$this->add_control(
|
289 |
-
'hr3',
|
290 |
-
[
|
291 |
-
'type' => Controls_Manager::DIVIDER,
|
292 |
-
'style' => 'thick',
|
293 |
-
]
|
294 |
-
);
|
295 |
-
|
296 |
-
$this->add_group_control(
|
297 |
-
Group_Control_Typography::get_type(),
|
298 |
-
[
|
299 |
-
'name' => 'label_typography',
|
300 |
-
'label' => __( 'Label Typography', 'happy-elementor-addons' ),
|
301 |
-
'selector' => '{{WRAPPER}} .caldera-grid label',
|
302 |
-
]
|
303 |
-
);
|
304 |
-
|
305 |
-
$this->add_group_control(
|
306 |
-
Group_Control_Typography::get_type(),
|
307 |
-
[
|
308 |
-
'name' => 'desc_typography',
|
309 |
-
'label' => __( 'Description Typography', 'happy-elementor-addons' ),
|
310 |
-
'selector' => '{{WRAPPER}} .caldera-grid .help-block',
|
311 |
-
]
|
312 |
-
);
|
313 |
-
|
314 |
-
$this->add_control(
|
315 |
-
'label_color',
|
316 |
-
[
|
317 |
-
'label' => __( 'Label Text Color', 'happy-elementor-addons' ),
|
318 |
-
'type' => Controls_Manager::COLOR,
|
319 |
-
'selectors' => [
|
320 |
-
'{{WRAPPER}} .caldera-grid label' => 'color: {{VALUE}}',
|
321 |
-
],
|
322 |
-
]
|
323 |
-
);
|
324 |
-
|
325 |
-
$this->add_control(
|
326 |
-
'requered_label',
|
327 |
-
[
|
328 |
-
'label' => __( 'Required Label Color', 'happy-elementor-addons' ),
|
329 |
-
'type' => Controls_Manager::COLOR,
|
330 |
-
'selectors' => [
|
331 |
-
'{{WRAPPER}} .field_required' => 'color: {{VALUE}} !important',
|
332 |
-
],
|
333 |
-
]
|
334 |
-
);
|
335 |
-
|
336 |
-
$this->add_control(
|
337 |
-
'desc_color',
|
338 |
-
[
|
339 |
-
'label' => __( 'Description Text Color', 'happy-elementor-addons' ),
|
340 |
-
'type' => Controls_Manager::COLOR,
|
341 |
-
'selectors' => [
|
342 |
-
'{{WRAPPER}} .caldera-grid .help-block' => 'color: {{VALUE}}',
|
343 |
-
],
|
344 |
-
]
|
345 |
-
);
|
346 |
-
|
347 |
-
$this->end_controls_section();
|
348 |
-
|
349 |
-
$this->start_controls_section(
|
350 |
-
'submit',
|
351 |
-
[
|
352 |
-
'label' => __( 'Submit Button', 'happy-elementor-addons' ),
|
353 |
-
'tab' => Controls_Manager::TAB_STYLE,
|
354 |
-
]
|
355 |
-
);
|
356 |
-
|
357 |
-
$this->add_control(
|
358 |
-
'submit_btn_width',
|
359 |
-
[
|
360 |
-
'label' => __( 'Button Full Width?', 'happy-elementor-addons' ),
|
361 |
-
'type' => Controls_Manager::SWITCHER,
|
362 |
-
'label_on' => __( 'Yes', 'happy-elementor-addons' ),
|
363 |
-
'label_off' => __( 'No', 'happy-elementor-addons' ),
|
364 |
-
'return_value' => 'yes',
|
365 |
-
'default' => 'yes',
|
366 |
-
]
|
367 |
-
);
|
368 |
-
|
369 |
-
$this->add_responsive_control(
|
370 |
-
'button_width',
|
371 |
-
[
|
372 |
-
'label' => __( 'Button Width', 'happy-elementor-addons' ),
|
373 |
-
'type' => Controls_Manager::SLIDER,
|
374 |
-
'size_units' => [ 'px', '%' ],
|
375 |
-
'condition' => [
|
376 |
-
'submit_btn_width' => 'yes'
|
377 |
-
],
|
378 |
-
'default' => [
|
379 |
-
'unit' => '%',
|
380 |
-
'size' => 100
|
381 |
-
],
|
382 |
-
'range' => [
|
383 |
-
'%' => [
|
384 |
-
'min' => 1,
|
385 |
-
'max' => 100,
|
386 |
-
],
|
387 |
-
'px' => [
|
388 |
-
'min' => 1,
|
389 |
-
'max' => 800,
|
390 |
-
],
|
391 |
-
],
|
392 |
-
'selectors' => [
|
393 |
-
'{{WRAPPER}} .form-group .btn' => 'display: block; width: {{SIZE}}{{UNIT}};',
|
394 |
-
],
|
395 |
-
]
|
396 |
-
);
|
397 |
-
|
398 |
-
$this->add_responsive_control(
|
399 |
-
'submit_margin',
|
400 |
-
[
|
401 |
-
'label' => __( 'Margin', 'happy-elementor-addons' ),
|
402 |
-
'type' => Controls_Manager::DIMENSIONS,
|
403 |
-
'size_units' => [ 'px', '%' ],
|
404 |
-
'selectors' => [
|
405 |
-
'{{WRAPPER}} .form-group .btn' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
406 |
-
],
|
407 |
-
]
|
408 |
-
);
|
409 |
-
|
410 |
-
$this->add_responsive_control(
|
411 |
-
'submit_padding',
|
412 |
-
[
|
413 |
-
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
414 |
-
'type' => Controls_Manager::DIMENSIONS,
|
415 |
-
'size_units' => [ 'px', 'em', '%' ],
|
416 |
-
'selectors' => [
|
417 |
-
'{{WRAPPER}} .form-group .btn' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
418 |
-
],
|
419 |
-
]
|
420 |
-
);
|
421 |
-
|
422 |
-
$this->add_group_control(
|
423 |
-
Group_Control_Typography::get_type(),
|
424 |
-
[
|
425 |
-
'name' => 'submit_typography',
|
426 |
-
'selector' => '{{WRAPPER}} .form-group .btn',
|
427 |
-
]
|
428 |
-
);
|
429 |
-
|
430 |
-
$this->add_group_control(
|
431 |
-
Group_Control_Border::get_type(),
|
432 |
-
[
|
433 |
-
'name' => 'submit_border',
|
434 |
-
'selector' => '{{WRAPPER}} .form-group .btn',
|
435 |
-
]
|
436 |
-
);
|
437 |
-
|
438 |
-
$this->add_control(
|
439 |
-
'submit_border_radius',
|
440 |
-
[
|
441 |
-
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
442 |
-
'type' => Controls_Manager::DIMENSIONS,
|
443 |
-
'size_units' => [ 'px', '%' ],
|
444 |
-
'selectors' => [
|
445 |
-
'{{WRAPPER}} .form-group .btn' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
446 |
-
],
|
447 |
-
]
|
448 |
-
);
|
449 |
-
|
450 |
-
$this->add_group_control(
|
451 |
-
Group_Control_Box_Shadow::get_type(),
|
452 |
-
[
|
453 |
-
'name' => 'submit_box_shadow',
|
454 |
-
'selector' => '{{WRAPPER}} .form-group .btn',
|
455 |
-
]
|
456 |
-
);
|
457 |
-
|
458 |
-
$this->add_control(
|
459 |
-
'hr4',
|
460 |
-
[
|
461 |
-
'type' => Controls_Manager::DIVIDER,
|
462 |
-
'style' => 'thick',
|
463 |
-
]
|
464 |
-
);
|
465 |
-
|
466 |
-
$this->start_controls_tabs( 'tabs_button_style' );
|
467 |
-
|
468 |
-
$this->start_controls_tab(
|
469 |
-
'tab_button_normal',
|
470 |
-
[
|
471 |
-
'label' => __( 'Normal', 'happy-elementor-addons' ),
|
472 |
-
]
|
473 |
-
);
|
474 |
-
|
475 |
-
$this->add_control(
|
476 |
-
'submit_color',
|
477 |
-
[
|
478 |
-
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
479 |
-
'type' => Controls_Manager::COLOR,
|
480 |
-
'default' => '',
|
481 |
-
'selectors' => [
|
482 |
-
'{{WRAPPER}} .form-group .btn' => 'color: {{VALUE}};',
|
483 |
-
],
|
484 |
-
]
|
485 |
-
);
|
486 |
-
|
487 |
-
$this->add_control(
|
488 |
-
'submit_bg_color',
|
489 |
-
[
|
490 |
-
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
491 |
-
'type' => Controls_Manager::COLOR,
|
492 |
-
'selectors' => [
|
493 |
-
'{{WRAPPER}} .form-group .btn' => 'background-color: {{VALUE}};',
|
494 |
-
],
|
495 |
-
]
|
496 |
-
);
|
497 |
-
|
498 |
-
$this->end_controls_tab();
|
499 |
-
|
500 |
-
$this->start_controls_tab(
|
501 |
-
'tab_button_hover',
|
502 |
-
[
|
503 |
-
'label' => __( 'Hover', 'happy-elementor-addons' ),
|
504 |
-
]
|
505 |
-
);
|
506 |
-
|
507 |
-
$this->add_control(
|
508 |
-
'submit_hover_color',
|
509 |
-
[
|
510 |
-
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
511 |
-
'type' => Controls_Manager::COLOR,
|
512 |
-
'selectors' => [
|
513 |
-
'{{WRAPPER}} .form-group .btn:hover, {{WRAPPER}} .form-group .btn:focus' => 'color: {{VALUE}};',
|
514 |
-
],
|
515 |
-
]
|
516 |
-
);
|
517 |
-
|
518 |
-
$this->add_control(
|
519 |
-
'submit_hover_bg_color',
|
520 |
-
[
|
521 |
-
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
522 |
-
'type' => Controls_Manager::COLOR,
|
523 |
-
'selectors' => [
|
524 |
-
'{{WRAPPER}} .form-group .btn:hover, {{WRAPPER}} .form-group .btn:focus' => 'background-color: {{VALUE}};',
|
525 |
-
],
|
526 |
-
]
|
527 |
-
);
|
528 |
-
|
529 |
-
$this->add_control(
|
530 |
-
'submit_hover_border_color',
|
531 |
-
[
|
532 |
-
'label' => __( 'Border Color', 'happy-elementor-addons' ),
|
533 |
-
'type' => Controls_Manager::COLOR,
|
534 |
-
'selectors' => [
|
535 |
-
'{{WRAPPER}} .form-group .btn:hover, {{WRAPPER}} .form-group .btn:focus' => 'border-color: {{VALUE}};',
|
536 |
-
],
|
537 |
-
]
|
538 |
-
);
|
539 |
-
|
540 |
-
$this->end_controls_tab();
|
541 |
-
$this->end_controls_tabs();
|
542 |
-
|
543 |
-
$this->end_controls_section();
|
544 |
-
}
|
545 |
-
|
546 |
-
protected function render() {
|
547 |
-
if ( ! ha_is_calderaforms_activated() ) {
|
548 |
-
return;
|
549 |
-
}
|
550 |
-
|
551 |
-
$settings = $this->get_settings_for_display();
|
552 |
-
|
553 |
-
if ( ! empty( $settings['form_id'] ) ) {
|
554 |
-
echo ha_do_shortcode( 'caldera_form', [
|
555 |
-
'id' => $settings['form_id'],
|
556 |
-
] );
|
557 |
-
}
|
558 |
-
}
|
559 |
-
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Caldera Form widget class
|
4 |
+
*
|
5 |
+
* @package Happy_Addons
|
6 |
+
*/
|
7 |
+
namespace Happy_Addons\Elementor\Widget;
|
8 |
+
|
9 |
+
use Elementor\Controls_Manager;
|
10 |
+
use Elementor\Group_Control_Border;
|
11 |
+
use Elementor\Group_Control_Box_Shadow;
|
12 |
+
use Elementor\Group_Control_Typography;
|
13 |
+
|
14 |
+
defined( 'ABSPATH' ) || die();
|
15 |
+
|
16 |
+
class CalderaForm extends Base {
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Get widget title.
|
20 |
+
*
|
21 |
+
* @since 1.0.0
|
22 |
+
* @access public
|
23 |
+
*
|
24 |
+
* @return string Widget title.
|
25 |
+
*/
|
26 |
+
public function get_title() {
|
27 |
+
return __( 'Caldera Forms', 'happy-elementor-addons' );
|
28 |
+
}
|
29 |
+
|
30 |
+
public function get_custom_help_url() {
|
31 |
+
return 'https://happyaddons.com/docs/happy-addons-for-elementor/widgets/caldera-forms/';
|
32 |
+
}
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Get widget icon.
|
36 |
+
*
|
37 |
+
* @since 1.0.0
|
38 |
+
* @access public
|
39 |
+
*
|
40 |
+
* @return string Widget icon.
|
41 |
+
*/
|
42 |
+
public function get_icon() {
|
43 |
+
return 'hm hm-form';
|
44 |
+
}
|
45 |
+
|
46 |
+
public function get_keywords() {
|
47 |
+
return [ 'caldera', 'wpf', 'wpform' , 'form', 'contact', 'cf7', 'contact form', 'gravity', 'ninja' ];
|
48 |
+
}
|
49 |
+
|
50 |
+
protected function register_content_controls() {
|
51 |
+
$this->start_controls_section(
|
52 |
+
'_section_calderaf',
|
53 |
+
[
|
54 |
+
'label' => ha_is_calderaforms_activated() ? __( 'Caldera Forms', 'happy-elementor-addons' ) : __( 'Missing Notice', 'happy-elementor-addons' ),
|
55 |
+
]
|
56 |
+
);
|
57 |
+
|
58 |
+
if ( ! ha_is_calderaforms_activated() ) {
|
59 |
+
$this->add_control(
|
60 |
+
'_calderaforms_missing_notice',
|
61 |
+
[
|
62 |
+
'type' => Controls_Manager::RAW_HTML,
|
63 |
+
'raw' => sprintf(
|
64 |
+
__( 'Hello %2$s, looks like %1$s is missing in your site. Please click on the link below and install/activate %1$s. Make sure to refresh this page after installation or activation.', 'happy-elementor-addons' ),
|
65 |
+
'<a href="'.esc_url( admin_url( 'plugin-install.php?s=Caldera+Forms&tab=search&type=term' ) ).'" target="_blank" rel="noopener">Caldera Forms</a>',
|
66 |
+
ha_get_current_user_display_name()
|
67 |
+
),
|
68 |
+
'content_classes' => 'elementor-panel-alert elementor-panel-alert-danger',
|
69 |
+
]
|
70 |
+
);
|
71 |
+
|
72 |
+
$this->add_control(
|
73 |
+
'_calderaforms_install',
|
74 |
+
[
|
75 |
+
'type' => Controls_Manager::RAW_HTML,
|
76 |
+
'raw' => '<a href="'.esc_url( admin_url( 'plugin-install.php?s=Caldera+Forms&tab=search&type=term' ) ).'" target="_blank" rel="noopener">Click to install or activate Caldera Forms</a>',
|
77 |
+
]
|
78 |
+
);
|
79 |
+
|
80 |
+
$this->end_controls_section();
|
81 |
+
return;
|
82 |
+
}
|
83 |
+
|
84 |
+
$this->add_control(
|
85 |
+
'form_id',
|
86 |
+
[
|
87 |
+
'label' => __( 'Select Your Form', 'happy-elementor-addons' ),
|
88 |
+
'type' => Controls_Manager::SELECT,
|
89 |
+
'label_block' => true,
|
90 |
+
'options' => ['' => __( '', 'happy-elementor-addons' ) ] + \ha_get_caldera_form(),
|
91 |
+
]
|
92 |
+
);
|
93 |
+
|
94 |
+
$this->end_controls_section();
|
95 |
+
}
|
96 |
+
|
97 |
+
protected function register_style_controls() {
|
98 |
+
$this->start_controls_section(
|
99 |
+
'_section_fields_style',
|
100 |
+
[
|
101 |
+
'label' => __( 'Form Fields', 'happy-elementor-addons' ),
|
102 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
103 |
+
]
|
104 |
+
);
|
105 |
+
|
106 |
+
$this->add_responsive_control(
|
107 |
+
'field_margin',
|
108 |
+
[
|
109 |
+
'label' => __( 'Field Spacing', 'happy-elementor-addons' ),
|
110 |
+
'type' => Controls_Manager::DIMENSIONS,
|
111 |
+
'size_units' => [ 'px', '%' ],
|
112 |
+
'selectors' => [
|
113 |
+
'{{WRAPPER}} .form-group:not(.btn)' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
114 |
+
],
|
115 |
+
]
|
116 |
+
);
|
117 |
+
|
118 |
+
$this->add_responsive_control(
|
119 |
+
'field_padding',
|
120 |
+
[
|
121 |
+
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
122 |
+
'type' => Controls_Manager::DIMENSIONS,
|
123 |
+
'size_units' => [ 'px', 'em', '%' ],
|
124 |
+
'selectors' => [
|
125 |
+
'{{WRAPPER}} .form-group input:not(.btn)' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
126 |
+
],
|
127 |
+
]
|
128 |
+
);
|
129 |
+
|
130 |
+
$this->add_responsive_control(
|
131 |
+
'field_border_radius',
|
132 |
+
[
|
133 |
+
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
134 |
+
'type' => Controls_Manager::DIMENSIONS,
|
135 |
+
'size_units' => [ 'px', '%' ],
|
136 |
+
'selectors' => [
|
137 |
+
'{{WRAPPER}} .form-group input:not(.btn), {{WRAPPER}} .form-group textarea' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
138 |
+
],
|
139 |
+
]
|
140 |
+
);
|
141 |
+
|
142 |
+
$this->add_group_control(
|
143 |
+
Group_Control_Typography::get_type(),
|
144 |
+
[
|
145 |
+
'name' => 'field_typography',
|
146 |
+
'label' => __( 'Typography', 'happy-elementor-addons' ),
|
147 |
+
'selector' => '{{WRAPPER}} .form-group input:not(.btn), {{WRAPPER}} .form-group textarea',
|
148 |
+
]
|
149 |
+
);
|
150 |
+
|
151 |
+
$this->add_control(
|
152 |
+
'field_textcolor',
|
153 |
+
[
|
154 |
+
'label' => __( 'Field Text Color', 'happy-elementor-addons' ),
|
155 |
+
'type' => Controls_Manager::COLOR,
|
156 |
+
'selectors' => [
|
157 |
+
'{{WRAPPER}} .form-group input:not(.btn), {{WRAPPER}} .form-group textarea' => 'color: {{VALUE}}',
|
158 |
+
],
|
159 |
+
]
|
160 |
+
);
|
161 |
+
|
162 |
+
$this->add_control(
|
163 |
+
'field_placeholder_color',
|
164 |
+
[
|
165 |
+
'label' => __( 'Field Placeholder Color', 'happy-elementor-addons' ),
|
166 |
+
'type' => Controls_Manager::COLOR,
|
167 |
+
'selectors' => [
|
168 |
+
'{{WRAPPER}} ::-webkit-input-placeholder' => 'color: {{VALUE}};',
|
169 |
+
'{{WRAPPER}} ::-moz-placeholder' => 'color: {{VALUE}};',
|
170 |
+
'{{WRAPPER}} ::-ms-input-placeholder' => 'color: {{VALUE}};',
|
171 |
+
],
|
172 |
+
]
|
173 |
+
);
|
174 |
+
|
175 |
+
$this->start_controls_tabs( 'tabs_field_state' );
|
176 |
+
|
177 |
+
$this->start_controls_tab(
|
178 |
+
'tab_field_normal',
|
179 |
+
[
|
180 |
+
'label' => __( 'Normal', 'happy-elementor-addons' ),
|
181 |
+
]
|
182 |
+
);
|
183 |
+
|
184 |
+
$this->add_group_control(
|
185 |
+
Group_Control_Border::get_type(),
|
186 |
+
[
|
187 |
+
'name' => 'field_border',
|
188 |
+
'selector' => '{{WRAPPER}} .form-group input:not(.btn), {{WRAPPER}} .form-group textarea',
|
189 |
+
]
|
190 |
+
);
|
191 |
+
|
192 |
+
$this->add_group_control(
|
193 |
+
Group_Control_Box_Shadow::get_type(),
|
194 |
+
[
|
195 |
+
'name' => 'field_box_shadow',
|
196 |
+
'selector' => '{{WRAPPER}} .form-group input:not(.btn), {{WRAPPER}} .form-group textarea',
|
197 |
+
]
|
198 |
+
);
|
199 |
+
|
200 |
+
$this->add_control(
|
201 |
+
'field_bg_color',
|
202 |
+
[
|
203 |
+
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
204 |
+
'type' => Controls_Manager::COLOR,
|
205 |
+
'selectors' => [
|
206 |
+
'{{WRAPPER}} .form-group input:not(.btn), {{WRAPPER}} .form-group textarea' => 'background-color: {{VALUE}}',
|
207 |
+
],
|
208 |
+
]
|
209 |
+
);
|
210 |
+
|
211 |
+
$this->end_controls_tab();
|
212 |
+
|
213 |
+
$this->start_controls_tab(
|
214 |
+
'tab_field_focus',
|
215 |
+
[
|
216 |
+
'label' => __( 'Focus', 'happy-elementor-addons' ),
|
217 |
+
]
|
218 |
+
);
|
219 |
+
|
220 |
+
$this->add_group_control(
|
221 |
+
Group_Control_Border::get_type(),
|
222 |
+
[
|
223 |
+
'name' => 'field_focus_border',
|
224 |
+
'selector' => '{{WRAPPER}} .form-group input:focus:not(.btn), {{WRAPPER}} .form-group textarea:focus',
|
225 |
+
]
|
226 |
+
);
|
227 |
+
|
228 |
+
$this->add_group_control(
|
229 |
+
Group_Control_Box_Shadow::get_type(),
|
230 |
+
[
|
231 |
+
'name' => 'field_focus_box_shadow',
|
232 |
+
'exclude' => [
|
233 |
+
'box_shadow_position',
|
234 |
+
],
|
235 |
+
'selector' => '{{WRAPPER}} .form-group input:focus:not(.btn), {{WRAPPER}} .form-group textarea:focus',
|
236 |
+
]
|
237 |
+
);
|
238 |
+
|
239 |
+
$this->add_control(
|
240 |
+
'field_focus_bg_color',
|
241 |
+
[
|
242 |
+
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
243 |
+
'type' => Controls_Manager::COLOR,
|
244 |
+
'selectors' => [
|
245 |
+
'{{WRAPPER}} .form-group input:focus:not(.btn), {{WRAPPER}} .form-group textarea:focus' => 'background-color: {{VALUE}}',
|
246 |
+
],
|
247 |
+
]
|
248 |
+
);
|
249 |
+
|
250 |
+
$this->end_controls_tab();
|
251 |
+
$this->end_controls_tabs();
|
252 |
+
|
253 |
+
$this->end_controls_section();
|
254 |
+
|
255 |
+
|
256 |
+
$this->start_controls_section(
|
257 |
+
'caldera-form-label',
|
258 |
+
[
|
259 |
+
'label' => __( 'Form Fields Label', 'happy-elementor-addons' ),
|
260 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
261 |
+
]
|
262 |
+
);
|
263 |
+
|
264 |
+
$this->add_responsive_control(
|
265 |
+
'label_margin',
|
266 |
+
[
|
267 |
+
'label' => __( 'Margin', 'happy-elementor-addons' ),
|
268 |
+
'type' => Controls_Manager::DIMENSIONS,
|
269 |
+
'size_units' => [ 'px', '%' ],
|
270 |
+
'selectors' => [
|
271 |
+
'{{WRAPPER}} .caldera-grid label' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
272 |
+
],
|
273 |
+
]
|
274 |
+
);
|
275 |
+
|
276 |
+
$this->add_responsive_control(
|
277 |
+
'label_padding',
|
278 |
+
[
|
279 |
+
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
280 |
+
'type' => Controls_Manager::DIMENSIONS,
|
281 |
+
'size_units' => [ 'px', 'em', '%' ],
|
282 |
+
'selectors' => [
|
283 |
+
'{{WRAPPER}} .caldera-grid label' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
284 |
+
],
|
285 |
+
]
|
286 |
+
);
|
287 |
+
|
288 |
+
$this->add_control(
|
289 |
+
'hr3',
|
290 |
+
[
|
291 |
+
'type' => Controls_Manager::DIVIDER,
|
292 |
+
'style' => 'thick',
|
293 |
+
]
|
294 |
+
);
|
295 |
+
|
296 |
+
$this->add_group_control(
|
297 |
+
Group_Control_Typography::get_type(),
|
298 |
+
[
|
299 |
+
'name' => 'label_typography',
|
300 |
+
'label' => __( 'Label Typography', 'happy-elementor-addons' ),
|
301 |
+
'selector' => '{{WRAPPER}} .caldera-grid label',
|
302 |
+
]
|
303 |
+
);
|
304 |
+
|
305 |
+
$this->add_group_control(
|
306 |
+
Group_Control_Typography::get_type(),
|
307 |
+
[
|
308 |
+
'name' => 'desc_typography',
|
309 |
+
'label' => __( 'Description Typography', 'happy-elementor-addons' ),
|
310 |
+
'selector' => '{{WRAPPER}} .caldera-grid .help-block',
|
311 |
+
]
|
312 |
+
);
|
313 |
+
|
314 |
+
$this->add_control(
|
315 |
+
'label_color',
|
316 |
+
[
|
317 |
+
'label' => __( 'Label Text Color', 'happy-elementor-addons' ),
|
318 |
+
'type' => Controls_Manager::COLOR,
|
319 |
+
'selectors' => [
|
320 |
+
'{{WRAPPER}} .caldera-grid label' => 'color: {{VALUE}}',
|
321 |
+
],
|
322 |
+
]
|
323 |
+
);
|
324 |
+
|
325 |
+
$this->add_control(
|
326 |
+
'requered_label',
|
327 |
+
[
|
328 |
+
'label' => __( 'Required Label Color', 'happy-elementor-addons' ),
|
329 |
+
'type' => Controls_Manager::COLOR,
|
330 |
+
'selectors' => [
|
331 |
+
'{{WRAPPER}} .field_required' => 'color: {{VALUE}} !important',
|
332 |
+
],
|
333 |
+
]
|
334 |
+
);
|
335 |
+
|
336 |
+
$this->add_control(
|
337 |
+
'desc_color',
|
338 |
+
[
|
339 |
+
'label' => __( 'Description Text Color', 'happy-elementor-addons' ),
|
340 |
+
'type' => Controls_Manager::COLOR,
|
341 |
+
'selectors' => [
|
342 |
+
'{{WRAPPER}} .caldera-grid .help-block' => 'color: {{VALUE}}',
|
343 |
+
],
|
344 |
+
]
|
345 |
+
);
|
346 |
+
|
347 |
+
$this->end_controls_section();
|
348 |
+
|
349 |
+
$this->start_controls_section(
|
350 |
+
'submit',
|
351 |
+
[
|
352 |
+
'label' => __( 'Submit Button', 'happy-elementor-addons' ),
|
353 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
354 |
+
]
|
355 |
+
);
|
356 |
+
|
357 |
+
$this->add_control(
|
358 |
+
'submit_btn_width',
|
359 |
+
[
|
360 |
+
'label' => __( 'Button Full Width?', 'happy-elementor-addons' ),
|
361 |
+
'type' => Controls_Manager::SWITCHER,
|
362 |
+
'label_on' => __( 'Yes', 'happy-elementor-addons' ),
|
363 |
+
'label_off' => __( 'No', 'happy-elementor-addons' ),
|
364 |
+
'return_value' => 'yes',
|
365 |
+
'default' => 'yes',
|
366 |
+
]
|
367 |
+
);
|
368 |
+
|
369 |
+
$this->add_responsive_control(
|
370 |
+
'button_width',
|
371 |
+
[
|
372 |
+
'label' => __( 'Button Width', 'happy-elementor-addons' ),
|
373 |
+
'type' => Controls_Manager::SLIDER,
|
374 |
+
'size_units' => [ 'px', '%' ],
|
375 |
+
'condition' => [
|
376 |
+
'submit_btn_width' => 'yes'
|
377 |
+
],
|
378 |
+
'default' => [
|
379 |
+
'unit' => '%',
|
380 |
+
'size' => 100
|
381 |
+
],
|
382 |
+
'range' => [
|
383 |
+
'%' => [
|
384 |
+
'min' => 1,
|
385 |
+
'max' => 100,
|
386 |
+
],
|
387 |
+
'px' => [
|
388 |
+
'min' => 1,
|
389 |
+
'max' => 800,
|
390 |
+
],
|
391 |
+
],
|
392 |
+
'selectors' => [
|
393 |
+
'{{WRAPPER}} .form-group .btn' => 'display: block; width: {{SIZE}}{{UNIT}};',
|
394 |
+
],
|
395 |
+
]
|
396 |
+
);
|
397 |
+
|
398 |
+
$this->add_responsive_control(
|
399 |
+
'submit_margin',
|
400 |
+
[
|
401 |
+
'label' => __( 'Margin', 'happy-elementor-addons' ),
|
402 |
+
'type' => Controls_Manager::DIMENSIONS,
|
403 |
+
'size_units' => [ 'px', '%' ],
|
404 |
+
'selectors' => [
|
405 |
+
'{{WRAPPER}} .form-group .btn' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
406 |
+
],
|
407 |
+
]
|
408 |
+
);
|
409 |
+
|
410 |
+
$this->add_responsive_control(
|
411 |
+
'submit_padding',
|
412 |
+
[
|
413 |
+
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
414 |
+
'type' => Controls_Manager::DIMENSIONS,
|
415 |
+
'size_units' => [ 'px', 'em', '%' ],
|
416 |
+
'selectors' => [
|
417 |
+
'{{WRAPPER}} .form-group .btn' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
418 |
+
],
|
419 |
+
]
|
420 |
+
);
|
421 |
+
|
422 |
+
$this->add_group_control(
|
423 |
+
Group_Control_Typography::get_type(),
|
424 |
+
[
|
425 |
+
'name' => 'submit_typography',
|
426 |
+
'selector' => '{{WRAPPER}} .form-group .btn',
|
427 |
+
]
|
428 |
+
);
|
429 |
+
|
430 |
+
$this->add_group_control(
|
431 |
+
Group_Control_Border::get_type(),
|
432 |
+
[
|
433 |
+
'name' => 'submit_border',
|
434 |
+
'selector' => '{{WRAPPER}} .form-group .btn',
|
435 |
+
]
|
436 |
+
);
|
437 |
+
|
438 |
+
$this->add_control(
|
439 |
+
'submit_border_radius',
|
440 |
+
[
|
441 |
+
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
442 |
+
'type' => Controls_Manager::DIMENSIONS,
|
443 |
+
'size_units' => [ 'px', '%' ],
|
444 |
+
'selectors' => [
|
445 |
+
'{{WRAPPER}} .form-group .btn' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
446 |
+
],
|
447 |
+
]
|
448 |
+
);
|
449 |
+
|
450 |
+
$this->add_group_control(
|
451 |
+
Group_Control_Box_Shadow::get_type(),
|
452 |
+
[
|
453 |
+
'name' => 'submit_box_shadow',
|
454 |
+
'selector' => '{{WRAPPER}} .form-group .btn',
|
455 |
+
]
|
456 |
+
);
|
457 |
+
|
458 |
+
$this->add_control(
|
459 |
+
'hr4',
|
460 |
+
[
|
461 |
+
'type' => Controls_Manager::DIVIDER,
|
462 |
+
'style' => 'thick',
|
463 |
+
]
|
464 |
+
);
|
465 |
+
|
466 |
+
$this->start_controls_tabs( 'tabs_button_style' );
|
467 |
+
|
468 |
+
$this->start_controls_tab(
|
469 |
+
'tab_button_normal',
|
470 |
+
[
|
471 |
+
'label' => __( 'Normal', 'happy-elementor-addons' ),
|
472 |
+
]
|
473 |
+
);
|
474 |
+
|
475 |
+
$this->add_control(
|
476 |
+
'submit_color',
|
477 |
+
[
|
478 |
+
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
479 |
+
'type' => Controls_Manager::COLOR,
|
480 |
+
'default' => '',
|
481 |
+
'selectors' => [
|
482 |
+
'{{WRAPPER}} .form-group .btn' => 'color: {{VALUE}};',
|
483 |
+
],
|
484 |
+
]
|
485 |
+
);
|
486 |
+
|
487 |
+
$this->add_control(
|
488 |
+
'submit_bg_color',
|
489 |
+
[
|
490 |
+
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
491 |
+
'type' => Controls_Manager::COLOR,
|
492 |
+
'selectors' => [
|
493 |
+
'{{WRAPPER}} .form-group .btn' => 'background-color: {{VALUE}};',
|
494 |
+
],
|
495 |
+
]
|
496 |
+
);
|
497 |
+
|
498 |
+
$this->end_controls_tab();
|
499 |
+
|
500 |
+
$this->start_controls_tab(
|
501 |
+
'tab_button_hover',
|
502 |
+
[
|
503 |
+
'label' => __( 'Hover', 'happy-elementor-addons' ),
|
504 |
+
]
|
505 |
+
);
|
506 |
+
|
507 |
+
$this->add_control(
|
508 |
+
'submit_hover_color',
|
509 |
+
[
|
510 |
+
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
511 |
+
'type' => Controls_Manager::COLOR,
|
512 |
+
'selectors' => [
|
513 |
+
'{{WRAPPER}} .form-group .btn:hover, {{WRAPPER}} .form-group .btn:focus' => 'color: {{VALUE}};',
|
514 |
+
],
|
515 |
+
]
|
516 |
+
);
|
517 |
+
|
518 |
+
$this->add_control(
|
519 |
+
'submit_hover_bg_color',
|
520 |
+
[
|
521 |
+
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
522 |
+
'type' => Controls_Manager::COLOR,
|
523 |
+
'selectors' => [
|
524 |
+
'{{WRAPPER}} .form-group .btn:hover, {{WRAPPER}} .form-group .btn:focus' => 'background-color: {{VALUE}};',
|
525 |
+
],
|
526 |
+
]
|
527 |
+
);
|
528 |
+
|
529 |
+
$this->add_control(
|
530 |
+
'submit_hover_border_color',
|
531 |
+
[
|
532 |
+
'label' => __( 'Border Color', 'happy-elementor-addons' ),
|
533 |
+
'type' => Controls_Manager::COLOR,
|
534 |
+
'selectors' => [
|
535 |
+
'{{WRAPPER}} .form-group .btn:hover, {{WRAPPER}} .form-group .btn:focus' => 'border-color: {{VALUE}};',
|
536 |
+
],
|
537 |
+
]
|
538 |
+
);
|
539 |
+
|
540 |
+
$this->end_controls_tab();
|
541 |
+
$this->end_controls_tabs();
|
542 |
+
|
543 |
+
$this->end_controls_section();
|
544 |
+
}
|
545 |
+
|
546 |
+
protected function render() {
|
547 |
+
if ( ! ha_is_calderaforms_activated() ) {
|
548 |
+
return;
|
549 |
+
}
|
550 |
+
|
551 |
+
$settings = $this->get_settings_for_display();
|
552 |
+
|
553 |
+
if ( ! empty( $settings['form_id'] ) ) {
|
554 |
+
echo ha_do_shortcode( 'caldera_form', [
|
555 |
+
'id' => $settings['form_id'],
|
556 |
+
] );
|
557 |
+
}
|
558 |
+
}
|
559 |
+
}
|
widgets/carousel/widget.php
CHANGED
@@ -116,6 +116,12 @@ class Carousel extends Base {
|
|
116 |
]
|
117 |
);
|
118 |
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
$this->add_control(
|
120 |
'slides',
|
121 |
[
|
@@ -123,43 +129,7 @@ class Carousel extends Base {
|
|
123 |
'type' => Controls_Manager::REPEATER,
|
124 |
'fields' => $repeater->get_controls(),
|
125 |
'title_field' => '<# print(title || "Carousel Item"); #>',
|
126 |
-
'default' =>
|
127 |
-
[
|
128 |
-
'image' => [
|
129 |
-
'url' => Utils::get_placeholder_image_src(),
|
130 |
-
],
|
131 |
-
],
|
132 |
-
[
|
133 |
-
'image' => [
|
134 |
-
'url' => Utils::get_placeholder_image_src(),
|
135 |
-
],
|
136 |
-
],
|
137 |
-
[
|
138 |
-
'image' => [
|
139 |
-
'url' => Utils::get_placeholder_image_src(),
|
140 |
-
],
|
141 |
-
],
|
142 |
-
[
|
143 |
-
'image' => [
|
144 |
-
'url' => Utils::get_placeholder_image_src(),
|
145 |
-
],
|
146 |
-
],
|
147 |
-
[
|
148 |
-
'image' => [
|
149 |
-
'url' => Utils::get_placeholder_image_src(),
|
150 |
-
],
|
151 |
-
],
|
152 |
-
[
|
153 |
-
'image' => [
|
154 |
-
'url' => Utils::get_placeholder_image_src(),
|
155 |
-
],
|
156 |
-
],
|
157 |
-
[
|
158 |
-
'image' => [
|
159 |
-
'url' => Utils::get_placeholder_image_src(),
|
160 |
-
],
|
161 |
-
]
|
162 |
-
]
|
163 |
]
|
164 |
);
|
165 |
|
@@ -500,7 +470,7 @@ class Carousel extends Base {
|
|
500 |
$this->start_controls_section(
|
501 |
'_section_style_arrow',
|
502 |
[
|
503 |
-
'label' => __( 'Navigation
|
504 |
'tab' => Controls_Manager::TAB_STYLE,
|
505 |
]
|
506 |
);
|
@@ -688,7 +658,7 @@ class Carousel extends Base {
|
|
688 |
$this->start_controls_section(
|
689 |
'_section_style_dots',
|
690 |
[
|
691 |
-
'label' => __( 'Navigation
|
692 |
'tab' => Controls_Manager::TAB_STYLE,
|
693 |
]
|
694 |
);
|
@@ -758,6 +728,18 @@ class Carousel extends Base {
|
|
758 |
]
|
759 |
);
|
760 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
761 |
$this->add_control(
|
762 |
'dots_nav_color',
|
763 |
[
|
@@ -798,6 +780,18 @@ class Carousel extends Base {
|
|
798 |
]
|
799 |
);
|
800 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
801 |
$this->add_control(
|
802 |
'dots_nav_active_color',
|
803 |
[
|
116 |
]
|
117 |
);
|
118 |
|
119 |
+
$placeholder = [
|
120 |
+
'image' => [
|
121 |
+
'url' => Utils::get_placeholder_image_src(),
|
122 |
+
],
|
123 |
+
];
|
124 |
+
|
125 |
$this->add_control(
|
126 |
'slides',
|
127 |
[
|
129 |
'type' => Controls_Manager::REPEATER,
|
130 |
'fields' => $repeater->get_controls(),
|
131 |
'title_field' => '<# print(title || "Carousel Item"); #>',
|
132 |
+
'default' => array_fill( 0, 7, $placeholder )
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
133 |
]
|
134 |
);
|
135 |
|
470 |
$this->start_controls_section(
|
471 |
'_section_style_arrow',
|
472 |
[
|
473 |
+
'label' => __( 'Navigation :: Arrow', 'happy-elementor-addons' ),
|
474 |
'tab' => Controls_Manager::TAB_STYLE,
|
475 |
]
|
476 |
);
|
658 |
$this->start_controls_section(
|
659 |
'_section_style_dots',
|
660 |
[
|
661 |
+
'label' => __( 'Navigation :: Dots', 'happy-elementor-addons' ),
|
662 |
'tab' => Controls_Manager::TAB_STYLE,
|
663 |
]
|
664 |
);
|
728 |
]
|
729 |
);
|
730 |
|
731 |
+
$this->add_control(
|
732 |
+
'dots_nav_size',
|
733 |
+
[
|
734 |
+
'label' => __( 'Size', 'happy-elementor-addons' ),
|
735 |
+
'type' => Controls_Manager::SLIDER,
|
736 |
+
'size_units' => ['px'],
|
737 |
+
'selectors' => [
|
738 |
+
'{{WRAPPER}} .slick-dots li button:before' => 'font-size: {{SIZE}}{{UNIT}};',
|
739 |
+
],
|
740 |
+
]
|
741 |
+
);
|
742 |
+
|
743 |
$this->add_control(
|
744 |
'dots_nav_color',
|
745 |
[
|
780 |
]
|
781 |
);
|
782 |
|
783 |
+
$this->add_control(
|
784 |
+
'dots_nav_active_size',
|
785 |
+
[
|
786 |
+
'label' => __( 'Size', 'happy-elementor-addons' ),
|
787 |
+
'type' => Controls_Manager::SLIDER,
|
788 |
+
'size_units' => ['px'],
|
789 |
+
'selectors' => [
|
790 |
+
'{{WRAPPER}} .slick-dots li.slick-active button:before' => 'font-size: {{SIZE}}{{UNIT}};',
|
791 |
+
],
|
792 |
+
]
|
793 |
+
);
|
794 |
+
|
795 |
$this->add_control(
|
796 |
'dots_nav_active_color',
|
797 |
[
|
widgets/cf7/widget.php
CHANGED
@@ -1,543 +1,543 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Contact form 7 widget class
|
4 |
-
*
|
5 |
-
* @package Happy_Addons
|
6 |
-
*/
|
7 |
-
namespace Happy_Addons\Elementor\Widget;
|
8 |
-
|
9 |
-
use Elementor\Controls_Manager;
|
10 |
-
use Elementor\Group_Control_Border;
|
11 |
-
use Elementor\Group_Control_Box_Shadow;
|
12 |
-
use Elementor\Group_Control_Typography;
|
13 |
-
use Elementor\Scheme_Typography;
|
14 |
-
|
15 |
-
defined( 'ABSPATH' ) || die();
|
16 |
-
|
17 |
-
class CF7 extends Base {
|
18 |
-
|
19 |
-
/**
|
20 |
-
* Get widget title.
|
21 |
-
*
|
22 |
-
* @since 1.0.0
|
23 |
-
* @access public
|
24 |
-
*
|
25 |
-
* @return string Widget title.
|
26 |
-
*/
|
27 |
-
public function get_title() {
|
28 |
-
return __( 'Contact Form 7', 'happy-elementor-addons' );
|
29 |
-
}
|
30 |
-
|
31 |
-
public function get_custom_help_url() {
|
32 |
-
return 'https://happyaddons.com/docs/happy-addons-for-elementor/widgets/contact-7-form/';
|
33 |
-
}
|
34 |
-
|
35 |
-
/**
|
36 |
-
* Get widget icon.
|
37 |
-
*
|
38 |
-
* @since 1.0.0
|
39 |
-
* @access public
|
40 |
-
*
|
41 |
-
* @return string Widget icon.
|
42 |
-
*/
|
43 |
-
public function get_icon() {
|
44 |
-
return 'hm hm-form';
|
45 |
-
}
|
46 |
-
|
47 |
-
public function get_keywords() {
|
48 |
-
return [ 'form', 'contact', 'cf7', 'contact form', 'gravity', 'ninja' ];
|
49 |
-
}
|
50 |
-
|
51 |
-
protected function register_content_controls() {
|
52 |
-
$this->start_controls_section(
|
53 |
-
'_section_cf7',
|
54 |
-
[
|
55 |
-
'label' => ha_is_cf7_activated() ? __( 'Contact Form 7', 'happy-elementor-addons' ) : __( 'Missing Notice', 'happy-elementor-addons' ),
|
56 |
-
'tab' => Controls_Manager::TAB_CONTENT,
|
57 |
-
]
|
58 |
-
);
|
59 |
-
|
60 |
-
if ( ! ha_is_cf7_activated() ) {
|
61 |
-
$this->add_control(
|
62 |
-
'_cf7_missing_notice',
|
63 |
-
[
|
64 |
-
'type' => Controls_Manager::RAW_HTML,
|
65 |
-
'raw' => sprintf(
|
66 |
-
__( 'Hello %2$s, looks like %1$s is missing in your site. Please click on the link below and install/activate %1$s. Make sure to refresh this page after installation or activation.', 'happy-elementor-addons' ),
|
67 |
-
'<a href="'.esc_url( admin_url( 'plugin-install.php?s=Contact+Form+7&tab=search&type=term' ) )
|
68 |
-
.'" target="_blank" rel="noopener">Contact Form 7</a>',
|
69 |
-
ha_get_current_user_display_name()
|
70 |
-
),
|
71 |
-
'content_classes' => 'elementor-panel-alert elementor-panel-alert-danger',
|
72 |
-
]
|
73 |
-
);
|
74 |
-
|
75 |
-
$this->add_control(
|
76 |
-
'_cf7_install',
|
77 |
-
[
|
78 |
-
'type' => Controls_Manager::RAW_HTML,
|
79 |
-
'raw' => '<a href="'.esc_url( admin_url( 'plugin-install.php?s=Contact+Form+7&tab=search&type=term' ) ).'" target="_blank" rel="noopener">Click to install or activate Contact Form 7</a>',
|
80 |
-
]
|
81 |
-
);
|
82 |
-
$this->end_controls_section();
|
83 |
-
return;
|
84 |
-
}
|
85 |
-
|
86 |
-
$this->add_control(
|
87 |
-
'form_id',
|
88 |
-
[
|
89 |
-
'label' => __( 'Select Your Form', 'happy-elementor-addons' ),
|
90 |
-
'type' => Controls_Manager::SELECT,
|
91 |
-
'label_block' => true,
|
92 |
-
'options' => ['' => __( '', 'happy-elementor-addons' ) ] + \ha_get_cf7_forms(),
|
93 |
-
]
|
94 |
-
);
|
95 |
-
|
96 |
-
$this->add_control(
|
97 |
-
'html_class',
|
98 |
-
[
|
99 |
-
'label' => __( 'HTML Class', 'happy-elementor-addons' ),
|
100 |
-
'type' => Controls_Manager::TEXT,
|
101 |
-
'label_block' => true,
|
102 |
-
'description' => __( 'Add CSS custom class to the form.', 'happy-elementor-addons' ),
|
103 |
-
]
|
104 |
-
);
|
105 |
-
|
106 |
-
$this->end_controls_section();
|
107 |
-
}
|
108 |
-
|
109 |
-
protected function register_style_controls() {
|
110 |
-
$this->start_controls_section(
|
111 |
-
'_section_fields_style',
|
112 |
-
[
|
113 |
-
'label' => __( 'Form Fields', 'happy-elementor-addons' ),
|
114 |
-
'tab' => Controls_Manager::TAB_STYLE,
|
115 |
-
]
|
116 |
-
);
|
117 |
-
|
118 |
-
$this->add_responsive_control(
|
119 |
-
'field_width',
|
120 |
-
[
|
121 |
-
'label' => __( 'Width', 'happy-elementor-addons' ),
|
122 |
-
'type' => Controls_Manager::SLIDER,
|
123 |
-
'default' => [
|
124 |
-
'unit' => '%',
|
125 |
-
],
|
126 |
-
'tablet_default' => [
|
127 |
-
'unit' => '%',
|
128 |
-
],
|
129 |
-
'mobile_default' => [
|
130 |
-
'unit' => '%',
|
131 |
-
],
|
132 |
-
'size_units' => [ '%', 'px' ],
|
133 |
-
'range' => [
|
134 |
-
'%' => [
|
135 |
-
'min' => 1,
|
136 |
-
'max' => 100,
|
137 |
-
],
|
138 |
-
'px' => [
|
139 |
-
'min' => 1,
|
140 |
-
'max' => 500,
|
141 |
-
],
|
142 |
-
],
|
143 |
-
'selectors' => [
|
144 |
-
'{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)' => 'width: {{SIZE}}{{UNIT}};',
|
145 |
-
'{{WRAPPER}} .ha-cf7-form label' => 'width: {{SIZE}}{{UNIT}};',
|
146 |
-
],
|
147 |
-
]
|
148 |
-
);
|
149 |
-
|
150 |
-
$this->add_responsive_control(
|
151 |
-
'field_margin',
|
152 |
-
[
|
153 |
-
'label' => __( 'Spacing Bottom', 'happy-elementor-addons' ),
|
154 |
-
'type' => Controls_Manager::SLIDER,
|
155 |
-
'size_units' => [ 'px' ],
|
156 |
-
'range' => [
|
157 |
-
'px' => [
|
158 |
-
'min' => 0,
|
159 |
-
'max' => 100,
|
160 |
-
],
|
161 |
-
],
|
162 |
-
'selectors' => [
|
163 |
-
'{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)' => 'margin-bottom: {{SIZE}}{{UNIT}};',
|
164 |
-
],
|
165 |
-
]
|
166 |
-
);
|
167 |
-
|
168 |
-
$this->add_responsive_control(
|
169 |
-
'field_padding',
|
170 |
-
[
|
171 |
-
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
172 |
-
'type' => Controls_Manager::DIMENSIONS,
|
173 |
-
'size_units' => [ 'px', 'em', '%' ],
|
174 |
-
'selectors' => [
|
175 |
-
'{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
176 |
-
],
|
177 |
-
]
|
178 |
-
);
|
179 |
-
|
180 |
-
$this->add_responsive_control(
|
181 |
-
'field_border_radius',
|
182 |
-
[
|
183 |
-
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
184 |
-
'type' => Controls_Manager::DIMENSIONS,
|
185 |
-
'size_units' => [ 'px', '%' ],
|
186 |
-
'selectors' => [
|
187 |
-
'{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
188 |
-
],
|
189 |
-
]
|
190 |
-
);
|
191 |
-
|
192 |
-
$this->add_control(
|
193 |
-
'hr',
|
194 |
-
[
|
195 |
-
'type' => Controls_Manager::DIVIDER,
|
196 |
-
'style' => 'thick',
|
197 |
-
]
|
198 |
-
);
|
199 |
-
|
200 |
-
$this->add_group_control(
|
201 |
-
Group_Control_Typography::get_type(),
|
202 |
-
[
|
203 |
-
'name' => 'field_typography',
|
204 |
-
'label' => __( 'Typography', 'happy-elementor-addons' ),
|
205 |
-
'selector' => '{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)',
|
206 |
-
'scheme' => Scheme_Typography::TYPOGRAPHY_3
|
207 |
-
]
|
208 |
-
);
|
209 |
-
|
210 |
-
$this->add_control(
|
211 |
-
'field_color',
|
212 |
-
[
|
213 |
-
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
214 |
-
'type' => Controls_Manager::COLOR,
|
215 |
-
'selectors' => [
|
216 |
-
'{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)' => 'color: {{VALUE}}',
|
217 |
-
],
|
218 |
-
]
|
219 |
-
);
|
220 |
-
|
221 |
-
$this->add_control(
|
222 |
-
'field_placeholder_color',
|
223 |
-
[
|
224 |
-
'label' => __( 'Placeholder Text Color', 'happy-elementor-addons' ),
|
225 |
-
'type' => Controls_Manager::COLOR,
|
226 |
-
'selectors' => [
|
227 |
-
'{{WRAPPER}} ::-webkit-input-placeholder' => 'color: {{VALUE}};',
|
228 |
-
'{{WRAPPER}} ::-moz-placeholder' => 'color: {{VALUE}};',
|
229 |
-
'{{WRAPPER}} ::-ms-input-placeholder' => 'color: {{VALUE}};',
|
230 |
-
],
|
231 |
-
]
|
232 |
-
);
|
233 |
-
|
234 |
-
$this->start_controls_tabs( 'tabs_field_state' );
|
235 |
-
|
236 |
-
$this->start_controls_tab(
|
237 |
-
'tab_field_normal',
|
238 |
-
[
|
239 |
-
'label' => __( 'Normal', 'happy-elementor-addons' ),
|
240 |
-
]
|
241 |
-
);
|
242 |
-
|
243 |
-
$this->add_group_control(
|
244 |
-
Group_Control_Border::get_type(),
|
245 |
-
[
|
246 |
-
'name' => 'field_border',
|
247 |
-
'selector' => '{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)',
|
248 |
-
]
|
249 |
-
);
|
250 |
-
|
251 |
-
$this->add_group_control(
|
252 |
-
Group_Control_Box_Shadow::get_type(),
|
253 |
-
[
|
254 |
-
'name' => 'field_box_shadow',
|
255 |
-
'selector' => '{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)',
|
256 |
-
]
|
257 |
-
);
|
258 |
-
|
259 |
-
$this->add_control(
|
260 |
-
'field_bg_color',
|
261 |
-
[
|
262 |
-
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
263 |
-
'type' => Controls_Manager::COLOR,
|
264 |
-
'selectors' => [
|
265 |
-
'{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)' => 'background-color: {{VALUE}}',
|
266 |
-
],
|
267 |
-
]
|
268 |
-
);
|
269 |
-
|
270 |
-
$this->end_controls_tab();
|
271 |
-
|
272 |
-
$this->start_controls_tab(
|
273 |
-
'tab_field_focus',
|
274 |
-
[
|
275 |
-
'label' => __( 'Focus', 'happy-elementor-addons' ),
|
276 |
-
]
|
277 |
-
);
|
278 |
-
|
279 |
-
$this->add_group_control(
|
280 |
-
Group_Control_Border::get_type(),
|
281 |
-
[
|
282 |
-
'name' => 'field_focus_border',
|
283 |
-
'selector' => '{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit):focus',
|
284 |
-
]
|
285 |
-
);
|
286 |
-
|
287 |
-
$this->add_group_control(
|
288 |
-
Group_Control_Box_Shadow::get_type(),
|
289 |
-
[
|
290 |
-
'name' => 'field_focus_box_shadow',
|
291 |
-
'exclude' => [
|
292 |
-
'box_shadow_position',
|
293 |
-
],
|
294 |
-
'selector' => '{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit):focus',
|
295 |
-
]
|
296 |
-
);
|
297 |
-
|
298 |
-
$this->add_control(
|
299 |
-
'field_focus_bg_color',
|
300 |
-
[
|
301 |
-
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
302 |
-
'type' => Controls_Manager::COLOR,
|
303 |
-
'selectors' => [
|
304 |
-
'{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit):focus' => 'background-color: {{VALUE}}',
|
305 |
-
],
|
306 |
-
]
|
307 |
-
);
|
308 |
-
|
309 |
-
$this->end_controls_tab();
|
310 |
-
$this->end_controls_tabs();
|
311 |
-
|
312 |
-
$this->end_controls_section();
|
313 |
-
|
314 |
-
|
315 |
-
$this->start_controls_section(
|
316 |
-
'cf7-form-label',
|
317 |
-
[
|
318 |
-
'label' => __( 'Form Fields Label', 'happy-elementor-addons' ),
|
319 |
-
'tab' => Controls_Manager::TAB_STYLE,
|
320 |
-
]
|
321 |
-
);
|
322 |
-
|
323 |
-
$this->add_responsive_control(
|
324 |
-
'label_margin',
|
325 |
-
[
|
326 |
-
'label' => __( 'Spacing Bottom', 'happy-elementor-addons' ),
|
327 |
-
'type' => Controls_Manager::SLIDER,
|
328 |
-
'size_units' => [ 'px' ],
|
329 |
-
'range' => [
|
330 |
-
'px' => [
|
331 |
-
'min' => 0,
|
332 |
-
'max' => 100,
|
333 |
-
],
|
334 |
-
],
|
335 |
-
'selectors' => [
|
336 |
-
'{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)' => 'margin-top: {{SIZE}}{{UNIT}};',
|
337 |
-
],
|
338 |
-
]
|
339 |
-
);
|
340 |
-
|
341 |
-
$this->add_control(
|
342 |
-
'hr3',
|
343 |
-
[
|
344 |
-
'type' => Controls_Manager::DIVIDER,
|
345 |
-
'style' => 'thick',
|
346 |
-
]
|
347 |
-
);
|
348 |
-
|
349 |
-
$this->add_group_control(
|
350 |
-
Group_Control_Typography::get_type(),
|
351 |
-
[
|
352 |
-
'name' => 'label_typography',
|
353 |
-
'label' => __( 'Typography', 'happy-elementor-addons' ),
|
354 |
-
'selector' => '{{WRAPPER}} label',
|
355 |
-
'scheme' => Scheme_Typography::TYPOGRAPHY_3
|
356 |
-
]
|
357 |
-
);
|
358 |
-
|
359 |
-
$this->add_control(
|
360 |
-
'label_color',
|
361 |
-
[
|
362 |
-
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
363 |
-
'type' => Controls_Manager::COLOR,
|
364 |
-
'selectors' => [
|
365 |
-
'{{WRAPPER}} label' => 'color: {{VALUE}}',
|
366 |
-
],
|
367 |
-
]
|
368 |
-
);
|
369 |
-
|
370 |
-
$this->end_controls_section();
|
371 |
-
|
372 |
-
$this->start_controls_section(
|
373 |
-
'submit',
|
374 |
-
[
|
375 |
-
'label' => __( 'Submit Button', 'happy-elementor-addons' ),
|
376 |
-
'tab' => Controls_Manager::TAB_STYLE,
|
377 |
-
]
|
378 |
-
);
|
379 |
-
|
380 |
-
$this->add_responsive_control(
|
381 |
-
'submit_margin',
|
382 |
-
[
|
383 |
-
'label' => __( 'Margin', 'happy-elementor-addons' ),
|
384 |
-
'type' => Controls_Manager::DIMENSIONS,
|
385 |
-
'size_units' => [ 'px', '%' ],
|
386 |
-
'selectors' => [
|
387 |
-
'{{WRAPPER}} .wpcf7-submit' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
388 |
-
],
|
389 |
-
]
|
390 |
-
);
|
391 |
-
|
392 |
-
$this->add_responsive_control(
|
393 |
-
'submit_padding',
|
394 |
-
[
|
395 |
-
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
396 |
-
'type' => Controls_Manager::DIMENSIONS,
|
397 |
-
'size_units' => [ 'px', 'em', '%' ],
|
398 |
-
'selectors' => [
|
399 |
-
'{{WRAPPER}} .wpcf7-submit' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
400 |
-
],
|
401 |
-
]
|
402 |
-
);
|
403 |
-
|
404 |
-
$this->add_group_control(
|
405 |
-
Group_Control_Typography::get_type(),
|
406 |
-
[
|
407 |
-
'name' => 'submit_typography',
|
408 |
-
'selector' => '{{WRAPPER}} .wpcf7-submit',
|
409 |
-
'scheme' => Scheme_Typography::TYPOGRAPHY_4
|
410 |
-
]
|
411 |
-
);
|
412 |
-
|
413 |
-
$this->add_group_control(
|
414 |
-
Group_Control_Border::get_type(),
|
415 |
-
[
|
416 |
-
'name' => 'submit_border',
|
417 |
-
'selector' => '{{WRAPPER}} .wpcf7-submit',
|
418 |
-
]
|
419 |
-
);
|
420 |
-
|
421 |
-
$this->add_control(
|
422 |
-
'submit_border_radius',
|
423 |
-
[
|
424 |
-
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
425 |
-
'type' => Controls_Manager::DIMENSIONS,
|
426 |
-
'size_units' => [ 'px', '%' ],
|
427 |
-
'selectors' => [
|
428 |
-
'{{WRAPPER}} .wpcf7-submit' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
429 |
-
],
|
430 |
-
]
|
431 |
-
);
|
432 |
-
|
433 |
-
$this->add_group_control(
|
434 |
-
Group_Control_Box_Shadow::get_type(),
|
435 |
-
[
|
436 |
-
'name' => 'submit_box_shadow',
|
437 |
-
'selector' => '{{WRAPPER}} .wpcf7-submit',
|
438 |
-
]
|
439 |
-
);
|
440 |
-
|
441 |
-
$this->add_control(
|
442 |
-
'hr4',
|
443 |
-
[
|
444 |
-
'type' => Controls_Manager::DIVIDER,
|
445 |
-
'style' => 'thick',
|
446 |
-
]
|
447 |
-
);
|
448 |
-
|
449 |
-
$this->start_controls_tabs( 'tabs_button_style' );
|
450 |
-
|
451 |
-
$this->start_controls_tab(
|
452 |
-
'tab_button_normal',
|
453 |
-
[
|
454 |
-
'label' => __( 'Normal', 'happy-elementor-addons' ),
|
455 |
-
]
|
456 |
-
);
|
457 |
-
|
458 |
-
$this->add_control(
|
459 |
-
'submit_color',
|
460 |
-
[
|
461 |
-
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
462 |
-
'type' => Controls_Manager::COLOR,
|
463 |
-
'default' => '',
|
464 |
-
'selectors' => [
|
465 |
-
'{{WRAPPER}} .wpcf7-submit' => 'color: {{VALUE}};',
|
466 |
-
],
|
467 |
-
]
|
468 |
-
);
|
469 |
-
|
470 |
-
$this->add_control(
|
471 |
-
'submit_bg_color',
|
472 |
-
[
|
473 |
-
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
474 |
-
'type' => Controls_Manager::COLOR,
|
475 |
-
'selectors' => [
|
476 |
-
'{{WRAPPER}} .wpcf7-submit' => 'background-color: {{VALUE}};',
|
477 |
-
],
|
478 |
-
]
|
479 |
-
);
|
480 |
-
|
481 |
-
$this->end_controls_tab();
|
482 |
-
|
483 |
-
$this->start_controls_tab(
|
484 |
-
'tab_button_hover',
|
485 |
-
[
|
486 |
-
'label' => __( 'Hover', 'happy-elementor-addons' ),
|
487 |
-
]
|
488 |
-
);
|
489 |
-
|
490 |
-
$this->add_control(
|
491 |
-
'submit_hover_color',
|
492 |
-
[
|
493 |
-
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
494 |
-
'type' => Controls_Manager::COLOR,
|
495 |
-
'selectors' => [
|
496 |
-
'{{WRAPPER}} .wpcf7-submit:hover, {{WRAPPER}} .wpcf7-submit:focus' => 'color: {{VALUE}};',
|
497 |
-
],
|
498 |
-
]
|
499 |
-
);
|
500 |
-
|
501 |
-
$this->add_control(
|
502 |
-
'submit_hover_bg_color',
|
503 |
-
[
|
504 |
-
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
505 |
-
'type' => Controls_Manager::COLOR,
|
506 |
-
'selectors' => [
|
507 |
-
'{{WRAPPER}} .wpcf7-submit:hover, {{WRAPPER}} .wpcf7-submit:focus' => 'background-color: {{VALUE}};',
|
508 |
-
],
|
509 |
-
]
|
510 |
-
);
|
511 |
-
|
512 |
-
$this->add_control(
|
513 |
-
'submit_hover_border_color',
|
514 |
-
[
|
515 |
-
'label' => __( 'Border Color', 'happy-elementor-addons' ),
|
516 |
-
'type' => Controls_Manager::COLOR,
|
517 |
-
'selectors' => [
|
518 |
-
'{{WRAPPER}} .wpcf7-submit:hover, {{WRAPPER}} .wpcf7-submit:focus' => 'border-color: {{VALUE}};',
|
519 |
-
],
|
520 |
-
]
|
521 |
-
);
|
522 |
-
|
523 |
-
$this->end_controls_tab();
|
524 |
-
$this->end_controls_tabs();
|
525 |
-
|
526 |
-
$this->end_controls_section();
|
527 |
-
}
|
528 |
-
|
529 |
-
protected function render() {
|
530 |
-
if ( ! ha_is_cf7_activated() ) {
|
531 |
-
return;
|
532 |
-
}
|
533 |
-
|
534 |
-
$settings = $this->get_settings_for_display();
|
535 |
-
|
536 |
-
if ( ! empty( $settings['form_id'] ) ) {
|
537 |
-
echo ha_do_shortcode( 'contact-form-7', [
|
538 |
-
'id' => $settings['form_id'],
|
539 |
-
'html_class' => 'ha-cf7-form ' . ha_sanitize_html_class_param( $settings['html_class'] ),
|
540 |
-
] );
|
541 |
-
}
|
542 |
-
}
|
543 |
-
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Contact form 7 widget class
|
4 |
+
*
|
5 |
+
* @package Happy_Addons
|
6 |
+
*/
|
7 |
+
namespace Happy_Addons\Elementor\Widget;
|
8 |
+
|
9 |
+
use Elementor\Controls_Manager;
|
10 |
+
use Elementor\Group_Control_Border;
|
11 |
+
use Elementor\Group_Control_Box_Shadow;
|
12 |
+
use Elementor\Group_Control_Typography;
|
13 |
+
use Elementor\Scheme_Typography;
|
14 |
+
|
15 |
+
defined( 'ABSPATH' ) || die();
|
16 |
+
|
17 |
+
class CF7 extends Base {
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Get widget title.
|
21 |
+
*
|
22 |
+
* @since 1.0.0
|
23 |
+
* @access public
|
24 |
+
*
|
25 |
+
* @return string Widget title.
|
26 |
+
*/
|
27 |
+
public function get_title() {
|
28 |
+
return __( 'Contact Form 7', 'happy-elementor-addons' );
|
29 |
+
}
|
30 |
+
|
31 |
+
public function get_custom_help_url() {
|
32 |
+
return 'https://happyaddons.com/docs/happy-addons-for-elementor/widgets/contact-7-form/';
|
33 |
+
}
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Get widget icon.
|
37 |
+
*
|
38 |
+
* @since 1.0.0
|
39 |
+
* @access public
|
40 |
+
*
|
41 |
+
* @return string Widget icon.
|
42 |
+
*/
|
43 |
+
public function get_icon() {
|
44 |
+
return 'hm hm-form';
|
45 |
+
}
|
46 |
+
|
47 |
+
public function get_keywords() {
|
48 |
+
return [ 'form', 'contact', 'cf7', 'contact form', 'gravity', 'ninja' ];
|
49 |
+
}
|
50 |
+
|
51 |
+
protected function register_content_controls() {
|
52 |
+
$this->start_controls_section(
|
53 |
+
'_section_cf7',
|
54 |
+
[
|
55 |
+
'label' => ha_is_cf7_activated() ? __( 'Contact Form 7', 'happy-elementor-addons' ) : __( 'Missing Notice', 'happy-elementor-addons' ),
|
56 |
+
'tab' => Controls_Manager::TAB_CONTENT,
|
57 |
+
]
|
58 |
+
);
|
59 |
+
|
60 |
+
if ( ! ha_is_cf7_activated() ) {
|
61 |
+
$this->add_control(
|
62 |
+
'_cf7_missing_notice',
|
63 |
+
[
|
64 |
+
'type' => Controls_Manager::RAW_HTML,
|
65 |
+
'raw' => sprintf(
|
66 |
+
__( 'Hello %2$s, looks like %1$s is missing in your site. Please click on the link below and install/activate %1$s. Make sure to refresh this page after installation or activation.', 'happy-elementor-addons' ),
|
67 |
+
'<a href="'.esc_url( admin_url( 'plugin-install.php?s=Contact+Form+7&tab=search&type=term' ) )
|
68 |
+
.'" target="_blank" rel="noopener">Contact Form 7</a>',
|
69 |
+
ha_get_current_user_display_name()
|
70 |
+
),
|
71 |
+
'content_classes' => 'elementor-panel-alert elementor-panel-alert-danger',
|
72 |
+
]
|
73 |
+
);
|
74 |
+
|
75 |
+
$this->add_control(
|
76 |
+
'_cf7_install',
|
77 |
+
[
|
78 |
+
'type' => Controls_Manager::RAW_HTML,
|
79 |
+
'raw' => '<a href="'.esc_url( admin_url( 'plugin-install.php?s=Contact+Form+7&tab=search&type=term' ) ).'" target="_blank" rel="noopener">Click to install or activate Contact Form 7</a>',
|
80 |
+
]
|
81 |
+
);
|
82 |
+
$this->end_controls_section();
|
83 |
+
return;
|
84 |
+
}
|
85 |
+
|
86 |
+
$this->add_control(
|
87 |
+
'form_id',
|
88 |
+
[
|
89 |
+
'label' => __( 'Select Your Form', 'happy-elementor-addons' ),
|
90 |
+
'type' => Controls_Manager::SELECT,
|
91 |
+
'label_block' => true,
|
92 |
+
'options' => ['' => __( '', 'happy-elementor-addons' ) ] + \ha_get_cf7_forms(),
|
93 |
+
]
|
94 |
+
);
|
95 |
+
|
96 |
+
$this->add_control(
|
97 |
+
'html_class',
|
98 |
+
[
|
99 |
+
'label' => __( 'HTML Class', 'happy-elementor-addons' ),
|
100 |
+
'type' => Controls_Manager::TEXT,
|
101 |
+
'label_block' => true,
|
102 |
+
'description' => __( 'Add CSS custom class to the form.', 'happy-elementor-addons' ),
|
103 |
+
]
|
104 |
+
);
|
105 |
+
|
106 |
+
$this->end_controls_section();
|
107 |
+
}
|
108 |
+
|
109 |
+
protected function register_style_controls() {
|
110 |
+
$this->start_controls_section(
|
111 |
+
'_section_fields_style',
|
112 |
+
[
|
113 |
+
'label' => __( 'Form Fields', 'happy-elementor-addons' ),
|
114 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
115 |
+
]
|
116 |
+
);
|
117 |
+
|
118 |
+
$this->add_responsive_control(
|
119 |
+
'field_width',
|
120 |
+
[
|
121 |
+
'label' => __( 'Width', 'happy-elementor-addons' ),
|
122 |
+
'type' => Controls_Manager::SLIDER,
|
123 |
+
'default' => [
|
124 |
+
'unit' => '%',
|
125 |
+
],
|
126 |
+
'tablet_default' => [
|
127 |
+
'unit' => '%',
|
128 |
+
],
|
129 |
+
'mobile_default' => [
|
130 |
+
'unit' => '%',
|
131 |
+
],
|
132 |
+
'size_units' => [ '%', 'px' ],
|
133 |
+
'range' => [
|
134 |
+
'%' => [
|
135 |
+
'min' => 1,
|
136 |
+
'max' => 100,
|
137 |
+
],
|
138 |
+
'px' => [
|
139 |
+
'min' => 1,
|
140 |
+
'max' => 500,
|
141 |
+
],
|
142 |
+
],
|
143 |
+
'selectors' => [
|
144 |
+
'{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)' => 'width: {{SIZE}}{{UNIT}};',
|
145 |
+
'{{WRAPPER}} .ha-cf7-form label' => 'width: {{SIZE}}{{UNIT}};',
|
146 |
+
],
|
147 |
+
]
|
148 |
+
);
|
149 |
+
|
150 |
+
$this->add_responsive_control(
|
151 |
+
'field_margin',
|
152 |
+
[
|
153 |
+
'label' => __( 'Spacing Bottom', 'happy-elementor-addons' ),
|
154 |
+
'type' => Controls_Manager::SLIDER,
|
155 |
+
'size_units' => [ 'px' ],
|
156 |
+
'range' => [
|
157 |
+
'px' => [
|
158 |
+
'min' => 0,
|
159 |
+
'max' => 100,
|
160 |
+
],
|
161 |
+
],
|
162 |
+
'selectors' => [
|
163 |
+
'{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)' => 'margin-bottom: {{SIZE}}{{UNIT}};',
|
164 |
+
],
|
165 |
+
]
|
166 |
+
);
|
167 |
+
|
168 |
+
$this->add_responsive_control(
|
169 |
+
'field_padding',
|
170 |
+
[
|
171 |
+
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
172 |
+
'type' => Controls_Manager::DIMENSIONS,
|
173 |
+
'size_units' => [ 'px', 'em', '%' ],
|
174 |
+
'selectors' => [
|
175 |
+
'{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
176 |
+
],
|
177 |
+
]
|
178 |
+
);
|
179 |
+
|
180 |
+
$this->add_responsive_control(
|
181 |
+
'field_border_radius',
|
182 |
+
[
|
183 |
+
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
184 |
+
'type' => Controls_Manager::DIMENSIONS,
|
185 |
+
'size_units' => [ 'px', '%' ],
|
186 |
+
'selectors' => [
|
187 |
+
'{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
188 |
+
],
|
189 |
+
]
|
190 |
+
);
|
191 |
+
|
192 |
+
$this->add_control(
|
193 |
+
'hr',
|
194 |
+
[
|
195 |
+
'type' => Controls_Manager::DIVIDER,
|
196 |
+
'style' => 'thick',
|
197 |
+
]
|
198 |
+
);
|
199 |
+
|
200 |
+
$this->add_group_control(
|
201 |
+
Group_Control_Typography::get_type(),
|
202 |
+
[
|
203 |
+
'name' => 'field_typography',
|
204 |
+
'label' => __( 'Typography', 'happy-elementor-addons' ),
|
205 |
+
'selector' => '{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)',
|
206 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_3
|
207 |
+
]
|
208 |
+
);
|
209 |
+
|
210 |
+
$this->add_control(
|
211 |
+
'field_color',
|
212 |
+
[
|
213 |
+
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
214 |
+
'type' => Controls_Manager::COLOR,
|
215 |
+
'selectors' => [
|
216 |
+
'{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)' => 'color: {{VALUE}}',
|
217 |
+
],
|
218 |
+
]
|
219 |
+
);
|
220 |
+
|
221 |
+
$this->add_control(
|
222 |
+
'field_placeholder_color',
|
223 |
+
[
|
224 |
+
'label' => __( 'Placeholder Text Color', 'happy-elementor-addons' ),
|
225 |
+
'type' => Controls_Manager::COLOR,
|
226 |
+
'selectors' => [
|
227 |
+
'{{WRAPPER}} ::-webkit-input-placeholder' => 'color: {{VALUE}};',
|
228 |
+
'{{WRAPPER}} ::-moz-placeholder' => 'color: {{VALUE}};',
|
229 |
+
'{{WRAPPER}} ::-ms-input-placeholder' => 'color: {{VALUE}};',
|
230 |
+
],
|
231 |
+
]
|
232 |
+
);
|
233 |
+
|
234 |
+
$this->start_controls_tabs( 'tabs_field_state' );
|
235 |
+
|
236 |
+
$this->start_controls_tab(
|
237 |
+
'tab_field_normal',
|
238 |
+
[
|
239 |
+
'label' => __( 'Normal', 'happy-elementor-addons' ),
|
240 |
+
]
|
241 |
+
);
|
242 |
+
|
243 |
+
$this->add_group_control(
|
244 |
+
Group_Control_Border::get_type(),
|
245 |
+
[
|
246 |
+
'name' => 'field_border',
|
247 |
+
'selector' => '{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)',
|
248 |
+
]
|
249 |
+
);
|
250 |
+
|
251 |
+
$this->add_group_control(
|
252 |
+
Group_Control_Box_Shadow::get_type(),
|
253 |
+
[
|
254 |
+
'name' => 'field_box_shadow',
|
255 |
+
'selector' => '{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)',
|
256 |
+
]
|
257 |
+
);
|
258 |
+
|
259 |
+
$this->add_control(
|
260 |
+
'field_bg_color',
|
261 |
+
[
|
262 |
+
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
263 |
+
'type' => Controls_Manager::COLOR,
|
264 |
+
'selectors' => [
|
265 |
+
'{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)' => 'background-color: {{VALUE}}',
|
266 |
+
],
|
267 |
+
]
|
268 |
+
);
|
269 |
+
|
270 |
+
$this->end_controls_tab();
|
271 |
+
|
272 |
+
$this->start_controls_tab(
|
273 |
+
'tab_field_focus',
|
274 |
+
[
|
275 |
+
'label' => __( 'Focus', 'happy-elementor-addons' ),
|
276 |
+
]
|
277 |
+
);
|
278 |
+
|
279 |
+
$this->add_group_control(
|
280 |
+
Group_Control_Border::get_type(),
|
281 |
+
[
|
282 |
+
'name' => 'field_focus_border',
|
283 |
+
'selector' => '{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit):focus',
|
284 |
+
]
|
285 |
+
);
|
286 |
+
|
287 |
+
$this->add_group_control(
|
288 |
+
Group_Control_Box_Shadow::get_type(),
|
289 |
+
[
|
290 |
+
'name' => 'field_focus_box_shadow',
|
291 |
+
'exclude' => [
|
292 |
+
'box_shadow_position',
|
293 |
+
],
|
294 |
+
'selector' => '{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit):focus',
|
295 |
+
]
|
296 |
+
);
|
297 |
+
|
298 |
+
$this->add_control(
|
299 |
+
'field_focus_bg_color',
|
300 |
+
[
|
301 |
+
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
302 |
+
'type' => Controls_Manager::COLOR,
|
303 |
+
'selectors' => [
|
304 |
+
'{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit):focus' => 'background-color: {{VALUE}}',
|
305 |
+
],
|
306 |
+
]
|
307 |
+
);
|
308 |
+
|
309 |
+
$this->end_controls_tab();
|
310 |
+
$this->end_controls_tabs();
|
311 |
+
|
312 |
+
$this->end_controls_section();
|
313 |
+
|
314 |
+
|
315 |
+
$this->start_controls_section(
|
316 |
+
'cf7-form-label',
|
317 |
+
[
|
318 |
+
'label' => __( 'Form Fields Label', 'happy-elementor-addons' ),
|
319 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
320 |
+
]
|
321 |
+
);
|
322 |
+
|
323 |
+
$this->add_responsive_control(
|
324 |
+
'label_margin',
|
325 |
+
[
|
326 |
+
'label' => __( 'Spacing Bottom', 'happy-elementor-addons' ),
|
327 |
+
'type' => Controls_Manager::SLIDER,
|
328 |
+
'size_units' => [ 'px' ],
|
329 |
+
'range' => [
|
330 |
+
'px' => [
|
331 |
+
'min' => 0,
|
332 |
+
'max' => 100,
|
333 |
+
],
|
334 |
+
],
|
335 |
+
'selectors' => [
|
336 |
+
'{{WRAPPER}} .wpcf7-form-control:not(.wpcf7-submit)' => 'margin-top: {{SIZE}}{{UNIT}};',
|
337 |
+
],
|
338 |
+
]
|
339 |
+
);
|
340 |
+
|
341 |
+
$this->add_control(
|
342 |
+
'hr3',
|
343 |
+
[
|
344 |
+
'type' => Controls_Manager::DIVIDER,
|
345 |
+
'style' => 'thick',
|
346 |
+
]
|
347 |
+
);
|
348 |
+
|
349 |
+
$this->add_group_control(
|
350 |
+
Group_Control_Typography::get_type(),
|
351 |
+
[
|
352 |
+
'name' => 'label_typography',
|
353 |
+
'label' => __( 'Typography', 'happy-elementor-addons' ),
|
354 |
+
'selector' => '{{WRAPPER}} label',
|
355 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_3
|
356 |
+
]
|
357 |
+
);
|
358 |
+
|
359 |
+
$this->add_control(
|
360 |
+
'label_color',
|
361 |
+
[
|
362 |
+
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
363 |
+
'type' => Controls_Manager::COLOR,
|
364 |
+
'selectors' => [
|
365 |
+
'{{WRAPPER}} label' => 'color: {{VALUE}}',
|
366 |
+
],
|
367 |
+
]
|
368 |
+
);
|
369 |
+
|
370 |
+
$this->end_controls_section();
|
371 |
+
|
372 |
+
$this->start_controls_section(
|
373 |
+
'submit',
|
374 |
+
[
|
375 |
+
'label' => __( 'Submit Button', 'happy-elementor-addons' ),
|
376 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
377 |
+
]
|
378 |
+
);
|
379 |
+
|
380 |
+
$this->add_responsive_control(
|
381 |
+
'submit_margin',
|
382 |
+
[
|
383 |
+
'label' => __( 'Margin', 'happy-elementor-addons' ),
|
384 |
+
'type' => Controls_Manager::DIMENSIONS,
|
385 |
+
'size_units' => [ 'px', '%' ],
|
386 |
+
'selectors' => [
|
387 |
+
'{{WRAPPER}} .wpcf7-submit' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
388 |
+
],
|
389 |
+
]
|
390 |
+
);
|
391 |
+
|
392 |
+
$this->add_responsive_control(
|
393 |
+
'submit_padding',
|
394 |
+
[
|
395 |
+
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
396 |
+
'type' => Controls_Manager::DIMENSIONS,
|
397 |
+
'size_units' => [ 'px', 'em', '%' ],
|
398 |
+
'selectors' => [
|
399 |
+
'{{WRAPPER}} .wpcf7-submit' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
400 |
+
],
|
401 |
+
]
|
402 |
+
);
|
403 |
+
|
404 |
+
$this->add_group_control(
|
405 |
+
Group_Control_Typography::get_type(),
|
406 |
+
[
|
407 |
+
'name' => 'submit_typography',
|
408 |
+
'selector' => '{{WRAPPER}} .wpcf7-submit',
|
409 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_4
|
410 |
+
]
|
411 |
+
);
|
412 |
+
|
413 |
+
$this->add_group_control(
|
414 |
+
Group_Control_Border::get_type(),
|
415 |
+
[
|
416 |
+
'name' => 'submit_border',
|
417 |
+
'selector' => '{{WRAPPER}} .wpcf7-submit',
|
418 |
+
]
|
419 |
+
);
|
420 |
+
|
421 |
+
$this->add_control(
|
422 |
+
'submit_border_radius',
|
423 |
+
[
|
424 |
+
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
425 |
+
'type' => Controls_Manager::DIMENSIONS,
|
426 |
+
'size_units' => [ 'px', '%' ],
|
427 |
+
'selectors' => [
|
428 |
+
'{{WRAPPER}} .wpcf7-submit' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
429 |
+
],
|
430 |
+
]
|
431 |
+
);
|
432 |
+
|
433 |
+
$this->add_group_control(
|
434 |
+
Group_Control_Box_Shadow::get_type(),
|
435 |
+
[
|
436 |
+
'name' => 'submit_box_shadow',
|
437 |
+
'selector' => '{{WRAPPER}} .wpcf7-submit',
|
438 |
+
]
|
439 |
+
);
|
440 |
+
|
441 |
+
$this->add_control(
|
442 |
+
'hr4',
|
443 |
+
[
|
444 |
+
'type' => Controls_Manager::DIVIDER,
|
445 |
+
'style' => 'thick',
|
446 |
+
]
|
447 |
+
);
|
448 |
+
|
449 |
+
$this->start_controls_tabs( 'tabs_button_style' );
|
450 |
+
|
451 |
+
$this->start_controls_tab(
|
452 |
+
'tab_button_normal',
|
453 |
+
[
|
454 |
+
'label' => __( 'Normal', 'happy-elementor-addons' ),
|
455 |
+
]
|
456 |
+
);
|
457 |
+
|
458 |
+
$this->add_control(
|
459 |
+
'submit_color',
|
460 |
+
[
|
461 |
+
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
462 |
+
'type' => Controls_Manager::COLOR,
|
463 |
+
'default' => '',
|
464 |
+
'selectors' => [
|
465 |
+
'{{WRAPPER}} .wpcf7-submit' => 'color: {{VALUE}};',
|
466 |
+
],
|
467 |
+
]
|
468 |
+
);
|
469 |
+
|
470 |
+
$this->add_control(
|
471 |
+
'submit_bg_color',
|
472 |
+
[
|
473 |
+
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
474 |
+
'type' => Controls_Manager::COLOR,
|
475 |
+
'selectors' => [
|
476 |
+
'{{WRAPPER}} .wpcf7-submit' => 'background-color: {{VALUE}};',
|
477 |
+
],
|
478 |
+
]
|
479 |
+
);
|
480 |
+
|
481 |
+
$this->end_controls_tab();
|
482 |
+
|
483 |
+
$this->start_controls_tab(
|
484 |
+
'tab_button_hover',
|
485 |
+
[
|
486 |
+
'label' => __( 'Hover', 'happy-elementor-addons' ),
|
487 |
+
]
|
488 |
+
);
|
489 |
+
|
490 |
+
$this->add_control(
|
491 |
+
'submit_hover_color',
|
492 |
+
[
|
493 |
+
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
494 |
+
'type' => Controls_Manager::COLOR,
|
495 |
+
'selectors' => [
|
496 |
+
'{{WRAPPER}} .wpcf7-submit:hover, {{WRAPPER}} .wpcf7-submit:focus' => 'color: {{VALUE}};',
|
497 |
+
],
|
498 |
+
]
|
499 |
+
);
|
500 |
+
|
501 |
+
$this->add_control(
|
502 |
+
'submit_hover_bg_color',
|
503 |
+
[
|
504 |
+
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
505 |
+
'type' => Controls_Manager::COLOR,
|
506 |
+
'selectors' => [
|
507 |
+
'{{WRAPPER}} .wpcf7-submit:hover, {{WRAPPER}} .wpcf7-submit:focus' => 'background-color: {{VALUE}};',
|
508 |
+
],
|
509 |
+
]
|
510 |
+
);
|
511 |
+
|
512 |
+
$this->add_control(
|
513 |
+
'submit_hover_border_color',
|
514 |
+
[
|
515 |
+
'label' => __( 'Border Color', 'happy-elementor-addons' ),
|
516 |
+
'type' => Controls_Manager::COLOR,
|
517 |
+
'selectors' => [
|
518 |
+
'{{WRAPPER}} .wpcf7-submit:hover, {{WRAPPER}} .wpcf7-submit:focus' => 'border-color: {{VALUE}};',
|
519 |
+
],
|
520 |
+
]
|
521 |
+
);
|
522 |
+
|
523 |
+
$this->end_controls_tab();
|
524 |
+
$this->end_controls_tabs();
|
525 |
+
|
526 |
+
$this->end_controls_section();
|
527 |
+
}
|
528 |
+
|
529 |
+
protected function render() {
|
530 |
+
if ( ! ha_is_cf7_activated() ) {
|
531 |
+
return;
|
532 |
+
}
|
533 |
+
|
534 |
+
$settings = $this->get_settings_for_display();
|
535 |
+
|
536 |
+
if ( ! empty( $settings['form_id'] ) ) {
|
537 |
+
echo ha_do_shortcode( 'contact-form-7', [
|
538 |
+
'id' => $settings['form_id'],
|
539 |
+
'html_class' => 'ha-cf7-form ' . ha_sanitize_html_class_param( $settings['html_class'] ),
|
540 |
+
] );
|
541 |
+
}
|
542 |
+
}
|
543 |
+
}
|
widgets/data-table/widget.php
CHANGED
@@ -1042,8 +1042,9 @@ class Data_Table extends Base {
|
|
1042 |
protected function data_table_render() {
|
1043 |
$settings = $this->get_settings_for_display();
|
1044 |
|
1045 |
-
$table_row
|
1046 |
$table_cell = [];
|
|
|
1047 |
foreach ( $settings['rows_data'] as $row ) {
|
1048 |
$row_id = uniqid();
|
1049 |
|
@@ -1059,38 +1060,38 @@ class Data_Table extends Base {
|
|
1059 |
$cell_key = end($table_row_keys );
|
1060 |
|
1061 |
$table_cell[] = [
|
1062 |
-
'repeater_id'
|
1063 |
-
'row_id'
|
1064 |
-
'title'
|
1065 |
-
'row_span'
|
1066 |
-
'row_column_span'
|
1067 |
-
'row_icon'
|
1068 |
-
'row_icons'
|
1069 |
-
'row_icon_show'
|
1070 |
-
'row_image'
|
1071 |
'row_thumbnail_size' => !empty( $row['row_thumbnail_size'] ) ? $row['row_thumbnail_size'] : '',
|
1072 |
-
'cell_link'
|
1073 |
];
|
1074 |
}
|
1075 |
-
|
1076 |
}
|
1077 |
?>
|
1078 |
|
1079 |
<table class="ha-table">
|
1080 |
-
|
1081 |
<thead class="ha-table__head">
|
1082 |
<tr class="ha-table__head-column">
|
1083 |
<?php foreach ( $settings['columns_data'] as $index => $column_cell ) :
|
1084 |
$column_repeater_key = $this->get_repeater_setting_key( 'column_span', 'columns_data', $index );
|
|
|
1085 |
$this->add_render_attribute( $column_repeater_key, 'class', 'ha-table__head-column-cell' );
|
1086 |
$this->add_render_attribute( $column_repeater_key, 'class', 'elementor-repeater-item-' . $column_cell['_id'] );
|
|
|
1087 |
if ( $column_cell['column_span'] ) {
|
1088 |
$this->add_render_attribute( $column_repeater_key, 'colspan', $column_cell['column_span'] );
|
1089 |
}
|
1090 |
?>
|
1091 |
<th <?php echo $this->get_render_attribute_string( $column_repeater_key ); ?>>
|
1092 |
<div class="ha-table__head-column-cell-wrap">
|
1093 |
-
<div class="ha-table__head-column-cell-text"><?php echo
|
1094 |
<?php if ( $column_cell['column_media'] == 'icon' && ! empty( $column_cell['column_icons'] ) ) : ?>
|
1095 |
<div class="ha-table__head-column-cell-icon">
|
1096 |
<?php Icons_Manager::render_icon( $column_cell['column_icons'] ); ?>
|
@@ -1138,14 +1139,12 @@ class Data_Table extends Base {
|
|
1138 |
<td <?php echo $this->get_render_attribute_string( $row_span_repeater_key ); ?>>
|
1139 |
<div class="ha-table__body-row-cell-wrap">
|
1140 |
<div class="ha-table__body-row-cell-text">
|
1141 |
-
<?php
|
1142 |
-
|
1143 |
-
|
1144 |
-
<a <?php $this->print_render_attribute_string( $row_link_key ); ?>>
|
1145 |
-
<?php echo esc_html( $table_cell[$j]['title'] ); ?>
|
1146 |
</a>
|
1147 |
-
|
1148 |
-
|
1149 |
endif;
|
1150 |
?>
|
1151 |
</div>
|
@@ -1176,11 +1175,8 @@ class Data_Table extends Base {
|
|
1176 |
</tr>
|
1177 |
<?php endfor; ?>
|
1178 |
</tbody>
|
1179 |
-
|
1180 |
</table>
|
1181 |
|
1182 |
<?php
|
1183 |
-
|
1184 |
}
|
1185 |
-
|
1186 |
}
|
1042 |
protected function data_table_render() {
|
1043 |
$settings = $this->get_settings_for_display();
|
1044 |
|
1045 |
+
$table_row = [];
|
1046 |
$table_cell = [];
|
1047 |
+
|
1048 |
foreach ( $settings['rows_data'] as $row ) {
|
1049 |
$row_id = uniqid();
|
1050 |
|
1060 |
$cell_key = end($table_row_keys );
|
1061 |
|
1062 |
$table_cell[] = [
|
1063 |
+
'repeater_id' => $row['_id'],
|
1064 |
+
'row_id' => $table_row[$cell_key]['id'],
|
1065 |
+
'title' => $row['cell_name'],
|
1066 |
+
'row_span' => $row['row_span'],
|
1067 |
+
'row_column_span' => $row['row_column_span'],
|
1068 |
+
'row_icon' => ! empty( $row['row_icon'] ) ? $row['row_icon'] : '',
|
1069 |
+
'row_icons' => ! empty( $row['row_icons']['value'] ) ? $row['row_icons'] : '',
|
1070 |
+
'row_icon_show' => ! empty( $row['row_icon_show'] ) ? $row['row_icon_show'] : '',
|
1071 |
+
'row_image' => array_key_exists( 'row_image', $row ) ? $row['row_image'] : '',
|
1072 |
'row_thumbnail_size' => !empty( $row['row_thumbnail_size'] ) ? $row['row_thumbnail_size'] : '',
|
1073 |
+
'cell_link' => !empty( $row['cell_link']['url'] ) ? $row['cell_link'] : '',
|
1074 |
];
|
1075 |
}
|
|
|
1076 |
}
|
1077 |
?>
|
1078 |
|
1079 |
<table class="ha-table">
|
|
|
1080 |
<thead class="ha-table__head">
|
1081 |
<tr class="ha-table__head-column">
|
1082 |
<?php foreach ( $settings['columns_data'] as $index => $column_cell ) :
|
1083 |
$column_repeater_key = $this->get_repeater_setting_key( 'column_span', 'columns_data', $index );
|
1084 |
+
|
1085 |
$this->add_render_attribute( $column_repeater_key, 'class', 'ha-table__head-column-cell' );
|
1086 |
$this->add_render_attribute( $column_repeater_key, 'class', 'elementor-repeater-item-' . $column_cell['_id'] );
|
1087 |
+
|
1088 |
if ( $column_cell['column_span'] ) {
|
1089 |
$this->add_render_attribute( $column_repeater_key, 'colspan', $column_cell['column_span'] );
|
1090 |
}
|
1091 |
?>
|
1092 |
<th <?php echo $this->get_render_attribute_string( $column_repeater_key ); ?>>
|
1093 |
<div class="ha-table__head-column-cell-wrap">
|
1094 |
+
<div class="ha-table__head-column-cell-text"><?php echo ha_kses_basic( $column_cell['column_name'] ); ?></div>
|
1095 |
<?php if ( $column_cell['column_media'] == 'icon' && ! empty( $column_cell['column_icons'] ) ) : ?>
|
1096 |
<div class="ha-table__head-column-cell-icon">
|
1097 |
<?php Icons_Manager::render_icon( $column_cell['column_icons'] ); ?>
|
1139 |
<td <?php echo $this->get_render_attribute_string( $row_span_repeater_key ); ?>>
|
1140 |
<div class="ha-table__body-row-cell-wrap">
|
1141 |
<div class="ha-table__body-row-cell-text">
|
1142 |
+
<?php if ( ! empty( $table_cell[$j]['cell_link']['url'] ) ) : ?>
|
1143 |
+
<a <?php $this->print_render_attribute_string( $row_link_key ); ?>>
|
1144 |
+
<?php echo ha_kses_basic( $table_cell[$j]['title'] ); ?>
|
|
|
|
|
1145 |
</a>
|
1146 |
+
<?php else:
|
1147 |
+
echo ha_kses_basic( $table_cell[$j]['title'] );
|
1148 |
endif;
|
1149 |
?>
|
1150 |
</div>
|
1175 |
</tr>
|
1176 |
<?php endfor; ?>
|
1177 |
</tbody>
|
|
|
1178 |
</table>
|
1179 |
|
1180 |
<?php
|
|
|
1181 |
}
|
|
|
1182 |
}
|
widgets/event-calendar/widget.php
ADDED
@@ -0,0 +1,2270 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Event Calendar widget class
|
4 |
+
*
|
5 |
+
* @package Happy_Addons
|
6 |
+
*/
|
7 |
+
|
8 |
+
namespace Happy_Addons\Elementor\Widget;
|
9 |
+
|
10 |
+
use Elementor\Controls_Manager;
|
11 |
+
use Elementor\Group_Control_Border;
|
12 |
+
use Elementor\Group_Control_Box_Shadow;
|
13 |
+
use Elementor\Group_Control_Text_Shadow;
|
14 |
+
use Elementor\Group_Control_Typography;
|
15 |
+
use Elementor\Scheme_Typography;
|
16 |
+
use Elementor\Group_Control_Background;
|
17 |
+
use Elementor\Group_Control_Image_Size;
|
18 |
+
use Elementor\Utils;
|
19 |
+
use Elementor\Repeater;
|
20 |
+
|
21 |
+
defined( 'ABSPATH' ) || die();
|
22 |
+
|
23 |
+
class Event_Calendar extends Base {
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Get widget title.
|
27 |
+
*
|
28 |
+
* @return string Widget title.
|
29 |
+
* @since 1.0.0
|
30 |
+
* @access public
|
31 |
+
*
|
32 |
+
*/
|
33 |
+
public function get_title () {
|
34 |
+
return __( 'Event Calendar', 'happy-elementor-addons' );
|
35 |
+
}
|
36 |
+
|
37 |
+
public function get_custom_help_url() {
|
38 |
+
return 'https://happyaddons.com/docs/happy-addons-for-elementor/widgets/event-calendar/';
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Get widget icon.
|
43 |
+
*
|
44 |
+
* @return string Widget icon.
|
45 |
+
* @since 1.0.0
|
46 |
+
* @access public
|
47 |
+
*
|
48 |
+
*/
|
49 |
+
public function get_icon () {
|
50 |
+
return 'hm hm-calendar2';
|
51 |
+
}
|
52 |
+
|
53 |
+
public function get_keywords () {
|
54 |
+
return [ 'event-calendar', 'event', 'calender', 'time', 'shedule', 'google-calender' ];
|
55 |
+
}
|
56 |
+
|
57 |
+
/**
|
58 |
+
* Get a list of all WPForms
|
59 |
+
*
|
60 |
+
* @return array
|
61 |
+
*/
|
62 |
+
public static function get_events () {
|
63 |
+
if (!function_exists('tribe_get_events')) {
|
64 |
+
return [];
|
65 |
+
}
|
66 |
+
$posts = [];
|
67 |
+
// $_posts = get_posts( [
|
68 |
+
// 'post_type' => 'post',
|
69 |
+
// 'post_status' => 'publish',
|
70 |
+
// 'posts_per_page' => -1,
|
71 |
+
// 'orderby' => 'title',
|
72 |
+
// 'order' => 'ASC',
|
73 |
+
// ] );
|
74 |
+
|
75 |
+
$_posts = tribe_get_events();
|
76 |
+
|
77 |
+
if ( ! empty( $_posts ) ) {
|
78 |
+
$posts = wp_list_pluck( $_posts, 'post_title', 'ID' );
|
79 |
+
}
|
80 |
+
return $posts;
|
81 |
+
|
82 |
+
}
|
83 |
+
|
84 |
+
/**
|
85 |
+
* Get the event calender category list
|
86 |
+
*
|
87 |
+
* @return array
|
88 |
+
*/
|
89 |
+
public static function get_the_event_calendar_cat() {
|
90 |
+
if (!function_exists('tribe_get_events')) {
|
91 |
+
return [];
|
92 |
+
}
|
93 |
+
$args = [
|
94 |
+
'taxonomy' => 'tribe_events_cat',
|
95 |
+
'hide_empty' => false
|
96 |
+
];
|
97 |
+
$options = [];
|
98 |
+
$tags = get_tags($args);
|
99 |
+
|
100 |
+
if (is_wp_error($tags)) {
|
101 |
+
return [];
|
102 |
+
}
|
103 |
+
|
104 |
+
foreach ($tags as $tag) {
|
105 |
+
$options[$tag->term_id] = $tag->name;
|
106 |
+
}
|
107 |
+
return $options;
|
108 |
+
}
|
109 |
+
|
110 |
+
/**
|
111 |
+
* Get a language code
|
112 |
+
*
|
113 |
+
* @return array
|
114 |
+
*/
|
115 |
+
protected function language_code_list() {
|
116 |
+
return [
|
117 |
+
'af' => 'Afrikaans',
|
118 |
+
'sq' => 'Albanian',
|
119 |
+
'ar' => 'Arabic',
|
120 |
+
'eu' => 'Basque',
|
121 |
+
'bn' => 'Bengali',
|
122 |
+
'bs' => 'Bosnian',
|
123 |
+
'bg' => 'Bulgarian',
|
124 |
+
'ca' => 'Catalan',
|
125 |
+
'zh-cn' => 'Chinese',
|
126 |
+
'zh-tw' => 'Chinese-tw',
|
127 |
+
'hr' => 'Croatian',
|
128 |
+
'cs' => 'Czech',
|
129 |
+
'da' => 'Danish',
|
130 |
+
'nl' => 'Dutch',
|
131 |
+
'en' => 'English',
|
132 |
+
'et' => 'Estonian',
|
133 |
+
'fi' => 'Finnish',
|
134 |
+
'fr' => 'French',
|
135 |
+
'gl' => 'Galician',
|
136 |
+
'ka' => 'Georgian',
|
137 |
+
'de' => 'German',
|
138 |
+
'el' => 'Greek (Modern)',
|
139 |
+
'he' => 'Hebrew',
|
140 |
+
'hi' => 'Hindi',
|
141 |
+
'hu' => 'Hungarian',
|
142 |
+
'is' => 'Icelandic',
|
143 |
+
'io' => 'Ido',
|
144 |
+
'id' => 'Indonesian',
|
145 |
+
'it' => 'Italian',
|
146 |
+
'ja' => 'Japanese',
|
147 |
+
'kk' => 'Kazakh',
|
148 |
+
'ko' => 'Korean',
|
149 |
+
'lv' => 'Latvian',
|
150 |
+
'lb' => 'Letzeburgesch',
|
151 |
+
'lt' => 'Lithuanian',
|
152 |
+
'lu' => 'Luba-Katanga',
|
153 |
+
'mk' => 'Macedonian',
|
154 |
+
'mg' => 'Malagasy',
|
155 |
+
'ms' => 'Malay',
|
156 |
+
'ro' => 'Moldovan, Moldavian, Romanian',
|
157 |
+
'nb' => 'Norwegian Bokmål',
|
158 |
+
'nn' => 'Norwegian Nynorsk',
|
159 |
+
'fa' => 'Persian',
|
160 |
+
'pl' => 'Polish',
|
161 |
+
'pt' => 'Portuguese',
|
162 |
+
'ru' => 'Russian',
|
163 |
+
'sr' => 'Serbian',
|
164 |
+
'sk' => 'Slovak',
|
165 |
+
'sl' => 'Slovenian',
|
166 |
+
'es' => 'Spanish',
|
167 |
+
'sv' => 'Swedish',
|
168 |
+
'tr' => 'Turkish',
|
169 |
+
'uk' => 'Ukrainian',
|
170 |
+
'vi' => 'Vietnamese',
|
171 |
+
];
|
172 |
+
}
|
173 |
+
|
174 |
+
protected function register_content_controls () {
|
175 |
+
|
176 |
+
$this->event_content_controls();
|
177 |
+
|
178 |
+
$this->event_google_content_controls();
|
179 |
+
|
180 |
+
$this->the_event_calendar_content_controls();
|
181 |
+
|
182 |
+
$this->event_settings_content_controls();
|
183 |
+
}
|
184 |
+
|
185 |
+
protected function event_content_controls () {
|
186 |
+
|
187 |
+
$this->start_controls_section(
|
188 |
+
'_section_event',
|
189 |
+
[
|
190 |
+
'label' => __( 'Event', 'happy-elementor-addons' ),
|
191 |
+
'tab' => Controls_Manager::TAB_CONTENT,
|
192 |
+
]
|
193 |
+
);
|
194 |
+
|
195 |
+
$this->add_control(
|
196 |
+
'event_calendar_type',
|
197 |
+
[
|
198 |
+
'label' => __( 'Source', 'happy-elementor-addons' ),
|
199 |
+
'label_block' => false,
|
200 |
+
'type' => Controls_Manager::SELECT,
|
201 |
+
'default' => 'manual',
|
202 |
+
'options' => [
|
203 |
+
'manual' => __( 'Manual', 'happy-elementor-addons' ),
|
204 |
+
'google_calendar' => __( 'Google Calendar', 'happy-elementor-addons' ),
|
205 |
+
'the_events_calendar' => __( 'The Event Calendar', 'happy-elementor-addons' ),
|
206 |
+
],
|
207 |
+
// 'multiple' => true,
|
208 |
+
]
|
209 |
+
);
|
210 |
+
|
211 |
+
$repeater = new Repeater();
|
212 |
+
$repeater->start_controls_tabs('event_calendar_tabs');
|
213 |
+
|
214 |
+
$repeater->start_controls_tab(
|
215 |
+
'event_calendar_content_tab',
|
216 |
+
[
|
217 |
+
'label' => __('Content', 'happy-elementor-addons'),
|
218 |
+
]
|
219 |
+
);
|
220 |
+
|
221 |
+
$repeater->add_control(
|
222 |
+
'title',
|
223 |
+
[
|
224 |
+
'label' => __('Title', 'happy-elementor-addons'),
|
225 |
+
'type' => Controls_Manager::TEXT,
|
226 |
+
'label_block' => true,
|
227 |
+
'default' => __('Event Title', 'happy-elementor-addons'),
|
228 |
+
'dynamic' => [
|
229 |
+
'active' => true,
|
230 |
+
]
|
231 |
+
]
|
232 |
+
);
|
233 |
+
|
234 |
+
$repeater->add_control(
|
235 |
+
'guest',
|
236 |
+
[
|
237 |
+
'label' => __('Guest/Speaker', 'happy-elementor-addons'),
|
238 |
+
'type' => Controls_Manager::TEXT,
|
239 |
+
'label_block' => true,
|
240 |
+
'default' => __('Hasin Hayder', 'happy-elementor-addons'),
|
241 |
+
'dynamic' => [
|
242 |
+
'active' => true,
|
243 |
+
]
|
244 |
+
]
|
245 |
+
);
|
246 |
+
|
247 |
+
$repeater->add_control(
|
248 |
+
'location',
|
249 |
+
[
|
250 |
+
'label' => __('Location', 'happy-elementor-addons'),
|
251 |
+
'type' => Controls_Manager::TEXT,
|
252 |
+
'label_block' => true,
|
253 |
+
'default' => __('Mirpur DOHS, Dhaka', 'happy-elementor-addons'),
|
254 |
+
'dynamic' => [
|
255 |
+
'active' => true,
|
256 |
+
]
|
257 |
+
]
|
258 |
+
);
|
259 |
+
|
260 |
+
$repeater->add_control(
|
261 |
+
'image',
|
262 |
+
[
|
263 |
+
'label' => __( 'Choose Image', 'happy-elementor-addons' ),
|
264 |
+
'type' => Controls_Manager::MEDIA,
|
265 |
+
'default' => [
|
266 |
+
'url' => Utils::get_placeholder_image_src(),
|
267 |
+
],
|
268 |
+
]
|
269 |
+
);
|
270 |
+
|
271 |
+
$repeater->add_group_control(
|
272 |
+
Group_Control_Image_Size::get_type(),
|
273 |
+
[
|
274 |
+
'name' => 'thumbnail',
|
275 |
+
'label' => 'Thumbnail Size',
|
276 |
+
'default' => 'thumbnail',
|
277 |
+
'separator' => 'before',
|
278 |
+
'exclude' => [
|
279 |
+
'custom'
|
280 |
+
]
|
281 |
+
]
|
282 |
+
);
|
283 |
+
|
284 |
+
$repeater->add_control(
|
285 |
+
'details_link',
|
286 |
+
[
|
287 |
+
'label' => __('Details Link', 'happy-elementor-addons'),
|
288 |
+
'type' => Controls_Manager::URL,
|
289 |
+
'placeholder' => __('https://example.com', 'happy-elementor-addons'),
|
290 |
+
'show_external' => true,
|
291 |
+
]
|
292 |
+
);
|
293 |
+
|
294 |
+
$repeater->add_control(
|
295 |
+
'all_day',
|
296 |
+
[
|
297 |
+
'label' => __('All Day', 'happy-elementor-addons'),
|
298 |
+
'type' => Controls_Manager::SWITCHER,
|
299 |
+
'label_block' => false,
|
300 |
+
'return_value' => 'yes',
|
301 |
+
]
|
302 |
+
);
|
303 |
+
|
304 |
+
$repeater->add_control(
|
305 |
+
'start_date',
|
306 |
+
[
|
307 |
+
'label' => __('Start Date', 'happy-elementor-addons'),
|
308 |
+
'type' => Controls_Manager::DATE_TIME,
|
309 |
+
'default' => date('Y-m-d H:i', current_time('timestamp', 0)),
|
310 |
+
'condition' => [
|
311 |
+
'all_day' => '',
|
312 |
+
],
|
313 |
+
]
|
314 |
+
);
|
315 |
+
|
316 |
+
$repeater->add_control(
|
317 |
+
'end_date',
|
318 |
+
[
|
319 |
+
'label' => __('End Date', 'happy-elementor-addons'),
|
320 |
+
'type' => Controls_Manager::DATE_TIME,
|
321 |
+
'default' => date('Y-m-d H:i', strtotime("+59 minute", current_time('timestamp', 0))),
|
322 |
+
'condition' => [
|
323 |
+
'all_day' => '',
|
324 |
+
],
|
325 |
+
]
|
326 |
+
);
|
327 |
+
|
328 |
+
$repeater->add_control(
|
329 |
+
'start_date_allday',
|
330 |
+
[
|
331 |
+
'label' => __('Start Date', 'happy-elementor-addons'),
|
332 |
+
'type' => Controls_Manager::DATE_TIME,
|
333 |
+
'picker_options' => ['enableTime' => false],
|
334 |
+
'default' => date('Y-m-d', current_time('timestamp', 0)),
|
335 |
+
'condition' => [
|
336 |
+
'all_day' => 'yes',
|
337 |
+
],
|
338 |
+
]
|
339 |
+
);
|
340 |
+
|
341 |
+
$repeater->add_control(
|
342 |
+
'end_date_allday',
|
343 |
+
[
|
344 |
+
'label' => __('End Date', 'happy-elementor-addons'),
|
345 |
+
'type' => Controls_Manager::DATE_TIME,
|
346 |
+
'picker_options' => ['enableTime' => false],
|
347 |
+
'default' => date('Y-m-d', current_time('timestamp', 0)),
|
348 |
+
'condition' => [
|
349 |
+
'all_day' => 'yes',
|
350 |
+
],
|
351 |
+
]
|
352 |
+
);
|
353 |
+
|
354 |
+
$repeater->add_control(
|
355 |
+
'individual_style',
|
356 |
+
[
|
357 |
+
'label' => __('Individual Style?', 'happy-elementor-addons'),
|
358 |
+
'type' => Controls_Manager::SWITCHER,
|
359 |
+
'label_on' => __('Yes', 'happy-elementor-addons'),
|
360 |
+
'label_off' => __('No', 'happy-elementor-addons'),
|
361 |
+
'return_value' => 'yes',
|
362 |
+
'default' => 'no',
|
363 |
+
'style_transfer' => true,
|
364 |
+
'separator' => 'after',
|
365 |
+
]
|
366 |
+
);
|
367 |
+
|
368 |
+
$repeater->add_control(
|
369 |
+
'text_color',
|
370 |
+
[
|
371 |
+
'label' => __('Text Color', 'happy-elementor-addons'),
|
372 |
+
'type' => Controls_Manager::COLOR,
|
373 |
+
'selectors' => [
|
374 |
+
'{{WRAPPER}} .ha-ec-wrapper {{CURRENT_ITEM}}' => 'color: {{VALUE}}!important;',
|
375 |
+
'{{WRAPPER}} .ha-ec-wrapper {{CURRENT_ITEM}} .fc-event-main' => 'color: {{VALUE}}!important;',
|
376 |
+
],
|
377 |
+
'condition' => [
|
378 |
+
'individual_style' => 'yes',
|
379 |
+
],
|
380 |
+
'style_transfer' => true,
|
381 |
+
// 'render_type' => 'template',
|
382 |
+
]
|
383 |
+
);
|
384 |
+
|
385 |
+
$repeater->add_control(
|
386 |
+
'bg_color',
|
387 |
+
[
|
388 |
+
'label' => __('Background', 'happy-elementor-addons'),
|
389 |
+
'type' => Controls_Manager::COLOR,
|
390 |
+
'selectors' => [
|
391 |
+
'{{WRAPPER}} .ha-ec-wrapper {{CURRENT_ITEM}}' => 'background-color: {{VALUE}}!important;',
|
392 |
+
],
|
393 |
+
'condition' => [
|
394 |
+
'individual_style' => 'yes',
|
395 |
+
],
|
396 |
+
'style_transfer' => true,
|
397 |
+
]
|
398 |
+
);
|
399 |
+
|
400 |
+
$repeater->add_control(
|
401 |
+
'border_color',
|
402 |
+
[
|
403 |
+
'label' => __('Dot Color', 'happy-elementor-addons'),
|
404 |
+
'type' => Controls_Manager::COLOR,
|
405 |
+
'selectors' => [
|
406 |
+
'{{WRAPPER}} .ha-ec-wrapper {{CURRENT_ITEM}} .fc-daygrid-event-dot' => 'border-color: {{VALUE}}!important;',
|
407 |
+
'{{WRAPPER}} .ha-ec-wrapper {{CURRENT_ITEM}} .fc-list-event-dot' => 'border-color: {{VALUE}}!important;',
|
408 |
+
],
|
409 |
+
'condition' => [
|
410 |
+
'individual_style' => 'yes'
|
411 |
+
],
|
412 |
+
'style_transfer' => true,
|
413 |
+
]
|
414 |
+
);
|
415 |
+
|
416 |
+
$repeater->end_controls_tab();
|
417 |
+
|
418 |
+
$repeater->start_controls_tab(
|
419 |
+
'event_calendar_description_tab',
|
420 |
+
[
|
421 |
+
'label' => __('Description', 'happy-elementor-addons'),
|
422 |
+
]
|
423 |
+
);
|
424 |
+
|
425 |
+
$repeater->add_control(
|
426 |
+
'description',
|
427 |
+
[
|
428 |
+
'label' => __('Description', 'happy-elementor-addons'),
|
429 |
+
'show_label' => true,
|
430 |
+
'type' => Controls_Manager::WYSIWYG,
|
431 |
+
'default' => sprintf(
|
432 |
+
'<strong>%s</strong> %s',
|
433 |
+
__('Lorem Ipsum', 'happy-elementor-addons'),
|
434 |
+
__('is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries', 'happy-elementor-addons')
|
435 |
+
),
|
436 |
+
|
437 |
+
'default' => __('<strong>Lorem Ipsum</strong> is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries', 'happy-elementor-addons'),
|
438 |
+
]
|
439 |
+
);
|
440 |
+
|
441 |
+
|
442 |
+
$repeater->end_controls_tab();
|
443 |
+
$repeater->end_controls_tabs();
|
444 |
+
|
445 |
+
$this->add_control(
|
446 |
+
'manual_event_list',
|
447 |
+
[
|
448 |
+
'show_label' => false,
|
449 |
+
'type' => Controls_Manager::REPEATER,
|
450 |
+
'fields' => $repeater->get_controls(),
|
451 |
+
'title_field' => '{{{ title }}}',
|
452 |
+
'default' => [
|
453 |
+
[
|
454 |
+
'title' => __('Event Title', 'happy-elementor-addons'),
|
455 |
+
],
|
456 |
+
],
|
457 |
+
'condition' => [
|
458 |
+
'event_calendar_type' => 'manual'
|
459 |
+
],
|
460 |
+
]
|
461 |
+
);
|
462 |
+
|
463 |
+
if ( ! class_exists( 'Tribe__Events__Main' ) ) {
|
464 |
+
$this->add_control(
|
465 |
+
'the_event_calendar_warning_text',
|
466 |
+
[
|
467 |
+
'type' => Controls_Manager::RAW_HTML,
|
468 |
+
'raw' => sprintf(
|
469 |
+
'<strong>%s</strong> %s <a href="plugin-install.php?s=the-events-calendar&tab=search&type=term" target="_blank">%s</a> %s',
|
470 |
+
__('The Events Calendar', 'happy-elementor-addons'),
|
471 |
+
__('is not installed/activated on your site. Please install and activate.', 'happy-elementor-addons'),
|
472 |
+
__('The Events Calendar', 'happy-elementor-addons'),
|
473 |
+
__(' first.', 'happy-elementor-addons')
|
474 |
+
),
|
475 |
+
// 'content_classes' => 'eael-warning',
|
476 |
+
'condition' => [
|
477 |
+
'event_calendar_type' => 'the_events_calendar',
|
478 |
+
],
|
479 |
+
]
|
480 |
+
);
|
481 |
+
}
|
482 |
+
$this->end_controls_section();
|
483 |
+
}
|
484 |
+
|
485 |
+
protected function event_google_content_controls () {
|
486 |
+
|
487 |
+
$this->start_controls_section(
|
488 |
+
'_section_event_google_calendar',
|
489 |
+
[
|
490 |
+
'label' => __('Google Calendar', 'happy-elementor-addons'),
|
491 |
+
'tab' => Controls_Manager::TAB_CONTENT,
|
492 |
+
'condition' => [
|
493 |
+
'event_calendar_type' => 'google_calendar',
|
494 |
+
],
|
495 |
+
]
|
496 |
+
);
|
497 |
+
|
498 |
+
$this->add_control(
|
499 |
+
'google_calendar_api_key',
|
500 |
+
[
|
501 |
+
'label' => __('API Key', 'happy-elementor-addons'),
|
502 |
+
'label_block' => true,
|
503 |
+
'type' => Controls_Manager::TEXT,
|
504 |
+
'default' => 'AIzaSyDiXYw6nDZIE6RzqIy2WNZxvrze73smMo0',
|
505 |
+
'description' => sprintf(__('<a href="https://docs.simplecalendar.io/google-api-key/" target="_blank">%s</a>','happy-elementor-addons'), 'Get API Key'),
|
506 |
+
]
|
507 |
+
);
|
508 |
+
|
509 |
+
$this->add_control(
|
510 |
+
'google_calendar_id',
|
511 |
+
[
|
512 |
+
'label' => __('Calendar ID', 'happy-elementor-addons'),
|
513 |
+
'label_block' => true,
|
514 |
+
'type' => Controls_Manager::TEXT,
|
515 |
+
'default' => 'en.bd#holiday@group.v.calendar.google.com',
|
516 |
+
//'description' => sprintf(__('<a href="#" target="_blank">%s</a>','happy-elementor-addons'), 'Get google calendar ID'),
|
517 |
+
]
|
518 |
+
);
|
519 |
+
|
520 |
+
$this->add_control(
|
521 |
+
'google_calendar_start_date',
|
522 |
+
[
|
523 |
+
'label' => __('Start Date', 'happy-elementor-addons'),
|
524 |
+
'type' => Controls_Manager::DATE_TIME,
|
525 |
+
'default' => date('Y-m-d H:i', current_time('timestamp', 0)),
|
526 |
+
]
|
527 |
+
);
|
528 |
+
|
529 |
+
$this->add_control(
|
530 |
+
'google_calendar_end_date',
|
531 |
+
[
|
532 |
+
'label' => __('End Date', 'happy-elementor-addons'),
|
533 |
+
'type' => Controls_Manager::DATE_TIME,
|
534 |
+
'default' => date('Y-m-d H:i', strtotime("+6 months", current_time('timestamp', 0))),
|
535 |
+
]
|
536 |
+
);
|
537 |
+
|
538 |
+
$this->add_control(
|
539 |
+
'google_calendar_max_item',
|
540 |
+
[
|
541 |
+
'label' => __('Number Of Events', 'happy-elementor-addons'),
|
542 |
+
'type' => Controls_Manager::NUMBER,
|
543 |
+
'min' => 1,
|
544 |
+
'default' => 100,
|
545 |
+
]
|
546 |
+
);
|
547 |
+
|
548 |
+
$this->end_controls_section();
|
549 |
+
}
|
550 |
+
|
551 |
+
protected function the_event_calendar_content_controls () {
|
552 |
+
|
553 |
+
//the events calendar
|
554 |
+
if ( class_exists( 'Tribe__Events__Main' ) ) {
|
555 |
+
|
556 |
+
$this->start_controls_section(
|
557 |
+
'_section_the_events_calendar',
|
558 |
+
[
|
559 |
+
'label' => __('The Event Calendar', 'happy-elementor-addons'),
|
560 |
+
'tab' => Controls_Manager::TAB_CONTENT,
|
561 |
+
'condition' => [
|
562 |
+
'event_calendar_type' => 'the_events_calendar',
|
563 |
+
],
|
564 |
+
]
|
565 |
+
);
|
566 |
+
|
567 |
+
$this->add_control(
|
568 |
+
'the_events_calendar_source',
|
569 |
+
[
|
570 |
+
'label' => __('Get Events By', 'happy-elementor-addons'),
|
571 |
+
'type' => Controls_Manager::SELECT,
|
572 |
+
'label_block' => true,
|
573 |
+
'default' => ['all'],
|
574 |
+
'options' => [
|
575 |
+
'all' => __('All Event', 'happy-elementor-addons'),
|
576 |
+
'category' => __('By Category', 'happy-elementor-addons'),
|
577 |
+
'selected_event' => __('Selected Event', 'happy-elementor-addons'),
|
578 |
+
],
|
579 |
+
// 'render_type' => 'none',
|
580 |
+
]
|
581 |
+
);
|
582 |
+
|
583 |
+
|
584 |
+
$this->add_control(
|
585 |
+
'the_events_calendar_category',
|
586 |
+
[
|
587 |
+
'label' => __('Event Category', 'happy-elementor-addons'),
|
588 |
+
'label_block' => true,
|
589 |
+
'type' => Controls_Manager::SELECT2,
|
590 |
+
'multiple' => true,
|
591 |
+
'options' => self::get_the_event_calendar_cat(),
|
592 |
+
'condition' => [
|
593 |
+
'the_events_calendar_source' => 'category',
|
594 |
+
],
|
595 |
+
]
|
596 |
+
);
|
597 |
+
|
598 |
+
$this->add_control(
|
599 |
+
'the_events_calendar_selected',
|
600 |
+
[
|
601 |
+
'label' => __('Select Events', 'happy-elementor-addons'),
|
602 |
+
'label_block' => true,
|
603 |
+
'type' => Controls_Manager::SELECT2,
|
604 |
+
'multiple' => true,
|
605 |
+
'options' => self::get_events(),
|
606 |
+
'condition' => [
|
607 |
+
'the_events_calendar_source' => 'selected_event',
|
608 |
+
],
|
609 |
+
]
|
610 |
+
);
|
611 |
+
|
612 |
+
$this->add_control(
|
613 |
+
'the_events_calendar_item',
|
614 |
+
[
|
615 |
+
'label' => __('Event Item', 'happy-elementor-addons'),
|
616 |
+
'type' => Controls_Manager::NUMBER,
|
617 |
+
'min' => 1,
|
618 |
+
'default' => 12,
|
619 |
+
'condition' => [
|
620 |
+
'the_events_calendar_source!' => 'selected_event',
|
621 |
+
],
|
622 |
+
]
|
623 |
+
);
|
624 |
+
|
625 |
+
$this->end_controls_section();
|
626 |
+
}
|
627 |
+
|
628 |
+
}
|
629 |
+
|
630 |
+
protected function event_settings_content_controls () {
|
631 |
+
|
632 |
+
$this->start_controls_section(
|
633 |
+
'_section_event_settings',
|
634 |
+
[
|
635 |
+
'label' => __( 'Settings', 'happy-elementor-addons' ),
|
636 |
+
'tab' => Controls_Manager::TAB_CONTENT,
|
637 |
+
]
|
638 |
+
);
|
639 |
+
|
640 |
+
$this->add_control(
|
641 |
+
'language',
|
642 |
+
[
|
643 |
+
'label' => __('Language', 'happy-elementor-addons'),
|
644 |
+
'type' => Controls_Manager::SELECT,
|
645 |
+
'options' => [
|
646 |
+
'manual' => __( 'Manual', 'happy-elementor-addons' ),
|
647 |
+
'google_calendar' => __( 'Google Calendar', 'happy-elementor-addons' ),
|
648 |
+
],
|
649 |
+
'options' => $this->language_code_list(),
|
650 |
+
'default' => 'en'
|
651 |
+
]
|
652 |
+
);
|
653 |
+
|
654 |
+
$this->add_control(
|
655 |
+
'default_view',
|
656 |
+
[
|
657 |
+
'label' => __('Calendar Default View', 'happy-elementor-addons'),
|
658 |
+
'type' => Controls_Manager::SELECT,
|
659 |
+
'options' => [
|
660 |
+
'timeGridDay' => __('Day', 'happy-elementor-addons'),
|
661 |
+
'timeGridWeek' => __('Week', 'happy-elementor-addons'),
|
662 |
+
'dayGridMonth' => __('Month', 'happy-elementor-addons'),
|
663 |
+
'listMonth' => __('List', 'happy-elementor-addons'),
|
664 |
+
],
|
665 |
+
'default' => 'dayGridMonth',
|
666 |
+
]
|
667 |
+
);
|
668 |
+
|
669 |
+
$this->add_control(
|
670 |
+
'event_calendar_first_day',
|
671 |
+
[
|
672 |
+
'label' => __('First Day of Week', 'happy-elementor-addons'),
|
673 |
+
'type' => Controls_Manager::SELECT,
|
674 |
+
'options' => [
|
675 |
+
'0' => __('Sunday', 'happy-elementor-addons'),
|
676 |
+
'1' => __('Monday', 'happy-elementor-addons'),
|
677 |
+
'2' => __('Tuesday', 'happy-elementor-addons'),
|
678 |
+
'3' => __('Wednesday', 'happy-elementor-addons'),
|
679 |
+
'4' => __('Thursday', 'happy-elementor-addons'),
|
680 |
+
'5' => __('Friday', 'happy-elementor-addons'),
|
681 |
+
'6' => __('Saturday', 'happy-elementor-addons'),
|
682 |
+
],
|
683 |
+
'default' => '0',
|
684 |
+
]
|
685 |
+
);
|
686 |
+
|
687 |
+
$this->add_control(
|
688 |
+
'show_event_popup',
|
689 |
+
[
|
690 |
+
'label' => __('Show Event Popup', 'happy-elementor-addons'),
|
691 |
+
'label_block' => false,
|
692 |
+
'type' => Controls_Manager::SWITCHER,
|
693 |
+
'return_value' => 'yes',
|
694 |
+
'default' => 'yes',
|
695 |
+
]
|
696 |
+
);
|
697 |
+
|
698 |
+
$this->add_control(
|
699 |
+
'allday_text',
|
700 |
+
[
|
701 |
+
'label' => __('All Day Text', 'happy-elementor-addons'),
|
702 |
+
'label_block' => false,
|
703 |
+
'type' => Controls_Manager::TEXT,
|
704 |
+
'default' => __('All Day', 'happy-elementor-addons'),
|
705 |
+
'condition' => [
|
706 |
+
'show_event_popup' => 'yes',
|
707 |
+
],
|
708 |
+
]
|
709 |
+
);
|
710 |
+
|
711 |
+
$this->add_control(
|
712 |
+
'readmore_text',
|
713 |
+
[
|
714 |
+
'label' => __('Read More Text', 'happy-elementor-addons'),
|
715 |
+
'label_block' => false,
|
716 |
+
'type' => Controls_Manager::TEXT,
|
717 |
+
'default' => __('Read More', 'happy-elementor-addons'),
|
718 |
+
'condition' => [
|
719 |
+
'show_event_popup' => 'yes',
|
720 |
+
],
|
721 |
+
]
|
722 |
+
);
|
723 |
+
|
724 |
+
$this->add_control(
|
725 |
+
'time_title',
|
726 |
+
[
|
727 |
+
'label' => __('Time Title', 'happy-elementor-addons'),
|
728 |
+
'label_block' => false,
|
729 |
+
'type' => Controls_Manager::TEXT,
|
730 |
+
'default' => __('Timezone UTC+6', 'happy-elementor-addons'),
|
731 |
+
'condition' => [
|
732 |
+
'show_event_popup' => 'yes',
|
733 |
+
],
|
734 |
+
]
|
735 |
+
);
|
736 |
+
|
737 |
+
$this->add_control(
|
738 |
+
'speaker_title',
|
739 |
+
[
|
740 |
+
'label' => __('Speaker Title', 'happy-elementor-addons'),
|
741 |
+
'label_block' => false,
|
742 |
+
'type' => Controls_Manager::TEXT,
|
743 |
+
'default' => __('Speaker', 'happy-elementor-addons'),
|
744 |
+
'condition' => [
|
745 |
+
'show_event_popup' => 'yes',
|
746 |
+
],
|
747 |
+
]
|
748 |
+
);
|
749 |
+
|
750 |
+
$this->add_control(
|
751 |
+
'location_title',
|
752 |
+
[
|
753 |
+
'label' => __('Location Title', 'happy-elementor-addons'),
|
754 |
+
'label_block' => false,
|
755 |
+
'type' => Controls_Manager::TEXT,
|
756 |
+
'default' => __('Address', 'happy-elementor-addons'),
|
757 |
+
'condition' => [
|
758 |
+
'show_event_popup' => 'yes',
|
759 |
+
],
|
760 |
+
]
|
761 |
+
);
|
762 |
+
|
763 |
+
$this->end_controls_section();
|
764 |
+
}
|
765 |
+
|
766 |
+
|
767 |
+
/*
|
768 |
+
* Register Style control
|
769 |
+
*/
|
770 |
+
protected function register_style_controls () {
|
771 |
+
|
772 |
+
$this->calendar_style_controls();
|
773 |
+
|
774 |
+
$this->topbar_style_controls();
|
775 |
+
|
776 |
+
$this->event_style_controls();
|
777 |
+
|
778 |
+
$this->popup_style_controls();
|
779 |
+
|
780 |
+
}
|
781 |
+
|
782 |
+
protected function calendar_style_controls () {
|
783 |
+
|
784 |
+
$this->start_controls_section(
|
785 |
+
'_section_style_calendar_wrapper',
|
786 |
+
[
|
787 |
+
'label' => __( 'Calendar', 'happy-elementor-addons' ),
|
788 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
789 |
+
]
|
790 |
+
);
|
791 |
+
|
792 |
+
$this->add_group_control(
|
793 |
+
Group_Control_Typography::get_type(),
|
794 |
+
[
|
795 |
+
'name' => 'calendar_typography',
|
796 |
+
'label' => __('Calendar Font Family', 'happy-elementor-addons'),
|
797 |
+
'include' => [
|
798 |
+
'font_family',
|
799 |
+
],
|
800 |
+
'selector' => '{{WRAPPER}} .ha-ec-wrapper * :not(i),{{WRAPPER}} .ha-ec-popup-wrapper * :not(i)',
|
801 |
+
]
|
802 |
+
);
|
803 |
+
|
804 |
+
$this->add_control(
|
805 |
+
'calendar_background_color',
|
806 |
+
[
|
807 |
+
'label' => __('Background', 'happy-elementor-addons'),
|
808 |
+
'type' => Controls_Manager::COLOR,
|
809 |
+
'selectors' => [
|
810 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-view > table'=> 'background-color: {{VALUE}}',
|
811 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-view table.fc-list-table'=> 'background-color: {{VALUE}}',
|
812 |
+
],
|
813 |
+
]
|
814 |
+
);
|
815 |
+
|
816 |
+
$this->add_control(
|
817 |
+
'calendar_border_color',
|
818 |
+
[
|
819 |
+
'label' => __('Border Color', 'happy-elementor-addons'),
|
820 |
+
'type' => Controls_Manager::COLOR,
|
821 |
+
'default' => '#CFCFDA',
|
822 |
+
'selectors' => [
|
823 |
+
'{{WRAPPER}} .ha-ec-wrapper table thead:first-child tr:first-child th,
|
824 |
+
{{WRAPPER}} .ha-ec-wrapper .fc-theme-standard .fc-scrollgrid,
|
825 |
+
{{WRAPPER}} .ha-ec-wrapper .fc-theme-standard .fc-list,
|
826 |
+
{{WRAPPER}} .ha-ec-wrapper .fc-theme-standard td,
|
827 |
+
{{WRAPPER}} .ha-ec-wrapper .fc-theme-standard th' => 'border-color: {{VALUE}}',
|
828 |
+
],
|
829 |
+
]
|
830 |
+
);
|
831 |
+
|
832 |
+
$this->add_group_control(
|
833 |
+
Group_Control_Box_Shadow::get_type(),
|
834 |
+
[
|
835 |
+
'name' => 'calendar_box_shadow',
|
836 |
+
'label' => __('Box Shadow', 'happy-elementor-addons'),
|
837 |
+
'selector' => '{{WRAPPER}} .ha-ec-wrapper .fc-view table.fc-scrollgrid,
|
838 |
+
{{WRAPPER}} .ha-ec-wrapper .fc-view table.fc-list-table',
|
839 |
+
]
|
840 |
+
);
|
841 |
+
|
842 |
+
$this->add_control(
|
843 |
+
'calendar_todays_background',
|
844 |
+
[
|
845 |
+
'label' => __('Today\'s Background', 'happy-elementor-addons'),
|
846 |
+
'type' => Controls_Manager::COLOR,
|
847 |
+
'selectors' => [
|
848 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc .fc-daygrid-day.fc-day-today' => 'background-color: {{VALUE}};',
|
849 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc .fc-timegrid-col.fc-day-today' => 'background-color: {{VALUE}};',
|
850 |
+
],
|
851 |
+
]
|
852 |
+
);
|
853 |
+
|
854 |
+
$this->add_control(
|
855 |
+
'calendar_heading_heading',
|
856 |
+
[
|
857 |
+
'label' => __('Calendar Heading', 'happy-elementor-addons'),
|
858 |
+
'type' => Controls_Manager::HEADING,
|
859 |
+
'separator' => 'before',
|
860 |
+
]
|
861 |
+
);
|
862 |
+
|
863 |
+
$this->add_responsive_control(
|
864 |
+
'calendar_heading_padding',
|
865 |
+
[
|
866 |
+
'label' => __('Padding', 'happy-elementor-addons'),
|
867 |
+
'type' => Controls_Manager::DIMENSIONS,
|
868 |
+
'size_units' => ['px', '%'],
|
869 |
+
'selectors' => [
|
870 |
+
'{{WRAPPER}} .ha-ec-wrapper th.fc-col-header-cell.fc-day' => 'Padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
871 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc .fc-list-table th .fc-list-day-cushion' => 'Padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
872 |
+
],
|
873 |
+
]
|
874 |
+
);
|
875 |
+
|
876 |
+
$this->add_responsive_control(
|
877 |
+
'calendar_heading_font_size',
|
878 |
+
[
|
879 |
+
'label' => __( 'Font Size', 'happy-elementor-addons' ),
|
880 |
+
'type' => Controls_Manager::SLIDER,
|
881 |
+
'size_units' => [ 'px', '%' ],
|
882 |
+
'range' => [
|
883 |
+
'px' => [
|
884 |
+
'min' => 0,
|
885 |
+
'max' => 200,
|
886 |
+
'step' => 1,
|
887 |
+
],
|
888 |
+
'%' => [
|
889 |
+
'min' => 0,
|
890 |
+
'max' => 100,
|
891 |
+
],
|
892 |
+
],
|
893 |
+
'selectors' => [
|
894 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc .fc-list-table th .fc-list-day-cushion' => 'font-size: {{SIZE}}{{UNIT}};',
|
895 |
+
'{{WRAPPER}} .ha-ec-wrapper th.fc-col-header-cell.fc-day' => 'font-size: {{SIZE}}{{UNIT}};',
|
896 |
+
],
|
897 |
+
]
|
898 |
+
);
|
899 |
+
|
900 |
+
$this->add_control(
|
901 |
+
'calendar_heading_color',
|
902 |
+
[
|
903 |
+
'label' => __('Color', 'happy-elementor-addons'),
|
904 |
+
'type' => Controls_Manager::COLOR,
|
905 |
+
'selectors' => [
|
906 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc .fc-list-table th .fc-list-day-cushion' => 'color: {{VALUE}};',
|
907 |
+
'{{WRAPPER}} .ha-ec-wrapper th.fc-col-header-cell.fc-day' => 'color: {{VALUE}};',
|
908 |
+
],
|
909 |
+
]
|
910 |
+
);
|
911 |
+
|
912 |
+
$this->add_control(
|
913 |
+
'calendar_heading_background',
|
914 |
+
[
|
915 |
+
'label' => __('Background', 'happy-elementor-addons'),
|
916 |
+
'type' => Controls_Manager::COLOR,
|
917 |
+
'selectors' => [
|
918 |
+
'{{WRAPPER}} .ha-ec-wrapper th.fc-col-header-cell.fc-day' => 'background-color: {{VALUE}};',
|
919 |
+
],
|
920 |
+
]
|
921 |
+
);
|
922 |
+
|
923 |
+
$this->add_control(
|
924 |
+
'calendar_date_and_time_heading',
|
925 |
+
[
|
926 |
+
'label' => __('Date&Time', 'happy-elementor-addons'),
|
927 |
+
'type' => Controls_Manager::HEADING,
|
928 |
+
'separator' => 'before',
|
929 |
+
]
|
930 |
+
);
|
931 |
+
|
932 |
+
$this->add_responsive_control(
|
933 |
+
'calendar_date_and_time_font_size',
|
934 |
+
[
|
935 |
+
'label' => __( 'Font Size', 'happy-elementor-addons' ),
|
936 |
+
'type' => Controls_Manager::SLIDER,
|
937 |
+
'size_units' => [ 'px', '%' ],
|
938 |
+
'range' => [
|
939 |
+
'px' => [
|
940 |
+
'min' => 0,
|
941 |
+
'max' => 200,
|
942 |
+
'step' => 1,
|
943 |
+
],
|
944 |
+
'%' => [
|
945 |
+
'min' => 0,
|
946 |
+
'max' => 100,
|
947 |
+
],
|
948 |
+
],
|
949 |
+
'selectors' => [
|
950 |
+
'{{WRAPPER}} .ha-ec-wrapper span.fc-timegrid-axis-cushion.fc-scrollgrid-shrink-cushion.fc-scrollgrid-sync-inner' => 'font-size: {{SIZE}}{{UNIT}};',
|
951 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-timegrid-slot-label-cushion.fc-scrollgrid-shrink-cushion' => 'font-size: {{SIZE}}{{UNIT}};',
|
952 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc .fc-daygrid-day-top' => 'font-size: {{SIZE}}{{UNIT}};',
|
953 |
+
],
|
954 |
+
]
|
955 |
+
);
|
956 |
+
|
957 |
+
$this->add_control(
|
958 |
+
'calendar_text_color',
|
959 |
+
[
|
960 |
+
'label' => __('Color', 'happy-elementor-addons'),
|
961 |
+
'type' => Controls_Manager::COLOR,
|
962 |
+
'selectors' => [
|
963 |
+
'{{WRAPPER}} .ha-ec-wrapper span.fc-timegrid-axis-cushion.fc-scrollgrid-shrink-cushion.fc-scrollgrid-sync-inner' => 'color: {{VALUE}};',
|
964 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-timegrid-slot-label-cushion.fc-scrollgrid-shrink-cushion' => 'color: {{VALUE}};',
|
965 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc .fc-daygrid-day-top' => 'color: {{VALUE}};',
|
966 |
+
],
|
967 |
+
]
|
968 |
+
);
|
969 |
+
|
970 |
+
$this->end_controls_section();
|
971 |
+
}
|
972 |
+
|
973 |
+
protected function topbar_style_controls () {
|
974 |
+
|
975 |
+
$this->start_controls_section(
|
976 |
+
'_section_style_calendar_topbar',
|
977 |
+
[
|
978 |
+
'label' => __( 'Top Bar', 'happy-elementor-addons' ),
|
979 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
980 |
+
]
|
981 |
+
);
|
982 |
+
|
983 |
+
$this->add_responsive_control(
|
984 |
+
'topbar_margin_bottom',
|
985 |
+
[
|
986 |
+
'label' => __('Margin Bottom', 'happy-elementor-addons'),
|
987 |
+
'type' => Controls_Manager::SLIDER,
|
988 |
+
'size_units' => [ 'px', '%' ],
|
989 |
+
'range' => [
|
990 |
+
'px' => [
|
991 |
+
'min' => 0,
|
992 |
+
'max' => 1000,
|
993 |
+
'step' => 1,
|
994 |
+
],
|
995 |
+
'%' => [
|
996 |
+
'min' => 0,
|
997 |
+
'max' => 100,
|
998 |
+
],
|
999 |
+
],
|
1000 |
+
'selectors' => [
|
1001 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-toolbar.fc-header-toolbar' => 'margin-bottom: {{SIZE}}{{UNIT}};',
|
1002 |
+
],
|
1003 |
+
]
|
1004 |
+
);
|
1005 |
+
|
1006 |
+
$this->add_control(
|
1007 |
+
'topbar_background',
|
1008 |
+
[
|
1009 |
+
'label' => __('Background', 'happy-elementor-addons'),
|
1010 |
+
'type' => Controls_Manager::COLOR,
|
1011 |
+
'selectors' => [
|
1012 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-toolbar.fc-header-toolbar' => 'background-color: {{VALUE}};',
|
1013 |
+
],
|
1014 |
+
]
|
1015 |
+
);
|
1016 |
+
|
1017 |
+
$this->add_control(
|
1018 |
+
'topbar_title_heading',
|
1019 |
+
[
|
1020 |
+
'label' => __('Title', 'happy-elementor-addons'),
|
1021 |
+
'type' => Controls_Manager::HEADING,
|
1022 |
+
'separator' => 'before',
|
1023 |
+
]
|
1024 |
+
);
|
1025 |
+
|
1026 |
+
$this->add_group_control(
|
1027 |
+
Group_Control_Typography::get_type(),
|
1028 |
+
[
|
1029 |
+
'name' => 'topbar_title_typography',
|
1030 |
+
'label' => __('Typography', 'happy-elementor-addons'),
|
1031 |
+
'exclude' => [
|
1032 |
+
'font_family',
|
1033 |
+
],
|
1034 |
+
'selector' => '{{WRAPPER}} .ha-ec-wrapper .fc-toolbar h2.fc-toolbar-title',
|
1035 |
+
]
|
1036 |
+
);
|
1037 |
+
|
1038 |
+
$this->add_control(
|
1039 |
+
'topbar_title_color',
|
1040 |
+
[
|
1041 |
+
'label' => __('Color', 'happy-elementor-addons'),
|
1042 |
+
'type' => Controls_Manager::COLOR,
|
1043 |
+
'selectors' => [
|
1044 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-toolbar h2.fc-toolbar-title' => 'color: {{VALUE}};',
|
1045 |
+
],
|
1046 |
+
]
|
1047 |
+
);
|
1048 |
+
|
1049 |
+
// Buttons style
|
1050 |
+
$this->add_control(
|
1051 |
+
'topbar_buttons_heading',
|
1052 |
+
[
|
1053 |
+
'label' => __('Button', 'happy-elementor-addons'),
|
1054 |
+
'type' => Controls_Manager::HEADING,
|
1055 |
+
'separator' => 'before',
|
1056 |
+
]
|
1057 |
+
);
|
1058 |
+
|
1059 |
+
$this->add_responsive_control(
|
1060 |
+
'topbar_buttons_space',
|
1061 |
+
[
|
1062 |
+
'label' => __('Space Between', 'happy-elementor-addons'),
|
1063 |
+
'type' => Controls_Manager::SLIDER,
|
1064 |
+
'size_units' => [ 'px', '%' ],
|
1065 |
+
'range' => [
|
1066 |
+
'px' => [
|
1067 |
+
'min' => 0,
|
1068 |
+
'max' => 1000,
|
1069 |
+
'step' => 1,
|
1070 |
+
],
|
1071 |
+
'%' => [
|
1072 |
+
'min' => 0,
|
1073 |
+
'max' => 100,
|
1074 |
+
],
|
1075 |
+
],
|
1076 |
+
'selectors' => [
|
1077 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-today-button' => 'margin-left: {{SIZE}}{{UNIT}};',
|
1078 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-toolbar.fc-header-toolbar .fc-button-group button:not(:first-child)' => 'margin-left: {{SIZE}}{{UNIT}};',
|
1079 |
+
],
|
1080 |
+
]
|
1081 |
+
);
|
1082 |
+
|
1083 |
+
$this->add_group_control(
|
1084 |
+
Group_Control_Typography::get_type(),
|
1085 |
+
[
|
1086 |
+
'name' => 'topbar_buttons_typography',
|
1087 |
+
'label' => __('Typography', 'happy-elementor-addons'),
|
1088 |
+
'exclude' => [
|
1089 |
+
'font_family',
|
1090 |
+
],
|
1091 |
+
'selector' => '{{WRAPPER}} .ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button',
|
1092 |
+
]
|
1093 |
+
);
|
1094 |
+
|
1095 |
+
$this->add_group_control(
|
1096 |
+
Group_Control_Border::get_type(),
|
1097 |
+
[
|
1098 |
+
'name' => 'topbar_buttons_border',
|
1099 |
+
'label' => __('Border', 'happy-elementor-addons'),
|
1100 |
+
'exclude' => ['color'], //remove border color
|
1101 |
+
'selector' => '{{WRAPPER}} .ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button',
|
1102 |
+
]
|
1103 |
+
);
|
1104 |
+
|
1105 |
+
$this->start_controls_tabs('calendar_buttons_style');
|
1106 |
+
|
1107 |
+
// Normal
|
1108 |
+
$this->start_controls_tab(
|
1109 |
+
'topbar_buttons_normal_state',
|
1110 |
+
[
|
1111 |
+
'label' => __('Normal', 'happy-elementor-addons'),
|
1112 |
+
]
|
1113 |
+
);
|
1114 |
+
|
1115 |
+
$this->add_control(
|
1116 |
+
'topbar_buttons_color_normal',
|
1117 |
+
[
|
1118 |
+
'label' => __('Color', 'happy-elementor-addons'),
|
1119 |
+
'type' => Controls_Manager::COLOR,
|
1120 |
+
'selectors' => [
|
1121 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button' => 'color: {{VALUE}};',
|
1122 |
+
],
|
1123 |
+
]
|
1124 |
+
);
|
1125 |
+
|
1126 |
+
$this->add_control(
|
1127 |
+
'topbar_buttons_background_normal',
|
1128 |
+
[
|
1129 |
+
'label' => __('Background', 'happy-elementor-addons'),
|
1130 |
+
'type' => Controls_Manager::COLOR,
|
1131 |
+
'selectors' => [
|
1132 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button' => 'background-color: {{VALUE}};',
|
1133 |
+
],
|
1134 |
+
]
|
1135 |
+
);
|
1136 |
+
|
1137 |
+
$this->add_control(
|
1138 |
+
'topbar_buttons_border_color_normal',
|
1139 |
+
[
|
1140 |
+
'label' => __( 'Border Color', 'happy-elementor-addons' ),
|
1141 |
+
'type' => Controls_Manager::COLOR,
|
1142 |
+
'selectors' => [
|
1143 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button' => 'border-color: {{VALUE}}',
|
1144 |
+
],
|
1145 |
+
]
|
1146 |
+
);
|
1147 |
+
$this->end_controls_tab();
|
1148 |
+
|
1149 |
+
// Hover
|
1150 |
+
$this->start_controls_tab(
|
1151 |
+
'topbar_buttons_hover_state',
|
1152 |
+
[
|
1153 |
+
'label' => __('Hover', 'happy-elementor-addons'),
|
1154 |
+
]
|
1155 |
+
);
|
1156 |
+
|
1157 |
+
$this->add_control(
|
1158 |
+
'topbar_buttons_color_hover',
|
1159 |
+
[
|
1160 |
+
'label' => __('Color', 'happy-elementor-addons'),
|
1161 |
+
'type' => Controls_Manager::COLOR,
|
1162 |
+
'selectors' => [
|
1163 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button:hover' => 'color: {{VALUE}};',
|
1164 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button.fc-button-active' => 'color: {{VALUE}};',
|
1165 |
+
],
|
1166 |
+
]
|
1167 |
+
);
|
1168 |
+
|
1169 |
+
$this->add_control(
|
1170 |
+
'topbar_buttons_background_hover',
|
1171 |
+
[
|
1172 |
+
'label' => __('Background', 'happy-elementor-addons'),
|
1173 |
+
'type' => Controls_Manager::COLOR,
|
1174 |
+
'selectors' => [
|
1175 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button:hover' => 'background-color: {{VALUE}};',
|
1176 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button.fc-button-active' => 'background-color: {{VALUE}};',
|
1177 |
+
],
|
1178 |
+
]
|
1179 |
+
);
|
1180 |
+
|
1181 |
+
$this->add_control(
|
1182 |
+
'topbar_buttons_border_color_hover',
|
1183 |
+
[
|
1184 |
+
'label' => __( 'Border Color', 'happy-elementor-addons' ),
|
1185 |
+
'type' => Controls_Manager::COLOR,
|
1186 |
+
'selectors' => [
|
1187 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button:hover' => 'border-color: {{VALUE}}',
|
1188 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button.fc-button-active' => 'border-color: {{VALUE}}',
|
1189 |
+
],
|
1190 |
+
]
|
1191 |
+
);
|
1192 |
+
|
1193 |
+
$this->end_controls_tab();
|
1194 |
+
$this->end_controls_tabs();
|
1195 |
+
|
1196 |
+
$this->add_responsive_control(
|
1197 |
+
'topbar_buttons_border_radius_normal',
|
1198 |
+
[
|
1199 |
+
'label' => __('Border Radius', 'happy-elementor-addons'),
|
1200 |
+
'type' => Controls_Manager::DIMENSIONS,
|
1201 |
+
'size_units' => ['px', '%'],
|
1202 |
+
'selectors' => [
|
1203 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-toolbar.fc-header-toolbar button.fc-button' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
1204 |
+
],
|
1205 |
+
]
|
1206 |
+
);
|
1207 |
+
|
1208 |
+
$this->end_controls_section();
|
1209 |
+
}
|
1210 |
+
|
1211 |
+
protected function event_style_controls () {
|
1212 |
+
|
1213 |
+
$this->start_controls_section(
|
1214 |
+
'_section_style_event',
|
1215 |
+
[
|
1216 |
+
'label' => __( 'Event', 'happy-elementor-addons' ),
|
1217 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
1218 |
+
]
|
1219 |
+
);
|
1220 |
+
|
1221 |
+
$this->add_responsive_control(
|
1222 |
+
'event_item_font_size',
|
1223 |
+
[
|
1224 |
+
'label' => __('Font Size', 'happy-elementor-addons'),
|
1225 |
+
'type' => Controls_Manager::SLIDER,
|
1226 |
+
'size_units' => [ 'px', '%' ],
|
1227 |
+
'range' => [
|
1228 |
+
'px' => [
|
1229 |
+
'min' => 0,
|
1230 |
+
'max' => 200,
|
1231 |
+
'step' => 1,
|
1232 |
+
],
|
1233 |
+
'%' => [
|
1234 |
+
'min' => 0,
|
1235 |
+
'max' => 100,
|
1236 |
+
],
|
1237 |
+
],
|
1238 |
+
'selectors' => [
|
1239 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-daygrid-event' => 'font-size: {{SIZE}}{{UNIT}};',
|
1240 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-daygrid-event .fc-event-main' => 'font-size: {{SIZE}}{{UNIT}};',
|
1241 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-timegrid-event' => 'font-size: {{SIZE}}{{UNIT}};',
|
1242 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-timegrid-event .fc-event-main' => 'font-size: {{SIZE}}{{UNIT}};',
|
1243 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-list-event' => 'font-size: {{SIZE}}{{UNIT}};',
|
1244 |
+
],
|
1245 |
+
]
|
1246 |
+
);
|
1247 |
+
|
1248 |
+
$this->add_control(
|
1249 |
+
'event_item_color',
|
1250 |
+
[
|
1251 |
+
'label' => __('Color', 'happy-elementor-addons'),
|
1252 |
+
'type' => Controls_Manager::COLOR,
|
1253 |
+
'selectors' => [
|
1254 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-daygrid-event' => 'color: {{VALUE}};',
|
1255 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-daygrid-event .fc-event-main' => 'color: {{VALUE}};',
|
1256 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-timegrid-event' => 'color: {{VALUE}};',
|
1257 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-timegrid-event .fc-event-main' => 'color: {{VALUE}};',
|
1258 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-list-event' => 'color: {{VALUE}};',
|
1259 |
+
],
|
1260 |
+
]
|
1261 |
+
);
|
1262 |
+
|
1263 |
+
$this->add_control(
|
1264 |
+
'event_item_background',
|
1265 |
+
[
|
1266 |
+
'label' => __('Background', 'happy-elementor-addons'),
|
1267 |
+
'type' => Controls_Manager::COLOR,
|
1268 |
+
'selectors' => [
|
1269 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-daygrid-event' => 'background-color: {{VALUE}};',
|
1270 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-timegrid-event' => 'background-color: {{VALUE}};',
|
1271 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-list-event' => 'background-color: {{VALUE}};',
|
1272 |
+
],
|
1273 |
+
]
|
1274 |
+
);
|
1275 |
+
|
1276 |
+
$this->add_control(
|
1277 |
+
'event_item_dot_color',
|
1278 |
+
[
|
1279 |
+
'label' => __('Dot Color', 'happy-elementor-addons'),
|
1280 |
+
'type' => Controls_Manager::COLOR,
|
1281 |
+
'selectors' => [
|
1282 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-daygrid-event .fc-daygrid-event-dot' => 'border-color: {{VALUE}};',
|
1283 |
+
'{{WRAPPER}} .ha-ec-wrapper .fc-list-event .fc-list-event-dot' => 'border-color: {{VALUE}};',
|
1284 |
+
],
|
1285 |
+
]
|
1286 |
+
);
|
1287 |
+
|
1288 |
+
$this->end_controls_section();
|
1289 |
+
}
|
1290 |
+
|
1291 |
+
protected function popup_style_controls () {
|
1292 |
+
|
1293 |
+
$this->start_controls_section(
|
1294 |
+
'_section_style_event_popup',
|
1295 |
+
[
|
1296 |
+
'label' => __( 'Event Popup', 'happy-elementor-addons' ),
|
1297 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
1298 |
+
]
|
1299 |
+
);
|
1300 |
+
|
1301 |
+
$this->add_control(
|
1302 |
+
'event_popup_wrapper_background',
|
1303 |
+
[
|
1304 |
+
'label' => __('Wrapper Background', 'happy-elementor-addons'),
|
1305 |
+
'type' => Controls_Manager::COLOR,
|
1306 |
+
'selectors' => [
|
1307 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper.ha-ec-popup-ready:before' => 'background: {{VALUE}}',
|
1308 |
+
],
|
1309 |
+
'separator' => 'after',
|
1310 |
+
]
|
1311 |
+
);
|
1312 |
+
|
1313 |
+
$this->add_responsive_control(
|
1314 |
+
'event_popup_width',
|
1315 |
+
[
|
1316 |
+
'label' => __('Width', 'happy-elementor-addons'),
|
1317 |
+
'type' => Controls_Manager::SLIDER,
|
1318 |
+
'size_units' => [ 'px', '%' ],
|
1319 |
+
'range' => [
|
1320 |
+
'px' => [
|
1321 |
+
'min' => 0,
|
1322 |
+
'max' => 1200,
|
1323 |
+
'step' => 1,
|
1324 |
+
],
|
1325 |
+
'%' => [
|
1326 |
+
'min' => 0,
|
1327 |
+
'max' => 100,
|
1328 |
+
],
|
1329 |
+
],
|
1330 |
+
'selectors' => [
|
1331 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup' => 'width: {{SIZE}}{{UNIT}};',
|
1332 |
+
],
|
1333 |
+
]
|
1334 |
+
);
|
1335 |
+
|
1336 |
+
$this->add_responsive_control(
|
1337 |
+
'event_popup_padding',
|
1338 |
+
[
|
1339 |
+
'label' => __('Padding', 'happy-elementor-addons'),
|
1340 |
+
'type' => Controls_Manager::DIMENSIONS,
|
1341 |
+
'size_units' => ['px', '%'],
|
1342 |
+
'selectors' => [
|
1343 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
1344 |
+
],
|
1345 |
+
'separator' => 'after',
|
1346 |
+
]
|
1347 |
+
);
|
1348 |
+
|
1349 |
+
$this->add_control(
|
1350 |
+
'event_popup_background',
|
1351 |
+
[
|
1352 |
+
'label' => __('Background', 'happy-elementor-addons'),
|
1353 |
+
'type' => Controls_Manager::COLOR,
|
1354 |
+
'selectors' => [
|
1355 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup' => 'background-color: {{VALUE}}',
|
1356 |
+
],
|
1357 |
+
]
|
1358 |
+
);
|
1359 |
+
|
1360 |
+
$this->add_responsive_control(
|
1361 |
+
'event_popup_border_radius',
|
1362 |
+
[
|
1363 |
+
'label' => __('Border Radius', 'happy-elementor-addons'),
|
1364 |
+
'type' => Controls_Manager::DIMENSIONS,
|
1365 |
+
'size_units' => ['px', '%'],
|
1366 |
+
'selectors' => [
|
1367 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
1368 |
+
],
|
1369 |
+
]
|
1370 |
+
);
|
1371 |
+
|
1372 |
+
$this->add_group_control(
|
1373 |
+
Group_Control_Border::get_type(),
|
1374 |
+
[
|
1375 |
+
'name' => 'event_popup_border',
|
1376 |
+
'label' => __('Border', 'happy-elementor-addons'),
|
1377 |
+
'selector' => '{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup',
|
1378 |
+
]
|
1379 |
+
);
|
1380 |
+
|
1381 |
+
$this->add_control(
|
1382 |
+
'event_popup_image_heading',
|
1383 |
+
[
|
1384 |
+
'label' => __('Image', 'happy-elementor-addons'),
|
1385 |
+
'type' => Controls_Manager::HEADING,
|
1386 |
+
'separator' => 'before',
|
1387 |
+
]
|
1388 |
+
);
|
1389 |
+
|
1390 |
+
$this->add_control(
|
1391 |
+
'event_popup_image_width',
|
1392 |
+
[
|
1393 |
+
'label' => __('Width', 'happy-elementor-addons'),
|
1394 |
+
'type' => Controls_Manager::SLIDER,
|
1395 |
+
'size_units' => [ 'px', '%' ],
|
1396 |
+
'range' => [
|
1397 |
+
'px' => [
|
1398 |
+
'min' => 0,
|
1399 |
+
'max' => 500,
|
1400 |
+
'step' => 1,
|
1401 |
+
],
|
1402 |
+
'%' => [
|
1403 |
+
'min' => 0,
|
1404 |
+
'max' => 100,
|
1405 |
+
],
|
1406 |
+
],
|
1407 |
+
'selectors' => [
|
1408 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper' => '--ha-ec-popup-image-width: {{SIZE}}{{UNIT}};',
|
1409 |
+
],
|
1410 |
+
]
|
1411 |
+
);
|
1412 |
+
|
1413 |
+
$this->add_control(
|
1414 |
+
'event_popup_image_border_radius',
|
1415 |
+
[
|
1416 |
+
'label' => __('Border Radius', 'happy-elementor-addons'),
|
1417 |
+
'type' => Controls_Manager::DIMENSIONS,
|
1418 |
+
'size_units' => ['px', '%'],
|
1419 |
+
'selectors' => [
|
1420 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup .ha-ec-popup-image img' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
1421 |
+
],
|
1422 |
+
]
|
1423 |
+
);
|
1424 |
+
|
1425 |
+
$this->add_control(
|
1426 |
+
'event_popup_title_heading',
|
1427 |
+
[
|
1428 |
+
'label' => __('Title', 'happy-elementor-addons'),
|
1429 |
+
'type' => Controls_Manager::HEADING,
|
1430 |
+
'separator' => 'before',
|
1431 |
+
]
|
1432 |
+
);
|
1433 |
+
|
1434 |
+
$this->add_responsive_control(
|
1435 |
+
'event_popup_title_margin_bottom',
|
1436 |
+
[
|
1437 |
+
'label' => __( 'Margin Bottom', 'happy-elementor-addons' ),
|
1438 |
+
'type' => Controls_Manager::SLIDER,
|
1439 |
+
'size_units' => [ 'px', '%' ],
|
1440 |
+
'range' => [
|
1441 |
+
'px' => [
|
1442 |
+
'min' => 0,
|
1443 |
+
'max' => 100,
|
1444 |
+
'step' => 1,
|
1445 |
+
],
|
1446 |
+
],
|
1447 |
+
'selectors' => [
|
1448 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-content h3' => 'margin-bottom: {{SIZE}}{{UNIT}};',
|
1449 |
+
],
|
1450 |
+
]
|
1451 |
+
);
|
1452 |
+
|
1453 |
+
$this->add_group_control(
|
1454 |
+
Group_Control_Typography::get_type(),
|
1455 |
+
[
|
1456 |
+
'name' => 'event_popup_title_typography',
|
1457 |
+
'label' => __('Typography', 'happy-elementor-addons'),
|
1458 |
+
'exclude' => [
|
1459 |
+
'font_family',
|
1460 |
+
],
|
1461 |
+
'selector' => '{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-content h3',
|
1462 |
+
]
|
1463 |
+
);
|
1464 |
+
|
1465 |
+
$this->add_control(
|
1466 |
+
'event_popup_title_color',
|
1467 |
+
[
|
1468 |
+
'label' => __('Color', 'happy-elementor-addons'),
|
1469 |
+
'type' => Controls_Manager::COLOR,
|
1470 |
+
'selectors' => [
|
1471 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-content h3' => 'color: {{VALUE}}',
|
1472 |
+
],
|
1473 |
+
]
|
1474 |
+
);
|
1475 |
+
|
1476 |
+
$this->add_control(
|
1477 |
+
'event_popup_desc_heading',
|
1478 |
+
[
|
1479 |
+
'label' => __('Description', 'happy-elementor-addons'),
|
1480 |
+
'type' => Controls_Manager::HEADING,
|
1481 |
+
'separator' => 'before',
|
1482 |
+
]
|
1483 |
+
);
|
1484 |
+
|
1485 |
+
$this->add_responsive_control(
|
1486 |
+
'event_popup_desc__margin_bottom',
|
1487 |
+
[
|
1488 |
+
'label' => __( 'Margin Bottom', 'happy-elementor-addons' ),
|
1489 |
+
'type' => Controls_Manager::SLIDER,
|
1490 |
+
'size_units' => [ 'px', '%' ],
|
1491 |
+
'range' => [
|
1492 |
+
'px' => [
|
1493 |
+
'min' => 0,
|
1494 |
+
'max' => 100,
|
1495 |
+
'step' => 1,
|
1496 |
+
],
|
1497 |
+
],
|
1498 |
+
'selectors' => [
|
1499 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper p.ha-ec-popup-desc' => 'margin-bottom: {{SIZE}}{{UNIT}};',
|
1500 |
+
],
|
1501 |
+
]
|
1502 |
+
);
|
1503 |
+
|
1504 |
+
$this->add_group_control(
|
1505 |
+
Group_Control_Typography::get_type(),
|
1506 |
+
[
|
1507 |
+
'name' => 'event_popup_desc_typography',
|
1508 |
+
'label' => __('Typography', 'happy-elementor-addons'),
|
1509 |
+
'exclude' => [
|
1510 |
+
'font_family',
|
1511 |
+
],
|
1512 |
+
'selector' => '{{WRAPPER}} .ha-ec-popup-wrapper p.ha-ec-popup-desc',
|
1513 |
+
]
|
1514 |
+
);
|
1515 |
+
|
1516 |
+
$this->add_control(
|
1517 |
+
'event_popup_desc_color',
|
1518 |
+
[
|
1519 |
+
'label' => __('Color', 'happy-elementor-addons'),
|
1520 |
+
'type' => Controls_Manager::COLOR,
|
1521 |
+
'selectors' => [
|
1522 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper p.ha-ec-popup-desc' => 'color: {{VALUE}}',
|
1523 |
+
],
|
1524 |
+
]
|
1525 |
+
);
|
1526 |
+
|
1527 |
+
$this->popup_meta_style_controls();
|
1528 |
+
|
1529 |
+
$this->add_control(
|
1530 |
+
'event_popup_readmore_heading',
|
1531 |
+
[
|
1532 |
+
'label' => __('Read More', 'happy-elementor-addons'),
|
1533 |
+
'type' => Controls_Manager::HEADING,
|
1534 |
+
'separator' => 'before',
|
1535 |
+
]
|
1536 |
+
);
|
1537 |
+
|
1538 |
+
$this->add_group_control(
|
1539 |
+
Group_Control_Typography::get_type(),
|
1540 |
+
[
|
1541 |
+
'name' => 'event_popup_readmore_typography',
|
1542 |
+
'label' => __('Typography', 'happy-elementor-addons'),
|
1543 |
+
'exclude' => [
|
1544 |
+
'font_family',
|
1545 |
+
],
|
1546 |
+
'selector' => '{{WRAPPER}} .ha-ec-popup-wrapper a.ha-ec-popup-readmore-link',
|
1547 |
+
]
|
1548 |
+
);
|
1549 |
+
|
1550 |
+
$this->add_control(
|
1551 |
+
'event_popup_readmore_color',
|
1552 |
+
[
|
1553 |
+
'label' => __('Color', 'happy-elementor-addons'),
|
1554 |
+
'type' => Controls_Manager::COLOR,
|
1555 |
+
'selectors' => [
|
1556 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper a.ha-ec-popup-readmore-link' => 'color: {{VALUE}}',
|
1557 |
+
],
|
1558 |
+
]
|
1559 |
+
);
|
1560 |
+
|
1561 |
+
$this->add_control(
|
1562 |
+
'event_popup_close_btn_heading',
|
1563 |
+
[
|
1564 |
+
'label' => __('Close Button', 'happy-elementor-addons'),
|
1565 |
+
'type' => Controls_Manager::HEADING,
|
1566 |
+
'separator' => 'before',
|
1567 |
+
]
|
1568 |
+
);
|
1569 |
+
|
1570 |
+
$this->add_responsive_control(
|
1571 |
+
'event_popup_close_btn_font_size',
|
1572 |
+
[
|
1573 |
+
'label' => __( 'Icon Size', 'happy-elementor-addons' ),
|
1574 |
+
'type' => Controls_Manager::SLIDER,
|
1575 |
+
'size_units' => [ 'px', '%' ],
|
1576 |
+
'range' => [
|
1577 |
+
'px' => [
|
1578 |
+
'min' => 0,
|
1579 |
+
'max' => 200,
|
1580 |
+
'step' => 1,
|
1581 |
+
],
|
1582 |
+
],
|
1583 |
+
'selectors' => [
|
1584 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-close' => 'font-size: {{SIZE}}{{UNIT}};',
|
1585 |
+
],
|
1586 |
+
]
|
1587 |
+
);
|
1588 |
+
|
1589 |
+
$this->add_control(
|
1590 |
+
'event_popup_close_btn_color',
|
1591 |
+
[
|
1592 |
+
'label' => __('Color', 'happy-elementor-addons'),
|
1593 |
+
'type' => Controls_Manager::COLOR,
|
1594 |
+
'selectors' => [
|
1595 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-close' => 'color: {{VALUE}}',
|
1596 |
+
],
|
1597 |
+
]
|
1598 |
+
);
|
1599 |
+
|
1600 |
+
$this->add_control(
|
1601 |
+
'event_popup_close_btn_background',
|
1602 |
+
[
|
1603 |
+
'label' => __('Background', 'happy-elementor-addons'),
|
1604 |
+
'type' => Controls_Manager::COLOR,
|
1605 |
+
'selectors' => [
|
1606 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-close' => 'background: {{VALUE}}',
|
1607 |
+
],
|
1608 |
+
]
|
1609 |
+
);
|
1610 |
+
|
1611 |
+
$this->add_group_control(
|
1612 |
+
Group_Control_Box_Shadow::get_type(),
|
1613 |
+
[
|
1614 |
+
'name' => 'event_popup_close_btn_box_shadow',
|
1615 |
+
'label' => __('Box Shadow', 'happy-elementor-addons'),
|
1616 |
+
'selector' => '{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-close',
|
1617 |
+
]
|
1618 |
+
);
|
1619 |
+
|
1620 |
+
$this->end_controls_section();
|
1621 |
+
}
|
1622 |
+
|
1623 |
+
protected function popup_meta_style_controls () {
|
1624 |
+
|
1625 |
+
$this->add_control(
|
1626 |
+
'event_popup_meta_heading',
|
1627 |
+
[
|
1628 |
+
'label' => __('Meta', 'happy-elementor-addons'),
|
1629 |
+
'type' => Controls_Manager::HEADING,
|
1630 |
+
'separator' => 'before',
|
1631 |
+
]
|
1632 |
+
);
|
1633 |
+
|
1634 |
+
$this->add_responsive_control(
|
1635 |
+
'event_popup_meta_item_margin',
|
1636 |
+
[
|
1637 |
+
'label' => __('Item Margin', 'happy-elementor-addons'),
|
1638 |
+
'type' => Controls_Manager::DIMENSIONS,
|
1639 |
+
'size_units' => ['px', '%'],
|
1640 |
+
'selectors' => [
|
1641 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-content ul li' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
1642 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-content ul li:last-child' => 'margin-right: 0;',
|
1643 |
+
],
|
1644 |
+
]
|
1645 |
+
);
|
1646 |
+
|
1647 |
+
$this->add_control(
|
1648 |
+
'event_popup_meta_icon_heading',
|
1649 |
+
[
|
1650 |
+
'label' => __('Meta Icon', 'happy-elementor-addons'),
|
1651 |
+
'type' => Controls_Manager::HEADING,
|
1652 |
+
'separator' => 'before',
|
1653 |
+
]
|
1654 |
+
);
|
1655 |
+
|
1656 |
+
$this->add_responsive_control(
|
1657 |
+
'event_popup_meta_icon_font_size',
|
1658 |
+
[
|
1659 |
+
'label' => __( 'Icon Size', 'happy-elementor-addons' ),
|
1660 |
+
'type' => Controls_Manager::SLIDER,
|
1661 |
+
'size_units' => [ 'px', '%' ],
|
1662 |
+
'range' => [
|
1663 |
+
'px' => [
|
1664 |
+
'min' => 0,
|
1665 |
+
'max' => 200,
|
1666 |
+
'step' => 1,
|
1667 |
+
],
|
1668 |
+
],
|
1669 |
+
'selectors' => [
|
1670 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-content ul li .ha-ec-time-icon' => 'font-size: {{SIZE}}{{UNIT}};',
|
1671 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-content ul li .ha-ec-guest-icon' => 'font-size: {{SIZE}}{{UNIT}};',
|
1672 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-content ul li .ha-ec-location-icon' => 'font-size: {{SIZE}}{{UNIT}};',
|
1673 |
+
],
|
1674 |
+
]
|
1675 |
+
);
|
1676 |
+
|
1677 |
+
$this->add_control(
|
1678 |
+
'event_popup_meta_icon_color',
|
1679 |
+
[
|
1680 |
+
'label' => __('Color', 'happy-elementor-addons'),
|
1681 |
+
'type' => Controls_Manager::COLOR,
|
1682 |
+
'selectors' => [
|
1683 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-content ul li .ha-ec-time-icon' => 'color: {{VALUE}}',
|
1684 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-content ul li .ha-ec-guest-icon' => 'color: {{VALUE}}',
|
1685 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-content ul li .ha-ec-location-icon' => 'color: {{VALUE}}',
|
1686 |
+
],
|
1687 |
+
]
|
1688 |
+
);
|
1689 |
+
|
1690 |
+
$this->add_control(
|
1691 |
+
'event_popup_meta_title_heading',
|
1692 |
+
[
|
1693 |
+
'label' => __('Meta Title', 'happy-elementor-addons'),
|
1694 |
+
'type' => Controls_Manager::HEADING,
|
1695 |
+
'separator' => 'before',
|
1696 |
+
]
|
1697 |
+
);
|
1698 |
+
|
1699 |
+
$this->add_responsive_control(
|
1700 |
+
'event_popup_meta_title_margin_bottom',
|
1701 |
+
[
|
1702 |
+
'label' => __( 'Margin Bottom', 'happy-elementor-addons' ),
|
1703 |
+
'type' => Controls_Manager::SLIDER,
|
1704 |
+
'size_units' => [ 'px', '%' ],
|
1705 |
+
'range' => [
|
1706 |
+
'px' => [
|
1707 |
+
'min' => 0,
|
1708 |
+
'max' => 100,
|
1709 |
+
'step' => 1,
|
1710 |
+
],
|
1711 |
+
],
|
1712 |
+
'selectors' => [
|
1713 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-content ul li .ha-ec-time-title' => 'margin-bottom: {{SIZE}}{{UNIT}};',
|
1714 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-content ul li .ha-ec-guest-title' => 'margin-bottom: {{SIZE}}{{UNIT}};',
|
1715 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-content ul li .ha-ec-location-title' => 'margin-bottom: {{SIZE}}{{UNIT}};',
|
1716 |
+
],
|
1717 |
+
]
|
1718 |
+
);
|
1719 |
+
|
1720 |
+
$this->add_group_control(
|
1721 |
+
Group_Control_Typography::get_type(),
|
1722 |
+
[
|
1723 |
+
'name' => 'event_popup_meta_title_typography',
|
1724 |
+
'label' => __('Typography', 'happy-elementor-addons'),
|
1725 |
+
'exclude' => [
|
1726 |
+
'font_family',
|
1727 |
+
],
|
1728 |
+
'selector' => '{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-content ul li .ha-ec-time-title,{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-content ul li .ha-ec-guest-title,{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-content ul li .ha-ec-location-title',
|
1729 |
+
]
|
1730 |
+
);
|
1731 |
+
|
1732 |
+
$this->add_control(
|
1733 |
+
'event_popup_meta_title_color',
|
1734 |
+
[
|
1735 |
+
'label' => __('Color', 'happy-elementor-addons'),
|
1736 |
+
'type' => Controls_Manager::COLOR,
|
1737 |
+
'selectors' => [
|
1738 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-content ul li .ha-ec-time-title' => 'color: {{VALUE}}',
|
1739 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-content ul li .ha-ec-guest-title' => 'color: {{VALUE}}',
|
1740 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-content ul li .ha-ec-location-title' => 'color: {{VALUE}}',
|
1741 |
+
],
|
1742 |
+
]
|
1743 |
+
);
|
1744 |
+
|
1745 |
+
$this->add_control(
|
1746 |
+
'event_popup_meta_content_heading',
|
1747 |
+
[
|
1748 |
+
'label' => __('Meta Content', 'happy-elementor-addons'),
|
1749 |
+
'type' => Controls_Manager::HEADING,
|
1750 |
+
'separator' => 'before',
|
1751 |
+
]
|
1752 |
+
);
|
1753 |
+
|
1754 |
+
$this->add_group_control(
|
1755 |
+
Group_Control_Typography::get_type(),
|
1756 |
+
[
|
1757 |
+
'name' => 'event_popup_meta_content_typography',
|
1758 |
+
'label' => __('Typography', 'happy-elementor-addons'),
|
1759 |
+
'exclude' => [
|
1760 |
+
'font_family',
|
1761 |
+
],
|
1762 |
+
'selector' => '{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-content ul li .ha-ec-event-time,{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-content ul li .ha-ec-event-guest,{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-content ul li .ha-ec-event-location',
|
1763 |
+
]
|
1764 |
+
);
|
1765 |
+
|
1766 |
+
$this->add_control(
|
1767 |
+
'event_popup_meta_content_color',
|
1768 |
+
[
|
1769 |
+
'label' => __('Color', 'happy-elementor-addons'),
|
1770 |
+
'type' => Controls_Manager::COLOR,
|
1771 |
+
'selectors' => [
|
1772 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-content ul li .ha-ec-event-time' => 'color: {{VALUE}}',
|
1773 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-content ul li .ha-ec-event-guest' => 'color: {{VALUE}}',
|
1774 |
+
'{{WRAPPER}} .ha-ec-popup-wrapper .ha-ec-popup-content ul li .ha-ec-event-location' => 'color: {{VALUE}}',
|
1775 |
+
],
|
1776 |
+
]
|
1777 |
+
);
|
1778 |
+
|
1779 |
+
|
1780 |
+
}
|
1781 |
+
|
1782 |
+
|
1783 |
+
protected function render () {
|
1784 |
+
|
1785 |
+
$settings = $this->get_settings_for_display();
|
1786 |
+
|
1787 |
+
if ($settings['event_calendar_type'] == 'google_calendar') {
|
1788 |
+
$data = $this->get_google_calendar_events($settings);
|
1789 |
+
} elseif ($settings['event_calendar_type'] == 'the_events_calendar') {
|
1790 |
+
$data = $this->get_the_events_calendar_events($settings);
|
1791 |
+
} else {
|
1792 |
+
$data = $this->get_manual_calendar_events($settings);
|
1793 |
+
}
|
1794 |
+
|
1795 |
+
$local = $settings['language'];
|
1796 |
+
$default_view = $settings['default_view'];
|
1797 |
+
|
1798 |
+
$this->add_render_attribute( 'wrapper', 'class', 'ha-ec-wrapper' );
|
1799 |
+
|
1800 |
+
$this->add_render_attribute(
|
1801 |
+
'event-calendar',
|
1802 |
+
[
|
1803 |
+
'id' => 'ha-ec-' . $this->get_id(),
|
1804 |
+
'class' => 'ha-ec',
|
1805 |
+
'data-cal-id' => $this->get_id(),
|
1806 |
+
'data-locale' => $local,
|
1807 |
+
'data-initialview' => $default_view,
|
1808 |
+
'data-firstday' => $settings['event_calendar_first_day'],
|
1809 |
+
'data-events' => htmlspecialchars(json_encode($data), ENT_QUOTES, 'UTF-8'),
|
1810 |
+
'data-show-popup' => !empty( $settings['show_event_popup'] ) ? esc_attr( $settings['show_event_popup'] ) : '',
|
1811 |
+
'data-allday-text' => !empty($settings['allday_text']) ? esc_html($settings['allday_text']) : '',
|
1812 |
+
]
|
1813 |
+
);
|
1814 |
+
|
1815 |
+
if ( $data ) :?>
|
1816 |
+
<div <?php $this->print_render_attribute_string( 'wrapper' ); ?>>
|
1817 |
+
<div <?php $this->print_render_attribute_string( 'event-calendar' ); ?>></div>
|
1818 |
+
</div>
|
1819 |
+
|
1820 |
+
<?php
|
1821 |
+
if( 'yes' === $settings['show_event_popup'] ){
|
1822 |
+
$this->get_popup_markup__($settings);
|
1823 |
+
}
|
1824 |
+
endif;
|
1825 |
+
}
|
1826 |
+
|
1827 |
+
public function get_manual_calendar_events ($settings) {
|
1828 |
+
$events = $settings['manual_event_list'];
|
1829 |
+
|
1830 |
+
// echo '<pre>';
|
1831 |
+
// var_dump($events);
|
1832 |
+
// echo '</pre>';
|
1833 |
+
$data = [];
|
1834 |
+
if ($events) {
|
1835 |
+
$i = 0;
|
1836 |
+
|
1837 |
+
foreach ($events as $event) {
|
1838 |
+
// echo '<pre>';
|
1839 |
+
// var_dump($event['image']);
|
1840 |
+
// echo '</pre>';
|
1841 |
+
|
1842 |
+
if ( $event['all_day'] == 'yes' ) {
|
1843 |
+
$start = $event["start_date_allday"];
|
1844 |
+
$end = date('Y-m-d', strtotime("+1 days", strtotime($event["end_date_allday"])));
|
1845 |
+
|
1846 |
+
$colors["textColor"] = !empty($event['text_color']) ? $event['text_color'] : '';
|
1847 |
+
$colors["backgroundColor"] = !empty($event['bg_color']) ? $event['bg_color'] : '';
|
1848 |
+
|
1849 |
+
} else {
|
1850 |
+
$start = $event["start_date"];
|
1851 |
+
$end = date('Y-m-d H:i', strtotime($event["end_date"])).":01";
|
1852 |
+
}
|
1853 |
+
|
1854 |
+
$image = !empty( $event['image']['url'] ) ? esc_url( $event['image']['url'] ) : '' ;
|
1855 |
+
if( !empty( $event['image']['id'] ) ){
|
1856 |
+
$image = esc_url( wp_get_attachment_image_url( $event['image']['id'], $event['thumbnail_size'] ) );
|
1857 |
+
}
|
1858 |
+
|
1859 |
+
$data[] = [
|
1860 |
+
'id' => $i,
|
1861 |
+
'classNames' => 'elementor-repeater-item-'.$event["_id"],
|
1862 |
+
'title' => !empty($event["title"]) ? $event["title"] : '',
|
1863 |
+
'description' => $event["description"],
|
1864 |
+
'start' => $start,
|
1865 |
+
'end' => $end,
|
1866 |
+
'url' => !empty($event["details_link"]["url"]) ? $event["details_link"]["url"] : '',
|
1867 |
+
'allDay' => $event['all_day'],
|
1868 |
+
'external' => $event['details_link']['is_external'],
|
1869 |
+
'nofollow' => $event['details_link']['nofollow'],
|
1870 |
+
'guest' => $event['guest'],
|
1871 |
+
'location' => $event['location'],
|
1872 |
+
'image' => $image,
|
1873 |
+
|
1874 |
+
//"textColor" => ( $event['all_day'] == 'yes' && !empty($event['text_color']) ) ? $event['text_color'] : '',
|
1875 |
+
//"backgroundColor" => ( $event['all_day'] == 'yes' && !empty($event['bg_color']) ) ? $event['bg_color'] : '',
|
1876 |
+
//"borderColor" => !empty($event['border_color']) ? $event['border_color'] : '',
|
1877 |
+
];
|
1878 |
+
|
1879 |
+
$i++;
|
1880 |
+
}
|
1881 |
+
}
|
1882 |
+
return $data;
|
1883 |
+
}
|
1884 |
+
|
1885 |
+
|
1886 |
+
public function get_google_calendar_events ($settings) {
|
1887 |
+
|
1888 |
+
if ( empty( $settings['google_calendar_api_key'] ) && empty( $settings['google_calendar_id'] ) ) {
|
1889 |
+
$message = __('Please input API key & Calendar ID.', 'happy-elementor-addons');
|
1890 |
+
printf('<span class="ha-ec-error-message">%1$s</span>', esc_html( $message ) );
|
1891 |
+
return [];
|
1892 |
+
}
|
1893 |
+
|
1894 |
+
// GET https://www.googleapis.com/calendar/v3/calendars/en.bd%23holiday%40group.v.calendar.google.com/events?key=AIzaSyDiXYw6nDZIE6RzqIy2WNZxvrze73smMo0&orderBy=updated&showDeleted=true
|
1895 |
+
|
1896 |
+
// GET https://www.googleapis.com/calendar/v3/calendars/iqbalrony30%40gmail.com/events?key=AIzaSyDiXYw6nDZIE6RzqIy2WNZxvrze73smMo0&orderBy=updated&showDeleted=true
|
1897 |
+
|
1898 |
+
// [calendar_id] en.bd%23holiday%40group.v.calendar.google.com
|
1899 |
+
// [calendar_id] iqbalrony30%40gmail.com
|
1900 |
+
// key= AIzaSyDiXYw6nDZIE6RzqIy2WNZxvrze73smMo0
|
1901 |
+
|
1902 |
+
|
1903 |
+
$calendar_id = urlencode($settings['google_calendar_id']);
|
1904 |
+
$base_url = "https://www.googleapis.com/calendar/v3/calendars/" . $calendar_id . "/events";
|
1905 |
+
|
1906 |
+
$start_date = strtotime( $settings['google_calendar_start_date'] );
|
1907 |
+
$end_date = strtotime( $settings['google_calendar_end_date'] );
|
1908 |
+
|
1909 |
+
$arg = [
|
1910 |
+
'key' => $settings['google_calendar_api_key'],
|
1911 |
+
'maxResults' => $settings['google_calendar_max_item'],
|
1912 |
+
'timeMin' => urlencode( date( 'c', $start_date ) ),
|
1913 |
+
'singleEvents' => 'true',
|
1914 |
+
];
|
1915 |
+
|
1916 |
+
if ( ! empty( $end_date ) && $end_date > $start_date ) {
|
1917 |
+
$arg['timeMax'] = urlencode( date( 'c', $end_date ) );
|
1918 |
+
}
|
1919 |
+
|
1920 |
+
$transient_key = 'ha_ec_google_calendar_'.md5( urlencode($settings['google_calendar_id']) . implode('', $arg) );
|
1921 |
+
$data = get_transient($transient_key);
|
1922 |
+
|
1923 |
+
// delete_transient($transient_key);
|
1924 |
+
|
1925 |
+
if( false === $data ){
|
1926 |
+
$data = wp_remote_retrieve_body(wp_remote_get(add_query_arg($arg, $base_url)));
|
1927 |
+
// echo '<pre>';
|
1928 |
+
// var_dump(json_decode($data));
|
1929 |
+
// echo '</pre>';
|
1930 |
+
if( is_object( json_decode($data) ) && !array_key_exists('error', json_decode($data) ) ){
|
1931 |
+
// echo 'cacheeed';
|
1932 |
+
set_transient($transient_key, $data, 1 * HOUR_IN_SECONDS);
|
1933 |
+
set_transient($transient_key, $data, 10 * MINUTE_IN_SECONDS);
|
1934 |
+
}
|
1935 |
+
}
|
1936 |
+
|
1937 |
+
if( is_object( json_decode( $data ) ) && array_key_exists('error', json_decode( $data ) ) ){
|
1938 |
+
$message = __('Please input valid API key & Calendar ID.', 'happy-elementor-addons');
|
1939 |
+
printf('<span class="ha-ec-error-message">%1$s</span>', esc_html( $message ));
|
1940 |
+
return [];
|
1941 |
+
}
|
1942 |
+
|
1943 |
+
$data = false !== $data ? json_decode( $data ) : '';
|
1944 |
+
|
1945 |
+
|
1946 |
+
// echo '<pre>';
|
1947 |
+
// var_dump($data);
|
1948 |
+
// echo '</pre>';
|
1949 |
+
|
1950 |
+
$calendar_data = [];
|
1951 |
+
if ( isset ( $data->items ) ) {
|
1952 |
+
|
1953 |
+
foreach ( $data->items as $key => $item ) {
|
1954 |
+
|
1955 |
+
if ( $item->status !== 'confirmed' ) {
|
1956 |
+
continue;
|
1957 |
+
}
|
1958 |
+
|
1959 |
+
$all_day = '';
|
1960 |
+
|
1961 |
+
if ( isset( $item->start->date ) ) {
|
1962 |
+
$all_day = 'yes';
|
1963 |
+
$ev_start_date = $item->start->date;
|
1964 |
+
$ev_end_date = $item->end->date;
|
1965 |
+
} else {
|
1966 |
+
$ev_start_date = $item->start->dateTime;
|
1967 |
+
$ev_end_date = $item->end->dateTime;
|
1968 |
+
}
|
1969 |
+
|
1970 |
+
$calendar_data[] = [
|
1971 |
+
'id' => ++$key,
|
1972 |
+
'title' => !empty( $item->summary ) ? $item->summary : 'No Title',
|
1973 |
+
'description' => isset( $item->description ) ? $item->description : '',
|
1974 |
+
'start' => $ev_start_date,
|
1975 |
+
'end' => $ev_end_date,
|
1976 |
+
|
1977 |
+
// 'borderColor' => !empty($settings['global_popup_ribbon_color']) ? $settings['global_popup_ribbon_color'] : '#10ecab',
|
1978 |
+
// 'textColor' => $settings['global_text_color'],
|
1979 |
+
// 'color' => $settings['global_bg_color'],
|
1980 |
+
|
1981 |
+
'url' => !empty( $item->htmlLink ) ? $item->htmlLink : '',
|
1982 |
+
// 'url' => $item->htmlLink ,
|
1983 |
+
|
1984 |
+
'allDay' => $all_day,
|
1985 |
+
'external' => 'on',
|
1986 |
+
'nofollow' => 'on',
|
1987 |
+
|
1988 |
+
'guest' => !empty( $item->creator->displayName ) ? $item->creator->displayName : '',
|
1989 |
+
'location' => !empty( $item->location ) ? $item->location : '',
|
1990 |
+
];
|
1991 |
+
}
|
1992 |
+
|
1993 |
+
|
1994 |
+
}
|
1995 |
+
|
1996 |
+
return $calendar_data;
|
1997 |
+
}
|
1998 |
+
|
1999 |
+
|
2000 |
+
public function get_the_events_calendar_events ( $settings ) {
|
2001 |
+
|
2002 |
+
if ( ! function_exists('tribe_get_events') ) {
|
2003 |
+
return [];
|
2004 |
+
}
|
2005 |
+
|
2006 |
+
if ( 'selected_event' !== $settings['the_events_calendar_source'] ) {
|
2007 |
+
$arg = [
|
2008 |
+
'posts_per_page' => $settings['the_events_calendar_item'],
|
2009 |
+
];
|
2010 |
+
}
|
2011 |
+
|
2012 |
+
if ( 'category' == $settings['the_events_calendar_source'] && !empty( $settings['the_events_calendar_category'] ) ) {
|
2013 |
+
$arg['tax_query'] = [
|
2014 |
+
[
|
2015 |
+
'taxonomy' => 'tribe_events_cat',
|
2016 |
+
'field' => 'id',
|
2017 |
+
'terms' => $settings['the_events_calendar_category']
|
2018 |
+
]
|
2019 |
+
];
|
2020 |
+
}
|
2021 |
+
|
2022 |
+
if ( 'selected_event' == $settings['the_events_calendar_source'] && !empty( $settings['the_events_calendar_selected'] ) ) {
|
2023 |
+
$arg['post__in'] = $settings['the_events_calendar_selected'];
|
2024 |
+
}
|
2025 |
+
|
2026 |
+
$events = tribe_get_events( $arg );
|
2027 |
+
|
2028 |
+
if ( empty( $events ) ) {
|
2029 |
+
return [];
|
2030 |
+
}
|
2031 |
+
|
2032 |
+
$calendar_data = [];
|
2033 |
+
foreach ($events as $key => $event) {
|
2034 |
+
|
2035 |
+
$date_format = 'Y-m-d';
|
2036 |
+
$all_day = 'yes';
|
2037 |
+
|
2038 |
+
if (!tribe_event_is_all_day($event->ID)) {
|
2039 |
+
$date_format .= ' H:i';
|
2040 |
+
$all_day = '';
|
2041 |
+
}
|
2042 |
+
|
2043 |
+
$image = get_the_post_thumbnail_url( $event->ID );
|
2044 |
+
|
2045 |
+
$calendar_data[] = [
|
2046 |
+
'id' => ++$key,
|
2047 |
+
'title' => !empty($event->post_title) ? $event->post_title :'',
|
2048 |
+
'description' => $event->post_content,
|
2049 |
+
'start' => tribe_get_start_date($event->ID, true, $date_format),
|
2050 |
+
'end' => tribe_get_end_date($event->ID, true, $date_format),
|
2051 |
+
|
2052 |
+
// 'borderColor' => !empty($settings['eael_event_global_popup_ribbon_color']) ? $settings['eael_event_global_popup_ribbon_color'] : '#10ecab',
|
2053 |
+
// 'textColor' => $settings['eael_event_global_text_color'],
|
2054 |
+
// 'color' => $settings['eael_event_global_bg_color'],
|
2055 |
+
|
2056 |
+
'url' => !empty( get_the_permalink( $event->ID ) ) ? get_the_permalink( $event->ID ) : '',
|
2057 |
+
'allDay' => $all_day,
|
2058 |
+
'external' => 'on',
|
2059 |
+
'nofollow' => 'on',
|
2060 |
+
'guest' => tribe_get_organizer( $event->ID ),
|
2061 |
+
'location' => !empty( tribe_get_venue( $event->ID ) ) ? tribe_get_venue( $event->ID ) : '',
|
2062 |
+
'image' => $image ? $image : '',
|
2063 |
+
];
|
2064 |
+
}
|
2065 |
+
return $calendar_data;
|
2066 |
+
|
2067 |
+
}
|
2068 |
+
|
2069 |
+
public function get_popup_markup__ ( $settings ) {
|
2070 |
+
$readmore_text = !empty($settings['readmore_text']) ? esc_html($settings['readmore_text']) : '';
|
2071 |
+
$time_title = !empty($settings['time_title']) ? esc_html($settings['time_title']) : '';
|
2072 |
+
$speaker_title = !empty($settings['speaker_title']) ? esc_html($settings['speaker_title']) : '';
|
2073 |
+
$location_title = !empty($settings['location_title']) ? esc_html($settings['location_title']) : '';
|
2074 |
+
$popup = '<div class="ha-ec-popup-wrapper">
|
2075 |
+
<div class="ha-ec-popup">
|
2076 |
+
|
2077 |
+
<span class="ha-ec-popup-close"><i class="eicon-editor-close"></i></span>
|
2078 |
+
<div class="ha-ec-popup-body">
|
2079 |
+
<div class="ha-ec-popup-image">
|
2080 |
+
<img src="" alt="">
|
2081 |
+
</div>
|
2082 |
+
<div class="ha-ec-popup-content">
|
2083 |
+
<ul>
|
2084 |
+
<li class="ha-ec-event-time-wrap">
|
2085 |
+
<div class="ha-ec-time-icon">'.$this->render_svg_icon('clock').'</div>
|
2086 |
+
<div class="ha-ec-time-content">
|
2087 |
+
<span class="ha-ec-time-title">'.$time_title.'</span>
|
2088 |
+
<span class="ha-ec-event-time"></span>
|
2089 |
+
</div>
|
2090 |
+
</li>
|
2091 |
+
<li class="ha-ec-event-guest-wrap">
|
2092 |
+
<div class="ha-ec-guest-icon">'.$this->render_svg_icon('speaker').'</div>
|
2093 |
+
<div class="ha-ec-guest-content">
|
2094 |
+
<span class="ha-ec-guest-title">'.$speaker_title.'</span>
|
2095 |
+
<span class="ha-ec-event-guest"></span>
|
2096 |
+
</div>
|
2097 |
+
</li>
|
2098 |
+
<li class="ha-ec-event-location-wrap">
|
2099 |
+
<div class="ha-ec-location-icon">'.$this->render_svg_icon('map').'</div>
|
2100 |
+
<div class="ha-ec-location-content">
|
2101 |
+
<span class="ha-ec-location-title">'.$location_title.'</span>
|
2102 |
+
<span class="ha-ec-event-location"></span>
|
2103 |
+
</div>
|
2104 |
+
</li>
|
2105 |
+
</ul>
|
2106 |
+
<h3 class="ha-ec-event-title"></h3>
|
2107 |
+
<p class="ha-ec-popup-desc"></p>
|
2108 |
+
<div class="ha-ec-popup-readmore">
|
2109 |
+
<a class="ha-ec-popup-readmore-link" href="">'.$readmore_text.'</a>
|
2110 |
+
</div>
|
2111 |
+
</div>
|
2112 |
+
</div>
|
2113 |
+
|
2114 |
+
</div>
|
2115 |
+
</div>';
|
2116 |
+
echo $popup;
|
2117 |
+
}
|
2118 |
+
|
2119 |
+
public function get_popup_markup3 ( $settings ) {
|
2120 |
+
$readmore_text = !empty($settings['readmore_text']) ? esc_html($settings['readmore_text']) : '';
|
2121 |
+
$time_title = !empty($settings['time_title']) ? esc_html($settings['time_title']) : '';
|
2122 |
+
$speaker_title = !empty($settings['speaker_title']) ? esc_html($settings['speaker_title']) : '';
|
2123 |
+
$location_title = !empty($settings['location_title']) ? esc_html($settings['location_title']) : '';
|
2124 |
+
$popup = '<div class="ha-ec-popup-wrapper ha-ec-popup-ready">
|
2125 |
+
<div class="ha-ec-popup">
|
2126 |
+
|
2127 |
+
<span class="ha-ec-popup-close"><i class="eicon-editor-close"></i></span>
|
2128 |
+
<div class="ha-ec-popup-body">
|
2129 |
+
<div class="ha-ec-popup-image">
|
2130 |
+
<img src="" alt="">
|
2131 |
+
</div>
|
2132 |
+
<div class="ha-ec-popup-content">
|
2133 |
+
<ul>
|
2134 |
+
<li class="ha-ec-event-time-wrap">
|
2135 |
+
<div class="ha-ec-time-icon">'.$this->render_svg_icon('clock').'</div>
|
2136 |
+
<div class="ha-ec-time-content">
|
2137 |
+
<span class="ha-ec-time-title">Timezone UTC+6</span>
|
2138 |
+
<span class="ha-ec-event-time">9:16am - 10:15am</span>
|
2139 |
+
</div>
|
2140 |
+
</li>
|
2141 |
+
<li class="ha-ec-event-guest-wrap">
|
2142 |
+
<div class="ha-ec-guest-icon">'.$this->render_svg_icon('speaker').'</div>
|
2143 |
+
<div class="ha-ec-guest-content">
|
2144 |
+
<span class="ha-ec-guest-title">Speaker</span>
|
2145 |
+
<span class="ha-ec-event-guest">9:16am - 10:15am</span>
|
2146 |
+
</div>
|
2147 |
+
</li>
|
2148 |
+
<li class="ha-ec-event-location-wrap">
|
2149 |
+
<div class="ha-ec-location-icon">'.$this->render_svg_icon('map').'</div>
|
2150 |
+
<div class="ha-ec-location-content">
|
2151 |
+
<span class="ha-ec-location-title">Speaker</span>
|
2152 |
+
<span class="ha-ec-event-location">9:16am - 10:15am</span>
|
2153 |
+
</div>
|
2154 |
+
</li>
|
2155 |
+
</ul>
|
2156 |
+
<h3 class="ha-ec-event-title">Hasin Hayder</h3>
|
2157 |
+
<p class="ha-ec-popup-desc">Lorem, ipsum dolor sit amet consectetur adipisicing elit. Harum ipsum voluptatibus nulla quis! Cum soluta consectetur molestiae dolorem aperiam deleniti possimus veniam minima, distinctio facilis cupiditate perferendis incidunt odio doloremque?</p>
|
2158 |
+
<div class="ha-ec-popup-readmore">
|
2159 |
+
<a class="ha-ec-popup-readmore-link" href="">'.$readmore_text.'</a>
|
2160 |
+
</div>
|
2161 |
+
</div>
|
2162 |
+
</div>
|
2163 |
+
|
2164 |
+
</div>
|
2165 |
+
</div>';
|
2166 |
+
echo $popup;
|
2167 |
+
}
|
2168 |
+
|
2169 |
+
public function get_popup_markup2 ( $settings ) {
|
2170 |
+
$readmore_text = !empty($settings['readmore_text']) ? esc_html($settings['readmore_text']) : '';
|
2171 |
+
$time_title = !empty($settings['time_title']) ? esc_html($settings['time_title']) : '';
|
2172 |
+
$speaker_title = !empty($settings['speaker_title']) ? esc_html($settings['speaker_title']) : '';
|
2173 |
+
$location_title = !empty($settings['location_title']) ? esc_html($settings['location_title']) : '';
|
2174 |
+
$popup = '<div class="ha-ec-popup-wrapper ha-ec-popup-ready">
|
2175 |
+
<div class="ha-ec-popup">
|
2176 |
+
|
2177 |
+
<span class="ha-ec-popup-close"><i class="eicon-editor-close"></i></span>
|
2178 |
+
<div class="ha-ec-popup-body">
|
2179 |
+
<div class="ha-ec-popup-image">
|
2180 |
+
<img src="" alt="">
|
2181 |
+
</div>
|
2182 |
+
<div class="ha-ec-popup-content">
|
2183 |
+
<ul>
|
2184 |
+
<li class="ha-ec-time-wrap">
|
2185 |
+
<div class="ha-ec-time-title">Timezone UTC+6</div>
|
2186 |
+
<div class="ha-ec-event-time">'.$this->render_svg_icon('clock').'<span>9:16am - 10:15am</span></div>
|
2187 |
+
</li>
|
2188 |
+
<li class="ha-ec-guest-wrap">
|
2189 |
+
<div class="ha-ec-guest-title">Speaker</div>
|
2190 |
+
<div class="ha-ec-event-guest">'.$this->render_svg_icon('speaker').'<span>Hasin Hayder</span></div>
|
2191 |
+
</li>
|
2192 |
+
<li class="ha-ec-location-wrap">
|
2193 |
+
<div class="ha-ec-location-title">Address</div>
|
2194 |
+
<div class="ha-ec-event-location">'.$this->render_svg_icon('map').'<span>Mirpur DOHS, Dhaka</span></div>
|
2195 |
+
</li>
|
2196 |
+
</ul>
|
2197 |
+
<h3 class="ha-ec-event-title">Hasin Hayder</h3>
|
2198 |
+
<p class="ha-ec-popup-desc">Lorem, ipsum dolor sit amet consectetur adipisicing elit. Harum ipsum voluptatibus nulla quis! Cum soluta consectetur molestiae dolorem aperiam deleniti possimus veniam minima, distinctio facilis cupiditate perferendis incidunt odio doloremque?</p>
|
2199 |
+
<div class="ha-ec-popup-readmore">
|
2200 |
+
<a class="ha-ec-popup-readmore-link" href="">'.$readmore_text.'</a>
|
2201 |
+
</div>
|
2202 |
+
</div>
|
2203 |
+
</div>
|
2204 |
+
|
2205 |
+
</div>
|
2206 |
+
</div>';
|
2207 |
+
echo $popup;
|
2208 |
+
}
|
2209 |
+
|
2210 |
+
public function get_popup_markup ( $settings ) {
|
2211 |
+
$readmore_text = !empty($settings['readmore_text']) ? esc_html($settings['readmore_text']) : '';
|
2212 |
+
$time_title = !empty($settings['time_title']) ? esc_html($settings['time_title']) : '';
|
2213 |
+
$speaker_title = !empty($settings['speaker_title']) ? esc_html($settings['speaker_title']) : '';
|
2214 |
+
$location_title = !empty($settings['location_title']) ? esc_html($settings['location_title']) : '';
|
2215 |
+
$popup = '<div class="ha-ec-popup-wrapper">
|
2216 |
+
<div class="ha-ec-popup">
|
2217 |
+
|
2218 |
+
<span class="ha-ec-popup-close"><i class="eicon-editor-close"></i></span>
|
2219 |
+
<div class="ha-ec-popup-body">
|
2220 |
+
<div class="ha-ec-popup-image">
|
2221 |
+
<img src="" alt="">
|
2222 |
+
</div>
|
2223 |
+
<div class="ha-ec-popup-content">
|
2224 |
+
<ul>
|
2225 |
+
<li>
|
2226 |
+
<div class="ha-ec-time-title">'.$time_title.'</div>
|
2227 |
+
<div class="ha-ec-event-time">'.$this->render_svg_icon('clock').'<span></span></div>
|
2228 |
+
</li>
|
2229 |
+
<li>
|
2230 |
+
<div class="ha-ec-guest-title">'.$speaker_title.'</div>
|
2231 |
+
<div class="ha-ec-event-guest">'.$this->render_svg_icon('speaker').'<span></span></div>
|
2232 |
+
</li>
|
2233 |
+
<li>
|
2234 |
+
<div class="ha-ec-location-title">'.$location_title.'</div>
|
2235 |
+
<div class="ha-ec-event-location">'.$this->render_svg_icon('map').'<span></span></div>
|
2236 |
+
</li>
|
2237 |
+
</ul>
|
2238 |
+
<h3 class="ha-ec-event-title"></h3>
|
2239 |
+
<p class="ha-ec-popup-desc"></p>
|
2240 |
+
<div class="ha-ec-popup-readmore">
|
2241 |
+
<a class="ha-ec-popup-readmore-link" href="">'.$readmore_text.'</a>
|
2242 |
+
</div>
|
2243 |
+
</div>
|
2244 |
+
</div>
|
2245 |
+
|
2246 |
+
</div>
|
2247 |
+
</div>';
|
2248 |
+
echo $popup;
|
2249 |
+
}
|
2250 |
+
|
2251 |
+
public function render_svg_icon( $icon_name ) {
|
2252 |
+
?>
|
2253 |
+
<?php if ( 'clock' === $icon_name ) :
|
2254 |
+
return '<svg xmlns="http://www.w3.org/2000/svg" height="512pt" viewBox="0 0 512 512" width="512pt"><path d="m256 0c-141.164062 0-256 114.835938-256 256s114.835938 256 256 256 256-114.835938 256-256-114.835938-256-256-256zm121.75 388.414062c-4.160156 4.160157-9.621094 6.253907-15.082031 6.253907-5.460938 0-10.925781-2.09375-15.082031-6.253907l-106.667969-106.664062c-4.011719-3.988281-6.25-9.410156-6.25-15.082031v-138.667969c0-11.796875 9.554687-21.332031 21.332031-21.332031s21.332031 9.535156 21.332031 21.332031v129.835938l100.417969 100.414062c8.339844 8.34375 8.339844 21.824219 0 30.164062zm0 0"/></svg>';
|
2255 |
+
endif; ?>
|
2256 |
+
<?php if ( 'user' === $icon_name ) :
|
2257 |
+
return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="-42 0 512 512.002"><path d="m210.351562 246.632812c33.882813 0 63.222657-12.152343 87.195313-36.128906 23.972656-23.972656 36.125-53.304687 36.125-87.191406 0-33.875-12.152344-63.210938-36.128906-87.191406-23.976563-23.96875-53.3125-36.121094-87.191407-36.121094-33.886718 0-63.21875 12.152344-87.191406 36.125s-36.128906 53.308594-36.128906 87.1875c0 33.886719 12.15625 63.222656 36.132812 87.195312 23.976563 23.96875 53.3125 36.125 87.1875 36.125zm0 0"/><path d="m426.128906 393.703125c-.691406-9.976563-2.089844-20.859375-4.148437-32.351563-2.078125-11.578124-4.753907-22.523437-7.957031-32.527343-3.308594-10.339844-7.808594-20.550781-13.371094-30.335938-5.773438-10.15625-12.554688-19-20.164063-26.277343-7.957031-7.613282-17.699219-13.734376-28.964843-18.199219-11.226563-4.441407-23.667969-6.691407-36.976563-6.691407-5.226563 0-10.28125 2.144532-20.042969 8.5-6.007812 3.917969-13.035156 8.449219-20.878906 13.460938-6.707031 4.273438-15.792969 8.277344-27.015625 11.902344-10.949219 3.542968-22.066406 5.339844-33.039063 5.339844-10.972656 0-22.085937-1.796876-33.046874-5.339844-11.210938-3.621094-20.296876-7.625-26.996094-11.898438-7.769532-4.964844-14.800782-9.496094-20.898438-13.46875-9.75-6.355468-14.808594-8.5-20.035156-8.5-13.3125 0-25.75 2.253906-36.972656 6.699219-11.257813 4.457031-21.003906 10.578125-28.96875 18.199219-7.605469 7.28125-14.390625 16.121094-20.15625 26.273437-5.558594 9.785157-10.058594 19.992188-13.371094 30.339844-3.199219 10.003906-5.875 20.945313-7.953125 32.523437-2.058594 11.476563-3.457031 22.363282-4.148437 32.363282-.679688 9.796875-1.023438 19.964844-1.023438 30.234375 0 26.726562 8.496094 48.363281 25.25 64.320312 16.546875 15.746094 38.441406 23.734375 65.066406 23.734375h246.53125c26.625 0 48.511719-7.984375 65.0625-23.734375 16.757813-15.945312 25.253906-37.585937 25.253906-64.324219-.003906-10.316406-.351562-20.492187-1.035156-30.242187zm0 0"/></svg>';
|
2258 |
+
endif; ?>
|
2259 |
+
<?php if ( 'speaker' === $icon_name ) :
|
2260 |
+
return '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 841.9 595.3">
|
2261 |
+
<path d="M701.7,430.3c-5.1-8.3-14-13.2-23.7-13.2h-20.1c-5.3,0-9.6-4.1-10-9.4c-3.8-58.2-40.7-69-77.7-79.8 c-33.5-9.8-54.5-29.6-65.9-62.4c-1.3-3.7-4.8-6.2-8.8-6.2h-12.9c-0.5-10.8,1-31.6,17.3-49.9c12.7,0.8,23-10.5,27.1-22.2 c1.4-3.2,13-30.5,3.9-51.4c19.2-52-6-76.3-17.5-84.3c-5.9-51.7-87.2-51.3-91-51.4c-38.1,1.5-66.6,14.8-84.8,39.7 c-24.6,33.5-22.6,78.6-19.5,97.7c-11,11.3-2.8,34.1,2.3,48.5c0.9,2.5,1.7,4.7,2.3,6.7c2.9,9.1,7.9,15.5,14.7,18.8 c4,2,7.8,2.4,11.1,2.5c5.3,7.1,16.1,24,18.6,45.4h-4.8c-4,0-7.5,2.5-8.8,6.2c-10.9,31.2-34,52.2-68.7,62.4l-4.7,1.4 c-35.9,10.4-76.5,22.4-76.5,87.8c0,0.1-8.5,0-9.4,0h-32c-9.7,0-18.6,4.9-23.7,13.2c-5.1,8.3-5.6,18.4-1.2,27.1l37.2,74.3 c4.8,9.5,14.3,15.4,24.9,15.4h75.2c0.1,0,0.1,0,0.2,0l16.7,43.1c1.9,4.8,7.2,7.2,12.1,5.3c4.8-1.9,7.2-7.2,5.3-12l-27.4-70.7 c-1.1-2.9-0.8-6,1-8.6c1.7-2.5,4.5-4,7.6-4h260c3.1,0,5.9,1.5,7.6,4c1.7,2.6,2.1,5.7,1,8.6l-27.4,70.7c-1.9,4.8,0.5,10.2,5.3,12 c1.1,0.4,2.2,0.6,3.4,0.6c3.7,0,7.3-2.3,8.7-5.9l16.7-43h75.4c10.6,0,20.2-5.9,24.9-15.4l37.1-74.3 C707.2,448.7,706.8,438.6,701.7,430.3z M686.2,449.1l-37.2,74.3c-1.6,3.1-4.8,5.1-8.3,5.1h-68.2l3.5-9c3.3-8.6,2.2-18.2-3-25.9 c-5.2-7.6-13.8-12.1-23-12.1h-260c-9.2,0-17.8,4.5-23,12.1c-5.2,7.6-6.3,17.3-3,25.9l3.5,9h-68.2c-3.5,0-6.7-2-8.3-5.1l-37.1-74.3 c-2.1-4.1-0.4-7.7,0.4-9c0.8-1.3,3.2-4.4,7.9-4.4h254.3v-33.4c0-4.3-3.5-7.8-7.8-7.8h0c-11,0-20-9-20-20v-3c0-2.8,2.2-5,5-5h21.2 c2.7,0,5.1-2,5.3-4.6c0.3-3.1-2.1-5.6-5.1-5.6h-21.2c-2.8,0-5.1-2.3-5.1-5.1v0c0-2.8,2.3-5.1,5.1-5.1h21c2.7,0,5.1-2,5.3-4.6 c0.3-3.1-2.1-5.6-5.1-5.6h-21.2c-2.8,0-5.1-2.3-5.1-5.1l0,0c0-2.8,2.3-5.1,5.1-5.1h21c2.7,0,5.1-2,5.3-4.6c0.3-3.1-2.1-5.6-5.1-5.6 h-21.4c-2.8,0-5-2.2-5-5v-4.4c0-11,9-20,20-20H443c11,0,20,9,20,20v68.8c0,11-9,20-20,20h-0.1c-4.3,0-7.8,3.5-7.8,7.8v33.4h242.8 c4.7,0,7.1,3.1,7.9,4.4C686.6,441.4,688.3,444.9,686.2,449.1z"/>
|
2262 |
+
</svg>';
|
2263 |
+
endif; ?>
|
2264 |
+
<?php if ( 'map' === $icon_name ) :
|
2265 |
+
return '<svg xmlns="http://www.w3.org/2000/svg" id="Layer_1" enable-background="new 0 0 512 512" height="512" viewBox="0 0 512 512" width="512"><g><path d="m407.579 87.677c-31.073-53.624-86.265-86.385-147.64-87.637-2.62-.054-5.257-.054-7.878 0-61.374 1.252-116.566 34.013-147.64 87.637-31.762 54.812-32.631 120.652-2.325 176.123l126.963 232.387c.057.103.114.206.173.308 5.586 9.709 15.593 15.505 26.77 15.505 11.176 0 21.183-5.797 26.768-15.505.059-.102.116-.205.173-.308l126.963-232.387c30.304-55.471 29.435-121.311-2.327-176.123zm-151.579 144.323c-39.701 0-72-32.299-72-72s32.299-72 72-72 72 32.299 72 72-32.298 72-72 72z"/></g></svg>';
|
2266 |
+
endif; ?>
|
2267 |
+
<?php
|
2268 |
+
}
|
2269 |
+
|
2270 |
+
}
|
widgets/ninjaform/widget.php
CHANGED
@@ -1,551 +1,551 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Ninja Form widget class
|
4 |
-
*
|
5 |
-
* @package Happy_Addons
|
6 |
-
*/
|
7 |
-
namespace Happy_Addons\Elementor\Widget;
|
8 |
-
|
9 |
-
use Elementor\Controls_Manager;
|
10 |
-
use Elementor\Group_Control_Border;
|
11 |
-
use Elementor\Group_Control_Box_Shadow;
|
12 |
-
use Elementor\Group_Control_Typography;
|
13 |
-
use Elementor\Scheme_Typography;
|
14 |
-
|
15 |
-
defined( 'ABSPATH' ) || die();
|
16 |
-
|
17 |
-
class NinjaForm extends Base {
|
18 |
-
|
19 |
-
/**
|
20 |
-
* Get widget title.
|
21 |
-
*
|
22 |
-
* @since 1.0.0
|
23 |
-
* @access public
|
24 |
-
*
|
25 |
-
* @return string Widget title.
|
26 |
-
*/
|
27 |
-
public function get_title() {
|
28 |
-
return __( 'Ninja Forms', 'happy-elementor-addons' );
|
29 |
-
}
|
30 |
-
|
31 |
-
public function get_custom_help_url() {
|
32 |
-
return 'https://happyaddons.com/docs/happy-addons-for-elementor/widgets/ninja-forms/';
|
33 |
-
}
|
34 |
-
|
35 |
-
/**
|
36 |
-
* Get widget icon.
|
37 |
-
*
|
38 |
-
* @since 1.0.0
|
39 |
-
* @access public
|
40 |
-
*
|
41 |
-
* @return string Widget icon.
|
42 |
-
*/
|
43 |
-
public function get_icon() {
|
44 |
-
return 'hm hm-form';
|
45 |
-
}
|
46 |
-
|
47 |
-
public function get_keywords() {
|
48 |
-
return [ 'wpf','wpform' , 'form', 'contact', 'cf7', 'contact form', 'gravity', 'ninja' ];
|
49 |
-
}
|
50 |
-
|
51 |
-
protected function register_content_controls() {
|
52 |
-
$this->start_controls_section(
|
53 |
-
'_section_ninjaforms',
|
54 |
-
[
|
55 |
-
'label' => ha_is_ninjaforms_activated() ? __( 'Ninja Forms', 'happy-elementor-addons' ) : __( 'Missing Notice', 'happy-elementor-addons' ),
|
56 |
-
'tab' => Controls_Manager::TAB_CONTENT,
|
57 |
-
]
|
58 |
-
);
|
59 |
-
|
60 |
-
if ( ! ha_is_ninjaforms_activated() ) {
|
61 |
-
$this->add_control(
|
62 |
-
'_ninjaforms_missing_notice',
|
63 |
-
[
|
64 |
-
'type' => Controls_Manager::RAW_HTML,
|
65 |
-
'raw' => sprintf(
|
66 |
-
__( 'Hello %2$s, looks like %1$s is missing in your site. Please click on the link below and install/activate %1$s. Make sure to refresh this page after installation or activation.', 'happy-elementor-addons' ),
|
67 |
-
'<a href="'.esc_url( admin_url( 'plugin-install.php?s=Ninja+Forms&tab=search&type=term' ) ).'" target="_blank" rel="noopener">Ninja Forms</a>',
|
68 |
-
ha_get_current_user_display_name()
|
69 |
-
),
|
70 |
-
'content_classes' => 'elementor-panel-alert elementor-panel-alert-danger',
|
71 |
-
]
|
72 |
-
);
|
73 |
-
|
74 |
-
$this->add_control(
|
75 |
-
'_ninjaforms_install',
|
76 |
-
[
|
77 |
-
'type' => Controls_Manager::RAW_HTML,
|
78 |
-
'raw' => '<a href="'.esc_url( admin_url( 'plugin-install.php?s=Ninja+Forms&tab=search&type=term' ) ).'" target="_blank" rel="noopener">Click to install or activate Ninja Forms</a>',
|
79 |
-
]
|
80 |
-
);
|
81 |
-
$this->end_controls_section();
|
82 |
-
return;
|
83 |
-
}
|
84 |
-
|
85 |
-
$this->add_control(
|
86 |
-
'form_id',
|
87 |
-
[
|
88 |
-
'label' => __( 'Select Your Form', 'happy-elementor-addons' ),
|
89 |
-
'type' => Controls_Manager::SELECT,
|
90 |
-
'label_block' => true,
|
91 |
-
'options' => ['' => __( '', 'happy-elementor-addons' ) ] + \ha_get_ninjaform(),
|
92 |
-
]
|
93 |
-
);
|
94 |
-
|
95 |
-
$this->end_controls_section();
|
96 |
-
}
|
97 |
-
|
98 |
-
protected function register_style_controls() {
|
99 |
-
$this->start_controls_section(
|
100 |
-
'_section_fields_style',
|
101 |
-
[
|
102 |
-
'label' => __( 'Form Fields', 'happy-elementor-addons' ),
|
103 |
-
'tab' => Controls_Manager::TAB_STYLE,
|
104 |
-
]
|
105 |
-
);
|
106 |
-
|
107 |
-
$this->add_responsive_control(
|
108 |
-
'field_margin',
|
109 |
-
[
|
110 |
-
'label' => __( 'Field Spacing', 'happy-elementor-addons' ),
|
111 |
-
'type' => Controls_Manager::DIMENSIONS,
|
112 |
-
'size_units' => [ 'px', '%' ],
|
113 |
-
'selectors' => [
|
114 |
-
'{{WRAPPER}} .nf-field-container:not(.submit-container)' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
115 |
-
],
|
116 |
-
]
|
117 |
-
);
|
118 |
-
|
119 |
-
$this->add_responsive_control(
|
120 |
-
'field_padding',
|
121 |
-
[
|
122 |
-
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
123 |
-
'type' => Controls_Manager::DIMENSIONS,
|
124 |
-
'size_units' => [ 'px', 'em', '%' ],
|
125 |
-
'selectors' => [
|
126 |
-
'{{WRAPPER}} .textbox-wrap input[type=text], {{WRAPPER}} .email-wrap input, {{WRAPPER}} .textarea-wrap textarea' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
127 |
-
],
|
128 |
-
]
|
129 |
-
);
|
130 |
-
|
131 |
-
$this->add_responsive_control(
|
132 |
-
'field_border_radius',
|
133 |
-
[
|
134 |
-
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
135 |
-
'type' => Controls_Manager::DIMENSIONS,
|
136 |
-
'size_units' => [ 'px', '%' ],
|
137 |
-
'selectors' => [
|
138 |
-
'{{WRAPPER}} .textbox-wrap input[type=text], {{WRAPPER}} .email-wrap input, {{WRAPPER}} .textarea-wrap textarea' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
139 |
-
],
|
140 |
-
]
|
141 |
-
);
|
142 |
-
|
143 |
-
$this->add_group_control(
|
144 |
-
Group_Control_Typography::get_type(),
|
145 |
-
[
|
146 |
-
'name' => 'field_typography',
|
147 |
-
'label' => __( 'Typography', 'happy-elementor-addons' ),
|
148 |
-
'selector' => '{{WRAPPER}} .textbox-wrap input[type=text], {{WRAPPER}} .email-wrap input, {{WRAPPER}} .textarea-wrap textarea',
|
149 |
-
'scheme' => Scheme_Typography::TYPOGRAPHY_3
|
150 |
-
]
|
151 |
-
);
|
152 |
-
|
153 |
-
$this->add_control(
|
154 |
-
'field_textcolor',
|
155 |
-
[
|
156 |
-
'label' => __( 'Field Text Color', 'happy-elementor-addons' ),
|
157 |
-
'type' => Controls_Manager::COLOR,
|
158 |
-
'selectors' => [
|
159 |
-
'{{WRAPPER}} .textbox-wrap input[type=text], {{WRAPPER}} .email-wrap input, {{WRAPPER}} .textarea-wrap textarea' => 'color: {{VALUE}}',
|
160 |
-
],
|
161 |
-
]
|
162 |
-
);
|
163 |
-
|
164 |
-
$this->add_control(
|
165 |
-
'field_placeholder_color',
|
166 |
-
[
|
167 |
-
'label' => __( 'Field Placeholder Color', 'happy-elementor-addons' ),
|
168 |
-
'type' => Controls_Manager::COLOR,
|
169 |
-
'selectors' => [
|
170 |
-
'{{WRAPPER}} ::-webkit-input-placeholder' => 'color: {{VALUE}};',
|
171 |
-
'{{WRAPPER}} ::-moz-placeholder' => 'color: {{VALUE}};',
|
172 |
-
'{{WRAPPER}} ::-ms-input-placeholder' => 'color: {{VALUE}};',
|
173 |
-
],
|
174 |
-
]
|
175 |
-
);
|
176 |
-
|
177 |
-
$this->start_controls_tabs( 'tabs_field_state' );
|
178 |
-
|
179 |
-
$this->start_controls_tab(
|
180 |
-
'tab_field_normal',
|
181 |
-
[
|
182 |
-
'label' => __( 'Normal', 'happy-elementor-addons' ),
|
183 |
-
]
|
184 |
-
);
|
185 |
-
|
186 |
-
$this->add_group_control(
|
187 |
-
Group_Control_Border::get_type(),
|
188 |
-
[
|
189 |
-
'name' => 'field_border',
|
190 |
-
'selector' => '{{WRAPPER}} .textbox-wrap input[type=text], {{WRAPPER}} .email-wrap input, {{WRAPPER}} .textarea-wrap textarea',
|
191 |
-
]
|
192 |
-
);
|
193 |
-
|
194 |
-
$this->add_group_control(
|
195 |
-
Group_Control_Box_Shadow::get_type(),
|
196 |
-
[
|
197 |
-
'name' => 'field_box_shadow',
|
198 |
-
'selector' => '{{WRAPPER}} .textbox-wrap input[type=text], {{WRAPPER}} .email-wrap input, {{WRAPPER}} .textarea-wrap textarea',
|
199 |
-
]
|
200 |
-
);
|
201 |
-
|
202 |
-
$this->add_control(
|
203 |
-
'field_bg_color',
|
204 |
-
[
|
205 |
-
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
206 |
-
'type' => Controls_Manager::COLOR,
|
207 |
-
'selectors' => [
|
208 |
-
'{{WRAPPER}} .textbox-wrap input[type=text], {{WRAPPER}} .email-wrap input, {{WRAPPER}} .textarea-wrap textarea' => 'background-color: {{VALUE}}',
|
209 |
-
],
|
210 |
-
]
|
211 |
-
);
|
212 |
-
|
213 |
-
$this->end_controls_tab();
|
214 |
-
|
215 |
-
$this->start_controls_tab(
|
216 |
-
'tab_field_focus',
|
217 |
-
[
|
218 |
-
'label' => __( 'Focus', 'happy-elementor-addons' ),
|
219 |
-
]
|
220 |
-
);
|
221 |
-
|
222 |
-
$this->add_group_control(
|
223 |
-
Group_Control_Border::get_type(),
|
224 |
-
[
|
225 |
-
'name' => 'field_focus_border',
|
226 |
-
'selector' => '{{WRAPPER}} .textbox-wrap input[type=text]:focus, {{WRAPPER}} .email-wrap input:focus, {{WRAPPER}} .textarea-wrap textarea:focus',
|
227 |
-
]
|
228 |
-
);
|
229 |
-
|
230 |
-
$this->add_group_control(
|
231 |
-
Group_Control_Box_Shadow::get_type(),
|
232 |
-
[
|
233 |
-
'name' => 'field_focus_box_shadow',
|
234 |
-
'exclude' => [
|
235 |
-
'box_shadow_position',
|
236 |
-
],
|
237 |
-
'selector' => '{{WRAPPER}} .textbox-wrap input[type=text]:focus, {{WRAPPER}} .email-wrap input:focus, {{WRAPPER}} .textarea-wrap textarea:focus',
|
238 |
-
]
|
239 |
-
);
|
240 |
-
|
241 |
-
$this->add_control(
|
242 |
-
'field_focus_bg_color',
|
243 |
-
[
|
244 |
-
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
245 |
-
'type' => Controls_Manager::COLOR,
|
246 |
-
'selectors' => [
|
247 |
-
'{{WRAPPER}} .textbox-wrap input[type=text]:focus, {{WRAPPER}} .email-wrap input:focus, {{WRAPPER}} .textarea-wrap textarea:focus' => 'background-color: {{VALUE}}',
|
248 |
-
],
|
249 |
-
]
|
250 |
-
);
|
251 |
-
|
252 |
-
$this->end_controls_tab();
|
253 |
-
$this->end_controls_tabs();
|
254 |
-
|
255 |
-
|
256 |
-
$this->end_controls_section();
|
257 |
-
|
258 |
-
$this->start_controls_section(
|
259 |
-
'ninjaf-form-label',
|
260 |
-
[
|
261 |
-
'label' => __( 'Form Fields Label', 'happy-elementor-addons' ),
|
262 |
-
'tab' => Controls_Manager::TAB_STYLE,
|
263 |
-
]
|
264 |
-
);
|
265 |
-
|
266 |
-
$this->add_responsive_control(
|
267 |
-
'label_margin',
|
268 |
-
[
|
269 |
-
'label' => __( 'Margin', 'happy-elementor-addons' ),
|
270 |
-
'type' => Controls_Manager::DIMENSIONS,
|
271 |
-
'size_units' => [ 'px', '%' ],
|
272 |
-
'selectors' => [
|
273 |
-
'{{WRAPPER}} .textbox-wrap label, {{WRAPPER}} .email-wrap label, {{WRAPPER}} .textarea-wrap label' => 'display: inline-block; padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
274 |
-
],
|
275 |
-
]
|
276 |
-
);
|
277 |
-
|
278 |
-
$this->add_responsive_control(
|
279 |
-
'label_padding',
|
280 |
-
[
|
281 |
-
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
282 |
-
'type' => Controls_Manager::DIMENSIONS,
|
283 |
-
'size_units' => [ 'px', 'em', '%' ],
|
284 |
-
'selectors' => [
|
285 |
-
'{{WRAPPER}} .textbox-wrap label, {{WRAPPER}} .email-wrap label, {{WRAPPER}} .textarea-wrap label' => 'display: inline-block; padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
286 |
-
],
|
287 |
-
]
|
288 |
-
);
|
289 |
-
|
290 |
-
$this->add_control(
|
291 |
-
'hr3',
|
292 |
-
[
|
293 |
-
'type' => Controls_Manager::DIVIDER,
|
294 |
-
'style' => 'thick',
|
295 |
-
]
|
296 |
-
);
|
297 |
-
|
298 |
-
$this->add_group_control(
|
299 |
-
Group_Control_Typography::get_type(),
|
300 |
-
[
|
301 |
-
'name' => 'label_typography',
|
302 |
-
'label' => __( 'Label Typography', 'happy-elementor-addons' ),
|
303 |
-
'selector' => '{{WRAPPER}} .textbox-wrap label, {{WRAPPER}} .email-wrap label, {{WRAPPER}} .textarea-wrap label',
|
304 |
-
'scheme' => Scheme_Typography::TYPOGRAPHY_3
|
305 |
-
]
|
306 |
-
);
|
307 |
-
|
308 |
-
$this->add_group_control(
|
309 |
-
Group_Control_Typography::get_type(),
|
310 |
-
[
|
311 |
-
'name' => 'desc_typography',
|
312 |
-
'label' => __( 'Description Typography', 'happy-elementor-addons' ),
|
313 |
-
'selector' => '{{WRAPPER}} .nf-field-description p',
|
314 |
-
'scheme' => Scheme_Typography::TYPOGRAPHY_3
|
315 |
-
]
|
316 |
-
);
|
317 |
-
|
318 |
-
$this->add_control(
|
319 |
-
'label_color',
|
320 |
-
[
|
321 |
-
'label' => __( 'Label Text Color', 'happy-elementor-addons' ),
|
322 |
-
'type' => Controls_Manager::COLOR,
|
323 |
-
'selectors' => [
|
324 |
-
'{{WRAPPER}} .textbox-wrap label, {{WRAPPER}} .email-wrap label, {{WRAPPER}} .textarea-wrap label' => 'color: {{VALUE}}',
|
325 |
-
],
|
326 |
-
]
|
327 |
-
);
|
328 |
-
|
329 |
-
$this->add_control(
|
330 |
-
'requered_label',
|
331 |
-
[
|
332 |
-
'label' => __( 'Required Label Color', 'happy-elementor-addons' ),
|
333 |
-
'type' => Controls_Manager::COLOR,
|
334 |
-
'selectors' => [
|
335 |
-
'{{WRAPPER}} .ninja-forms-req-symbol' => 'color: {{VALUE}}',
|
336 |
-
],
|
337 |
-
]
|
338 |
-
);
|
339 |
-
|
340 |
-
$this->add_control(
|
341 |
-
'desc_color',
|
342 |
-
[
|
343 |
-
'label' => __( 'Description Text Color', 'happy-elementor-addons' ),
|
344 |
-
'type' => Controls_Manager::COLOR,
|
345 |
-
'selectors' => [
|
346 |
-
'{{WRAPPER}} .nf-field-description p' => 'color: {{VALUE}}',
|
347 |
-
],
|
348 |
-
]
|
349 |
-
);
|
350 |
-
|
351 |
-
$this->end_controls_section();
|
352 |
-
|
353 |
-
$this->start_controls_section(
|
354 |
-
'submit',
|
355 |
-
[
|
356 |
-
'label' => __( 'Submit Button', 'happy-elementor-addons' ),
|
357 |
-
'tab' => Controls_Manager::TAB_STYLE,
|
358 |
-
]
|
359 |
-
);
|
360 |
-
|
361 |
-
$this->add_responsive_control(
|
362 |
-
'submit_btn_position',
|
363 |
-
[
|
364 |
-
'label' => __( 'Button Position', 'happy-elementor-addons' ),
|
365 |
-
'type' => Controls_Manager::CHOOSE,
|
366 |
-
'options' => [
|
367 |
-
'left' => [
|
368 |
-
'title' => __( 'Left', 'happy-elementor-addons' ),
|
369 |
-
'icon' => 'eicon-h-align-left',
|
370 |
-
],
|
371 |
-
'center' => [
|
372 |
-
'title' => __( 'Center', 'happy-elementor-addons' ),
|
373 |
-
'icon' => 'eicon-h-align-center',
|
374 |
-
],
|
375 |
-
'right' => [
|
376 |
-
'title' => __( 'Right', 'happy-elementor-addons' ),
|
377 |
-
'icon' => 'eicon-h-align-right',
|
378 |
-
],
|
379 |
-
],
|
380 |
-
'desktop_default' => 'left',
|
381 |
-
'toggle' => false,
|
382 |
-
'prefix_class' => 'ha-form-btn--%s',
|
383 |
-
'selectors' => [
|
384 |
-
'{{WRAPPER}} .field-wrap.submit-wrap' => 'text-align: {{Value}};',
|
385 |
-
],
|
386 |
-
]
|
387 |
-
);
|
388 |
-
|
389 |
-
$this->add_responsive_control(
|
390 |
-
'submit_margin',
|
391 |
-
[
|
392 |
-
'label' => __( 'Margin', 'happy-elementor-addons' ),
|
393 |
-
'type' => Controls_Manager::DIMENSIONS,
|
394 |
-
'size_units' => [ 'px', '%' ],
|
395 |
-
'selectors' => [
|
396 |
-
'{{WRAPPER}} .submit-container input' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
397 |
-
],
|
398 |
-
]
|
399 |
-
);
|
400 |
-
|
401 |
-
$this->add_responsive_control(
|
402 |
-
'submit_padding',
|
403 |
-
[
|
404 |
-
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
405 |
-
'type' => Controls_Manager::DIMENSIONS,
|
406 |
-
'size_units' => [ 'px', 'em', '%' ],
|
407 |
-
'selectors' => [
|
408 |
-
'{{WRAPPER}} .submit-container input' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
409 |
-
],
|
410 |
-
]
|
411 |
-
);
|
412 |
-
|
413 |
-
$this->add_group_control(
|
414 |
-
Group_Control_Typography::get_type(),
|
415 |
-
[
|
416 |
-
'name' => 'submit_typography',
|
417 |
-
'selector' => '{{WRAPPER}} .submit-container input',
|
418 |
-
'scheme' => Scheme_Typography::TYPOGRAPHY_4
|
419 |
-
]
|
420 |
-
);
|
421 |
-
|
422 |
-
$this->add_group_control(
|
423 |
-
Group_Control_Border::get_type(),
|
424 |
-
[
|
425 |
-
'name' => 'submit_border',
|
426 |
-
'selector' => '{{WRAPPER}} .submit-container input',
|
427 |
-
]
|
428 |
-
);
|
429 |
-
|
430 |
-
$this->add_control(
|
431 |
-
'submit_border_radius',
|
432 |
-
[
|
433 |
-
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
434 |
-
'type' => Controls_Manager::DIMENSIONS,
|
435 |
-
'size_units' => [ 'px', '%' ],
|
436 |
-
'selectors' => [
|
437 |
-
'{{WRAPPER}} .submit-container input' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
438 |
-
],
|
439 |
-
]
|
440 |
-
);
|
441 |
-
|
442 |
-
$this->add_group_control(
|
443 |
-
Group_Control_Box_Shadow::get_type(),
|
444 |
-
[
|
445 |
-
'name' => 'submit_box_shadow',
|
446 |
-
'selector' => '{{WRAPPER}} .submit-container input',
|
447 |
-
]
|
448 |
-
);
|
449 |
-
|
450 |
-
$this->add_control(
|
451 |
-
'hr4',
|
452 |
-
[
|
453 |
-
'type' => Controls_Manager::DIVIDER,
|
454 |
-
'style' => 'thick',
|
455 |
-
]
|
456 |
-
);
|
457 |
-
|
458 |
-
$this->start_controls_tabs( 'tabs_button_style' );
|
459 |
-
|
460 |
-
$this->start_controls_tab(
|
461 |
-
'tab_button_normal',
|
462 |
-
[
|
463 |
-
'label' => __( 'Normal', 'happy-elementor-addons' ),
|
464 |
-
]
|
465 |
-
);
|
466 |
-
|
467 |
-
$this->add_control(
|
468 |
-
'submit_color',
|
469 |
-
[
|
470 |
-
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
471 |
-
'type' => Controls_Manager::COLOR,
|
472 |
-
'default' => '',
|
473 |
-
'selectors' => [
|
474 |
-
'{{WRAPPER}} .submit-container input' => 'color: {{VALUE}};',
|
475 |
-
],
|
476 |
-
]
|
477 |
-
);
|
478 |
-
|
479 |
-
$this->add_control(
|
480 |
-
'submit_bg_color',
|
481 |
-
[
|
482 |
-
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
483 |
-
'type' => Controls_Manager::COLOR,
|
484 |
-
'selectors' => [
|
485 |
-
'{{WRAPPER}} .submit-container input' => 'background-color: {{VALUE}};',
|
486 |
-
],
|
487 |
-
]
|
488 |
-
);
|
489 |
-
|
490 |
-
$this->end_controls_tab();
|
491 |
-
|
492 |
-
$this->start_controls_tab(
|
493 |
-
'tab_button_hover',
|
494 |
-
[
|
495 |
-
'label' => __( 'Hover', 'happy-elementor-addons' ),
|
496 |
-
]
|
497 |
-
);
|
498 |
-
|
499 |
-
$this->add_control(
|
500 |
-
'submit_hover_color',
|
501 |
-
[
|
502 |
-
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
503 |
-
'type' => Controls_Manager::COLOR,
|
504 |
-
'selectors' => [
|
505 |
-
'{{WRAPPER}} .submit-container input:hover, {{WRAPPER}} .submit-container input:focus' => 'color: {{VALUE}};',
|
506 |
-
],
|
507 |
-
]
|
508 |
-
);
|
509 |
-
|
510 |
-
$this->add_control(
|
511 |
-
'submit_hover_bg_color',
|
512 |
-
[
|
513 |
-
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
514 |
-
'type' => Controls_Manager::COLOR,
|
515 |
-
'selectors' => [
|
516 |
-
'{{WRAPPER}} .submit-container input:hover, {{WRAPPER}} .submit-container input:focus' => 'background-color: {{VALUE}};',
|
517 |
-
],
|
518 |
-
]
|
519 |
-
);
|
520 |
-
|
521 |
-
$this->add_control(
|
522 |
-
'submit_hover_border_color',
|
523 |
-
[
|
524 |
-
'label' => __( 'Border Color', 'happy-elementor-addons' ),
|
525 |
-
'type' => Controls_Manager::COLOR,
|
526 |
-
'selectors' => [
|
527 |
-
'{{WRAPPER}} .submit-container input:hover, {{WRAPPER}} .submit-container input:focus' => 'border-color: {{VALUE}};',
|
528 |
-
],
|
529 |
-
]
|
530 |
-
);
|
531 |
-
|
532 |
-
$this->end_controls_tab();
|
533 |
-
$this->end_controls_tabs();
|
534 |
-
|
535 |
-
$this->end_controls_section();
|
536 |
-
}
|
537 |
-
|
538 |
-
protected function render() {
|
539 |
-
if ( ! ha_is_ninjaforms_activated() ) {
|
540 |
-
return;
|
541 |
-
}
|
542 |
-
|
543 |
-
$settings = $this->get_settings_for_display();
|
544 |
-
|
545 |
-
if ( ! empty( $settings['form_id'] ) ) {
|
546 |
-
echo ha_do_shortcode( 'ninja_form', [
|
547 |
-
'id' => $settings['form_id'],
|
548 |
-
] );
|
549 |
-
}
|
550 |
-
}
|
551 |
-
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Ninja Form widget class
|
4 |
+
*
|
5 |
+
* @package Happy_Addons
|
6 |
+
*/
|
7 |
+
namespace Happy_Addons\Elementor\Widget;
|
8 |
+
|
9 |
+
use Elementor\Controls_Manager;
|
10 |
+
use Elementor\Group_Control_Border;
|
11 |
+
use Elementor\Group_Control_Box_Shadow;
|
12 |
+
use Elementor\Group_Control_Typography;
|
13 |
+
use Elementor\Scheme_Typography;
|
14 |
+
|
15 |
+
defined( 'ABSPATH' ) || die();
|
16 |
+
|
17 |
+
class NinjaForm extends Base {
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Get widget title.
|
21 |
+
*
|
22 |
+
* @since 1.0.0
|
23 |
+
* @access public
|
24 |
+
*
|
25 |
+
* @return string Widget title.
|
26 |
+
*/
|
27 |
+
public function get_title() {
|
28 |
+
return __( 'Ninja Forms', 'happy-elementor-addons' );
|
29 |
+
}
|
30 |
+
|
31 |
+
public function get_custom_help_url() {
|
32 |
+
return 'https://happyaddons.com/docs/happy-addons-for-elementor/widgets/ninja-forms/';
|
33 |
+
}
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Get widget icon.
|
37 |
+
*
|
38 |
+
* @since 1.0.0
|
39 |
+
* @access public
|
40 |
+
*
|
41 |
+
* @return string Widget icon.
|
42 |
+
*/
|
43 |
+
public function get_icon() {
|
44 |
+
return 'hm hm-form';
|
45 |
+
}
|
46 |
+
|
47 |
+
public function get_keywords() {
|
48 |
+
return [ 'wpf','wpform' , 'form', 'contact', 'cf7', 'contact form', 'gravity', 'ninja' ];
|
49 |
+
}
|
50 |
+
|
51 |
+
protected function register_content_controls() {
|
52 |
+
$this->start_controls_section(
|
53 |
+
'_section_ninjaforms',
|
54 |
+
[
|
55 |
+
'label' => ha_is_ninjaforms_activated() ? __( 'Ninja Forms', 'happy-elementor-addons' ) : __( 'Missing Notice', 'happy-elementor-addons' ),
|
56 |
+
'tab' => Controls_Manager::TAB_CONTENT,
|
57 |
+
]
|
58 |
+
);
|
59 |
+
|
60 |
+
if ( ! ha_is_ninjaforms_activated() ) {
|
61 |
+
$this->add_control(
|
62 |
+
'_ninjaforms_missing_notice',
|
63 |
+
[
|
64 |
+
'type' => Controls_Manager::RAW_HTML,
|
65 |
+
'raw' => sprintf(
|
66 |
+
__( 'Hello %2$s, looks like %1$s is missing in your site. Please click on the link below and install/activate %1$s. Make sure to refresh this page after installation or activation.', 'happy-elementor-addons' ),
|
67 |
+
'<a href="'.esc_url( admin_url( 'plugin-install.php?s=Ninja+Forms&tab=search&type=term' ) ).'" target="_blank" rel="noopener">Ninja Forms</a>',
|
68 |
+
ha_get_current_user_display_name()
|
69 |
+
),
|
70 |
+
'content_classes' => 'elementor-panel-alert elementor-panel-alert-danger',
|
71 |
+
]
|
72 |
+
);
|
73 |
+
|
74 |
+
$this->add_control(
|
75 |
+
'_ninjaforms_install',
|
76 |
+
[
|
77 |
+
'type' => Controls_Manager::RAW_HTML,
|
78 |
+
'raw' => '<a href="'.esc_url( admin_url( 'plugin-install.php?s=Ninja+Forms&tab=search&type=term' ) ).'" target="_blank" rel="noopener">Click to install or activate Ninja Forms</a>',
|
79 |
+
]
|
80 |
+
);
|
81 |
+
$this->end_controls_section();
|
82 |
+
return;
|
83 |
+
}
|
84 |
+
|
85 |
+
$this->add_control(
|
86 |
+
'form_id',
|
87 |
+
[
|
88 |
+
'label' => __( 'Select Your Form', 'happy-elementor-addons' ),
|
89 |
+
'type' => Controls_Manager::SELECT,
|
90 |
+
'label_block' => true,
|
91 |
+
'options' => ['' => __( '', 'happy-elementor-addons' ) ] + \ha_get_ninjaform(),
|
92 |
+
]
|
93 |
+
);
|
94 |
+
|
95 |
+
$this->end_controls_section();
|
96 |
+
}
|
97 |
+
|
98 |
+
protected function register_style_controls() {
|
99 |
+
$this->start_controls_section(
|
100 |
+
'_section_fields_style',
|
101 |
+
[
|
102 |
+
'label' => __( 'Form Fields', 'happy-elementor-addons' ),
|
103 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
104 |
+
]
|
105 |
+
);
|
106 |
+
|
107 |
+
$this->add_responsive_control(
|
108 |
+
'field_margin',
|
109 |
+
[
|
110 |
+
'label' => __( 'Field Spacing', 'happy-elementor-addons' ),
|
111 |
+
'type' => Controls_Manager::DIMENSIONS,
|
112 |
+
'size_units' => [ 'px', '%' ],
|
113 |
+
'selectors' => [
|
114 |
+
'{{WRAPPER}} .nf-field-container:not(.submit-container)' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
115 |
+
],
|
116 |
+
]
|
117 |
+
);
|
118 |
+
|
119 |
+
$this->add_responsive_control(
|
120 |
+
'field_padding',
|
121 |
+
[
|
122 |
+
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
123 |
+
'type' => Controls_Manager::DIMENSIONS,
|
124 |
+
'size_units' => [ 'px', 'em', '%' ],
|
125 |
+
'selectors' => [
|
126 |
+
'{{WRAPPER}} .textbox-wrap input[type=text], {{WRAPPER}} .email-wrap input, {{WRAPPER}} .textarea-wrap textarea' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
127 |
+
],
|
128 |
+
]
|
129 |
+
);
|
130 |
+
|
131 |
+
$this->add_responsive_control(
|
132 |
+
'field_border_radius',
|
133 |
+
[
|
134 |
+
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
135 |
+
'type' => Controls_Manager::DIMENSIONS,
|
136 |
+
'size_units' => [ 'px', '%' ],
|
137 |
+
'selectors' => [
|
138 |
+
'{{WRAPPER}} .textbox-wrap input[type=text], {{WRAPPER}} .email-wrap input, {{WRAPPER}} .textarea-wrap textarea' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
139 |
+
],
|
140 |
+
]
|
141 |
+
);
|
142 |
+
|
143 |
+
$this->add_group_control(
|
144 |
+
Group_Control_Typography::get_type(),
|
145 |
+
[
|
146 |
+
'name' => 'field_typography',
|
147 |
+
'label' => __( 'Typography', 'happy-elementor-addons' ),
|
148 |
+
'selector' => '{{WRAPPER}} .textbox-wrap input[type=text], {{WRAPPER}} .email-wrap input, {{WRAPPER}} .textarea-wrap textarea',
|
149 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_3
|
150 |
+
]
|
151 |
+
);
|
152 |
+
|
153 |
+
$this->add_control(
|
154 |
+
'field_textcolor',
|
155 |
+
[
|
156 |
+
'label' => __( 'Field Text Color', 'happy-elementor-addons' ),
|
157 |
+
'type' => Controls_Manager::COLOR,
|
158 |
+
'selectors' => [
|
159 |
+
'{{WRAPPER}} .textbox-wrap input[type=text], {{WRAPPER}} .email-wrap input, {{WRAPPER}} .textarea-wrap textarea' => 'color: {{VALUE}}',
|
160 |
+
],
|
161 |
+
]
|
162 |
+
);
|
163 |
+
|
164 |
+
$this->add_control(
|
165 |
+
'field_placeholder_color',
|
166 |
+
[
|
167 |
+
'label' => __( 'Field Placeholder Color', 'happy-elementor-addons' ),
|
168 |
+
'type' => Controls_Manager::COLOR,
|
169 |
+
'selectors' => [
|
170 |
+
'{{WRAPPER}} ::-webkit-input-placeholder' => 'color: {{VALUE}};',
|
171 |
+
'{{WRAPPER}} ::-moz-placeholder' => 'color: {{VALUE}};',
|
172 |
+
'{{WRAPPER}} ::-ms-input-placeholder' => 'color: {{VALUE}};',
|
173 |
+
],
|
174 |
+
]
|
175 |
+
);
|
176 |
+
|
177 |
+
$this->start_controls_tabs( 'tabs_field_state' );
|
178 |
+
|
179 |
+
$this->start_controls_tab(
|
180 |
+
'tab_field_normal',
|
181 |
+
[
|
182 |
+
'label' => __( 'Normal', 'happy-elementor-addons' ),
|
183 |
+
]
|
184 |
+
);
|
185 |
+
|
186 |
+
$this->add_group_control(
|
187 |
+
Group_Control_Border::get_type(),
|
188 |
+
[
|
189 |
+
'name' => 'field_border',
|
190 |
+
'selector' => '{{WRAPPER}} .textbox-wrap input[type=text], {{WRAPPER}} .email-wrap input, {{WRAPPER}} .textarea-wrap textarea',
|
191 |
+
]
|
192 |
+
);
|
193 |
+
|
194 |
+
$this->add_group_control(
|
195 |
+
Group_Control_Box_Shadow::get_type(),
|
196 |
+
[
|
197 |
+
'name' => 'field_box_shadow',
|
198 |
+
'selector' => '{{WRAPPER}} .textbox-wrap input[type=text], {{WRAPPER}} .email-wrap input, {{WRAPPER}} .textarea-wrap textarea',
|
199 |
+
]
|
200 |
+
);
|
201 |
+
|
202 |
+
$this->add_control(
|
203 |
+
'field_bg_color',
|
204 |
+
[
|
205 |
+
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
206 |
+
'type' => Controls_Manager::COLOR,
|
207 |
+
'selectors' => [
|
208 |
+
'{{WRAPPER}} .textbox-wrap input[type=text], {{WRAPPER}} .email-wrap input, {{WRAPPER}} .textarea-wrap textarea' => 'background-color: {{VALUE}}',
|
209 |
+
],
|
210 |
+
]
|
211 |
+
);
|
212 |
+
|
213 |
+
$this->end_controls_tab();
|
214 |
+
|
215 |
+
$this->start_controls_tab(
|
216 |
+
'tab_field_focus',
|
217 |
+
[
|
218 |
+
'label' => __( 'Focus', 'happy-elementor-addons' ),
|
219 |
+
]
|
220 |
+
);
|
221 |
+
|
222 |
+
$this->add_group_control(
|
223 |
+
Group_Control_Border::get_type(),
|
224 |
+
[
|
225 |
+
'name' => 'field_focus_border',
|
226 |
+
'selector' => '{{WRAPPER}} .textbox-wrap input[type=text]:focus, {{WRAPPER}} .email-wrap input:focus, {{WRAPPER}} .textarea-wrap textarea:focus',
|
227 |
+
]
|
228 |
+
);
|
229 |
+
|
230 |
+
$this->add_group_control(
|
231 |
+
Group_Control_Box_Shadow::get_type(),
|
232 |
+
[
|
233 |
+
'name' => 'field_focus_box_shadow',
|
234 |
+
'exclude' => [
|
235 |
+
'box_shadow_position',
|
236 |
+
],
|
237 |
+
'selector' => '{{WRAPPER}} .textbox-wrap input[type=text]:focus, {{WRAPPER}} .email-wrap input:focus, {{WRAPPER}} .textarea-wrap textarea:focus',
|
238 |
+
]
|
239 |
+
);
|
240 |
+
|
241 |
+
$this->add_control(
|
242 |
+
'field_focus_bg_color',
|
243 |
+
[
|
244 |
+
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
245 |
+
'type' => Controls_Manager::COLOR,
|
246 |
+
'selectors' => [
|
247 |
+
'{{WRAPPER}} .textbox-wrap input[type=text]:focus, {{WRAPPER}} .email-wrap input:focus, {{WRAPPER}} .textarea-wrap textarea:focus' => 'background-color: {{VALUE}}',
|
248 |
+
],
|
249 |
+
]
|
250 |
+
);
|
251 |
+
|
252 |
+
$this->end_controls_tab();
|
253 |
+
$this->end_controls_tabs();
|
254 |
+
|
255 |
+
|
256 |
+
$this->end_controls_section();
|
257 |
+
|
258 |
+
$this->start_controls_section(
|
259 |
+
'ninjaf-form-label',
|
260 |
+
[
|
261 |
+
'label' => __( 'Form Fields Label', 'happy-elementor-addons' ),
|
262 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
263 |
+
]
|
264 |
+
);
|
265 |
+
|
266 |
+
$this->add_responsive_control(
|
267 |
+
'label_margin',
|
268 |
+
[
|
269 |
+
'label' => __( 'Margin', 'happy-elementor-addons' ),
|
270 |
+
'type' => Controls_Manager::DIMENSIONS,
|
271 |
+
'size_units' => [ 'px', '%' ],
|
272 |
+
'selectors' => [
|
273 |
+
'{{WRAPPER}} .textbox-wrap label, {{WRAPPER}} .email-wrap label, {{WRAPPER}} .textarea-wrap label' => 'display: inline-block; padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
274 |
+
],
|
275 |
+
]
|
276 |
+
);
|
277 |
+
|
278 |
+
$this->add_responsive_control(
|
279 |
+
'label_padding',
|
280 |
+
[
|
281 |
+
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
282 |
+
'type' => Controls_Manager::DIMENSIONS,
|
283 |
+
'size_units' => [ 'px', 'em', '%' ],
|
284 |
+
'selectors' => [
|
285 |
+
'{{WRAPPER}} .textbox-wrap label, {{WRAPPER}} .email-wrap label, {{WRAPPER}} .textarea-wrap label' => 'display: inline-block; padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
286 |
+
],
|
287 |
+
]
|
288 |
+
);
|
289 |
+
|
290 |
+
$this->add_control(
|
291 |
+
'hr3',
|
292 |
+
[
|
293 |
+
'type' => Controls_Manager::DIVIDER,
|
294 |
+
'style' => 'thick',
|
295 |
+
]
|
296 |
+
);
|
297 |
+
|
298 |
+
$this->add_group_control(
|
299 |
+
Group_Control_Typography::get_type(),
|
300 |
+
[
|
301 |
+
'name' => 'label_typography',
|
302 |
+
'label' => __( 'Label Typography', 'happy-elementor-addons' ),
|
303 |
+
'selector' => '{{WRAPPER}} .textbox-wrap label, {{WRAPPER}} .email-wrap label, {{WRAPPER}} .textarea-wrap label',
|
304 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_3
|
305 |
+
]
|
306 |
+
);
|
307 |
+
|
308 |
+
$this->add_group_control(
|
309 |
+
Group_Control_Typography::get_type(),
|
310 |
+
[
|
311 |
+
'name' => 'desc_typography',
|
312 |
+
'label' => __( 'Description Typography', 'happy-elementor-addons' ),
|
313 |
+
'selector' => '{{WRAPPER}} .nf-field-description p',
|
314 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_3
|
315 |
+
]
|
316 |
+
);
|
317 |
+
|
318 |
+
$this->add_control(
|
319 |
+
'label_color',
|
320 |
+
[
|
321 |
+
'label' => __( 'Label Text Color', 'happy-elementor-addons' ),
|
322 |
+
'type' => Controls_Manager::COLOR,
|
323 |
+
'selectors' => [
|
324 |
+
'{{WRAPPER}} .textbox-wrap label, {{WRAPPER}} .email-wrap label, {{WRAPPER}} .textarea-wrap label' => 'color: {{VALUE}}',
|
325 |
+
],
|
326 |
+
]
|
327 |
+
);
|
328 |
+
|
329 |
+
$this->add_control(
|
330 |
+
'requered_label',
|
331 |
+
[
|
332 |
+
'label' => __( 'Required Label Color', 'happy-elementor-addons' ),
|
333 |
+
'type' => Controls_Manager::COLOR,
|
334 |
+
'selectors' => [
|
335 |
+
'{{WRAPPER}} .ninja-forms-req-symbol' => 'color: {{VALUE}}',
|
336 |
+
],
|
337 |
+
]
|
338 |
+
);
|
339 |
+
|
340 |
+
$this->add_control(
|
341 |
+
'desc_color',
|
342 |
+
[
|
343 |
+
'label' => __( 'Description Text Color', 'happy-elementor-addons' ),
|
344 |
+
'type' => Controls_Manager::COLOR,
|
345 |
+
'selectors' => [
|
346 |
+
'{{WRAPPER}} .nf-field-description p' => 'color: {{VALUE}}',
|
347 |
+
],
|
348 |
+
]
|
349 |
+
);
|
350 |
+
|
351 |
+
$this->end_controls_section();
|
352 |
+
|
353 |
+
$this->start_controls_section(
|
354 |
+
'submit',
|
355 |
+
[
|
356 |
+
'label' => __( 'Submit Button', 'happy-elementor-addons' ),
|
357 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
358 |
+
]
|
359 |
+
);
|
360 |
+
|
361 |
+
$this->add_responsive_control(
|
362 |
+
'submit_btn_position',
|
363 |
+
[
|
364 |
+
'label' => __( 'Button Position', 'happy-elementor-addons' ),
|
365 |
+
'type' => Controls_Manager::CHOOSE,
|
366 |
+
'options' => [
|
367 |
+
'left' => [
|
368 |
+
'title' => __( 'Left', 'happy-elementor-addons' ),
|
369 |
+
'icon' => 'eicon-h-align-left',
|
370 |
+
],
|
371 |
+
'center' => [
|
372 |
+
'title' => __( 'Center', 'happy-elementor-addons' ),
|
373 |
+
'icon' => 'eicon-h-align-center',
|
374 |
+
],
|
375 |
+
'right' => [
|
376 |
+
'title' => __( 'Right', 'happy-elementor-addons' ),
|
377 |
+
'icon' => 'eicon-h-align-right',
|
378 |
+
],
|
379 |
+
],
|
380 |
+
'desktop_default' => 'left',
|
381 |
+
'toggle' => false,
|
382 |
+
'prefix_class' => 'ha-form-btn--%s',
|
383 |
+
'selectors' => [
|
384 |
+
'{{WRAPPER}} .field-wrap.submit-wrap' => 'text-align: {{Value}};',
|
385 |
+
],
|
386 |
+
]
|
387 |
+
);
|
388 |
+
|
389 |
+
$this->add_responsive_control(
|
390 |
+
'submit_margin',
|
391 |
+
[
|
392 |
+
'label' => __( 'Margin', 'happy-elementor-addons' ),
|
393 |
+
'type' => Controls_Manager::DIMENSIONS,
|
394 |
+
'size_units' => [ 'px', '%' ],
|
395 |
+
'selectors' => [
|
396 |
+
'{{WRAPPER}} .submit-container input' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
397 |
+
],
|
398 |
+
]
|
399 |
+
);
|
400 |
+
|
401 |
+
$this->add_responsive_control(
|
402 |
+
'submit_padding',
|
403 |
+
[
|
404 |
+
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
405 |
+
'type' => Controls_Manager::DIMENSIONS,
|
406 |
+
'size_units' => [ 'px', 'em', '%' ],
|
407 |
+
'selectors' => [
|
408 |
+
'{{WRAPPER}} .submit-container input' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
409 |
+
],
|
410 |
+
]
|
411 |
+
);
|
412 |
+
|
413 |
+
$this->add_group_control(
|
414 |
+
Group_Control_Typography::get_type(),
|
415 |
+
[
|
416 |
+
'name' => 'submit_typography',
|
417 |
+
'selector' => '{{WRAPPER}} .submit-container input',
|
418 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_4
|
419 |
+
]
|
420 |
+
);
|
421 |
+
|
422 |
+
$this->add_group_control(
|
423 |
+
Group_Control_Border::get_type(),
|
424 |
+
[
|
425 |
+
'name' => 'submit_border',
|
426 |
+
'selector' => '{{WRAPPER}} .submit-container input',
|
427 |
+
]
|
428 |
+
);
|
429 |
+
|
430 |
+
$this->add_control(
|
431 |
+
'submit_border_radius',
|
432 |
+
[
|
433 |
+
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
434 |
+
'type' => Controls_Manager::DIMENSIONS,
|
435 |
+
'size_units' => [ 'px', '%' ],
|
436 |
+
'selectors' => [
|
437 |
+
'{{WRAPPER}} .submit-container input' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
438 |
+
],
|
439 |
+
]
|
440 |
+
);
|
441 |
+
|
442 |
+
$this->add_group_control(
|
443 |
+
Group_Control_Box_Shadow::get_type(),
|
444 |
+
[
|
445 |
+
'name' => 'submit_box_shadow',
|
446 |
+
'selector' => '{{WRAPPER}} .submit-container input',
|
447 |
+
]
|
448 |
+
);
|
449 |
+
|
450 |
+
$this->add_control(
|
451 |
+
'hr4',
|
452 |
+
[
|
453 |
+
'type' => Controls_Manager::DIVIDER,
|
454 |
+
'style' => 'thick',
|
455 |
+
]
|
456 |
+
);
|
457 |
+
|
458 |
+
$this->start_controls_tabs( 'tabs_button_style' );
|
459 |
+
|
460 |
+
$this->start_controls_tab(
|
461 |
+
'tab_button_normal',
|
462 |
+
[
|
463 |
+
'label' => __( 'Normal', 'happy-elementor-addons' ),
|
464 |
+
]
|
465 |
+
);
|
466 |
+
|
467 |
+
$this->add_control(
|
468 |
+
'submit_color',
|
469 |
+
[
|
470 |
+
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
471 |
+
'type' => Controls_Manager::COLOR,
|
472 |
+
'default' => '',
|
473 |
+
'selectors' => [
|
474 |
+
'{{WRAPPER}} .submit-container input' => 'color: {{VALUE}};',
|
475 |
+
],
|
476 |
+
]
|
477 |
+
);
|
478 |
+
|
479 |
+
$this->add_control(
|
480 |
+
'submit_bg_color',
|
481 |
+
[
|
482 |
+
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
483 |
+
'type' => Controls_Manager::COLOR,
|
484 |
+
'selectors' => [
|
485 |
+
'{{WRAPPER}} .submit-container input' => 'background-color: {{VALUE}};',
|
486 |
+
],
|
487 |
+
]
|
488 |
+
);
|
489 |
+
|
490 |
+
$this->end_controls_tab();
|
491 |
+
|
492 |
+
$this->start_controls_tab(
|
493 |
+
'tab_button_hover',
|
494 |
+
[
|
495 |
+
'label' => __( 'Hover', 'happy-elementor-addons' ),
|
496 |
+
]
|
497 |
+
);
|
498 |
+
|
499 |
+
$this->add_control(
|
500 |
+
'submit_hover_color',
|
501 |
+
[
|
502 |
+
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
503 |
+
'type' => Controls_Manager::COLOR,
|
504 |
+
'selectors' => [
|
505 |
+
'{{WRAPPER}} .submit-container input:hover, {{WRAPPER}} .submit-container input:focus' => 'color: {{VALUE}};',
|
506 |
+
],
|
507 |
+
]
|
508 |
+
);
|
509 |
+
|
510 |
+
$this->add_control(
|
511 |
+
'submit_hover_bg_color',
|
512 |
+
[
|
513 |
+
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
514 |
+
'type' => Controls_Manager::COLOR,
|
515 |
+
'selectors' => [
|
516 |
+
'{{WRAPPER}} .submit-container input:hover, {{WRAPPER}} .submit-container input:focus' => 'background-color: {{VALUE}};',
|
517 |
+
],
|
518 |
+
]
|
519 |
+
);
|
520 |
+
|
521 |
+
$this->add_control(
|
522 |
+
'submit_hover_border_color',
|
523 |
+
[
|
524 |
+
'label' => __( 'Border Color', 'happy-elementor-addons' ),
|
525 |
+
'type' => Controls_Manager::COLOR,
|
526 |
+
'selectors' => [
|
527 |
+
'{{WRAPPER}} .submit-container input:hover, {{WRAPPER}} .submit-container input:focus' => 'border-color: {{VALUE}};',
|
528 |
+
],
|
529 |
+
]
|
530 |
+
);
|
531 |
+
|
532 |
+
$this->end_controls_tab();
|
533 |
+
$this->end_controls_tabs();
|
534 |
+
|
535 |
+
$this->end_controls_section();
|
536 |
+
}
|
537 |
+
|
538 |
+
protected function render() {
|
539 |
+
if ( ! ha_is_ninjaforms_activated() ) {
|
540 |
+
return;
|
541 |
+
}
|
542 |
+
|
543 |
+
$settings = $this->get_settings_for_display();
|
544 |
+
|
545 |
+
if ( ! empty( $settings['form_id'] ) ) {
|
546 |
+
echo ha_do_shortcode( 'ninja_form', [
|
547 |
+
'id' => $settings['form_id'],
|
548 |
+
] );
|
549 |
+
}
|
550 |
+
}
|
551 |
+
}
|
widgets/number/widget.php
CHANGED
@@ -1,369 +1,369 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Number widget class
|
4 |
-
*
|
5 |
-
* @package Happy_Addons
|
6 |
-
*/
|
7 |
-
namespace Happy_Addons\Elementor\Widget;
|
8 |
-
|
9 |
-
use Elementor\Scheme_Typography;
|
10 |
-
use Elementor\Utils;
|
11 |
-
use Elementor\Control_Media;
|
12 |
-
use Elementor\Controls_Manager;
|
13 |
-
use Elementor\Group_Control_Border;
|
14 |
-
use Elementor\Group_Control_Box_Shadow;
|
15 |
-
use Elementor\Group_Control_Image_Size;
|
16 |
-
use Elementor\Group_Control_Typography;
|
17 |
-
use Elementor\Group_Control_Background;
|
18 |
-
use Elementor\Group_Control_Text_Shadow;
|
19 |
-
use Happy_Addons\Elementor\Controls\Group_Control_Foreground;
|
20 |
-
|
21 |
-
defined( 'ABSPATH' ) || die();
|
22 |
-
|
23 |
-
class Number extends Base {
|
24 |
-
|
25 |
-
/**
|
26 |
-
* Get widget title.
|
27 |
-
*
|
28 |
-
* @since 1.0.0
|
29 |
-
* @access public
|
30 |
-
*
|
31 |
-
* @return string Widget title.
|
32 |
-
*/
|
33 |
-
public function get_title() {
|
34 |
-
return __( 'Number', 'happy-elementor-addons' );
|
35 |
-
}
|
36 |
-
|
37 |
-
public function get_custom_help_url() {
|
38 |
-
return 'https://happyaddons.com/docs/happy-addons-for-elementor/widgets/number/';
|
39 |
-
}
|
40 |
-
|
41 |
-
/**
|
42 |
-
* Get widget icon.
|
43 |
-
*
|
44 |
-
* @since 1.0.0
|
45 |
-
* @access public
|
46 |
-
*
|
47 |
-
* @return string Widget icon.
|
48 |
-
*/
|
49 |
-
public function get_icon() {
|
50 |
-
return 'hm hm-madel';
|
51 |
-
}
|
52 |
-
|
53 |
-
public function get_keywords() {
|
54 |
-
return [ 'number', 'animate', 'text' ];
|
55 |
-
}
|
56 |
-
|
57 |
-
/**
|
58 |
-
* Register content related controls
|
59 |
-
*/
|
60 |
-
protected function register_content_controls() {
|
61 |
-
$this->start_controls_section(
|
62 |
-
'_section_number',
|
63 |
-
[
|
64 |
-
'label' => __( 'Number', 'happy-elementor-addons' ),
|
65 |
-
'tab' => Controls_Manager::TAB_CONTENT,
|
66 |
-
]
|
67 |
-
);
|
68 |
-
|
69 |
-
$this->add_control(
|
70 |
-
'number_text',
|
71 |
-
[
|
72 |
-
'label' => __( 'Text', 'happy-elementor-addons' ),
|
73 |
-
'label_block' => false,
|
74 |
-
'type' => Controls_Manager::TEXT,
|
75 |
-
'default' => 7,
|
76 |
-
'dynamic' => [
|
77 |
-
'active' => true,
|
78 |
-
]
|
79 |
-
]
|
80 |
-
);
|
81 |
-
|
82 |
-
$this->add_control(
|
83 |
-
'animate_number',
|
84 |
-
[
|
85 |
-
'label' => __( 'Animate', 'happy-elementor-addons' ),
|
86 |
-
'description' => __( 'Only number is animatable' ),
|
87 |
-
'type' => Controls_Manager::SWITCHER,
|
88 |
-
'label_on' => __( 'Yes', 'happy-elementor-addons' ),
|
89 |
-
'label_off' => __( 'No', 'happy-elementor-addons' ),
|
90 |
-
'return_value' => 'yes',
|
91 |
-
'separator' => 'before',
|
92 |
-
]
|
93 |
-
);
|
94 |
-
|
95 |
-
$this->add_control(
|
96 |
-
'animate_duration',
|
97 |
-
[
|
98 |
-
'label' => __( 'Duration', 'happy-elementor-addons' ),
|
99 |
-
'type' => Controls_Manager::NUMBER,
|
100 |
-
'min' => 100,
|
101 |
-
'max' => 10000,
|
102 |
-
'step' => 10,
|
103 |
-
'default' => 500,
|
104 |
-
'condition' => [
|
105 |
-
'animate_number!' => ''
|
106 |
-
],
|
107 |
-
]
|
108 |
-
);
|
109 |
-
|
110 |
-
$this->end_controls_section();
|
111 |
-
}
|
112 |
-
|
113 |
-
/**
|
114 |
-
* Register styles related controls
|
115 |
-
*/
|
116 |
-
protected function register_style_controls() {
|
117 |
-
$this->start_controls_section(
|
118 |
-
'number_background_style',
|
119 |
-
[
|
120 |
-
'label' => __( 'General', 'happy-elementor-addons' ),
|
121 |
-
'tab' => Controls_Manager::TAB_STYLE,
|
122 |
-
]
|
123 |
-
);
|
124 |
-
|
125 |
-
$this->add_responsive_control(
|
126 |
-
'number_width_height',
|
127 |
-
[
|
128 |
-
'label' => __( 'Size', 'happy-elementor-addons' ),
|
129 |
-
'type' => Controls_Manager::SLIDER,
|
130 |
-
'size_units' => [ 'px' ],
|
131 |
-
'range' => [
|
132 |
-
'px' => [
|
133 |
-
'min' => 0,
|
134 |
-
'max' => 500,
|
135 |
-
],
|
136 |
-
],
|
137 |
-
'selectors' => [
|
138 |
-
'{{WRAPPER}} .ha-number-body' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};',
|
139 |
-
],
|
140 |
-
]
|
141 |
-
);
|
142 |
-
|
143 |
-
$this->add_control(
|
144 |
-
'number_padding',
|
145 |
-
[
|
146 |
-
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
147 |
-
'type' => Controls_Manager::DIMENSIONS,
|
148 |
-
'size_units' => [ 'px', '%', 'em' ],
|
149 |
-
'selectors' => [
|
150 |
-
'{{WRAPPER}} .ha-number-body ' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
151 |
-
],
|
152 |
-
]
|
153 |
-
);
|
154 |
-
|
155 |
-
$this->add_group_control(
|
156 |
-
Group_Control_Border::get_type(),
|
157 |
-
[
|
158 |
-
'name' => 'number_border',
|
159 |
-
'label' => __( 'Border', 'happy-elementor-addons' ),
|
160 |
-
'selector' => '{{WRAPPER}} .ha-number-body',
|
161 |
-
]
|
162 |
-
);
|
163 |
-
|
164 |
-
$this->add_control(
|
165 |
-
'number_border_radius',
|
166 |
-
[
|
167 |
-
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
168 |
-
'type' => Controls_Manager::DIMENSIONS,
|
169 |
-
'size_units' => [ 'px', '%' ],
|
170 |
-
'selectors' => [
|
171 |
-
'{{WRAPPER}} .ha-number-body' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
172 |
-
],
|
173 |
-
]
|
174 |
-
);
|
175 |
-
|
176 |
-
$this->add_group_control(
|
177 |
-
Group_Control_Box_Shadow::get_type(),
|
178 |
-
[
|
179 |
-
'name' => 'number_box_shadow',
|
180 |
-
'label' => __( 'Box Shadow', 'happy-elementor-addons' ),
|
181 |
-
'selector' => '{{WRAPPER}} .ha-number-body',
|
182 |
-
]
|
183 |
-
);
|
184 |
-
|
185 |
-
$this->add_responsive_control(
|
186 |
-
'number_align',
|
187 |
-
[
|
188 |
-
'label' => __( 'Alignment', 'happy-elementor-addons' ),
|
189 |
-
'type' => Controls_Manager::CHOOSE,
|
190 |
-
'options' => [
|
191 |
-
'left' => [
|
192 |
-
'title' => __( 'Left', 'happy-elementor-addons' ),
|
193 |
-
'icon' => 'fa fa-align-left',
|
194 |
-
],
|
195 |
-
'center' => [
|
196 |
-
'title' => __( 'Center', 'happy-elementor-addons' ),
|
197 |
-
'icon' => 'fa fa-align-center',
|
198 |
-
],
|
199 |
-
'right' => [
|
200 |
-
'title' => __( 'Right', 'happy-elementor-addons' ),
|
201 |
-
'icon' => 'fa fa-align-right',
|
202 |
-
],
|
203 |
-
],
|
204 |
-
'toggle' => true,
|
205 |
-
'selectors' => [
|
206 |
-
'{{WRAPPER}} .ha-number-body' => '{{VALUE}};'
|
207 |
-
],
|
208 |
-
'selectors_dictionary' => [
|
209 |
-
'left' => 'float: left',
|
210 |
-
'center' => 'margin: 0 auto',
|
211 |
-
'right' => 'float:right'
|
212 |
-
],
|
213 |
-
]
|
214 |
-
);
|
215 |
-
|
216 |
-
$this->add_control(
|
217 |
-
'_heading_bg',
|
218 |
-
[
|
219 |
-
'label' => __( 'Background', 'happy-elementor-addons' ),
|
220 |
-
'type' => Controls_Manager::HEADING,
|
221 |
-
'separator' => 'before',
|
222 |
-
]
|
223 |
-
);
|
224 |
-
|
225 |
-
$this->add_group_control(
|
226 |
-
Group_Control_Background::get_type(),
|
227 |
-
[
|
228 |
-
'name' => 'number_background_color',
|
229 |
-
'types' => [ 'classic', 'gradient' ],
|
230 |
-
'selector' => '{{WRAPPER}} .ha-number-body',
|
231 |
-
]
|
232 |
-
);
|
233 |
-
|
234 |
-
$this->add_control(
|
235 |
-
'_heading_bg_overlay',
|
236 |
-
[
|
237 |
-
'label' => __( 'Background Overaly', 'happy-elementor-addons' ),
|
238 |
-
'type' => Controls_Manager::HEADING,
|
239 |
-
'separator' => 'before',
|
240 |
-
]
|
241 |
-
);
|
242 |
-
|
243 |
-
$this->add_group_control(
|
244 |
-
Group_Control_Background::get_type(),
|
245 |
-
[
|
246 |
-
'name' => 'number_background_overlay_color',
|
247 |
-
'label' => __( 'Background', 'happy-elementor-addons' ),
|
248 |
-
'types' => [ 'classic', 'gradient' ],
|
249 |
-
'selector' => '{{WRAPPER}} .ha-number-overlay',
|
250 |
-
]
|
251 |
-
);
|
252 |
-
|
253 |
-
$this->add_control(
|
254 |
-
'number_background_overlay_blend_mode',
|
255 |
-
[
|
256 |
-
'label' => __( 'Blend Mood', 'happy-elementor-addons' ),
|
257 |
-
'type' => Controls_Manager::SELECT,
|
258 |
-
'default' => 'normal',
|
259 |
-
'options' => ha_get_css_blend_modes(),
|
260 |
-
'selectors' => [
|
261 |
-
'{{WRAPPER}} .ha-number-overlay' => 'mix-blend-mode: {{VALUE}}',
|
262 |
-
],
|
263 |
-
]
|
264 |
-
);
|
265 |
-
|
266 |
-
$this->add_responsive_control(
|
267 |
-
'number_background_overlay_blend_mode_opacity',
|
268 |
-
[
|
269 |
-
'label' => __( 'Opacity', 'happy-elementor-addons' ),
|
270 |
-
'type' => Controls_Manager::SLIDER,
|
271 |
-
'size_units' => [ 'px' ],
|
272 |
-
'range' => [
|
273 |
-
'px' => [
|
274 |
-
'min' => 0,
|
275 |
-
'max' => 1,
|
276 |
-
'step' => .1,
|
277 |
-
],
|
278 |
-
],
|
279 |
-
'selectors' => [
|
280 |
-
'{{WRAPPER}} .ha-number-overlay' => 'opacity: {{SIZE}};',
|
281 |
-
],
|
282 |
-
]
|
283 |
-
);
|
284 |
-
|
285 |
-
$this->end_controls_section();
|
286 |
-
|
287 |
-
$this->start_controls_section(
|
288 |
-
'_section_style_text',
|
289 |
-
[
|
290 |
-
'label' => __( 'Text', 'happy-elementor-addons' ),
|
291 |
-
'tab' => Controls_Manager::TAB_STYLE,
|
292 |
-
]
|
293 |
-
);
|
294 |
-
|
295 |
-
$this->add_control(
|
296 |
-
'number_text_color',
|
297 |
-
[
|
298 |
-
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
299 |
-
'type' => Controls_Manager::COLOR,
|
300 |
-
'selectors' => [
|
301 |
-
'{{WRAPPER}} .ha-number-body' => 'color: {{VALUE}};',
|
302 |
-
],
|
303 |
-
]
|
304 |
-
);
|
305 |
-
|
306 |
-
$this->add_group_control(
|
307 |
-
Group_Control_Typography::get_type(),
|
308 |
-
[
|
309 |
-
'name' => 'number_text_typography',
|
310 |
-
'label' => __( 'Typography', 'happy-elementor-addons' ),
|
311 |
-
'selector' => '{{WRAPPER}} .ha-number-text',
|
312 |
-
'scheme' => Scheme_Typography::TYPOGRAPHY_3,
|
313 |
-
]
|
314 |
-
);
|
315 |
-
|
316 |
-
$this->add_group_control(
|
317 |
-
Group_Control_Text_Shadow::get_type(),
|
318 |
-
[
|
319 |
-
'name' => 'number_text_shadow',
|
320 |
-
'label' => __( 'Text Shadow', 'happy-elementor-addons' ),
|
321 |
-
'selector' => '{{WRAPPER}} .ha-number-text',
|
322 |
-
]
|
323 |
-
);
|
324 |
-
|
325 |
-
$this->add_control(
|
326 |
-
'number_text_rotate',
|
327 |
-
[
|
328 |
-
'label' => __( 'Text Rotate', 'happy-elementor-addons' ),
|
329 |
-
'type' => Controls_Manager::SLIDER,
|
330 |
-
'size_units' => [ 'px' ],
|
331 |
-
'range' => [
|
332 |
-
'px' => [
|
333 |
-
'min' => 0,
|
334 |
-
'max' => 360,
|
335 |
-
],
|
336 |
-
],
|
337 |
-
'selectors' => [
|
338 |
-
'{{WRAPPER}} .ha-number-text' => '-webkit-transform: rotate({{SIZE}}deg);-ms-transform: rotate({{SIZE}}deg);transform: rotate({{SIZE}}deg);'
|
339 |
-
],
|
340 |
-
]
|
341 |
-
);
|
342 |
-
|
343 |
-
$this->end_controls_section();
|
344 |
-
}
|
345 |
-
|
346 |
-
protected function render() {
|
347 |
-
$settings = $this->get_settings_for_display();
|
348 |
-
|
349 |
-
$this->add_render_attribute( 'number_text', 'class', 'ha-number-text' );
|
350 |
-
$number = $settings['number_text'];
|
351 |
-
|
352 |
-
if ( $settings['animate_number'] ) {
|
353 |
-
$data = [
|
354 |
-
'toValue' => intval( $settings['number_text'] ),
|
355 |
-
'duration' => intval( $settings['animate_duration'] ),
|
356 |
-
];
|
357 |
-
$this->add_render_attribute( 'number_text', 'data-animation', wp_json_encode( $data ) );
|
358 |
-
$number = 0;
|
359 |
-
}
|
360 |
-
?>
|
361 |
-
|
362 |
-
<div class="ha-number-body">
|
363 |
-
<div class="ha-number-overlay"></div>
|
364 |
-
<span <?php $this->print_render_attribute_string( 'number_text' ); ?>><?php echo esc_html( $number ); ?></span>
|
365 |
-
</div>
|
366 |
-
|
367 |
-
<?php
|
368 |
-
}
|
369 |
-
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Number widget class
|
4 |
+
*
|
5 |
+
* @package Happy_Addons
|
6 |
+
*/
|
7 |
+
namespace Happy_Addons\Elementor\Widget;
|
8 |
+
|
9 |
+
use Elementor\Scheme_Typography;
|
10 |
+
use Elementor\Utils;
|
11 |
+
use Elementor\Control_Media;
|
12 |
+
use Elementor\Controls_Manager;
|
13 |
+
use Elementor\Group_Control_Border;
|
14 |
+
use Elementor\Group_Control_Box_Shadow;
|
15 |
+
use Elementor\Group_Control_Image_Size;
|
16 |
+
use Elementor\Group_Control_Typography;
|
17 |
+
use Elementor\Group_Control_Background;
|
18 |
+
use Elementor\Group_Control_Text_Shadow;
|
19 |
+
use Happy_Addons\Elementor\Controls\Group_Control_Foreground;
|
20 |
+
|
21 |
+
defined( 'ABSPATH' ) || die();
|
22 |
+
|
23 |
+
class Number extends Base {
|
24 |
+
|
25 |
+
/**
|
26 |
+
* Get widget title.
|
27 |
+
*
|
28 |
+
* @since 1.0.0
|
29 |
+
* @access public
|
30 |
+
*
|
31 |
+
* @return string Widget title.
|
32 |
+
*/
|
33 |
+
public function get_title() {
|
34 |
+
return __( 'Number', 'happy-elementor-addons' );
|
35 |
+
}
|
36 |
+
|
37 |
+
public function get_custom_help_url() {
|
38 |
+
return 'https://happyaddons.com/docs/happy-addons-for-elementor/widgets/number/';
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* Get widget icon.
|
43 |
+
*
|
44 |
+
* @since 1.0.0
|
45 |
+
* @access public
|
46 |
+
*
|
47 |
+
* @return string Widget icon.
|
48 |
+
*/
|
49 |
+
public function get_icon() {
|
50 |
+
return 'hm hm-madel';
|
51 |
+
}
|
52 |
+
|
53 |
+
public function get_keywords() {
|
54 |
+
return [ 'number', 'animate', 'text' ];
|
55 |
+
}
|
56 |
+
|
57 |
+
/**
|
58 |
+
* Register content related controls
|
59 |
+
*/
|
60 |
+
protected function register_content_controls() {
|
61 |
+
$this->start_controls_section(
|
62 |
+
'_section_number',
|
63 |
+
[
|
64 |
+
'label' => __( 'Number', 'happy-elementor-addons' ),
|
65 |
+
'tab' => Controls_Manager::TAB_CONTENT,
|
66 |
+
]
|
67 |
+
);
|
68 |
+
|
69 |
+
$this->add_control(
|
70 |
+
'number_text',
|
71 |
+
[
|
72 |
+
'label' => __( 'Text', 'happy-elementor-addons' ),
|
73 |
+
'label_block' => false,
|
74 |
+
'type' => Controls_Manager::TEXT,
|
75 |
+
'default' => 7,
|
76 |
+
'dynamic' => [
|
77 |
+
'active' => true,
|
78 |
+
]
|
79 |
+
]
|
80 |
+
);
|
81 |
+
|
82 |
+
$this->add_control(
|
83 |
+
'animate_number',
|
84 |
+
[
|
85 |
+
'label' => __( 'Animate', 'happy-elementor-addons' ),
|
86 |
+
'description' => __( 'Only number is animatable' ),
|
87 |
+
'type' => Controls_Manager::SWITCHER,
|
88 |
+
'label_on' => __( 'Yes', 'happy-elementor-addons' ),
|
89 |
+
'label_off' => __( 'No', 'happy-elementor-addons' ),
|
90 |
+
'return_value' => 'yes',
|
91 |
+
'separator' => 'before',
|
92 |
+
]
|
93 |
+
);
|
94 |
+
|
95 |
+
$this->add_control(
|
96 |
+
'animate_duration',
|
97 |
+
[
|
98 |
+
'label' => __( 'Duration', 'happy-elementor-addons' ),
|
99 |
+
'type' => Controls_Manager::NUMBER,
|
100 |
+
'min' => 100,
|
101 |
+
'max' => 10000,
|
102 |
+
'step' => 10,
|
103 |
+
'default' => 500,
|
104 |
+
'condition' => [
|
105 |
+
'animate_number!' => ''
|
106 |
+
],
|
107 |
+
]
|
108 |
+
);
|
109 |
+
|
110 |
+
$this->end_controls_section();
|
111 |
+
}
|
112 |
+
|
113 |
+
/**
|
114 |
+
* Register styles related controls
|
115 |
+
*/
|
116 |
+
protected function register_style_controls() {
|
117 |
+
$this->start_controls_section(
|
118 |
+
'number_background_style',
|
119 |
+
[
|
120 |
+
'label' => __( 'General', 'happy-elementor-addons' ),
|
121 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
122 |
+
]
|
123 |
+
);
|
124 |
+
|
125 |
+
$this->add_responsive_control(
|
126 |
+
'number_width_height',
|
127 |
+
[
|
128 |
+
'label' => __( 'Size', 'happy-elementor-addons' ),
|
129 |
+
'type' => Controls_Manager::SLIDER,
|
130 |
+
'size_units' => [ 'px' ],
|
131 |
+
'range' => [
|
132 |
+
'px' => [
|
133 |
+
'min' => 0,
|
134 |
+
'max' => 500,
|
135 |
+
],
|
136 |
+
],
|
137 |
+
'selectors' => [
|
138 |
+
'{{WRAPPER}} .ha-number-body' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};',
|
139 |
+
],
|
140 |
+
]
|
141 |
+
);
|
142 |
+
|
143 |
+
$this->add_control(
|
144 |
+
'number_padding',
|
145 |
+
[
|
146 |
+
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
147 |
+
'type' => Controls_Manager::DIMENSIONS,
|
148 |
+
'size_units' => [ 'px', '%', 'em' ],
|
149 |
+
'selectors' => [
|
150 |
+
'{{WRAPPER}} .ha-number-body ' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
151 |
+
],
|
152 |
+
]
|
153 |
+
);
|
154 |
+
|
155 |
+
$this->add_group_control(
|
156 |
+
Group_Control_Border::get_type(),
|
157 |
+
[
|
158 |
+
'name' => 'number_border',
|
159 |
+
'label' => __( 'Border', 'happy-elementor-addons' ),
|
160 |
+
'selector' => '{{WRAPPER}} .ha-number-body',
|
161 |
+
]
|
162 |
+
);
|
163 |
+
|
164 |
+
$this->add_control(
|
165 |
+
'number_border_radius',
|
166 |
+
[
|
167 |
+
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
168 |
+
'type' => Controls_Manager::DIMENSIONS,
|
169 |
+
'size_units' => [ 'px', '%' ],
|
170 |
+
'selectors' => [
|
171 |
+
'{{WRAPPER}} .ha-number-body' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
172 |
+
],
|
173 |
+
]
|
174 |
+
);
|
175 |
+
|
176 |
+
$this->add_group_control(
|
177 |
+
Group_Control_Box_Shadow::get_type(),
|
178 |
+
[
|
179 |
+
'name' => 'number_box_shadow',
|
180 |
+
'label' => __( 'Box Shadow', 'happy-elementor-addons' ),
|
181 |
+
'selector' => '{{WRAPPER}} .ha-number-body',
|
182 |
+
]
|
183 |
+
);
|
184 |
+
|
185 |
+
$this->add_responsive_control(
|
186 |
+
'number_align',
|
187 |
+
[
|
188 |
+
'label' => __( 'Alignment', 'happy-elementor-addons' ),
|
189 |
+
'type' => Controls_Manager::CHOOSE,
|
190 |
+
'options' => [
|
191 |
+
'left' => [
|
192 |
+
'title' => __( 'Left', 'happy-elementor-addons' ),
|
193 |
+
'icon' => 'fa fa-align-left',
|
194 |
+
],
|
195 |
+
'center' => [
|
196 |
+
'title' => __( 'Center', 'happy-elementor-addons' ),
|
197 |
+
'icon' => 'fa fa-align-center',
|
198 |
+
],
|
199 |
+
'right' => [
|
200 |
+
'title' => __( 'Right', 'happy-elementor-addons' ),
|
201 |
+
'icon' => 'fa fa-align-right',
|
202 |
+
],
|
203 |
+
],
|
204 |
+
'toggle' => true,
|
205 |
+
'selectors' => [
|
206 |
+
'{{WRAPPER}} .ha-number-body' => '{{VALUE}};'
|
207 |
+
],
|
208 |
+
'selectors_dictionary' => [
|
209 |
+
'left' => 'float: left',
|
210 |
+
'center' => 'margin: 0 auto',
|
211 |
+
'right' => 'float:right'
|
212 |
+
],
|
213 |
+
]
|
214 |
+
);
|
215 |
+
|
216 |
+
$this->add_control(
|
217 |
+
'_heading_bg',
|
218 |
+
[
|
219 |
+
'label' => __( 'Background', 'happy-elementor-addons' ),
|
220 |
+
'type' => Controls_Manager::HEADING,
|
221 |
+
'separator' => 'before',
|
222 |
+
]
|
223 |
+
);
|
224 |
+
|
225 |
+
$this->add_group_control(
|
226 |
+
Group_Control_Background::get_type(),
|
227 |
+
[
|
228 |
+
'name' => 'number_background_color',
|
229 |
+
'types' => [ 'classic', 'gradient' ],
|
230 |
+
'selector' => '{{WRAPPER}} .ha-number-body',
|
231 |
+
]
|
232 |
+
);
|
233 |
+
|
234 |
+
$this->add_control(
|
235 |
+
'_heading_bg_overlay',
|
236 |
+
[
|
237 |
+
'label' => __( 'Background Overaly', 'happy-elementor-addons' ),
|
238 |
+
'type' => Controls_Manager::HEADING,
|
239 |
+
'separator' => 'before',
|
240 |
+
]
|
241 |
+
);
|
242 |
+
|
243 |
+
$this->add_group_control(
|
244 |
+
Group_Control_Background::get_type(),
|
245 |
+
[
|
246 |
+
'name' => 'number_background_overlay_color',
|
247 |
+
'label' => __( 'Background', 'happy-elementor-addons' ),
|
248 |
+
'types' => [ 'classic', 'gradient' ],
|
249 |
+
'selector' => '{{WRAPPER}} .ha-number-overlay',
|
250 |
+
]
|
251 |
+
);
|
252 |
+
|
253 |
+
$this->add_control(
|
254 |
+
'number_background_overlay_blend_mode',
|
255 |
+
[
|
256 |
+
'label' => __( 'Blend Mood', 'happy-elementor-addons' ),
|
257 |
+
'type' => Controls_Manager::SELECT,
|
258 |
+
'default' => 'normal',
|
259 |
+
'options' => ha_get_css_blend_modes(),
|
260 |
+
'selectors' => [
|
261 |
+
'{{WRAPPER}} .ha-number-overlay' => 'mix-blend-mode: {{VALUE}}',
|
262 |
+
],
|
263 |
+
]
|
264 |
+
);
|
265 |
+
|
266 |
+
$this->add_responsive_control(
|
267 |
+
'number_background_overlay_blend_mode_opacity',
|
268 |
+
[
|
269 |
+
'label' => __( 'Opacity', 'happy-elementor-addons' ),
|
270 |
+
'type' => Controls_Manager::SLIDER,
|
271 |
+
'size_units' => [ 'px' ],
|
272 |
+
'range' => [
|
273 |
+
'px' => [
|
274 |
+
'min' => 0,
|
275 |
+
'max' => 1,
|
276 |
+
'step' => .1,
|
277 |
+
],
|
278 |
+
],
|
279 |
+
'selectors' => [
|
280 |
+
'{{WRAPPER}} .ha-number-overlay' => 'opacity: {{SIZE}};',
|
281 |
+
],
|
282 |
+
]
|
283 |
+
);
|
284 |
+
|
285 |
+
$this->end_controls_section();
|
286 |
+
|
287 |
+
$this->start_controls_section(
|
288 |
+
'_section_style_text',
|
289 |
+
[
|
290 |
+
'label' => __( 'Text', 'happy-elementor-addons' ),
|
291 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
292 |
+
]
|
293 |
+
);
|
294 |
+
|
295 |
+
$this->add_control(
|
296 |
+
'number_text_color',
|
297 |
+
[
|
298 |
+
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
299 |
+
'type' => Controls_Manager::COLOR,
|
300 |
+
'selectors' => [
|
301 |
+
'{{WRAPPER}} .ha-number-body' => 'color: {{VALUE}};',
|
302 |
+
],
|
303 |
+
]
|
304 |
+
);
|
305 |
+
|
306 |
+
$this->add_group_control(
|
307 |
+
Group_Control_Typography::get_type(),
|
308 |
+
[
|
309 |
+
'name' => 'number_text_typography',
|
310 |
+
'label' => __( 'Typography', 'happy-elementor-addons' ),
|
311 |
+
'selector' => '{{WRAPPER}} .ha-number-text',
|
312 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_3,
|
313 |
+
]
|
314 |
+
);
|
315 |
+
|
316 |
+
$this->add_group_control(
|
317 |
+
Group_Control_Text_Shadow::get_type(),
|
318 |
+
[
|
319 |
+
'name' => 'number_text_shadow',
|
320 |
+
'label' => __( 'Text Shadow', 'happy-elementor-addons' ),
|
321 |
+
'selector' => '{{WRAPPER}} .ha-number-text',
|
322 |
+
]
|
323 |
+
);
|
324 |
+
|
325 |
+
$this->add_control(
|
326 |
+
'number_text_rotate',
|
327 |
+
[
|
328 |
+
'label' => __( 'Text Rotate', 'happy-elementor-addons' ),
|
329 |
+
'type' => Controls_Manager::SLIDER,
|
330 |
+
'size_units' => [ 'px' ],
|
331 |
+
'range' => [
|
332 |
+
'px' => [
|
333 |
+
'min' => 0,
|
334 |
+
'max' => 360,
|
335 |
+
],
|
336 |
+
],
|
337 |
+
'selectors' => [
|
338 |
+
'{{WRAPPER}} .ha-number-text' => '-webkit-transform: rotate({{SIZE}}deg);-ms-transform: rotate({{SIZE}}deg);transform: rotate({{SIZE}}deg);'
|
339 |
+
],
|
340 |
+
]
|
341 |
+
);
|
342 |
+
|
343 |
+
$this->end_controls_section();
|
344 |
+
}
|
345 |
+
|
346 |
+
protected function render() {
|
347 |
+
$settings = $this->get_settings_for_display();
|
348 |
+
|
349 |
+
$this->add_render_attribute( 'number_text', 'class', 'ha-number-text' );
|
350 |
+
$number = $settings['number_text'];
|
351 |
+
|
352 |
+
if ( $settings['animate_number'] ) {
|
353 |
+
$data = [
|
354 |
+
'toValue' => intval( $settings['number_text'] ),
|
355 |
+
'duration' => intval( $settings['animate_duration'] ),
|
356 |
+
];
|
357 |
+
$this->add_render_attribute( 'number_text', 'data-animation', wp_json_encode( $data ) );
|
358 |
+
$number = 0;
|
359 |
+
}
|
360 |
+
?>
|
361 |
+
|
362 |
+
<div class="ha-number-body">
|
363 |
+
<div class="ha-number-overlay"></div>
|
364 |
+
<span <?php $this->print_render_attribute_string( 'number_text' ); ?>><?php echo esc_html( $number ); ?></span>
|
365 |
+
</div>
|
366 |
+
|
367 |
+
<?php
|
368 |
+
}
|
369 |
+
}
|
widgets/slider/widget.php
CHANGED
@@ -116,6 +116,12 @@ class Slider extends Base {
|
|
116 |
]
|
117 |
);
|
118 |
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
$this->add_control(
|
120 |
'slides',
|
121 |
[
|
@@ -123,33 +129,7 @@ class Slider extends Base {
|
|
123 |
'type' => Controls_Manager::REPEATER,
|
124 |
'fields' => $repeater->get_controls(),
|
125 |
'title_field' => '<# print(title || "Carousel Item"); #>',
|
126 |
-
'default' =>
|
127 |
-
[
|
128 |
-
'image' => [
|
129 |
-
'url' => Utils::get_placeholder_image_src(),
|
130 |
-
],
|
131 |
-
],
|
132 |
-
[
|
133 |
-
'image' => [
|
134 |
-
'url' => Utils::get_placeholder_image_src(),
|
135 |
-
],
|
136 |
-
],
|
137 |
-
[
|
138 |
-
'image' => [
|
139 |
-
'url' => Utils::get_placeholder_image_src(),
|
140 |
-
],
|
141 |
-
],
|
142 |
-
[
|
143 |
-
'image' => [
|
144 |
-
'url' => Utils::get_placeholder_image_src(),
|
145 |
-
],
|
146 |
-
],
|
147 |
-
[
|
148 |
-
'image' => [
|
149 |
-
'url' => Utils::get_placeholder_image_src(),
|
150 |
-
],
|
151 |
-
]
|
152 |
-
]
|
153 |
]
|
154 |
);
|
155 |
|
@@ -454,7 +434,7 @@ class Slider extends Base {
|
|
454 |
$this->start_controls_section(
|
455 |
'_section_style_arrow',
|
456 |
[
|
457 |
-
'label' => __( 'Navigation
|
458 |
'tab' => Controls_Manager::TAB_STYLE,
|
459 |
]
|
460 |
);
|
@@ -642,7 +622,7 @@ class Slider extends Base {
|
|
642 |
$this->start_controls_section(
|
643 |
'_section_style_dots',
|
644 |
[
|
645 |
-
'label' => __( 'Navigation
|
646 |
'tab' => Controls_Manager::TAB_STYLE,
|
647 |
]
|
648 |
);
|
@@ -716,6 +696,18 @@ class Slider extends Base {
|
|
716 |
]
|
717 |
);
|
718 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
719 |
$this->add_control(
|
720 |
'dots_nav_color',
|
721 |
[
|
@@ -756,6 +748,18 @@ class Slider extends Base {
|
|
756 |
]
|
757 |
);
|
758 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
759 |
$this->add_control(
|
760 |
'dots_nav_active_color',
|
761 |
[
|
116 |
]
|
117 |
);
|
118 |
|
119 |
+
$placeholder = [
|
120 |
+
'image' => [
|
121 |
+
'url' => Utils::get_placeholder_image_src(),
|
122 |
+
],
|
123 |
+
];
|
124 |
+
|
125 |
$this->add_control(
|
126 |
'slides',
|
127 |
[
|
129 |
'type' => Controls_Manager::REPEATER,
|
130 |
'fields' => $repeater->get_controls(),
|
131 |
'title_field' => '<# print(title || "Carousel Item"); #>',
|
132 |
+
'default' => array_fill( 0, 5, $placeholder )
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
133 |
]
|
134 |
);
|
135 |
|
434 |
$this->start_controls_section(
|
435 |
'_section_style_arrow',
|
436 |
[
|
437 |
+
'label' => __( 'Navigation :: Arrow', 'happy-elementor-addons' ),
|
438 |
'tab' => Controls_Manager::TAB_STYLE,
|
439 |
]
|
440 |
);
|
622 |
$this->start_controls_section(
|
623 |
'_section_style_dots',
|
624 |
[
|
625 |
+
'label' => __( 'Navigation :: Dots', 'happy-elementor-addons' ),
|
626 |
'tab' => Controls_Manager::TAB_STYLE,
|
627 |
]
|
628 |
);
|
696 |
]
|
697 |
);
|
698 |
|
699 |
+
$this->add_control(
|
700 |
+
'dots_nav_size',
|
701 |
+
[
|
702 |
+
'label' => __( 'Size', 'happy-elementor-addons' ),
|
703 |
+
'type' => Controls_Manager::SLIDER,
|
704 |
+
'size_units' => ['px'],
|
705 |
+
'selectors' => [
|
706 |
+
'{{WRAPPER}} .slick-dots li button:before' => 'font-size: {{SIZE}}{{UNIT}};',
|
707 |
+
],
|
708 |
+
]
|
709 |
+
);
|
710 |
+
|
711 |
$this->add_control(
|
712 |
'dots_nav_color',
|
713 |
[
|
748 |
]
|
749 |
);
|
750 |
|
751 |
+
$this->add_control(
|
752 |
+
'dots_nav_active_size',
|
753 |
+
[
|
754 |
+
'label' => __( 'Size', 'happy-elementor-addons' ),
|
755 |
+
'type' => Controls_Manager::SLIDER,
|
756 |
+
'size_units' => ['px'],
|
757 |
+
'selectors' => [
|
758 |
+
'{{WRAPPER}} .slick-dots li.slick-active button:before' => 'font-size: {{SIZE}}{{UNIT}};',
|
759 |
+
],
|
760 |
+
]
|
761 |
+
);
|
762 |
+
|
763 |
$this->add_control(
|
764 |
'dots_nav_active_color',
|
765 |
[
|
widgets/weform/widget.php
CHANGED
@@ -1,713 +1,713 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WeForm widget class
|
4 |
-
*
|
5 |
-
* @package Happy_Addons
|
6 |
-
*/
|
7 |
-
namespace Happy_Addons\Elementor\Widget;
|
8 |
-
|
9 |
-
use Elementor\Controls_Manager;
|
10 |
-
use Elementor\Group_Control_Border;
|
11 |
-
use Elementor\Group_Control_Box_Shadow;
|
12 |
-
use Elementor\Group_Control_Text_Shadow;
|
13 |
-
use Elementor\Group_Control_Typography;
|
14 |
-
use Elementor\Scheme_Typography;
|
15 |
-
|
16 |
-
defined( 'ABSPATH' ) || die();
|
17 |
-
|
18 |
-
class WeForm extends Base {
|
19 |
-
|
20 |
-
/**
|
21 |
-
* Get widget title.
|
22 |
-
*
|
23 |
-
* @since 1.0.0
|
24 |
-
* @access public
|
25 |
-
*
|
26 |
-
* @return string Widget title.
|
27 |
-
*/
|
28 |
-
public function get_title() {
|
29 |
-
return __( 'weForms', 'happy-elementor-addons' );
|
30 |
-
}
|
31 |
-
|
32 |
-
public function get_custom_help_url() {
|
33 |
-
return 'https://happyaddons.com/docs/happy-addons-for-elementor/widgets/weforms/';
|
34 |
-
}
|
35 |
-
|
36 |
-
/**
|
37 |
-
* Get widget icon.
|
38 |
-
*
|
39 |
-
* @since 1.0.0
|
40 |
-
* @access public
|
41 |
-
*
|
42 |
-
* @return string Widget icon.
|
43 |
-
*/
|
44 |
-
public function get_icon() {
|
45 |
-
return 'hm hm-form';
|
46 |
-
}
|
47 |
-
|
48 |
-
public function get_keywords() {
|
49 |
-
return [ 'weForms', 'we forms', 'caldera', 'wpf','wpform', 'form', 'contact', 'cf7', 'contact form', 'gravity', 'ninja' ];
|
50 |
-
}
|
51 |
-
|
52 |
-
// Whether the reload preview is required or not.
|
53 |
-
public function is_reload_preview_required() {
|
54 |
-
return true;
|
55 |
-
}
|
56 |
-
|
57 |
-
protected function register_content_controls() {
|
58 |
-
$this->start_controls_section(
|
59 |
-
'_section_weforms',
|
60 |
-
[
|
61 |
-
'label' => ha_is_weforms_activated() ? __( 'weForms', 'happy-elementor-addons' ) : __( 'Missing Notice',
|
62 |
-
'happy-elementor-addons' ),
|
63 |
-
'tab' => Controls_Manager::TAB_CONTENT,
|
64 |
-
]
|
65 |
-
);
|
66 |
-
|
67 |
-
if ( ! ha_is_weforms_activated() ) {
|
68 |
-
$this->add_control(
|
69 |
-
'_weforms_missing_notice',
|
70 |
-
[
|
71 |
-
'type' => Controls_Manager::RAW_HTML,
|
72 |
-
'raw' => sprintf(
|
73 |
-
__( 'Hello %2$s, looks like %1$s is missing in your site. Please click on the link below and install/activate %1$s. Make sure to refresh this page after installation or activation.', 'happy-elementor-addons' ),
|
74 |
-
'<a href="'.esc_url( admin_url( 'plugin-install.php?s=weForms&tab=search&type=term' ) ).'" target="_blank" rel="noopener">weForms</a>',
|
75 |
-
ha_get_current_user_display_name()
|
76 |
-
),
|
77 |
-
'content_classes' => 'elementor-panel-alert elementor-panel-alert-danger',
|
78 |
-
]
|
79 |
-
);
|
80 |
-
|
81 |
-
$this->add_control(
|
82 |
-
'_weforms_install',
|
83 |
-
[
|
84 |
-
'type' => Controls_Manager::RAW_HTML,
|
85 |
-
'raw' => '<a href="'.esc_url( admin_url( 'plugin-install.php?s=weForms&tab=search&type=term' ) ).'" target="_blank" rel="noopener">Click to install or activate weForms</a>',
|
86 |
-
]
|
87 |
-
);
|
88 |
-
$this->end_controls_section();
|
89 |
-
return;
|
90 |
-
}
|
91 |
-
|
92 |
-
$this->add_control(
|
93 |
-
'form_id',
|
94 |
-
[
|
95 |
-
'label' => __( 'Select Your Form', 'happy-elementor-addons' ),
|
96 |
-
'type' => Controls_Manager::SELECT,
|
97 |
-
'label_block' => true,
|
98 |
-
'options' => ['' => __( '', 'happy-elementor-addons' ) ] + \ha_get_we_forms(),
|
99 |
-
]
|
100 |
-
);
|
101 |
-
|
102 |
-
$this->end_controls_section();
|
103 |
-
}
|
104 |
-
|
105 |
-
protected function register_style_controls() {
|
106 |
-
$this->start_controls_section(
|
107 |
-
'_section_fields_style',
|
108 |
-
[
|
109 |
-
'label' => __( 'Form Fields', 'happy-elementor-addons' ),
|
110 |
-
'tab' => Controls_Manager::TAB_STYLE,
|
111 |
-
]
|
112 |
-
);
|
113 |
-
|
114 |
-
$this->add_responsive_control(
|
115 |
-
'large_field_width',
|
116 |
-
[
|
117 |
-
'label' => __( 'Large Field Width', 'happy-elementor-addons' ),
|
118 |
-
'type' => Controls_Manager::SLIDER,
|
119 |
-
'size_units' => [ 'px', '%' ],
|
120 |
-
'default' => [
|
121 |
-
'unit' => '%',
|
122 |
-
'size' => 99
|
123 |
-
],
|
124 |
-
'range' => [
|
125 |
-
'%' => [
|
126 |
-
'min' => 1,
|
127 |
-
'max' => 100,
|
128 |
-
],
|
129 |
-
'px' => [
|
130 |
-
'min' => 1,
|
131 |
-
'max' => 800,
|
132 |
-
],
|
133 |
-
],
|
134 |
-
'selectors' => [
|
135 |
-
'{{WRAPPER}} .wpuf-form > li.wpuf-el.field-size-large > .wpuf-fields input:not([type=radio]):not([type=checkbox])' => 'width: {{SIZE}}{{UNIT}};',
|
136 |
-
'{{WRAPPER}} .wpuf-form > li.wpuf-el.field-size-large > .wpuf-fields textarea' => 'width: {{SIZE}}{{UNIT}};',
|
137 |
-
|
138 |
-
],
|
139 |
-
]
|
140 |
-
);
|
141 |
-
|
142 |
-
$this->add_responsive_control(
|
143 |
-
'field_margin',
|
144 |
-
[
|
145 |
-
'label' => __( 'Field Spacing', 'happy-elementor-addons' ),
|
146 |
-
'type' => Controls_Manager::DIMENSIONS,
|
147 |
-
'size_units' => [ 'px', '%' ],
|
148 |
-
'selectors' => [
|
149 |
-
'{{WRAPPER}} .wpuf-el:not(.wpuf-submit)' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
150 |
-
],
|
151 |
-
]
|
152 |
-
);
|
153 |
-
|
154 |
-
$this->add_responsive_control(
|
155 |
-
'field_padding',
|
156 |
-
[
|
157 |
-
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
158 |
-
'type' => Controls_Manager::DIMENSIONS,
|
159 |
-
'size_units' => [ 'px', '%' ],
|
160 |
-
'selectors' => [
|
161 |
-
'{{WRAPPER}} .wpuf-fields input:not(.weforms_submit_btn)' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
|
162 |
-
'{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields textarea' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
163 |
-
],
|
164 |
-
]
|
165 |
-
);
|
166 |
-
|
167 |
-
$this->add_responsive_control(
|
168 |
-
'field_border_radius',
|
169 |
-
[
|
170 |
-
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
171 |
-
'type' => Controls_Manager::DIMENSIONS,
|
172 |
-
'size_units' => [ 'px', '%' ],
|
173 |
-
'selectors' => [
|
174 |
-
'{{WRAPPER}} .wpuf-fields input:not(.weforms_submit_btn), {{WRAPPER}} .wpuf-fields textarea' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
175 |
-
],
|
176 |
-
]
|
177 |
-
);
|
178 |
-
|
179 |
-
$this->add_group_control(
|
180 |
-
Group_Control_Typography::get_type(),
|
181 |
-
[
|
182 |
-
'name' => 'field_typography',
|
183 |
-
'label' => __( 'Typography', 'happy-elementor-addons' ),
|
184 |
-
'selector' => '{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields input:not(.weforms_submit_btn), .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields textarea',
|
185 |
-
'scheme' => Scheme_Typography::TYPOGRAPHY_3
|
186 |
-
]
|
187 |
-
);
|
188 |
-
|
189 |
-
$this->add_control(
|
190 |
-
'field_textcolor',
|
191 |
-
[
|
192 |
-
'label' => __( 'Field Text Color', 'happy-elementor-addons' ),
|
193 |
-
'type' => Controls_Manager::COLOR,
|
194 |
-
'selectors' => [
|
195 |
-
'{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields input:not(.weforms_submit_btn), {{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields textarea' => 'color: {{VALUE}};',
|
196 |
-
],
|
197 |
-
]
|
198 |
-
);
|
199 |
-
|
200 |
-
$this->add_control(
|
201 |
-
'field_placeholder_color',
|
202 |
-
[
|
203 |
-
'label' => __( 'Field Placeholder Color', 'happy-elementor-addons' ),
|
204 |
-
'type' => Controls_Manager::COLOR,
|
205 |
-
'selectors' => [
|
206 |
-
'{{WRAPPER}} ::-webkit-input-placeholder' => 'color: {{VALUE}};',
|
207 |
-
'{{WRAPPER}} ::-moz-placeholder' => 'color: {{VALUE}};',
|
208 |
-
'{{WRAPPER}} ::-ms-input-placeholder' => 'color: {{VALUE}};',
|
209 |
-
],
|
210 |
-
]
|
211 |
-
);
|
212 |
-
|
213 |
-
$this->start_controls_tabs( 'tabs_field_state' );
|
214 |
-
|
215 |
-
$this->start_controls_tab(
|
216 |
-
'tab_field_normal',
|
217 |
-
[
|
218 |
-
'label' => __( 'Normal', 'happy-elementor-addons' ),
|
219 |
-
]
|
220 |
-
);
|
221 |
-
|
222 |
-
$this->add_group_control(
|
223 |
-
Group_Control_Border::get_type(),
|
224 |
-
[
|
225 |
-
'name' => 'field_border',
|
226 |
-
'selector' => '{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields input:not(.weforms_submit_btn), {{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields textarea',
|
227 |
-
]
|
228 |
-
);
|
229 |
-
|
230 |
-
$this->add_group_control(
|
231 |
-
Group_Control_Box_Shadow::get_type(),
|
232 |
-
[
|
233 |
-
'name' => 'field_box_shadow',
|
234 |
-
'selector' => '{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields input:not(.weforms_submit_btn), {{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields textarea',
|
235 |
-
]
|
236 |
-
);
|
237 |
-
|
238 |
-
$this->add_control(
|
239 |
-
'field_bg_color',
|
240 |
-
[
|
241 |
-
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
242 |
-
'type' => Controls_Manager::COLOR,
|
243 |
-
'selectors' => [
|
244 |
-
'{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields input:not(.weforms_submit_btn), {{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields textarea' => 'background-color: {{VALUE}}',
|
245 |
-
],
|
246 |
-
]
|
247 |
-
);
|
248 |
-
|
249 |
-
$this->end_controls_tab();
|
250 |
-
|
251 |
-
$this->start_controls_tab(
|
252 |
-
'tab_field_focus',
|
253 |
-
[
|
254 |
-
'label' => __( 'Focus', 'happy-elementor-addons' ),
|
255 |
-
]
|
256 |
-
);
|
257 |
-
|
258 |
-
$this->add_group_control(
|
259 |
-
Group_Control_Border::get_type(),
|
260 |
-
[
|
261 |
-
'name' => 'field_focus_border',
|
262 |
-
'selector' => '{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields input:focus:not(.weforms_submit_btn), {{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields textarea:focus',
|
263 |
-
]
|
264 |
-
);
|
265 |
-
|
266 |
-
$this->add_group_control(
|
267 |
-
Group_Control_Box_Shadow::get_type(),
|
268 |
-
[
|
269 |
-
'name' => 'field_focus_box_shadow',
|
270 |
-
'exclude' => [
|
271 |
-
'box_shadow_position',
|
272 |
-
],
|
273 |
-
'selector' => '{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields input:focus:not(.weforms_submit_btn), {{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields textarea:focus',
|
274 |
-
]
|
275 |
-
);
|
276 |
-
|
277 |
-
$this->add_control(
|
278 |
-
'field_focus_bg_color',
|
279 |
-
[
|
280 |
-
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
281 |
-
'type' => Controls_Manager::COLOR,
|
282 |
-
'selectors' => [
|
283 |
-
'{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields input:focus:not(.weforms_submit_btn), {{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields textarea:focus' => 'background-color: {{VALUE}}',
|
284 |
-
],
|
285 |
-
]
|
286 |
-
);
|
287 |
-
|
288 |
-
$this->end_controls_tab();
|
289 |
-
$this->end_controls_tabs();
|
290 |
-
|
291 |
-
$this->end_controls_section();
|
292 |
-
|
293 |
-
|
294 |
-
$this->start_controls_section(
|
295 |
-
'we-form-label',
|
296 |
-
[
|
297 |
-
'label' => __( 'Form Fields Label', 'happy-elementor-addons' ),
|
298 |
-
'tab' => Controls_Manager::TAB_STYLE,
|
299 |
-
]
|
300 |
-
);
|
301 |
-
|
302 |
-
$this->add_responsive_control(
|
303 |
-
'label_margin',
|
304 |
-
[
|
305 |
-
'label' => __( 'Margin', 'happy-elementor-addons' ),
|
306 |
-
'type' => Controls_Manager::DIMENSIONS,
|
307 |
-
'size_units' => [ 'px', '%' ],
|
308 |
-
'selectors' => [
|
309 |
-
'{{WRAPPER}} .wpuf-label label' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
310 |
-
],
|
311 |
-
]
|
312 |
-
);
|
313 |
-
|
314 |
-
$this->add_responsive_control(
|
315 |
-
'label_padding',
|
316 |
-
[
|
317 |
-
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
318 |
-
'type' => Controls_Manager::DIMENSIONS,
|
319 |
-
'size_units' => [ 'px', 'em', '%' ],
|
320 |
-
'selectors' => [
|
321 |
-
'{{WRAPPER}} .wpuf-label label' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
322 |
-
],
|
323 |
-
]
|
324 |
-
);
|
325 |
-
|
326 |
-
$this->add_control(
|
327 |
-
'hr3',
|
328 |
-
[
|
329 |
-
'type' => Controls_Manager::DIVIDER,
|
330 |
-
'style' => 'thick',
|
331 |
-
]
|
332 |
-
);
|
333 |
-
|
334 |
-
$this->add_group_control(
|
335 |
-
Group_Control_Typography::get_type(),
|
336 |
-
[
|
337 |
-
'name' => 'label_typography',
|
338 |
-
'label' => __( 'Label Typography', 'happy-elementor-addons' ),
|
339 |
-
'selector' => '{{WRAPPER}} .wpuf-label label, {{WRAPPER}} .wpuf-form-sub-label',
|
340 |
-
'scheme' => Scheme_Typography::TYPOGRAPHY_3
|
341 |
-
]
|
342 |
-
);
|
343 |
-
|
344 |
-
$this->add_group_control(
|
345 |
-
Group_Control_Typography::get_type(),
|
346 |
-
[
|
347 |
-
'name' => 'desc_typography',
|
348 |
-
'label' => __( 'Help Text Typography', 'happy-elementor-addons' ),
|
349 |
-
'selector' => '{{WRAPPER}} .wpuf-fields .wpuf-help',
|
350 |
-
'scheme' => Scheme_Typography::TYPOGRAPHY_3
|
351 |
-
]
|
352 |
-
);
|
353 |
-
|
354 |
-
$this->add_control(
|
355 |
-
'label_color',
|
356 |
-
[
|
357 |
-
'label' => __( 'Label Text Color', 'happy-elementor-addons' ),
|
358 |
-
'type' => Controls_Manager::COLOR,
|
359 |
-
'selectors' => [
|
360 |
-
'{{WRAPPER}} .wpuf-label label, {{WRAPPER}} .wpuf-form-sub-label' => 'color: {{VALUE}}',
|
361 |
-
],
|
362 |
-
]
|
363 |
-
);
|
364 |
-
|
365 |
-
$this->add_control(
|
366 |
-
'requered_label',
|
367 |
-
[
|
368 |
-
'label' => __( 'Required Label Color', 'happy-elementor-addons' ),
|
369 |
-
'type' => Controls_Manager::COLOR,
|
370 |
-
'selectors' => [
|
371 |
-
'{{WRAPPER}} .wpuf-label .required' => 'color: {{VALUE}} !important',
|
372 |
-
],
|
373 |
-
]
|
374 |
-
);
|
375 |
-
|
376 |
-
$this->add_control(
|
377 |
-
'desc_color',
|
378 |
-
[
|
379 |
-
'label' => __( 'Help Text Color', 'happy-elementor-addons' ),
|
380 |
-
'type' => Controls_Manager::COLOR,
|
381 |
-
'selectors' => [
|
382 |
-
'{{WRAPPER}} .wpuf-fields .wpuf-help' => 'color: {{VALUE}}',
|
383 |
-
],
|
384 |
-
]
|
385 |
-
);
|
386 |
-
|
387 |
-
$this->end_controls_section();
|
388 |
-
|
389 |
-
$this->start_controls_section(
|
390 |
-
'submit',
|
391 |
-
[
|
392 |
-
'label' => __( 'Submit Button', 'happy-elementor-addons' ),
|
393 |
-
'tab' => Controls_Manager::TAB_STYLE,
|
394 |
-
]
|
395 |
-
);
|
396 |
-
|
397 |
-
$this->add_control(
|
398 |
-
'submit_btn_width',
|
399 |
-
[
|
400 |
-
'label' => __( 'Button Full Width?', 'happy-elementor-addons' ),
|
401 |
-
'type' => Controls_Manager::SWITCHER,
|
402 |
-
'label_on' => __( 'Yes', 'happy-elementor-addons' ),
|
403 |
-
'label_off' => __( 'No', 'happy-elementor-addons' ),
|
404 |
-
'return_value' => 'yes',
|
405 |
-
'default' => 'yes',
|
406 |
-
]
|
407 |
-
);
|
408 |
-
|
409 |
-
$this->add_responsive_control(
|
410 |
-
'button_width',
|
411 |
-
[
|
412 |
-
'label' => __( 'Button Width', 'happy-elementor-addons' ),
|
413 |
-
'type' => Controls_Manager::SLIDER,
|
414 |
-
'size_units' => [ 'px', '%' ],
|
415 |
-
'condition' => [
|
416 |
-
'submit_btn_width' => 'yes'
|
417 |
-
],
|
418 |
-
'default' => [
|
419 |
-
'unit' => '%',
|
420 |
-
'size' => 100
|
421 |
-
],
|
422 |
-
'range' => [
|
423 |
-
'%' => [
|
424 |
-
'min' => 1,
|
425 |
-
'max' => 100,
|
426 |
-
],
|
427 |
-
'px' => [
|
428 |
-
'min' => 1,
|
429 |
-
'max' => 800,
|
430 |
-
],
|
431 |
-
],
|
432 |
-
'selectors' => [
|
433 |
-
'{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit .weforms_submit_btn' => 'display: block; width: {{SIZE}}{{UNIT}};',
|
434 |
-
],
|
435 |
-
]
|
436 |
-
);
|
437 |
-
|
438 |
-
$this->add_responsive_control(
|
439 |
-
'submit_btn_position',
|
440 |
-
[
|
441 |
-
'label' => __( 'Button Position', 'happy-elementor-addons' ),
|
442 |
-
'type' => Controls_Manager::CHOOSE,
|
443 |
-
'options' => [
|
444 |
-
'left' => [
|
445 |
-
'title' => __( 'Left', 'happy-elementor-addons' ),
|
446 |
-
'icon' => 'eicon-h-align-left',
|
447 |
-
],
|
448 |
-
'center' => [
|
449 |
-
'title' => __( 'Center', 'happy-elementor-addons' ),
|
450 |
-
'icon' => 'eicon-h-align-center',
|
451 |
-
],
|
452 |
-
'right' => [
|
453 |
-
'title' => __( 'Right', 'happy-elementor-addons' ),
|
454 |
-
'icon' => 'eicon-h-align-right',
|
455 |
-
],
|
456 |
-
],
|
457 |
-
'condition' => [
|
458 |
-
'submit_btn_width' => ''
|
459 |
-
],
|
460 |
-
'desktop_default' => 'left',
|
461 |
-
'toggle' => false,
|
462 |
-
'prefix_class' => 'ha-form-btn--%s',
|
463 |
-
'selectors' => [
|
464 |
-
'{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit' => 'text-align: {{Value}};',
|
465 |
-
],
|
466 |
-
]
|
467 |
-
);
|
468 |
-
|
469 |
-
$this->add_responsive_control(
|
470 |
-
'submit_margin',
|
471 |
-
[
|
472 |
-
'label' => __( 'Margin', 'happy-elementor-addons' ),
|
473 |
-
'type' => Controls_Manager::DIMENSIONS,
|
474 |
-
'size_units' => [ 'px', '%' ],
|
475 |
-
'selectors' => [
|
476 |
-
'{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
477 |
-
],
|
478 |
-
]
|
479 |
-
);
|
480 |
-
|
481 |
-
$this->add_responsive_control(
|
482 |
-
'submit_padding',
|
483 |
-
[
|
484 |
-
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
485 |
-
'type' => Controls_Manager::DIMENSIONS,
|
486 |
-
'size_units' => [ 'px', 'em', '%' ],
|
487 |
-
'selectors' => [
|
488 |
-
'{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
489 |
-
],
|
490 |
-
]
|
491 |
-
);
|
492 |
-
|
493 |
-
$this->add_group_control(
|
494 |
-
Group_Control_Typography::get_type(),
|
495 |
-
[
|
496 |
-
'name' => 'submit_typography',
|
497 |
-
'selector' => '{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]',
|
498 |
-
'scheme' => Scheme_Typography::TYPOGRAPHY_4
|
499 |
-
]
|
500 |
-
);
|
501 |
-
|
502 |
-
$this->add_group_control(
|
503 |
-
Group_Control_Border::get_type(),
|
504 |
-
[
|
505 |
-
'name' => 'submit_border',
|
506 |
-
'selector' => '{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]',
|
507 |
-
]
|
508 |
-
);
|
509 |
-
|
510 |
-
$this->add_control(
|
511 |
-
'submit_border_radius',
|
512 |
-
[
|
513 |
-
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
514 |
-
'type' => Controls_Manager::DIMENSIONS,
|
515 |
-
'size_units' => [ 'px', '%' ],
|
516 |
-
'selectors' => [
|
517 |
-
'{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
518 |
-
],
|
519 |
-
]
|
520 |
-
);
|
521 |
-
|
522 |
-
$this->add_group_control(
|
523 |
-
Group_Control_Box_Shadow::get_type(),
|
524 |
-
[
|
525 |
-
'name' => 'submit_box_shadow',
|
526 |
-
'selector' => '{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]',
|
527 |
-
]
|
528 |
-
);
|
529 |
-
|
530 |
-
$this->add_group_control(
|
531 |
-
Group_Control_Text_Shadow::get_type(),
|
532 |
-
[
|
533 |
-
'name' => 'submit_text_shadow',
|
534 |
-
'selector' => '{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]',
|
535 |
-
]
|
536 |
-
);
|
537 |
-
|
538 |
-
$this->add_control(
|
539 |
-
'hr4',
|
540 |
-
[
|
541 |
-
'type' => Controls_Manager::DIVIDER,
|
542 |
-
'style' => 'thick',
|
543 |
-
]
|
544 |
-
);
|
545 |
-
|
546 |
-
$this->start_controls_tabs( 'tabs_button_style' );
|
547 |
-
|
548 |
-
$this->start_controls_tab(
|
549 |
-
'tab_button_normal',
|
550 |
-
[
|
551 |
-
'label' => __( 'Normal', 'happy-elementor-addons' ),
|
552 |
-
]
|
553 |
-
);
|
554 |
-
|
555 |
-
$this->add_control(
|
556 |
-
'submit_color',
|
557 |
-
[
|
558 |
-
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
559 |
-
'type' => Controls_Manager::COLOR,
|
560 |
-
'default' => '',
|
561 |
-
'selectors' => [
|
562 |
-
'{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]' => 'color: {{VALUE}};',
|
563 |
-
],
|
564 |
-
]
|
565 |
-
);
|
566 |
-
|
567 |
-
$this->add_control(
|
568 |
-
'submit_bg_color',
|
569 |
-
[
|
570 |
-
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
571 |
-
'type' => Controls_Manager::COLOR,
|
572 |
-
'selectors' => [
|
573 |
-
'{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]' => 'background-color: {{VALUE}};',
|
574 |
-
],
|
575 |
-
]
|
576 |
-
);
|
577 |
-
|
578 |
-
$this->end_controls_tab();
|
579 |
-
|
580 |
-
$this->start_controls_tab(
|
581 |
-
'tab_button_hover',
|
582 |
-
[
|
583 |
-
'label' => __( 'Hover', 'happy-elementor-addons' ),
|
584 |
-
]
|
585 |
-
);
|
586 |
-
|
587 |
-
$this->add_control(
|
588 |
-
'submit_hover_color',
|
589 |
-
[
|
590 |
-
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
591 |
-
'type' => Controls_Manager::COLOR,
|
592 |
-
'selectors' => [
|
593 |
-
'{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]:hover, {{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]:focus' => 'color: {{VALUE}};',
|
594 |
-
],
|
595 |
-
]
|
596 |
-
);
|
597 |
-
|
598 |
-
$this->add_control(
|
599 |
-
'submit_hover_bg_color',
|
600 |
-
[
|
601 |
-
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
602 |
-
'type' => Controls_Manager::COLOR,
|
603 |
-
'selectors' => [
|
604 |
-
'{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]:hover, {{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]:focus' => 'background-color: {{VALUE}};',
|
605 |
-
],
|
606 |
-
]
|
607 |
-
);
|
608 |
-
|
609 |
-
$this->add_control(
|
610 |
-
'submit_hover_border_color',
|
611 |
-
[
|
612 |
-
'label' => __( 'Border Color', 'happy-elementor-addons' ),
|
613 |
-
'type' => Controls_Manager::COLOR,
|
614 |
-
'selectors' => [
|
615 |
-
'{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]:hover, {{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]:focus' => 'border-color: {{VALUE}};',
|
616 |
-
],
|
617 |
-
]
|
618 |
-
);
|
619 |
-
|
620 |
-
$this->end_controls_tab();
|
621 |
-
$this->end_controls_tabs();
|
622 |
-
|
623 |
-
$this->end_controls_section();
|
624 |
-
|
625 |
-
$this->start_controls_section(
|
626 |
-
'section_break',
|
627 |
-
[
|
628 |
-
'label' => __( 'Section Break', 'happy-elementor-addons' ),
|
629 |
-
'tab' => Controls_Manager::TAB_STYLE,
|
630 |
-
]
|
631 |
-
);
|
632 |
-
|
633 |
-
$this->add_group_control(
|
634 |
-
Group_Control_Typography::get_type(),
|
635 |
-
[
|
636 |
-
'name' => 'break_title_typography',
|
637 |
-
'label' => __( 'Title Typography', 'happy-elementor-addons' ),
|
638 |
-
'selector' => '{{WRAPPER}} .section_break .wpuf-section-title',
|
639 |
-
'scheme' => Scheme_Typography::TYPOGRAPHY_2
|
640 |
-
]
|
641 |
-
);
|
642 |
-
|
643 |
-
$this->add_group_control(
|
644 |
-
Group_Control_Typography::get_type(),
|
645 |
-
[
|
646 |
-
'name' => 'break_description_typography',
|
647 |
-
'label' => __( 'Description Typography', 'happy-elementor-addons' ),
|
648 |
-
'selector' => '{{WRAPPER}} .section_break .wpuf-section-details',
|
649 |
-
'scheme' => Scheme_Typography::TYPOGRAPHY_4
|
650 |
-
]
|
651 |
-
);
|
652 |
-
|
653 |
-
$this->start_controls_tabs( 'tabs_section_break_style' );
|
654 |
-
|
655 |
-
$this->start_controls_tab(
|
656 |
-
'tab_break_title',
|
657 |
-
[
|
658 |
-
'label' => __( 'Title', 'happy-elementor-addons' ),
|
659 |
-
]
|
660 |
-
);
|
661 |
-
|
662 |
-
$this->add_control(
|
663 |
-
'break_title_color',
|
664 |
-
[
|
665 |
-
'label' => __( 'Color', 'happy-elementor-addons' ),
|
666 |
-
'type' => Controls_Manager::COLOR,
|
667 |
-
'selectors' => [
|
668 |
-
'{{WRAPPER}} .section_break .wpuf-section-title' => 'color: {{VALUE}};',
|
669 |
-
],
|
670 |
-
]
|
671 |
-
);
|
672 |
-
|
673 |
-
$this->end_controls_tab();
|
674 |
-
|
675 |
-
$this->start_controls_tab(
|
676 |
-
'tab_break_description',
|
677 |
-
[
|
678 |
-
'label' => __( 'Description', 'happy-elementor-addons' ),
|
679 |
-
]
|
680 |
-
);
|
681 |
-
|
682 |
-
$this->add_control(
|
683 |
-
'break_description_color',
|
684 |
-
[
|
685 |
-
'label' => __( 'Color', 'happy-elementor-addons' ),
|
686 |
-
'type' => Controls_Manager::COLOR,
|
687 |
-
'selectors' => [
|
688 |
-
'{{WRAPPER}} .section_break .wpuf-section-details' => 'color: {{VALUE}};',
|
689 |
-
],
|
690 |
-
]
|
691 |
-
);
|
692 |
-
|
693 |
-
$this->end_controls_tab();
|
694 |
-
$this->end_controls_tabs();
|
695 |
-
|
696 |
-
$this->end_controls_section();
|
697 |
-
|
698 |
-
}
|
699 |
-
|
700 |
-
protected function render() {
|
701 |
-
if ( ! ha_is_weforms_activated() ) {
|
702 |
-
return;
|
703 |
-
}
|
704 |
-
|
705 |
-
$settings = $this->get_settings_for_display();
|
706 |
-
|
707 |
-
if ( ! empty( $settings['form_id'] ) ) {
|
708 |
-
echo ha_do_shortcode( 'weforms', [
|
709 |
-
'id' => $settings['form_id'],
|
710 |
-
] );
|
711 |
-
}
|
712 |
-
}
|
713 |
-
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WeForm widget class
|
4 |
+
*
|
5 |
+
* @package Happy_Addons
|
6 |
+
*/
|
7 |
+
namespace Happy_Addons\Elementor\Widget;
|
8 |
+
|
9 |
+
use Elementor\Controls_Manager;
|
10 |
+
use Elementor\Group_Control_Border;
|
11 |
+
use Elementor\Group_Control_Box_Shadow;
|
12 |
+
use Elementor\Group_Control_Text_Shadow;
|
13 |
+
use Elementor\Group_Control_Typography;
|
14 |
+
use Elementor\Scheme_Typography;
|
15 |
+
|
16 |
+
defined( 'ABSPATH' ) || die();
|
17 |
+
|
18 |
+
class WeForm extends Base {
|
19 |
+
|
20 |
+
/**
|
21 |
+
* Get widget title.
|
22 |
+
*
|
23 |
+
* @since 1.0.0
|
24 |
+
* @access public
|
25 |
+
*
|
26 |
+
* @return string Widget title.
|
27 |
+
*/
|
28 |
+
public function get_title() {
|
29 |
+
return __( 'weForms', 'happy-elementor-addons' );
|
30 |
+
}
|
31 |
+
|
32 |
+
public function get_custom_help_url() {
|
33 |
+
return 'https://happyaddons.com/docs/happy-addons-for-elementor/widgets/weforms/';
|
34 |
+
}
|
35 |
+
|
36 |
+
/**
|
37 |
+
* Get widget icon.
|
38 |
+
*
|
39 |
+
* @since 1.0.0
|
40 |
+
* @access public
|
41 |
+
*
|
42 |
+
* @return string Widget icon.
|
43 |
+
*/
|
44 |
+
public function get_icon() {
|
45 |
+
return 'hm hm-form';
|
46 |
+
}
|
47 |
+
|
48 |
+
public function get_keywords() {
|
49 |
+
return [ 'weForms', 'we forms', 'caldera', 'wpf','wpform', 'form', 'contact', 'cf7', 'contact form', 'gravity', 'ninja' ];
|
50 |
+
}
|
51 |
+
|
52 |
+
// Whether the reload preview is required or not.
|
53 |
+
public function is_reload_preview_required() {
|
54 |
+
return true;
|
55 |
+
}
|
56 |
+
|
57 |
+
protected function register_content_controls() {
|
58 |
+
$this->start_controls_section(
|
59 |
+
'_section_weforms',
|
60 |
+
[
|
61 |
+
'label' => ha_is_weforms_activated() ? __( 'weForms', 'happy-elementor-addons' ) : __( 'Missing Notice',
|
62 |
+
'happy-elementor-addons' ),
|
63 |
+
'tab' => Controls_Manager::TAB_CONTENT,
|
64 |
+
]
|
65 |
+
);
|
66 |
+
|
67 |
+
if ( ! ha_is_weforms_activated() ) {
|
68 |
+
$this->add_control(
|
69 |
+
'_weforms_missing_notice',
|
70 |
+
[
|
71 |
+
'type' => Controls_Manager::RAW_HTML,
|
72 |
+
'raw' => sprintf(
|
73 |
+
__( 'Hello %2$s, looks like %1$s is missing in your site. Please click on the link below and install/activate %1$s. Make sure to refresh this page after installation or activation.', 'happy-elementor-addons' ),
|
74 |
+
'<a href="'.esc_url( admin_url( 'plugin-install.php?s=weForms&tab=search&type=term' ) ).'" target="_blank" rel="noopener">weForms</a>',
|
75 |
+
ha_get_current_user_display_name()
|
76 |
+
),
|
77 |
+
'content_classes' => 'elementor-panel-alert elementor-panel-alert-danger',
|
78 |
+
]
|
79 |
+
);
|
80 |
+
|
81 |
+
$this->add_control(
|
82 |
+
'_weforms_install',
|
83 |
+
[
|
84 |
+
'type' => Controls_Manager::RAW_HTML,
|
85 |
+
'raw' => '<a href="'.esc_url( admin_url( 'plugin-install.php?s=weForms&tab=search&type=term' ) ).'" target="_blank" rel="noopener">Click to install or activate weForms</a>',
|
86 |
+
]
|
87 |
+
);
|
88 |
+
$this->end_controls_section();
|
89 |
+
return;
|
90 |
+
}
|
91 |
+
|
92 |
+
$this->add_control(
|
93 |
+
'form_id',
|
94 |
+
[
|
95 |
+
'label' => __( 'Select Your Form', 'happy-elementor-addons' ),
|
96 |
+
'type' => Controls_Manager::SELECT,
|
97 |
+
'label_block' => true,
|
98 |
+
'options' => ['' => __( '', 'happy-elementor-addons' ) ] + \ha_get_we_forms(),
|
99 |
+
]
|
100 |
+
);
|
101 |
+
|
102 |
+
$this->end_controls_section();
|
103 |
+
}
|
104 |
+
|
105 |
+
protected function register_style_controls() {
|
106 |
+
$this->start_controls_section(
|
107 |
+
'_section_fields_style',
|
108 |
+
[
|
109 |
+
'label' => __( 'Form Fields', 'happy-elementor-addons' ),
|
110 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
111 |
+
]
|
112 |
+
);
|
113 |
+
|
114 |
+
$this->add_responsive_control(
|
115 |
+
'large_field_width',
|
116 |
+
[
|
117 |
+
'label' => __( 'Large Field Width', 'happy-elementor-addons' ),
|
118 |
+
'type' => Controls_Manager::SLIDER,
|
119 |
+
'size_units' => [ 'px', '%' ],
|
120 |
+
'default' => [
|
121 |
+
'unit' => '%',
|
122 |
+
'size' => 99
|
123 |
+
],
|
124 |
+
'range' => [
|
125 |
+
'%' => [
|
126 |
+
'min' => 1,
|
127 |
+
'max' => 100,
|
128 |
+
],
|
129 |
+
'px' => [
|
130 |
+
'min' => 1,
|
131 |
+
'max' => 800,
|
132 |
+
],
|
133 |
+
],
|
134 |
+
'selectors' => [
|
135 |
+
'{{WRAPPER}} .wpuf-form > li.wpuf-el.field-size-large > .wpuf-fields input:not([type=radio]):not([type=checkbox])' => 'width: {{SIZE}}{{UNIT}};',
|
136 |
+
'{{WRAPPER}} .wpuf-form > li.wpuf-el.field-size-large > .wpuf-fields textarea' => 'width: {{SIZE}}{{UNIT}};',
|
137 |
+
|
138 |
+
],
|
139 |
+
]
|
140 |
+
);
|
141 |
+
|
142 |
+
$this->add_responsive_control(
|
143 |
+
'field_margin',
|
144 |
+
[
|
145 |
+
'label' => __( 'Field Spacing', 'happy-elementor-addons' ),
|
146 |
+
'type' => Controls_Manager::DIMENSIONS,
|
147 |
+
'size_units' => [ 'px', '%' ],
|
148 |
+
'selectors' => [
|
149 |
+
'{{WRAPPER}} .wpuf-el:not(.wpuf-submit)' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
150 |
+
],
|
151 |
+
]
|
152 |
+
);
|
153 |
+
|
154 |
+
$this->add_responsive_control(
|
155 |
+
'field_padding',
|
156 |
+
[
|
157 |
+
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
158 |
+
'type' => Controls_Manager::DIMENSIONS,
|
159 |
+
'size_units' => [ 'px', '%' ],
|
160 |
+
'selectors' => [
|
161 |
+
'{{WRAPPER}} .wpuf-fields input:not(.weforms_submit_btn)' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}} !important;',
|
162 |
+
'{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields textarea' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
163 |
+
],
|
164 |
+
]
|
165 |
+
);
|
166 |
+
|
167 |
+
$this->add_responsive_control(
|
168 |
+
'field_border_radius',
|
169 |
+
[
|
170 |
+
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
171 |
+
'type' => Controls_Manager::DIMENSIONS,
|
172 |
+
'size_units' => [ 'px', '%' ],
|
173 |
+
'selectors' => [
|
174 |
+
'{{WRAPPER}} .wpuf-fields input:not(.weforms_submit_btn), {{WRAPPER}} .wpuf-fields textarea' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
175 |
+
],
|
176 |
+
]
|
177 |
+
);
|
178 |
+
|
179 |
+
$this->add_group_control(
|
180 |
+
Group_Control_Typography::get_type(),
|
181 |
+
[
|
182 |
+
'name' => 'field_typography',
|
183 |
+
'label' => __( 'Typography', 'happy-elementor-addons' ),
|
184 |
+
'selector' => '{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields input:not(.weforms_submit_btn), .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields textarea',
|
185 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_3
|
186 |
+
]
|
187 |
+
);
|
188 |
+
|
189 |
+
$this->add_control(
|
190 |
+
'field_textcolor',
|
191 |
+
[
|
192 |
+
'label' => __( 'Field Text Color', 'happy-elementor-addons' ),
|
193 |
+
'type' => Controls_Manager::COLOR,
|
194 |
+
'selectors' => [
|
195 |
+
'{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields input:not(.weforms_submit_btn), {{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields textarea' => 'color: {{VALUE}};',
|
196 |
+
],
|
197 |
+
]
|
198 |
+
);
|
199 |
+
|
200 |
+
$this->add_control(
|
201 |
+
'field_placeholder_color',
|
202 |
+
[
|
203 |
+
'label' => __( 'Field Placeholder Color', 'happy-elementor-addons' ),
|
204 |
+
'type' => Controls_Manager::COLOR,
|
205 |
+
'selectors' => [
|
206 |
+
'{{WRAPPER}} ::-webkit-input-placeholder' => 'color: {{VALUE}};',
|
207 |
+
'{{WRAPPER}} ::-moz-placeholder' => 'color: {{VALUE}};',
|
208 |
+
'{{WRAPPER}} ::-ms-input-placeholder' => 'color: {{VALUE}};',
|
209 |
+
],
|
210 |
+
]
|
211 |
+
);
|
212 |
+
|
213 |
+
$this->start_controls_tabs( 'tabs_field_state' );
|
214 |
+
|
215 |
+
$this->start_controls_tab(
|
216 |
+
'tab_field_normal',
|
217 |
+
[
|
218 |
+
'label' => __( 'Normal', 'happy-elementor-addons' ),
|
219 |
+
]
|
220 |
+
);
|
221 |
+
|
222 |
+
$this->add_group_control(
|
223 |
+
Group_Control_Border::get_type(),
|
224 |
+
[
|
225 |
+
'name' => 'field_border',
|
226 |
+
'selector' => '{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields input:not(.weforms_submit_btn), {{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields textarea',
|
227 |
+
]
|
228 |
+
);
|
229 |
+
|
230 |
+
$this->add_group_control(
|
231 |
+
Group_Control_Box_Shadow::get_type(),
|
232 |
+
[
|
233 |
+
'name' => 'field_box_shadow',
|
234 |
+
'selector' => '{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields input:not(.weforms_submit_btn), {{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields textarea',
|
235 |
+
]
|
236 |
+
);
|
237 |
+
|
238 |
+
$this->add_control(
|
239 |
+
'field_bg_color',
|
240 |
+
[
|
241 |
+
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
242 |
+
'type' => Controls_Manager::COLOR,
|
243 |
+
'selectors' => [
|
244 |
+
'{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields input:not(.weforms_submit_btn), {{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields textarea' => 'background-color: {{VALUE}}',
|
245 |
+
],
|
246 |
+
]
|
247 |
+
);
|
248 |
+
|
249 |
+
$this->end_controls_tab();
|
250 |
+
|
251 |
+
$this->start_controls_tab(
|
252 |
+
'tab_field_focus',
|
253 |
+
[
|
254 |
+
'label' => __( 'Focus', 'happy-elementor-addons' ),
|
255 |
+
]
|
256 |
+
);
|
257 |
+
|
258 |
+
$this->add_group_control(
|
259 |
+
Group_Control_Border::get_type(),
|
260 |
+
[
|
261 |
+
'name' => 'field_focus_border',
|
262 |
+
'selector' => '{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields input:focus:not(.weforms_submit_btn), {{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields textarea:focus',
|
263 |
+
]
|
264 |
+
);
|
265 |
+
|
266 |
+
$this->add_group_control(
|
267 |
+
Group_Control_Box_Shadow::get_type(),
|
268 |
+
[
|
269 |
+
'name' => 'field_focus_box_shadow',
|
270 |
+
'exclude' => [
|
271 |
+
'box_shadow_position',
|
272 |
+
],
|
273 |
+
'selector' => '{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields input:focus:not(.weforms_submit_btn), {{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields textarea:focus',
|
274 |
+
]
|
275 |
+
);
|
276 |
+
|
277 |
+
$this->add_control(
|
278 |
+
'field_focus_bg_color',
|
279 |
+
[
|
280 |
+
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
281 |
+
'type' => Controls_Manager::COLOR,
|
282 |
+
'selectors' => [
|
283 |
+
'{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields input:focus:not(.weforms_submit_btn), {{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-fields textarea:focus' => 'background-color: {{VALUE}}',
|
284 |
+
],
|
285 |
+
]
|
286 |
+
);
|
287 |
+
|
288 |
+
$this->end_controls_tab();
|
289 |
+
$this->end_controls_tabs();
|
290 |
+
|
291 |
+
$this->end_controls_section();
|
292 |
+
|
293 |
+
|
294 |
+
$this->start_controls_section(
|
295 |
+
'we-form-label',
|
296 |
+
[
|
297 |
+
'label' => __( 'Form Fields Label', 'happy-elementor-addons' ),
|
298 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
299 |
+
]
|
300 |
+
);
|
301 |
+
|
302 |
+
$this->add_responsive_control(
|
303 |
+
'label_margin',
|
304 |
+
[
|
305 |
+
'label' => __( 'Margin', 'happy-elementor-addons' ),
|
306 |
+
'type' => Controls_Manager::DIMENSIONS,
|
307 |
+
'size_units' => [ 'px', '%' ],
|
308 |
+
'selectors' => [
|
309 |
+
'{{WRAPPER}} .wpuf-label label' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
310 |
+
],
|
311 |
+
]
|
312 |
+
);
|
313 |
+
|
314 |
+
$this->add_responsive_control(
|
315 |
+
'label_padding',
|
316 |
+
[
|
317 |
+
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
318 |
+
'type' => Controls_Manager::DIMENSIONS,
|
319 |
+
'size_units' => [ 'px', 'em', '%' ],
|
320 |
+
'selectors' => [
|
321 |
+
'{{WRAPPER}} .wpuf-label label' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
322 |
+
],
|
323 |
+
]
|
324 |
+
);
|
325 |
+
|
326 |
+
$this->add_control(
|
327 |
+
'hr3',
|
328 |
+
[
|
329 |
+
'type' => Controls_Manager::DIVIDER,
|
330 |
+
'style' => 'thick',
|
331 |
+
]
|
332 |
+
);
|
333 |
+
|
334 |
+
$this->add_group_control(
|
335 |
+
Group_Control_Typography::get_type(),
|
336 |
+
[
|
337 |
+
'name' => 'label_typography',
|
338 |
+
'label' => __( 'Label Typography', 'happy-elementor-addons' ),
|
339 |
+
'selector' => '{{WRAPPER}} .wpuf-label label, {{WRAPPER}} .wpuf-form-sub-label',
|
340 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_3
|
341 |
+
]
|
342 |
+
);
|
343 |
+
|
344 |
+
$this->add_group_control(
|
345 |
+
Group_Control_Typography::get_type(),
|
346 |
+
[
|
347 |
+
'name' => 'desc_typography',
|
348 |
+
'label' => __( 'Help Text Typography', 'happy-elementor-addons' ),
|
349 |
+
'selector' => '{{WRAPPER}} .wpuf-fields .wpuf-help',
|
350 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_3
|
351 |
+
]
|
352 |
+
);
|
353 |
+
|
354 |
+
$this->add_control(
|
355 |
+
'label_color',
|
356 |
+
[
|
357 |
+
'label' => __( 'Label Text Color', 'happy-elementor-addons' ),
|
358 |
+
'type' => Controls_Manager::COLOR,
|
359 |
+
'selectors' => [
|
360 |
+
'{{WRAPPER}} .wpuf-label label, {{WRAPPER}} .wpuf-form-sub-label' => 'color: {{VALUE}}',
|
361 |
+
],
|
362 |
+
]
|
363 |
+
);
|
364 |
+
|
365 |
+
$this->add_control(
|
366 |
+
'requered_label',
|
367 |
+
[
|
368 |
+
'label' => __( 'Required Label Color', 'happy-elementor-addons' ),
|
369 |
+
'type' => Controls_Manager::COLOR,
|
370 |
+
'selectors' => [
|
371 |
+
'{{WRAPPER}} .wpuf-label .required' => 'color: {{VALUE}} !important',
|
372 |
+
],
|
373 |
+
]
|
374 |
+
);
|
375 |
+
|
376 |
+
$this->add_control(
|
377 |
+
'desc_color',
|
378 |
+
[
|
379 |
+
'label' => __( 'Help Text Color', 'happy-elementor-addons' ),
|
380 |
+
'type' => Controls_Manager::COLOR,
|
381 |
+
'selectors' => [
|
382 |
+
'{{WRAPPER}} .wpuf-fields .wpuf-help' => 'color: {{VALUE}}',
|
383 |
+
],
|
384 |
+
]
|
385 |
+
);
|
386 |
+
|
387 |
+
$this->end_controls_section();
|
388 |
+
|
389 |
+
$this->start_controls_section(
|
390 |
+
'submit',
|
391 |
+
[
|
392 |
+
'label' => __( 'Submit Button', 'happy-elementor-addons' ),
|
393 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
394 |
+
]
|
395 |
+
);
|
396 |
+
|
397 |
+
$this->add_control(
|
398 |
+
'submit_btn_width',
|
399 |
+
[
|
400 |
+
'label' => __( 'Button Full Width?', 'happy-elementor-addons' ),
|
401 |
+
'type' => Controls_Manager::SWITCHER,
|
402 |
+
'label_on' => __( 'Yes', 'happy-elementor-addons' ),
|
403 |
+
'label_off' => __( 'No', 'happy-elementor-addons' ),
|
404 |
+
'return_value' => 'yes',
|
405 |
+
'default' => 'yes',
|
406 |
+
]
|
407 |
+
);
|
408 |
+
|
409 |
+
$this->add_responsive_control(
|
410 |
+
'button_width',
|
411 |
+
[
|
412 |
+
'label' => __( 'Button Width', 'happy-elementor-addons' ),
|
413 |
+
'type' => Controls_Manager::SLIDER,
|
414 |
+
'size_units' => [ 'px', '%' ],
|
415 |
+
'condition' => [
|
416 |
+
'submit_btn_width' => 'yes'
|
417 |
+
],
|
418 |
+
'default' => [
|
419 |
+
'unit' => '%',
|
420 |
+
'size' => 100
|
421 |
+
],
|
422 |
+
'range' => [
|
423 |
+
'%' => [
|
424 |
+
'min' => 1,
|
425 |
+
'max' => 100,
|
426 |
+
],
|
427 |
+
'px' => [
|
428 |
+
'min' => 1,
|
429 |
+
'max' => 800,
|
430 |
+
],
|
431 |
+
],
|
432 |
+
'selectors' => [
|
433 |
+
'{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit .weforms_submit_btn' => 'display: block; width: {{SIZE}}{{UNIT}};',
|
434 |
+
],
|
435 |
+
]
|
436 |
+
);
|
437 |
+
|
438 |
+
$this->add_responsive_control(
|
439 |
+
'submit_btn_position',
|
440 |
+
[
|
441 |
+
'label' => __( 'Button Position', 'happy-elementor-addons' ),
|
442 |
+
'type' => Controls_Manager::CHOOSE,
|
443 |
+
'options' => [
|
444 |
+
'left' => [
|
445 |
+
'title' => __( 'Left', 'happy-elementor-addons' ),
|
446 |
+
'icon' => 'eicon-h-align-left',
|
447 |
+
],
|
448 |
+
'center' => [
|
449 |
+
'title' => __( 'Center', 'happy-elementor-addons' ),
|
450 |
+
'icon' => 'eicon-h-align-center',
|
451 |
+
],
|
452 |
+
'right' => [
|
453 |
+
'title' => __( 'Right', 'happy-elementor-addons' ),
|
454 |
+
'icon' => 'eicon-h-align-right',
|
455 |
+
],
|
456 |
+
],
|
457 |
+
'condition' => [
|
458 |
+
'submit_btn_width' => ''
|
459 |
+
],
|
460 |
+
'desktop_default' => 'left',
|
461 |
+
'toggle' => false,
|
462 |
+
'prefix_class' => 'ha-form-btn--%s',
|
463 |
+
'selectors' => [
|
464 |
+
'{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit' => 'text-align: {{Value}};',
|
465 |
+
],
|
466 |
+
]
|
467 |
+
);
|
468 |
+
|
469 |
+
$this->add_responsive_control(
|
470 |
+
'submit_margin',
|
471 |
+
[
|
472 |
+
'label' => __( 'Margin', 'happy-elementor-addons' ),
|
473 |
+
'type' => Controls_Manager::DIMENSIONS,
|
474 |
+
'size_units' => [ 'px', '%' ],
|
475 |
+
'selectors' => [
|
476 |
+
'{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
477 |
+
],
|
478 |
+
]
|
479 |
+
);
|
480 |
+
|
481 |
+
$this->add_responsive_control(
|
482 |
+
'submit_padding',
|
483 |
+
[
|
484 |
+
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
485 |
+
'type' => Controls_Manager::DIMENSIONS,
|
486 |
+
'size_units' => [ 'px', 'em', '%' ],
|
487 |
+
'selectors' => [
|
488 |
+
'{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
489 |
+
],
|
490 |
+
]
|
491 |
+
);
|
492 |
+
|
493 |
+
$this->add_group_control(
|
494 |
+
Group_Control_Typography::get_type(),
|
495 |
+
[
|
496 |
+
'name' => 'submit_typography',
|
497 |
+
'selector' => '{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]',
|
498 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_4
|
499 |
+
]
|
500 |
+
);
|
501 |
+
|
502 |
+
$this->add_group_control(
|
503 |
+
Group_Control_Border::get_type(),
|
504 |
+
[
|
505 |
+
'name' => 'submit_border',
|
506 |
+
'selector' => '{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]',
|
507 |
+
]
|
508 |
+
);
|
509 |
+
|
510 |
+
$this->add_control(
|
511 |
+
'submit_border_radius',
|
512 |
+
[
|
513 |
+
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
514 |
+
'type' => Controls_Manager::DIMENSIONS,
|
515 |
+
'size_units' => [ 'px', '%' ],
|
516 |
+
'selectors' => [
|
517 |
+
'{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
518 |
+
],
|
519 |
+
]
|
520 |
+
);
|
521 |
+
|
522 |
+
$this->add_group_control(
|
523 |
+
Group_Control_Box_Shadow::get_type(),
|
524 |
+
[
|
525 |
+
'name' => 'submit_box_shadow',
|
526 |
+
'selector' => '{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]',
|
527 |
+
]
|
528 |
+
);
|
529 |
+
|
530 |
+
$this->add_group_control(
|
531 |
+
Group_Control_Text_Shadow::get_type(),
|
532 |
+
[
|
533 |
+
'name' => 'submit_text_shadow',
|
534 |
+
'selector' => '{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]',
|
535 |
+
]
|
536 |
+
);
|
537 |
+
|
538 |
+
$this->add_control(
|
539 |
+
'hr4',
|
540 |
+
[
|
541 |
+
'type' => Controls_Manager::DIVIDER,
|
542 |
+
'style' => 'thick',
|
543 |
+
]
|
544 |
+
);
|
545 |
+
|
546 |
+
$this->start_controls_tabs( 'tabs_button_style' );
|
547 |
+
|
548 |
+
$this->start_controls_tab(
|
549 |
+
'tab_button_normal',
|
550 |
+
[
|
551 |
+
'label' => __( 'Normal', 'happy-elementor-addons' ),
|
552 |
+
]
|
553 |
+
);
|
554 |
+
|
555 |
+
$this->add_control(
|
556 |
+
'submit_color',
|
557 |
+
[
|
558 |
+
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
559 |
+
'type' => Controls_Manager::COLOR,
|
560 |
+
'default' => '',
|
561 |
+
'selectors' => [
|
562 |
+
'{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]' => 'color: {{VALUE}};',
|
563 |
+
],
|
564 |
+
]
|
565 |
+
);
|
566 |
+
|
567 |
+
$this->add_control(
|
568 |
+
'submit_bg_color',
|
569 |
+
[
|
570 |
+
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
571 |
+
'type' => Controls_Manager::COLOR,
|
572 |
+
'selectors' => [
|
573 |
+
'{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]' => 'background-color: {{VALUE}};',
|
574 |
+
],
|
575 |
+
]
|
576 |
+
);
|
577 |
+
|
578 |
+
$this->end_controls_tab();
|
579 |
+
|
580 |
+
$this->start_controls_tab(
|
581 |
+
'tab_button_hover',
|
582 |
+
[
|
583 |
+
'label' => __( 'Hover', 'happy-elementor-addons' ),
|
584 |
+
]
|
585 |
+
);
|
586 |
+
|
587 |
+
$this->add_control(
|
588 |
+
'submit_hover_color',
|
589 |
+
[
|
590 |
+
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
591 |
+
'type' => Controls_Manager::COLOR,
|
592 |
+
'selectors' => [
|
593 |
+
'{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]:hover, {{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]:focus' => 'color: {{VALUE}};',
|
594 |
+
],
|
595 |
+
]
|
596 |
+
);
|
597 |
+
|
598 |
+
$this->add_control(
|
599 |
+
'submit_hover_bg_color',
|
600 |
+
[
|
601 |
+
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
602 |
+
'type' => Controls_Manager::COLOR,
|
603 |
+
'selectors' => [
|
604 |
+
'{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]:hover, {{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]:focus' => 'background-color: {{VALUE}};',
|
605 |
+
],
|
606 |
+
]
|
607 |
+
);
|
608 |
+
|
609 |
+
$this->add_control(
|
610 |
+
'submit_hover_border_color',
|
611 |
+
[
|
612 |
+
'label' => __( 'Border Color', 'happy-elementor-addons' ),
|
613 |
+
'type' => Controls_Manager::COLOR,
|
614 |
+
'selectors' => [
|
615 |
+
'{{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]:hover, {{WRAPPER}} .wpuf-form-add.wpuf-style ul.wpuf-form .wpuf-submit input[type=submit]:focus' => 'border-color: {{VALUE}};',
|
616 |
+
],
|
617 |
+
]
|
618 |
+
);
|
619 |
+
|
620 |
+
$this->end_controls_tab();
|
621 |
+
$this->end_controls_tabs();
|
622 |
+
|
623 |
+
$this->end_controls_section();
|
624 |
+
|
625 |
+
$this->start_controls_section(
|
626 |
+
'section_break',
|
627 |
+
[
|
628 |
+
'label' => __( 'Section Break', 'happy-elementor-addons' ),
|
629 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
630 |
+
]
|
631 |
+
);
|
632 |
+
|
633 |
+
$this->add_group_control(
|
634 |
+
Group_Control_Typography::get_type(),
|
635 |
+
[
|
636 |
+
'name' => 'break_title_typography',
|
637 |
+
'label' => __( 'Title Typography', 'happy-elementor-addons' ),
|
638 |
+
'selector' => '{{WRAPPER}} .section_break .wpuf-section-title',
|
639 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_2
|
640 |
+
]
|
641 |
+
);
|
642 |
+
|
643 |
+
$this->add_group_control(
|
644 |
+
Group_Control_Typography::get_type(),
|
645 |
+
[
|
646 |
+
'name' => 'break_description_typography',
|
647 |
+
'label' => __( 'Description Typography', 'happy-elementor-addons' ),
|
648 |
+
'selector' => '{{WRAPPER}} .section_break .wpuf-section-details',
|
649 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_4
|
650 |
+
]
|
651 |
+
);
|
652 |
+
|
653 |
+
$this->start_controls_tabs( 'tabs_section_break_style' );
|
654 |
+
|
655 |
+
$this->start_controls_tab(
|
656 |
+
'tab_break_title',
|
657 |
+
[
|
658 |
+
'label' => __( 'Title', 'happy-elementor-addons' ),
|
659 |
+
]
|
660 |
+
);
|
661 |
+
|
662 |
+
$this->add_control(
|
663 |
+
'break_title_color',
|
664 |
+
[
|
665 |
+
'label' => __( 'Color', 'happy-elementor-addons' ),
|
666 |
+
'type' => Controls_Manager::COLOR,
|
667 |
+
'selectors' => [
|
668 |
+
'{{WRAPPER}} .section_break .wpuf-section-title' => 'color: {{VALUE}};',
|
669 |
+
],
|
670 |
+
]
|
671 |
+
);
|
672 |
+
|
673 |
+
$this->end_controls_tab();
|
674 |
+
|
675 |
+
$this->start_controls_tab(
|
676 |
+
'tab_break_description',
|
677 |
+
[
|
678 |
+
'label' => __( 'Description', 'happy-elementor-addons' ),
|
679 |
+
]
|
680 |
+
);
|
681 |
+
|
682 |
+
$this->add_control(
|
683 |
+
'break_description_color',
|
684 |
+
[
|
685 |
+
'label' => __( 'Color', 'happy-elementor-addons' ),
|
686 |
+
'type' => Controls_Manager::COLOR,
|
687 |
+
'selectors' => [
|
688 |
+
'{{WRAPPER}} .section_break .wpuf-section-details' => 'color: {{VALUE}};',
|
689 |
+
],
|
690 |
+
]
|
691 |
+
);
|
692 |
+
|
693 |
+
$this->end_controls_tab();
|
694 |
+
$this->end_controls_tabs();
|
695 |
+
|
696 |
+
$this->end_controls_section();
|
697 |
+
|
698 |
+
}
|
699 |
+
|
700 |
+
protected function render() {
|
701 |
+
if ( ! ha_is_weforms_activated() ) {
|
702 |
+
return;
|
703 |
+
}
|
704 |
+
|
705 |
+
$settings = $this->get_settings_for_display();
|
706 |
+
|
707 |
+
if ( ! empty( $settings['form_id'] ) ) {
|
708 |
+
echo ha_do_shortcode( 'weforms', [
|
709 |
+
'id' => $settings['form_id'],
|
710 |
+
] );
|
711 |
+
}
|
712 |
+
}
|
713 |
+
}
|
widgets/wpform/widget.php
CHANGED
@@ -1,646 +1,646 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* WPForm widget class
|
4 |
-
*
|
5 |
-
* @package Happy_Addons
|
6 |
-
*/
|
7 |
-
namespace Happy_Addons\Elementor\Widget;
|
8 |
-
|
9 |
-
use Elementor\Controls_Manager;
|
10 |
-
use Elementor\Group_Control_Border;
|
11 |
-
use Elementor\Group_Control_Box_Shadow;
|
12 |
-
use Elementor\Group_Control_Typography;
|
13 |
-
use Elementor\Scheme_Typography;
|
14 |
-
|
15 |
-
defined( 'ABSPATH' ) || die();
|
16 |
-
|
17 |
-
class WPForm extends Base {
|
18 |
-
|
19 |
-
/**
|
20 |
-
* Get widget title.
|
21 |
-
*
|
22 |
-
* @since 1.0.0
|
23 |
-
* @access public
|
24 |
-
*
|
25 |
-
* @return string Widget title.
|
26 |
-
*/
|
27 |
-
public function get_title() {
|
28 |
-
return __( 'WPForms', 'happy-elementor-addons' );
|
29 |
-
}
|
30 |
-
|
31 |
-
public function get_custom_help_url() {
|
32 |
-
return 'https://happyaddons.com/docs/happy-addons-for-elementor/widgets/wp-forms/';
|
33 |
-
}
|
34 |
-
|
35 |
-
/**
|
36 |
-
* Get widget icon.
|
37 |
-
*
|
38 |
-
* @since 1.0.0
|
39 |
-
* @access public
|
40 |
-
*
|
41 |
-
* @return string Widget icon.
|
42 |
-
*/
|
43 |
-
public function get_icon() {
|
44 |
-
return 'hm hm-form';
|
45 |
-
}
|
46 |
-
|
47 |
-
public function get_keywords() {
|
48 |
-
return [ 'wpf', 'wpform', 'form', 'contact', 'cf7', 'contact form', 'gravity', 'ninja' ];
|
49 |
-
}
|
50 |
-
|
51 |
-
protected function register_content_controls() {
|
52 |
-
$this->start_controls_section(
|
53 |
-
'_section_wpforms',
|
54 |
-
[
|
55 |
-
'label' => ha_is_wpforms_activated() ? __( 'WPForms', 'happy-elementor-addons' ) : __( 'Missing Notice',
|
56 |
-
'happy-elementor-addons' ),
|
57 |
-
'tab' => Controls_Manager::TAB_CONTENT,
|
58 |
-
]
|
59 |
-
);
|
60 |
-
|
61 |
-
if ( ! ha_is_wpforms_activated() ) {
|
62 |
-
$this->add_control(
|
63 |
-
'_wpforms_missing_notice',
|
64 |
-
[
|
65 |
-
'type' => Controls_Manager::RAW_HTML,
|
66 |
-
'raw' => sprintf(
|
67 |
-
__( 'Hello %2$s, looks like %1$s is missing in your site. Please click on the link below and install/activate %1$s. Make sure to refresh this page after installation or activation.', 'happy-elementor-addons' ),
|
68 |
-
'<a href="'.esc_url( admin_url( 'plugin-install.php?s=WPForms&tab=search&type=term' ) ).'" target="_blank" rel="noopener">WPForms</a>',
|
69 |
-
ha_get_current_user_display_name()
|
70 |
-
),
|
71 |
-
'content_classes' => 'elementor-panel-alert elementor-panel-alert-danger',
|
72 |
-
]
|
73 |
-
);
|
74 |
-
|
75 |
-
$this->add_control(
|
76 |
-
'_wpforms_install',
|
77 |
-
[
|
78 |
-
'type' => Controls_Manager::RAW_HTML,
|
79 |
-
'raw' => '<a href="'.esc_url( admin_url( 'plugin-install.php?s=WPForms&tab=search&type=term' ) ).'" target="_blank" rel="noopener">Click to install or activate WPForms</a>',
|
80 |
-
]
|
81 |
-
);
|
82 |
-
$this->end_controls_section();
|
83 |
-
return;
|
84 |
-
}
|
85 |
-
|
86 |
-
$this->add_control(
|
87 |
-
'form_id',
|
88 |
-
[
|
89 |
-
'label' => __( 'Select Your Form', 'happy-elementor-addons' ),
|
90 |
-
'type' => Controls_Manager::SELECT,
|
91 |
-
'label_block' => true,
|
92 |
-
'options' => ['' => __( 'Select a WPForm', 'happy-elementor-addons' ) ] + \ha_get_wpforms(),
|
93 |
-
]
|
94 |
-
);
|
95 |
-
|
96 |
-
$this->end_controls_section();
|
97 |
-
}
|
98 |
-
|
99 |
-
protected function register_style_controls() {
|
100 |
-
$this->start_controls_section(
|
101 |
-
'_section_fields_style',
|
102 |
-
[
|
103 |
-
'label' => __( 'Form Fields', 'happy-elementor-addons' ),
|
104 |
-
'tab' => Controls_Manager::TAB_STYLE,
|
105 |
-
]
|
106 |
-
);
|
107 |
-
|
108 |
-
$this->add_responsive_control(
|
109 |
-
'field_margin',
|
110 |
-
[
|
111 |
-
'label' => __( 'Field Spacing', 'happy-elementor-addons' ),
|
112 |
-
'type' => Controls_Manager::DIMENSIONS,
|
113 |
-
'size_units' => [ 'px', '%' ],
|
114 |
-
'selectors' => [
|
115 |
-
'{{WRAPPER}} .wpforms-field:not(.wpforms-submit), .wpforms-field-required:not(.wpforms-submit)' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
116 |
-
],
|
117 |
-
]
|
118 |
-
);
|
119 |
-
|
120 |
-
$this->add_responsive_control(
|
121 |
-
'field_padding',
|
122 |
-
[
|
123 |
-
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
124 |
-
'type' => Controls_Manager::DIMENSIONS,
|
125 |
-
'size_units' => [ 'px', 'em', '%' ],
|
126 |
-
'selectors' => [
|
127 |
-
'{{WRAPPER}} .wpforms-field input' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
128 |
-
'{{WRAPPER}} .wpforms-field textarea' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
129 |
-
],
|
130 |
-
]
|
131 |
-
);
|
132 |
-
|
133 |
-
$this->add_responsive_control(
|
134 |
-
'field_border_radius',
|
135 |
-
[
|
136 |
-
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
137 |
-
'type' => Controls_Manager::DIMENSIONS,
|
138 |
-
'size_units' => [ 'px', '%' ],
|
139 |
-
'selectors' => [
|
140 |
-
'{{WRAPPER}} .wpforms-field input' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
141 |
-
'{{WRAPPER}} .wpforms-field textarea' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
142 |
-
],
|
143 |
-
]
|
144 |
-
);
|
145 |
-
|
146 |
-
$this->add_group_control(
|
147 |
-
Group_Control_Typography::get_type(),
|
148 |
-
[
|
149 |
-
'name' => 'field_typography',
|
150 |
-
'label' => __( 'Typography', 'happy-elementor-addons' ),
|
151 |
-
'selector' => '{{WRAPPER}} .wpforms-field input, {{WRAPPER}} .wpforms-field-textarea textarea',
|
152 |
-
'scheme' => Scheme_Typography::TYPOGRAPHY_3
|
153 |
-
]
|
154 |
-
);
|
155 |
-
|
156 |
-
$this->add_control(
|
157 |
-
'field_textcolor',
|
158 |
-
[
|
159 |
-
'label' => __( 'Field Text Color', 'happy-elementor-addons' ),
|
160 |
-
'type' => Controls_Manager::COLOR,
|
161 |
-
'selectors' => [
|
162 |
-
'{{WRAPPER}} .wpforms-field input, {{WRAPPER}} .wpforms-field-textarea textarea' => 'color: {{VALUE}}',
|
163 |
-
],
|
164 |
-
]
|
165 |
-
);
|
166 |
-
|
167 |
-
$this->add_control(
|
168 |
-
'field_placeholder_color',
|
169 |
-
[
|
170 |
-
'label' => __( 'Field Placeholder Color', 'happy-elementor-addons' ),
|
171 |
-
'type' => Controls_Manager::COLOR,
|
172 |
-
'selectors' => [
|
173 |
-
'{{WRAPPER}} ::-webkit-input-placeholder' => 'color: {{VALUE}};',
|
174 |
-
'{{WRAPPER}} ::-moz-placeholder' => 'color: {{VALUE}};',
|
175 |
-
'{{WRAPPER}} ::-ms-input-placeholder' => 'color: {{VALUE}};',
|
176 |
-
],
|
177 |
-
]
|
178 |
-
);
|
179 |
-
|
180 |
-
$this->start_controls_tabs( 'tabs_field_state' );
|
181 |
-
|
182 |
-
$this->start_controls_tab(
|
183 |
-
'tab_field_normal',
|
184 |
-
[
|
185 |
-
'label' => __( 'Normal State', 'happy-elementor-addons' ),
|
186 |
-
]
|
187 |
-
);
|
188 |
-
|
189 |
-
$this->add_group_control(
|
190 |
-
Group_Control_Border::get_type(),
|
191 |
-
[
|
192 |
-
'name' => 'field_border',
|
193 |
-
'selector' => '{{WRAPPER}} .wpforms-field input, {{WRAPPER}} .wpforms-field-textarea textarea',
|
194 |
-
]
|
195 |
-
);
|
196 |
-
|
197 |
-
$this->add_group_control(
|
198 |
-
Group_Control_Box_Shadow::get_type(),
|
199 |
-
[
|
200 |
-
'name' => 'field_box_shadow',
|
201 |
-
'selector' => '{{WRAPPER}} .wpforms-field input, {{WRAPPER}} .wpforms-field-textarea textarea',
|
202 |
-
]
|
203 |
-
);
|
204 |
-
|
205 |
-
$this->add_control(
|
206 |
-
'field_bg_color',
|
207 |
-
[
|
208 |
-
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
209 |
-
'type' => Controls_Manager::COLOR,
|
210 |
-
'selectors' => [
|
211 |
-
'{{WRAPPER}} .wpforms-field input, {{WRAPPER}} .wpforms-field-textarea textarea' => 'background-color: {{VALUE}}',
|
212 |
-
],
|
213 |
-
]
|
214 |
-
);
|
215 |
-
|
216 |
-
$this->end_controls_tab();
|
217 |
-
|
218 |
-
$this->start_controls_tab(
|
219 |
-
'tab_field_focus',
|
220 |
-
[
|
221 |
-
'label' => __( 'Focus', 'happy-elementor-addons' ),
|
222 |
-
]
|
223 |
-
);
|
224 |
-
|
225 |
-
$this->add_group_control(
|
226 |
-
Group_Control_Border::get_type(),
|
227 |
-
[
|
228 |
-
'name' => 'field_focus_border',
|
229 |
-
'selector' => '{{WRAPPER}} .wpforms-field input:focus, {{WRAPPER}} .wpforms-field-textarea textarea:focus',
|
230 |
-
]
|
231 |
-
);
|
232 |
-
|
233 |
-
$this->add_group_control(
|
234 |
-
Group_Control_Box_Shadow::get_type(),
|
235 |
-
[
|
236 |
-
'name' => 'field_focus_box_shadow',
|
237 |
-
'exclude' => [
|
238 |
-
'box_shadow_position',
|
239 |
-
],
|
240 |
-
'selector' => '{{WRAPPER}} .wpforms-field input:focus, {{WRAPPER}} .wpforms-field-textarea textarea:focus',
|
241 |
-
]
|
242 |
-
);
|
243 |
-
|
244 |
-
$this->add_control(
|
245 |
-
'field_focus_bg_color',
|
246 |
-
[
|
247 |
-
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
248 |
-
'type' => Controls_Manager::COLOR,
|
249 |
-
'selectors' => [
|
250 |
-
'{{WRAPPER}} .wpforms-field input:focus, {{WRAPPER}} .wpforms-field-textarea textarea:focus' => 'background-color: {{VALUE}}',
|
251 |
-
],
|
252 |
-
]
|
253 |
-
);
|
254 |
-
|
255 |
-
$this->end_controls_tab();
|
256 |
-
$this->end_controls_tabs();
|
257 |
-
|
258 |
-
$this->end_controls_section();
|
259 |
-
|
260 |
-
$this->start_controls_section(
|
261 |
-
'wpf-form-label',
|
262 |
-
[
|
263 |
-
'label' => __( 'Form Fields Label', 'happy-elementor-addons' ),
|
264 |
-
'tab' => Controls_Manager::TAB_STYLE,
|
265 |
-
]
|
266 |
-
);
|
267 |
-
|
268 |
-
$this->add_responsive_control(
|
269 |
-
'label_margin',
|
270 |
-
[
|
271 |
-
'label' => __( 'Margin', 'happy-elementor-addons' ),
|
272 |
-
'type' => Controls_Manager::DIMENSIONS,
|
273 |
-
'size_units' => [ 'px', '%' ],
|
274 |
-
'selectors' => [
|
275 |
-
'{{WRAPPER}} .wpforms-field-container label.wpforms-field-label' => 'display: inline-block; padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
276 |
-
],
|
277 |
-
]
|
278 |
-
);
|
279 |
-
|
280 |
-
$this->add_responsive_control(
|
281 |
-
'label_padding',
|
282 |
-
[
|
283 |
-
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
284 |
-
'type' => Controls_Manager::DIMENSIONS,
|
285 |
-
'size_units' => [ 'px', 'em', '%' ],
|
286 |
-
'selectors' => [
|
287 |
-
'{{WRAPPER}} .wpforms-field-container label.wpforms-field-label' => 'display: inline-block; padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
288 |
-
],
|
289 |
-
]
|
290 |
-
);
|
291 |
-
|
292 |
-
$this->add_control(
|
293 |
-
'hr3',
|
294 |
-
[
|
295 |
-
'type' => Controls_Manager::DIVIDER,
|
296 |
-
'style' => 'thick',
|
297 |
-
]
|
298 |
-
);
|
299 |
-
|
300 |
-
$this->add_group_control(
|
301 |
-
Group_Control_Typography::get_type(),
|
302 |
-
[
|
303 |
-
'name' => 'label_typography',
|
304 |
-
'label' => __( 'Label Typography', 'happy-elementor-addons' ),
|
305 |
-
'selector' => '{{WRAPPER}} .wpforms-field-container label.wpforms-field-label',
|
306 |
-
'scheme' => Scheme_Typography::TYPOGRAPHY_3
|
307 |
-
]
|
308 |
-
);
|
309 |
-
|
310 |
-
$this->add_group_control(
|
311 |
-
Group_Control_Typography::get_type(),
|
312 |
-
[
|
313 |
-
'name' => 'sublabel_typography',
|
314 |
-
'label' => __( 'Sub Label Typography', 'happy-elementor-addons' ),
|
315 |
-
'selector' => '{{WRAPPER}} .wpforms-field-sublabel',
|
316 |
-
'scheme' => Scheme_Typography::TYPOGRAPHY_3
|
317 |
-
]
|
318 |
-
);
|
319 |
-
|
320 |
-
$this->add_group_control(
|
321 |
-
Group_Control_Typography::get_type(),
|
322 |
-
[
|
323 |
-
'name' => 'desc_typography',
|
324 |
-
'label' => __( 'Description Typography', 'happy-elementor-addons' ),
|
325 |
-
'selector' => '{{WRAPPER}} .wpforms-field-description',
|
326 |
-
'scheme' => Scheme_Typography::TYPOGRAPHY_3
|
327 |
-
]
|
328 |
-
);
|
329 |
-
|
330 |
-
$this->add_control(
|
331 |
-
'label_color_popover',
|
332 |
-
[
|
333 |
-
'label' => __( 'Colors', 'happy-elementor-addons' ),
|
334 |
-
'type' => Controls_Manager::POPOVER_TOGGLE,
|
335 |
-
'label_off' => __( '', 'happy-elementor-addons' ),
|
336 |
-
'label_on' => __( 'Custom', 'happy-elementor-addons' ),
|
337 |
-
'return_value' => 'yes',
|
338 |
-
]
|
339 |
-
);
|
340 |
-
|
341 |
-
$this->start_popover();
|
342 |
-
|
343 |
-
$this->add_control(
|
344 |
-
'label_color',
|
345 |
-
[
|
346 |
-
'label' => __( 'Label Text Color', 'happy-elementor-addons' ),
|
347 |
-
'type' => Controls_Manager::COLOR,
|
348 |
-
'selectors' => [
|
349 |
-
'{{WRAPPER}} .wpforms-field-container label.wpforms-field-label' => 'color: {{VALUE}}',
|
350 |
-
],
|
351 |
-
'condition' => [
|
352 |
-
'label_color_popover' => 'yes'
|
353 |
-
],
|
354 |
-
]
|
355 |
-
);
|
356 |
-
|
357 |
-
$this->add_control(
|
358 |
-
'requered_label',
|
359 |
-
[
|
360 |
-
'label' => __( 'Required Label Color', 'happy-elementor-addons' ),
|
361 |
-
'type' => Controls_Manager::COLOR,
|
362 |
-
'selectors' => [
|
363 |
-
'{{WRAPPER}} .wpforms-required-label' => 'color: {{VALUE}}',
|
364 |
-
],
|
365 |
-
'condition' => [
|
366 |
-
'label_color_popover' => 'yes'
|
367 |
-
],
|
368 |
-
]
|
369 |
-
);
|
370 |
-
|
371 |
-
$this->add_control(
|
372 |
-
'sublabel_color',
|
373 |
-
[
|
374 |
-
'label' => __( 'Sub Label Text Color', 'happy-elementor-addons' ),
|
375 |
-
'type' => Controls_Manager::COLOR,
|
376 |
-
'selectors' => [
|
377 |
-
'{{WRAPPER}} .wpforms-field-sublabel' => 'color: {{VALUE}}',
|
378 |
-
],
|
379 |
-
'condition' => [
|
380 |
-
'label_color_popover' => 'yes'
|
381 |
-
],
|
382 |
-
]
|
383 |
-
);
|
384 |
-
|
385 |
-
$this->add_control(
|
386 |
-
'desc_label_color',
|
387 |
-
[
|
388 |
-
'label' => __( 'Description Text Color', 'happy-elementor-addons' ),
|
389 |
-
'type' => Controls_Manager::COLOR,
|
390 |
-
'selectors' => [
|
391 |
-
'{{WRAPPER}} .wpforms-field-description' => 'color: {{VALUE}}',
|
392 |
-
],
|
393 |
-
'condition' => [
|
394 |
-
'label_color_popover' => 'yes'
|
395 |
-
],
|
396 |
-
]
|
397 |
-
);
|
398 |
-
|
399 |
-
$this->end_popover();
|
400 |
-
|
401 |
-
$this->end_controls_section();
|
402 |
-
|
403 |
-
$this->start_controls_section(
|
404 |
-
'submit',
|
405 |
-
[
|
406 |
-
'label' => __( 'Submit Button', 'happy-elementor-addons' ),
|
407 |
-
'tab' => Controls_Manager::TAB_STYLE,
|
408 |
-
]
|
409 |
-
);
|
410 |
-
|
411 |
-
$this->add_control(
|
412 |
-
'submit_btn_width',
|
413 |
-
[
|
414 |
-
'label' => __( 'Button Full Width?', 'happy-elementor-addons' ),
|
415 |
-
'type' => Controls_Manager::SWITCHER,
|
416 |
-
'label_on' => __( 'Yes', 'happy-elementor-addons' ),
|
417 |
-
'label_off' => __( 'No', 'happy-elementor-addons' ),
|
418 |
-
'return_value' => 'yes',
|
419 |
-
'default' => 'yes',
|
420 |
-
]
|
421 |
-
);
|
422 |
-
|
423 |
-
$this->add_responsive_control(
|
424 |
-
'button_width',
|
425 |
-
[
|
426 |
-
'label' => __( 'Button Width', 'happy-elementor-addons' ),
|
427 |
-
'type' => Controls_Manager::SLIDER,
|
428 |
-
'size_units' => [ 'px', '%' ],
|
429 |
-
'condition' => [
|
430 |
-
'submit_btn_width' => 'yes'
|
431 |
-
],
|
432 |
-
'default' => [
|
433 |
-
'unit' => '%',
|
434 |
-
'size' => 100
|
435 |
-
],
|
436 |
-
'range' => [
|
437 |
-
'%' => [
|
438 |
-
'min' => 1,
|
439 |
-
'max' => 100,
|
440 |
-
],
|
441 |
-
'px' => [
|
442 |
-
'min' => 1,
|
443 |
-
'max' => 800,
|
444 |
-
],
|
445 |
-
],
|
446 |
-
'selectors' => [
|
447 |
-
'{{WRAPPER}} .wpforms-submit' => 'display: block; width: {{SIZE}}{{UNIT}};',
|
448 |
-
],
|
449 |
-
]
|
450 |
-
);
|
451 |
-
|
452 |
-
$this->add_responsive_control(
|
453 |
-
'submit_btn_position',
|
454 |
-
[
|
455 |
-
'label' => __( 'Button Position', 'happy-elementor-addons' ),
|
456 |
-
'type' => Controls_Manager::CHOOSE,
|
457 |
-
'options' => [
|
458 |
-
'left' => [
|
459 |
-
'title' => __( 'Left', 'happy-elementor-addons' ),
|
460 |
-
'icon' => 'eicon-h-align-left',
|
461 |
-
],
|
462 |
-
'center' => [
|
463 |
-
'title' => __( 'Center', 'happy-elementor-addons' ),
|
464 |
-
'icon' => 'eicon-h-align-center',
|
465 |
-
],
|
466 |
-
'right' => [
|
467 |
-
'title' => __( 'Right', 'happy-elementor-addons' ),
|
468 |
-
'icon' => 'eicon-h-align-right',
|
469 |
-
],
|
470 |
-
],
|
471 |
-
'condition' => [
|
472 |
-
'submit_btn_width' => '',
|
473 |
-
|
474 |
-
],
|
475 |
-
'desktop_default' => 'left',
|
476 |
-
'toggle' => false,
|
477 |
-
'prefix_class' => 'ha-form-btn--%s',
|
478 |
-
'selectors' => [
|
479 |
-
'{{WRAPPER}} .wpforms-submit-container' => 'text-align: {{Value}};',
|
480 |
-
],
|
481 |
-
]
|
482 |
-
);
|
483 |
-
|
484 |
-
$this->add_responsive_control(
|
485 |
-
'submit_margin',
|
486 |
-
[
|
487 |
-
'label' => __( 'Margin', 'happy-elementor-addons' ),
|
488 |
-
'type' => Controls_Manager::DIMENSIONS,
|
489 |
-
'size_units' => [ 'px', '%' ],
|
490 |
-
'selectors' => [
|
491 |
-
'{{WRAPPER}} .wpforms-submit' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
492 |
-
],
|
493 |
-
]
|
494 |
-
);
|
495 |
-
|
496 |
-
$this->add_responsive_control(
|
497 |
-
'submit_padding',
|
498 |
-
[
|
499 |
-
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
500 |
-
'type' => Controls_Manager::DIMENSIONS,
|
501 |
-
'size_units' => [ 'px', 'em', '%' ],
|
502 |
-
'selectors' => [
|
503 |
-
'{{WRAPPER}} .wpforms-submit' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
504 |
-
],
|
505 |
-
]
|
506 |
-
);
|
507 |
-
|
508 |
-
$this->add_group_control(
|
509 |
-
Group_Control_Typography::get_type(),
|
510 |
-
[
|
511 |
-
'name' => 'submit_typography',
|
512 |
-
'selector' => '{{WRAPPER}} .wpforms-submit',
|
513 |
-
'scheme' => Scheme_Typography::TYPOGRAPHY_4
|
514 |
-
]
|
515 |
-
);
|
516 |
-
|
517 |
-
$this->add_group_control(
|
518 |
-
Group_Control_Border::get_type(),
|
519 |
-
[
|
520 |
-
'name' => 'submit_border',
|
521 |
-
'selector' => '{{WRAPPER}} .wpforms-form .wpforms-submit-container button[type=submit]',
|
522 |
-
]
|
523 |
-
);
|
524 |
-
|
525 |
-
$this->add_control(
|
526 |
-
'submit_border_radius',
|
527 |
-
[
|
528 |
-
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
529 |
-
'type' => Controls_Manager::DIMENSIONS,
|
530 |
-
'size_units' => [ 'px', '%' ],
|
531 |
-
'selectors' => [
|
532 |
-
'{{WRAPPER}} .wpforms-submit' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
533 |
-
],
|
534 |
-
]
|
535 |
-
);
|
536 |
-
|
537 |
-
$this->add_group_control(
|
538 |
-
Group_Control_Box_Shadow::get_type(),
|
539 |
-
[
|
540 |
-
'name' => 'submit_box_shadow',
|
541 |
-
'selector' => '{{WRAPPER}} .wpforms-submit',
|
542 |
-
]
|
543 |
-
);
|
544 |
-
|
545 |
-
$this->add_control(
|
546 |
-
'hr4',
|
547 |
-
[
|
548 |
-
'type' => Controls_Manager::DIVIDER,
|
549 |
-
'style' => 'thick',
|
550 |
-
]
|
551 |
-
);
|
552 |
-
|
553 |
-
$this->start_controls_tabs( 'tabs_button_style' );
|
554 |
-
|
555 |
-
$this->start_controls_tab(
|
556 |
-
'tab_button_normal',
|
557 |
-
[
|
558 |
-
'label' => __( 'Normal', 'happy-elementor-addons' ),
|
559 |
-
]
|
560 |
-
);
|
561 |
-
|
562 |
-
$this->add_control(
|
563 |
-
'submit_color',
|
564 |
-
[
|
565 |
-
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
566 |
-
'type' => Controls_Manager::COLOR,
|
567 |
-
'default' => '',
|
568 |
-
'selectors' => [
|
569 |
-
'{{WRAPPER}} .wpforms-submit' => 'color: {{VALUE}};',
|
570 |
-
],
|
571 |
-
]
|
572 |
-
);
|
573 |
-
|
574 |
-
$this->add_control(
|
575 |
-
'submit_bg_color',
|
576 |
-
[
|
577 |
-
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
578 |
-
'type' => Controls_Manager::COLOR,
|
579 |
-
'selectors' => [
|
580 |
-
'{{WRAPPER}} .wpforms-submit' => 'background-color: {{VALUE}};',
|
581 |
-
],
|
582 |
-
]
|
583 |
-
);
|
584 |
-
|
585 |
-
$this->end_controls_tab();
|
586 |
-
|
587 |
-
$this->start_controls_tab(
|
588 |
-
'tab_button_hover',
|
589 |
-
[
|
590 |
-
'label' => __( 'Hover', 'happy-elementor-addons' ),
|
591 |
-
]
|
592 |
-
);
|
593 |
-
|
594 |
-
$this->add_control(
|
595 |
-
'submit_hover_color',
|
596 |
-
[
|
597 |
-
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
598 |
-
'type' => Controls_Manager::COLOR,
|
599 |
-
'selectors' => [
|
600 |
-
'{{WRAPPER}} .wpforms-submit:hover, {{WRAPPER}} .wpforms-submit:focus' => 'color: {{VALUE}};',
|
601 |
-
],
|
602 |
-
]
|
603 |
-
);
|
604 |
-
|
605 |
-
$this->add_control(
|
606 |
-
'submit_hover_bg_color',
|
607 |
-
[
|
608 |
-
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
609 |
-
'type' => Controls_Manager::COLOR,
|
610 |
-
'selectors' => [
|
611 |
-
'{{WRAPPER}} .wpforms-submit:hover, {{WRAPPER}} .wpforms-submit:focus' => 'background-color: {{VALUE}};',
|
612 |
-
],
|
613 |
-
]
|
614 |
-
);
|
615 |
-
|
616 |
-
$this->add_control(
|
617 |
-
'submit_hover_border_color',
|
618 |
-
[
|
619 |
-
'label' => __( 'Border Color', 'happy-elementor-addons' ),
|
620 |
-
'type' => Controls_Manager::COLOR,
|
621 |
-
'selectors' => [
|
622 |
-
'{{WRAPPER}} .wpforms-submit:hover, {{WRAPPER}} .wpforms-submit:focus' => 'border-color: {{VALUE}};',
|
623 |
-
],
|
624 |
-
]
|
625 |
-
);
|
626 |
-
|
627 |
-
$this->end_controls_tab();
|
628 |
-
$this->end_controls_tabs();
|
629 |
-
|
630 |
-
$this->end_controls_section();
|
631 |
-
}
|
632 |
-
|
633 |
-
protected function render() {
|
634 |
-
if ( ! ha_is_wpforms_activated() ) {
|
635 |
-
return;
|
636 |
-
}
|
637 |
-
|
638 |
-
$settings = $this->get_settings_for_display();
|
639 |
-
|
640 |
-
if ( ! empty( $settings['form_id'] ) ) {
|
641 |
-
echo ha_do_shortcode( 'wpforms', [
|
642 |
-
'id' => $settings['form_id'],
|
643 |
-
] );
|
644 |
-
}
|
645 |
-
}
|
646 |
-
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPForm widget class
|
4 |
+
*
|
5 |
+
* @package Happy_Addons
|
6 |
+
*/
|
7 |
+
namespace Happy_Addons\Elementor\Widget;
|
8 |
+
|
9 |
+
use Elementor\Controls_Manager;
|
10 |
+
use Elementor\Group_Control_Border;
|
11 |
+
use Elementor\Group_Control_Box_Shadow;
|
12 |
+
use Elementor\Group_Control_Typography;
|
13 |
+
use Elementor\Scheme_Typography;
|
14 |
+
|
15 |
+
defined( 'ABSPATH' ) || die();
|
16 |
+
|
17 |
+
class WPForm extends Base {
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Get widget title.
|
21 |
+
*
|
22 |
+
* @since 1.0.0
|
23 |
+
* @access public
|
24 |
+
*
|
25 |
+
* @return string Widget title.
|
26 |
+
*/
|
27 |
+
public function get_title() {
|
28 |
+
return __( 'WPForms', 'happy-elementor-addons' );
|
29 |
+
}
|
30 |
+
|
31 |
+
public function get_custom_help_url() {
|
32 |
+
return 'https://happyaddons.com/docs/happy-addons-for-elementor/widgets/wp-forms/';
|
33 |
+
}
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Get widget icon.
|
37 |
+
*
|
38 |
+
* @since 1.0.0
|
39 |
+
* @access public
|
40 |
+
*
|
41 |
+
* @return string Widget icon.
|
42 |
+
*/
|
43 |
+
public function get_icon() {
|
44 |
+
return 'hm hm-form';
|
45 |
+
}
|
46 |
+
|
47 |
+
public function get_keywords() {
|
48 |
+
return [ 'wpf', 'wpform', 'form', 'contact', 'cf7', 'contact form', 'gravity', 'ninja' ];
|
49 |
+
}
|
50 |
+
|
51 |
+
protected function register_content_controls() {
|
52 |
+
$this->start_controls_section(
|
53 |
+
'_section_wpforms',
|
54 |
+
[
|
55 |
+
'label' => ha_is_wpforms_activated() ? __( 'WPForms', 'happy-elementor-addons' ) : __( 'Missing Notice',
|
56 |
+
'happy-elementor-addons' ),
|
57 |
+
'tab' => Controls_Manager::TAB_CONTENT,
|
58 |
+
]
|
59 |
+
);
|
60 |
+
|
61 |
+
if ( ! ha_is_wpforms_activated() ) {
|
62 |
+
$this->add_control(
|
63 |
+
'_wpforms_missing_notice',
|
64 |
+
[
|
65 |
+
'type' => Controls_Manager::RAW_HTML,
|
66 |
+
'raw' => sprintf(
|
67 |
+
__( 'Hello %2$s, looks like %1$s is missing in your site. Please click on the link below and install/activate %1$s. Make sure to refresh this page after installation or activation.', 'happy-elementor-addons' ),
|
68 |
+
'<a href="'.esc_url( admin_url( 'plugin-install.php?s=WPForms&tab=search&type=term' ) ).'" target="_blank" rel="noopener">WPForms</a>',
|
69 |
+
ha_get_current_user_display_name()
|
70 |
+
),
|
71 |
+
'content_classes' => 'elementor-panel-alert elementor-panel-alert-danger',
|
72 |
+
]
|
73 |
+
);
|
74 |
+
|
75 |
+
$this->add_control(
|
76 |
+
'_wpforms_install',
|
77 |
+
[
|
78 |
+
'type' => Controls_Manager::RAW_HTML,
|
79 |
+
'raw' => '<a href="'.esc_url( admin_url( 'plugin-install.php?s=WPForms&tab=search&type=term' ) ).'" target="_blank" rel="noopener">Click to install or activate WPForms</a>',
|
80 |
+
]
|
81 |
+
);
|
82 |
+
$this->end_controls_section();
|
83 |
+
return;
|
84 |
+
}
|
85 |
+
|
86 |
+
$this->add_control(
|
87 |
+
'form_id',
|
88 |
+
[
|
89 |
+
'label' => __( 'Select Your Form', 'happy-elementor-addons' ),
|
90 |
+
'type' => Controls_Manager::SELECT,
|
91 |
+
'label_block' => true,
|
92 |
+
'options' => ['' => __( 'Select a WPForm', 'happy-elementor-addons' ) ] + \ha_get_wpforms(),
|
93 |
+
]
|
94 |
+
);
|
95 |
+
|
96 |
+
$this->end_controls_section();
|
97 |
+
}
|
98 |
+
|
99 |
+
protected function register_style_controls() {
|
100 |
+
$this->start_controls_section(
|
101 |
+
'_section_fields_style',
|
102 |
+
[
|
103 |
+
'label' => __( 'Form Fields', 'happy-elementor-addons' ),
|
104 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
105 |
+
]
|
106 |
+
);
|
107 |
+
|
108 |
+
$this->add_responsive_control(
|
109 |
+
'field_margin',
|
110 |
+
[
|
111 |
+
'label' => __( 'Field Spacing', 'happy-elementor-addons' ),
|
112 |
+
'type' => Controls_Manager::DIMENSIONS,
|
113 |
+
'size_units' => [ 'px', '%' ],
|
114 |
+
'selectors' => [
|
115 |
+
'{{WRAPPER}} .wpforms-field:not(.wpforms-submit), .wpforms-field-required:not(.wpforms-submit)' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
116 |
+
],
|
117 |
+
]
|
118 |
+
);
|
119 |
+
|
120 |
+
$this->add_responsive_control(
|
121 |
+
'field_padding',
|
122 |
+
[
|
123 |
+
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
124 |
+
'type' => Controls_Manager::DIMENSIONS,
|
125 |
+
'size_units' => [ 'px', 'em', '%' ],
|
126 |
+
'selectors' => [
|
127 |
+
'{{WRAPPER}} .wpforms-field input' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
128 |
+
'{{WRAPPER}} .wpforms-field textarea' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
129 |
+
],
|
130 |
+
]
|
131 |
+
);
|
132 |
+
|
133 |
+
$this->add_responsive_control(
|
134 |
+
'field_border_radius',
|
135 |
+
[
|
136 |
+
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
137 |
+
'type' => Controls_Manager::DIMENSIONS,
|
138 |
+
'size_units' => [ 'px', '%' ],
|
139 |
+
'selectors' => [
|
140 |
+
'{{WRAPPER}} .wpforms-field input' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
141 |
+
'{{WRAPPER}} .wpforms-field textarea' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
142 |
+
],
|
143 |
+
]
|
144 |
+
);
|
145 |
+
|
146 |
+
$this->add_group_control(
|
147 |
+
Group_Control_Typography::get_type(),
|
148 |
+
[
|
149 |
+
'name' => 'field_typography',
|
150 |
+
'label' => __( 'Typography', 'happy-elementor-addons' ),
|
151 |
+
'selector' => '{{WRAPPER}} .wpforms-field input, {{WRAPPER}} .wpforms-field-textarea textarea',
|
152 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_3
|
153 |
+
]
|
154 |
+
);
|
155 |
+
|
156 |
+
$this->add_control(
|
157 |
+
'field_textcolor',
|
158 |
+
[
|
159 |
+
'label' => __( 'Field Text Color', 'happy-elementor-addons' ),
|
160 |
+
'type' => Controls_Manager::COLOR,
|
161 |
+
'selectors' => [
|
162 |
+
'{{WRAPPER}} .wpforms-field input, {{WRAPPER}} .wpforms-field-textarea textarea' => 'color: {{VALUE}}',
|
163 |
+
],
|
164 |
+
]
|
165 |
+
);
|
166 |
+
|
167 |
+
$this->add_control(
|
168 |
+
'field_placeholder_color',
|
169 |
+
[
|
170 |
+
'label' => __( 'Field Placeholder Color', 'happy-elementor-addons' ),
|
171 |
+
'type' => Controls_Manager::COLOR,
|
172 |
+
'selectors' => [
|
173 |
+
'{{WRAPPER}} ::-webkit-input-placeholder' => 'color: {{VALUE}};',
|
174 |
+
'{{WRAPPER}} ::-moz-placeholder' => 'color: {{VALUE}};',
|
175 |
+
'{{WRAPPER}} ::-ms-input-placeholder' => 'color: {{VALUE}};',
|
176 |
+
],
|
177 |
+
]
|
178 |
+
);
|
179 |
+
|
180 |
+
$this->start_controls_tabs( 'tabs_field_state' );
|
181 |
+
|
182 |
+
$this->start_controls_tab(
|
183 |
+
'tab_field_normal',
|
184 |
+
[
|
185 |
+
'label' => __( 'Normal State', 'happy-elementor-addons' ),
|
186 |
+
]
|
187 |
+
);
|
188 |
+
|
189 |
+
$this->add_group_control(
|
190 |
+
Group_Control_Border::get_type(),
|
191 |
+
[
|
192 |
+
'name' => 'field_border',
|
193 |
+
'selector' => '{{WRAPPER}} .wpforms-field input, {{WRAPPER}} .wpforms-field-textarea textarea',
|
194 |
+
]
|
195 |
+
);
|
196 |
+
|
197 |
+
$this->add_group_control(
|
198 |
+
Group_Control_Box_Shadow::get_type(),
|
199 |
+
[
|
200 |
+
'name' => 'field_box_shadow',
|
201 |
+
'selector' => '{{WRAPPER}} .wpforms-field input, {{WRAPPER}} .wpforms-field-textarea textarea',
|
202 |
+
]
|
203 |
+
);
|
204 |
+
|
205 |
+
$this->add_control(
|
206 |
+
'field_bg_color',
|
207 |
+
[
|
208 |
+
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
209 |
+
'type' => Controls_Manager::COLOR,
|
210 |
+
'selectors' => [
|
211 |
+
'{{WRAPPER}} .wpforms-field input, {{WRAPPER}} .wpforms-field-textarea textarea' => 'background-color: {{VALUE}}',
|
212 |
+
],
|
213 |
+
]
|
214 |
+
);
|
215 |
+
|
216 |
+
$this->end_controls_tab();
|
217 |
+
|
218 |
+
$this->start_controls_tab(
|
219 |
+
'tab_field_focus',
|
220 |
+
[
|
221 |
+
'label' => __( 'Focus', 'happy-elementor-addons' ),
|
222 |
+
]
|
223 |
+
);
|
224 |
+
|
225 |
+
$this->add_group_control(
|
226 |
+
Group_Control_Border::get_type(),
|
227 |
+
[
|
228 |
+
'name' => 'field_focus_border',
|
229 |
+
'selector' => '{{WRAPPER}} .wpforms-field input:focus, {{WRAPPER}} .wpforms-field-textarea textarea:focus',
|
230 |
+
]
|
231 |
+
);
|
232 |
+
|
233 |
+
$this->add_group_control(
|
234 |
+
Group_Control_Box_Shadow::get_type(),
|
235 |
+
[
|
236 |
+
'name' => 'field_focus_box_shadow',
|
237 |
+
'exclude' => [
|
238 |
+
'box_shadow_position',
|
239 |
+
],
|
240 |
+
'selector' => '{{WRAPPER}} .wpforms-field input:focus, {{WRAPPER}} .wpforms-field-textarea textarea:focus',
|
241 |
+
]
|
242 |
+
);
|
243 |
+
|
244 |
+
$this->add_control(
|
245 |
+
'field_focus_bg_color',
|
246 |
+
[
|
247 |
+
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
248 |
+
'type' => Controls_Manager::COLOR,
|
249 |
+
'selectors' => [
|
250 |
+
'{{WRAPPER}} .wpforms-field input:focus, {{WRAPPER}} .wpforms-field-textarea textarea:focus' => 'background-color: {{VALUE}}',
|
251 |
+
],
|
252 |
+
]
|
253 |
+
);
|
254 |
+
|
255 |
+
$this->end_controls_tab();
|
256 |
+
$this->end_controls_tabs();
|
257 |
+
|
258 |
+
$this->end_controls_section();
|
259 |
+
|
260 |
+
$this->start_controls_section(
|
261 |
+
'wpf-form-label',
|
262 |
+
[
|
263 |
+
'label' => __( 'Form Fields Label', 'happy-elementor-addons' ),
|
264 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
265 |
+
]
|
266 |
+
);
|
267 |
+
|
268 |
+
$this->add_responsive_control(
|
269 |
+
'label_margin',
|
270 |
+
[
|
271 |
+
'label' => __( 'Margin', 'happy-elementor-addons' ),
|
272 |
+
'type' => Controls_Manager::DIMENSIONS,
|
273 |
+
'size_units' => [ 'px', '%' ],
|
274 |
+
'selectors' => [
|
275 |
+
'{{WRAPPER}} .wpforms-field-container label.wpforms-field-label' => 'display: inline-block; padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
276 |
+
],
|
277 |
+
]
|
278 |
+
);
|
279 |
+
|
280 |
+
$this->add_responsive_control(
|
281 |
+
'label_padding',
|
282 |
+
[
|
283 |
+
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
284 |
+
'type' => Controls_Manager::DIMENSIONS,
|
285 |
+
'size_units' => [ 'px', 'em', '%' ],
|
286 |
+
'selectors' => [
|
287 |
+
'{{WRAPPER}} .wpforms-field-container label.wpforms-field-label' => 'display: inline-block; padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
288 |
+
],
|
289 |
+
]
|
290 |
+
);
|
291 |
+
|
292 |
+
$this->add_control(
|
293 |
+
'hr3',
|
294 |
+
[
|
295 |
+
'type' => Controls_Manager::DIVIDER,
|
296 |
+
'style' => 'thick',
|
297 |
+
]
|
298 |
+
);
|
299 |
+
|
300 |
+
$this->add_group_control(
|
301 |
+
Group_Control_Typography::get_type(),
|
302 |
+
[
|
303 |
+
'name' => 'label_typography',
|
304 |
+
'label' => __( 'Label Typography', 'happy-elementor-addons' ),
|
305 |
+
'selector' => '{{WRAPPER}} .wpforms-field-container label.wpforms-field-label',
|
306 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_3
|
307 |
+
]
|
308 |
+
);
|
309 |
+
|
310 |
+
$this->add_group_control(
|
311 |
+
Group_Control_Typography::get_type(),
|
312 |
+
[
|
313 |
+
'name' => 'sublabel_typography',
|
314 |
+
'label' => __( 'Sub Label Typography', 'happy-elementor-addons' ),
|
315 |
+
'selector' => '{{WRAPPER}} .wpforms-field-sublabel',
|
316 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_3
|
317 |
+
]
|
318 |
+
);
|
319 |
+
|
320 |
+
$this->add_group_control(
|
321 |
+
Group_Control_Typography::get_type(),
|
322 |
+
[
|
323 |
+
'name' => 'desc_typography',
|
324 |
+
'label' => __( 'Description Typography', 'happy-elementor-addons' ),
|
325 |
+
'selector' => '{{WRAPPER}} .wpforms-field-description',
|
326 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_3
|
327 |
+
]
|
328 |
+
);
|
329 |
+
|
330 |
+
$this->add_control(
|
331 |
+
'label_color_popover',
|
332 |
+
[
|
333 |
+
'label' => __( 'Colors', 'happy-elementor-addons' ),
|
334 |
+
'type' => Controls_Manager::POPOVER_TOGGLE,
|
335 |
+
'label_off' => __( '', 'happy-elementor-addons' ),
|
336 |
+
'label_on' => __( 'Custom', 'happy-elementor-addons' ),
|
337 |
+
'return_value' => 'yes',
|
338 |
+
]
|
339 |
+
);
|
340 |
+
|
341 |
+
$this->start_popover();
|
342 |
+
|
343 |
+
$this->add_control(
|
344 |
+
'label_color',
|
345 |
+
[
|
346 |
+
'label' => __( 'Label Text Color', 'happy-elementor-addons' ),
|
347 |
+
'type' => Controls_Manager::COLOR,
|
348 |
+
'selectors' => [
|
349 |
+
'{{WRAPPER}} .wpforms-field-container label.wpforms-field-label' => 'color: {{VALUE}}',
|
350 |
+
],
|
351 |
+
'condition' => [
|
352 |
+
'label_color_popover' => 'yes'
|
353 |
+
],
|
354 |
+
]
|
355 |
+
);
|
356 |
+
|
357 |
+
$this->add_control(
|
358 |
+
'requered_label',
|
359 |
+
[
|
360 |
+
'label' => __( 'Required Label Color', 'happy-elementor-addons' ),
|
361 |
+
'type' => Controls_Manager::COLOR,
|
362 |
+
'selectors' => [
|
363 |
+
'{{WRAPPER}} .wpforms-required-label' => 'color: {{VALUE}}',
|
364 |
+
],
|
365 |
+
'condition' => [
|
366 |
+
'label_color_popover' => 'yes'
|
367 |
+
],
|
368 |
+
]
|
369 |
+
);
|
370 |
+
|
371 |
+
$this->add_control(
|
372 |
+
'sublabel_color',
|
373 |
+
[
|
374 |
+
'label' => __( 'Sub Label Text Color', 'happy-elementor-addons' ),
|
375 |
+
'type' => Controls_Manager::COLOR,
|
376 |
+
'selectors' => [
|
377 |
+
'{{WRAPPER}} .wpforms-field-sublabel' => 'color: {{VALUE}}',
|
378 |
+
],
|
379 |
+
'condition' => [
|
380 |
+
'label_color_popover' => 'yes'
|
381 |
+
],
|
382 |
+
]
|
383 |
+
);
|
384 |
+
|
385 |
+
$this->add_control(
|
386 |
+
'desc_label_color',
|
387 |
+
[
|
388 |
+
'label' => __( 'Description Text Color', 'happy-elementor-addons' ),
|
389 |
+
'type' => Controls_Manager::COLOR,
|
390 |
+
'selectors' => [
|
391 |
+
'{{WRAPPER}} .wpforms-field-description' => 'color: {{VALUE}}',
|
392 |
+
],
|
393 |
+
'condition' => [
|
394 |
+
'label_color_popover' => 'yes'
|
395 |
+
],
|
396 |
+
]
|
397 |
+
);
|
398 |
+
|
399 |
+
$this->end_popover();
|
400 |
+
|
401 |
+
$this->end_controls_section();
|
402 |
+
|
403 |
+
$this->start_controls_section(
|
404 |
+
'submit',
|
405 |
+
[
|
406 |
+
'label' => __( 'Submit Button', 'happy-elementor-addons' ),
|
407 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
408 |
+
]
|
409 |
+
);
|
410 |
+
|
411 |
+
$this->add_control(
|
412 |
+
'submit_btn_width',
|
413 |
+
[
|
414 |
+
'label' => __( 'Button Full Width?', 'happy-elementor-addons' ),
|
415 |
+
'type' => Controls_Manager::SWITCHER,
|
416 |
+
'label_on' => __( 'Yes', 'happy-elementor-addons' ),
|
417 |
+
'label_off' => __( 'No', 'happy-elementor-addons' ),
|
418 |
+
'return_value' => 'yes',
|
419 |
+
'default' => 'yes',
|
420 |
+
]
|
421 |
+
);
|
422 |
+
|
423 |
+
$this->add_responsive_control(
|
424 |
+
'button_width',
|
425 |
+
[
|
426 |
+
'label' => __( 'Button Width', 'happy-elementor-addons' ),
|
427 |
+
'type' => Controls_Manager::SLIDER,
|
428 |
+
'size_units' => [ 'px', '%' ],
|
429 |
+
'condition' => [
|
430 |
+
'submit_btn_width' => 'yes'
|
431 |
+
],
|
432 |
+
'default' => [
|
433 |
+
'unit' => '%',
|
434 |
+
'size' => 100
|
435 |
+
],
|
436 |
+
'range' => [
|
437 |
+
'%' => [
|
438 |
+
'min' => 1,
|
439 |
+
'max' => 100,
|
440 |
+
],
|
441 |
+
'px' => [
|
442 |
+
'min' => 1,
|
443 |
+
'max' => 800,
|
444 |
+
],
|
445 |
+
],
|
446 |
+
'selectors' => [
|
447 |
+
'{{WRAPPER}} .wpforms-submit' => 'display: block; width: {{SIZE}}{{UNIT}};',
|
448 |
+
],
|
449 |
+
]
|
450 |
+
);
|
451 |
+
|
452 |
+
$this->add_responsive_control(
|
453 |
+
'submit_btn_position',
|
454 |
+
[
|
455 |
+
'label' => __( 'Button Position', 'happy-elementor-addons' ),
|
456 |
+
'type' => Controls_Manager::CHOOSE,
|
457 |
+
'options' => [
|
458 |
+
'left' => [
|
459 |
+
'title' => __( 'Left', 'happy-elementor-addons' ),
|
460 |
+
'icon' => 'eicon-h-align-left',
|
461 |
+
],
|
462 |
+
'center' => [
|
463 |
+
'title' => __( 'Center', 'happy-elementor-addons' ),
|
464 |
+
'icon' => 'eicon-h-align-center',
|
465 |
+
],
|
466 |
+
'right' => [
|
467 |
+
'title' => __( 'Right', 'happy-elementor-addons' ),
|
468 |
+
'icon' => 'eicon-h-align-right',
|
469 |
+
],
|
470 |
+
],
|
471 |
+
'condition' => [
|
472 |
+
'submit_btn_width' => '',
|
473 |
+
|
474 |
+
],
|
475 |
+
'desktop_default' => 'left',
|
476 |
+
'toggle' => false,
|
477 |
+
'prefix_class' => 'ha-form-btn--%s',
|
478 |
+
'selectors' => [
|
479 |
+
'{{WRAPPER}} .wpforms-submit-container' => 'text-align: {{Value}};',
|
480 |
+
],
|
481 |
+
]
|
482 |
+
);
|
483 |
+
|
484 |
+
$this->add_responsive_control(
|
485 |
+
'submit_margin',
|
486 |
+
[
|
487 |
+
'label' => __( 'Margin', 'happy-elementor-addons' ),
|
488 |
+
'type' => Controls_Manager::DIMENSIONS,
|
489 |
+
'size_units' => [ 'px', '%' ],
|
490 |
+
'selectors' => [
|
491 |
+
'{{WRAPPER}} .wpforms-submit' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
492 |
+
],
|
493 |
+
]
|
494 |
+
);
|
495 |
+
|
496 |
+
$this->add_responsive_control(
|
497 |
+
'submit_padding',
|
498 |
+
[
|
499 |
+
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
500 |
+
'type' => Controls_Manager::DIMENSIONS,
|
501 |
+
'size_units' => [ 'px', 'em', '%' ],
|
502 |
+
'selectors' => [
|
503 |
+
'{{WRAPPER}} .wpforms-submit' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
504 |
+
],
|
505 |
+
]
|
506 |
+
);
|
507 |
+
|
508 |
+
$this->add_group_control(
|
509 |
+
Group_Control_Typography::get_type(),
|
510 |
+
[
|
511 |
+
'name' => 'submit_typography',
|
512 |
+
'selector' => '{{WRAPPER}} .wpforms-submit',
|
513 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_4
|
514 |
+
]
|
515 |
+
);
|
516 |
+
|
517 |
+
$this->add_group_control(
|
518 |
+
Group_Control_Border::get_type(),
|
519 |
+
[
|
520 |
+
'name' => 'submit_border',
|
521 |
+
'selector' => '{{WRAPPER}} .wpforms-form .wpforms-submit-container button[type=submit]',
|
522 |
+
]
|
523 |
+
);
|
524 |
+
|
525 |
+
$this->add_control(
|
526 |
+
'submit_border_radius',
|
527 |
+
[
|
528 |
+
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
529 |
+
'type' => Controls_Manager::DIMENSIONS,
|
530 |
+
'size_units' => [ 'px', '%' ],
|
531 |
+
'selectors' => [
|
532 |
+
'{{WRAPPER}} .wpforms-submit' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
533 |
+
],
|
534 |
+
]
|
535 |
+
);
|
536 |
+
|
537 |
+
$this->add_group_control(
|
538 |
+
Group_Control_Box_Shadow::get_type(),
|
539 |
+
[
|
540 |
+
'name' => 'submit_box_shadow',
|
541 |
+
'selector' => '{{WRAPPER}} .wpforms-submit',
|
542 |
+
]
|
543 |
+
);
|
544 |
+
|
545 |
+
$this->add_control(
|
546 |
+
'hr4',
|
547 |
+
[
|
548 |
+
'type' => Controls_Manager::DIVIDER,
|
549 |
+
'style' => 'thick',
|
550 |
+
]
|
551 |
+
);
|
552 |
+
|
553 |
+
$this->start_controls_tabs( 'tabs_button_style' );
|
554 |
+
|
555 |
+
$this->start_controls_tab(
|
556 |
+
'tab_button_normal',
|
557 |
+
[
|
558 |
+
'label' => __( 'Normal', 'happy-elementor-addons' ),
|
559 |
+
]
|
560 |
+
);
|
561 |
+
|
562 |
+
$this->add_control(
|
563 |
+
'submit_color',
|
564 |
+
[
|
565 |
+
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
566 |
+
'type' => Controls_Manager::COLOR,
|
567 |
+
'default' => '',
|
568 |
+
'selectors' => [
|
569 |
+
'{{WRAPPER}} .wpforms-submit' => 'color: {{VALUE}};',
|
570 |
+
],
|
571 |
+
]
|
572 |
+
);
|
573 |
+
|
574 |
+
$this->add_control(
|
575 |
+
'submit_bg_color',
|
576 |
+
[
|
577 |
+
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
578 |
+
'type' => Controls_Manager::COLOR,
|
579 |
+
'selectors' => [
|
580 |
+
'{{WRAPPER}} .wpforms-submit' => 'background-color: {{VALUE}};',
|
581 |
+
],
|
582 |
+
]
|
583 |
+
);
|
584 |
+
|
585 |
+
$this->end_controls_tab();
|
586 |
+
|
587 |
+
$this->start_controls_tab(
|
588 |
+
'tab_button_hover',
|
589 |
+
[
|
590 |
+
'label' => __( 'Hover', 'happy-elementor-addons' ),
|
591 |
+
]
|
592 |
+
);
|
593 |
+
|
594 |
+
$this->add_control(
|
595 |
+
'submit_hover_color',
|
596 |
+
[
|
597 |
+
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
598 |
+
'type' => Controls_Manager::COLOR,
|
599 |
+
'selectors' => [
|
600 |
+
'{{WRAPPER}} .wpforms-submit:hover, {{WRAPPER}} .wpforms-submit:focus' => 'color: {{VALUE}};',
|
601 |
+
],
|
602 |
+
]
|
603 |
+
);
|
604 |
+
|
605 |
+
$this->add_control(
|
606 |
+
'submit_hover_bg_color',
|
607 |
+
[
|
608 |
+
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
609 |
+
'type' => Controls_Manager::COLOR,
|
610 |
+
'selectors' => [
|
611 |
+
'{{WRAPPER}} .wpforms-submit:hover, {{WRAPPER}} .wpforms-submit:focus' => 'background-color: {{VALUE}};',
|
612 |
+
],
|
613 |
+
]
|
614 |
+
);
|
615 |
+
|
616 |
+
$this->add_control(
|
617 |
+
'submit_hover_border_color',
|
618 |
+
[
|
619 |
+
'label' => __( 'Border Color', 'happy-elementor-addons' ),
|
620 |
+
'type' => Controls_Manager::COLOR,
|
621 |
+
'selectors' => [
|
622 |
+
'{{WRAPPER}} .wpforms-submit:hover, {{WRAPPER}} .wpforms-submit:focus' => 'border-color: {{VALUE}};',
|
623 |
+
],
|
624 |
+
]
|
625 |
+
);
|
626 |
+
|
627 |
+
$this->end_controls_tab();
|
628 |
+
$this->end_controls_tabs();
|
629 |
+
|
630 |
+
$this->end_controls_section();
|
631 |
+
}
|
632 |
+
|
633 |
+
protected function render() {
|
634 |
+
if ( ! ha_is_wpforms_activated() ) {
|
635 |
+
return;
|
636 |
+
}
|
637 |
+
|
638 |
+
$settings = $this->get_settings_for_display();
|
639 |
+
|
640 |
+
if ( ! empty( $settings['form_id'] ) ) {
|
641 |
+
echo ha_do_shortcode( 'wpforms', [
|
642 |
+
'id' => $settings['form_id'],
|
643 |
+
] );
|
644 |
+
}
|
645 |
+
}
|
646 |
+
}
|
wpml/data-table.php
ADDED
@@ -0,0 +1,106 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Data Table
|
4 |
+
*/
|
5 |
+
namespace Happy_Addons\Elementor;
|
6 |
+
|
7 |
+
defined( 'ABSPATH' ) || die();
|
8 |
+
|
9 |
+
class WPML_Data_Table_Column_Data extends \WPML_Elementor_Module_With_Items {
|
10 |
+
|
11 |
+
/**
|
12 |
+
* @return string
|
13 |
+
*/
|
14 |
+
public function get_items_field() {
|
15 |
+
return 'columns_data';
|
16 |
+
}
|
17 |
+
|
18 |
+
/**
|
19 |
+
* @return array
|
20 |
+
*/
|
21 |
+
public function get_fields() {
|
22 |
+
return [
|
23 |
+
'column_name',
|
24 |
+
];
|
25 |
+
}
|
26 |
+
|
27 |
+
/**
|
28 |
+
* @param string $field
|
29 |
+
*
|
30 |
+
* @return string
|
31 |
+
*/
|
32 |
+
protected function get_title( $field ) {
|
33 |
+
switch ( $field ) {
|
34 |
+
case 'column_name':
|
35 |
+
return __( 'Data Table: Column Name', 'happy-elementor-addons' );
|
36 |
+
default:
|
37 |
+
return '';
|
38 |
+
}
|
39 |
+
}
|
40 |
+
|
41 |
+
/**
|
42 |
+
* @param string $field
|
43 |
+
*
|
44 |
+
* @return string
|
45 |
+
*/
|
46 |
+
protected function get_editor_type( $field ) {
|
47 |
+
switch ( $field ) {
|
48 |
+
case 'column_name':
|
49 |
+
return 'LINE';
|
50 |
+
default:
|
51 |
+
return '';
|
52 |
+
}
|
53 |
+
}
|
54 |
+
}
|
55 |
+
|
56 |
+
class WPML_Data_Table_Row_Data extends \WPML_Elementor_Module_With_Items {
|
57 |
+
|
58 |
+
/**
|
59 |
+
* @return string
|
60 |
+
*/
|
61 |
+
public function get_items_field() {
|
62 |
+
return 'rows_data';
|
63 |
+
}
|
64 |
+
|
65 |
+
/**
|
66 |
+
* @return array
|
67 |
+
*/
|
68 |
+
public function get_fields() {
|
69 |
+
return [
|
70 |
+
'cell_name',
|
71 |
+
'cell_link' => ['url']
|
72 |
+
];
|
73 |
+
}
|
74 |
+
|
75 |
+
/**
|
76 |
+
* @param string $field
|
77 |
+
*
|
78 |
+
* @return string
|
79 |
+
*/
|
80 |
+
protected function get_title( $field ) {
|
81 |
+
switch ( $field ) {
|
82 |
+
case 'cell_name':
|
83 |
+
return __( 'Data Table: Cell Title', 'happy-elementor-addons' );
|
84 |
+
case 'url':
|
85 |
+
return __( 'Data Table: Cell Link', 'happy-elementor-addons' );
|
86 |
+
default:
|
87 |
+
return '';
|
88 |
+
}
|
89 |
+
}
|
90 |
+
|
91 |
+
/**
|
92 |
+
* @param string $field
|
93 |
+
*
|
94 |
+
* @return string
|
95 |
+
*/
|
96 |
+
protected function get_editor_type( $field ) {
|
97 |
+
switch ( $field ) {
|
98 |
+
case 'cell_name':
|
99 |
+
return 'LINE';
|
100 |
+
case 'url':
|
101 |
+
return 'LINK';
|
102 |
+
default:
|
103 |
+
return '';
|
104 |
+
}
|
105 |
+
}
|
106 |
+
}
|
wpml/horizontal-timeline.php
ADDED
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Horizontal Timeline
|
4 |
+
*/
|
5 |
+
namespace Happy_Addons\Elementor;
|
6 |
+
|
7 |
+
defined( 'ABSPATH' ) || die();
|
8 |
+
|
9 |
+
class WPML_Horizontal_Timeline extends \WPML_Elementor_Module_With_Items {
|
10 |
+
|
11 |
+
/**
|
12 |
+
* @return string
|
13 |
+
*/
|
14 |
+
public function get_items_field() {
|
15 |
+
return 'timeline';
|
16 |
+
}
|
17 |
+
|
18 |
+
/**
|
19 |
+
* @return array
|
20 |
+
*/
|
21 |
+
public function get_fields() {
|
22 |
+
return [
|
23 |
+
'event_date',
|
24 |
+
'event_title',
|
25 |
+
'event_subtitle',
|
26 |
+
'event_description',
|
27 |
+
];
|
28 |
+
}
|
29 |
+
|
30 |
+
/**
|
31 |
+
* @param string $field
|
32 |
+
*
|
33 |
+
* @return string
|
34 |
+
*/
|
35 |
+
protected function get_title( $field ) {
|
36 |
+
if ( $field === 'event_date' ) {
|
37 |
+
return __( 'Horizontal Timeline: Date', 'happy-elementor-addons' );
|
38 |
+
}
|
39 |
+
|
40 |
+
if ( $field === 'event_title' ) {
|
41 |
+
return __( 'Horizontal Timeline: Title', 'happy-elementor-addons' );
|
42 |
+
}
|
43 |
+
|
44 |
+
if ( $field === 'event_subtitle' ) {
|
45 |
+
return __( 'Horizontal Timeline: Subtitle', 'happy-elementor-addons' );
|
46 |
+
}
|
47 |
+
|
48 |
+
if ( $field === 'event_description' ) {
|
49 |
+
return __( 'Horizontal Timeline: Description', 'happy-elementor-addons' );
|
50 |
+
}
|
51 |
+
}
|
52 |
+
|
53 |
+
/**
|
54 |
+
* @param string $field
|
55 |
+
*
|
56 |
+
* @return string
|
57 |
+
*/
|
58 |
+
protected function get_editor_type( $field ) {
|
59 |
+
if ( $field === 'event_date' ) {
|
60 |
+
return 'LINE';
|
61 |
+
}
|
62 |
+
|
63 |
+
if ( $field === 'event_title' ) {
|
64 |
+
return 'LINE';
|
65 |
+
}
|
66 |
+
|
67 |
+
if ( $field === 'event_subtitle' ) {
|
68 |
+
return 'LINE';
|
69 |
+
}
|
70 |
+
|
71 |
+
if ( $field === 'event_description' ) {
|
72 |
+
return 'AREA';
|
73 |
+
}
|
74 |
+
}
|
75 |
+
}
|