Enhanced Ecommerce Google Analytics Plugin for WooCommerce - Version 3.0.0

Version Description

Download this release

Release Info

Developer Tatvic
Plugin Icon 128x128 Enhanced Ecommerce Google Analytics Plugin for WooCommerce
Version 3.0.0
Comparing to
See all releases

Code changes from version 2.3.6.1 to 3.0.0

Files changed (74) hide show
  1. admin/class-enhanced-ecommerce-google-analytics-admin.php +0 -0
  2. admin/class-enhanced-ecommerce-google-analytics-settings.php +0 -0
  3. admin/css/enhanced-ecommerce-google-analytics-admin.css +0 -0
  4. admin/css/style.css +11 -0
  5. admin/images/config-success.svg +1 -0
  6. admin/images/exclaimation.png +0 -0
  7. admin/images/no-config-success.svg +1 -0
  8. admin/js/sweetalert.min.js +1 -0
  9. admin/partials/about-plugin.php +0 -0
  10. admin/partials/enhanced-ecommerce-google-analytics-admin-display.php +0 -0
  11. admin/partials/general-fields.php +0 -0
  12. admin/partials/sidebar.php +0 -0
  13. css/tvc_admin-page.css +548 -0
  14. css/tvc_admin-page.min.css +496 -0
  15. css/tvc_setting-page.css +58 -0
  16. css/tvc_setting-page.min.css +41 -0
  17. enhanced-ecommerce-google-analytics.php +0 -0
  18. google_ads_php.ini +14 -0
  19. images/ajax-loader.gif +0 -0
  20. includes/application/class-feed-master.php +676 -0
  21. includes/application/class-tvc-email.php +68 -0
  22. includes/application/class-tvc-feed-controller.php +208 -0
  23. includes/application/class-tvc-feed-processor.php +341 -0
  24. includes/application/class-tvc-feed-queries.php +243 -0
  25. includes/application/class-tvc-feed-support.php +301 -0
  26. includes/application/class-tvc-feed-value-editors.php +240 -0
  27. includes/application/class-tvc-schedules.php +147 -0
  28. includes/application/google/class-feed.php +213 -0
  29. includes/application/google/gmc.txt +23 -0
  30. includes/application/google/gmc_attrbutes.json +118 -0
  31. includes/application/google/google.txt +84 -0
  32. includes/application/google/taxonomy.en-US.txt +5583 -0
  33. includes/application/google/tvc_google-source.js +292 -0
  34. includes/application/js/tvc_channel-functions.js +707 -0
  35. includes/application/js/tvc_channel-functions.min.js +498 -0
  36. includes/application/js/tvc_feedhandling.js +144 -0
  37. includes/application/js/tvc_feedhandling.min.js +85 -0
  38. includes/application/js/tvc_general-functions.js +102 -0
  39. includes/application/js/tvc_general-functions.min.js +1 -0
  40. includes/application/js/tvc_logic.js +454 -0
  41. includes/application/js/tvc_logic.min.js +343 -0
  42. includes/application/js/tvc_object-attribute-meta.js +66 -0
  43. includes/application/js/tvc_object-attribute-meta.min.js +1 -0
  44. includes/application/js/tvc_object-feed.js +849 -0
  45. includes/application/js/tvc_object-feed.min.js +1 -0
  46. includes/application/tvc-cron-functions.php +54 -0
  47. includes/application/tvc-feed-processing-support.php +1583 -0
  48. includes/application/tvc-feed-processor-functions.php +107 -0
  49. includes/application/tvc-support-fields.php +118 -0
  50. includes/class-enhanced-ecommerce-google-analytics.php +0 -0
  51. includes/class-tvc-register-scripts.php +200 -0
  52. includes/data/class-tvc-ajax-calls.php +41 -0
  53. includes/data/class-tvc-ajax-data.php +448 -0
  54. includes/data/class-tvc-ajax-file.php +1081 -0
  55. includes/data/class-tvc-backup.php +181 -0
  56. includes/data/class-tvc-channel-ftp.php +37 -0
  57. includes/data/class-tvc-channel.php +342 -0
  58. includes/data/class-tvc-data.php +713 -0
  59. includes/data/class-tvc-db-management.php +325 -0
  60. includes/data/class-tvc-feed-crud-handler.php +88 -0
  61. includes/data/class-tvc-file.php +246 -0
  62. includes/data/class-tvc-queries.php +970 -0
  63. includes/data/class-tvc-tab.php +126 -0
  64. includes/data/class-tvc-taxonomies.php +153 -0
  65. includes/data/class-tvc-variations.php +85 -0
  66. includes/data/js/tvc_ajaxdatahandling.js +718 -0
  67. includes/data/js/tvc_ajaxdatahandling.min.js +364 -0
  68. includes/data/js/tvc_data.js +105 -0
  69. includes/data/js/tvc_data.min.js +1 -0
  70. includes/data/js/tvc_feed-queue-string.js +30 -0
  71. includes/data/js/tvc_feed-queue-string.min.js +1 -0
  72. includes/data/js/tvc_metadatahandling.js +596 -0
  73. includes/data/js/tvc_metadatahandling.min.js +1 -0
  74. includes/data/tvc-admin-functions.php +340 -0
admin/class-enhanced-ecommerce-google-analytics-admin.php CHANGED
File without changes
admin/class-enhanced-ecommerce-google-analytics-settings.php CHANGED
File without changes
admin/css/enhanced-ecommerce-google-analytics-admin.css CHANGED
File without changes
admin/css/style.css ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ *{
2
+ box-sizing: border-box;
3
+ margin:0px;
4
+ padding:0px;
5
+ }
6
+ body{
7
+ background-image: url('../images/plugin_bk.png') !important;
8
+ }
9
+ .swal{
10
+ background-color:#2c3e50;
11
+ }
admin/images/config-success.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="41" height="41" viewBox="0 0 41 41"><defs><style>.a{fill:#66bb6a;}.b{fill:#fff;stroke:#fff;}</style></defs><g transform="translate(-1199 -247)"><circle class="a" cx="20.5" cy="20.5" r="20.5" transform="translate(1199 247)"/><g transform="translate(1205.572 257.288)"><g transform="translate(0 0)"><path class="b" d="M26.263,68.388a1.333,1.333,0,0,0-1.885,0L8.412,84.355,2.275,78.217A1.333,1.333,0,1,0,.39,80.1l7.08,7.08a1.333,1.333,0,0,0,1.885,0L26.263,70.273A1.333,1.333,0,0,0,26.263,68.388Z" transform="translate(0 -67.997)"/></g></g></g></svg>
admin/images/exclaimation.png ADDED
Binary file
admin/images/no-config-success.svg ADDED
@@ -0,0 +1 @@
 
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="31.266" height="31.266" viewBox="0 0 31.266 31.266"><defs><style>.a{fill:#25283d;stroke:#25283d;stroke-width:0.5px;}</style></defs><g transform="translate(0.25 0.25)"><g transform="translate(6.41 6.41)"><path class="a" d="M15.9,29.357H12.051a2.081,2.081,0,0,1-1.923-2.307V24.357a4.452,4.452,0,0,0-1.666-3.333A8.861,8.861,0,0,1,5,13.845,9.123,9.123,0,0,1,13.845,5a9.009,9.009,0,0,1,6.41,2.564,9.126,9.126,0,0,1,2.692,6.41A8.621,8.621,0,0,1,19.614,20.9a4.681,4.681,0,0,0-1.795,3.589v2.948A1.972,1.972,0,0,1,15.9,29.357ZM13.973,6.282a7.862,7.862,0,0,0-7.692,7.563A7.535,7.535,0,0,0,9.23,20a5.586,5.586,0,0,1,2.179,4.359v2.692c0,.256,0,1.026.641,1.026H15.9a.606.606,0,0,0,.641-.641V24.485a6.23,6.23,0,0,1,2.307-4.615,7.475,7.475,0,0,0,2.82-5.9,7.663,7.663,0,0,0-2.307-5.512,7.556,7.556,0,0,0-5.384-2.179Z" transform="translate(-5 -5)"/></g><g transform="translate(11.537 25.638)"><path class="a" d="M16.051,21.282H9.641a.641.641,0,1,1,0-1.282h6.41a.641.641,0,1,1,0,1.282Z" transform="translate(-9 -20)"/></g><g transform="translate(14.742)"><path class="a" d="M12.141,3.846A.606.606,0,0,1,11.5,3.2V.641a.641.641,0,0,1,1.282,0V3.2A.606.606,0,0,1,12.141,3.846Z" transform="translate(-11.5)"/></g><g transform="translate(23.267 4.423)"><path class="a" d="M18.855,6.463a.771.771,0,0,1-.513-.128.62.62,0,0,1,0-.9l1.795-1.795a.635.635,0,0,1,.9.9L19.24,6.334A1.291,1.291,0,0,1,18.855,6.463Z" transform="translate(-18.15 -3.45)"/></g><g transform="translate(26.92 14.742)"><path class="a" d="M24.2,12.782H21.641a.641.641,0,0,1,0-1.282H24.2a.641.641,0,1,1,0,1.282Z" transform="translate(-21 -11.5)"/></g><g transform="translate(23.267 23.395)"><path class="a" d="M20.65,21.263a.771.771,0,0,1-.513-.128L18.342,19.34a.635.635,0,0,1,.9-.9l1.795,1.795a.62.62,0,0,1,0,.9c0,.128-.128.128-.385.128Z" transform="translate(-18.15 -18.25)"/></g><g transform="translate(4.294 23.395)"><path class="a" d="M4.055,21.263a.771.771,0,0,1-.513-.128.62.62,0,0,1,0-.9l1.795-1.795a.635.635,0,1,1,.9.9L4.44,21.134a.471.471,0,0,1-.385.128Z" transform="translate(-3.35 -18.25)"/></g><g transform="translate(0 14.742)"><path class="a" d="M3.2,12.782H.641a.641.641,0,0,1,0-1.282H3.2a.641.641,0,0,1,0,1.282Z" transform="translate(0 -11.5)"/></g><g transform="translate(4.294 4.294)"><path class="a" d="M5.85,6.491a.771.771,0,0,1-.513-.128L3.542,4.44a.635.635,0,0,1,.9-.9L6.234,5.337a.62.62,0,0,1,0,.9c-.128.128-.256.256-.385.256Z" transform="translate(-3.35 -3.35)"/></g><g transform="translate(14.742 9.614)"><path class="a" d="M17.269,13.91a.606.606,0,0,1-.641-.641,4.542,4.542,0,0,0-4.487-4.487.641.641,0,0,1,0-1.282,5.745,5.745,0,0,1,5.769,5.769A.606.606,0,0,1,17.269,13.91Z" transform="translate(-11.5 -7.5)"/></g></g></svg>
admin/js/sweetalert.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.swal=e():t.swal=e()}(this,function(){return function(t){function e(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return t[o].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,o){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:o})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=8)}([function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o="swal-button";e.CLASS_NAMES={MODAL:"swal-modal",OVERLAY:"swal-overlay",SHOW_MODAL:"swal-overlay--show-modal",MODAL_TITLE:"swal-title",MODAL_TEXT:"swal-text",ICON:"swal-icon",ICON_CUSTOM:"swal-icon--custom",CONTENT:"swal-content",FOOTER:"swal-footer",BUTTON_CONTAINER:"swal-button-container",BUTTON:o,CONFIRM_BUTTON:o+"--confirm",CANCEL_BUTTON:o+"--cancel",DANGER_BUTTON:o+"--danger",BUTTON_LOADING:o+"--loading",BUTTON_LOADER:o+"__loader"},e.default=e.CLASS_NAMES},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.getNode=function(t){var e="."+t;return document.querySelector(e)},e.stringToNode=function(t){var e=document.createElement("div");return e.innerHTML=t.trim(),e.firstChild},e.insertAfter=function(t,e){var n=e.nextSibling;e.parentNode.insertBefore(t,n)},e.removeNode=function(t){t.parentElement.removeChild(t)},e.throwErr=function(t){throw t=t.replace(/ +(?= )/g,""),"SweetAlert: "+(t=t.trim())},e.isPlainObject=function(t){if("[object Object]"!==Object.prototype.toString.call(t))return!1;var e=Object.getPrototypeOf(t);return null===e||e===Object.prototype},e.ordinalSuffixOf=function(t){var e=t%10,n=t%100;return 1===e&&11!==n?t+"st":2===e&&12!==n?t+"nd":3===e&&13!==n?t+"rd":t+"th"}},function(t,e,n){"use strict";function o(t){for(var n in t)e.hasOwnProperty(n)||(e[n]=t[n])}Object.defineProperty(e,"__esModule",{value:!0}),o(n(25));var r=n(26);e.overlayMarkup=r.default,o(n(27)),o(n(28)),o(n(29));var i=n(0),a=i.default.MODAL_TITLE,s=i.default.MODAL_TEXT,c=i.default.ICON,l=i.default.FOOTER;e.iconMarkup='\n <div class="'+c+'"></div>',e.titleMarkup='\n <div class="'+a+'"></div>\n',e.textMarkup='\n <div class="'+s+'"></div>',e.footerMarkup='\n <div class="'+l+'"></div>\n'},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1);e.CONFIRM_KEY="confirm",e.CANCEL_KEY="cancel";var r={visible:!0,text:null,value:null,className:"",closeModal:!0},i=Object.assign({},r,{visible:!1,text:"Cancel",value:null}),a=Object.assign({},r,{text:"OK",value:!0});e.defaultButtonList={cancel:i,confirm:a};var s=function(t){switch(t){case e.CONFIRM_KEY:return a;case e.CANCEL_KEY:return i;default:var n=t.charAt(0).toUpperCase()+t.slice(1);return Object.assign({},r,{text:n,value:t})}},c=function(t,e){var n=s(t);return!0===e?Object.assign({},n,{visible:!0}):"string"==typeof e?Object.assign({},n,{visible:!0,text:e}):o.isPlainObject(e)?Object.assign({visible:!0},n,e):Object.assign({},n,{visible:!1})},l=function(t){for(var e={},n=0,o=Object.keys(t);n<o.length;n++){var r=o[n],a=t[r],s=c(r,a);e[r]=s}return e.cancel||(e.cancel=i),e},u=function(t){var n={};switch(t.length){case 1:n[e.CANCEL_KEY]=Object.assign({},i,{visible:!1});break;case 2:n[e.CANCEL_KEY]=c(e.CANCEL_KEY,t[0]),n[e.CONFIRM_KEY]=c(e.CONFIRM_KEY,t[1]);break;default:o.throwErr("Invalid number of 'buttons' in array ("+t.length+").\n If you want more than 2 buttons, you need to use an object!")}return n};e.getButtonListOpts=function(t){var n=e.defaultButtonList;return"string"==typeof t?n[e.CONFIRM_KEY]=c(e.CONFIRM_KEY,t):Array.isArray(t)?n=u(t):o.isPlainObject(t)?n=l(t):!0===t?n=u([!0,!0]):!1===t?n=u([!1,!1]):void 0===t&&(n=e.defaultButtonList),n}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(2),i=n(0),a=i.default.MODAL,s=i.default.OVERLAY,c=n(30),l=n(31),u=n(32),f=n(33);e.injectElIntoModal=function(t){var e=o.getNode(a),n=o.stringToNode(t);return e.appendChild(n),n};var d=function(t){t.className=a,t.textContent=""},p=function(t,e){d(t);var n=e.className;n&&t.classList.add(n)};e.initModalContent=function(t){var e=o.getNode(a);p(e,t),c.default(t.icon),l.initTitle(t.title),l.initText(t.text),f.default(t.content),u.default(t.buttons,t.dangerMode)};var m=function(){var t=o.getNode(s),e=o.stringToNode(r.modalMarkup);t.appendChild(e)};e.default=m},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(3),r={isOpen:!1,promise:null,actions:{},timer:null},i=Object.assign({},r);e.resetState=function(){i=Object.assign({},r)},e.setActionValue=function(t){if("string"==typeof t)return a(o.CONFIRM_KEY,t);for(var e in t)a(e,t[e])};var a=function(t,e){i.actions[t]||(i.actions[t]={}),Object.assign(i.actions[t],{value:e})};e.setActionOptionsFor=function(t,e){var n=(void 0===e?{}:e).closeModal,o=void 0===n||n;Object.assign(i.actions[t],{closeModal:o})},e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(3),i=n(0),a=i.default.OVERLAY,s=i.default.SHOW_MODAL,c=i.default.BUTTON,l=i.default.BUTTON_LOADING,u=n(5);e.openModal=function(){o.getNode(a).classList.add(s),u.default.isOpen=!0};var f=function(){o.getNode(a).classList.remove(s),u.default.isOpen=!1};e.onAction=function(t){void 0===t&&(t=r.CANCEL_KEY);var e=u.default.actions[t],n=e.value;if(!1===e.closeModal){var i=c+"--"+t;o.getNode(i).classList.add(l)}else f();u.default.promise.resolve(n)},e.getState=function(){var t=Object.assign({},u.default);return delete t.promise,delete t.timer,t},e.stopLoading=function(){for(var t=document.querySelectorAll("."+c),e=0;e<t.length;e++){t[e].classList.remove(l)}}},function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){(function(e){t.exports=e.sweetAlert=n(9)}).call(e,n(7))},function(t,e,n){(function(e){t.exports=e.swal=n(10)}).call(e,n(7))},function(t,e,n){"undefined"!=typeof window&&n(11),n(16);var o=n(23).default;t.exports=o},function(t,e,n){var o=n(12);"string"==typeof o&&(o=[[t.i,o,""]]);var r={insertAt:"top"};r.transform=void 0;n(14)(o,r);o.locals&&(t.exports=o.locals)},function(t,e,n){e=t.exports=n(13)(void 0),e.push([t.i,'.swal-icon--error{border-color:#f27474;-webkit-animation:animateErrorIcon .5s;animation:animateErrorIcon .5s}.swal-icon--error__x-mark{position:relative;display:block;-webkit-animation:animateXMark .5s;animation:animateXMark .5s}.swal-icon--error__line{position:absolute;height:5px;width:47px;background-color:#f27474;display:block;top:37px;border-radius:2px}.swal-icon--error__line--left{-webkit-transform:rotate(45deg);transform:rotate(45deg);left:17px}.swal-icon--error__line--right{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);right:16px}@-webkit-keyframes animateErrorIcon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}to{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@keyframes animateErrorIcon{0%{-webkit-transform:rotateX(100deg);transform:rotateX(100deg);opacity:0}to{-webkit-transform:rotateX(0deg);transform:rotateX(0deg);opacity:1}}@-webkit-keyframes animateXMark{0%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}50%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}80%{-webkit-transform:scale(1.15);transform:scale(1.15);margin-top:-6px}to{-webkit-transform:scale(1);transform:scale(1);margin-top:0;opacity:1}}@keyframes animateXMark{0%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}50%{-webkit-transform:scale(.4);transform:scale(.4);margin-top:26px;opacity:0}80%{-webkit-transform:scale(1.15);transform:scale(1.15);margin-top:-6px}to{-webkit-transform:scale(1);transform:scale(1);margin-top:0;opacity:1}}.swal-icon--warning{border-color:#f8bb86;-webkit-animation:pulseWarning .75s infinite alternate;animation:pulseWarning .75s infinite alternate}.swal-icon--warning__body{width:5px;height:47px;top:10px;border-radius:2px;margin-left:-2px}.swal-icon--warning__body,.swal-icon--warning__dot{position:absolute;left:50%;background-color:#f8bb86}.swal-icon--warning__dot{width:7px;height:7px;border-radius:50%;margin-left:-4px;bottom:-11px}@-webkit-keyframes pulseWarning{0%{border-color:#f8d486}to{border-color:#f8bb86}}@keyframes pulseWarning{0%{border-color:#f8d486}to{border-color:#f8bb86}}.swal-icon--success{border-color:#a5dc86}.swal-icon--success:after,.swal-icon--success:before{content:"";border-radius:50%;position:absolute;width:60px;height:120px;background:#fff;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.swal-icon--success:before{border-radius:120px 0 0 120px;top:-7px;left:-33px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:60px 60px;transform-origin:60px 60px}.swal-icon--success:after{border-radius:0 120px 120px 0;top:-11px;left:30px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:0 60px;transform-origin:0 60px;-webkit-animation:rotatePlaceholder 4.25s ease-in;animation:rotatePlaceholder 4.25s ease-in}.swal-icon--success__ring{width:80px;height:80px;border:4px solid hsla(98,55%,69%,.2);border-radius:50%;box-sizing:content-box;position:absolute;left:-4px;top:-4px;z-index:2}.swal-icon--success__hide-corners{width:5px;height:90px;background-color:#fff;padding:1px;position:absolute;left:28px;top:8px;z-index:1;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.swal-icon--success__line{height:5px;background-color:#a5dc86;display:block;border-radius:2px;position:absolute;z-index:2}.swal-icon--success__line--tip{width:25px;left:14px;top:46px;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-animation:animateSuccessTip .75s;animation:animateSuccessTip .75s}.swal-icon--success__line--long{width:47px;right:8px;top:38px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-animation:animateSuccessLong .75s;animation:animateSuccessLong .75s}@-webkit-keyframes rotatePlaceholder{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}to{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}@keyframes rotatePlaceholder{0%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}5%{-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}12%{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}to{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}@-webkit-keyframes animateSuccessTip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}to{width:25px;left:14px;top:45px}}@keyframes animateSuccessTip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}to{width:25px;left:14px;top:45px}}@-webkit-keyframes animateSuccessLong{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}to{width:47px;right:8px;top:38px}}@keyframes animateSuccessLong{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}to{width:47px;right:8px;top:38px}}.swal-icon--info{border-color:#c9dae1}.swal-icon--info:before{width:5px;height:29px;bottom:17px;border-radius:2px;margin-left:-2px}.swal-icon--info:after,.swal-icon--info:before{content:"";position:absolute;left:50%;background-color:#c9dae1}.swal-icon--info:after{width:7px;height:7px;border-radius:50%;margin-left:-3px;top:19px}.swal-icon{width:80px;height:80px;border-width:4px;border-style:solid;border-radius:50%;padding:0;position:relative;box-sizing:content-box;margin:20px auto}.swal-icon:first-child{margin-top:32px}.swal-icon--custom{width:auto;height:auto;max-width:100%;border:none;border-radius:0}.swal-icon img{max-width:100%;max-height:100%}.swal-title{color:rgba(0,0,0,.65);font-weight:600;text-transform:none;position:relative;display:block;padding:13px 16px;font-size:27px;line-height:normal;text-align:center;margin-bottom:0}.swal-title:first-child{margin-top:26px}.swal-title:not(:first-child){padding-bottom:0}.swal-title:not(:last-child){margin-bottom:13px}.swal-text{font-size:16px;position:relative;float:none;line-height:normal;vertical-align:top;text-align:left;display:inline-block;margin:0;padding:0 10px;font-weight:400;color:rgba(0,0,0,.64);max-width:calc(100% - 20px);overflow-wrap:break-word;box-sizing:border-box}.swal-text:first-child{margin-top:45px}.swal-text:last-child{margin-bottom:45px}.swal-footer{text-align:right;padding-top:13px;margin-top:13px;padding:13px 16px;border-radius:inherit;border-top-left-radius:0;border-top-right-radius:0}.swal-button-container{margin:5px;display:inline-block;position:relative}.swal-button{background-color:#7cd1f9;color:#fff;border:none;box-shadow:none;border-radius:5px;font-weight:600;font-size:14px;padding:10px 24px;margin:0;cursor:pointer}.swal-button[not:disabled]:hover{background-color:#78cbf2}.swal-button:active{background-color:#70bce0}.swal-button:focus{outline:none;box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(43,114,165,.29)}.swal-button[disabled]{opacity:.5;cursor:default}.swal-button::-moz-focus-inner{border:0}.swal-button--cancel{color:#555;background-color:#efefef}.swal-button--cancel[not:disabled]:hover{background-color:#e8e8e8}.swal-button--cancel:active{background-color:#d7d7d7}.swal-button--cancel:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(116,136,150,.29)}.swal-button--danger{background-color:#e64942}.swal-button--danger[not:disabled]:hover{background-color:#df4740}.swal-button--danger:active{background-color:#cf423b}.swal-button--danger:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(165,43,43,.29)}.swal-content{padding:0 20px;margin-top:20px;font-size:medium}.swal-content:last-child{margin-bottom:20px}.swal-content__input,.swal-content__textarea{-webkit-appearance:none;background-color:#fff;border:none;font-size:14px;display:block;box-sizing:border-box;width:100%;border:1px solid rgba(0,0,0,.14);padding:10px 13px;border-radius:2px;transition:border-color .2s}.swal-content__input:focus,.swal-content__textarea:focus{outline:none;border-color:#6db8ff}.swal-content__textarea{resize:vertical}.swal-button--loading{color:transparent}.swal-button--loading~.swal-button__loader{opacity:1}.swal-button__loader{position:absolute;height:auto;width:43px;z-index:2;left:50%;top:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);text-align:center;pointer-events:none;opacity:0}.swal-button__loader div{display:inline-block;float:none;vertical-align:baseline;width:9px;height:9px;padding:0;border:none;margin:2px;opacity:.4;border-radius:7px;background-color:hsla(0,0%,100%,.9);transition:background .2s;-webkit-animation:swal-loading-anim 1s infinite;animation:swal-loading-anim 1s infinite}.swal-button__loader div:nth-child(3n+2){-webkit-animation-delay:.15s;animation-delay:.15s}.swal-button__loader div:nth-child(3n+3){-webkit-animation-delay:.3s;animation-delay:.3s}@-webkit-keyframes swal-loading-anim{0%{opacity:.4}20%{opacity:.4}50%{opacity:1}to{opacity:.4}}@keyframes swal-loading-anim{0%{opacity:.4}20%{opacity:.4}50%{opacity:1}to{opacity:.4}}.swal-overlay{position:fixed;top:0;bottom:0;left:0;right:0;text-align:center;font-size:0;overflow-y:auto;background-color:rgba(0,0,0,.4);z-index:10000;pointer-events:none;opacity:0;transition:opacity .3s}.swal-overlay:before{content:" ";display:inline-block;vertical-align:middle;height:100%}.swal-overlay--show-modal{opacity:1;pointer-events:auto}.swal-overlay--show-modal .swal-modal{opacity:1;pointer-events:auto;box-sizing:border-box;-webkit-animation:showSweetAlert .3s;animation:showSweetAlert .3s;will-change:transform}.swal-modal{width:478px;opacity:0;pointer-events:none;background-color:#fff;text-align:center;border-radius:5px;position:static;margin:20px auto;display:inline-block;vertical-align:middle;-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 50%;transform-origin:50% 50%;z-index:10001;transition:opacity .2s,-webkit-transform .3s;transition:transform .3s,opacity .2s;transition:transform .3s,opacity .2s,-webkit-transform .3s}@media (max-width:500px){.swal-modal{width:calc(100% - 20px)}}@-webkit-keyframes showSweetAlert{0%{-webkit-transform:scale(1);transform:scale(1)}1%{-webkit-transform:scale(.5);transform:scale(.5)}45%{-webkit-transform:scale(1.05);transform:scale(1.05)}80%{-webkit-transform:scale(.95);transform:scale(.95)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes showSweetAlert{0%{-webkit-transform:scale(1);transform:scale(1)}1%{-webkit-transform:scale(.5);transform:scale(.5)}45%{-webkit-transform:scale(1.05);transform:scale(1.05)}80%{-webkit-transform:scale(.95);transform:scale(.95)}to{-webkit-transform:scale(1);transform:scale(1)}}',""])},function(t,e){function n(t,e){var n=t[1]||"",r=t[3];if(!r)return n;if(e&&"function"==typeof btoa){var i=o(r);return[n].concat(r.sources.map(function(t){return"/*# sourceURL="+r.sourceRoot+t+" */"})).concat([i]).join("\n")}return[n].join("\n")}function o(t){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t))))+" */"}t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var o=n(e,t);return e[2]?"@media "+e[2]+"{"+o+"}":o}).join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var o={},r=0;r<this.length;r++){var i=this[r][0];"number"==typeof i&&(o[i]=!0)}for(r=0;r<t.length;r++){var a=t[r];"number"==typeof a[0]&&o[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]="("+a[2]+") and ("+n+")"),e.push(a))}},e}},function(t,e,n){function o(t,e){for(var n=0;n<t.length;n++){var o=t[n],r=m[o.id];if(r){r.refs++;for(var i=0;i<r.parts.length;i++)r.parts[i](o.parts[i]);for(;i<o.parts.length;i++)r.parts.push(u(o.parts[i],e))}else{for(var a=[],i=0;i<o.parts.length;i++)a.push(u(o.parts[i],e));m[o.id]={id:o.id,refs:1,parts:a}}}}function r(t,e){for(var n=[],o={},r=0;r<t.length;r++){var i=t[r],a=e.base?i[0]+e.base:i[0],s=i[1],c=i[2],l=i[3],u={css:s,media:c,sourceMap:l};o[a]?o[a].parts.push(u):n.push(o[a]={id:a,parts:[u]})}return n}function i(t,e){var n=v(t.insertInto);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");var o=w[w.length-1];if("top"===t.insertAt)o?o.nextSibling?n.insertBefore(e,o.nextSibling):n.appendChild(e):n.insertBefore(e,n.firstChild),w.push(e);else{if("bottom"!==t.insertAt)throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");n.appendChild(e)}}function a(t){if(null===t.parentNode)return!1;t.parentNode.removeChild(t);var e=w.indexOf(t);e>=0&&w.splice(e,1)}function s(t){var e=document.createElement("style");return t.attrs.type="text/css",l(e,t.attrs),i(t,e),e}function c(t){var e=document.createElement("link");return t.attrs.type="text/css",t.attrs.rel="stylesheet",l(e,t.attrs),i(t,e),e}function l(t,e){Object.keys(e).forEach(function(n){t.setAttribute(n,e[n])})}function u(t,e){var n,o,r,i;if(e.transform&&t.css){if(!(i=e.transform(t.css)))return function(){};t.css=i}if(e.singleton){var l=h++;n=g||(g=s(e)),o=f.bind(null,n,l,!1),r=f.bind(null,n,l,!0)}else t.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=c(e),o=p.bind(null,n,e),r=function(){a(n),n.href&&URL.revokeObjectURL(n.href)}):(n=s(e),o=d.bind(null,n),r=function(){a(n)});return o(t),function(e){if(e){if(e.css===t.css&&e.media===t.media&&e.sourceMap===t.sourceMap)return;o(t=e)}else r()}}function f(t,e,n,o){var r=n?"":o.css;if(t.styleSheet)t.styleSheet.cssText=x(e,r);else{var i=document.createTextNode(r),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(i,a[e]):t.appendChild(i)}}function d(t,e){var n=e.css,o=e.media;if(o&&t.setAttribute("media",o),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}function p(t,e,n){var o=n.css,r=n.sourceMap,i=void 0===e.convertToAbsoluteUrls&&r;(e.convertToAbsoluteUrls||i)&&(o=y(o)),r&&(o+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var a=new Blob([o],{type:"text/css"}),s=t.href;t.href=URL.createObjectURL(a),s&&URL.revokeObjectURL(s)}var m={},b=function(t){var e;return function(){return void 0===e&&(e=t.apply(this,arguments)),e}}(function(){return window&&document&&document.all&&!window.atob}),v=function(t){var e={};return function(n){return void 0===e[n]&&(e[n]=t.call(this,n)),e[n]}}(function(t){return document.querySelector(t)}),g=null,h=0,w=[],y=n(15);t.exports=function(t,e){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");e=e||{},e.attrs="object"==typeof e.attrs?e.attrs:{},e.singleton||(e.singleton=b()),e.insertInto||(e.insertInto="head"),e.insertAt||(e.insertAt="bottom");var n=r(t,e);return o(n,e),function(t){for(var i=[],a=0;a<n.length;a++){var s=n[a],c=m[s.id];c.refs--,i.push(c)}if(t){o(r(t,e),e)}for(var a=0;a<i.length;a++){var c=i[a];if(0===c.refs){for(var l=0;l<c.parts.length;l++)c.parts[l]();delete m[c.id]}}}};var x=function(){var t=[];return function(e,n){return t[e]=n,t.filter(Boolean).join("\n")}}()},function(t,e){t.exports=function(t){var e="undefined"!=typeof window&&window.location;if(!e)throw new Error("fixUrls requires window.location");if(!t||"string"!=typeof t)return t;var n=e.protocol+"//"+e.host,o=n+e.pathname.replace(/\/[^\/]*$/,"/");return t.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(t,e){var r=e.trim().replace(/^"(.*)"$/,function(t,e){return e}).replace(/^'(.*)'$/,function(t,e){return e});if(/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/)/i.test(r))return t;var i;return i=0===r.indexOf("//")?r:0===r.indexOf("/")?n+r:o+r.replace(/^\.\//,""),"url("+JSON.stringify(i)+")"})}},function(t,e,n){var o=n(17);"undefined"==typeof window||window.Promise||(window.Promise=o),n(21),String.prototype.includes||(String.prototype.includes=function(t,e){"use strict";return"number"!=typeof e&&(e=0),!(e+t.length>this.length)&&-1!==this.indexOf(t,e)}),Array.prototype.includes||Object.defineProperty(Array.prototype,"includes",{value:function(t,e){if(null==this)throw new TypeError('"this" is null or not defined');var n=Object(this),o=n.length>>>0;if(0===o)return!1;for(var r=0|e,i=Math.max(r>=0?r:o-Math.abs(r),0);i<o;){if(function(t,e){return t===e||"number"==typeof t&&"number"==typeof e&&isNaN(t)&&isNaN(e)}(n[i],t))return!0;i++}return!1}}),"undefined"!=typeof window&&function(t){t.forEach(function(t){t.hasOwnProperty("remove")||Object.defineProperty(t,"remove",{configurable:!0,enumerable:!0,writable:!0,value:function(){this.parentNode.removeChild(this)}})})}([Element.prototype,CharacterData.prototype,DocumentType.prototype])},function(t,e,n){(function(e){!function(n){function o(){}function r(t,e){return function(){t.apply(e,arguments)}}function i(t){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof t)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],f(t,this)}function a(t,e){for(;3===t._state;)t=t._value;if(0===t._state)return void t._deferreds.push(e);t._handled=!0,i._immediateFn(function(){var n=1===t._state?e.onFulfilled:e.onRejected;if(null===n)return void(1===t._state?s:c)(e.promise,t._value);var o;try{o=n(t._value)}catch(t){return void c(e.promise,t)}s(e.promise,o)})}function s(t,e){try{if(e===t)throw new TypeError("A promise cannot be resolved with itself.");if(e&&("object"==typeof e||"function"==typeof e)){var n=e.then;if(e instanceof i)return t._state=3,t._value=e,void l(t);if("function"==typeof n)return void f(r(n,e),t)}t._state=1,t._value=e,l(t)}catch(e){c(t,e)}}function c(t,e){t._state=2,t._value=e,l(t)}function l(t){2===t._state&&0===t._deferreds.length&&i._immediateFn(function(){t._handled||i._unhandledRejectionFn(t._value)});for(var e=0,n=t._deferreds.length;e<n;e++)a(t,t._deferreds[e]);t._deferreds=null}function u(t,e,n){this.onFulfilled="function"==typeof t?t:null,this.onRejected="function"==typeof e?e:null,this.promise=n}function f(t,e){var n=!1;try{t(function(t){n||(n=!0,s(e,t))},function(t){n||(n=!0,c(e,t))})}catch(t){if(n)return;n=!0,c(e,t)}}var d=setTimeout;i.prototype.catch=function(t){return this.then(null,t)},i.prototype.then=function(t,e){var n=new this.constructor(o);return a(this,new u(t,e,n)),n},i.all=function(t){var e=Array.prototype.slice.call(t);return new i(function(t,n){function o(i,a){try{if(a&&("object"==typeof a||"function"==typeof a)){var s=a.then;if("function"==typeof s)return void s.call(a,function(t){o(i,t)},n)}e[i]=a,0==--r&&t(e)}catch(t){n(t)}}if(0===e.length)return t([]);for(var r=e.length,i=0;i<e.length;i++)o(i,e[i])})},i.resolve=function(t){return t&&"object"==typeof t&&t.constructor===i?t:new i(function(e){e(t)})},i.reject=function(t){return new i(function(e,n){n(t)})},i.race=function(t){return new i(function(e,n){for(var o=0,r=t.length;o<r;o++)t[o].then(e,n)})},i._immediateFn="function"==typeof e&&function(t){e(t)}||function(t){d(t,0)},i._unhandledRejectionFn=function(t){"undefined"!=typeof console&&console&&console.warn("Possible Unhandled Promise Rejection:",t)},i._setImmediateFn=function(t){i._immediateFn=t},i._setUnhandledRejectionFn=function(t){i._unhandledRejectionFn=t},void 0!==t&&t.exports?t.exports=i:n.Promise||(n.Promise=i)}(this)}).call(e,n(18).setImmediate)},function(t,e,n){function o(t,e){this._id=t,this._clearFn=e}var r=Function.prototype.apply;e.setTimeout=function(){return new o(r.call(setTimeout,window,arguments),clearTimeout)},e.setInterval=function(){return new o(r.call(setInterval,window,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},o.prototype.unref=o.prototype.ref=function(){},o.prototype.close=function(){this._clearFn.call(window,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},n(19),e.setImmediate=setImmediate,e.clearImmediate=clearImmediate},function(t,e,n){(function(t,e){!function(t,n){"use strict";function o(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n<e.length;n++)e[n]=arguments[n+1];var o={callback:t,args:e};return l[c]=o,s(c),c++}function r(t){delete l[t]}function i(t){var e=t.callback,o=t.args;switch(o.length){case 0:e();break;case 1:e(o[0]);break;case 2:e(o[0],o[1]);break;case 3:e(o[0],o[1],o[2]);break;default:e.apply(n,o)}}function a(t){if(u)setTimeout(a,0,t);else{var e=l[t];if(e){u=!0;try{i(e)}finally{r(t),u=!1}}}}if(!t.setImmediate){var s,c=1,l={},u=!1,f=t.document,d=Object.getPrototypeOf&&Object.getPrototypeOf(t);d=d&&d.setTimeout?d:t,"[object process]"==={}.toString.call(t.process)?function(){s=function(t){e.nextTick(function(){a(t)})}}():function(){if(t.postMessage&&!t.importScripts){var e=!0,n=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=n,e}}()?function(){var e="setImmediate$"+Math.random()+"$",n=function(n){n.source===t&&"string"==typeof n.data&&0===n.data.indexOf(e)&&a(+n.data.slice(e.length))};t.addEventListener?t.addEventListener("message",n,!1):t.attachEvent("onmessage",n),s=function(n){t.postMessage(e+n,"*")}}():t.MessageChannel?function(){var t=new MessageChannel;t.port1.onmessage=function(t){a(t.data)},s=function(e){t.port2.postMessage(e)}}():f&&"onreadystatechange"in f.createElement("script")?function(){var t=f.documentElement;s=function(e){var n=f.createElement("script");n.onreadystatechange=function(){a(e),n.onreadystatechange=null,t.removeChild(n),n=null},t.appendChild(n)}}():function(){s=function(t){setTimeout(a,0,t)}}(),d.setImmediate=o,d.clearImmediate=r}}("undefined"==typeof self?void 0===t?this:t:self)}).call(e,n(7),n(20))},function(t,e){function n(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function r(t){if(u===setTimeout)return setTimeout(t,0);if((u===n||!u)&&setTimeout)return u=setTimeout,setTimeout(t,0);try{return u(t,0)}catch(e){try{return u.call(null,t,0)}catch(e){return u.call(this,t,0)}}}function i(t){if(f===clearTimeout)return clearTimeout(t);if((f===o||!f)&&clearTimeout)return f=clearTimeout,clearTimeout(t);try{return f(t)}catch(e){try{return f.call(null,t)}catch(e){return f.call(this,t)}}}function a(){b&&p&&(b=!1,p.length?m=p.concat(m):v=-1,m.length&&s())}function s(){if(!b){var t=r(a);b=!0;for(var e=m.length;e;){for(p=m,m=[];++v<e;)p&&p[v].run();v=-1,e=m.length}p=null,b=!1,i(t)}}function c(t,e){this.fun=t,this.array=e}function l(){}var u,f,d=t.exports={};!function(){try{u="function"==typeof setTimeout?setTimeout:n}catch(t){u=n}try{f="function"==typeof clearTimeout?clearTimeout:o}catch(t){f=o}}();var p,m=[],b=!1,v=-1;d.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];m.push(new c(t,e)),1!==m.length||b||r(s)},c.prototype.run=function(){this.fun.apply(null,this.array)},d.title="browser",d.browser=!0,d.env={},d.argv=[],d.version="",d.versions={},d.on=l,d.addListener=l,d.once=l,d.off=l,d.removeListener=l,d.removeAllListeners=l,d.emit=l,d.prependListener=l,d.prependOnceListener=l,d.listeners=function(t){return[]},d.binding=function(t){throw new Error("process.binding is not supported")},d.cwd=function(){return"/"},d.chdir=function(t){throw new Error("process.chdir is not supported")},d.umask=function(){return 0}},function(t,e,n){"use strict";n(22).polyfill()},function(t,e,n){"use strict";function o(t,e){if(void 0===t||null===t)throw new TypeError("Cannot convert first argument to object");for(var n=Object(t),o=1;o<arguments.length;o++){var r=arguments[o];if(void 0!==r&&null!==r)for(var i=Object.keys(Object(r)),a=0,s=i.length;a<s;a++){var c=i[a],l=Object.getOwnPropertyDescriptor(r,c);void 0!==l&&l.enumerable&&(n[c]=r[c])}}return n}function r(){Object.assign||Object.defineProperty(Object,"assign",{enumerable:!1,configurable:!0,writable:!0,value:o})}t.exports={assign:o,polyfill:r}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(24),r=n(6),i=n(5),a=n(36),s=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];if("undefined"!=typeof window){var n=a.getOpts.apply(void 0,t);return new Promise(function(t,e){i.default.promise={resolve:t,reject:e},o.default(n),setTimeout(function(){r.openModal()})})}};s.close=r.onAction,s.getState=r.getState,s.setActionValue=i.setActionValue,s.stopLoading=r.stopLoading,s.setDefaults=a.setDefaults,e.default=s},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(0),i=r.default.MODAL,a=n(4),s=n(34),c=n(35),l=n(1);e.init=function(t){o.getNode(i)||(document.body||l.throwErr("You can only use SweetAlert AFTER the DOM has loaded!"),s.default(),a.default()),a.initModalContent(t),c.default(t)},e.default=e.init},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.MODAL;e.modalMarkup='\n <div class="'+r+'" role="dialog" aria-modal="true"></div>',e.default=e.modalMarkup},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.OVERLAY,i='<div \n class="'+r+'"\n tabIndex="-1">\n </div>';e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.ICON;e.errorIconMarkup=function(){var t=r+"--error",e=t+"__line";return'\n <div class="'+t+'__x-mark">\n <span class="'+e+" "+e+'--left"></span>\n <span class="'+e+" "+e+'--right"></span>\n </div>\n '},e.warningIconMarkup=function(){var t=r+"--warning";return'\n <span class="'+t+'__body">\n <span class="'+t+'__dot"></span>\n </span>\n '},e.successIconMarkup=function(){var t=r+"--success";return'\n <span class="'+t+"__line "+t+'__line--long"></span>\n <span class="'+t+"__line "+t+'__line--tip"></span>\n\n <div class="'+t+'__ring"></div>\n <div class="'+t+'__hide-corners"></div>\n '}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.CONTENT;e.contentMarkup='\n <div class="'+r+'">\n\n </div>\n'},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(0),r=o.default.BUTTON_CONTAINER,i=o.default.BUTTON,a=o.default.BUTTON_LOADER;e.buttonMarkup='\n <div class="'+r+'">\n\n <button\n class="'+i+'"\n ></button>\n\n <div class="'+a+'">\n <div></div>\n <div></div>\n <div></div>\n </div>\n\n </div>\n'},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(4),r=n(2),i=n(0),a=i.default.ICON,s=i.default.ICON_CUSTOM,c=["error","warning","success","info"],l={error:r.errorIconMarkup(),warning:r.warningIconMarkup(),success:r.successIconMarkup()},u=function(t,e){var n=a+"--"+t;e.classList.add(n);var o=l[t];o&&(e.innerHTML=o)},f=function(t,e){e.classList.add(s);var n=document.createElement("img");n.src=t,e.appendChild(n)},d=function(t){if(t){var e=o.injectElIntoModal(r.iconMarkup);c.includes(t)?u(t,e):f(t,e)}};e.default=d},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(2),r=n(4),i=function(t){navigator.userAgent.includes("AppleWebKit")&&(t.style.display="none",t.offsetHeight,t.style.display="")};e.initTitle=function(t){if(t){var e=r.injectElIntoModal(o.titleMarkup);e.textContent=t,i(e)}},e.initText=function(t){if(t){var e=document.createDocumentFragment();t.split("\n").forEach(function(t,n,o){e.appendChild(document.createTextNode(t)),n<o.length-1&&e.appendChild(document.createElement("br"))});var n=r.injectElIntoModal(o.textMarkup);n.appendChild(e),i(n)}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(4),i=n(0),a=i.default.BUTTON,s=i.default.DANGER_BUTTON,c=n(3),l=n(2),u=n(6),f=n(5),d=function(t,e,n){var r=e.text,i=e.value,d=e.className,p=e.closeModal,m=o.stringToNode(l.buttonMarkup),b=m.querySelector("."+a),v=a+"--"+t;if(b.classList.add(v),d){(Array.isArray(d)?d:d.split(" ")).filter(function(t){return t.length>0}).forEach(function(t){b.classList.add(t)})}n&&t===c.CONFIRM_KEY&&b.classList.add(s),b.textContent=r;var g={};return g[t]=i,f.setActionValue(g),f.setActionOptionsFor(t,{closeModal:p}),b.addEventListener("click",function(){return u.onAction(t)}),m},p=function(t,e){var n=r.injectElIntoModal(l.footerMarkup);for(var o in t){var i=t[o],a=d(o,i,e);i.visible&&n.appendChild(a)}0===n.children.length&&n.remove()};e.default=p},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(3),r=n(4),i=n(2),a=n(5),s=n(6),c=n(0),l=c.default.CONTENT,u=function(t){t.addEventListener("input",function(t){var e=t.target,n=e.value;a.setActionValue(n)}),t.addEventListener("keyup",function(t){if("Enter"===t.key)return s.onAction(o.CONFIRM_KEY)}),setTimeout(function(){t.focus(),a.setActionValue("")},0)},f=function(t,e,n){var o=document.createElement(e),r=l+"__"+e;o.classList.add(r);for(var i in n){var a=n[i];o[i]=a}"input"===e&&u(o),t.appendChild(o)},d=function(t){if(t){var e=r.injectElIntoModal(i.contentMarkup),n=t.element,o=t.attributes;"string"==typeof n?f(e,n,o):e.appendChild(n)}};e.default=d},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(2),i=function(){var t=o.stringToNode(r.overlayMarkup);document.body.appendChild(t)};e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(5),r=n(6),i=n(1),a=n(3),s=n(0),c=s.default.MODAL,l=s.default.BUTTON,u=s.default.OVERLAY,f=function(t){t.preventDefault(),v()},d=function(t){t.preventDefault(),g()},p=function(t){if(o.default.isOpen)switch(t.key){case"Escape":return r.onAction(a.CANCEL_KEY)}},m=function(t){if(o.default.isOpen)switch(t.key){case"Tab":return f(t)}},b=function(t){if(o.default.isOpen)return"Tab"===t.key&&t.shiftKey?d(t):void 0},v=function(){var t=i.getNode(l);t&&(t.tabIndex=0,t.focus())},g=function(){var t=i.getNode(c),e=t.querySelectorAll("."+l),n=e.length-1,o=e[n];o&&o.focus()},h=function(t){t[t.length-1].addEventListener("keydown",m)},w=function(t){t[0].addEventListener("keydown",b)},y=function(){var t=i.getNode(c),e=t.querySelectorAll("."+l);e.length&&(h(e),w(e))},x=function(t){if(i.getNode(u)===t.target)return r.onAction(a.CANCEL_KEY)},_=function(t){var e=i.getNode(u);e.removeEventListener("click",x),t&&e.addEventListener("click",x)},k=function(t){o.default.timer&&clearTimeout(o.default.timer),t&&(o.default.timer=window.setTimeout(function(){return r.onAction(a.CANCEL_KEY)},t))},O=function(t){t.closeOnEsc?document.addEventListener("keyup",p):document.removeEventListener("keyup",p),t.dangerMode?v():g(),y(),_(t.closeOnClickOutside),k(t.timer)};e.default=O},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r=n(3),i=n(37),a=n(38),s={title:null,text:null,icon:null,buttons:r.defaultButtonList,content:null,className:null,closeOnClickOutside:!0,closeOnEsc:!0,dangerMode:!1,timer:null},c=Object.assign({},s);e.setDefaults=function(t){c=Object.assign({},s,t)};var l=function(t){var e=t&&t.button,n=t&&t.buttons;return void 0!==e&&void 0!==n&&o.throwErr("Cannot set both 'button' and 'buttons' options!"),void 0!==e?{confirm:e}:n},u=function(t){return o.ordinalSuffixOf(t+1)},f=function(t,e){o.throwErr(u(e)+" argument ('"+t+"') is invalid")},d=function(t,e){var n=t+1,r=e[n];o.isPlainObject(r)||void 0===r||o.throwErr("Expected "+u(n)+" argument ('"+r+"') to be a plain object")},p=function(t,e){var n=t+1,r=e[n];void 0!==r&&o.throwErr("Unexpected "+u(n)+" argument ("+r+")")},m=function(t,e,n,r){var i=typeof e,a="string"===i,s=e instanceof Element;if(a){if(0===n)return{text:e};if(1===n)return{text:e,title:r[0]};if(2===n)return d(n,r),{icon:e};f(e,n)}else{if(s&&0===n)return d(n,r),{content:e};if(o.isPlainObject(e))return p(n,r),e;f(e,n)}};e.getOpts=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var n={};t.forEach(function(e,o){var r=m(0,e,o,t);Object.assign(n,r)});var o=l(n);n.buttons=r.getButtonListOpts(o),delete n.button,n.content=i.getContentOpts(n.content);var u=Object.assign({},s,c,n);return Object.keys(u).forEach(function(t){a.DEPRECATED_OPTS[t]&&a.logDeprecation(t)}),u}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var o=n(1),r={element:"input",attributes:{placeholder:""}};e.getContentOpts=function(t){var e={};return o.isPlainObject(t)?Object.assign(e,t):t instanceof Element?{element:t}:"input"===t?r:null}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.logDeprecation=function(t){var n=e.DEPRECATED_OPTS[t],o=n.onlyRename,r=n.replacement,i=n.subOption,a=n.link,s=o?"renamed":"deprecated",c='SweetAlert warning: "'+t+'" option has been '+s+".";if(r){c+=" Please use"+(i?' "'+i+'" in ':" ")+'"'+r+'" instead.'}var l="https://sweetalert.js.org";c+=a?" More details: "+l+a:" More details: "+l+"/guides/#upgrading-from-1x",console.warn(c)},e.DEPRECATED_OPTS={type:{replacement:"icon",link:"/docs/#icon"},imageUrl:{replacement:"icon",link:"/docs/#icon"},customClass:{replacement:"className",onlyRename:!0,link:"/docs/#classname"},imageSize:{},showCancelButton:{replacement:"buttons",link:"/docs/#buttons"},showConfirmButton:{replacement:"button",link:"/docs/#button"},confirmButtonText:{replacement:"button",link:"/docs/#button"},confirmButtonColor:{},cancelButtonText:{replacement:"buttons",link:"/docs/#buttons"},closeOnConfirm:{replacement:"button",subOption:"closeModal",link:"/docs/#button"},closeOnCancel:{replacement:"buttons",subOption:"closeModal",link:"/docs/#buttons"},showLoaderOnConfirm:{replacement:"buttons"},animation:{},inputType:{replacement:"content",link:"/docs/#content"},inputValue:{replacement:"content",link:"/docs/#content"},inputPlaceholder:{replacement:"content",link:"/docs/#content"},html:{replacement:"content",link:"/docs/#content"},allowEscapeKey:{replacement:"closeOnEsc",onlyRename:!0,link:"/docs/#closeonesc"},allowClickOutside:{replacement:"closeOnClickOutside",onlyRename:!0,link:"/docs/#closeonclickoutside"}}}])});
admin/partials/about-plugin.php CHANGED
File without changes
admin/partials/enhanced-ecommerce-google-analytics-admin-display.php CHANGED
File without changes
admin/partials/general-fields.php CHANGED
File without changes
admin/partials/sidebar.php CHANGED
File without changes
css/tvc_admin-page.css ADDED
@@ -0,0 +1,548 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ To change this license header, choose License Headers in Project Properties.
3
+ To change this template file, choose Tools | Templates
4
+ and open the template in the editor.
5
+ */
6
+
7
+ #feed-spinner {
8
+ /*height: 200px;*/ /*height of the spinner gif +2px to fix IE8 issue */
9
+ left: 50%;
10
+ margin-left: -25px; /* half width of the spinner gif */
11
+ margin-top: -25px; /* half height of the spinner gif */
12
+ overflow: auto;
13
+ position: fixed;
14
+ text-align: center;
15
+ top: 40%;
16
+ /*width: 200px;*/ /* width of the spinner gif */
17
+ z-index: 1234;
18
+ }
19
+ div.field-table-row-wrapper:nth-child(2n) {
20
+ background-color: #f5f5f5;
21
+ }
22
+
23
+ #footer-left{
24
+ display: none;
25
+ }
26
+
27
+ div.field-table-row-wrapper {
28
+ display: block;
29
+ padding-bottom: 5px;
30
+ }
31
+
32
+ div.filter-wrapper {
33
+ margin-top: 5px;
34
+ }
35
+
36
+ aside.action-btn {
37
+ margin-left: 8px;
38
+ }
39
+
40
+ .small-text {
41
+ width: 15px;
42
+ }
43
+
44
+ .field-level {
45
+ background: #e5e5e5;
46
+ clear: both;
47
+ font-size: 15px;
48
+ line-height: 30px;
49
+ padding-left: 5px;
50
+ }
51
+
52
+ .value-options-condition-selector {
53
+ margin-left: 400px;
54
+ }
55
+
56
+ .value-options-query-selector {
57
+ margin-bottom: 15px;
58
+ margin-left: 37%;
59
+ width: 65%
60
+ }
61
+
62
+ select.tvc-main-input-selector {
63
+ height: 33px;
64
+ max-width: 35rem;
65
+ }
66
+
67
+ select.select-value-options {
68
+ height: 27px;
69
+ vertical-align: initial;
70
+ }
71
+
72
+ select.align-left {
73
+ float: left;
74
+ }
75
+
76
+ .condition-and-value-selector {
77
+ margin-left: 5px;
78
+ }
79
+
80
+ div.condition-wrapper {
81
+ float: left;
82
+ line-height: 26px;
83
+ margin-bottom: 15px;
84
+ width: 100%;
85
+ }
86
+
87
+ div.source-data-column {
88
+ }
89
+
90
+ div.change-source-value-wrapper {
91
+ background-color: #e2e2e2;
92
+ float: left;
93
+ margin-left: 16%;
94
+ padding: 15px;
95
+ width: 81%;
96
+ }
97
+
98
+ th#tvc-main-feed-input-label {
99
+ text-align: left;
100
+ width: 32%;
101
+ }
102
+
103
+ th#tvc-main-feed-input-label label {
104
+ display: inline-block;
105
+ }
106
+
107
+ div.edit-value-control {
108
+ float: right;
109
+ margin: -50px 10px;
110
+ }
111
+
112
+ div.add-to-feed-column {
113
+ margin-top: 4px;
114
+ }
115
+
116
+ div.tvc-header-wrapper {
117
+ padding-bottom: 10px;
118
+ }
119
+
120
+ div.tvc-field-header-wrapper {
121
+ background-color: white;
122
+ height: 30px;
123
+ margin-bottom: 10px;
124
+ }
125
+
126
+ div.field-header {
127
+ float: left;
128
+ margin-bottom: 8px;
129
+ padding: 5px;
130
+ }
131
+
132
+ .col10w {
133
+ width: 10%;
134
+ }
135
+
136
+ .col30w {
137
+ width: 30%;
138
+ }
139
+
140
+ .col20w {
141
+ width: 16%;
142
+ }
143
+
144
+ .col40w {
145
+ width: 40%;
146
+ }
147
+
148
+ .col55w {
149
+ width: 55%;
150
+ }
151
+
152
+ .col80w {
153
+ width: 82%;
154
+ }
155
+
156
+ .condition-selector {
157
+ width: 55%;
158
+ }
159
+
160
+ div#category-mapping-header {
161
+ left: 15px;
162
+ position: relative;
163
+ }
164
+
165
+ div.source-selector {
166
+ margin-right: 6%;
167
+ }
168
+
169
+ div.tvc-feedback {
170
+ background-color: #fff;
171
+ border: 1px solid #e5e5e5;
172
+ border-radius: 6px;
173
+ float: right;
174
+ padding: 6px 10px;
175
+ }
176
+
177
+ div.tvc-feedback a:link {
178
+ color: #4D8C0F;
179
+ text-decoration: none;
180
+ }
181
+
182
+ div.tvc-feedback a:visited {
183
+ color: #555;
184
+ text-decoration: none;
185
+ }
186
+
187
+ div.tvc-feedback a:hover {
188
+ color: #3C3;
189
+ text-decoration: none;
190
+ }
191
+
192
+ table.fm-category-mapping-table th {
193
+ font-weight: 700;
194
+ padding: 9px;
195
+ }
196
+
197
+ table.fm-category-mapping-table {
198
+ clear: none;
199
+ display: table;
200
+ float: right;
201
+ height: 280px;
202
+ overflow-y: scroll;
203
+ width: 59%;
204
+ }
205
+
206
+ table.tvc-feed-main-input-table {
207
+ width: 100%;
208
+ }
209
+
210
+ table.fm-category-mapping-table td#shop-category {
211
+ color: #0073aa;
212
+ cursor: auto;
213
+ font-size: 14px !important;
214
+ font-weight: 600;
215
+ padding-left: 2px;
216
+ }
217
+
218
+ table.fm-category-mapping-table th#shop-category-selector {
219
+ vertical-align: top;
220
+ width: 2.2em;
221
+ }
222
+
223
+ td.channel-tile {
224
+ border: 1px solid #ccc;
225
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.25);
226
+ -moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.25);
227
+ -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.25);
228
+ max-width: 340px;
229
+ min-width: 250px;
230
+ vertical-align: top;
231
+ }
232
+
233
+ img.channel-thumbnail {
234
+ border: none;
235
+ max-width: 300px;
236
+ width: 100%;
237
+ }
238
+
239
+ div.channel-inner {
240
+ margin: 20px;
241
+ }
242
+
243
+ div.channel-version {
244
+ background-color: #eee;
245
+ border: 1px solid #dadada;
246
+ border-radius: 3px;
247
+ -webkit-border-radius: 3px;
248
+ -moz-border-radius: 3px;
249
+ color: #424242;
250
+ display: block;
251
+ font-weight: bold;
252
+ margin-bottom: 12px;
253
+ padding: 6px;
254
+ }
255
+
256
+ div#outdated {
257
+ color: red;
258
+ }
259
+
260
+ div.product-filter-condition-wrapper {
261
+ float: right;
262
+ font-size: 16px;
263
+ margin-top: 20px;
264
+ width: 59%;
265
+ }
266
+
267
+ section.tvc-main-input-wrapper {
268
+ float: left;
269
+ margin-top: 20px;
270
+ width: 40%;
271
+ }
272
+
273
+ tr.tvc-main-feed-input-row {
274
+ height: 47px;
275
+ }
276
+
277
+ table.fm-category-mapping-table thead, table.fm-category-mapping-table tbody {
278
+ float: left;
279
+ width: 100%;
280
+ }
281
+
282
+ table.fm-category-mapping-table tbody {
283
+ height: 280px;
284
+ overflow-y: scroll;
285
+ }
286
+
287
+ table.fm-category-mapping-table tr:nth-child(2n) td, table.fm-category-mapping-table tr:nth-child(2n) th {
288
+ background-color: #fcfcfc;
289
+ }
290
+
291
+ thead.fm-category-mapping-titles th {
292
+ font-weight: 400;
293
+ }
294
+
295
+ thead.fm-category-mapping-titles tr {
296
+ width: 98% !important;
297
+ }
298
+
299
+ table.fm-category-mapping-table td:first-child {
300
+ width: 16%;
301
+ }
302
+
303
+ table.fm-category-mapping-table tr {
304
+ display: table;
305
+ text-align: left;
306
+ width: 100%;
307
+ }
308
+
309
+ table.tvc-feed-main-input-table th {
310
+ padding-right: 0;
311
+ width: 40%;
312
+ }
313
+
314
+ table.tvc-feed-main-input-table input {
315
+ width: 90%;
316
+ }
317
+
318
+ table.tvc-feed-main-input-table input#aggregator, table.tvc-feed-main-input-table input#variations {
319
+ width: 10px;
320
+ }
321
+
322
+ table.tvc-feed-main-input-table select {
323
+ width: 90%;
324
+ }
325
+
326
+ .message-field {
327
+ font-size: 16px;
328
+ margin: 20px 0 3px 0;
329
+ }
330
+
331
+ #disposable-warning-message {
332
+ margin: 20px 0 3px 0;
333
+ }
334
+
335
+ button#disposable-notice-button {
336
+ position: relative;
337
+ }
338
+
339
+ .full-screen-message-field p {
340
+ color: red;
341
+ font-size: 17px;
342
+ margin: 20px 0 3px 0;
343
+ }
344
+
345
+ span.output-field-label {
346
+ background-color: #2ea2cc;
347
+ border-radius: 3px;
348
+ color: white;
349
+ margin-top: 4px;
350
+ padding: 4px 10px;
351
+ }
352
+
353
+ div.colw {
354
+ float: left;
355
+ padding: 5px;
356
+ }
357
+
358
+ div.edit-values-row {
359
+ float: left;
360
+ margin: 20px 10px 10px 30px;
361
+ width: 80%;
362
+ }
363
+
364
+ div.end-row {
365
+ clear: both;
366
+ }
367
+
368
+ div.field-table-row {
369
+ height: 20px;
370
+ }
371
+
372
+ div.field-table-row-edit-source {
373
+ clear: both;
374
+ float: left;
375
+ }
376
+
377
+ div.field-table-row-combined-selection {
378
+ left: -181px;
379
+ line-height: 26px;
380
+ margin: 5px;
381
+ position: relative;
382
+ width: 680px;
383
+ }
384
+
385
+ div.combined-wrapper {
386
+ line-height: 26px;
387
+ width: 100%;
388
+ }
389
+
390
+ div.or-selector {
391
+ line-height: 26px;
392
+ margin-top: 30px;
393
+ width: 120%;
394
+ }
395
+
396
+ div.dotted-top-line {
397
+ border-top-style: dashed;
398
+ border-top-color: #ccc;
399
+ border-top-width: 1px;
400
+ margin-top: 20px;
401
+ }
402
+
403
+ span.combined-field-row {
404
+ clear: left;
405
+ float: left;
406
+ }
407
+
408
+ input.free-category-text-input {
409
+ width: 90%;
410
+ }
411
+
412
+ div.button-wrapper {
413
+ clear: both;
414
+ }
415
+
416
+ .button-primary {
417
+ margin-top: 15px !important;
418
+ margin-right: 5px !important;
419
+ }
420
+
421
+ a.channel-button {
422
+ margin-right: 5px !important;
423
+ }
424
+
425
+ a.tvc-btn-small {
426
+ font-size: 13px;
427
+ }
428
+
429
+ a.tvc-rating-request {
430
+ color: #FFB900;
431
+ }
432
+
433
+ input.feed-list-lower-button {
434
+ position: relative;
435
+ margin-bottom: 10px!important;
436
+ }
437
+
438
+ div.select-control {
439
+ float: left;
440
+ margin: 0;
441
+ vertical-align: top;
442
+ }
443
+
444
+ div.static-value-control {
445
+ float: left;
446
+ }
447
+ #wpcontent{
448
+ height: 100%;
449
+ /*padding-left: 0 !important;*/
450
+ }
451
+
452
+ /*prgress info*/
453
+ .tvc-progressbar-wapper{
454
+ width: 97%;
455
+ margin: 10px auto;
456
+ text-align: center;
457
+ position: relative;
458
+ background-color: #fff;
459
+ padding: 11px;
460
+ }
461
+ .tvc-progressbar {
462
+
463
+ overflow: hidden;
464
+ counter-reset: step;
465
+ }
466
+ .tvc-progressbar .tvc-steps {
467
+ list-style-type: none;
468
+ color: #D2D2D2;
469
+ text-transform: capitalize;
470
+ font-size: 16px;
471
+ width: 33.33%;
472
+ float: left;
473
+ position: relative;
474
+ display: block;
475
+ }
476
+ .tvc-progressbar .tvc-steps .tvc-steps-icon{
477
+ display: inline-block;
478
+ float: left;
479
+ }
480
+ .tvc-progressbar .tvc-steps .tvc-steps-text{
481
+ display: inline-block;
482
+
483
+ float: left;
484
+ }
485
+ .tvc-progressbar .tvc-steps:before {
486
+ border: 2px solid #007bff;
487
+ color: #007bff;
488
+ content: '';
489
+ position: absolute;
490
+ counter-increment: step;
491
+ width: 43px;
492
+ line-height: 40px;
493
+ display: block;
494
+ font-size: 18px;
495
+ float: left;
496
+ background: transparent;
497
+ border-radius: 100%;
498
+ margin: 0 auto 5px auto;
499
+ border: 2px solid #ECECEC;
500
+ }
501
+ .tvc-progressbar .tvc-steps:nth-child(1):before {
502
+ content: "\f129";
503
+ font-family: 'FontAwesome';
504
+ }
505
+ .tvc-progressbar .tvc-steps:nth-child(2):before {
506
+ content: "\f013";
507
+ font-family: 'FontAwesome';
508
+ }
509
+ .tvc-progressbar .tvc-steps:nth-child(3):before {
510
+ content: "\f00c";
511
+ font-family: 'FontAwesome';
512
+ }
513
+ /*.tvc-progressbar .tvc-steps:after {
514
+ content: '';
515
+ width: 73%;
516
+ height: 2px;
517
+ background: #ECECEC;
518
+ position: absolute;
519
+ left: -35%;
520
+ top: 25px;
521
+ z-index: 1;
522
+ }
523
+ .tvc-progressbar .tvc-steps:first-child:after {
524
+ content: none;
525
+ }*/
526
+ .tvc-progressbar .tvc-steps lable{display: block; font-size: 22px;
527
+ color: #007bff; height: 54px; text-align: left;
528
+ margin: 6px 0 0 50px;}
529
+ .tvc-progressbar .tvc-steps span{display: block; text-align: left; font-size: 16px;
530
+ line-height: 24px;}
531
+ .tvc-progressbar .tvc-steps span img{margin-left: 5px; margin-right: 8px;
532
+ height: 10px;}
533
+ @media only screen and (min-width: 1200px){
534
+ .container{
535
+ margin-left: 8% !important;
536
+ width:auto;
537
+ }
538
+ .banner{
539
+ width:100%;
540
+ }
541
+ }
542
+ @media only screen and (min-width: 1920px){
543
+ .container{
544
+ margin-left: 6% !important;
545
+ width:auto;
546
+ }
547
+
548
+ }
css/tvc_admin-page.min.css ADDED
@@ -0,0 +1,496 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .wp-core-ui select {
2
+ margin-bottom: 10px;
3
+ }
4
+
5
+ #tvc-attribute-map {
6
+ background: #fff;
7
+ padding: 20px;
8
+ border: 1px solid rgba(0, 0, 0, .125);
9
+ }
10
+
11
+ .bg-wrap {
12
+ background: #fff;
13
+ padding: 20px;
14
+ border: 1px solid rgba(0, 0, 0, .125);
15
+ overflow: auto;
16
+ }
17
+
18
+ .container {
19
+ margin-left: 8% !important;
20
+ width: auto;
21
+ }
22
+
23
+ #feed-spinner {
24
+ /*height: 50px;*/
25
+ left: 50%;
26
+ margin-left: -25px;
27
+ margin-top: -25px;
28
+ overflow: auto;
29
+ position: fixed;
30
+ text-align: center;
31
+ top: 35%;
32
+ /*width: 50px;*/
33
+ z-index: 1234
34
+ }
35
+
36
+ div.field-table-row-wrapper:nth-child(2n) {
37
+ background-color: #f5f5f5
38
+ }
39
+
40
+ div.field-table-row-wrapper {
41
+ display: block;
42
+ padding-bottom: 5px
43
+ }
44
+
45
+ div.filter-wrapper {
46
+ margin-top: 5px
47
+ }
48
+
49
+ aside.action-btn {
50
+ margin-left: 8px
51
+ }
52
+
53
+ .small-text {
54
+ width: 15px
55
+ }
56
+
57
+ .field-level {
58
+ clear: both;
59
+ font-size: 15px;
60
+ line-height: 30px;
61
+ padding-left: 5px
62
+ }
63
+
64
+ .value-options-condition-selector {
65
+ margin-left: 400px
66
+ }
67
+
68
+ .value-options-query-selector {
69
+ margin-bottom: 15px;
70
+ margin-left: 37%;
71
+ width: 65%
72
+ }
73
+
74
+ select.tvc-main-input-selector {
75
+ height: 33px;
76
+ max-width: 35rem
77
+ }
78
+
79
+ select.select-value-options {
80
+ height: 27px;
81
+ vertical-align: initial
82
+ }
83
+
84
+ select.align-left {
85
+ float: left
86
+ }
87
+
88
+ .condition-and-value-selector {
89
+ margin-left: 5px
90
+ }
91
+
92
+ div.condition-wrapper {
93
+ float: left;
94
+ line-height: 26px;
95
+ margin-bottom: 15px;
96
+ width: 100%
97
+ }
98
+
99
+ div.change-source-value-wrapper {
100
+ background-color: #e2e2e2;
101
+ float: left;
102
+ margin-left: 16%;
103
+ padding: 15px;
104
+ width: 81%
105
+ }
106
+
107
+ th#tvc-main-feed-input-label {
108
+ text-align: left;
109
+ width: 25%
110
+ }
111
+
112
+ th#tvc-main-feed-input-label label {
113
+ display: inline-block
114
+ }
115
+
116
+ div.edit-value-control {
117
+ float: right;
118
+ margin: -50px 10px
119
+ }
120
+
121
+ div.add-to-feed-column {
122
+ margin-top: 4px
123
+ }
124
+
125
+ div.tvc-header-wrapper {
126
+ padding-bottom: 10px
127
+ }
128
+
129
+ div.tvc-field-header-wrapper {
130
+ background-color: #e5e5e5;
131
+ height: 30px;
132
+ }
133
+
134
+ div#required-field-table {
135
+ border: 1px solid #e5e5e5;
136
+ border-top: none;
137
+ }
138
+
139
+ div#optional-field-table {
140
+ border: 1px solid #e5e5e5;
141
+ border-top: none;
142
+ }
143
+
144
+ div#new-optional-row {
145
+ border: 1px solid #e5e5e5;
146
+ border-top: none;
147
+ }
148
+
149
+ div.field-header {
150
+ float: left;
151
+ margin-bottom: 8px;
152
+ padding: 5px;
153
+ font-weight: 700;
154
+ }
155
+
156
+ .col10w {
157
+ width: 10%
158
+ }
159
+
160
+ .col30w {
161
+ width: 30%
162
+ }
163
+
164
+ .col20w {
165
+ width: 16%
166
+ }
167
+
168
+ .col40w {
169
+ width: 40%
170
+ }
171
+
172
+ .col55w {
173
+ width: 55%
174
+ }
175
+
176
+ .col80w {
177
+ width: 82%
178
+ }
179
+
180
+ .condition-selector {
181
+ width: 55%
182
+ }
183
+
184
+ div#category-mapping-header {
185
+ left: 15px;
186
+ position: relative
187
+ }
188
+
189
+ div.source-selector {
190
+ margin-right: 6%
191
+ }
192
+
193
+ div.tvc-feedback {
194
+ background-color: #fff;
195
+ border: 1px solid #e5e5e5;
196
+ border-radius: 6px;
197
+ float: right;
198
+ padding: 6px 10px
199
+ }
200
+
201
+ div.tvc-feedback a:link {
202
+ color: #4d8c0f;
203
+ text-decoration: none
204
+ }
205
+
206
+ div.tvc-feedback a:visited {
207
+ color: #555;
208
+ text-decoration: none
209
+ }
210
+
211
+ div.tvc-feedback a:hover {
212
+ color: #3C3;
213
+ text-decoration: none
214
+ }
215
+
216
+ table.fm-category-mapping-table th {
217
+ font-weight: 700;
218
+ padding: 9px
219
+ }
220
+
221
+ table.fm-category-mapping-table {
222
+ clear: none;
223
+ display: table;
224
+ float: right;
225
+ height: 280px;
226
+ overflow-y: scroll;
227
+ width: 50%
228
+ }
229
+
230
+ table.tvc-feed-main-input-table {
231
+ width: 100%
232
+ }
233
+
234
+ table.fm-category-mapping-table td#shop-category {
235
+ color: #0073aa;
236
+ cursor: auto;
237
+ font-size: 14px !important;
238
+ font-weight: 600;
239
+ padding-left: 2px
240
+ }
241
+
242
+ table.fm-category-mapping-table th#shop-category-selector {
243
+ vertical-align: top;
244
+ width: 2.2em
245
+ }
246
+
247
+ td.channel-tile {
248
+ border: 1px solid #ccc;
249
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.25);
250
+ -moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.25);
251
+ -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.25);
252
+ max-width: 340px;
253
+ min-width: 250px;
254
+ vertical-align: top
255
+ }
256
+
257
+ img.channel-thumbnail {
258
+ border: 0;
259
+ max-width: 300px;
260
+ width: 100%
261
+ }
262
+
263
+ div.channel-inner {
264
+ margin: 20px
265
+ }
266
+
267
+ div.channel-version {
268
+ background-color: #eee;
269
+ border: 1px solid #dadada;
270
+ border-radius: 3px;
271
+ -webkit-border-radius: 3px;
272
+ -moz-border-radius: 3px;
273
+ color: #424242;
274
+ display: block;
275
+ font-weight: bold;
276
+ margin-bottom: 12px;
277
+ padding: 6px
278
+ }
279
+
280
+ div#outdated {
281
+ color: red
282
+ }
283
+
284
+ div.product-filter-condition-wrapper {
285
+ float: right;
286
+ font-size: 16px;
287
+ margin-top: 20px;
288
+ width: 59%
289
+ }
290
+
291
+ section.tvc-main-input-wrapper {
292
+ float: left;
293
+ margin-top: 20px;
294
+ width: 50%
295
+ }
296
+
297
+ tr.tvc-main-feed-input-row {
298
+ height: 47px
299
+ }
300
+
301
+ table.fm-category-mapping-table thead {
302
+ background: #e5e5e5;
303
+ }
304
+
305
+ table.fm-category-mapping-table thead, table.fm-category-mapping-table tbody {
306
+ float: left;
307
+ width: 100%
308
+ }
309
+
310
+ table.fm-category-mapping-table tbody {
311
+ height: 280px;
312
+ overflow-y: scroll
313
+ }
314
+
315
+ table.fm-category-mapping-table tr:nth-child(2n) td, table.fm-category-mapping-table tr:nth-child(2n) th {
316
+ background-color: #fcfcfc
317
+ }
318
+
319
+ thead.fm-category-mapping-titles th {
320
+ font-weight: 400
321
+ }
322
+
323
+ thead.fm-category-mapping-titles tr {
324
+ width: 98% !important
325
+ }
326
+
327
+ table.fm-category-mapping-table td:first-child {
328
+ width: 16%
329
+ }
330
+
331
+ table.fm-category-mapping-table tr {
332
+ display: table;
333
+ text-align: left;
334
+ width: 100%
335
+ }
336
+
337
+ table.tvc-feed-main-input-table th {
338
+ padding-right: 0;
339
+ width: 40%
340
+ }
341
+
342
+ table.tvc-feed-main-input-table input {
343
+ width: 90%
344
+ }
345
+
346
+ table.tvc-feed-main-input-table input#aggregator, table.tvc-feed-main-input-table input#variations {
347
+ width: 10px
348
+ }
349
+
350
+ table.tvc-feed-main-input-table select {
351
+ width: 90%;
352
+ margin-bottom: 10px;
353
+ }
354
+
355
+ .message-field {
356
+ font-size: 16px;
357
+ margin: 20px 0 3px 0
358
+ }
359
+
360
+ #disposable-warning-message {
361
+ margin: 20px 0 3px 0
362
+ }
363
+
364
+ button#disposable-notice-button {
365
+ position: relative
366
+ }
367
+
368
+ .full-screen-message-field p {
369
+ color: red;
370
+ font-size: 17px;
371
+ margin: 20px 0 3px 0
372
+ }
373
+
374
+ span.output-field-label {
375
+ border-radius: 3px;
376
+ color: #000;
377
+ margin-top: 4px;
378
+ padding: 4px 10px
379
+ }
380
+
381
+ div.colw {
382
+ float: left;
383
+ padding: 5px
384
+ }
385
+
386
+ div.edit-values-row {
387
+ float: left;
388
+ margin: 20px 10px 10px 30px;
389
+ width: 80%
390
+ }
391
+
392
+ div.end-row {
393
+ clear: both
394
+ }
395
+
396
+ div.field-table-row {
397
+ height: 20px
398
+ }
399
+
400
+ div.field-table-row-edit-source {
401
+ clear: both;
402
+ float: left
403
+ }
404
+
405
+ div.field-table-row-combined-selection {
406
+ left: -181px;
407
+ line-height: 26px;
408
+ margin: 5px;
409
+ position: relative;
410
+ width: 680px
411
+ }
412
+
413
+ div.combined-wrapper {
414
+ line-height: 26px;
415
+ width: 100%
416
+ }
417
+
418
+ div.or-selector {
419
+ line-height: 26px;
420
+ margin-top: 30px;
421
+ width: 120%
422
+ }
423
+
424
+ div.dotted-top-line {
425
+ border-top-style: dashed;
426
+ border-top-color: #ccc;
427
+ border-top-width: 1px;
428
+ margin-top: 20px
429
+ }
430
+
431
+ span.combined-field-row {
432
+ clear: left;
433
+ float: left
434
+ }
435
+
436
+ input.free-category-text-input {
437
+ width: 90%
438
+ }
439
+
440
+ div.button-wrapper {
441
+ clear: both
442
+ }
443
+
444
+ .button-primary {
445
+ margin-top: 25px !important;
446
+ margin-right: 5px !important
447
+ }
448
+
449
+ a.channel-button {
450
+ margin-right: 5px !important
451
+ }
452
+
453
+ a.tvc-btn-small {
454
+ font-size: 13px
455
+ }
456
+
457
+ a.tvc-rating-request {
458
+ color: #ffb900
459
+ }
460
+
461
+ input.feed-list-lower-button {
462
+ position: relative;
463
+ margin-bottom: 10px !important
464
+ }
465
+
466
+ div.select-control {
467
+ float: left;
468
+ margin: 0;
469
+ vertical-align: top
470
+ }
471
+
472
+ div.static-value-control {
473
+ float: left
474
+ }
475
+
476
+ #wpcontent{
477
+ height: 100%;
478
+ /*padding-left: 0 !important;*/
479
+ }
480
+
481
+ @media only screen and (min-width: 1200px){
482
+ .container{
483
+ margin-left: 8% !important;
484
+ width:auto;
485
+ }
486
+ .banner{
487
+ width:100%;
488
+ }
489
+ }
490
+ @media only screen and (min-width: 1920px){
491
+ .container{
492
+ margin-left: 6% !important;
493
+ width:auto;
494
+ }
495
+
496
+ }
css/tvc_setting-page.css ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .container{
2
+ margin-left: 8% !important;
3
+ width:auto;
4
+ }
5
+ .banner{
6
+ width:100%;
7
+ }
8
+
9
+ @media only screen and (min-width: 1920px){
10
+ .container{
11
+ margin-left: 6% !important;
12
+ width:auto;
13
+ }
14
+ }
15
+ #feed-spinner {
16
+ /*height: 200px;*/ /*height of the spinner gif +2px to fix IE8 issue */
17
+ left: 50%;
18
+ margin-left: -25px; /* half width of the spinner gif */
19
+ margin-top: -25px; /* half height of the spinner gif */
20
+ overflow: auto;
21
+ position: fixed;
22
+ text-align: center;
23
+ top: 40%;
24
+ /*width: 200px;*/ /* width of the spinner gif */
25
+ z-index: 1234;
26
+ }
27
+ #footer-left{
28
+ display: none;
29
+ }
30
+
31
+ #tvc-backups th {
32
+ padding: 15px 10px;
33
+ }
34
+
35
+ #tvc-backups .tvc-backup-filename {
36
+ width: 180px;
37
+ }
38
+
39
+ #tvc-backups .tvc-backup-file_date {
40
+ width: 100px;
41
+ }
42
+
43
+ table.smallfat {
44
+ background: #fff;
45
+ border: 1px solid #e5e5e5;
46
+ box-shadow: 0 1px 1px rgba(0, 0, 0, .04);
47
+ border-spacing: 0;
48
+ clear: both;
49
+ margin: 0;
50
+ }
51
+
52
+ #tvc_third_party_attr_keys {
53
+ width: 800px;
54
+ }
55
+
56
+ #tvc_notice_mailaddress {
57
+ width: 300px;
58
+ }
css/tvc_setting-page.min.css ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #feed-spinner {
2
+ /*height: 50px;*/
3
+ left: 50%;
4
+ margin-left: -25px;
5
+ margin-top: -25px;
6
+ overflow: auto;
7
+ position: fixed;
8
+ text-align: center;
9
+ top: 35%;
10
+ /*width: 50px;*/
11
+ z-index: 1234
12
+ }
13
+
14
+ #tvc-backups th {
15
+ padding: 15px 10px
16
+ }
17
+
18
+ #tvc-backups .tvc-backup-filename {
19
+ width: 180px
20
+ }
21
+
22
+ #tvc-backups .tvc-backup-file_date {
23
+ width: 100px
24
+ }
25
+
26
+ table.smallfat {
27
+ background: #fff;
28
+ border: 1px solid #e5e5e5;
29
+ box-shadow: 0 1px 1px rgba(0, 0, 0, .04);
30
+ border-spacing: 0;
31
+ clear: both;
32
+ margin: 0
33
+ }
34
+
35
+ #tvc_third_party_attr_keys {
36
+ width: 800px
37
+ }
38
+
39
+ #tvc_notice_mailaddress {
40
+ width: 300px
41
+ }
enhanced-ecommerce-google-analytics.php CHANGED
File without changes
google_ads_php.ini ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [GOOGLE_ADS]
2
+ name = "Google Ads"
3
+ developerToken = "R0IEth5fQ1Ac59qB2Wf8Aw"
4
+ loginCustomerId = "9704619790"
5
+
6
+ [LOGGING]
7
+ logFilePath = ""
8
+
9
+ [OAUTH2]
10
+ clientId = "854883711805-4bm7ik0lq2jcdvdk0qu8sgtd4jdc1k7o.apps.googleusercontent.com"
11
+ clientSecret = "mwgFJ25-FMPEyeNtI-TIMJIZ"
12
+ refreshToken = "1//0glkEtsa8PNuwCgYIARAAGBASNwF-L9IrBZQjIINEw2MMO_M_mRdKwoNCBwJtHXtahh5Bj4oQR01ErmhaBB2TqE68rkP8JaELISU"
13
+ developerToken = "R0IEth5fQ1Ac59qB2Wf8Aw"
14
+
images/ajax-loader.gif ADDED
Binary file
includes/application/class-feed-master.php ADDED
@@ -0,0 +1,676 @@