Email Subscribers & Newsletters - Version 4.4.0

Version Description

Download this release

Release Info

Developer Icegram
Plugin Icon 128x128 Email Subscribers & Newsletters
Version 4.4.0
Comparing to
See all releases

Code changes from version 4.3.13 to 4.4.0

email-subscribers.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Email Subscribers & Newsletters
4
  * Plugin URI: https://www.icegram.com/
5
  * Description: Add subscription forms on website, send HTML newsletters & automatically notify subscribers about new blog posts once it is published.
6
- * Version: 4.3.13
7
  * Author: Icegram
8
  * Author URI: https://www.icegram.com/
9
  * Requires at least: 3.9
@@ -111,7 +111,7 @@ if ( $is_premium ) {
111
  /* ***************************** Initial Compatibility Work (End) ******************* */
112
 
113
  if ( ! defined( 'ES_PLUGIN_VERSION' ) ) {
114
- define( 'ES_PLUGIN_VERSION', '4.3.13' );
115
  }
116
 
117
  // Plugin Folder Path.
3
  * Plugin Name: Email Subscribers & Newsletters
4
  * Plugin URI: https://www.icegram.com/
5
  * Description: Add subscription forms on website, send HTML newsletters & automatically notify subscribers about new blog posts once it is published.
6
+ * Version: 4.4.0
7
  * Author: Icegram
8
  * Author URI: https://www.icegram.com/
9
  * Requires at least: 3.9
111
  /* ***************************** Initial Compatibility Work (End) ******************* */
112
 
113
  if ( ! defined( 'ES_PLUGIN_VERSION' ) ) {
114
+ define( 'ES_PLUGIN_VERSION', '4.4.0' );
115
  }
116
 
117
  // Plugin Folder Path.
lite/admin/class-email-subscribers-admin.php CHANGED
@@ -94,13 +94,20 @@ class Email_Subscribers_Admin {
94
  */
95
 
96
  wp_enqueue_style( $this->email_subscribers, plugin_dir_url( __FILE__ ) . 'css/email-subscribers-admin.css', array(), $this->version, 'all' );
 
 
97
 
98
  $get_page = ig_es_get_request_data( 'page' );
99
 
100
  if ( ! empty( $get_page ) && 'es_settings' === $get_page ) {
101
- // wp_enqueue_style( 'thickbox' );
102
  wp_enqueue_style( 'email-jquery-ui', plugin_dir_url( __FILE__ ) . 'css/jquery-ui.css', array(), $this->version, 'all' );
103
  }
 
 
 
 
 
 
104
  }
105
 
106
  /**
@@ -115,7 +122,12 @@ class Email_Subscribers_Admin {
115
  }
116
 
117
  wp_enqueue_script( $this->email_subscribers, plugin_dir_url( __FILE__ ) . 'js/email-subscribers-admin.js', array( 'jquery', 'jquery-ui-core', 'jquery-ui-tabs' ), $this->version, false );
118
- wp_enqueue_script( 'custom', plugin_dir_url( __FILE__ ) . 'js/es-onboarding.js', array( 'jquery' ), $this->version, false );
 
 
 
 
 
119
  }
120
 
121
  public function remove_submenu() {
@@ -540,4 +552,21 @@ class Email_Subscribers_Admin {
540
  return $status;
541
  }
542
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
543
  }
94
  */
95
 
96
  wp_enqueue_style( $this->email_subscribers, plugin_dir_url( __FILE__ ) . 'css/email-subscribers-admin.css', array(), $this->version, 'all' );
97
+
98
+
99
 
100
  $get_page = ig_es_get_request_data( 'page' );
101
 
102
  if ( ! empty( $get_page ) && 'es_settings' === $get_page ) {
 
103
  wp_enqueue_style( 'email-jquery-ui', plugin_dir_url( __FILE__ ) . 'css/jquery-ui.css', array(), $this->version, 'all' );
104
  }
105
+
106
+ if ( ! empty( $get_page ) && 'es_dashboard' === $get_page ) {
107
+ wp_enqueue_style( 'ig-es-style', plugin_dir_url( __FILE__ ) . 'css/style.css', array(), $this->version, 'all' );
108
+ }
109
+
110
+
111
  }
112
 
113
  /**
122
  }
123
 
124
  wp_enqueue_script( $this->email_subscribers, plugin_dir_url( __FILE__ ) . 'js/email-subscribers-admin.js', array( 'jquery', 'jquery-ui-core', 'jquery-ui-tabs' ), $this->version, false );
125
+ wp_enqueue_script( 'custom', plugin_dir_url( __FILE__ ) . 'js/es-onboarding.js', array( 'jquery' ), $this->version, true );
126
+
127
+ $get_page = ig_es_get_request_data( 'page' );
128
+ if ( ! empty( $get_page ) && 'es_dashboard' === $get_page ) {
129
+ wp_enqueue_script( 'frappe-js', plugin_dir_url( __FILE__ ) . 'js/frappe-charts.min.life.js', array( 'jquery' ), $this->version, false );
130
+ }
131
  }
132
 
133
  public function remove_submenu() {
552
  return $status;
553
  }
554
 
555
+ /**
556
+ * Remove all admin notices
557
+ * @since 4.4.0
558
+ */
559
+ public function remove_other_admin_notices() {
560
+
561
+ if ( ! ES()->is_es_admin_screen() ) {
562
+ return;
563
+ }
564
+
565
+ $get_page = ig_es_get_request_data( 'page' );
566
+
567
+ if ( ! empty( $get_page ) && 'es_dashboard' === $get_page ) {
568
+ remove_all_actions( 'admin_notices' );
569
+ }
570
+
571
+ }
572
  }
lite/admin/css/email-subscribers-admin.css CHANGED
@@ -1400,4 +1400,16 @@ div.es .last {
1400
 
1401
  table.ig_es_form_table td {
1402
  padding: 15px 10px 15px 0px;
1403
- }
 
 
 
 
 
 
 
 
 
 
 
 
1400
 
1401
  table.ig_es_form_table td {
1402
  padding: 15px 10px 15px 0px;
1403
+ }
1404
+
1405
+ .frappe-chart .x.axis .line-vertical,
1406
+ .frappe-chart .x.axis text {
1407
+ display: none;
1408
+ }
1409
+
1410
+ /*
1411
+ .frappe-chart .y.axis .line-horizontal,
1412
+ .frappe-chart .y.axis text {
1413
+ display: none;
1414
+ }
1415
+ */
lite/admin/css/style.css ADDED
@@ -0,0 +1 @@
 
1
+ /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */main{display:block}a{background-color:transparent}button{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button{overflow:visible}button{text-transform:none}[type=button],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}[hidden]{display:none}h2,h3,p{margin:0}button{background-color:transparent;background-image:none;padding:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}ul{margin:0;padding:0}ul{list-style:none}*{box-sizing:border-box;border:0 solid #d2d6dc}button{cursor:pointer}h2,h3{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button{padding:0;line-height:inherit;color:inherit}svg{display:block;vertical-align:middle}.bg-white{background-color:#fff}.bg-green-100{background-color:#def7ec}.bg-indigo-600{background-color:#5850ec}.hover\:bg-gray-50:hover{background-color:#f9fafb}.hover\:bg-gray-100:hover{background-color:#f4f5f7}.hover\:bg-indigo-500:hover{background-color:#6875f5}.focus\:bg-gray-50:focus{background-color:#f9fafb}.focus\:bg-gray-100:focus{background-color:#f4f5f7}.border-transparent{border-color:transparent}.border-gray-100{border-color:#f4f5f7}.border-gray-200{border-color:#e5e7eb}.border-gray-300{border-color:#d2d6dc}.focus\:border-blue-300:focus{border-color:#a4cafe}.rounded-md{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-t{border-top-width:1px}.border-b{border-bottom-width:1px}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.hidden{display:none}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.h-5{height:1.25rem}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-7{line-height:1.75rem}.leading-none{line-height:1}.my-8{margin-top:2rem;margin-bottom:2rem}.mx-auto{margin-left:auto;margin-right:auto}.mt-1{margin-top:.25rem}.mr-1{margin-right:.25rem}.mt-2{margin-top:.5rem}.ml-2{margin-left:.5rem}.mb-3{margin-bottom:.75rem}.ml-3{margin-left:.75rem}.mt-4{margin-top:1rem}.ml-6{margin-left:1.5rem}.-mr-1{margin-right:-.25rem}.max-w-7xl{max-width:80rem}.min-w-0{min-width:0}.opacity-0{opacity:0}.opacity-100{opacity:1}.focus\:outline-none:focus{outline:0}.overflow-hidden{overflow:hidden}.p-3{padding:.75rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-4{padding-left:1rem;padding-right:1rem}.pr-4{padding-right:1rem}.absolute{position:absolute}.relative{position:relative}.right-0{right:0}.shadow-xs{box-shadow:0 0 0 1px rgba(0,0,0,.05)}.shadow-sm{box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.shadow{box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.shadow-lg{box-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05)}.focus\:shadow-outline:focus{box-shadow:0 0 0 3px rgba(118,169,250,.45)}.focus\:shadow-outline-blue:focus{box-shadow:0 0 0 3px rgba(164,202,254,.45)}.text-left{text-align:left}.text-center{text-align:center}.text-black{color:#000}.text-white{color:#fff}.text-gray-400{color:#9fa6b2}.text-gray-500{color:#6b7280}.text-gray-700{color:#374151}.text-gray-900{color:#161e2e}.text-orange-400{color:#ff8a4c}.text-yellow-400{color:#e3a008}.text-green-400{color:#31c48d}.text-green-800{color:#03543f}.text-indigo-500{color:#6875f5}.text-indigo-600{color:#5850ec}.hover\:text-gray-900:hover{color:#161e2e}.focus\:text-gray-900:focus{color:#161e2e}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.text-2xl{font-size:1.5rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-1\/4{width:25%}.w-3\/5{width:60%}.w-full{width:100%}.transform{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y))}.origin-top-right{transform-origin:top right}.scale-95{--transform-scale-x:.95;--transform-scale-y:.95}.scale-100{--transform-scale-x:1;--transform-scale-y:1}.transition{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-75{transition-duration:75ms}.duration-100{transition-duration:.1s}.duration-150{transition-duration:.15s}@media (min-width:640px){.sm\:rounded-md{border-radius:.375rem}.sm\:grid{display:grid}.sm\:leading-9{line-height:2.25rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-2{padding-left:.5rem;padding-right:.5rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:text-2xl{font-size:1.5rem}.sm\:text-3xl{font-size:1.875rem}.sm\:truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:768px){.md\:flex{display:flex}.md\:items-start{align-items:flex-start}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:mt-0{margin-top:0}.md\:ml-4{margin-left:1rem}}@media (min-width:1024px){.lg\:px-8{padding-left:2rem;padding-right:2rem}}
lite/admin/js/alpine.js ADDED
@@ -0,0 +1,2 @@
 
 
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).Alpine=t()}(this,(function(){"use strict";function e(e){for(var t=e.concat(),n=0;n<t.length;++n)for(var i=n+1;i<t.length;++i)t[n]===t[i]&&t.splice(i--,1);return t}function t(){return navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom")}function n(e,t,n={}){return new Function(["$data",...Object.keys(n)],`var result; with($data) { result = ${e} }; return result`)(t,...Object.values(n))}function i(e,t,n={}){return new Function(["dataContext",...Object.keys(n)],`with(dataContext) { ${e} }`)(t,...Object.values(n))}function s(e){const t=a(e.name);return/x-(on|bind|data|text|html|model|if|for|show|cloak|transition|ref)/.test(t)}function r(e,t){return Array.from(e.attributes).filter(s).map(e=>{const t=a(e.name),n=t.match(/x-(on|bind|data|text|html|model|if|for|show|cloak|transition|ref)/),i=t.match(/:([a-zA-Z\-:]+)/),s=t.match(/\.[^.\]]+(?=[^\]]*$)/g)||[];return{type:n?n[1]:null,value:i?i[1]:null,modifiers:s.map(e=>e.replace(".","")),expression:e.value}}).filter(e=>!t||e.type===t)}function a(e){return e.startsWith("@")?e.replace("@","x-on:"):e.startsWith(":")?e.replace(":","x-bind:"):e}function o(e,t,n=!1){if(n)return t();const i=r(e,"transition");if(i.length<1)return t();c(e,(i.find(e=>"enter"===e.value)||{expression:""}).expression.split(" ").filter(e=>""!==e),(i.find(e=>"enter-start"===e.value)||{expression:""}).expression.split(" ").filter(e=>""!==e),(i.find(e=>"enter-end"===e.value)||{expression:""}).expression.split(" ").filter(e=>""!==e),t,()=>{})}function l(e,t,n=!1){if(n)return t();const i=r(e,"transition");if(i.length<1)return t();c(e,(i.find(e=>"leave"===e.value)||{expression:""}).expression.split(" ").filter(e=>""!==e),(i.find(e=>"leave-start"===e.value)||{expression:""}).expression.split(" ").filter(e=>""!==e),(i.find(e=>"leave-end"===e.value)||{expression:""}).expression.split(" ").filter(e=>""!==e),()=>{},t)}function c(e,t,n,i,s,r){const a=e.__x_original_classes||[];e.classList.add(...n),e.classList.add(...t),requestAnimationFrame(()=>{const o=1e3*Number(getComputedStyle(e).transitionDuration.replace("s",""));s(),requestAnimationFrame(()=>{e.classList.remove(...n.filter(e=>!a.includes(e))),e.classList.add(...i),setTimeout(()=>{r(),e.isConnected&&(e.classList.remove(...t.filter(e=>!a.includes(e))),e.classList.remove(...i.filter(e=>!a.includes(e))))},o)})})}function u(e,t,n,i){const{single:s,bunch:a,iterator1:c,iterator2:u}=function(e){const t=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,n=e.match(/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/);if(!n)return;const i={};i.bunch=n[2].trim();const s=n[1].trim().replace(/^\(|\)$/g,""),r=s.match(t);r?(i.single=s.replace(t,"").trim(),i.iterator1=r[1].trim(),r[2]&&(i.iterator2=r[2].trim())):i.single=s;return i}(n);var d=e.evaluateReturnExpression(a),f=t;d.forEach((n,a,l)=>{const d=function(e,t,n,i,s,a,o,l){const c=r(t,"bind").filter(e=>"key"===e.value)[0];let u={[n]:a};i&&(u[i]=o);s&&(u[s]=l);return c?e.evaluateReturnExpression(c.expression,()=>u):o}(e,t,s,c,u,n,a,l);let m=f.nextElementSibling;if(m&&void 0!==m.__x_for_key){if(m.__x_for_key!==d)for(var p=m;p;){if(p.__x_for_key===d){t.parentElement.insertBefore(p,m),m=p;break}p=!(!p.nextElementSibling||void 0===p.nextElementSibling.__x_for_key)&&p.nextElementSibling}delete m.__x_for_key,m.__x_for_alias=s,m.__x_for_value=n,e.updateElements(m,()=>({[m.__x_for_alias]:m.__x_for_value}))}else{const r=document.importNode(t.content,!0);t.parentElement.insertBefore(r,m),m=f.nextElementSibling,o(m,()=>{},i),m.__x_for_alias=s,m.__x_for_value=n,e.initializeElements(m,()=>({[m.__x_for_alias]:m.__x_for_value}))}m.__x_for_key=d,f=m});for(var m=!(!f.nextElementSibling||void 0===f.nextElementSibling.__x_for_key)&&f.nextElementSibling;m;){const e=m;l(m,()=>{e.remove()}),m=!(!m.nextElementSibling||void 0===m.nextElementSibling.__x_for_key)&&m.nextElementSibling}}function d(t,n,i,s,r){var a=t.evaluateReturnExpression(s,r);if("value"===i)if("radio"===n.type)n.checked=n.value==a;else if("checkbox"===n.type)if(Array.isArray(a)){let e=!1;a.forEach(t=>{t==n.value&&(e=!0)}),n.checked=e}else n.checked=!!a;else"SELECT"===n.tagName?function(e,t){const n=[].concat(t).map(e=>e+"");Array.from(e.options).forEach(e=>{e.selected=n.includes(e.value||e.text)})}(n,a):n.value=a;else if("class"===i)if(Array.isArray(a)){const t=n.__x_original_classes||[];n.setAttribute("class",e(t.concat(a)).join(" "))}else if("object"==typeof a)Object.keys(a).forEach(e=>{a[e]?e.split(" ").forEach(e=>n.classList.add(e)):e.split(" ").forEach(e=>n.classList.remove(e))});else{const t=n.__x_original_classes||[],i=a.split(" ");n.setAttribute("class",e(t.concat(i)).join(" "))}else["disabled","readonly","required","checked","hidden"].includes(i)?a?n.setAttribute(i,""):n.removeAttribute(i):n.setAttribute(i,a)}function f(e,t,n,i,s,r={}){if(i.includes("away")){const a=o=>{t.contains(o.target)||t.offsetWidth<1&&t.offsetHeight<1||(m(e,s,o,r),i.includes("once")&&document.removeEventListener(n,a))};document.addEventListener(n,a)}else{const a=i.includes("window")?window:i.includes("document")?document:t,o=t=>{(function(e){return["keydown","keyup"].includes(e)})(n)&&function(e,t){let n=t.filter(e=>!["window","document","prevent","stop"].includes(e));if(0===n.length)return!1;if(1===n.length&&n[0]===p(e.key))return!1;const i=["ctrl","shift","alt","meta","cmd","super"].filter(e=>n.includes(e));if(n=n.filter(e=>!i.includes(e)),i.length>0){if(i.filter(t=>("cmd"!==t&&"super"!==t||(t="meta"),e[`${t}Key`])).length===i.length&&n[0]===p(e.key))return!1}return!0}(t,i)||(i.includes("prevent")&&t.preventDefault(),i.includes("stop")&&t.stopPropagation(),m(e,s,t,r),i.includes("once")&&a.removeEventListener(n,o))};a.addEventListener(n,o)}}function m(e,t,n,i){e.evaluateCommandExpression(t,()=>({...i(),$event:n}))}function p(e){switch(e){case"/":return"slash";case" ":case"Spacebar":return"space";default:return e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/[_\s]/,"-").toLowerCase()}}function h(e,t,n,i,s={}){var r="select"===t.tagName.toLowerCase()||["checkbox","radio"].includes(t.type)||n.includes("lazy")?"change":"input";const a=function(e,t,n,i){var s="";s="checkbox"===t.type?Array.isArray(e.$data[i])?`$event.target.checked ? ${i}.concat([$event.target.value]) : ${i}.filter(i => i !== $event.target.value)`:"$event.target.checked":"select"===t.tagName.toLowerCase()&&t.multiple?n.includes("number")?"Array.from($event.target.selectedOptions).map(option => { return parseFloat(option.value || option.text) })":"Array.from($event.target.selectedOptions).map(option => { return option.value || option.text })":n.includes("number")?"parseFloat($event.target.value)":n.includes("trim")?"$event.target.value.trim()":"$event.target.value";"radio"===t.type&&(t.hasAttribute("name")||t.setAttribute("name",i));return`${i} = ${s}`}(e,t,n,i);f(e,t,r,n,a,s)}class x{constructor(e){this.$el=e;const t=this.$el.getAttribute("x-data"),s=""===t?"{}":t,r=this.$el.getAttribute("x-init"),a=this.$el.getAttribute("x-created"),o=this.$el.getAttribute("x-mounted"),l=n(s,{});var c;this.$data=this.wrapDataInObservable(l),l.$el=this.$el,l.$refs=this.getRefsProxy(),this.nextTickStack=[],l.$nextTick=e=>{this.nextTickStack.push(e)},r&&(this.pauseReactivity=!0,c=n(this.$el.getAttribute("x-init"),this.$data),this.pauseReactivity=!1),a&&(console.warn('AlpineJS Warning: "x-created" is deprecated and will be removed in the next major version. Use "x-init" instead.'),this.pauseReactivity=!0,i(this.$el.getAttribute("x-created"),this.$data),this.pauseReactivity=!1),this.initializeElements(this.$el),this.listenForNewElementsToInitialize(),"function"==typeof c&&c.call(this.$data),o&&(console.warn('AlpineJS Warning: "x-mounted" is deprecated and will be removed in the next major version. Use "x-init" (with a callback return) for the same behavior.'),i(o,this.$data))}wrapDataInObservable(e){var t=this;const n={set(e,n,i){const s=Reflect.set(e,n,i);var r,a,o;if(!t.pauseReactivity)return(r=()=>{for(t.updateElements(t.$el);t.nextTickStack.length>0;)t.nextTickStack.shift()()},a=0,function(){var e=this,t=arguments,n=function(){o=null,r.apply(e,t)};clearTimeout(o),o=setTimeout(n,a)})(),s},get:(e,t)=>e[t]&&e[t].isRefsProxy?e[t]:e[t]&&e[t]instanceof Node?e[t]:"object"==typeof e[t]&&null!==e[t]?new Proxy(e[t],n):e[t]};return new Proxy(e,n)}walkAndSkipNestedComponents(e,t,n=(()=>{})){!function e(t,n){if(!1===n(t))return;let i=t.firstElementChild;for(;i;)e(i,n),i=i.nextElementSibling}(e,e=>e.hasAttribute("x-data")&&!e.isSameNode(this.$el)?(e.__x||n(e),!1):t(e))}initializeElements(e,t=(()=>{})){for(this.walkAndSkipNestedComponents(e,e=>{if(void 0!==e.__x_for_key)return!1;this.initializeElement(e,t)},e=>{e.__x=new x(e)});this.nextTickStack.length>0;)this.nextTickStack.shift()()}initializeElement(e,t){e.hasAttribute("class")&&r(e).length>0&&(e.__x_original_classes=e.getAttribute("class").split(" ")),this.registerListeners(e,t),this.resolveBoundAttributes(e,!0,t)}updateElements(e,t=(()=>{})){this.walkAndSkipNestedComponents(e,e=>{if(void 0!==e.__x_for_key&&!e.isSameNode(this.$el))return!1;this.updateElement(e,t)},e=>{e.__x=new x(e)})}updateElement(e,t){this.resolveBoundAttributes(e,!1,t)}registerListeners(e,t){r(e).forEach(({type:n,value:i,modifiers:s,expression:r})=>{switch(n){case"on":f(this,e,i,s,r,t);break;case"model":h(this,e,s,r,t)}})}resolveBoundAttributes(e,t=!1,n){r(e).forEach(({type:i,value:s,modifiers:r,expression:a})=>{switch(i){case"model":d(this,e,"value",a,n);break;case"bind":if("template"===e.tagName.toLowerCase()&&"key"===s)return;d(this,e,s,a,n);break;case"text":e.innerText=this.evaluateReturnExpression(a,n);break;case"html":e.innerHTML=this.evaluateReturnExpression(a,n);break;case"show":var c=this.evaluateReturnExpression(a,n);!function(e,t,n=!1){t?o(e,()=>{1===e.style.length&&""!==e.style.display?e.removeAttribute("style"):e.style.removeProperty("display")},n):l(e,()=>{e.style.display="none"},n)}(e,c,t);break;case"if":c=this.evaluateReturnExpression(a,n);!function(e,t,n){"template"!==e.nodeName.toLowerCase()&&console.warn("Alpine: [x-if] directive should only be added to <template> tags.");const i=e.nextElementSibling&&!0===e.nextElementSibling.__x_inserted_me;if(t&&!i){const t=document.importNode(e.content,!0);e.parentElement.insertBefore(t,e.nextElementSibling),e.nextElementSibling.__x_inserted_me=!0,o(e.nextElementSibling,()=>{},n)}else!t&&i&&l(e.nextElementSibling,()=>{e.nextElementSibling.remove()},n)}(e,c,t);break;case"for":u(this,e,a,t);break;case"cloak":e.removeAttribute("x-cloak")}})}evaluateReturnExpression(e,t=(()=>{})){return n(e,this.$data,t())}evaluateCommandExpression(e,t=(()=>{})){i(e,this.$data,t())}listenForNewElementsToInitialize(){const e=this.$el;new MutationObserver(e=>{for(let t=0;t<e.length;t++){if(!e[t].target.closest("[x-data]").isSameNode(this.$el))return;if("attributes"===e[t].type&&"x-data"===e[t].attributeName){const i=n(e[t].target.getAttribute("x-data"),{});Object.keys(i).forEach(e=>{this.$data[e]!==i[e]&&(this.$data[e]=i[e])})}e[t].addedNodes.length>0&&e[t].addedNodes.forEach(e=>{1===e.nodeType&&(e.matches("[x-data]")?e.__x=new x(e):this.initializeElements(e))})}}).observe(e,{childList:!0,attributes:!0,subtree:!0})}getRefsProxy(){var e=this;return new Proxy({},{get(t,n){return"isRefsProxy"===n||(e.walkAndSkipNestedComponents(e.$el,e=>{e.hasAttribute("x-ref")&&e.getAttribute("x-ref")===n&&(i=e)}),i);var i}})}}const v={start:async function(){t()||await new Promise(e=>{"loading"==document.readyState?document.addEventListener("DOMContentLoaded",e):e()}),this.discoverComponents(e=>{this.initializeComponent(e)}),document.addEventListener("turbolinks:load",()=>{this.discoverUninitializedComponents(e=>{this.initializeComponent(e)})}),this.listenForNewUninitializedComponentsAtRunTime(e=>{this.initializeComponent(e)})},discoverComponents:function(e){document.querySelectorAll("[x-data]").forEach(t=>{e(t)})},discoverUninitializedComponents:function(e,t=null){const n=(t||document).querySelectorAll("[x-data]");Array.from(n).filter(e=>void 0===e.__x).forEach(t=>{e(t)})},listenForNewUninitializedComponentsAtRunTime:function(e){const t=document.querySelector("body");new MutationObserver(e=>{for(let t=0;t<e.length;t++)e[t].addedNodes.length>0&&e[t].addedNodes.forEach(e=>{1===e.nodeType&&(e.parentElement.closest("[x-data]")||this.discoverUninitializedComponents(e=>{this.initializeComponent(e)},e.parentElement))})}).observe(t,{childList:!0,attributes:!0,subtree:!0})},initializeComponent:function(e){e.__x=new x(e)}};return t()||(window.Alpine=v,window.Alpine.start()),v}));
2
+ //# sourceMappingURL=alpine.js.map
lite/admin/js/frappe-charts.min.life.js ADDED
@@ -0,0 +1,2 @@
 
 
1
+ var frappe=function(){"use strict";function t(t,e){return"string"==typeof t?(e||document).querySelector(t):t||null}function e(t){var e=t.getBoundingClientRect();return{top:e.top+(document.documentElement.scrollTop||document.body.scrollTop),left:e.left+(document.documentElement.scrollLeft||document.body.scrollLeft)}}function i(t){var e=t.getBoundingClientRect();return e.top>=0&&e.left>=0&&e.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&e.right<=(window.innerWidth||document.documentElement.clientWidth)}function n(t){var e=window.getComputedStyle(t),i=parseFloat(e.paddingLeft)+parseFloat(e.paddingRight);return t.clientWidth-i}function a(t,e,i){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0);for(var a in i)n[a]=i[a];return t.dispatchEvent(n)}function s(t){return t.titleHeight+t.margins.top+t.paddings.top}function r(t){return t.margins.left+t.paddings.left}function o(t){return t.margins.top+t.margins.bottom+t.paddings.top+t.paddings.bottom+t.titleHeight+t.legendHeight}function l(t){return t.margins.left+t.margins.right+t.paddings.left+t.paddings.right}function u(t){return parseFloat(t.toFixed(2))}function h(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];i||(i=n?t[0]:t[t.length-1]);var a=new Array(Math.abs(e)).fill(i);return t=n?a.concat(t):t.concat(a)}function c(t,e){return(t+"").length*e}function d(t,e){return{x:Math.sin(t*Vt)*e,y:Math.cos(t*Vt)*e}}function p(t,e){var i=void 0,n=void 0;return t<=e?(i=e-t,n=t):(i=t-e,n=e),[i,n]}function f(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length-t.length;return i>0?t=h(t,i):e=h(e,i),[t,e]}function v(t){return t>255?255:t<0?0:t}function g(t,e){var i=Gt(t),n=!1;"#"==i[0]&&(i=i.slice(1),n=!0);var a=parseInt(i,16),s=v((a>>16)+e),r=v((a>>8&255)+e),o=v((255&a)+e);return(n?"#":"")+(o|r<<8|s<<16).toString(16)}function y(t){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t)}function m(t,e){return"string"==typeof t?(e||document).querySelector(t):t||null}function b(t,e){var i=document.createElementNS("http://www.w3.org/2000/svg",t);for(var n in e){var a=e[n];if("inside"===n)m(a).appendChild(i);else if("around"===n){var s=m(a);s.parentNode.insertBefore(i,s),i.appendChild(s)}else"styles"===n?"object"===(void 0===a?"undefined":Dt(a))&&Object.keys(a).map(function(t){i.style[t]=a[t]}):("className"===n&&(n="class"),"innerHTML"===n?i.textContent=a:i.setAttribute(n,a))}return i}function x(t,e){return b("linearGradient",{inside:t,id:e,x1:0,x2:0,y1:0,y2:1})}function k(t,e,i,n){return b("stop",{inside:t,style:"stop-color: "+i,offset:e,"stop-opacity":n})}function w(t,e,i,n){return b("svg",{className:e,inside:t,width:i,height:n})}function A(t){return b("defs",{inside:t})}function P(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,n={className:t,transform:e};return i&&(n.inside=i),b("g",n)}function C(t){return b("path",{className:arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",d:t,styles:{stroke:arguments.length>2&&void 0!==arguments[2]?arguments[2]:"none",fill:arguments.length>3&&void 0!==arguments[3]?arguments[3]:"none"}})}function L(t,e,i,n){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:1,s=i.x+t.x,r=i.y+t.y,o=i.x+e.x,l=i.y+e.y;return"M"+i.x+" "+i.y+"\n\t\tL"+s+" "+r+"\n\t\tA "+n+" "+n+" 0 0 "+(a?1:0)+"\n\t\t"+o+" "+l+" z"}function T(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n="path-fill-gradient-"+e+"-"+(i?"lighter":"default"),a=x(t,n),s=[1,.6,.2];return i&&(s=[.4,.2,0]),k(a,"0%",e,s[0]),k(a,"50%",e,s[1]),k(a,"100%",e,s[2]),n}function D(t,e,i,n){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:Wt,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"none";return b("rect",{className:"percentage-bar",x:t,y:e,width:i,height:n,fill:s,styles:{stroke:g(s,-25),"stroke-dasharray":"0, "+(n+i)+", "+i+", "+n,"stroke-width":a}})}function O(t,e,i,n){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"none",s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},r={className:t,x:e,y:i,width:n,height:n,fill:a};return Object.keys(s).map(function(t){r[t]=s[t]}),b("rect",r)}function M(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"none",a=arguments[4],s={className:"legend-bar",x:0,y:0,width:i,height:"2px",fill:n},r=b("text",{className:"legend-dataset-text",x:0,y:0,dy:2*Jt+"px","font-size":1.2*Jt+"px","text-anchor":"start",fill:$t,innerHTML:a}),o=b("g",{transform:"translate("+t+", "+e+")"});return o.appendChild(b("rect",s)),o.appendChild(r),o}function N(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"none",a=arguments[4],s={className:"legend-dot",cx:0,cy:0,r:i,fill:n},r=b("text",{className:"legend-dataset-text",x:0,y:0,dx:Jt+"px",dy:Jt/3+"px","font-size":1.2*Jt+"px","text-anchor":"start",fill:$t,innerHTML:a}),o=b("g",{transform:"translate("+t+", "+e+")"});return o.appendChild(b("circle",s)),o.appendChild(r),o}function E(t,e,i,n){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},s=a.fontSize||Jt;return b("text",{className:t,x:e,y:i,dy:(void 0!==a.dy?a.dy:s/2)+"px","font-size":s+"px",fill:a.fill||$t,"text-anchor":a.textAnchor||"start",innerHTML:n})}function S(t,e,i,n){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};a.stroke||(a.stroke=Kt);var s=b("line",{className:"line-vertical "+a.className,x1:0,x2:0,y1:i,y2:n,styles:{stroke:a.stroke}}),r=b("text",{x:0,y:i>n?i+Xt:i-Xt-Jt,dy:Jt+"px","font-size":Jt+"px","text-anchor":"middle",innerHTML:e+""}),o=b("g",{transform:"translate("+t+", 0)"});return o.appendChild(s),o.appendChild(r),o}function _(t,e,i,n){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};a.stroke||(a.stroke=Kt),a.lineType||(a.lineType="");var s=b("line",{className:"line-horizontal "+a.className+("dashed"===a.lineType?"dashed":""),x1:i,x2:n,y1:0,y2:0,styles:{stroke:a.stroke}}),r=b("text",{x:i<n?i-Xt:i+Xt,y:0,dy:Jt/2-2+"px","font-size":Jt+"px","text-anchor":i<n?"end":"start",innerHTML:e+""}),o=b("g",{transform:"translate(0, "+t+")","stroke-opacity":1});return 0!==r&&"0"!==r||(o.style.stroke="rgba(27, 31, 35, 0.6)"),o.appendChild(s),o.appendChild(r),o}function z(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};n.pos||(n.pos="left"),n.offset||(n.offset=0),n.mode||(n.mode="span"),n.stroke||(n.stroke=Kt),n.className||(n.className="");var a=-1*qt,s="span"===n.mode?i+qt:0;return"tick"===n.mode&&"right"===n.pos&&(a=i+qt,s=i),a+=n.offset,s+=n.offset,_(t,e,a,s,{stroke:n.stroke,className:n.className,lineType:n.lineType})}function H(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};n.pos||(n.pos="bottom"),n.offset||(n.offset=0),n.mode||(n.mode="span"),n.stroke||(n.stroke=Kt),n.className||(n.className="");var a=i+qt,s="span"===n.mode?-1*qt:i;return"tick"===n.mode&&"top"===n.pos&&(a=-1*qt,s=0),S(t,e,a,s,{stroke:n.stroke,className:n.className,lineType:n.lineType})}function F(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};n.labelPos||(n.labelPos="right");var a=b("text",{className:"chart-label",x:"left"===n.labelPos?Xt:i-c(e,5)-Xt,y:0,dy:Jt/-2+"px","font-size":Jt+"px","text-anchor":"start",innerHTML:e+""}),s=_(t,"",0,i,{stroke:n.stroke||Kt,className:n.className||"",lineType:n.lineType});return s.appendChild(a),s}function j(t,e,i,n){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},s=t-e,r=b("rect",{className:"bar mini",styles:{fill:"rgba(228, 234, 239, 0.49)",stroke:Kt,"stroke-dasharray":i+", "+s},x:0,y:0,width:i,height:s});a.labelPos||(a.labelPos="right");var o=b("text",{className:"chart-label",x:"left"===a.labelPos?Xt:i-c(n+"",4.5)-Xt,y:0,dy:Jt/-2+"px","font-size":Jt+"px","text-anchor":"start",innerHTML:n+""}),l=b("g",{transform:"translate(0, "+e+")"});return l.appendChild(r),l.appendChild(o),l}function W(t,e,i,n){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"",s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,r=arguments.length>6&&void 0!==arguments[6]?arguments[6]:0,o=arguments.length>7&&void 0!==arguments[7]?arguments[7]:{},l=p(e,o.zeroLine),u=_t(l,2),h=u[0],c=u[1];c-=r,0===h&&(h=o.minHeight,c-=o.minHeight);var d=b("rect",{className:"bar mini",style:"fill: "+n,"data-point-index":s,x:t,y:c,width:i,height:h});if((a+="")||a.length){d.setAttribute("y",0),d.setAttribute("x",0);var f=b("text",{className:"data-point-value",x:i/2,y:0,dy:Jt/2*-1+"px","font-size":Jt+"px","text-anchor":"middle",innerHTML:a}),v=b("g",{"data-point-index":s,transform:"translate("+t+", "+c+")"});return v.appendChild(d),v.appendChild(f),v}return d}function I(t,e,i,n){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"",s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,r=b("circle",{style:"fill: "+n,"data-point-index":s,cx:t,cy:e,r:i});if((a+="")||a.length){r.setAttribute("cy",0),r.setAttribute("cx",0);var o=b("text",{className:"data-point-value",x:0,y:0,dy:Jt/2*-1-i+"px","font-size":Jt+"px","text-anchor":"middle",innerHTML:a}),l=b("g",{"data-point-index":s,transform:"translate("+t+", "+e+")"});return l.appendChild(r),l.appendChild(o),l}return r}function R(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},s=e.map(function(e,i){return t[i]+","+e}).join("L"),r=C("M"+s,"line-graph-path",i);if(n.heatline){var o=T(a.svgDefs,i);r.style.stroke="url(#"+o+")"}var l={path:r};if(n.regionFill){var u=T(a.svgDefs,i,!0),h="M"+t[0]+","+a.zeroLine+"L"+s+"L"+t.slice(-1)[0]+","+a.zeroLine;l.region=C(h,"region-fill","none","url(#"+u+")")}return l}function Y(t,e,i,n){var a="string"==typeof e?e:e.join(", ");return[t,{transform:i.join(", ")},n,ae,"translate",{transform:a}]}function V(t,e,i){return Y(t,[i,0],[e,0],ie)}function B(t,e,i){return Y(t,[0,i],[0,e],ie)}function U(t,e,i,n){var a=e-i,s=t.childNodes[0];return[[s,{height:a,"stroke-dasharray":s.getAttribute("width")+", "+a},ie,ae],Y(t,[0,n],[0,i],ie)]}function G(t,e,i,n){var a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,s=p(i,(arguments.length>5&&void 0!==arguments[5]?arguments[5]:{}).zeroLine),r=_t(s,2),o=r[0],l=r[1];return l-=a,"rect"!==t.nodeName?[[t.childNodes[0],{width:n,height:o},te,ae],Y(t,t.getAttribute("transform").split("(")[1].slice(0,-1),[e,l],ie)]:[[t,{width:n,height:o,x:e,y:l},te,ae]]}function q(t,e,i){return"circle"!==t.nodeName?[Y(t,t.getAttribute("transform").split("(")[1].slice(0,-1),[e,i],ie)]:[[t,{cx:e,cy:i},te,ae]]}function X(t,e,i,n){var a=[],s=i.map(function(t,i){return e[i]+","+t}).join("L"),r=[t.path,{d:"M"+s},ee,ae];if(a.push(r),t.region){var o=e[0]+","+n+"L",l="L"+e.slice(-1)[0]+", "+n,u=[t.region,{d:"M"+o+s+l},ee,ae];a.push(u)}return a}function J(t,e){return[t,{d:e},te,ae]}function K(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"linear",a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0,s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{},r=t.cloneNode(!0),o=t.cloneNode(!0);for(var l in e){var u=void 0;u="transform"===l?document.createElementNS("http://www.w3.org/2000/svg","animateTransform"):document.createElementNS("http://www.w3.org/2000/svg","animate");var h=s[l]||t.getAttribute(l),c=e[l],d={attributeName:l,from:h,to:c,begin:"0s",dur:i/1e3+"s",values:h+";"+c,keySplines:se[n],keyTimes:"0;1",calcMode:"spline",fill:"freeze"};a&&(d.type=a);for(var p in d)u.setAttribute(p,d[p]);r.appendChild(u),a?o.setAttribute(l,"translate("+c+")"):o.setAttribute(l,c)}return[r,o]}function $(t,e){t.style.transform=e,t.style.webkitTransform=e,t.style.msTransform=e,t.style.mozTransform=e,t.style.oTransform=e}function Q(t,e){var i=[],n=[];e.map(function(t){var e=t[0],a=e.parentNode,s=void 0,r=void 0;t[0]=e;var o=K.apply(void 0,zt(t)),l=_t(o,2);s=l[0],r=l[1],i.push(r),n.push([s,a]),a.replaceChild(s,e)});var a=t.cloneNode(!0);return n.map(function(t,n){t[1].replaceChild(i[n],t[0]),e[n][0]=i[n]}),a}function Z(t,e,i){if(0!==i.length){var n=Q(e,i);e.parentNode==t&&(t.removeChild(e),t.appendChild(n)),setTimeout(function(){n.parentNode==t&&(t.removeChild(n),t.appendChild(e))},ne)}}function tt(t,e){var i=document.createElement("a");i.style="display: none";var n=new Blob(e,{type:"image/svg+xml; charset=utf-8"}),a=window.URL.createObjectURL(n);i.href=a,i.download=t,document.body.appendChild(i),i.click(),setTimeout(function(){document.body.removeChild(i),window.URL.revokeObjectURL(a)},300)}function et(e){var i=e.cloneNode(!0);i.classList.add("chart-container"),i.setAttribute("xmlns","http://www.w3.org/2000/svg"),i.setAttribute("xmlns:xlink","http://www.w3.org/1999/xlink");var n=t.create("style",{innerHTML:re});i.insertBefore(n,i.firstChild);var a=t.create("div");return a.appendChild(i),a.innerHTML}function it(t){var e=new Date(t);return e.setMinutes(e.getMinutes()-e.getTimezoneOffset()),e}function nt(t){var e=t.getDate(),i=t.getMonth()+1;return[t.getFullYear(),(i>9?"":"0")+i,(e>9?"":"0")+e].join("-")}function at(t){return new Date(t.getTime())}function st(t,e){var i=ht(t);return Math.ceil(rt(i,e)/he)}function rt(t,e){var i=de*ce;return(it(e)-it(t))/i}function ot(t,e){return t.getMonth()===e.getMonth()&&t.getFullYear()===e.getFullYear()}function lt(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=pe[t];return e?i.slice(0,3):i}function ut(t,e){return new Date(e,t+1,0)}function ht(t){var e=at(t),i=e.getDay();return 0!==i&&ct(e,-1*i),e}function ct(t,e){t.setDate(t.getDate()+e)}function dt(t,e,i){var n=Object.keys(ge).filter(function(e){return t.includes(e)}),a=ge[n[0]];return Object.assign(a,{constants:e,getData:i}),new ve(a)}function pt(t){if(0===t)return[0,0];if(isNaN(t))return{mantissa:-6755399441055744,exponent:972};var e=t>0?1:-1;if(!isFinite(t))return{mantissa:4503599627370496*e,exponent:972};t=Math.abs(t);var i=Math.floor(Math.log10(t));return[e*(t/Math.pow(10,i)),i]}function ft(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=Math.ceil(t),n=Math.floor(e),a=i-n,s=a,r=1;a>5&&(a%2!=0&&(a=++i-n),s=a/2,r=2),a<=2&&(r=a/(s=4)),0===a&&(s=5,r=1);for(var o=[],l=0;l<=s;l++)o.push(n+r*l);return o}function vt(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=pt(t),n=_t(i,2),a=n[0],s=n[1],r=e?e/Math.pow(10,s):0,o=ft(a=a.toFixed(6),r);return o=o.map(function(t){return t*Math.pow(10,s)})}function gt(t){function e(t,e){for(var i=vt(t),n=i[1]-i[0],a=0,s=1;a<e;s++)a+=n,i.unshift(-1*a);return i}var i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=Math.max.apply(Math,zt(t)),a=Math.min.apply(Math,zt(t)),s=[];if(n>=0&&a>=0)pt(n)[1],s=i?vt(n,a):vt(n);else if(n>0&&a<0){var r=Math.abs(a);n>=r?(pt(n)[1],s=e(n,r)):(pt(r)[1],s=e(r,n).map(function(t){return-1*t}))}else if(n<=0&&a<=0){var o=Math.abs(a),l=Math.abs(n);pt(o)[1],s=(s=i?vt(o,l):vt(o)).reverse().map(function(t){return-1*t})}return s}function yt(t){var e=mt(t);return t.indexOf(0)>=0?t.indexOf(0):t[0]>0?-1*t[0]/e:-1*t[t.length-1]/e+(t.length-1)}function mt(t){return t[1]-t[0]}function bt(t){return t[t.length-1]-t[0]}function xt(t,e){return u(e.zeroLine-t*e.scaleMultiplier)}function kt(t,e){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=e.reduce(function(e,i){return Math.abs(i-t)<Math.abs(e-t)?i:e});return i?e.indexOf(n):n}function wt(t,e){for(var i=Math.max.apply(Math,zt(t)),n=1/(e-1),a=[],s=0;s<e;s++){var r=i*(n*s);a.push(r)}return a}function At(t,e){return e.filter(function(e){return e<t}).length}function Pt(t,e){t.labels=t.labels||[];var i=t.labels.length,n=t.datasets,a=new Array(i).fill(0);return n||(n=[{values:a}]),n.map(function(t){if(t.values){var n=t.values;n=(n=n.map(function(t){return isNaN(t)?0:t})).length>i?n.slice(0,i):h(n,i-n.length,0)}else t.values=a;t.chartType||(jt.includes(e),t.chartType=e)}),t.yRegions&&t.yRegions.map(function(t){if(t.end<t.start){var e=[t.end,t.start];t.start=e[0],t.end=e[1]}}),t}function Ct(t){var e=t.labels.length,i=new Array(e).fill(0),n={labels:t.labels.slice(0,-1),datasets:t.datasets.map(function(t){return{name:"",values:i.slice(0,-1),chartType:t.chartType}})};return t.yMarkers&&(n.yMarkers=[{value:0,label:""}]),t.yRegions&&(n.yRegions=[{start:0,end:0,label:""}]),n}function Lt(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=t/e.length;n<=0&&(n=1);var a=n/It;return e.map(function(t,e){return(t+="").length>a&&(i?e%Math.ceil(t.length/a)!=0&&(t=""):t=a-3>0?t.slice(0,a-3)+" ...":t.slice(0,a)+".."),t})}function Tt(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"line",e=arguments[1],i=arguments[2];return"axis-mixed"===t?(i.type="line",new xe(e,i)):ke[t]?new ke[t](e,i):void console.error("Undefined chart type: "+t)}!function(t,e){void 0===e&&(e={});var i=e.insertAt;if(t&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css","top"===i&&n.firstChild?n.insertBefore(a,n.firstChild):n.appendChild(a),a.styleSheet?a.styleSheet.cssText=t:a.appendChild(document.createTextNode(t))}}('.chart-container{position:relative;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.chart-container .axis,.chart-container .chart-label{fill:#555b51}.chart-container .axis line,.chart-container .chart-label line{stroke:#dadada}.chart-container .dataset-units circle{stroke:#fff;stroke-width:2}.chart-container .dataset-units path{fill:none;stroke-opacity:1;stroke-width:2px}.chart-container .dataset-path{stroke-width:2px}.chart-container .path-group path{fill:none;stroke-opacity:1;stroke-width:2px}.chart-container line.dashed{stroke-dasharray:5,3}.chart-container .axis-line .specific-value{text-anchor:start}.chart-container .axis-line .y-line{text-anchor:end}.chart-container .axis-line .x-line{text-anchor:middle}.chart-container .legend-dataset-text{fill:#6c7680;font-weight:600}.graph-svg-tip{position:absolute;z-index:1;padding:10px;font-size:12px;color:#959da5;text-align:center;background:rgba(0,0,0,.8);border-radius:3px}.graph-svg-tip ol,.graph-svg-tip ul{padding-left:0;display:-webkit-box;display:-ms-flexbox;display:flex}.graph-svg-tip ul.data-point-list li{min-width:90px;-webkit-box-flex:1;-ms-flex:1;flex:1;font-weight:600}.graph-svg-tip strong{color:#dfe2e5;font-weight:600}.graph-svg-tip .svg-pointer{position:absolute;height:5px;margin:0 0 0 -5px;content:" ";border:5px solid transparent;border-top-color:rgba(0,0,0,.8)}.graph-svg-tip.comparison{padding:0;text-align:left;pointer-events:none}.graph-svg-tip.comparison .title{display:block;padding:10px;margin:0;font-weight:600;line-height:1;pointer-events:none}.graph-svg-tip.comparison ul{margin:0;white-space:nowrap;list-style:none}.graph-svg-tip.comparison li{display:inline-block;padding:5px 10px}',{});var Dt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ot=(function(){function t(t){this.value=t}function e(e){function i(t,e){return new Promise(function(i,a){var o={key:t,arg:e,resolve:i,reject:a,next:null};r?r=r.next=o:(s=r=o,n(t,e))})}function n(i,s){try{var r=e[i](s),o=r.value;o instanceof t?Promise.resolve(o.value).then(function(t){n("next",t)},function(t){n("throw",t)}):a(r.done?"return":"normal",r.value)}catch(t){a("throw",t)}}function a(t,e){switch(t){case"return":s.resolve({value:e,done:!0});break;case"throw":s.reject(e);break;default:s.resolve({value:e,done:!1})}(s=s.next)?n(s.key,s.arg):r=null}var s,r;this._invoke=i,"function"!=typeof e.return&&(this.return=void 0)}"function"==typeof Symbol&&Symbol.asyncIterator&&(e.prototype[Symbol.asyncIterator]=function(){return this}),e.prototype.next=function(t){return this._invoke("next",t)},e.prototype.throw=function(t){return this._invoke("throw",t)},e.prototype.return=function(t){return this._invoke("return",t)}}(),function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}),Mt=function(){function t(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,i,n){return i&&t(e.prototype,i),n&&t(e,n),e}}(),Nt=function t(e,i,n){null===e&&(e=Function.prototype);var a=Object.getOwnPropertyDescriptor(e,i);if(void 0===a){var s=Object.getPrototypeOf(e);return null===s?void 0:t(s,i,n)}if("value"in a)return a.value;var r=a.get;if(void 0!==r)return r.call(n)},Et=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)},St=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e},_t=function(){function t(t,e){var i=[],n=!0,a=!1,s=void 0;try{for(var r,o=t[Symbol.iterator]();!(n=(r=o.next()).done)&&(i.push(r.value),!e||i.length!==e);n=!0);}catch(t){a=!0,s=t}finally{try{!n&&o.return&&o.return()}finally{if(a)throw s}}return i}return function(e,i){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),zt=function(t){if(Array.isArray(t)){for(var e=0,i=Array(t.length);e<t.length;e++)i[e]=t[e];return i}return Array.from(t)};t.create=function(e,i){var n=document.createElement(e);for(var a in i){var s=i[a];if("inside"===a)t(s).appendChild(n);else if("around"===a){var r=t(s);r.parentNode.insertBefore(n,r),n.appendChild(r)}else"styles"===a?"object"===(void 0===s?"undefined":Dt(s))&&Object.keys(s).map(function(t){n.style[t]=s[t]}):a in n?n[a]=s:n.setAttribute(a,s)}return n};var Ht={margins:{top:10,bottom:10,left:20,right:20},paddings:{top:20,bottom:40,left:30,right:10},baseHeight:240,titleHeight:20,legendHeight:30,titleFontSize:12},Ft=700,jt=["line","bar"],Wt=2,It=7,Rt=["light-blue","blue","violet","red","orange","yellow","green","light-green","purple","magenta","light-grey","dark-grey"],Yt={bar:Rt,line:Rt,pie:Rt,percentage:Rt,heatmap:["#ebedf0","#c6e48b","#7bc96f","#239a3b","#196127"]},Vt=Math.PI/180,Bt=function(){function e(t){var i=t.parent,n=void 0===i?null:i,a=t.colors,s=void 0===a?[]:a;Ot(this,e),this.parent=n,this.colors=s,this.titleName="",this.titleValue="",this.listValues=[],this.titleValueFirst=0,this.x=0,this.y=0,this.top=0,this.left=0,this.setup()}return Mt(e,[{key:"setup",value:function(){this.makeTooltip()}},{key:"refresh",value:function(){this.fill(),this.calcPosition()}},{key:"makeTooltip",value:function(){var e=this;this.container=t.create("div",{inside:this.parent,className:"graph-svg-tip comparison",innerHTML:'<span class="title"></span>\n\t\t\t\t<ul class="data-point-list"></ul>\n\t\t\t\t<div class="svg-pointer"></div>'}),this.hideTip(),this.title=this.container.querySelector(".title"),this.dataPointList=this.container.querySelector(".data-point-list"),this.parent.addEventListener("mouseleave",function(){e.hideTip()})}},{key:"fill",value:function(){var e=this,i=void 0;this.index&&this.container.setAttribute("data-point-index",this.index),i=this.titleValueFirst?"<strong>"+this.titleValue+"</strong>"+this.titleName:this.titleName+"<strong>"+this.titleValue+"</strong>",this.title.innerHTML=i,this.dataPointList.innerHTML="",this.listValues.map(function(i,n){var a=e.colors[n]||"black",s=0===i.formatted||i.formatted?i.formatted:i.value,r=t.create("li",{styles:{"border-top":"3px solid "+a},innerHTML:'<strong style="display: block;">'+(0===s||s?s:"")+"</strong>\n\t\t\t\t\t"+(i.title?i.title:"")});e.dataPointList.appendChild(r)})}},{key:"calcPosition",value:function(){var t=this.container.offsetWidth;this.top=this.y-this.container.offsetHeight-5,this.left=this.x-t/2;var e=this.parent.offsetWidth-t,i=this.container.querySelector(".svg-pointer");if(this.left<0)i.style.left="calc(50% - "+-1*this.left+"px)",this.left=0;else if(this.left>e){var n="calc(50% + "+(this.left-e)+"px)";i.style.left=n,this.left=e}else i.style.left="50%"}},{key:"setValues",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1;this.titleName=i.name,this.titleValue=i.value,this.listValues=n,this.x=t,this.y=e,this.titleValueFirst=i.valueFirst||0,this.index=a,this.refresh()}},{key:"hideTip",value:function(){this.container.style.top="0px",this.container.style.left="0px",this.container.style.opacity="0"}},{key:"showTip",value:function(){this.container.style.top=this.top+"px",this.container.style.left=this.left+"px",this.container.style.opacity="1"}}]),e}(),Ut={"light-blue":"#7cd6fd",blue:"#5e64ff",violet:"#743ee2",red:"#ff5858",orange:"#ffa00a",yellow:"#feef72",green:"#28a745","light-green":"#98d85b",purple:"#b554ff",magenta:"#ffa3ef",black:"#36114C",grey:"#bdd3e6","light-grey":"#f0f4f7","dark-grey":"#b8c2cc"},Gt=function(t){return Ut[t]||t},qt=6,Xt=4,Jt=10,Kt="#dadada",$t="#555b51",Qt={bar:function(t){var e=void 0;"rect"!==t.nodeName&&(e=t.getAttribute("transform"),t=t.childNodes[0]);var i=t.cloneNode();return i.style.fill="#000000",i.style.opacity="0.4",e&&i.setAttribute("transform",e),i},dot:function(t){var e=void 0;"circle"!==t.nodeName&&(e=t.getAttribute("transform"),t=t.childNodes[0]);var i=t.cloneNode(),n=t.getAttribute("r"),a=t.getAttribute("fill");return i.setAttribute("r",parseInt(n)+4),i.setAttribute("fill",a),i.style.opacity="0.6",e&&i.setAttribute("transform",e),i},heat_square:function(t){var e=void 0;"circle"!==t.nodeName&&(e=t.getAttribute("transform"),t=t.childNodes[0]);var i=t.cloneNode(),n=t.getAttribute("r"),a=t.getAttribute("fill");return i.setAttribute("r",parseInt(n)+4),i.setAttribute("fill",a),i.style.opacity="0.6",e&&i.setAttribute("transform",e),i}},Zt={bar:function(t,e){var i=void 0;"rect"!==t.nodeName&&(i=t.getAttribute("transform"),t=t.childNodes[0]);var n=["x","y","width","height"];Object.values(t.attributes).filter(function(t){return n.includes(t.name)&&t.specified}).map(function(t){e.setAttribute(t.name,t.nodeValue)}),i&&e.setAttribute("transform",i)},dot:function(t,e){var i=void 0;"circle"!==t.nodeName&&(i=t.getAttribute("transform"),t=t.childNodes[0]);var n=["cx","cy"];Object.values(t.attributes).filter(function(t){return n.includes(t.name)&&t.specified}).map(function(t){e.setAttribute(t.name,t.nodeValue)}),i&&e.setAttribute("transform",i)},heat_square:function(t,e){var i=void 0;"circle"!==t.nodeName&&(i=t.getAttribute("transform"),t=t.childNodes[0]);var n=["cx","cy"];Object.values(t.attributes).filter(function(t){return n.includes(t.name)&&t.specified}).map(function(t){e.setAttribute(t.name,t.nodeValue)}),i&&e.setAttribute("transform",i)}},te=350,ee=350,ie=te,ne=250,ae="easein",se={ease:"0.25 0.1 0.25 1",linear:"0 0 1 1",easein:"0.1 0.8 0.2 1",easeout:"0 0 0.58 1",easeinout:"0.42 0 0.58 1"},re=".chart-container{position:relative;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Roboto','Oxygen','Ubuntu','Cantarell','Fira Sans','Droid Sans','Helvetica Neue',sans-serif}.chart-container .axis,.chart-container .chart-label{fill:#555b51}.chart-container .axis line,.chart-container .chart-label line{stroke:#dadada}.chart-container .dataset-units circle{stroke:#fff;stroke-width:2}.chart-container .dataset-units path{fill:none;stroke-opacity:1;stroke-width:2px}.chart-container .dataset-path{stroke-width:2px}.chart-container .path-group path{fill:none;stroke-opacity:1;stroke-width:2px}.chart-container line.dashed{stroke-dasharray:5,3}.chart-container .axis-line .specific-value{text-anchor:start}.chart-container .axis-line .y-line{text-anchor:end}.chart-container .axis-line .x-line{text-anchor:middle}.chart-container .legend-dataset-text{fill:#6c7680;font-weight:600}.graph-svg-tip{position:absolute;z-index:99999;padding:10px;font-size:12px;color:#959da5;text-align:center;background:rgba(0,0,0,.8);border-radius:3px}.graph-svg-tip ul{padding-left:0;display:flex}.graph-svg-tip ol{padding-left:0;display:flex}.graph-svg-tip ul.data-point-list li{min-width:90px;flex:1;font-weight:600}.graph-svg-tip strong{color:#dfe2e5;font-weight:600}.graph-svg-tip .svg-pointer{position:absolute;height:5px;margin:0 0 0 -5px;content:' ';border:5px solid transparent;border-top-color:rgba(0,0,0,.8)}.graph-svg-tip.comparison{padding:0;text-align:left;pointer-events:none}.graph-svg-tip.comparison .title{display:block;padding:10px;margin:0;font-weight:600;line-height:1;pointer-events:none}.graph-svg-tip.comparison ul{margin:0;white-space:nowrap;list-style:none}.graph-svg-tip.comparison li{display:inline-block;padding:5px 10px}",oe=void 0,le=function(){function e(t,i){if(Ot(this,e),this.parent="string"==typeof t?document.querySelector(t):t,!(this.parent instanceof HTMLElement))throw new Error("No `parent` element to render on was provided.");this.rawChartArgs=i,this.title=i.title||"",this.type=i.type||"",this.realData=this.prepareData(i.data),this.data=this.prepareFirstData(this.realData),this.colors=this.validateColors(i.colors,this.type),this.config={showTooltip:1,showLegend:1,isNavigable:i.isNavigable||0,animate:1},this.measures=JSON.parse(JSON.stringify(Ht));var n=this.measures;this.setMeasures(i),this.title.length||(n.titleHeight=0),this.config.showLegend||(n.legendHeight=0),this.argHeight=i.height||n.baseHeight,this.state={},this.options={},this.initTimeout=Ft,this.config.isNavigable&&(this.overlays=[]),this.configure(i)}return Mt(e,[{key:"prepareData",value:function(t){return t}},{key:"prepareFirstData",value:function(t){return t}},{key:"validateColors",value:function(t,e){var i=[];return(t=(t||[]).concat(Yt[e])).forEach(function(t){var e=Gt(t);y(e)?i.push(e):console.warn('"'+t+'" is not a valid color.')}),i}},{key:"setMeasures",value:function(){}},{key:"configure",value:function(){var t=this.argHeight;this.baseHeight=t,this.height=t-o(this.measures),oe=this.boundDrawFn.bind(this),window.addEventListener("resize",oe),window.addEventListener("orientationchange",this.boundDrawFn.bind(this))}},{key:"boundDrawFn",value:function(){this.draw(!0)}},{key:"unbindWindowEvents",value:function(){window.removeEventListener("resize",oe),window.removeEventListener("orientationchange",this.boundDrawFn.bind(this))}},{key:"setup",value:function(){this.makeContainer(),this.updateWidth(),this.makeTooltip(),this.draw(!1,!0)}},{key:"makeContainer",value:function(){this.parent.innerHTML="";var e={inside:this.parent,className:"chart-container"};this.independentWidth&&(e.styles={width:this.independentWidth+"px"}),this.container=t.create("div",e)}},{key:"makeTooltip",value:function(){this.tip=new Bt({parent:this.container,colors:this.colors}),this.bindTooltip()}},{key:"bindTooltip",value:function(){}},{key:"draw",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.updateWidth(),this.calc(e),this.makeChartArea(),this.setupComponents(),this.components.forEach(function(e){return e.setup(t.drawArea)}),this.render(this.components,!1),i&&(this.data=this.realData,setTimeout(function(){t.update(t.data)},this.initTimeout)),this.renderLegend(),this.setupNavigation(i)}},{key:"calc",value:function(){}},{key:"updateWidth",value:function(){this.baseWidth=n(this.parent),this.width=this.baseWidth-l(this.measures)}},{key:"makeChartArea",value:function(){this.svg&&this.container.removeChild(this.svg);var t=this.measures;this.svg=w(this.container,"frappe-chart chart",this.baseWidth,this.baseHeight),this.svgDefs=A(this.svg),this.title.length&&(this.titleEL=E("title",t.margins.left,t.margins.top,this.title,{fontSize:t.titleFontSize,fill:"#666666",dy:t.titleFontSize}));var e=s(t);this.drawArea=P(this.type+"-chart chart-draw-area","translate("+r(t)+", "+e+")"),this.config.showLegend&&(e+=this.height+t.paddings.bottom,this.legendArea=P("chart-legend","translate("+r(t)+", "+e+")")),this.title.length&&this.svg.appendChild(this.titleEL),this.svg.appendChild(this.drawArea),this.config.showLegend&&this.svg.appendChild(this.legendArea),this.updateTipOffset(r(t),s(t))}},{key:"updateTipOffset",value:function(t,e){this.tip.offset={x:t,y:e}}},{key:"setupComponents",value:function(){this.components=new Map}},{key:"update",value:function(t){t||console.error("No data to update."),this.data=this.prepareData(t),this.calc(),this.render()}},{key:"render",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.components,i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.config.isNavigable&&this.overlays.map(function(t){return t.parentNode.removeChild(t)});var n=[];e.forEach(function(t){n=n.concat(t.update(i))}),n.length>0?(Z(this.container,this.svg,n),setTimeout(function(){e.forEach(function(t){return t.make()}),t.updateNav()},400)):(e.forEach(function(t){return t.make()}),this.updateNav())}},{key:"updateNav",value:function(){this.config.isNavigable&&(this.makeOverlay(),this.bindUnits())}},{key:"renderLegend",value:function(){}},{key:"setupNavigation",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.config.isNavigable&&e&&(this.bindOverlay(),this.keyActions={13:this.onEnterKey.bind(this),37:this.onLeftArrow.bind(this),38:this.onUpArrow.bind(this),39:this.onRightArrow.bind(this),40:this.onDownArrow.bind(this)},document.addEventListener("keydown",function(e){i(t.container)&&(e=e||window.event,t.keyActions[e.keyCode]&&t.keyActions[e.keyCode]())}))}},{key:"makeOverlay",value:function(){}},{key:"updateOverlay",value:function(){}},{key:"bindOverlay",value:function(){}},{key:"bindUnits",value:function(){}},{key:"onLeftArrow",value:function(){}},{key:"onRightArrow",value:function(){}},{key:"onUpArrow",value:function(){}},{key:"onDownArrow",value:function(){}},{key:"onEnterKey",value:function(){}},{key:"addDataPoint",value:function(){}},{key:"removeDataPoint",value:function(){}},{key:"getDataPoint",value:function(){}},{key:"setCurrentDataPoint",value:function(){}},{key:"updateDataset",value:function(){}},{key:"export",value:function(){var t=et(this.svg);tt(this.title||"Chart",[t])}}]),e}(),ue=function(t){function e(t,i){return Ot(this,e),St(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i))}return Et(e,t),Mt(e,[{key:"configure",value:function(t){Nt(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"configure",this).call(this,t),this.config.maxSlices=t.maxSlices||20,this.config.maxLegendPoints=t.maxLegendPoints||20}},{key:"calc",value:function(){var t=this,e=this.state,i=this.config.maxSlices;e.sliceTotals=[];var n=this.data.labels.map(function(e,i){var n=0;return t.data.datasets.map(function(t){n+=t.values[i]}),[n,e]}).filter(function(t){return t[0]>=0}),a=n;if(n.length>i){n.sort(function(t,e){return e[0]-t[0]}),a=n.slice(0,i-1);var s=0;n.slice(i-1).map(function(t){s+=t[0]}),a.push([s,"Rest"]),this.colors[i-1]="grey"}e.labels=[],a.map(function(t){e.sliceTotals.push(t[0]),e.labels.push(t[1])}),e.grandTotal=e.sliceTotals.reduce(function(t,e){return t+e},0),this.center={x:this.width/2,y:this.height/2}}},{key:"renderLegend",value:function(){var t=this,e=this.state;this.legendArea.textContent="",this.legendTotals=e.sliceTotals.slice(0,this.config.maxLegendPoints);var i=0,n=0;this.legendTotals.map(function(a,s){var r=Math.floor((t.width-l(t.measures))/110);i>r&&(i=0,n+=20);var o=N(110*i+5,n,5,t.colors[s],e.labels[s]+": "+a);t.legendArea.appendChild(o),i++})}}]),e}(le),he=7,ce=1e3,de=86400,pe=["January","February","March","April","May","June","July","August","September","October","November","December"],fe=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],ve=function(){function t(e){var i=e.layerClass,n=void 0===i?"":i,a=e.layerTransform,s=void 0===a?"":a,r=e.constants,o=e.getData,l=e.makeElements,u=e.animateElements;Ot(this,t),this.layerTransform=s,this.constants=r,this.makeElements=l,this.getData=o,this.animateElements=u,this.store=[],this.labels=[],this.layerClass=n,this.layerClass="function"==typeof this.layerClass?this.layerClass():this.layerClass,this.refresh()}return Mt(t,[{key:"refresh",value:function(t){this.data=t||this.getData()}},{key:"setup",value:function(t){this.layer=P(this.layerClass,this.layerTransform,t)}},{key:"make",value:function(){this.render(this.data),this.oldData=this.data}},{key:"render",value:function(t){var e=this;this.store=this.makeElements(t),this.layer.textContent="",this.store.forEach(function(t){e.layer.appendChild(t)}),this.labels.forEach(function(t){e.layer.appendChild(t)})}},{key:"update",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.refresh();var e=[];return t&&(e=this.animateElements(this.data)||[]),e}}]),t}(),ge={pieSlices:{layerClass:"pie-slices",makeElements:function(t){return t.sliceStrings.map(function(e,i){var n=C(e,"pie-path","none",t.colors[i]);return n.style.transition="transform .3s;",n})},animateElements:function(t){return this.store.map(function(e,i){return J(e,t.sliceStrings[i])})}},percentageBars:{layerClass:"percentage-bars",makeElements:function(t){var e=this;return t.xPositions.map(function(i,n){return D(i,0,t.widths[n],e.constants.barHeight,e.constants.barDepth,t.colors[n])})},animateElements:function(t){if(t)return[]}},yAxis:{layerClass:"y axis",makeElements:function(t){var e=this;return t.positions.map(function(i,n){return z(i,t.labels[n],e.constants.width,{mode:e.constants.mode,pos:e.constants.pos})})},animateElements:function(t){var e=t.positions,i=t.labels,n=this.oldData.positions,a=this.oldData.labels,s=f(n,e),r=_t(s,2);n=r[0],e=r[1];var o=f(a,i),l=_t(o,2);return a=l[0],i=l[1],this.render({positions:n,labels:i}),this.store.map(function(t,i){return B(t,e[i],n[i])})}},xAxis:{layerClass:"x axis",makeElements:function(t){var e=this;return t.positions.map(function(i,n){return H(i,t.calcLabels[n],e.constants.height,{mode:e.constants.mode,pos:e.constants.pos})})},animateElements:function(t){var e=t.positions,i=t.calcLabels,n=this.oldData.positions,a=this.oldData.calcLabels,s=f(n,e),r=_t(s,2);n=r[0],e=r[1];var o=f(a,i),l=_t(o,2);return a=l[0],i=l[1],this.render({positions:n,calcLabels:i}),this.store.map(function(t,i){return V(t,e[i],n[i])})}},yMarkers:{layerClass:"y-markers",makeElements:function(t){var e=this;return t.map(function(t){return F(t.position,t.label,e.constants.width,{labelPos:t.options.labelPos,mode:"span",lineType:"dashed"})})},animateElements:function(t){var e=f(this.oldData,t),i=_t(e,2);this.oldData=i[0];var n=(t=i[1]).map(function(t){return t.position}),a=t.map(function(t){return t.label}),s=t.map(function(t){return t.options}),r=this.oldData.map(function(t){return t.position});return this.render(r.map(function(t,e){return{position:r[e],label:a[e],options:s[e]}})),this.store.map(function(t,e){return B(t,n[e],r[e])})}},yRegions:{layerClass:"y-regions",makeElements:function(t){var e=this;return t.map(function(t){return j(t.startPos,t.endPos,e.constants.width,t.label,{labelPos:t.options.labelPos})})},animateElements:function(t){var e=f(this.oldData,t),i=_t(e,2);this.oldData=i[0];var n=(t=i[1]).map(function(t){return t.endPos}),a=t.map(function(t){return t.label}),s=t.map(function(t){return t.startPos}),r=t.map(function(t){return t.options}),o=this.oldData.map(function(t){return t.endPos}),l=this.oldData.map(function(t){return t.startPos});this.render(o.map(function(t,e){return{startPos:l[e],endPos:o[e],label:a[e],options:r[e]}}));var u=[];return this.store.map(function(t,e){u=u.concat(U(t,s[e],n[e],o[e]))}),u}},heatDomain:{layerClass:function(){return"heat-domain domain-"+this.constants.index},makeElements:function(t){var e=this,i=this.constants,n=i.index,a=i.colWidth,s=i.rowHeight,r=i.squareSize,o=i.xTranslate,l=0;return this.serializedSubDomains=[],t.cols.map(function(t,i){1===i&&e.labels.push(E("domain-name",o,-12,lt(n,!0).toUpperCase(),{fontSize:9})),t.map(function(t,i){if(t.fill){var n={"data-date":t.yyyyMmDd,"data-value":t.dataValue,"data-day":i},a=O("day",o,l,r,t.fill,n);e.serializedSubDomains.push(a)}l+=s}),l=0,o+=a}),this.serializedSubDomains},animateElements:function(t){if(t)return[]}},barGraph:{layerClass:function(){return"dataset-units dataset-bars dataset-"+this.constants.index},makeElements:function(t){var e=this.constants;return this.unitType="bar",this.units=t.yPositions.map(function(i,n){return W(t.xPositions[n],i,t.barWidth,e.color,t.labels[n],n,t.offsets[n],{zeroLine:t.zeroLine,barsWidth:t.barsWidth,minHeight:e.minHeight})}),this.units},animateElements:function(t){var e=t.xPositions,i=t.yPositions,n=t.offsets,a=t.labels,s=this.oldData.xPositions,r=this.oldData.yPositions,o=this.oldData.offsets,l=this.oldData.labels,u=f(s,e),h=_t(u,2);s=h[0],e=h[1];var c=f(r,i),d=_t(c,2);r=d[0],i=d[1];var p=f(o,n),v=_t(p,2);o=v[0],n=v[1];var g=f(l,a),y=_t(g,2);l=y[0],a=y[1],this.render({xPositions:s,yPositions:r,offsets:o,labels:a,zeroLine:this.oldData.zeroLine,barsWidth:this.oldData.barsWidth,barWidth:this.oldData.barWidth});var m=[];return this.store.map(function(a,s){m=m.concat(G(a,e[s],i[s],t.barWidth,n[s],{zeroLine:t.zeroLine}))}),m}},lineGraph:{layerClass:function(){return"dataset-units dataset-line dataset-"+this.constants.index},makeElements:function(t){var e=this.constants;return this.unitType="dot",this.paths={},e.hideLine||(this.paths=R(t.xPositions,t.yPositions,e.color,{heatline:e.heatline,regionFill:e.regionFill},{svgDefs:e.svgDefs,zeroLine:t.zeroLine})),this.units=[],e.hideDots||(this.units=t.yPositions.map(function(i,n){return I(t.xPositions[n],i,t.radius,e.color,e.valuesOverPoints?t.values[n]:"",n)})),Object.values(this.paths).concat(this.units)},animateElements:function(t){var e=t.xPositions,i=t.yPositions,n=t.values,a=this.oldData.xPositions,s=this.oldData.yPositions,r=this.oldData.values,o=f(a,e),l=_t(o,2);a=l[0],e=l[1];var u=f(s,i),h=_t(u,2);s=h[0],i=h[1];var c=f(r,n),d=_t(c,2);r=d[0],n=d[1],this.render({xPositions:a,yPositions:s,values:n,zeroLine:this.oldData.zeroLine,radius:this.oldData.radius});var p=[];return Object.keys(this.paths).length&&(p=p.concat(X(this.paths,e,i,t.zeroLine))),this.units.length&&this.units.map(function(t,n){p=p.concat(q(t,e[n],i[n]))}),p}}},ye=function(t){function i(t,e){Ot(this,i);var n=St(this,(i.__proto__||Object.getPrototypeOf(i)).call(this,t,e));return n.type="percentage",n.setup(),n}return Et(i,t),Mt(i,[{key:"setMeasures",value:function(t){var e=this.measures;this.barOptions=t.barOptions||{};var i=this.barOptions;i.height=i.height||20,i.depth=i.depth||Wt,e.paddings.right=30,e.legendHeight=80,e.baseHeight=8*(i.height+.5*i.depth)}},{key:"setupComponents",value:function(){var t=this.state,e=[["percentageBars",{barHeight:this.barOptions.height,barDepth:this.barOptions.depth},function(){return{xPositions:t.xPositions,widths:t.widths,colors:this.colors}}.bind(this)]];this.components=new Map(e.map(function(t){var e=dt.apply(void 0,zt(t));return[t[0],e]}))}},{key:"calc",value:function(){var t=this;Nt(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"calc",this).call(this);var e=this.state;e.xPositions=[],e.widths=[];var n=0;e.sliceTotals.map(function(i){var a=t.width*i/e.grandTotal;e.widths.push(a),e.xPositions.push(n),n+=a})}},{key:"makeDataByIndex",value:function(){}},{key:"bindTooltip",value:function(){var t=this,i=this.state;this.container.addEventListener("mousemove",function(n){var a=t.components.get("percentageBars").store,s=n.target;if(a.includes(s)){var r=a.indexOf(s),o=e(t.container),l=e(s),u=l.left-o.left+parseInt(s.getAttribute("width"))/2,h=l.top-o.top,c=(t.formattedLabels&&t.formattedLabels.length>0?t.formattedLabels[r]:t.state.labels[r])+": ",d=i.sliceTotals[r]/i.grandTotal;t.tip.setValues(u,h,{name:c,value:(100*d).toFixed(1)+"%"}),t.tip.showTip()}})}}]),i}(ue),me=function(t){function i(t,e){Ot(this,i);var n=St(this,(i.__proto__||Object.getPrototypeOf(i)).call(this,t,e));return n.type="pie",n.initTimeout=0,n.init=1,n.setup(),n}return Et(i,t),Mt(i,[{key:"configure",value:function(t){Nt(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"configure",this).call(this,t),this.mouseMove=this.mouseMove.bind(this),this.mouseLeave=this.mouseLeave.bind(this),this.hoverRadio=t.hoverRadio||.1,this.config.startAngle=t.startAngle||0,this.clockWise=t.clockWise||!1}},{key:"calc",value:function(){var t=this;Nt(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"calc",this).call(this);var e=this.state;this.radius=this.height>this.width?this.center.x:this.center.y;var n=this.radius,a=this.clockWise,s=e.slicesProperties||[];e.sliceStrings=[],e.slicesProperties=[];var r=180-this.config.startAngle;e.sliceTotals.map(function(i,o){var l=r,u=i/e.grandTotal*360,h=a?-u:u,c=r+=h,p=d(l,n),f=d(c,n),v=t.init&&s[o],g=void 0,y=void 0;t.init?(g=v?v.startPosition:p,y=v?v.endPosition:p):(g=p,y=f);var m=L(g,y,t.center,t.radius,t.clockWise);e.sliceStrings.push(m),e.slicesProperties.push({startPosition:p,endPosition:f,value:i,total:e.grandTotal,startAngle:l,endAngle:c,angle:h})}),this.init=0}},{key:"setupComponents",value:function(){var t=this.state,e=[["pieSlices",{},function(){return{sliceStrings:t.sliceStrings,colors:this.colors}}.bind(this)]];this.components=new Map(e.map(function(t){var e=dt.apply(void 0,zt(t));return[t[0],e]}))}},{key:"calTranslateByAngle",value:function(t){var e=this.radius,i=this.hoverRadio,n=d(t.startAngle+t.angle/2,e);return"translate3d("+n.x*i+"px,"+n.y*i+"px,0)"}},{key:"hoverSlice",value:function(t,i,n,a){if(t){var s=this.colors[i];if(n){$(t,this.calTranslateByAngle(this.state.slicesProperties[i])),t.style.fill=g(s,50);var r=e(this.svg),o=a.pageX-r.left+10,l=a.pageY-r.top-10,u=(this.formatted_labels&&this.formatted_labels.length>0?this.formatted_labels[i]:this.state.labels[i])+": ",h=(100*this.state.sliceTotals[i]/this.state.grandTotal).toFixed(1);this.tip.setValues(o,l,{name:u,value:h+"%"}),this.tip.showTip()}else $(t,"translate3d(0,0,0)"),this.tip.hideTip(),t.style.fill=s}}},{key:"bindTooltip",value:function(){this.container.addEventListener("mousemove",this.mouseMove),this.container.addEventListener("mouseleave",this.mouseLeave)}},{key:"mouseMove",value:function(t){var e=t.target,i=this.components.get("pieSlices").store,n=this.curActiveSliceIndex,a=this.curActiveSlice;if(i.includes(e)){var s=i.indexOf(e);this.hoverSlice(a,n,!1),this.curActiveSlice=e,this.curActiveSliceIndex=s,this.hoverSlice(e,s,!0,t)}else this.mouseLeave()}},{key:"mouseLeave",value:function(){this.hoverSlice(this.curActiveSlice,this.curActiveSliceIndex,!1)}}]),i}(ue),be=function(t){function e(t,i){Ot(this,e);var n=St(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,i));n.type="heatmap",n.countLabel=i.countLabel||"";var a=["Sunday","Monday"],s=a.includes(i.startSubDomain)?i.startSubDomain:"Sunday";return n.startSubDomainIndex=a.indexOf(s),n.setup(),n}return Et(e,t),Mt(e,[{key:"setMeasures",value:function(t){var e=this.measures;this.discreteDomains=0===t.discreteDomains?0:1,e.paddings.top=36,e.paddings.bottom=0,e.legendHeight=24,e.baseHeight=12*he+o(e);var i=this.data,n=this.discreteDomains?12:0;this.independentWidth=12*(st(i.start,i.end)+n)+l(e)}},{key:"updateWidth",value:function(){var t=this.discreteDomains?12:0,e=this.state.noOfWeeks?this.state.noOfWeeks:52;this.baseWidth=12*(e+t)+l(this.measures)}},{key:"prepareData",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.data;if(t.start&&t.end&&t.start>t.end)throw new Error("Start date cannot be greater than end date.");if(t.start||(t.start=new Date,t.start.setFullYear(t.start.getFullYear()-1)),t.end||(t.end=new Date),t.dataPoints=t.dataPoints||{},parseInt(Object.keys(t.dataPoints)[0])>1e5){var e={};Object.keys(t.dataPoints).forEach(function(i){var n=new Date(i*ce);e[nt(n)]=t.dataPoints[i]}),t.dataPoints=e}return t}},{key:"calc",value:function(){var t=this.state;t.start=at(this.data.start),t.end=at(this.data.end),t.firstWeekStart=at(t.start),t.noOfWeeks=st(t.start,t.end),t.distribution=wt(Object.values(this.data.dataPoints),5),t.domainConfigs=this.getDomains()}},{key:"setupComponents",value:function(){var t=this,e=this.state,i=this.discreteDomains?0:1,n=e.domainConfigs.map(function(n,a){return["heatDomain",{index:n.index,colWidth:12,rowHeight:12,squareSize:10,xTranslate:12*e.domainConfigs.filter(function(t,e){return e<a}).map(function(t){return t.cols.length-i}).reduce(function(t,e){return t+e},0)},function(){return e.domainConfigs[a]}.bind(t)]});this.components=new Map(n.map(function(t,e){var i=dt.apply(void 0,zt(t));return[t[0]+"-"+e,i]}));var a=0;fe.forEach(function(e,i){if([1,3,5].includes(i)){var n=E("subdomain-name",-6,a,e,{fontSize:10,dy:8,textAnchor:"end"});t.drawArea.appendChild(n)}a+=12})}},{key:"update",value:function(t){t||console.error("No data to update."),this.data=this.prepareData(t),this.draw(),this.bindTooltip()}},{key:"bindTooltip",value:function(){var t=this;this.container.addEventListener("mousemove",function(e){t.components.forEach(function(i){var n=i.store,a=e.target;if(n.includes(a)){var s=a.getAttribute("data-value"),r=a.getAttribute("data-date").split("-"),o=lt(parseInt(r[1])-1,!0),l=t.container.getBoundingClientRect(),u=a.getBoundingClientRect(),h=parseInt(e.target.getAttribute("width")),c=u.left-l.left+h/2,d=u.top-l.top,p=s+" "+t.countLabel,f=" on "+o+" "+r[0]+", "+r[2];t.tip.setValues(c,d,{name:f,value:p,valueFirst:1},[]),t.tip.showTip()}})})}},{key:"renderLegend",value:function(){var t=this;this.legendArea.textContent="";var e=0,i=E("subdomain-name",e,12,"Less",{fontSize:11,dy:9});e=30,this.legendArea.appendChild(i),this.colors.slice(0,5).map(function(i,n){var a=O("heatmap-legend-unit",e+15*n,12,10,i);t.legendArea.appendChild(a)});var n=E("subdomain-name",e+75+3,12,"More",{fontSize:11,dy:9});this.legendArea.appendChild(n)}},{key:"getDomains",value:function(){for(var t=this.state,e=[t.start.getMonth(),t.start.getFullYear()],i=e[0],n=e[1],a=[t.end.getMonth(),t.end.getFullYear()],s=a[0]-i+1+12*(a[1]-n),r=[],o=at(t.start),l=0;l<s;l++){var u=t.end;if(!ot(o,t.end)){var h=[o.getMonth(),o.getFullYear()];u=ut(h[0],h[1])}r.push(this.getDomainConfig(o,u)),ct(u,1),o=u}return r}},{key:"getDomainConfig",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=[t.getMonth(),t.getFullYear()],n=i[0],a=i[1],s=ht(t),r={index:n,cols:[]};ct(e=at(e)||ut(n,a),1);for(var o=st(s,e),l=[],u=void 0,h=0;h<o;h++)u=this.getCol(s,n),l.push(u),ct(s=new Date(u[he-1].yyyyMmDd),1);return void 0!==u[he-1].dataValue&&(ct(s,1),l.push(this.getCol(s,n,!0))),r.cols=l,r}},{key:"getCol",value:function(t,e){for(var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=this.state,a=at(t),s=[],r=0;r<he;r++,ct(a,1)){var o={},l=a>=n.start&&a<=n.end;i||a.getMonth()!==e||!l?o.yyyyMmDd=nt(a):o=this.getSubDomainConfig(a),s.push(o)}return s}},{key:"getSubDomainConfig",value:function(t){var e=nt(t),i=this.data.dataPoints[e];return{yyyyMmDd:e,dataValue:i||0,fill:this.colors[At(i,this.state.distribution)]}}}]),e}(le),xe=function(t){function i(t,e){Ot(this,i);var n=St(this,(i.__proto__||Object.getPrototypeOf(i)).call(this,t,e));return n.barOptions=e.barOptions||{},n.lineOptions=e.lineOptions||{},n.type=e.type||"line",n.init=1,n.setup(),n}return Et(i,t),Mt(i,[{key:"setMeasures",value:function(){this.data.datasets.length<=1&&(this.config.showLegend=0,this.measures.paddings.bottom=30)}},{key:"configure",value:function(t){Nt(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"configure",this).call(this,t),t.axisOptions=t.axisOptions||{},t.tooltipOptions=t.tooltipOptions||{},this.config.xAxisMode=t.axisOptions.xAxisMode||"span",this.config.yAxisMode=t.axisOptions.yAxisMode||"span",this.config.xIsSeries=t.axisOptions.xIsSeries||0,this.config.formatTooltipX=t.tooltipOptions.formatTooltipX,this.config.formatTooltipY=t.tooltipOptions.formatTooltipY,this.config.valuesOverPoints=t.valuesOverPoints}},{key:"prepareData",value:function(){return Pt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.data,this.type)}},{key:"prepareFirstData",value:function(){return Ct(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.data)}},{key:"calc",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.calcXPositions(),t||this.calcYAxisParameters(this.getAllYValues(),"line"===this.type),this.makeDataByIndex()}},{key:"calcXPositions",value:function(){var t=this.state,e=this.data.labels;t.datasetLength=e.length,t.unitWidth=this.width/t.datasetLength,t.xOffset=t.unitWidth/2,t.xAxis={labels:e,positions:e.map(function(e,i){return u(t.xOffset+i*t.unitWidth)})}}},{key:"calcYAxisParameters",value:function(t){var e=gt(t,arguments.length>1&&void 0!==arguments[1]?arguments[1]:"false"),i=this.height/bt(e),n=mt(e)*i,a=this.height-yt(e)*n;this.state.yAxis={labels:e,positions:e.map(function(t){return a-t*i}),scaleMultiplier:i,zeroLine:a},this.calcDatasetPoints(),this.calcYExtremes(),this.calcYRegions()}},{key:"calcDatasetPoints",value:function(){var t=this.state,e=function(e){return e.map(function(e){return xt(e,t.yAxis)})};t.datasets=this.data.datasets.map(function(t,i){var n=t.values,a=t.cumulativeYs||[];return{name:t.name,index:i,chartType:t.chartType,values:n,yPositions:e(n),cumulativeYs:a,cumulativeYPos:e(a)}})}},{key:"calcYExtremes",value:function(){var t=this.state;if(this.barOptions.stacked)return void(t.yExtremes=t.datasets[t.datasets.length-1].cumulativeYPos);t.yExtremes=new Array(t.datasetLength).fill(9999),t.datasets.map(function(e){e.yPositions.map(function(e,i){e<t.yExtremes[i]&&(t.yExtremes[i]=e)})})}},{key:"calcYRegions",value:function(){var t=this.state;this.data.yMarkers&&(this.state.yMarkers=this.data.yMarkers.map(function(e){return e.position=xt(e.value,t.yAxis),e.options||(e.options={}),e})),this.data.yRegions&&(this.state.yRegions=this.data.yRegions.map(function(e){return e.startPos=xt(e.start,t.yAxis),e.endPos=xt(e.end,t.yAxis),e.options||(e.options={}),e}))}},{key:"getAllYValues",value:function(){var t,e=this,i="values";if(this.barOptions.stacked){i="cumulativeYs";var n=new Array(this.state.datasetLength).fill(0);this.data.datasets.map(function(t,a){var s=e.data.datasets[a].values;t[i]=n=n.map(function(t,e){return t+s[e]})})}var a=this.data.datasets.map(function(t){return t[i]});return this.data.yMarkers&&a.push(this.data.yMarkers.map(function(t){return t.value})),this.data.yRegions&&this.data.yRegions.map(function(t){a.push([t.end,t.start])}),(t=[]).concat.apply(t,zt(a))}},{key:"setupComponents",value:function(){var t=this,e=[["yAxis",{mode:this.config.yAxisMode,width:this.width},function(){return this.state.yAxis}.bind(this)],["xAxis",{mode:this.config.xAxisMode,height:this.height},function(){var t=this.state;return t.xAxis.calcLabels=Lt(this.width,t.xAxis.labels,this.config.xIsSeries),t.xAxis}.bind(this)],["yRegions",{width:this.width,pos:"right"},function(){return this.state.yRegions}.bind(this)]],i=this.state.datasets.filter(function(t){return"bar"===t.chartType}),n=this.state.datasets.filter(function(t){return"line"===t.chartType}),a=i.map(function(e){var n=e.index;return["barGraph-"+e.index,{index:n,color:t.colors[n],stacked:t.barOptions.stacked,valuesOverPoints:t.config.valuesOverPoints,minHeight:.01*t.height},function(){var t=this.state,e=t.datasets[n],a=this.barOptions.stacked,s=this.barOptions.spaceRatio||.5,r=t.unitWidth*(1-s),o=r/(a?1:i.length),l=t.xAxis.positions.map(function(t){return t-r/2});a||(l=l.map(function(t){return t+o*n}));var u=new Array(t.datasetLength).fill("");this.config.valuesOverPoints&&(u=a&&e.index===t.datasets.length-1?e.cumulativeYs:e.values);var h=new Array(t.datasetLength).fill(0);return a&&(h=e.yPositions.map(function(t,i){return t-e.cumulativeYPos[i]})),{xPositions:l,yPositions:e.yPositions,offsets:h,labels:u,zeroLine:t.yAxis.zeroLine,barsWidth:r,barWidth:o}}.bind(t)]}),s=n.map(function(e){var i=e.index;return["lineGraph-"+e.index,{index:i,color:t.colors[i],svgDefs:t.svgDefs,heatline:t.lineOptions.heatline,regionFill:t.lineOptions.regionFill,hideDots:t.lineOptions.hideDots,hideLine:t.lineOptions.hideLine,valuesOverPoints:t.config.valuesOverPoints},function(){var t=this.state,e=t.datasets[i],n=t.yAxis.positions[0]<t.yAxis.zeroLine?t.yAxis.positions[0]:t.yAxis.zeroLine;return{xPositions:t.xAxis.positions,yPositions:e.yPositions,values:e.values,zeroLine:n,radius:this.lineOptions.dotSize||4}}.bind(t)]}),r=[["yMarkers",{width:this.width,pos:"right"},function(){return this.state.yMarkers}.bind(this)]];e=e.concat(a,s,r);var o=["yMarkers","yRegions"];this.dataUnitComponents=[],this.components=new Map(e.filter(function(e){return!o.includes(e[0])||t.state[e[0]]}).map(function(e){var i=dt.apply(void 0,zt(e));return(e[0].includes("lineGraph")||e[0].includes("barGraph"))&&t.dataUnitComponents.push(i),[e[0],i]}))}},{key:"makeDataByIndex",value:function(){var t=this;this.dataByIndex={};var e=this.state,i=this.config.formatTooltipX,n=this.config.formatTooltipY;e.xAxis.labels.map(function(a,s){var r=t.state.datasets.map(function(e,i){var a=e.values[s];return{title:e.name,value:a,yPos:e.yPositions[s],color:t.colors[i],formatted:n?n(a):a}});t.dataByIndex[s]={label:a,formattedLabel:i?i(a):a,xPos:e.xAxis.positions[s],values:r,yExtreme:e.yExtremes[s]}})}},{key:"bindTooltip",value:function(){var t=this;this.container.addEventListener("mousemove",function(i){var n=t.measures,a=e(t.container),o=i.pageX-a.left-r(n),l=i.pageY-a.top;l<t.height+s(n)&&l>s(n)?t.mapTooltipXPosition(o):t.tip.hideTip()})}},{key:"mapTooltipXPosition",value:function(t){var e=this.state;if(e.yExtremes){var i=kt(t,e.xAxis.positions,!0),n=this.dataByIndex[i];this.tip.setValues(n.xPos+this.tip.offset.x,n.yExtreme+this.tip.offset.y,{name:n.formattedLabel,value:""},n.values,i),this.tip.showTip()}}},{key:"renderLegend",value:function(){var t=this,e=this.data;e.datasets.length>1&&(this.legendArea.textContent="",e.datasets.map(function(e,i){var n=M(100*i,"0",100,t.colors[i],e.name);t.legendArea.appendChild(n)}))}},{key:"makeOverlay",value:function(){var t=this;if(this.init)return void(this.init=0);this.overlayGuides&&this.overlayGuides.forEach(function(t){var e=t.overlay;e.parentNode.removeChild(e)}),this.overlayGuides=this.dataUnitComponents.map(function(t){return{type:t.unitType,overlay:void 0,units:t.units}}),void 0===this.state.currentIndex&&(this.state.currentIndex=this.state.datasetLength-1),this.overlayGuides.map(function(e){var i=e.units[t.state.currentIndex];e.overlay=Qt[e.type](i),t.drawArea.appendChild(e.overlay)})}},{key:"updateOverlayGuides",value:function(){this.overlayGuides&&this.overlayGuides.forEach(function(t){var e=t.overlay;e.parentNode.removeChild(e)})}},{key:"bindOverlay",value:function(){var t=this;this.parent.addEventListener("data-select",function(){t.updateOverlay()})}},{key:"bindUnits",value:function(){var t=this;this.dataUnitComponents.map(function(e){e.units.map(function(e){e.addEventListener("click",function(){var i=e.getAttribute("data-point-index");t.setCurrentDataPoint(i)})})}),this.tip.container.addEventListener("click",function(){var e=t.tip.container.getAttribute("data-point-index");t.setCurrentDataPoint(e)})}},{key:"updateOverlay",value:function(){var t=this;this.overlayGuides.map(function(e){var i=e.units[t.state.currentIndex];Zt[e.type](i,e.overlay)})}},{key:"onLeftArrow",value:function(){this.setCurrentDataPoint(this.state.currentIndex-1)}},{key:"onRightArrow",value:function(){this.setCurrentDataPoint(this.state.currentIndex+1)}},{key:"getDataPoint",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.state.currentIndex,e=this.state;return{index:t,label:e.xAxis.labels[t],values:e.datasets.map(function(e){return e.values[t]})}}},{key:"setCurrentDataPoint",value:function(t){var e=this.state;(t=parseInt(t))<0&&(t=0),t>=e.xAxis.labels.length&&(t=e.xAxis.labels.length-1),t!==e.currentIndex&&(e.currentIndex=t,a(this.parent,"data-select",this.getDataPoint()))}},{key:"addDataPoint",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.state.datasetLength;Nt(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"addDataPoint",this).call(this,t,e,n),this.data.labels.splice(n,0,t),this.data.datasets.map(function(t,i){t.values.splice(n,0,e[i])}),this.update(this.data)}},{key:"removeDataPoint",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.state.datasetLength-1;this.data.labels.length<=1||(Nt(i.prototype.__proto__||Object.getPrototypeOf(i.prototype),"removeDataPoint",this).call(this,t),this.data.labels.splice(t,1),this.data.datasets.map(function(e){e.values.splice(t,1)}),this.update(this.data))}},{key:"updateDataset",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this.data.datasets[e].values=t,this.update(this.data)}},{key:"updateDatasets",value:function(t){this.data.datasets.map(function(e,i){t[i]&&(e.values=t[i])}),this.update(this.data)}}]),i}(le),ke={bar:xe,line:xe,percentage:ye,heatmap:be,pie:me},we=function t(e,i){return Ot(this,t),Tt(i.type,e,i)},Ae=Object.freeze({Chart:we,PercentageChart:ye,PieChart:me,Heatmap:be,AxisChart:xe}),Pe={};return Pe.NAME="Frappe Charts",Pe.VERSION="1.1.0",Pe=Object.assign({},Pe,Ae)}();
2
+ //# sourceMappingURL=frappe-charts.min.iife.js.map
lite/admin/partials/dashboard.php CHANGED
@@ -3,117 +3,300 @@
3
  if ( ! defined( 'ABSPATH' ) ) {
4
  exit;
5
  }
6
- $current_user = wp_get_current_user();
7
- $current_user_email = $current_user->user_email;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  ?>
9
- <!-- <div class="wrap"> -->
10
- <?php do_action( 'ig_es_before_dashboard' ) ?>
11
- <div class="about-header">
12
- <div class="es-upper">
13
- <div class="es-info">
14
- <div class="es-about">
15
- <?php
16
- $es_upgrade_to_4 = get_option('ig_es_db_version', '' );
17
- $ig_es_onboarding_complete = get_option('ig_es_onboarding_complete', 'no' );
18
- if(empty($es_upgrade_to_4)){?>
19
- <h2><?php echo __( "Congratulations! You've successfully upgraded to " . ES_PLUGIN_VERSION , 'email-subscribers' ); ?></h2>
20
- <ul><strong><?php _e('Here\'s a quick look at changes within the plugin:', 'email-subscribers'); ?></strong>
21
- <li class="es-notify-about-new-post-2"><?php echo sprintf( __( '1. Newsletters are now <b>Broadcasts</b>. Broadcasts and Post notifications are now merged in <a href="%s" target="_blank">Campaigns</a>', 'email-subscribers' ), admin_url( 'admin.php?page=es_campaigns' )); ?></li>
22
- <li class="es-notify-about-new-post-2"><?php echo sprintf( __( '2. Subscribers are now called <b>Contacts</b> and part of an <a href="%s" target="_blank">Audience</a>', 'email-subscribers' ), admin_url( 'admin.php?page=es_subscribers' )); ?></li>
23
- <li class="es-notify-about-new-post-2"><?php echo sprintf( __( '3. Groups are now called <a href="%s" target="_blank">Lists</a>', 'email-subscribers' ), admin_url( 'admin.php?page=es_lists' )); ?></li>
24
- <li class="es-notify-about-new-post-2"><?php echo sprintf( __( '4. Find <a href="%s" target="_blank">Forms</a> here', 'email-subscribers' ), admin_url( 'admin.php?page=es_forms' )); ?></li>
25
- </ul>
26
- <a href="https://www.icegram.com/email-subscribers-plugin-redesign/?utm_source=es&utm_medium=in_app&utm_campaign=es_4" target="_blank" class="button button-main"><?php _e('Explore all changes', 'email-subscribers'); ?></a>
27
- <?php }else if( 'yes' === $ig_es_onboarding_complete ){?>
28
- <h2><?php echo __( "You are all setup 👍", 'email-subscribers' ); ?></h2>
29
- <div class="es-notify-about-new-post-1"><b><?php echo __( 'Here are the things you can do next', 'email-subscribers' ); ?></b></div>
30
- <ul>
31
- <li class="es-notify-about-new-post-2"><?php echo sprintf( __( '1.Check <a href="%s" target="blank" >optin form</a> on your homepage', 'email-subscribers' ), home_url()); ?></li>
32
- <li class="es-notify-about-new-post-2"><?php echo sprintf( __( '2. <a href="%s" target="blank" ><b>Review and rearrange the form from Widgets.</b></a> You can also learn about <a href="%s" target="_blank">adding a form to another place from this help article.</a>', 'email-subscribers' ), admin_url( 'widgets.php' ), 'https://www.icegram.com/documentation/how-to-create-form-in-email-subscribers/' ); ?></li>
33
- <li class="es-notify-about-new-post-2"><?php echo sprintf( __( '3. Go ahead and take a look around. Tweak settings, review <a href="%s" target="_blank">design templates</a> or go through the documentation.', 'email-subscribers' ), admin_url('edit.php?post_type=es_template') ); ?></li>
34
- <li class="es-notify-about-new-post-2"><?php echo __( '4. And if you haven\'t already, signup for the free course below.', 'email-subscribers' ); ?></li>
35
- </ul>
36
- <?php }else{?>
37
- <h2><?php echo __( 'Hello! 👋', 'email-subscribers' ); ?></h2>
38
- <div class="es-about-line"><?php _e('Email Subscribers is a complete newsletter plugin that lets you collect leads, send automated new blog post notification emails, send newsletters and more. It’s your tool to build an audience and engage with them ongoingly.', 'email-subscribers')?></div>
39
- <div class="es-about-text"><?php echo __( 'We’ve setup the basics to save you time.', 'email-subscribers' ); ?></div>
40
- <div class="es-notify-about-new-post-1"><b><?php echo __( 'Please read this carefully and make changes as needed', 'email-subscribers' ); ?></b></div>
41
- <ul>
42
- <li class="es-notify-about-new-post-2"><?php echo __( '1. We created two lists - <b>Main List</b> and <b>Test List</b>. Also added yourself to the Test List. That way you can test campaigns on the Test List before sending them to the Main List ;-)', 'email-subscribers' ); ?></li>
43
- <li class="es-notify-about-new-post-2"><?php echo sprintf( __( '2. We also created a lead collection / subscription form and added it the default widget area on your site. <a href="%s" target="blank" ><b>Review and rearrange the form from Widgets.</b></a> You can also learn about <a href="%s" target="_blank">adding a form to another place from this help article.</a>', 'email-subscribers' ), admin_url( 'widgets.php' ), 'https://www.icegram.com/documentation/how-to-create-form-in-email-subscribers/' ); ?></li>
44
- <li class="es-notify-about-new-post-2"><?php echo sprintf( __( '3. BTW, we also sent a few test emails to the Test List. <a href="%s" target="_blank">We sent both those campaigns</b> </a>(newsletter and new post notification).<b> So check your email "', 'email-subscribers' ). $admin_email . __( '" and confirm you got those test emails.</b>', 'email-subscribers' ) , admin_url( 'admin.php?page=es_campaigns' ) ); ?></li>
45
- <li class="es-notify-about-new-post-2"><?php echo sprintf( __( '4. Go ahead and take a look around. Tweak settings, review <a href="%s" target="_blank">design templates</a> or go through the documentation.', 'email-subscribers' ), admin_url('edit.php?post_type=es_template') ); ?></li>
46
- <li class="es-notify-about-new-post-2"><?php echo __( '5. And don’t forget to signup for the free course below.', 'email-subscribers' ); ?></li>
47
- </ul>
48
-
49
- <?php }?>
50
- </div>
51
- <div class="wrap klawoo-form">
52
- <table class="form-table" >
53
- <tr><td colspan="3" class="es-optin-headline"><?php echo __( 'Free Course - Email Marketing Mastery', 'email-subscribers' ); ?></td></tr>
54
- <tr>
55
- <td class="es-emm-image"><img alt="Email Marketing Mastery" src="<?php echo plugin_dir_url( dirname( __FILE__ ) ); ?>images/email-marketing-mastery.png" /></td>
56
- <td class="es-emm-text">
57
- <b><?php echo __( 'In short 5 weeks: build your list and succeed with email marketing', 'email-subscribers' ); ?></b> <br /><br />
58
- <?php echo __( 'Do you want to build your list, keep off spam, write emails that people open and click through? Do you want to build your brand and nurture an amazing tribe?
59
- Enter your name and email on the form to get it all.', 'email-subscribers' ); ?><br /><br />
60
- </td>
61
- <td class="es-emm-optin">
62
- <form name="klawoo_subscribe" action="#" method="POST" accept-charset="utf-8">
63
- <input class="es-ltr" type="text" name="name" id="name" placeholder="Your Name" />
64
- <input class="es-ltr" type="text" name="email" id="email" placeholder="Your Email" required value="<?php echo $current_user_email;?>"/> <br />
65
- <input type="hidden" name="list" value="hN8OkYzujUlKgDgfCTEcIA"/>
66
- <input type="checkbox" name="es-gdpr-agree" id ="es-gdpr-agree" value="1" required="required">
67
- <label for="es-gdpr-agree"><?php echo sprintf(__( 'I have read and agreed to your %s.', 'email-subscribers' ), '<a href="https://www.icegram.com/privacy-policy/" target="_blank">' . __( 'Privacy Policy', 'email-subscribers' ) . '</a>' ); ?></label>
68
- <br /><br />
69
- <input type="submit" name="submit" id="submit" class="button button-hero" value="<?php echo __( 'Subscribe', 'email-subscribers' ); ?>">
70
- <br><br>
71
- <p id="klawoo_response"></p>
72
- </form>
73
- </td>
74
- </tr>
75
- </table>
76
- </div>
77
- </div>
78
- <div class="es-right">
79
- <div class="es-quick-stats" >
80
- <?php $sub_count = ES()->contacts_db->count_active_contacts_by_list_id();
81
- $total_forms = ES()->forms_db->count_forms();
82
- $total_lists = ES()->lists_db->count_lists();
83
- $total_campaigns = ES()->campaigns_db->get_total_campaigns();
84
- ?>
85
- </div>
86
- <div class="es-quick-links-wrapper" >
87
- <h3 class="es-right-headline"><?php _e('Overview', 'email-subscribers'); ?></h3>
88
- <li class="es-quick-links"><a target="_blank" href="<?php echo admin_url( 'admin.php?page=es_subscribers&filter_by_status=subscribed' )?>" ><?php _e('Active Contacts', 'email-subscribers')?></a> <span class="es-count"><?php echo '- '.$sub_count; ?> </span></li>
89
- <li class="es-quick-links"><a target="_blank" href="<?php echo admin_url( 'admin.php?page=es_forms' )?>" ><?php _e('Forms', 'email-subscribers')?></a><span class="es-count"><?php echo '- '.$total_forms; ?> </span></li>
90
- <li class="es-quick-links"><a target="_blank" href="<?php echo admin_url( 'admin.php?page=es_campaigns' )?>" ><?php _e('Campaigns', 'email-subscribers')?></a><span class="es-count"><?php echo '- '.$total_campaigns; ?> </span></li>
91
- <li class="es-quick-links"><a target="_blank" href="<?php echo admin_url( 'admin.php?page=es_lists' )?>" ><?php _e('Lists', 'email-subscribers')?></a><span class="es-count"><?php echo '- '.$total_lists; ?> </span></li>
92
- </div>
93
- <div class="es-docs-wrapper" >
94
- <h3 class="es-right-headline"><?php _e('Help & How to\'s', 'email-subscribers'); ?></h3>
95
- <li class="es-doc-links"><a target="_blank" href="https://www.icegram.com/documentation/how-to-create-form-in-email-subscribers/?utm_source=es&utm_medium=in_app&utm_campaign=view_docs_help_page"><?php _e('How to create and show subscription forms.', 'email-subscribers'); ?></a></li>
96
- <li class="es-doc-links"><a target="_blank" href="https://www.icegram.com/documentation/es-how-to-create-and-send-post-notification-emails-when-new-posts-are-published/?utm_source=es&utm_medium=in_app&utm_campaign=view_docs_help_page"><?php _e('How to create a new campaign for new blog post ', 'email-subscribers'); ?></a></li>
97
- <li class="es-doc-links"><a target="_blank" href="https://www.icegram.com/documentation/how-to-create-new-template-for-post-notification-or-broadcast/?utm_source=es&utm_medium=in_app&utm_campaign=view_docs_help_page"><?php _e('How to create new template for Post Notification or Broadcast', 'email-subscribers'); ?></a></li>
98
- <li class="es-doc-links"><a target="_blank" href="https://www.icegram.com/documentation/es-how-to-create-and-send-newsletter-emails/?utm_source=es&utm_medium=in_app&utm_campaign=view_docs_help_page"><?php _e('How to Create and Send Broadcasts Emails', 'email-subscribers'); ?></a></li>
99
- <li class="es-doc-links"><a target="_blank" href="https://www.icegram.com/documentation/es-how-does-sync-work/?utm_source=es&utm_medium=in_app&utm_campaign=view_docs_help_page"><?php _e('How to add WordPress users to your lists', 'email-subscribers'); ?></a></li>
100
- <li class="es-doc-links"><a target="_blank" href="https://www.icegram.com/knowledgebase_category/email-subscribers/?utm_source=es&utm_medium=in_app&utm_campaign=view_docs_help_page"><?php _e('All Documentation', 'email-subscribers'); ?></a></li>
101
- </div>
102
- <div class="es-facebook column">
103
- <p><strong><?php _e('<span>Join our</span> Email Subscribers Secret Club!','email-subscribers'); ?></strong></p>
104
- <p><?php _e('Be a part of growing Email Subscribers community. Share your valuable feedback and get quick help from community. It\'s a great way to connect with real people', 'email-subscribers'); ?></p>
105
- <p style="text-align: center;" ><a style="text-decoration: none" target="_blank" href="https://www.facebook.com/groups/2298909487017349/"><i class="dashicons dashicons-es dashicons-facebook"></i></a></p>
106
- </div>
107
- <div class="es-lower">
108
- <div class="es-version">
109
- <h3><?php echo __( 'Questions? Need Help?', 'email-subscribers' ); ?></h3>
110
- <a href="https://wordpress.org/support/plugin/email-subscribers" target="_blank"><?php echo __( 'Contact Us', 'email-subscribers' ); ?></a>
111
- <h5 class="es-badge"><?php echo sprintf( __( 'Version: %s', 'email-subscribers' ), $es_current_version ); ?></h5>
112
- </div>
113
- </div>
114
- </div>
115
-
116
- </div>
117
-
118
- </div>
119
- <!-- </div> -->
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  if ( ! defined( 'ABSPATH' ) ) {
4
  exit;
5
  }
6
+
7
+
8
+ $current_user = wp_get_current_user();
9
+ $current_user_email = $current_user->user_email;
10
+
11
+ $reports_data = ES_Reports_Data::get_dashboard_reports_data();
12
+
13
+ $active_contacts = isset( $reports_data['total_contacts'] ) ? $reports_data['total_contacts'] : 0;
14
+ $total_forms = isset( $reports_data['total_forms'] ) ? $reports_data['total_forms'] : 0;
15
+ $total_campaigns = isset( $reports_data['total_campaigns'] ) ? $reports_data['total_campaigns'] : 0;
16
+ $total_lists = isset( $reports_data['total_lists'] ) ? $reports_data['total_lists'] : 0;
17
+ $total_email_opens = isset( $reports_data['total_email_opens'] ) ? $reports_data['total_email_opens'] : 0;
18
+ $total_open_rate = isset( $reports_data['total_open_rate'] ) ? $reports_data['total_open_rate'] : 0;
19
+ $total_message_sent = isset( $reports_data['total_message_sent'] ) ? $reports_data['total_message_sent'] : 0;
20
+ $total_links_clicks = isset( $reports_data['total_links_clicks'] ) ? $reports_data['total_links_clicks'] : 0;
21
+ $total_click_rate = isset( $reports_data['total_click_rate'] ) ? $reports_data['total_click_rate'] : 0;
22
+ $total_contact_lost = isset( $reports_data['total_message_lost'] ) ? $reports_data['total_message_lost'] : 0;
23
+ $total_lost_rate = isset( $reports_data['total_lost_rate'] ) ? $reports_data['total_lost_rate'] : 0;
24
+ $avg_open_rate = isset( $reports_data['avg_open_rate'] ) ? $reports_data['avg_open_rate'] : 0;
25
+ $avg_click_rate = isset( $reports_data['avg_click_rate'] ) ? $reports_data['avg_click_rate'] : 0;
26
+ $contacts_growth = isset( $reports_data['contacts_growth'] ) ? $reports_data['contacts_growth'] : array();
27
+ $campaigns = isset( $reports_data['campaigns'] ) ? $reports_data['campaigns'] : array();
28
+
29
+ $labels = $values = '';
30
+ if ( ! empty( $contacts_growth ) ) {
31
+ $labels = json_encode( array_keys( $contacts_growth ) );
32
+ $values = json_encode( array_values( $contacts_growth ) );
33
+ }
34
+
35
+ $audience_url = admin_url( 'admin.php?page=es_subscribers' );
36
+ $new_contact_url = admin_url( 'admin.php?page=es_subscribers&action=new' );
37
+ $new_broadcast_url = admin_url( 'admin.php?page=es_newsletters' );
38
+ $new_post_notification_url = admin_url( 'admin.php?page=es_notifications&action=new' );
39
+ $new_sequence_url = admin_url( 'admin.php?page=es_sequence&action=new' );
40
+ $new_form_url = admin_url( 'admin.php?page=es_forms&action=new' );
41
+ $new_list_url = admin_url( 'admin.php?page=es_lists&action=new' );
42
+ $new_template_url = admin_url( 'post-new.php?post_type=es_template' );
43
+ $icegram_pricing_url = 'https://www.icegram.com/email-subscribers-pricing/';
44
+ $reports_url = admin_url( 'admin.php?page=es_reports' );
45
+ $templates_url = admin_url( 'edit.php?post_type=es_template' );
46
+ $settings_url = admin_url( 'admin.php?page=es_settings' );
47
+ $facebook_url = 'https://www.facebook.com/groups/2298909487017349/';
48
+
49
  ?>
50
+ <div class="wrap" id="ig-es-container">
51
+ <header class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
52
+ <div class="md:flex md:items-center md:justify-between">
53
+ <div class="flex-1 min-w-0">
54
+ <h2 class="text-2xl font-bold leading-7 text-gray-900 sm:text-3xl sm:leading-9 sm:truncate">
55
+ <?php _e( 'Dashboard', 'email_subscribers' ); ?>
56
+ </h2>
57
+ </div>
58
+ <div class="mt-4 flex md:mt-0 md:ml-4">
59
+ <a href="<?php echo $audience_url; ?>">
60
+ <span class="shadow-sm rounded-md">
61
+ <button type="button" class="inline-flex items-center px-4 py-2 border border-gray-300 text-sm leading-5 font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:shadow-outline focus:border-blue-300 transition duration-150 ease-in-out">
62
+ <?php _e( 'Audience', 'email_subscribers' ); ?>
63
+ </button>
64
+ </span>
65
+ </a>
66
+ <span class="ml-3 shadow-sm rounded-md">
67
+ <div id="ig-es-create-button" class="relative inline-block text-left">
68
+ <div>
69
+ <span class="rounded-md shadow-sm">
70
+ <button type="button" class="inline-flex justify-center w-full rounded-md border border-transparent px-4 py-2 bg-white text-sm leading-5 font-medium text-white bg-indigo-600 hover:bg-indigo-500 focus:outline-none focus:shadow-outline-blue transition ease-in-out duration-150">
71
+ <?php _e( 'Create', 'email_subscribers' ); ?>
72
+ <svg class="-mr-1 ml-2 h-5 w-5" fill="currentColor" viewBox="0 0 20 20">
73
+ <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
74
+ </svg>
75
+ </button>
76
+ </span>
77
+ </div>
78
+ <div x-show="open" id="ig-es-create-dropdown" x-transition:enter="transition ease-out duration-100" x-transition:enter-start="transform opacity-0 scale-95" x-transition:enter-end="transform opacity-100 scale-100" x-transition:leave="transition ease-in duration-75" x-transition:leave-start="transform opacity-100 scale-100"
79
+ x-transition:leave-end="transform opacity-0 scale-95" class="hidden origin-top-right absolute right-0 mt-2 w-56 rounded-md shadow-lg">
80
+ <div class="rounded-md bg-white shadow-xs">
81
+ <div class="py-1">
82
+ <a href="<?php echo $new_broadcast_url; ?>" class="block px-4 py-2 text-sm leading-5 text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900"><?php _e( 'New Broadcast', 'email_subscribers' ); ?></a>
83
+
84
+ <a href="<?php echo $new_post_notification_url; ?>" class="block px-4 py-2 text-sm leading-5 text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900"><?php _e( 'New Post Notification', 'email_subscribers' ); ?></a>
85
+
86
+ <?php if ( ES()->is_pro() ) { ?>
87
+ <a href="<?php echo $new_sequence_url; ?>" class="block px-4 py-2 text-sm leading-5 text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900"><?php _e( 'New Sequence', 'email_subscribers' ); ?></a>
88
+ <?php } else { ?>
89
+ <a href="<?php echo $icegram_pricing_url; ?>" target="_blank" class="block px-4 py-2 text-sm leading-5 text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900"><?php _e( 'New Sequence', 'email_subscribers' ); ?>
90
+ <span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800"><?php _e( 'Premium', 'email_subscribers' ); ?></span></a>
91
+ <?php } ?>
92
+ </div>
93
+ <div class="border-t border-gray-100"></div>
94
+ <div class="py-1">
95
+ <a href="<?php echo $new_template_url; ?>" class="block px-4 py-2 text-sm leading-5 text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900"><?php _e( 'New Template', 'email_subscribers' ); ?></a>
96
+ </div>
97
+ <div class="border-t border-gray-100"></div>
98
+ <div class="py-1">
99
+ <a href="<?php echo $new_form_url; ?>" class="block px-4 py-2 text-sm leading-5 text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900"><?php _e( 'New Form', 'email_subscribers' ); ?></a>
100
+ <a href="<?php echo $new_list_url; ?>" class="block px-4 py-2 text-sm leading-5 text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900"><?php _e( 'New List', 'email_subscribers' ); ?></a>
101
+ <a href="<?php echo $new_contact_url; ?>" class="block px-4 py-2 text-sm leading-5 text-gray-700 hover:bg-gray-100 hover:text-gray-900 focus:outline-none focus:bg-gray-100 focus:text-gray-900"><?php _e( 'New Contact', 'email_subscribers' ); ?></a>
102
+ </div>
103
+ </div>
104
+ </div>
105
+ </div>
106
+ </span>
107
+ </div>
108
+ </div>
109
+ </header>
110
+
111
+ <main class="max-w-7xl mx-auto sm:px-6 lg:px-8">
112
+
113
+ <section class="md:flex md:items-start md:justify-between sm:px-4 py-4 my-8 sm:px-0 rounded-lg bg-white shadow sm:grid sm:grid-cols-3">
114
+ <div class="flex-1 min-w-0">
115
+ <p class="px-3 text-lg leading-6 font-medium text-gray-400">
116
+ <span class="text-black"><?php echo $active_contacts; ?></span><?php _e( ' active contacts', 'email_subscribers' ); ?>
117
+ </p>
118
+ <div class="bg-white-100 text-center" id="ig-es-contacts-growth">
119
+
120
+ </div>
121
+ </div>
122
+ <div class="flex-1 min-w-0">
123
+ <p class="px-3 text-lg leading-6 font-medium text-gray-400">
124
+ <?php _e( 'Last 60 days', 'email_subscribers' ); ?>
125
+ </p>
126
+ <div class="sm:grid sm:grid-cols-2">
127
+ <div class="p-3">
128
+ <p class="text-2xl leading-none font-bold text-indigo-600">
129
+ <?php echo $total_email_opens; ?>
130
+ </p>
131
+ <p class="mt-1 leading-6 font-medium text-gray-500">
132
+ <?php _e( 'Opens', 'email_subscribers' ); ?>
133
+ </p>
134
+ </div>
135
+ <div class="p-3">
136
+ <p class="text-2xl leading-none font-bold text-indigo-600">
137
+ <?php echo $avg_open_rate; ?> %
138
+ </p>
139
+ <p class="mt-1 leading-6 font-medium text-gray-500">
140
+ <?php _e( ' Avg Open Rate', 'email_subscribers' ); ?>
141
+ </p>
142
+ </div>
143
+ <div class="p-3">
144
+ <p class="text-2xl leading-none font-bold text-indigo-600">
145
+ <?php echo $total_message_sent; ?>
146
+ </p>
147
+ <p class="mt-1 leading-6 font-medium text-gray-500">
148
+ <?php _e( 'Messages Sent', 'email_subscribers' ); ?>
149
+ </p>
150
+ </div>
151
+ <div class="p-3">
152
+ <p class="text-2xl leading-none font-bold text-indigo-600">
153
+ <?php echo $avg_click_rate; ?> %
154
+ </p>
155
+ <p class="mt-1 leading-6 font-medium text-gray-500">
156
+ <?php _e( 'Avg Click Rate', 'email_subscribers' ); ?>
157
+ </p>
158
+ </div>
159
+ </div>
160
+ </div>
161
+
162
+ <div class="flex-1 min-w-0">
163
+ <div class="overflow-hidden">
164
+ <ul>
165
+
166
+ <li class="border-b border-gray-200">
167
+ <a href="https://www.icegram.com/2bx5" class="block hover:bg-gray-50 focus:outline-none focus:bg-gray-50 transition duration-150 ease-in-out" target="_blank">
168
+
169
+ <div class="flex items-center md:justify-between px-2 py-2 sm:px-2">
170
+ <div class="text-sm leading-5 text-gray-900">
171
+ <?php _e( 'Prevent Your Email From Landing In Spam', 'email_subscribers' ); ?>
172
+ </div>
173
+ <div>
174
+ <svg class="h-5 w-5 text-gray-400" fill="currentColor" viewBox="0 0 20 20">
175
+ <path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path>
176
+ </svg>
177
+ </div>
178
+ </div>
179
+ </a>
180
+ </li>
181
+
182
+ <li class="border-b border-gray-200">
183
+ <a href="https://www.icegram.com/2bx6" class="block hover:bg-gray-50 focus:outline-none focus:bg-gray-50 transition duration-150 ease-in-out" target="_blank">
184
+ <div class="flex items-center md:justify-between px-2 py-2 sm:px-2">
185
+ <div class="text-sm leading-5 text-gray-900">
186
+ <?php _e( '8 Tips To Improve Email Open Rates', 'email_subscribers' ); ?>
187
+ </div>
188
+ <div>
189
+ <svg class="h-5 w-5 text-gray-400" fill="currentColor" viewBox="0 0 20 20">
190
+ <path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path>
191
+ </svg>
192
+ </div>
193
+ </div>
194
+ </a>
195
+ </li>
196
+
197
+ <?php if ( ! ES()->is_pro() ) { ?>
198
+ <li class="border-b border-gray-200">
199
+ <a href="<?php echo $icegram_pricing_url; ?>" target="_blank" class="block hover:bg-gray-50 focus:outline-none focus:bg-gray-50 transition duration-150 ease-in-out">
200
+ <div class="flex items-center md:justify-between px-2 py-2 sm:px-2">
201
+
202
+ <div class="text-sm leading-5 text-gray-900">
203
+
204
+ <?php _e( 'Create Autoresponder', 'email_subscribers' ); ?> <span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800"><?php _e( 'Premium', 'email_subscribers' ); ?></span>
205
+
206
+ </div>
207
+ <div>
208
+ <svg class="h-5 w-5 text-gray-400" fill="currentColor" viewBox="0 0 20 20">
209
+ <path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"></path>
210
+ </svg>
211
+ </div>
212
+ </div>
213
+ </a>
214
+ </li>
215
+ <?php } ?>
216
+ <li class="">
217
+ <div class="text-sm leading-5 text-gray-900 px-2 py-2 sm:px-2">
218
+
219
+ <?php _e( 'Jump to: ', 'email_subscribers' ); ?><a href="<?php echo $reports_url; ?>" class="font-bold" target="_blank"><?php _e( 'Reports', 'email_subscribers' ); ?></a> ・<a href="<?php echo $templates_url; ?>" class="font-bold" target="_blank"><?php _e( 'Templates', 'email_subscribers' ); ?></a> ・<a
220
+ href="<?php echo $settings_url; ?>"
221
+ class="font-bold" target="_blank"><?php _e( 'Settings',
222
+ 'email_subscribers' ); ?></a>
223
+
224
+ </div>
225
+ </li>
226
+ </ul>
227
+ </div>
228
+ </div>
229
+ </section>
230
+
231
+
232
+ <?php
233
+ if ( ES()->is_pro() ) {
234
+ include_once ES_PLUGIN_DIR . '/pro/partials/es-dashboard.php';
235
+ }
236
+ ?>
237
+
238
+ </main>
239
+ </div>
240
+
241
+ <script type="text/javascript">
242
+
243
+ (function ($) {
244
+
245
+ $(document).ready(function () {
246
+
247
+ // When we click outside, close the dropdown
248
+ $(document).on("click", function(event){
249
+ var $trigger = $("#ig-es-create-button");
250
+ if($trigger !== event.target && !$trigger.has(event.target).length){
251
+ $("#ig-es-create-dropdown").hide();
252
+ }
253
+ });
254
+
255
+ // Toggle Dropdown
256
+ $('#ig-es-create-button').click(function() {
257
+ $('#ig-es-create-dropdown').toggle();
258
+ });
259
+
260
+ var labels = <?php if ( ! empty( $labels ) ) {
261
+ echo $labels;
262
+ } else {
263
+ echo "''";
264
+ } ?>;
265
+
266
+ var values = <?php if ( ! empty( $values ) ) {
267
+ echo $values;
268
+ } else {
269
+ echo "''";
270
+ } ?>;
271
+
272
+ if (labels != '' && values != '') {
273
+ const data = {
274
+ labels: labels,
275
+ datasets: [
276
+ {
277
+ values: values
278
+ },
279
+ ]
280
+ };
281
+
282
+ const chart = new frappe.Chart("#ig-es-contacts-growth", {
283
+ title: "",
284
+ data: data,
285
+ type: 'line',
286
+ colors: ['#743ee2'],
287
+ lineOptions: {
288
+ hideDots: 1,
289
+ heatline: 1
290
+ },
291
+ height: 150,
292
+ axisOptions: {
293
+ xIsSeries: true
294
+ }
295
+ });
296
+ }
297
+
298
+ });
299
+
300
+ })(jQuery);
301
+
302
+ </script>
lite/includes/class-email-subscribers.php CHANGED
@@ -615,6 +615,7 @@ if ( ! class_exists( 'Email_Subscribers' ) ) {
615
  'lite/includes/class-es-common.php',
616
 
617
  // Classes
 
618
  'lite/includes/classes/class-es-mailer.php',
619
  'lite/includes/classes/class-es-message.php',
620
  'lite/includes/classes/class-es-lists-table.php',
@@ -722,6 +723,7 @@ if ( ! class_exists( 'Email_Subscribers' ) ) {
722
  $this->loader->add_action( 'wp_ajax_count_contacts_by_list', $plugin_admin, 'count_contacts_by_list' );
723
  $this->loader->add_action( 'wp_ajax_get_template_content', $plugin_admin, 'get_template_content' );
724
 
 
725
  }
726
 
727
  /**
615
  'lite/includes/class-es-common.php',
616
 
617
  // Classes
618
+ 'lite/includes/classes/class-es-cache.php',
619
  'lite/includes/classes/class-es-mailer.php',
620
  'lite/includes/classes/class-es-message.php',
621
  'lite/includes/classes/class-es-lists-table.php',
723
  $this->loader->add_action( 'wp_ajax_count_contacts_by_list', $plugin_admin, 'count_contacts_by_list' );
724
  $this->loader->add_action( 'wp_ajax_get_template_content', $plugin_admin, 'get_template_content' );
725
 
726
+ $this->loader->add_action( 'in_admin_header', $plugin_admin, 'remove_other_admin_notices' );
727
  }
728
 
729
  /**
lite/includes/classes/class-es-cache.php ADDED
@@ -0,0 +1,135 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * @credit - Inspired by the WooCommerce Cache implementation.
4
+ */
5
+ if ( ! class_exists( 'ES_Cache' ) ) {
6
+ /**
7
+ * Class ES_Cache
8
+ *
9
+ * @since 4.4.0
10
+ */
11
+ class ES_Cache {
12
+
13
+ /** @var bool */
14
+ static $enabled = true;
15
+
16
+ /**
17
+ * @return mixed|void
18
+ */
19
+ static function get_default_transient_expiration() {
20
+ return apply_filters( 'ig_es_cache_default_expiration', 10 );
21
+ }
22
+
23
+ /**
24
+ * @param $key
25
+ * @param $value
26
+ * @param bool $expiration
27
+ *
28
+ * @return bool
29
+ */
30
+ static function set_transient( $key, $value, $expiration = false ) {
31
+ if ( ! self::$enabled ) {
32
+ return false;
33
+ }
34
+ if ( ! $expiration ) {
35
+ $expiration = self::get_default_transient_expiration();
36
+ }
37
+
38
+ return set_transient( 'ig_es_cache_' . $key, $value, $expiration * HOUR_IN_SECONDS );
39
+ }
40
+
41
+ /**
42
+ * @param string $key
43
+ *
44
+ * @return bool|mixed
45
+ *
46
+ * @since 4.4.0
47
+ */
48
+ static function get_transient( $key ) {
49
+ if ( ! self::$enabled ) {
50
+ return false;
51
+ }
52
+
53
+ return get_transient( 'ig_es_cache_' . $key );
54
+ }
55
+
56
+ /**
57
+ * @param $key
58
+ *
59
+ * @since 4.4.0
60
+ */
61
+ static function delete_transient( $key ) {
62
+ delete_transient( 'ig_es_cache_' . $key );
63
+ }
64
+
65
+ /**
66
+ * Only sets if key is not falsy
67
+ *
68
+ * @param string $key
69
+ * @param mixed $value
70
+ * @param string $group
71
+ *
72
+ * @since 4.4.0
73
+ */
74
+ static function set( $key, $value, $group ) {
75
+ if ( ! $key ) {
76
+ return;
77
+ }
78
+
79
+ wp_cache_set( (string) $key, $value, "ig_es_$group" );
80
+ }
81
+
82
+ /**
83
+ * Only gets if key is not falsy
84
+ *
85
+ * @param string $key
86
+ * @param string $group
87
+ *
88
+ * @return bool|mixed
89
+ *
90
+ * @since 4.4.0
91
+ */
92
+ static function get( $key, $group ) {
93
+ if ( ! $key ) {
94
+ return false;
95
+ }
96
+
97
+ return wp_cache_get( (string) $key, "ig_es_$group" );
98
+ }
99
+
100
+ /**
101
+ * @param string $key
102
+ * @param string $group
103
+ *
104
+ * @return bool
105
+ *
106
+ * @since 4.4.0
107
+ */
108
+ static function exists( $key, $group ) {
109
+ if ( ! $key ) {
110
+ return false;
111
+ }
112
+ $found = false;
113
+ wp_cache_get( (string) $key, "ig_es_$group", false, $found );
114
+
115
+ return $found;
116
+ }
117
+
118
+
119
+ /**
120
+ * Only deletes if key is not falsy
121
+ *
122
+ * @param string $key
123
+ * @param string $group
124
+ *
125
+ * @since 4.4.0
126
+ */
127
+ static function delete( $key, $group ) {
128
+ if ( ! $key ) {
129
+ return;
130
+ }
131
+ wp_cache_delete( (string) $key, "ig_es_$group" );
132
+ }
133
+
134
+ }
135
+ }
lite/includes/classes/class-es-campaigns-table.php CHANGED
@@ -401,6 +401,7 @@ class ES_Campaigns_Table extends WP_List_Table {
401
  public function prepare_items() {
402
 
403
  $this->_column_headers = $this->get_column_info();
 
404
 
405
  /** Process bulk action */
406
  $this->process_bulk_action();
@@ -412,7 +413,10 @@ class ES_Campaigns_Table extends WP_List_Table {
412
  $per_page = $this->get_items_per_page( self::$option_per_page, 25 );
413
 
414
  $current_page = $this->get_pagenum();
 
 
415
  $total_items = $this->get_lists( 0, 0, true );
 
416
 
417
  $this->set_pagination_args( array(
418
  'total_items' => $total_items, //We have to calculate the total number of items
401
  public function prepare_items() {
402
 
403
  $this->_column_headers = $this->get_column_info();
404
+
405
 
406
  /** Process bulk action */
407
  $this->process_bulk_action();
413
  $per_page = $this->get_items_per_page( self::$option_per_page, 25 );
414
 
415
  $current_page = $this->get_pagenum();
416
+
417
+
418
  $total_items = $this->get_lists( 0, 0, true );
419
+
420
 
421
  $this->set_pagination_args( array(
422
  'total_items' => $total_items, //We have to calculate the total number of items
lite/includes/classes/class-es-reports-data.php CHANGED
@@ -61,9 +61,13 @@ if ( ! class_exists( 'ES_Reports_Data' ) ) {
61
  * @param int $days
62
  *
63
  * @return int
 
 
 
 
64
  */
65
- public static function get_total_contacts_opened_emails( $days = 60 ) {
66
- return ES_DB_Sending_Queue::get_total_contacts_opened_emails( $days );
67
  }
68
 
69
  /**
@@ -74,9 +78,150 @@ if ( ! class_exists( 'ES_Reports_Data' ) ) {
74
  * @return int
75
  *
76
  * @since 4.3.2
 
 
77
  */
78
- public static function get_total_contacts_clicks_links( $days = 60 ) {
79
- return ES()->actions_db->get_total_contacts_clicks_links( $days );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
80
  }
81
 
82
 
61
  * @param int $days
62
  *
63
  * @return int
64
+ *
65
+ * @since 4.3.2
66
+ *
67
+ * @modify 4.4.0 Now, we are calculating stats from actions table
68
  */
69
+ public static function get_total_contacts_opened_emails( $days = 60, $distinct = true ) {
70
+ return ES()->actions_db->get_total_contacts_opened_message( $days, $distinct );
71
  }
72
 
73
  /**
78
  * @return int
79
  *
80
  * @since 4.3.2
81
+ *
82
+ * @modify 4.4.0
83
  */
84
+ public static function get_total_contacts_clicks_links( $days = 60, $distinct = true ) {
85
+ return ES()->actions_db->get_total_contacts_clicks_links( $days, $distinct );
86
+ }
87
+
88
+ /**
89
+ * Get total emails sent in last $days
90
+ *
91
+ * @param int $days
92
+ *
93
+ * @return int
94
+ *
95
+ * @since 4.4.0
96
+ */
97
+ public static function get_total_emails_sent( $days = 60, $distinct = true ) {
98
+ return ES()->actions_db->get_total_emails_sent( $days, $distinct );
99
+ }
100
+
101
+ /**
102
+ * Get total contacts lost in last $days
103
+ *
104
+ * @param int $days
105
+ *
106
+ * @return int
107
+ *
108
+ *
109
+ */
110
+ public static function get_total_contact_lost( $days = 60, $distinct = true ) {
111
+ return ES()->actions_db->get_total_contact_lost( $days, $distinct );
112
+ }
113
+
114
+ /**
115
+ * Get contacts growth
116
+ *
117
+ * @param int $days
118
+ *
119
+ * @return array
120
+ *
121
+ * @since 4.4.0
122
+ */
123
+ public static function get_contacts_growth( $days = 60 ) {
124
+ $contacts = ES()->contacts_db->get_total_contacts_by_date();
125
+
126
+ $data = array();
127
+ for ( $i = $days; $i >= 0; $i -- ) {
128
+ $date = date( "Y-m-d", strtotime( '-' . $i . ' days' ) );
129
+
130
+ $data[ $date ] = 0;
131
+ }
132
+
133
+ $data = array_merge( $data, $contacts );
134
+
135
+ return $data;
136
+ }
137
+
138
+ /**
139
+ * Collect dashboard reports data
140
+ *
141
+ * @return array
142
+ *
143
+ * @since 4.4.0
144
+ */
145
+ public static function get_dashboard_reports_data( $refresh = false ) {
146
+
147
+ /**
148
+ * - Get Total Contacts
149
+ * - Get Total Forms
150
+ * - Get Total Lists
151
+ * - Get Total Campaigns
152
+ * - Get Last 3 months contacts data
153
+ * - Total Email Opened in last 60 days
154
+ * - Total Message Sent in last 60 days
155
+ * - Avg. Email Click rate
156
+ */
157
+ $cache_key = 'dashboard_reports_data';
158
+
159
+ if ( ! $refresh ) {
160
+
161
+ $cached_data = ES_Cache::get_transient( $cache_key );
162
+
163
+ if ( ! empty( $cached_data ) ) {
164
+ return $cached_data;
165
+ }
166
+ }
167
+
168
+ $total_contacts = self::get_total_contacts();
169
+ $total_forms = ES()->forms_db->count_forms();
170
+ $total_lists = ES()->lists_db->count_lists();
171
+ $total_campaigns = ES()->campaigns_db->get_total_campaigns();
172
+
173
+ $total_email_opens = self::get_total_contacts_opened_emails( 60, false );
174
+ $total_links_clicks = self::get_total_contacts_clicks_links( 60, false );
175
+ $total_message_sent = self::get_total_emails_sent( 60, false );
176
+ $total_contact_lost = self::get_total_contact_lost( 60, false );
177
+
178
+ $contacts_growth = self::get_contacts_growth();
179
+
180
+ $total_open_rate = $total_click_rate = $total_lost_rate = 0;
181
+ if ( $total_message_sent > 0 ) {
182
+ $total_open_rate = ( $total_email_opens ) / $total_message_sent;
183
+ $total_click_rate = ( $total_links_clicks ) / $total_message_sent;
184
+ $total_lost_rate = ( $total_contact_lost ) / $total_message_sent;
185
+ }
186
+
187
+ $avg_open_rate = $avg_click_rate = 0;
188
+ if ( $total_message_sent > 0 ) {
189
+ $avg_open_rate = ( $total_email_opens * 100 ) / $total_message_sent;
190
+ $avg_click_rate = ( $total_links_clicks * 100 ) / $total_message_sent;
191
+ }
192
+
193
+ /**
194
+ * - Get recent 10 campaigns
195
+ * - Get total open (3)
196
+ * - Get total clicks (4)
197
+ * - Get total unsubscribe (5)
198
+ */
199
+
200
+ $data = array();
201
+
202
+ $data = apply_filters( 'ig_es_reports_data', $data );
203
+
204
+ $reports_data = array(
205
+ 'total_contacts' => $total_contacts,
206
+ 'total_lists' => $total_lists,
207
+ 'total_forms' => $total_forms,
208
+ 'total_campaigns' => $total_campaigns,
209
+ 'total_email_opens' => $total_email_opens,
210
+ 'total_message_sent' => $total_message_sent,
211
+ 'total_contact_lost' => $total_contact_lost,
212
+ 'avg_open_rate' => number_format( $avg_open_rate, 2 ),
213
+ 'avg_click_rate' => number_format( $avg_click_rate, 2 ),
214
+ 'total_open_rate' => number_format( $total_open_rate, 2 ),
215
+ 'total_click_rate' => $total_click_rate,
216
+ 'total_lost_rate' => $total_lost_rate,
217
+ 'contacts_growth' => $contacts_growth
218
+ );
219
+
220
+ $data = array_merge( $data, $reports_data );
221
+
222
+ ES_Cache::set_transient( $cache_key, $data, 1 * HOUR_IN_SECONDS );
223
+
224
+ return $data;
225
  }
226
 
227
 
lite/includes/db/class-es-db-actions.php CHANGED
@@ -95,13 +95,13 @@ class ES_DB_Actions extends ES_DB {
95
  $ig_actions_table = IG_ACTIONS_TABLE;
96
 
97
  $args_keys = array_keys( $args );
98
- $args_keys_str = implode( ", " , $args_keys );
99
 
100
  $sql = "INSERT INTO $ig_actions_table ($args_keys_str)";
101
 
102
  $args_values = array_values( $args );
103
 
104
- $args_values_str = $this->prepare_for_in_query( $args_values);
105
 
106
  $sql .= " VALUES ($args_values_str) ON DUPLICATE KEY UPDATE";
107
 
@@ -125,12 +125,16 @@ class ES_DB_Actions extends ES_DB {
125
  *
126
  * @since 4.3.2
127
  */
128
- public function get_total_contacts_clicks_links( $days = 0 ) {
129
  global $wpdb;
130
 
131
  $ig_actions_table = IG_ACTIONS_TABLE;
132
 
133
- $query = "SELECT COUNT(DISTINCT(`contact_id`)) FROM $ig_actions_table WHERE `type` = %d";
 
 
 
 
134
 
135
  $args[] = IG_LINK_CLICK;
136
 
@@ -143,4 +147,102 @@ class ES_DB_Actions extends ES_DB {
143
 
144
  return $wpdb->get_var( $wpdb->prepare( $query, $args ) );
145
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
146
  }
95
  $ig_actions_table = IG_ACTIONS_TABLE;
96
 
97
  $args_keys = array_keys( $args );
98
+ $args_keys_str = implode( ", ", $args_keys );
99
 
100
  $sql = "INSERT INTO $ig_actions_table ($args_keys_str)";
101
 
102
  $args_values = array_values( $args );
103
 
104
+ $args_values_str = $this->prepare_for_in_query( $args_values );
105
 
106
  $sql .= " VALUES ($args_values_str) ON DUPLICATE KEY UPDATE";
107
 
125
  *
126
  * @since 4.3.2
127
  */
128
+ public function get_total_contacts_clicks_links( $days = 0, $distinct = true ) {
129
  global $wpdb;
130
 
131
  $ig_actions_table = IG_ACTIONS_TABLE;
132
 
133
+ if ( $distinct ) {
134
+ $query = "SELECT COUNT(DISTINCT(`contact_id`)) FROM $ig_actions_table WHERE `type` = %d";
135
+ } else {
136
+ $query = "SELECT COUNT(`contact_id`) FROM $ig_actions_table WHERE `type` = %d";
137
+ }
138
 
139
  $args[] = IG_LINK_CLICK;
140
 
147
 
148
  return $wpdb->get_var( $wpdb->prepare( $query, $args ) );
149
  }
150
+
151
+ /**
152
+ * Get total contacts who have unsubscribed in last $days
153
+ *
154
+ * @param int $days
155
+ *
156
+ * @return string|null
157
+ *
158
+ *
159
+ */
160
+ public function get_total_contact_lost( $days = 0, $distinct = true ) {
161
+ global $wpdb;
162
+
163
+ $ig_actions_table = IG_ACTIONS_TABLE;
164
+
165
+ if ( $distinct ) {
166
+ $query = "SELECT COUNT(DISTINCT(`contact_id`)) FROM $ig_actions_table WHERE `type` = %d";
167
+ } else {
168
+ $query = "SELECT COUNT(`contact_id`) FROM $ig_actions_table WHERE `type` = %d";
169
+ }
170
+
171
+ $args[] = IG_CONTACT_UNSUBSCRIBE;
172
+
173
+ if ( 0 != $days ) {
174
+ $days = esc_sql( $days );
175
+ $where = " AND created_at >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL %d DAY))";
176
+ $query .= $where;
177
+ $args[] = $days;
178
+ }
179
+
180
+ return $wpdb->get_var( $wpdb->prepare( $query, $args ) );
181
+ }
182
+
183
+
184
+
185
+ /**
186
+ * Get total contacts who have opened message in last $days
187
+ *
188
+ * @param int $days
189
+ *
190
+ * @return string|null
191
+ *
192
+ * @since 4.4.0
193
+ */
194
+ public function get_total_contacts_opened_message( $days = 0, $distinct = true ) {
195
+ global $wpdb;
196
+
197
+ $ig_actions_table = IG_ACTIONS_TABLE;
198
+
199
+ if ( $distinct ) {
200
+ $query = "SELECT COUNT(DISTINCT(`contact_id`)) FROM $ig_actions_table WHERE `type` = %d";
201
+ } else {
202
+ $query = "SELECT COUNT(`contact_id`) FROM $ig_actions_table WHERE `type` = %d";
203
+ }
204
+
205
+ $args[] = IG_MESSAGE_OPEN;
206
+
207
+ if ( 0 != $days ) {
208
+ $days = esc_sql( $days );
209
+ $where = " AND created_at >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL %d DAY))";
210
+ $query .= $where;
211
+ $args[] = $days;
212
+ }
213
+
214
+ return $wpdb->get_var( $wpdb->prepare( $query, $args ) );
215
+ }
216
+
217
+ /**
218
+ * Get total emails sent in last $days
219
+ *
220
+ * @param int $days
221
+ *
222
+ * @return string|null
223
+ *
224
+ * @since 4.4.0
225
+ */
226
+ public function get_total_emails_sent( $days = 0, $distinct = true ) {
227
+ global $wpdb;
228
+
229
+ $ig_actions_table = IG_ACTIONS_TABLE;
230
+
231
+ if ( $distinct ) {
232
+ $query = "SELECT COUNT(DISTINCT(`contact_id`)) FROM $ig_actions_table WHERE `type` = %d";
233
+ } else {
234
+ $query = "SELECT COUNT(`contact_id`) FROM $ig_actions_table WHERE `type` = %d";
235
+ }
236
+
237
+ $args[] = IG_MESSAGE_SENT;
238
+
239
+ if ( 0 != $days ) {
240
+ $days = esc_sql( $days );
241
+ $where = " AND created_at >= UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL %d DAY))";
242
+ $query .= $where;
243
+ $args[] = $days;
244
+ }
245
+
246
+ return $wpdb->get_var( $wpdb->prepare( $query, $args ) );
247
+ }
248
  }
lite/includes/db/class-es-db-contacts.php CHANGED
@@ -674,4 +674,23 @@ class ES_DB_Contacts extends ES_DB {
674
  return $wpdb->query( $query );
675
  }
676
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
677
  }
674
  return $wpdb->query( $query );
675
  }
676
 
677
+ /**
678
+ * Get total contacts by date
679
+ *
680
+ * @param string $status
681
+ * @param int $days
682
+ *
683
+ * @return array
684
+ *
685
+ * @since 4.4.0
686
+ */
687
+ public function get_total_contacts_by_date( $status = 'subscribed', $days = 60 ) {
688
+
689
+ if ( $status === 'subscribed' ) {
690
+ $results = ES()->lists_contacts_db->get_total_subscribed_contacts_by_date( $days );
691
+ }
692
+
693
+ return $results;
694
+ }
695
+
696
  }
lite/includes/db/class-es-db-lists-contacts.php CHANGED
@@ -931,4 +931,45 @@ class ES_DB_Lists_Contacts extends ES_DB {
931
  return $this->get_contacts( 'all' );
932
  }
933
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
934
  }
931
  return $this->get_contacts( 'all' );
932
  }
933
 
934
+ /**
935
+ * Get total subscribed contacts by date
936
+ *
937
+ * @param string $status
938
+ * @param int $days
939
+ *
940
+ * @return array
941
+ *
942
+ * @since 4.4.0
943
+ */
944
+ public function get_total_subscribed_contacts_by_date( $days = 60 ) {
945
+ global $wpdb;
946
+
947
+ $columns = array( 'DATE(subscribed_at) as date', 'count(DISTINCT(contact_id)) as total' );
948
+ $where = "status = %s";
949
+ $args[] = 'subscribed';
950
+
951
+ if ( 0 != $days ) {
952
+ $days = esc_sql( $days );
953
+ $where .= " AND subscribed_at >= DATE_SUB(NOW(), INTERVAL %d DAY)";
954
+ $args[] = $days;
955
+ }
956
+
957
+ $group_by = ' GROUP BY DATE(subscribed_at)';
958
+
959
+ $where .= $group_by;
960
+
961
+ $where = $wpdb->prepare( $where, $args );
962
+
963
+ $results = $this->get_columns_by_condition( $columns, $where );
964
+
965
+ $contacts = array();
966
+ if ( ! empty( $results ) ) {
967
+ foreach ( $results as $result ) {
968
+ $contacts[ $result['date'] ] = $result['total'];
969
+ }
970
+ }
971
+
972
+ return $contacts;
973
+ }
974
+
975
  }
lite/includes/db/class-es-db-mailing-queue.php CHANGED
@@ -272,6 +272,25 @@ class ES_DB_Mailing_Queue {
272
  return $report;
273
  }
274
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
275
  public static function do_insert( $place_holders, $values ) {
276
  global $wpdb;
277
 
272
  return $report;
273
  }
274
 
275
+ /**
276
+ * @param int $count
277
+ *
278
+ * @return array|object|null
279
+ *
280
+ * @since 4.4.0
281
+ */
282
+ public static function get_recent_campaigns( $count = 5 ) {
283
+ global $wpdb;
284
+
285
+ if ( ! is_numeric( $count ) ) {
286
+ $count = 5;
287
+ }
288
+
289
+ $query = "SELECT id, hash, campaign_id, subject, start_at, status, finish_at FROM {$wpdb->prefix}ig_mailing_queue order by created_at DESC LIMIT 0, $count";
290
+
291
+ return $wpdb->get_results( $query, ARRAY_A );
292
+ }
293
+
294
  public static function do_insert( $place_holders, $values ) {
295
  global $wpdb;
296
 
lite/includes/db/class-es-db-sending-queue.php CHANGED
@@ -520,6 +520,7 @@ class ES_DB_Sending_Queue {
520
  return $wpdb->get_var( $wpdb->prepare( $query, $args ) );
521
  }
522
 
 
523
  /**
524
  * Get Email => ID map based on Sending Queue table
525
  *
520
  return $wpdb->get_var( $wpdb->prepare( $query, $args ) );
521
  }
522
 
523
+
524
  /**
525
  * Get Email => ID map based on Sending Queue table
526
  *
lite/includes/feedback.php CHANGED
@@ -221,6 +221,7 @@ function ig_es_render_iges_merge_feedback() {
221
  return;
222
  }
223
 
 
224
  $params = array(
225
  'type' => 'poll',
226
  'title' => __( 'Subscription forms and CTAs??', 'email-subscribers' ),
@@ -235,11 +236,10 @@ function ig_es_render_iges_merge_feedback() {
235
  'width' => 400,
236
  'delay' => 2, // seconds
237
  'confirmButtonText' => __( 'Send my feedback to <b>Icegram team</b>', 'email-subscribers' ),
238
- 'show_once' => true
239
  );
240
 
241
  ES_Common::render_feedback_widget( $params );
242
-
243
  }
244
 
245
  }
221
  return;
222
  }
223
 
224
+
225
  $params = array(
226
  'type' => 'poll',
227
  'title' => __( 'Subscription forms and CTAs??', 'email-subscribers' ),
236
  'width' => 400,
237
  'delay' => 2, // seconds
238
  'confirmButtonText' => __( 'Send my feedback to <b>Icegram team</b>', 'email-subscribers' ),
239
+ 'show_once' => true,
240
  );
241
 
242
  ES_Common::render_feedback_widget( $params );
 
243
  }
244
 
245
  }
lite/languages/email-subscribers.pot CHANGED
@@ -3,7 +3,7 @@ msgid ""
3
  msgstr ""
4
  "Project-Id-Version: Email Subscribers & Newsletters\n"
5
  "Report-Msgid-Bugs-To: \n"
6
- "POT-Creation-Date: 2020-02-12 11:19+0000\n"
7
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
8
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
9
  "Language-Team: \n"
@@ -27,139 +27,139 @@ msgstr ""
27
  msgid "Email Subscribers Premium"
28
  msgstr ""
29
 
30
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/inc/ig-upgrade-v-0.4.6.php:929
31
  msgid "Check for updates"
32
  msgstr ""
33
 
34
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/inc/ig-upgrade-v-0.4.6.php:930
35
  msgid "Docs"
36
  msgstr ""
37
 
38
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/inc/ig-upgrade-v-0.4.6.php:931
39
  msgid "Go Pro"
40
  msgstr ""
41
 
42
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/inc/ig-upgrade-v-0.4.6.php:934
43
  msgid "Disconnect from Icegram"
44
  msgstr ""
45
 
46
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/inc/ig-upgrade-v-0.4.6.php:936
47
  msgid "Connect to Icegram"
48
  msgstr ""
49
 
50
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:94
51
  msgid "Sequence"
52
  msgstr ""
53
 
54
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:181
55
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:468
56
  msgid "Google Analytics link tracking"
57
  msgstr ""
58
 
59
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:182
60
  msgid "Get Spam Score"
61
  msgstr ""
62
 
63
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:192
64
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:469
65
  msgid "Campaign Name"
66
  msgstr ""
67
 
68
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:192
69
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:469
70
  msgid ""
71
  "This will be appended to every URL in this template with parameters: "
72
  "utm_source=es&utm_medium=email&utm_campaign=campaign_name "
73
  msgstr ""
74
 
75
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:200
76
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:475
77
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-sequences.php:358
78
  msgid "Check"
79
  msgstr ""
80
 
81
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:204
82
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:479
83
  msgid "Awesome score. Your email is almost perfect."
84
  msgstr ""
85
 
86
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:205
87
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:480
88
  msgid "Ouch! your email needs improvement. "
89
  msgstr ""
90
 
91
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:207
92
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:482
93
  msgid "Here are some things to fix: "
94
  msgstr ""
95
 
96
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:401
97
  msgid "Clean My List"
98
  msgstr ""
99
 
100
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:402
101
  msgid "List cleanup is in progress..."
102
  msgstr ""
103
 
104
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:403
105
  msgid "List cleanup completed successfully."
106
  msgstr ""
107
 
108
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:411
109
  msgid "Email Status"
110
  msgstr ""
111
 
112
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:447
113
  msgid "Email Sent Successfully "
114
  msgstr ""
115
 
116
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:448
117
  msgid "Something went wrong. Please try again later"
118
  msgstr ""
119
 
120
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:452
121
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-sequences.php:382
122
  msgid "When to send"
123
  msgstr ""
124
 
125
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:454
126
  msgid "Date"
127
  msgstr ""
128
 
129
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:460
130
  msgid "Time"
131
  msgstr ""
132
 
133
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:463
134
  msgid "Local time is "
135
  msgstr ""
136
 
137
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:474
138
  msgid "Get spam score"
139
  msgstr ""
140
 
141
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:492
142
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:401
143
  msgid "Something went wrong"
144
  msgstr ""
145
 
146
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:514
147
  msgid "SUCCESS"
148
  msgstr ""
149
 
150
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:525
151
  msgid "Select page"
152
  msgstr ""
153
 
154
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:560
155
  msgid "Track Clicks"
156
  msgstr ""
157
 
158
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:562
159
  msgid "Check this if you want to track link clicks."
160
  msgstr ""
161
 
162
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:614
163
  msgid "Clicked"
164
  msgstr ""
165
 
@@ -386,24 +386,26 @@ msgstr ""
386
 
387
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:334
388
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:286
 
389
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:329
390
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:402
391
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:438
392
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:367
393
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:385
394
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:65
395
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-widget.php:49
396
  msgid "No"
397
  msgstr ""
398
 
399
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:334
400
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:289
 
401
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:329
402
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:401
403
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:437
404
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:363
405
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:381
406
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:68
407
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-widget.php:49
408
  msgid "Yes"
409
  msgstr ""
@@ -458,15 +460,14 @@ msgid "Roles"
458
  msgstr ""
459
 
460
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:576
461
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:165
462
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:165
463
  msgid "Audience"
464
  msgstr ""
465
 
466
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:577
467
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:159
468
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:159
469
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:89
470
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:38
471
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:39
472
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:81
@@ -474,9 +475,8 @@ msgid "Forms"
474
  msgstr ""
475
 
476
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:578
477
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:149
478
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:149
479
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:90
480
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:93
481
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:103
482
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:258
@@ -484,8 +484,8 @@ msgid "Campaigns"
484
  msgstr ""
485
 
486
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:579
487
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:174
488
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:174
489
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:20
490
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:36
491
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:75
@@ -552,13 +552,13 @@ msgid "Events Manger"
552
  msgstr ""
553
 
554
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:241
555
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:29
556
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:626
557
  msgid "Please select list"
558
  msgstr ""
559
 
560
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:249
561
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:37
562
  msgid "Settings have been saved successfully!"
563
  msgstr ""
564
 
@@ -566,7 +566,7 @@ msgstr ""
566
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:365
567
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:502
568
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:589
569
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:75
570
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:272
571
  msgid "Select List"
572
  msgstr ""
@@ -578,7 +578,7 @@ msgstr ""
578
 
579
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:326
580
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:750
581
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:89
582
  msgid "Save Settings"
583
  msgstr ""
584
 
@@ -710,8 +710,8 @@ msgid ""
710
  "Select the list in which you want to make Ninja Forms contacts subscribed to"
711
  msgstr ""
712
 
713
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:141
714
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-email-subscribers.php:817
715
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-form-widget.php:11
716
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-old-widget.php:11
717
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-old-widget.php:12
@@ -719,16 +719,17 @@ msgstr ""
719
  msgid "Email Subscribers"
720
  msgstr ""
721
 
722
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:144
723
  msgid "Dashboard"
724
  msgstr ""
725
 
726
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:152
727
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/help.php:112
728
  msgid "Post Notifications"
729
  msgstr ""
730
 
731
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:153
 
732
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:262
733
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:195
734
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-templates-table.php:34
@@ -736,18 +737,17 @@ msgstr ""
736
  msgid "Broadcast"
737
  msgstr ""
738
 
739
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:154
740
  msgid "Template Preview"
741
  msgstr ""
742
 
743
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:169
744
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:91
745
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:338
746
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:37
747
  msgid "Lists"
748
  msgstr ""
749
 
750
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:178
751
  msgid "Settings"
752
  msgstr ""
753
 
@@ -775,75 +775,75 @@ msgstr ""
775
  msgid "OK, I Got it!"
776
  msgstr ""
777
 
778
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-email-subscribers.php:902
779
  #, php-format
780
  msgid "%1$s in %2$s on line %3$s"
781
  msgstr ""
782
 
783
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:89
784
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:270
785
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:497
786
  msgid "Subscribed"
787
  msgstr ""
788
 
789
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:90
790
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:499
791
  msgid "Unconfirmed"
792
  msgstr ""
793
 
794
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:91
795
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:274
796
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:498
797
  msgid "Unsubscribed"
798
  msgstr ""
799
 
800
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:114
801
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:299
802
  msgid "Select Status"
803
  msgstr ""
804
 
805
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:234
806
  msgid "Select Template"
807
  msgstr ""
808
 
809
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:272
810
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:223
811
  msgid "Active"
812
  msgstr ""
813
 
814
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:273
815
  msgid "Inactive"
816
  msgstr ""
817
 
818
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:341
819
  msgid "Select Categories"
820
  msgstr ""
821
 
822
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:353
823
  msgid "All Categories (Also include all categories which will create later)"
824
  msgstr ""
825
 
826
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:385
827
  msgid "No Custom Post Types Available"
828
  msgstr ""
829
 
830
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:401
831
  msgid "Single Opt-In"
832
  msgstr ""
833
 
834
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:402
835
  msgid "Double Opt-In"
836
  msgstr ""
837
 
838
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:417
839
  msgid "Full Size"
840
  msgstr ""
841
 
842
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:418
843
  msgid "Medium Size"
844
  msgstr ""
845
 
846
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:419
847
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-templates-table.php:223
848
  msgid "Thumbnail"
849
  msgstr ""
@@ -887,6 +887,14 @@ msgstr ""
887
  msgid "Join Now"
888
  msgstr ""
889
 
 
 
 
 
 
 
 
 
890
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:142
891
  msgid "Sync Comment Users"
892
  msgstr ""
@@ -1096,225 +1104,18 @@ msgstr ""
1096
  msgid "Are you sure you want to unsubscribe?"
1097
  msgstr ""
1098
 
1099
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:20
1100
- msgid "Here's a quick look at changes within the plugin:"
1101
- msgstr ""
1102
-
1103
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:21
1104
- #, php-format
1105
- msgid ""
1106
- "1. Newsletters are now <b>Broadcasts</b>. Broadcasts and Post notifications "
1107
- "are now merged in <a href=\"%s\" target=\"_blank\">Campaigns</a>"
1108
- msgstr ""
1109
-
1110
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:22
1111
- #, php-format
1112
- msgid ""
1113
- "2. Subscribers are now called <b>Contacts</b> and part of an <a href=\"%s\" "
1114
- "target=\"_blank\">Audience</a>"
1115
- msgstr ""
1116
-
1117
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:23
1118
- #, php-format
1119
- msgid "3. Groups are now called <a href=\"%s\" target=\"_blank\">Lists</a>"
1120
- msgstr ""
1121
-
1122
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:24
1123
- #, php-format
1124
- msgid "4. Find <a href=\"%s\" target=\"_blank\">Forms</a> here"
1125
- msgstr ""
1126
-
1127
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:26
1128
- msgid "Explore all changes"
1129
- msgstr ""
1130
-
1131
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:28
1132
- msgid "You are all setup 👍"
1133
- msgstr ""
1134
-
1135
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:29
1136
- msgid "Here are the things you can do next"
1137
- msgstr ""
1138
-
1139
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:31
1140
- #, php-format
1141
- msgid ""
1142
- "1.Check <a href=\"%s\" target=\"blank\" >optin form</a> on your homepage"
1143
- msgstr ""
1144
-
1145
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:32
1146
- #, php-format
1147
- msgid ""
1148
- "2. <a href=\"%s\" target=\"blank\" ><b>Review and rearrange the form from "
1149
- "Widgets.</b></a> You can also learn about <a href=\"%s\" target=\"_blank\">"
1150
- "adding a form to another place from this help article.</a>"
1151
- msgstr ""
1152
-
1153
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:33
1154
- #, php-format
1155
- msgid ""
1156
- "3. Go ahead and take a look around. Tweak settings, review <a href=\"%s\" "
1157
- "target=\"_blank\">design templates</a> or go through the documentation."
1158
- msgstr ""
1159
-
1160
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:34
1161
- msgid "4. And if you haven't already, signup for the free course below."
1162
- msgstr ""
1163
-
1164
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:37
1165
- msgid "Hello! 👋"
1166
- msgstr ""
1167
-
1168
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:38
1169
- msgid ""
1170
- "Email Subscribers is a complete newsletter plugin that lets you collect "
1171
- "leads, send automated new blog post notification emails, send newsletters "
1172
- "and more. It’s your tool to build an audience and engage with them ongoingly."
1173
- msgstr ""
1174
-
1175
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:39
1176
- msgid "We’ve setup the basics to save you time."
1177
- msgstr ""
1178
-
1179
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:40
1180
- msgid "Please read this carefully and make changes as needed"
1181
- msgstr ""
1182
-
1183
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:42
1184
- msgid ""
1185
- "1. We created two lists - <b>Main List</b> and <b>Test List</b>. Also added "
1186
- "yourself to the Test List. That way you can test campaigns on the Test List "
1187
- "before sending them to the Main List ;-)"
1188
- msgstr ""
1189
-
1190
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:43
1191
- #, php-format
1192
- msgid ""
1193
- "2. We also created a lead collection / subscription form and added it the "
1194
- "default widget area on your site. <a href=\"%s\" target=\"blank\" ><b>Review "
1195
- "and rearrange the form from Widgets.</b></a> You can also learn about <a "
1196
- "href=\"%s\" target=\"_blank\">adding a form to another place from this help "
1197
- "article.</a>"
1198
- msgstr ""
1199
-
1200
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:44
1201
- #, php-format
1202
- msgid ""
1203
- "3. BTW, we also sent a few test emails to the Test List. <a href=\"%s\" "
1204
- "target=\"_blank\">We sent both those campaigns</b> </a>(newsletter and new "
1205
- "post notification).<b> So check your email \""
1206
- msgstr ""
1207
-
1208
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:44
1209
- msgid "\" and confirm you got those test emails.</b>"
1210
- msgstr ""
1211
-
1212
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:45
1213
- #, php-format
1214
- msgid ""
1215
- "4. Go ahead and take a look around. Tweak settings, review <a href=\"%s\" "
1216
- "target=\"_blank\">design templates</a> or go through the documentation."
1217
- msgstr ""
1218
-
1219
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:46
1220
- msgid "5. And don’t forget to signup for the free course below."
1221
- msgstr ""
1222
-
1223
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:53
1224
- msgid "Free Course - Email Marketing Mastery"
1225
- msgstr ""
1226
-
1227
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:57
1228
- msgid "In short 5 weeks: build your list and succeed with email marketing"
1229
- msgstr ""
1230
-
1231
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:58
1232
- msgid ""
1233
- "Do you want to build your list, keep off spam, write emails that people open "
1234
- "and click through? Do you want to build your brand and nurture an amazing "
1235
- "tribe?\n"
1236
- "\t\t\t\t\t\t\t\t\t\t\t\tEnter your name and email on the form to get it all."
1237
- msgstr ""
1238
-
1239
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:67
1240
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/onboarding.php:52
1241
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/onboarding.php:77
1242
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/onboarding.php:100
1243
- #, php-format
1244
- msgid "I have read and agreed to your %s."
1245
- msgstr ""
1246
-
1247
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:67
1248
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/onboarding.php:52
1249
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/onboarding.php:77
1250
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/onboarding.php:100
1251
- msgid "Privacy Policy"
1252
- msgstr ""
1253
-
1254
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:69
1255
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:243
1256
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/public/partials/class-es-shortcode.php:132
1257
- msgid "Subscribe"
1258
- msgstr ""
1259
-
1260
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:87
1261
- msgid "Overview"
1262
- msgstr ""
1263
-
1264
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:88
1265
- msgid "Active Contacts"
1266
- msgstr ""
1267
-
1268
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:94
1269
- msgid "Help & How to's"
1270
- msgstr ""
1271
-
1272
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:95
1273
- msgid "How to create and show subscription forms."
1274
- msgstr ""
1275
-
1276
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:96
1277
- msgid "How to create a new campaign for new blog post "
1278
- msgstr ""
1279
-
1280
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:97
1281
- msgid "How to create new template for Post Notification or Broadcast"
1282
- msgstr ""
1283
-
1284
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:98
1285
- msgid "How to Create and Send Broadcasts Emails"
1286
- msgstr ""
1287
-
1288
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:99
1289
- msgid "How to add WordPress users to your lists"
1290
- msgstr ""
1291
-
1292
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:100
1293
- msgid "All Documentation"
1294
- msgstr ""
1295
-
1296
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:103
1297
- msgid "<span>Join our</span> Email Subscribers Secret Club!"
1298
- msgstr ""
1299
-
1300
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:104
1301
- msgid ""
1302
- "Be a part of growing Email Subscribers community. Share your valuable "
1303
- "feedback and get quick help from community. It's a great way to connect with "
1304
- "real people"
1305
- msgstr ""
1306
-
1307
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:109
1308
- msgid "Questions? Need Help?"
1309
  msgstr ""
1310
 
1311
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:110
1312
- msgid "Contact Us"
1313
  msgstr ""
1314
 
1315
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/dashboard.php:111
1316
- #, php-format
1317
- msgid "Version: %s"
1318
  msgstr ""
1319
 
1320
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/help.php:10
@@ -1669,6 +1470,19 @@ msgid ""
1669
  "marketing now. Sign up below to get our highly acclaimed course for free."
1670
  msgstr ""
1671
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1672
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/onboarding.php:54
1673
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/onboarding.php:79
1674
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/onboarding.php:102
@@ -1940,7 +1754,7 @@ msgid "Set this option to \"Yes\" to notify admin(s) on every campaign sent."
1940
  msgstr ""
1941
 
1942
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:448
1943
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-mailer.php:344
1944
  msgid "Campaign Sent!"
1945
  msgstr ""
1946
 
@@ -2001,7 +1815,7 @@ msgid "Select Mailer"
2001
  msgstr ""
2002
 
2003
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:551
2004
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:791
2005
  msgid "Pepipost API key"
2006
  msgstr ""
2007
 
@@ -2019,11 +1833,11 @@ msgid ""
2019
  "line) that you want to block here."
2020
  msgstr ""
2021
 
2022
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:790
2023
  msgid "Signup for Pepipost"
2024
  msgstr ""
2025
 
2026
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:791
2027
  msgid "How to find"
2028
  msgstr ""
2029
 
@@ -2118,19 +1932,19 @@ msgstr ""
2118
  msgid "Search Campaigns"
2119
  msgstr ""
2120
 
2121
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:433
2122
  msgid "You are not allowed to delete campaign."
2123
  msgstr ""
2124
 
2125
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:439
2126
  msgid "Campaign has been deleted successfully!"
2127
  msgstr ""
2128
 
2129
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:457
2130
  msgid "Campaign(s) have been deleted successfully!"
2131
  msgstr ""
2132
 
2133
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:461
2134
  msgid "Please check campaign(s) to delete."
2135
  msgstr ""
2136
 
@@ -2488,6 +2302,11 @@ msgstr ""
2488
  msgid "Sorry, form not found"
2489
  msgstr ""
2490
 
 
 
 
 
 
2491
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:260
2492
  msgid "New Form"
2493
  msgstr ""
@@ -2637,24 +2456,24 @@ msgstr ""
2637
  msgid "Invalid Captcha"
2638
  msgstr ""
2639
 
2640
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:57
2641
  msgid "Sync WordPress Users?"
2642
  msgstr ""
2643
 
2644
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:59
2645
  msgid ""
2646
  "Whenever someone signup, it will automatically be added into selected list"
2647
  msgstr ""
2648
 
2649
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:77
2650
  msgid "Select the list in which newly registered user will be subscribed to"
2651
  msgstr ""
2652
 
2653
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:174
2654
  msgid "Audience > Sync Contacts"
2655
  msgstr ""
2656
 
2657
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:192
2658
  msgid "WordPress"
2659
  msgstr ""
2660
 
@@ -2789,7 +2608,11 @@ msgstr ""
2789
  msgid "No lists avaliable."
2790
  msgstr ""
2791
 
2792
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-mailer.php:501
 
 
 
 
2793
  #, php-format
2794
  msgid "Test email to %s"
2795
  msgstr ""
@@ -2838,7 +2661,7 @@ msgstr ""
2838
  msgid "Recipients"
2839
  msgstr ""
2840
 
2841
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:147
2842
  msgid "Preview this email in browser"
2843
  msgstr ""
2844
 
@@ -2959,11 +2782,6 @@ msgstr ""
2959
  msgid "No Reports avaliable."
2960
  msgstr ""
2961
 
2962
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:191
2963
- #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-templates-table.php:35
2964
- msgid "Post Notification"
2965
- msgstr ""
2966
-
2967
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:213
2968
  msgid "Completed"
2969
  msgstr ""
3
  msgstr ""
4
  "Project-Id-Version: Email Subscribers & Newsletters\n"
5
  "Report-Msgid-Bugs-To: \n"
6
+ "POT-Creation-Date: 2020-03-03 09:11+0000\n"
7
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
8
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
9
  "Language-Team: \n"
27
  msgid "Email Subscribers Premium"
28
  msgstr ""
29
 
30
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/inc/ig-upgrade-v-0.4.6.php:931
31
  msgid "Check for updates"
32
  msgstr ""
33
 
34
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/inc/ig-upgrade-v-0.4.6.php:932
35
  msgid "Docs"
36
  msgstr ""
37
 
38
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/inc/ig-upgrade-v-0.4.6.php:933
39
  msgid "Go Pro"
40
  msgstr ""
41
 
42
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/inc/ig-upgrade-v-0.4.6.php:936
43
  msgid "Disconnect from Icegram"
44
  msgstr ""
45
 
46
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/inc/ig-upgrade-v-0.4.6.php:938
47
  msgid "Connect to Icegram"
48
  msgstr ""
49
 
50
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:102
51
  msgid "Sequence"
52
  msgstr ""
53
 
54
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:189
55
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:476
56
  msgid "Google Analytics link tracking"
57
  msgstr ""
58
 
59
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:190
60
  msgid "Get Spam Score"
61
  msgstr ""
62
 
63
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:200
64
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:477
65
  msgid "Campaign Name"
66
  msgstr ""
67
 
68
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:200
69
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:477
70
  msgid ""
71
  "This will be appended to every URL in this template with parameters: "
72
  "utm_source=es&utm_medium=email&utm_campaign=campaign_name "
73
  msgstr ""
74
 
75
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:208
76
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:483
77
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-sequences.php:358
78
  msgid "Check"
79
  msgstr ""
80
 
81
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:212
82
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:487
83
  msgid "Awesome score. Your email is almost perfect."
84
  msgstr ""
85
 
86
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:213
87
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:488
88
  msgid "Ouch! your email needs improvement. "
89
  msgstr ""
90
 
91
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:215
92
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:490
93
  msgid "Here are some things to fix: "
94
  msgstr ""
95
 
96
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:409
97
  msgid "Clean My List"
98
  msgstr ""
99
 
100
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:410
101
  msgid "List cleanup is in progress..."
102
  msgstr ""
103
 
104
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:411
105
  msgid "List cleanup completed successfully."
106
  msgstr ""
107
 
108
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:419
109
  msgid "Email Status"
110
  msgstr ""
111
 
112
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:455
113
  msgid "Email Sent Successfully "
114
  msgstr ""
115
 
116
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:456
117
  msgid "Something went wrong. Please try again later"
118
  msgstr ""
119
 
120
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:460
121
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-sequences.php:382
122
  msgid "When to send"
123
  msgstr ""
124
 
125
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:462
126
  msgid "Date"
127
  msgstr ""
128
 
129
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:468
130
  msgid "Time"
131
  msgstr ""
132
 
133
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:471
134
  msgid "Local time is "
135
  msgstr ""
136
 
137
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:482
138
  msgid "Get spam score"
139
  msgstr ""
140
 
141
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:500
142
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:413
143
  msgid "Something went wrong"
144
  msgstr ""
145
 
146
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:522
147
  msgid "SUCCESS"
148
  msgstr ""
149
 
150
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:533
151
  msgid "Select page"
152
  msgstr ""
153
 
154
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:568
155
  msgid "Track Clicks"
156
  msgstr ""
157
 
158
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:570
159
  msgid "Check this if you want to track link clicks."
160
  msgstr ""
161
 
162
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/pro-class-email-subscribers.php:622
163
  msgid "Clicked"
164
  msgstr ""
165
 
386
 
387
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:334
388
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:286
389
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/feedback.php:232
390
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:329
391
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:402
392
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:438
393
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:367
394
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:385
395
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:67
396
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-widget.php:49
397
  msgid "No"
398
  msgstr ""
399
 
400
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:334
401
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:289
402
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/feedback.php:231
403
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:329
404
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:401
405
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:437
406
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:363
407
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:381
408
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:70
409
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-widget.php:49
410
  msgid "Yes"
411
  msgstr ""
460
  msgstr ""
461
 
462
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:576
463
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:177
464
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:177
465
  msgid "Audience"
466
  msgstr ""
467
 
468
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:577
469
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:171
470
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:171
 
471
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:38
472
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:39
473
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:81
475
  msgstr ""
476
 
477
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:578
478
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:161
479
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:161
 
480
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:93
481
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:103
482
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:258
484
  msgstr ""
485
 
486
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-email-subscribers.php:579
487
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:186
488
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:186
489
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:20
490
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:36
491
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:75
552
  msgstr ""
553
 
554
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:241
555
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:31
556
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:626
557
  msgid "Please select list"
558
  msgstr ""
559
 
560
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:249
561
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:39
562
  msgid "Settings have been saved successfully!"
563
  msgstr ""
564
 
566
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:365
567
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:502
568
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:589
569
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:77
570
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:272
571
  msgid "Select List"
572
  msgstr ""
578
 
579
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/starter/starter-class-es-integrations.php:326
580
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:750
581
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:91
582
  msgid "Save Settings"
583
  msgstr ""
584
 
710
  "Select the list in which you want to make Ninja Forms contacts subscribed to"
711
  msgstr ""
712
 
713
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:153
714
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-email-subscribers.php:819
715
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-form-widget.php:11
716
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-old-widget.php:11
717
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-old-widget.php:12
719
  msgid "Email Subscribers"
720
  msgstr ""
721
 
722
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:156
723
  msgid "Dashboard"
724
  msgstr ""
725
 
726
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:164
727
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/help.php:112
728
  msgid "Post Notifications"
729
  msgstr ""
730
 
731
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:165
732
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:104
733
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:262
734
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:195
735
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-templates-table.php:34
737
  msgid "Broadcast"
738
  msgstr ""
739
 
740
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:166
741
  msgid "Template Preview"
742
  msgstr ""
743
 
744
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:181
 
745
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:338
746
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:37
747
  msgid "Lists"
748
  msgstr ""
749
 
750
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/class-email-subscribers-admin.php:190
751
  msgid "Settings"
752
  msgstr ""
753
 
775
  msgid "OK, I Got it!"
776
  msgstr ""
777
 
778
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-email-subscribers.php:904
779
  #, php-format
780
  msgid "%1$s in %2$s on line %3$s"
781
  msgstr ""
782
 
783
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:90
784
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:270
785
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:497
786
  msgid "Subscribed"
787
  msgstr ""
788
 
789
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:91
790
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:499
791
  msgid "Unconfirmed"
792
  msgstr ""
793
 
794
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:92
795
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-contacts-table.php:274
796
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-lists-table.php:498
797
  msgid "Unsubscribed"
798
  msgstr ""
799
 
800
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:115
801
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-post-notifications.php:299
802
  msgid "Select Status"
803
  msgstr ""
804
 
805
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:235
806
  msgid "Select Template"
807
  msgstr ""
808
 
809
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:273
810
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:223
811
  msgid "Active"
812
  msgstr ""
813
 
814
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:274
815
  msgid "Inactive"
816
  msgstr ""
817
 
818
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:342
819
  msgid "Select Categories"
820
  msgstr ""
821
 
822
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:354
823
  msgid "All Categories (Also include all categories which will create later)"
824
  msgstr ""
825
 
826
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:386
827
  msgid "No Custom Post Types Available"
828
  msgstr ""
829
 
830
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:402
831
  msgid "Single Opt-In"
832
  msgstr ""
833
 
834
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:403
835
  msgid "Double Opt-In"
836
  msgstr ""
837
 
838
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:418
839
  msgid "Full Size"
840
  msgstr ""
841
 
842
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:419
843
  msgid "Medium Size"
844
  msgstr ""
845
 
846
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/class-es-common.php:420
847
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-templates-table.php:223
848
  msgid "Thumbnail"
849
  msgstr ""
887
  msgid "Join Now"
888
  msgstr ""
889
 
890
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/feedback.php:227
891
+ msgid "Subscription forms and CTAs??"
892
+ msgstr ""
893
+
894
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/feedback.php:238
895
+ msgid "Send my feedback to <b>Icegram team</b>"
896
+ msgstr ""
897
+
898
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/pro-features.php:142
899
  msgid "Sync Comment Users"
900
  msgstr ""
1104
  msgid "Are you sure you want to unsubscribe?"
1105
  msgstr ""
1106
 
1107
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/classes/class-es-pro-reports-data.php:106
1108
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:191
1109
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-templates-table.php:35
1110
+ msgid "Post Notification"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1111
  msgstr ""
1112
 
1113
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/partials/es-dashboard.php:51
1114
+ msgid "Sent on"
1115
  msgstr ""
1116
 
1117
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/pro/partials/es-dashboard.php:58
1118
+ msgid "In Queue"
 
1119
  msgstr ""
1120
 
1121
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/help.php:10
1470
  "marketing now. Sign up below to get our highly acclaimed course for free."
1471
  msgstr ""
1472
 
1473
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/onboarding.php:52
1474
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/onboarding.php:77
1475
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/onboarding.php:100
1476
+ #, php-format
1477
+ msgid "I have read and agreed to your %s."
1478
+ msgstr ""
1479
+
1480
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/onboarding.php:52
1481
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/onboarding.php:77
1482
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/onboarding.php:100
1483
+ msgid "Privacy Policy"
1484
+ msgstr ""
1485
+
1486
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/onboarding.php:54
1487
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/onboarding.php:79
1488
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/admin/partials/onboarding.php:102
1754
  msgstr ""
1755
 
1756
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:448
1757
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-mailer.php:352
1758
  msgid "Campaign Sent!"
1759
  msgstr ""
1760
 
1815
  msgstr ""
1816
 
1817
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:551
1818
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:812
1819
  msgid "Pepipost API key"
1820
  msgstr ""
1821
 
1833
  "line) that you want to block here."
1834
  msgstr ""
1835
 
1836
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:811
1837
  msgid "Signup for Pepipost"
1838
  msgstr ""
1839
 
1840
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-admin-settings.php:812
1841
  msgid "How to find"
1842
  msgstr ""
1843
 
1932
  msgid "Search Campaigns"
1933
  msgstr ""
1934
 
1935
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:437
1936
  msgid "You are not allowed to delete campaign."
1937
  msgstr ""
1938
 
1939
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:443
1940
  msgid "Campaign has been deleted successfully!"
1941
  msgstr ""
1942
 
1943
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:461
1944
  msgid "Campaign(s) have been deleted successfully!"
1945
  msgstr ""
1946
 
1947
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-campaigns-table.php:465
1948
  msgid "Please check campaign(s) to delete."
1949
  msgstr ""
1950
 
2302
  msgid "Sorry, form not found"
2303
  msgstr ""
2304
 
2305
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:243
2306
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/public/partials/class-es-shortcode.php:132
2307
+ msgid "Subscribe"
2308
+ msgstr ""
2309
+
2310
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-forms-table.php:260
2311
  msgid "New Form"
2312
  msgstr ""
2456
  msgid "Invalid Captcha"
2457
  msgstr ""
2458
 
2459
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:59
2460
  msgid "Sync WordPress Users?"
2461
  msgstr ""
2462
 
2463
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:61
2464
  msgid ""
2465
  "Whenever someone signup, it will automatically be added into selected list"
2466
  msgstr ""
2467
 
2468
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:79
2469
  msgid "Select the list in which newly registered user will be subscribed to"
2470
  msgstr ""
2471
 
2472
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:227
2473
  msgid "Audience > Sync Contacts"
2474
  msgstr ""
2475
 
2476
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-handle-sync-wp-user.php:245
2477
  msgid "WordPress"
2478
  msgstr ""
2479
 
2608
  msgid "No lists avaliable."
2609
  msgstr ""
2610
 
2611
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-mailer.php:296
2612
+ msgid "Thanks!"
2613
+ msgstr ""
2614
+
2615
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-mailer.php:509
2616
  #, php-format
2617
  msgid "Test email to %s"
2618
  msgstr ""
2661
  msgid "Recipients"
2662
  msgstr ""
2663
 
2664
+ #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-newsletters.php:148
2665
  msgid "Preview this email in browser"
2666
  msgstr ""
2667
 
2782
  msgid "No Reports avaliable."
2783
  msgstr ""
2784
 
 
 
 
 
 
2785
  #: ../../../../../repositories/GitLab/icegram/email-subscribers/lite/includes/classes/class-es-reports-table.php:213
2786
  msgid "Completed"
2787
  msgstr ""
readme.txt CHANGED
@@ -5,7 +5,7 @@ Author URI: https://www.icegram.com/
5
  Tags: subscription, newsletter, email marketing, post notification, email newsletter form, email signup, email widget, newsletter signup, subscribe, subscription form, bulk emails, signup form, list builder, lead generation, welcome email, contacts
6
  Requires at least: 3.9
7
  Tested up to: 5.3.2
8
- Stable tag: 4.3.13
9
  License: GPLv3
10
  License URI: http://www.gnu.org/licenses
11
 
@@ -60,6 +60,7 @@ Email Subscribers is a fully-featured subscription plugin specially created keep
60
  * **Offer & promotional email templates** - High converting ready-to-use templates for any occasion, events or holiday season.
61
  * **New blog post notification email templates** - Awesome templates that will encourage contacts to read your blog post
62
  * **Automatic Background Sending**
 
63
  * **Connect with SMTP / Email Sending Services**
64
  * **Link Tracking**
65
  * **UTM Tracking**
@@ -253,9 +254,13 @@ Refer [here](https://www.icegram.com/documentation/es-faq/).
253
 
254
  9. Admin page - Settings Tab 4 - Security Settings
255
 
 
256
 
257
  == Changelog ==
258
 
 
 
 
259
  **4.3.13 (24.02.2020)**
260
 
261
  * Update: Added custom style for consent text
5
  Tags: subscription, newsletter, email marketing, post notification, email newsletter form, email signup, email widget, newsletter signup, subscribe, subscription form, bulk emails, signup form, list builder, lead generation, welcome email, contacts
6
  Requires at least: 3.9
7
  Tested up to: 5.3.2
8
+ Stable tag: 4.4.0
9
  License: GPLv3
10
  License URI: http://www.gnu.org/licenses
11
 
60
  * **Offer & promotional email templates** - High converting ready-to-use templates for any occasion, events or holiday season.
61
  * **New blog post notification email templates** - Awesome templates that will encourage contacts to read your blog post
62
  * **Automatic Background Sending**
63
+ * **Active Contacts Growth, Campaigns Reports*
64
  * **Connect with SMTP / Email Sending Services**
65
  * **Link Tracking**
66
  * **UTM Tracking**
254
 
255
  9. Admin page - Settings Tab 4 - Security Settings
256
 
257
+ 10. Admin Dashboard
258
 
259
  == Changelog ==
260
 
261
+ **4.4.0 (03.03.2020)**
262
+ * Update: Improve dashboard. Added active growth, last 60 days KPI and Campaigns reports (PRO)
263
+
264
  **4.3.13 (24.02.2020)**
265
 
266
  * Update: Added custom style for consent text