Changeset 3352650
- Timestamp:
- 08/29/2025 01:53:44 PM (7 months ago)
- Location:
- groundhogg
- Files:
-
- 8 added
- 26 edited
- 1 copied
-
tags/4.2.5.1 (copied) (copied from groundhogg/trunk)
-
tags/4.2.5.1/README.txt (modified) (2 diffs)
-
tags/4.2.5.1/assets/css/admin/elements.css (modified) (1 diff)
-
tags/4.2.5.1/assets/css/admin/elements.css.map (modified) (1 diff)
-
tags/4.2.5.1/assets/css/admin/elements.scss (modified) (1 diff)
-
tags/4.2.5.1/assets/js/admin/admin.js (modified) (2 diffs)
-
tags/4.2.5.1/assets/js/admin/admin.min.js (modified) (1 diff)
-
tags/4.2.5.1/assets/js/admin/components/properties.js (modified) (1 diff)
-
tags/4.2.5.1/assets/js/admin/components/properties.min.js (modified) (1 diff)
-
tags/4.2.5.1/assets/js/admin/emails/email-block-editor.js (modified) (2 diffs)
-
tags/4.2.5.1/assets/js/admin/emails/email-block-editor.min.js (modified) (2 diffs)
-
tags/4.2.5.1/groundhogg.php (modified) (2 diffs)
-
tags/4.2.5.1/includes/ai (added)
-
tags/4.2.5.1/includes/ai/ai-engine.php (added)
-
tags/4.2.5.1/includes/ai/ai-generator.php (added)
-
tags/4.2.5.1/includes/ai/ai-handler.php (added)
-
tags/4.2.5.1/includes/functions.php (modified) (3 diffs)
-
tags/4.2.5.1/includes/steps/funnel-step.php (modified) (2 diffs)
-
trunk/README.txt (modified) (2 diffs)
-
trunk/assets/css/admin/elements.css (modified) (1 diff)
-
trunk/assets/css/admin/elements.css.map (modified) (1 diff)
-
trunk/assets/css/admin/elements.scss (modified) (1 diff)
-
trunk/assets/js/admin/admin.js (modified) (2 diffs)
-
trunk/assets/js/admin/admin.min.js (modified) (1 diff)
-
trunk/assets/js/admin/components/properties.js (modified) (1 diff)
-
trunk/assets/js/admin/components/properties.min.js (modified) (1 diff)
-
trunk/assets/js/admin/emails/email-block-editor.js (modified) (2 diffs)
-
trunk/assets/js/admin/emails/email-block-editor.min.js (modified) (2 diffs)
-
trunk/groundhogg.php (modified) (2 diffs)
-
trunk/includes/ai (added)
-
trunk/includes/ai/ai-engine.php (added)
-
trunk/includes/ai/ai-generator.php (added)
-
trunk/includes/ai/ai-handler.php (added)
-
trunk/includes/functions.php (modified) (3 diffs)
-
trunk/includes/steps/funnel-step.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
groundhogg/tags/4.2.5.1/README.txt
r3347592 r3352650 7 7 Tested up to: 6.8 8 8 Requires PHP: 7.1 9 Stable tag: 4.2. 4.29 Stable tag: 4.2.5.1 10 10 License: GPLv3 11 11 License URI: https://www.gnu.org/licenses/gpl.md … … 375 375 376 376 == Changelog == 377 378 = 4.2.5.1 (2025-08-21) = 379 * FIXED Flow icons not loading correctly when using custom `wp-content` directory. 377 380 378 381 = 4.2.5 (2025-08-20) = -
groundhogg/tags/4.2.5.1/assets/css/admin/elements.css
r3269144 r3352650 38 38 } 39 39 } 40 h3.no-margin-top { 41 margin-top: 0; 40 .no-margin-top { 41 margin-top: 0 !important; 42 } 43 44 .no-margin-bottom { 45 margin-bottom: 0 !important; 42 46 } 43 47 -
groundhogg/tags/4.2.5.1/assets/css/admin/elements.css.map
r3269144 r3352650 1 {"version":3,"sourceRoot":"","sources":["elements.scss"],"names":[],"mappings":"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ACE;;AAMF;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AAMN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAIA;EACE;EACA;;AAMR;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;;AAGF;EACE;EACA,YA5yDc;EA6yDd;EACA;EACA;EACA;;AAGF;EACE;;AAIF;EACE;EACA;EACA;;AAGF;EACE;EACA;EAEA;;AAGF;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;;AAGF;EACE;;AAGF;EACE;;AAIA;EACE;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAIJ;EACE;;AAEA;EACE;;AAKN;EACE;EACA;EACA;EACA;;AAGF;EAOE;EAEA;EACA;EACA;;AAKA;EACE;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;;;AAMJ;EACE;EACA;;;AAIJ;EACE;;;AAMF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;AAAA;EAEE;EACA;;AAEA;AAAA;AAAA;AAAA;EAEE;EACA;;AAEA;AAAA;AAAA;AAAA;EACE;;AAIJ;AAAA;EAgBE;EACA;EACA;;AAfE;AAAA;EACE;EACA;EACA;;AAIJ;AAAA;EACE;EACA;EACA;;AAQJ;AAAA;EACE;EACA;;AAKE;AAAA;EACE;EACA;EACA;;AAKF;AAAA;EACE;EACA;;;AAMR;AAAA;EAEE,OA1/DU;;;AA8/DV;EACE;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EAEE;;AAEA;EACE;;AAEA;AAAA;EAEE;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;AAAA;EAEE;EACA;;AAGF;EAEE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAKF;AAAA;AAAA;EAGE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAKF;EACE;;AAKF;AAAA;EAEE;;AAKN;EACE;;AAGA;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;;AAKN;EACE;;;AAGF;EAEE;EACA;EACA;EACA;EACA;EACA;EACA,YAznEW;EA0nEX;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE,kBArqEY;EAsqEZ;;;AAKN;EAEE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EAEE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;EACE,OAnuEO;;AAsuET;EACE;EACA,kBAxuEO;EAyuEP,cAzuEO;EA0uEP;;;AAOR;EACE;EACA;EACA;EACA;;AAEA;EAEE;EACA;EAUA;EACA;EACA;EACA;;AAXA;EACE,kBAhvEW;;AAmvEb;EACE;;AASJ;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OA5wEW;;AA8wEX;AAAA;EACE,YAvwES;EAwwET;;AAGF;AAAA;EACE,YAlwEY;EAmwEZ;;AAGF;AAAA;EACE;EACA;EACA;;AAEA;AAAA;EACE,kBAxxES;;;AA+xEjB;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;;AAIJ;EACE;;AAGF;AAAA;EAEE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;EACE;;;AAQN;EACE;EACA;EACA;EACA;;;AAKA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;;AAIJ;EACE;EAEA,kBAl2EgB;EAm2EhB;EACA;EACA;;AAKA;EAGE,kBAj2EW;;AAm2EX;EACE,kBAt2EM;;AA02EV;EACE;EAKA;EACA,kBA/3EW;EAg4EX;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE,cAp3EW;;AAs3EX;EACE,kBAv3ES;;AA63EX;EAEE;;AAEA;EACE;EACA;EACA;;;AAMR;AAAA;EAGE;EACA;;AAGE;AAAA;EACE;;AAIJ;AAAA;EACE;EACA;EACA;EACA,kBA36EW;EA46EX;EACA,YAz5ES;EA05ET;EACA;EACA;EACA;EACA;EAEA;;AAEA;AAAA;EACE;EACA;EACA;;AAEA;AAAA;EACE;;AAIJ;AAAA;EACE;EACA;EAEA;;AAEA;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;;AAIJ;AAAA;EACE;EACA;EAEA;;AAEA;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;;AAIJ;AAAA;EACE;EACA;EACA;;AAEA;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIJ;AAAA;EACE;EACA;EACA;;AAEA;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIJ;AAAA;EACE;EACA;;AAEA;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAMR;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;;;AAIJ;EACE;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;;AAOR;EAEE;EACA;EACA;;AAEA;EACE;EACA;;AAIA;EACE,OAtlFa;;AA2lFf;EACE,OAzlFS;;AA6lFb;EACE;EACA;;;AAIJ;EACE;EACA;;;AAGF;EACE;;AAGE;EACE;;;AAMN;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAIA;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;;AAOJ;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA,qBACA;EACA;;AAIE;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAKN;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA,kBAxvFS;EAyvFT,cA1vFS;EA2vFT;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAKJ;EACE;;AAGF;EACE;;;AAMJ;AACA;EACE;EACA;EACA;;;AAIA;EAEE;EACA;EACA;;AAEA;EACE,cA3zFS;EA4zFT,YAzzFY;;AA6zFhB;AAAA;EAEE;;;AAKF;EACE;;;AAIJ;EACE;;AAEA;EACE;EAEA;EACA;EACA;;;AAKJ;AACA;EACE;AAAa;EACb;EACA;AAA2C;;;AAG7C;AACA;EACE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;AAIJ;EACE;EACA;EACA;;;AAGF;EACE;IACE;;;AAIJ;EACE;IACE;;;AAIJ;EACE;IACE;IACA;;;AAIJ;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA,kBA34Fa;;AA64Fb;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAMA;EACE,kBA55FU;;AAk6FhB;EACE;EACA;;;AAIJ;EACE;EACA,qBACE;EAEF;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;;AAKF;EACE;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE,OAl+FS;EAm+FT,YAr+FW;;;AA2+FjB;EAEE;EACA;EAWA;EACA;EACA;;AAXA;EACE;EACA;;AAEA;EACE;;AAQJ;EACE;;AAGF;EACE;EAmBA;EACA;EACA;EACA;;AAnBE;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAUN;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA,YAniGY;EAoiGZ;EACA;EACA;EACA;EACA;;AAEA;EACE,YAviGO;EAwiGP;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE,OA3jGK;EA4jGL;;AAMR;EACE;EACA;EACA;;AAGF;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;EACA;EACA;EAIA;;AASF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE,OAnnGO;EAonGP,YAtnGS;;;AA+nGf;EACE;EACA;EACA;EACA;EACA,kBA7nGc;EA8nGd;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE,kBAzoGW;EA0oGX;;AAKF;EACE;;AAGF;EACE;;;AAMJ;EACE;EACA,OAlqGW;EAmqGX;EACA;;AAEA;EACE,YAlqGY;;AAsqGhB;EACE;EACA;;;AAIJ;EACE;IACE,kBA7qGa;;EA+qGf;IACE,kBAnrGc;;;AAurGlB;EACE;;;AAGF;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE,OA5tGc;;AA+tGhB;EACE;;AAGF;EACE;EACA;EACA;;AAEA;EAKE;EACA;EACA;;AANA;EACE;;AASN;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EAEE;EAEA;EACA;EACA;;AAIA;EACE;;;AAKN;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;;AAOF;EACE,kBAryGa;;;AA0yGf;EACE;;;AAKF;EACE;EACA;;AAIA;EACE;EACA;;;AAKN;EACE;;AAEA;EACE;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE,kBA10GY;;;AA+0GlB;EAEE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGA;EACE;;AAIA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAGF;AAAA;EAEE","file":"elements.css"}1 {"version":3,"sourceRoot":"","sources":["elements.scss"],"names":[],"mappings":"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;EACA;EACA;;AAGF;EACE;;AAKJ;EACE;;AAEA;EACE;;AAIJ;EACE,YAxwBW;;AA2wBb;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA,OA9yBU;;AAizBZ;EACE,OArzBO;;AAwzBT;EACE;;AAGF;EACE;;AAIA;EACE;;AAKF;EACE;;AAGF;EACE;;AAKN;EAEE;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;;AAQJ;EACE;EACA;;AAKF;EACE;;AAGF;EACE;EACA;;;AAMJ;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;;;AAQR;EACE,cA74BQ;;AA+4BR;EACE,cAh5BM;EAi5BN;EACA;;;AAMJ;EACE;;AAIA;EACE;;;AAKN;EACE;EACA;EACA,YAz5BW;EA05BX;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA,kBA37BW;EA47BX;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EAEA;EACA,kBAz9BW;;AA49Bb;EACE;EACA;EACA;;AAKA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAEE;EACA;;AAGF;EACE;;AAGF;EACE,OAr/BU;;;AA2/BlB;EACE;EACA;EACA;;;AAGF;EACE,YAvgCe;EAwgCf;EACA;EACA;EACA,OAzgCa;;AA2gCb;EACE;;AACA;EACE,kBA1gCY;;AA8gChB;EAEE,YAxgCc;EAygCd;;AAGF;EAEE,YA1gCkB;EA2gClB;;AAGF;EAEE,YAriCc;;AAwiChB;EAEE,YAnhCc;EAohCd;;AAGF;EAEE,YAjiCW;EAkiCX;;AAGF;EACE,kBAhjCW;EAijCX;;AAGF;EACE,kBA1iCe;EA2iCf;;AAGF;EACE,kBAzjCc;EA0jCd;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAEA;EACE;;;AAWJ;AAAA;AAAA;AAAA;AAAA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ACA,kBAxoDW;;AA2oDb;EACE;EACA,kBAvpDQ;;AA0pDV;EACE;EACA,kBArpDe;;AAwpDjB;EACE;EACA,kBAxqDW;;;AA4qDf;EACE;;;AAKA;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;;AAIJ;EACE;;AAIA;EACE;;AAIJ;EACE;;AAEA;EACE;;AAMF;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AAMN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAIA;EACE;EACA;;AAMR;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;;AAGF;EACE;EACA,YA9yDc;EA+yDd;EACA;EACA;EACA;;AAGF;EACE;;AAIF;EACE;EACA;EACA;;AAGF;EACE;EACA;EAEA;;AAGF;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;;AAGF;EACE;;AAGF;EACE;;AAIA;EACE;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAIJ;EACE;;AAEA;EACE;;AAKN;EACE;EACA;EACA;EACA;;AAGF;EAOE;EAEA;EACA;EACA;;AAKA;EACE;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;;;AAMJ;EACE;EACA;;;AAIJ;EACE;;;AAMF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;AAAA;EAEE;EACA;;AAEA;AAAA;AAAA;AAAA;EAEE;EACA;;AAEA;AAAA;AAAA;AAAA;EACE;;AAIJ;AAAA;EAgBE;EACA;EACA;;AAfE;AAAA;EACE;EACA;EACA;;AAIJ;AAAA;EACE;EACA;EACA;;AAQJ;AAAA;EACE;EACA;;AAKE;AAAA;EACE;EACA;EACA;;AAKF;AAAA;EACE;EACA;;;AAMR;AAAA;EAEE,OA5/DU;;;AAggEV;EACE;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EAEE;;AAEA;EACE;;AAEA;AAAA;EAEE;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;AAAA;EAEE;EACA;;AAGF;EAEE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAKF;AAAA;AAAA;EAGE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAKF;EACE;;AAKF;AAAA;EAEE;;AAKN;EACE;;AAGA;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;;AAKN;EACE;;;AAGF;EAEE;EACA;EACA;EACA;EACA;EACA;EACA,YA3nEW;EA4nEX;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE,kBAvqEY;EAwqEZ;;;AAKN;EAEE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EAEE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;EACE,OAruEO;;AAwuET;EACE;EACA,kBA1uEO;EA2uEP,cA3uEO;EA4uEP;;;AAOR;EACE;EACA;EACA;EACA;;AAEA;EAEE;EACA;EAUA;EACA;EACA;EACA;;AAXA;EACE,kBAlvEW;;AAqvEb;EACE;;AASJ;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OA9wEW;;AAgxEX;AAAA;EACE,YAzwES;EA0wET;;AAGF;AAAA;EACE,YApwEY;EAqwEZ;;AAGF;AAAA;EACE;EACA;EACA;;AAEA;AAAA;EACE,kBA1xES;;;AAiyEjB;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;;AAIJ;EACE;;AAGF;AAAA;EAEE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;EACE;;;AAQN;EACE;EACA;EACA;EACA;;;AAKA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;;AAIJ;EACE;EAEA,kBAp2EgB;EAq2EhB;EACA;EACA;;AAKA;EAGE,kBAn2EW;;AAq2EX;EACE,kBAx2EM;;AA42EV;EACE;EAKA;EACA,kBAj4EW;EAk4EX;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE,cAt3EW;;AAw3EX;EACE,kBAz3ES;;AA+3EX;EAEE;;AAEA;EACE;EACA;EACA;;;AAMR;AAAA;EAGE;EACA;;AAGE;AAAA;EACE;;AAIJ;AAAA;EACE;EACA;EACA;EACA,kBA76EW;EA86EX;EACA,YA35ES;EA45ET;EACA;EACA;EACA;EACA;EAEA;;AAEA;AAAA;EACE;EACA;EACA;;AAEA;AAAA;EACE;;AAIJ;AAAA;EACE;EACA;EAEA;;AAEA;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;;AAIJ;AAAA;EACE;EACA;EAEA;;AAEA;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;;AAIJ;AAAA;EACE;EACA;EACA;;AAEA;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIJ;AAAA;EACE;EACA;EACA;;AAEA;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIJ;AAAA;EACE;EACA;;AAEA;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAMR;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;;;AAIJ;EACE;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;;AAOR;EAEE;EACA;EACA;;AAEA;EACE;EACA;;AAIA;EACE,OAxlFa;;AA6lFf;EACE,OA3lFS;;AA+lFb;EACE;EACA;;;AAIJ;EACE;EACA;;;AAGF;EACE;;AAGE;EACE;;;AAMN;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAIA;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;;AAOJ;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA,qBACA;EACA;;AAIE;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAKN;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA,kBA1vFS;EA2vFT,cA5vFS;EA6vFT;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAKJ;EACE;;AAGF;EACE;;;AAMJ;AACA;EACE;EACA;EACA;;;AAIA;EAEE;EACA;EACA;;AAEA;EACE,cA7zFS;EA8zFT,YA3zFY;;AA+zFhB;AAAA;EAEE;;;AAKF;EACE;;;AAIJ;EACE;;AAEA;EACE;EAEA;EACA;EACA;;;AAKJ;AACA;EACE;AAAa;EACb;EACA;AAA2C;;;AAG7C;AACA;EACE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;AAIJ;EACE;EACA;EACA;;;AAGF;EACE;IACE;;;AAIJ;EACE;IACE;;;AAIJ;EACE;IACE;IACA;;;AAIJ;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA,kBA74Fa;;AA+4Fb;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAMA;EACE,kBA95FU;;AAo6FhB;EACE;EACA;;;AAIJ;EACE;EACA,qBACE;EAEF;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;;AAKF;EACE;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE,OAp+FS;EAq+FT,YAv+FW;;;AA6+FjB;EAEE;EACA;EAWA;EACA;EACA;;AAXA;EACE;EACA;;AAEA;EACE;;AAQJ;EACE;;AAGF;EACE;EAmBA;EACA;EACA;EACA;;AAnBE;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAUN;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA,YAriGY;EAsiGZ;EACA;EACA;EACA;EACA;;AAEA;EACE,YAziGO;EA0iGP;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE,OA7jGK;EA8jGL;;AAMR;EACE;EACA;EACA;;AAGF;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;EACA;EACA;EAIA;;AASF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE,OArnGO;EAsnGP,YAxnGS;;;AAioGf;EACE;EACA;EACA;EACA;EACA,kBA/nGc;EAgoGd;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE,kBA3oGW;EA4oGX;;AAKF;EACE;;AAGF;EACE;;;AAMJ;EACE;EACA,OApqGW;EAqqGX;EACA;;AAEA;EACE,YApqGY;;AAwqGhB;EACE;EACA;;;AAIJ;EACE;IACE,kBA/qGa;;EAirGf;IACE,kBArrGc;;;AAyrGlB;EACE;;;AAGF;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE,OA9tGc;;AAiuGhB;EACE;;AAGF;EACE;EACA;EACA;;AAEA;EAKE;EACA;EACA;;AANA;EACE;;AASN;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EAEE;EAEA;EACA;EACA;;AAIA;EACE;;;AAKN;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;;AAOF;EACE,kBAvyGa;;;AA4yGf;EACE;;;AAKF;EACE;EACA;;AAIA;EACE;EACA;;;AAKN;EACE;;AAEA;EACE;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE,kBA50GY;;;AAi1GlB;EAEE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGA;EACE;;AAIA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAGF;AAAA;EAEE","file":"elements.css"} -
groundhogg/tags/4.2.5.1/assets/css/admin/elements.scss
r3269144 r3352650 80 80 } 81 81 82 h3 { 83 &.no-margin-top { 84 margin-top: 0; 85 } 82 .no-margin-top { 83 margin-top: 0 !important; 84 } 85 86 .no-margin-bottom { 87 margin-bottom: 0 !important; 86 88 } 87 89 -
groundhogg/tags/4.2.5.1/assets/js/admin/admin.js
r3275088 r3352650 721 721 } 722 722 723 function arrayToggle(arr, value) { 724 const index = arr.indexOf(value); 725 if (index === -1) { 726 arr.push(value); // not in array → add 727 } else { 728 arr.splice(index, 1); // in array → remove 729 } 730 return arr; 731 } 732 723 733 const dismissNotice = (id) => Groundhogg.api.ajax({ 724 734 action: 'gh_dismiss_notice', … … 735 745 gh.functions.maybeCall = maybeCall 736 746 gh.functions.dismissNotice = dismissNotice 747 gh.functions.arrayToggle = arrayToggle 737 748 738 749 $(document).on('click', 'button.hide-panel', e => { -
groundhogg/tags/4.2.5.1/assets/js/admin/admin.min.js
r3275088 r3352650 1 (function($,nonces,endpoints,gh){const{currentUser,isSuperAdmin}=Groundhogg;Groundhogg.user={getCurrentUser:()=>{return currentUser},userHasCap:cap=>{return currentUser.allcaps[cap]||currentUser.caps[cap]||isSuperAdmin},getOwner:id=>{return Groundhogg.filters.owners.find(u=>u.ID==id)},getOwnerDisplayName:id=>{return Groundhogg.filters.owners.find(u=>u.ID==id).data.display_name}};$.fn.serializeFormJSON=function(){var o={};var a=this.serializeArray();$.each(a,function(){if(o[this.name]){if(!o[this.name].push){o[this.name]=[o[this.name]]}o[this.name].push(this.value||"")}else{o[this.name]=this.value||""}});return o};function picker(selector,args){return $(selector).select2(args)}$.fn.ghPicker=function({endpoint,getResults:getResults=r=>r.items,getParams:getParams=q=>({...q,search:q.term}),...rest}){this.select2({tokenSeparators:["/",",",";"],delay:100,ajax:{url:endpoint,dataType:"json",data:getParams,beforeSend:function(xhr){xhr.setRequestHeader("X-WP-Nonce",wpApiSettings.nonce)},processResults:function(data,page){return{results:getResults(data,page)}}},...rest});return this};function apiPicker(selector,endpoint,multiple=false,tags=false,getResults=d=>d.results,getParams=q=>({...q,search:q.term}),select2opts={}){return $(selector).select2({tags:tags,multiple:multiple,tokenSeparators:["/",",",";"],delay:100,ajax:{url:endpoint,dataType:"json",data:getParams,beforeSend:function(xhr){xhr.setRequestHeader("X-WP-Nonce",wpApiSettings.nonce)},processResults:function(data,page){return{results:getResults(data,page)}}},...select2opts})}function linkPicker(selector){let $input=$(selector);return $input.autocomplete({source:function(request,response){$.ajax({url:ajaxurl,method:"post",dataType:"json",data:{action:"wp-link-ajax",_ajax_linking_nonce:nonces._ajax_linking_nonce,term:request.term},success:function(data){var $return=[];for(var item in data){if(data.hasOwnProperty(item)){item=data[item];$return.push({label:item.title+" ("+item.info+")",value:item.permalink})}}response($return)},select:(e,ui)=>{$input.value(ui.item.value).trigger("change")}})},minLength:0})}function userMetaPicker(selector){let $input=$(selector);return $input.autocomplete({source:function(request,response){$.ajax({url:ajaxurl,method:"post",dataType:"json",data:{action:"user_meta_picker",nonce:nonces._meta_nonce,term:request.term},success:function(data){response(data);$(selector).removeClass("ui-autocomplete-loading")},select:(e,ui)=>{$input.value(ui.item.value).trigger("change")}})},minLength:0})}function metaPicker(selector){let $input=$(selector);return $input.autocomplete({source:function(request,response){$.ajax({url:ajaxurl,method:"post",dataType:"json",data:{action:"gh_meta_picker",nonce:nonces._meta_nonce,term:request.term},success:function(data){response(data);$(selector).removeClass("ui-autocomplete-loading")},select:(e,ui)=>{$input.value(ui.item.value).trigger("change")}})},minLength:0})}function metaValuePicker(selector,meta_key){let $input=$(selector);return $input.autocomplete({source:function(request,response){$.ajax({url:ajaxurl,method:"post",dataType:"json",data:{action:"gh_meta_value_picker",nonce:nonces._meta_nonce,term:request.term,meta_key:meta_key},success:function(data){response(data);$(selector).removeClass("ui-autocomplete-loading")},select:(e,ui)=>{$input.value(ui.item.value).trigger("change")}})},minLength:0})}function tagPicker(selector,multiple=true,onReceiveItems=items=>{},...opts){return apiPicker(selector,gh.api.routes.v4.tags,multiple,Groundhogg.user.userHasCap("add_tags"),data=>{onReceiveItems(data.items);return data.items.map(item=>({id:item.ID,text:`${item.data.tag_name}`}))},query=>{return{search:query.term,limit:50}},...opts)}function contactPicker(selector,onReceiveItems=items=>{},...opts){return apiPicker(selector,gh.api.routes.v4.contacts,false,false,data=>{onReceiveItems(data.items);return data.items.map(item=>({id:item.ID,text:`${item.data.first_name} ${item.data.last_name} (${item.data.email})`}))},query=>{return{search:query.term,limit:50}},...opts)}function campaignPicker(selector,multiple=true,onReceiveItems=items=>{},...opts){return apiPicker(selector,gh.api.routes.v4.campaigns,multiple,true,data=>{onReceiveItems(data.items);return data.items.map(item=>({id:item.ID,text:`${item.data.name}`}))},query=>{return{search:query.term}},...opts)}function emailPicker(selector,multiple=false,onReceiveItems=items=>{},queryOpts={},...opts){return apiPicker(selector,gh.api.routes.v4.emails,multiple,false,data=>{onReceiveItems(data.items);return data.items.map(item=>({id:item.ID,text:`${item.data.title} (${item.data.status})`}))},query=>{return{search:query.term,...queryOpts}},...opts)}function funnelPicker(selector,multiple=false,onReceiveItems=items=>{},queryOpts={},...opts){return apiPicker(selector,gh.api.routes.v4.funnels,multiple,false,data=>{onReceiveItems(data.items);return data.items.map(item=>({id:item.ID,text:`${item.data.title}`}))},query=>{return{search:query.term,...queryOpts}},...opts)}function broadcastPicker(selector,multiple=false,onReceiveItems=items=>{},queryOpts={},...opts){return apiPicker(selector,gh.api.routes.v4.broadcasts,multiple,false,data=>{onReceiveItems(data.items);return data.items.map(item=>({id:item.ID,text:`${item.object.data.title} (${item.date_sent_pretty})`}))},query=>{return{search:query.term,...queryOpts}},...opts)}function searchesPicker(selector,onReceiveItems=items=>{},queryOpts={},...opts){return apiPicker(selector,gh.api.routes.v4.searches,false,false,data=>{onReceiveItems(data.items);return data.items.map(item=>({id:item.id,text:item.name}))},query=>{return{search:query.term,...queryOpts}},...opts)}const Select2Picker=selectEl=>{let pickerId=`${selectEl.id}-picker`;if(selectEl.previousElementSibling&&selectEl.previousElementSibling.id===pickerId){return}const convertOpt=selector=>[...selectEl.querySelectorAll(selector)].map(opt=>({id:opt.value,text:opt.innerHTML})).filter(opt=>opt.id&&opt.text);let picker=MakeEl.ItemPicker({id:pickerId,fetchOptions:async search=>{let opts=convertOpt("option[value]:not(:empty)");if(search){opts=opts.filter(item=>item.id.match(search)||item.text.match(search))}return opts},selected:convertOpt("option[selected]"),multiple:selectEl.multiple,tags:selectEl.dataset.tags,clearable:selectEl.multiple||selectEl.dataset.clearable,noneSelected:selectEl.dataset.placeholder??"Any...",createOption:async opt=>{selectEl.appendChild(MakeEl.makeEl("option",{value:opt,selected:true},opt));return{id:opt,text:opt}},onChange:items=>{if(!selectEl.multiple){items=[items]}let selected=items.filter(item=>item).map(item=>item.id);for(let option of selectEl.options){option.selected=selected.includes(option.value)}$(selectEl).trigger("change");selectEl.dispatchEvent(new Event("change"))}});selectEl.classList.add("hidden","picker-initialized");selectEl.pickerInitialized=true;selectEl.insertAdjacentElement("beforebegin",picker)};function buildPickers(){picker(".gh-select2",{});tagPicker(".gh-tag-picker",true);tagPicker(".gh-single-tag-picker",false);emailPicker(".gh-email-picker",false);emailPicker(".gh-email-picker-multiple",true);apiPicker(".gh-sms-picker",endpoints.sms,false,false);contactPicker(".gh-contact-picker");contactPicker(".gh-contact-picker-multiple",items=>{},{multiple:true});apiPicker(".gh-benchmark-picker",endpoints.benchmarks,false,false);apiPicker(".gh-metakey-picker",endpoints.metakeys,false,false);linkPicker(".gh-link-picker");metaPicker(".gh-meta-picker");document.querySelectorAll("select.gh-select-2-picker").forEach(select=>Select2Picker(select))}$(function(){buildPickers()});$(document).on("gh-init-pickers",function(){buildPickers()});$(document).on("click",".dropdown-button .button.dropdown",function(){var $button=$(this);$button.next().toggleClass("show");$("<div class='dropdown-overlay'></div>").insertAfter($button)});$(document).on("click",".dropdown-button .dropdown-overlay",function(){var $overlay=$(this);$overlay.next().toggleClass("show");$overlay.remove()});function moveChildren(source,target){while(source.firstChild){target.appendChild(source.firstChild)}}$(document).on("click",".gh-open-modal",e=>{e.preventDefault();let a=e.currentTarget;let source=document.querySelector(a.getAttribute("href"));let modalProps=JSON.parse(a.dataset.modalProps);const{title:title="Modal",...restModalProps}=modalProps;MakeEl.Modal({...restModalProps,onOpen:({modal})=>{let target=modal.querySelector(".source-content");moveChildren(source,target)},onClose:modal=>{let target=modal.querySelector(".source-content");moveChildren(target,source)}},({close})=>MakeEl.Fragment([MakeEl.Div({className:"gh-header modal-header"},[MakeEl.H3({},"Modal header"),MakeEl.Button({className:"gh-button icon secondary text",onClick:close},MakeEl.Dashicon("no-alt"))]),MakeEl.Div({className:"source-content"})]))});gh.pickers={picker:picker,tagPicker:tagPicker,emailPicker:emailPicker,apiPicker:apiPicker,linkPicker:linkPicker,metaPicker:metaPicker,userMetaPicker:userMetaPicker,campaignPicker:campaignPicker,searchesPicker:searchesPicker,funnelPicker:funnelPicker,broadcastPicker:broadcastPicker,metaValuePicker:metaValuePicker,contactPicker:contactPicker};gh.nonces=nonces;gh.endpoints=endpoints;if(!gh.functions){gh.functions={}}gh.functions.setCookie=(cname,cvalue,duration)=>{var d=new Date;d.setTime(d.getTime()+duration*1e3);var expires="expires="+d.toUTCString();document.cookie=cname+"="+cvalue+";"+expires+";path=/"};gh.functions.getCookie=(cname,none=null)=>{var name=cname+"=";var ca=document.cookie.split(";");for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==" "){c=c.substring(1)}if(c.indexOf(name)==0){return c.substring(name.length,c.length)}}return none};function utf8_to_b64(str){return window.btoa(unescape(encodeURIComponent(str)))}const base64_json_encode=stuff=>{return utf8_to_b64(JSON.stringify(stuff)).replaceAll("+","-").replaceAll("/","_").replaceAll("=","")};const assoc2array=(obj,a="id",b="text")=>{let array=[];Object.keys(obj).forEach(key=>{array.push({[a]:key,[b]:obj[key]})});return array};const jsonCopy=stuff=>JSON.parse(JSON.stringify(stuff));function setNestedValue(obj,path,value){const keys=path.split(".");let current=obj;for(let i=0;i<keys.length-1;i++){const key=keys[i];if(!current[key]){current[key]={}}current=current[key]}current[keys[keys.length-1]]=value}function getNestedValue(obj,path){const keys=path.split(".");let current=obj;for(let i=0;i<keys.length;i++){if(!current.hasOwnProperty(keys[i])){return undefined}current=current[keys[i]]}return current}const debounce=(callback,wait)=>{let timeoutId=null;return(...args)=>{window.clearTimeout(timeoutId);timeoutId=window.setTimeout(()=>{callback(...args)},wait)}};const maybeCall=(maybeFunc,...args)=>{if(maybeFunc instanceof Function){return maybeFunc(...args)}return maybeFunc}; const dismissNotice=id=>Groundhogg.api.ajax({action:"gh_dismiss_notice",notice:id});gh.functions.utf8_to_b64=utf8_to_b64;gh.functions.base64_json_encode=base64_json_encode;gh.functions.assoc2array=assoc2array;gh.functions.jsonCopy=jsonCopy;gh.functions.setNestedValue=setNestedValue;gh.functions.getNestedValue=getNestedValue;gh.functions.debounce=debounce;gh.functions.maybeCall=maybeCall;gh.functions.dismissNotice=dismissNotice;$(document).on("click","button.hide-panel",e=>{let btn=e.currentTarget;let id=btn.dataset.id;btn.parentElement.remove();dismissNotice(id)});var check,timeout;function schedule(){check=false;window.clearTimeout(timeout);timeout=window.setTimeout(function(){check=true},3e5)}$(function(){schedule()}).on("heartbeat-send.groundhogg-refresh-nonces",function(e,data){if(check){data["groundhogg-refresh-nonces"]=true}}).on("heartbeat-tick.groundhogg-refresh-nonces",function(e,data){let newNonces=data.groundhogg_nonces;if(newNonces){Object.keys(newNonces).forEach(nonce=>{groundhogg_nonces[nonce]=newNonces[nonce];Groundhogg.nonces[nonce]=newNonces[nonce]})}});$(document).on("click","[data-gh-href]",e=>{console.log("clicked!",e.currentTarget.dataset);window.open(e.currentTarget.dataset.ghHref,"_self")})})(jQuery,groundhogg_nonces,groundhogg_endpoints,Groundhogg);1 (function($,nonces,endpoints,gh){const{currentUser,isSuperAdmin}=Groundhogg;Groundhogg.user={getCurrentUser:()=>{return currentUser},userHasCap:cap=>{return currentUser.allcaps[cap]||currentUser.caps[cap]||isSuperAdmin},getOwner:id=>{return Groundhogg.filters.owners.find(u=>u.ID==id)},getOwnerDisplayName:id=>{return Groundhogg.filters.owners.find(u=>u.ID==id).data.display_name}};$.fn.serializeFormJSON=function(){var o={};var a=this.serializeArray();$.each(a,function(){if(o[this.name]){if(!o[this.name].push){o[this.name]=[o[this.name]]}o[this.name].push(this.value||"")}else{o[this.name]=this.value||""}});return o};function picker(selector,args){return $(selector).select2(args)}$.fn.ghPicker=function({endpoint,getResults:getResults=r=>r.items,getParams:getParams=q=>({...q,search:q.term}),...rest}){this.select2({tokenSeparators:["/",",",";"],delay:100,ajax:{url:endpoint,dataType:"json",data:getParams,beforeSend:function(xhr){xhr.setRequestHeader("X-WP-Nonce",wpApiSettings.nonce)},processResults:function(data,page){return{results:getResults(data,page)}}},...rest});return this};function apiPicker(selector,endpoint,multiple=false,tags=false,getResults=d=>d.results,getParams=q=>({...q,search:q.term}),select2opts={}){return $(selector).select2({tags:tags,multiple:multiple,tokenSeparators:["/",",",";"],delay:100,ajax:{url:endpoint,dataType:"json",data:getParams,beforeSend:function(xhr){xhr.setRequestHeader("X-WP-Nonce",wpApiSettings.nonce)},processResults:function(data,page){return{results:getResults(data,page)}}},...select2opts})}function linkPicker(selector){let $input=$(selector);return $input.autocomplete({source:function(request,response){$.ajax({url:ajaxurl,method:"post",dataType:"json",data:{action:"wp-link-ajax",_ajax_linking_nonce:nonces._ajax_linking_nonce,term:request.term},success:function(data){var $return=[];for(var item in data){if(data.hasOwnProperty(item)){item=data[item];$return.push({label:item.title+" ("+item.info+")",value:item.permalink})}}response($return)},select:(e,ui)=>{$input.value(ui.item.value).trigger("change")}})},minLength:0})}function userMetaPicker(selector){let $input=$(selector);return $input.autocomplete({source:function(request,response){$.ajax({url:ajaxurl,method:"post",dataType:"json",data:{action:"user_meta_picker",nonce:nonces._meta_nonce,term:request.term},success:function(data){response(data);$(selector).removeClass("ui-autocomplete-loading")},select:(e,ui)=>{$input.value(ui.item.value).trigger("change")}})},minLength:0})}function metaPicker(selector){let $input=$(selector);return $input.autocomplete({source:function(request,response){$.ajax({url:ajaxurl,method:"post",dataType:"json",data:{action:"gh_meta_picker",nonce:nonces._meta_nonce,term:request.term},success:function(data){response(data);$(selector).removeClass("ui-autocomplete-loading")},select:(e,ui)=>{$input.value(ui.item.value).trigger("change")}})},minLength:0})}function metaValuePicker(selector,meta_key){let $input=$(selector);return $input.autocomplete({source:function(request,response){$.ajax({url:ajaxurl,method:"post",dataType:"json",data:{action:"gh_meta_value_picker",nonce:nonces._meta_nonce,term:request.term,meta_key:meta_key},success:function(data){response(data);$(selector).removeClass("ui-autocomplete-loading")},select:(e,ui)=>{$input.value(ui.item.value).trigger("change")}})},minLength:0})}function tagPicker(selector,multiple=true,onReceiveItems=items=>{},...opts){return apiPicker(selector,gh.api.routes.v4.tags,multiple,Groundhogg.user.userHasCap("add_tags"),data=>{onReceiveItems(data.items);return data.items.map(item=>({id:item.ID,text:`${item.data.tag_name}`}))},query=>{return{search:query.term,limit:50}},...opts)}function contactPicker(selector,onReceiveItems=items=>{},...opts){return apiPicker(selector,gh.api.routes.v4.contacts,false,false,data=>{onReceiveItems(data.items);return data.items.map(item=>({id:item.ID,text:`${item.data.first_name} ${item.data.last_name} (${item.data.email})`}))},query=>{return{search:query.term,limit:50}},...opts)}function campaignPicker(selector,multiple=true,onReceiveItems=items=>{},...opts){return apiPicker(selector,gh.api.routes.v4.campaigns,multiple,true,data=>{onReceiveItems(data.items);return data.items.map(item=>({id:item.ID,text:`${item.data.name}`}))},query=>{return{search:query.term}},...opts)}function emailPicker(selector,multiple=false,onReceiveItems=items=>{},queryOpts={},...opts){return apiPicker(selector,gh.api.routes.v4.emails,multiple,false,data=>{onReceiveItems(data.items);return data.items.map(item=>({id:item.ID,text:`${item.data.title} (${item.data.status})`}))},query=>{return{search:query.term,...queryOpts}},...opts)}function funnelPicker(selector,multiple=false,onReceiveItems=items=>{},queryOpts={},...opts){return apiPicker(selector,gh.api.routes.v4.funnels,multiple,false,data=>{onReceiveItems(data.items);return data.items.map(item=>({id:item.ID,text:`${item.data.title}`}))},query=>{return{search:query.term,...queryOpts}},...opts)}function broadcastPicker(selector,multiple=false,onReceiveItems=items=>{},queryOpts={},...opts){return apiPicker(selector,gh.api.routes.v4.broadcasts,multiple,false,data=>{onReceiveItems(data.items);return data.items.map(item=>({id:item.ID,text:`${item.object.data.title} (${item.date_sent_pretty})`}))},query=>{return{search:query.term,...queryOpts}},...opts)}function searchesPicker(selector,onReceiveItems=items=>{},queryOpts={},...opts){return apiPicker(selector,gh.api.routes.v4.searches,false,false,data=>{onReceiveItems(data.items);return data.items.map(item=>({id:item.id,text:item.name}))},query=>{return{search:query.term,...queryOpts}},...opts)}const Select2Picker=selectEl=>{let pickerId=`${selectEl.id}-picker`;if(selectEl.previousElementSibling&&selectEl.previousElementSibling.id===pickerId){return}const convertOpt=selector=>[...selectEl.querySelectorAll(selector)].map(opt=>({id:opt.value,text:opt.innerHTML})).filter(opt=>opt.id&&opt.text);let picker=MakeEl.ItemPicker({id:pickerId,fetchOptions:async search=>{let opts=convertOpt("option[value]:not(:empty)");if(search){opts=opts.filter(item=>item.id.match(search)||item.text.match(search))}return opts},selected:convertOpt("option[selected]"),multiple:selectEl.multiple,tags:selectEl.dataset.tags,clearable:selectEl.multiple||selectEl.dataset.clearable,noneSelected:selectEl.dataset.placeholder??"Any...",createOption:async opt=>{selectEl.appendChild(MakeEl.makeEl("option",{value:opt,selected:true},opt));return{id:opt,text:opt}},onChange:items=>{if(!selectEl.multiple){items=[items]}let selected=items.filter(item=>item).map(item=>item.id);for(let option of selectEl.options){option.selected=selected.includes(option.value)}$(selectEl).trigger("change");selectEl.dispatchEvent(new Event("change"))}});selectEl.classList.add("hidden","picker-initialized");selectEl.pickerInitialized=true;selectEl.insertAdjacentElement("beforebegin",picker)};function buildPickers(){picker(".gh-select2",{});tagPicker(".gh-tag-picker",true);tagPicker(".gh-single-tag-picker",false);emailPicker(".gh-email-picker",false);emailPicker(".gh-email-picker-multiple",true);apiPicker(".gh-sms-picker",endpoints.sms,false,false);contactPicker(".gh-contact-picker");contactPicker(".gh-contact-picker-multiple",items=>{},{multiple:true});apiPicker(".gh-benchmark-picker",endpoints.benchmarks,false,false);apiPicker(".gh-metakey-picker",endpoints.metakeys,false,false);linkPicker(".gh-link-picker");metaPicker(".gh-meta-picker");document.querySelectorAll("select.gh-select-2-picker").forEach(select=>Select2Picker(select))}$(function(){buildPickers()});$(document).on("gh-init-pickers",function(){buildPickers()});$(document).on("click",".dropdown-button .button.dropdown",function(){var $button=$(this);$button.next().toggleClass("show");$("<div class='dropdown-overlay'></div>").insertAfter($button)});$(document).on("click",".dropdown-button .dropdown-overlay",function(){var $overlay=$(this);$overlay.next().toggleClass("show");$overlay.remove()});function moveChildren(source,target){while(source.firstChild){target.appendChild(source.firstChild)}}$(document).on("click",".gh-open-modal",e=>{e.preventDefault();let a=e.currentTarget;let source=document.querySelector(a.getAttribute("href"));let modalProps=JSON.parse(a.dataset.modalProps);const{title:title="Modal",...restModalProps}=modalProps;MakeEl.Modal({...restModalProps,onOpen:({modal})=>{let target=modal.querySelector(".source-content");moveChildren(source,target)},onClose:modal=>{let target=modal.querySelector(".source-content");moveChildren(target,source)}},({close})=>MakeEl.Fragment([MakeEl.Div({className:"gh-header modal-header"},[MakeEl.H3({},"Modal header"),MakeEl.Button({className:"gh-button icon secondary text",onClick:close},MakeEl.Dashicon("no-alt"))]),MakeEl.Div({className:"source-content"})]))});gh.pickers={picker:picker,tagPicker:tagPicker,emailPicker:emailPicker,apiPicker:apiPicker,linkPicker:linkPicker,metaPicker:metaPicker,userMetaPicker:userMetaPicker,campaignPicker:campaignPicker,searchesPicker:searchesPicker,funnelPicker:funnelPicker,broadcastPicker:broadcastPicker,metaValuePicker:metaValuePicker,contactPicker:contactPicker};gh.nonces=nonces;gh.endpoints=endpoints;if(!gh.functions){gh.functions={}}gh.functions.setCookie=(cname,cvalue,duration)=>{var d=new Date;d.setTime(d.getTime()+duration*1e3);var expires="expires="+d.toUTCString();document.cookie=cname+"="+cvalue+";"+expires+";path=/"};gh.functions.getCookie=(cname,none=null)=>{var name=cname+"=";var ca=document.cookie.split(";");for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==" "){c=c.substring(1)}if(c.indexOf(name)==0){return c.substring(name.length,c.length)}}return none};function utf8_to_b64(str){return window.btoa(unescape(encodeURIComponent(str)))}const base64_json_encode=stuff=>{return utf8_to_b64(JSON.stringify(stuff)).replaceAll("+","-").replaceAll("/","_").replaceAll("=","")};const assoc2array=(obj,a="id",b="text")=>{let array=[];Object.keys(obj).forEach(key=>{array.push({[a]:key,[b]:obj[key]})});return array};const jsonCopy=stuff=>JSON.parse(JSON.stringify(stuff));function setNestedValue(obj,path,value){const keys=path.split(".");let current=obj;for(let i=0;i<keys.length-1;i++){const key=keys[i];if(!current[key]){current[key]={}}current=current[key]}current[keys[keys.length-1]]=value}function getNestedValue(obj,path){const keys=path.split(".");let current=obj;for(let i=0;i<keys.length;i++){if(!current.hasOwnProperty(keys[i])){return undefined}current=current[keys[i]]}return current}const debounce=(callback,wait)=>{let timeoutId=null;return(...args)=>{window.clearTimeout(timeoutId);timeoutId=window.setTimeout(()=>{callback(...args)},wait)}};const maybeCall=(maybeFunc,...args)=>{if(maybeFunc instanceof Function){return maybeFunc(...args)}return maybeFunc};function arrayToggle(arr,value){const index=arr.indexOf(value);if(index===-1){arr.push(value)}else{arr.splice(index,1)}return arr}const dismissNotice=id=>Groundhogg.api.ajax({action:"gh_dismiss_notice",notice:id});gh.functions.utf8_to_b64=utf8_to_b64;gh.functions.base64_json_encode=base64_json_encode;gh.functions.assoc2array=assoc2array;gh.functions.jsonCopy=jsonCopy;gh.functions.setNestedValue=setNestedValue;gh.functions.getNestedValue=getNestedValue;gh.functions.debounce=debounce;gh.functions.maybeCall=maybeCall;gh.functions.dismissNotice=dismissNotice;gh.functions.arrayToggle=arrayToggle;$(document).on("click","button.hide-panel",e=>{let btn=e.currentTarget;let id=btn.dataset.id;btn.parentElement.remove();dismissNotice(id)});var check,timeout;function schedule(){check=false;window.clearTimeout(timeout);timeout=window.setTimeout(function(){check=true},3e5)}$(function(){schedule()}).on("heartbeat-send.groundhogg-refresh-nonces",function(e,data){if(check){data["groundhogg-refresh-nonces"]=true}}).on("heartbeat-tick.groundhogg-refresh-nonces",function(e,data){let newNonces=data.groundhogg_nonces;if(newNonces){Object.keys(newNonces).forEach(nonce=>{groundhogg_nonces[nonce]=newNonces[nonce];Groundhogg.nonces[nonce]=newNonces[nonce]})}});$(document).on("click","[data-gh-href]",e=>{console.log("clicked!",e.currentTarget.dataset);window.open(e.currentTarget.dataset.ghHref,"_self")})})(jQuery,groundhogg_nonces,groundhogg_endpoints,Groundhogg); -
groundhogg/tags/4.2.5.1/assets/js/admin/components/properties.js
r3335438 r3352650 532 532 */ 533 533 function isInternalNameInUse (name, fieldId) { 534 535 // there are no properties, thus, we're good 536 if ( ! properties || typeof properties.fields === 'undefined' ) { 537 return false 538 } 539 534 540 return properties.fields.some(field => field.name === name && field.id !== fieldId) 535 541 } -
groundhogg/tags/4.2.5.1/assets/js/admin/components/properties.min.js
r3335438 r3352650 126 126 <div class="property-field col-width-${width}" data-group="${group}" data-id="${field.id}"> 127 127 ${fieldUI} 128 </div>`}};const Properties=(selector,{properties:properties={groups:[],fields:[]},values:values={},onPropertiesUpdated:onPropertiesUpdated=properties=>{},onChange:onChange=properties=>{},canEdit:canEdit=()=>true})=>{properties=copyObject(properties);values=copyObject(values);function isInternalNameInUse(name,fieldId){ return properties.fields.some(field=>field.name===name&&field.id!==fieldId)}const removeGroup=id=>{const{fields:fields=[],groups:groups=[]}=properties;properties={...properties,groups:[...groups.filter(g=>g.id!=id)],fields:[...fields.filter(f=>f.group!=id)]};onPropertiesUpdated(properties);mount()};const removeField=id=>{properties={...properties,fields:[...properties.fields.filter(f=>f.id!=id)]};onPropertiesUpdated(properties);mount()};const addField=field=>{if(!properties.fields){properties.fields=[]}properties.fields.push({...field,id:uuid()});onPropertiesUpdated(properties);mount()};const editField=(fieldId,field)=>{properties.fields=[...properties.fields.map(f=>f.id===fieldId?field:f)];onPropertiesUpdated(properties);mount()};const editGroup=(groupId,group)=>{properties.groups=[...properties.groups.map(g=>g.id===groupId?{...g,...group}:g)];onPropertiesUpdated(properties);mount()};const moveGroup=(groupId,direction="down")=>{let group=properties.groups.find(g=>g.id==groupId);let index=properties.groups.findIndex(g=>g.id==groupId);properties.groups.splice(index,1);properties.groups.splice(direction==="down"?index+1:index-1,0,group);onPropertiesUpdated(properties);mount()};const addGroup=name=>{if(!properties.groups){properties.groups=[]}let groupId=uuid();properties.groups.push({id:groupId,name:name});onPropertiesUpdated(properties);mount();addOrEditField({type:"text",name:"",label:"",group:groupId},addField)};const addPropertyGroupModal=()=>{const{close}=modal({content:Templates.addPropertyGroup()});let groupName;$("#property-group-name").on("change input",e=>{groupName=e.target.value});$("#create-property-group").on("click",e=>{if(groupName.length){close();addGroup(groupName)}})};const renamePropertyGroupModal=groupId=>{let groupName=properties.groups.find(g=>g.id==groupId).name;const{close}=modal({content:Templates.renamePropertyGroup(groupName)});$("#property-group-name").on("change input",e=>{groupName=e.target.value});$("#create-property-group").on("click",e=>{if(groupName.length){close();editGroup(groupId,{name:groupName})}})};const addOrEditField=(newField,onDone)=>{let origField=Groundhogg.functions.jsonCopy(newField);const onAddFieldMount=()=>{const sanitizeKey=label=>{return label.toLowerCase().replace(/[^a-z0-9]/g,"_")};const updateField=(props,r=false)=>{newField={...newField,...props};if(r){setContent(Templates.addField(newField));onAddFieldMount()}};$("#property-field-label").on("input change",e=>{let label=e.target.value;if(onDone===addField){let name=sanitizeKey(label);updateField({label:label,name:name});$("#property-field-name").val(name)}else{updateField({label:label})}});$("#property-field-name").on("input change",e=>{updateField({name:e.target.value})});$("#property-field-order").on("input change",e=>{updateField({order:parseInt(e.target.value)})});$("#property-field-width").on("change",e=>{updateField({width:parseInt(e.target.value)})});$("#property-field-group").select2({data:properties.groups.map(({id,name})=>({id:id,text:name,selected:newField.group===id})),multiple:false}).on("change",e=>newField.group=e.target.value);$("#property-field-type").on("change",e=>{newField.type=e.target.value;setContent(Templates.addField(newField));onAddFieldMount();$("#property-field-type").focus()});$("#create-property-field").on("click",e=>{if(isInternalNameInUse(newField.name,newField.id)){Groundhogg.element.errorDialog({message:`The internal name <code>${newField.name}</code> is already in use.`});return}if(onDone!==addField&&newField.name!==origField.name){dangerConfirmationModal({alert:`<p>Changing the internal name of a custom field might break replacement code references and other uses.</p>128 </div>`}};const Properties=(selector,{properties:properties={groups:[],fields:[]},values:values={},onPropertiesUpdated:onPropertiesUpdated=properties=>{},onChange:onChange=properties=>{},canEdit:canEdit=()=>true})=>{properties=copyObject(properties);values=copyObject(values);function isInternalNameInUse(name,fieldId){if(!properties||typeof properties.fields==="undefined"){return false}return properties.fields.some(field=>field.name===name&&field.id!==fieldId)}const removeGroup=id=>{const{fields:fields=[],groups:groups=[]}=properties;properties={...properties,groups:[...groups.filter(g=>g.id!=id)],fields:[...fields.filter(f=>f.group!=id)]};onPropertiesUpdated(properties);mount()};const removeField=id=>{properties={...properties,fields:[...properties.fields.filter(f=>f.id!=id)]};onPropertiesUpdated(properties);mount()};const addField=field=>{if(!properties.fields){properties.fields=[]}properties.fields.push({...field,id:uuid()});onPropertiesUpdated(properties);mount()};const editField=(fieldId,field)=>{properties.fields=[...properties.fields.map(f=>f.id===fieldId?field:f)];onPropertiesUpdated(properties);mount()};const editGroup=(groupId,group)=>{properties.groups=[...properties.groups.map(g=>g.id===groupId?{...g,...group}:g)];onPropertiesUpdated(properties);mount()};const moveGroup=(groupId,direction="down")=>{let group=properties.groups.find(g=>g.id==groupId);let index=properties.groups.findIndex(g=>g.id==groupId);properties.groups.splice(index,1);properties.groups.splice(direction==="down"?index+1:index-1,0,group);onPropertiesUpdated(properties);mount()};const addGroup=name=>{if(!properties.groups){properties.groups=[]}let groupId=uuid();properties.groups.push({id:groupId,name:name});onPropertiesUpdated(properties);mount();addOrEditField({type:"text",name:"",label:"",group:groupId},addField)};const addPropertyGroupModal=()=>{const{close}=modal({content:Templates.addPropertyGroup()});let groupName;$("#property-group-name").on("change input",e=>{groupName=e.target.value});$("#create-property-group").on("click",e=>{if(groupName.length){close();addGroup(groupName)}})};const renamePropertyGroupModal=groupId=>{let groupName=properties.groups.find(g=>g.id==groupId).name;const{close}=modal({content:Templates.renamePropertyGroup(groupName)});$("#property-group-name").on("change input",e=>{groupName=e.target.value});$("#create-property-group").on("click",e=>{if(groupName.length){close();editGroup(groupId,{name:groupName})}})};const addOrEditField=(newField,onDone)=>{let origField=Groundhogg.functions.jsonCopy(newField);const onAddFieldMount=()=>{const sanitizeKey=label=>{return label.toLowerCase().replace(/[^a-z0-9]/g,"_")};const updateField=(props,r=false)=>{newField={...newField,...props};if(r){setContent(Templates.addField(newField));onAddFieldMount()}};$("#property-field-label").on("input change",e=>{let label=e.target.value;if(onDone===addField){let name=sanitizeKey(label);updateField({label:label,name:name});$("#property-field-name").val(name)}else{updateField({label:label})}});$("#property-field-name").on("input change",e=>{updateField({name:e.target.value})});$("#property-field-order").on("input change",e=>{updateField({order:parseInt(e.target.value)})});$("#property-field-width").on("change",e=>{updateField({width:parseInt(e.target.value)})});$("#property-field-group").select2({data:properties.groups.map(({id,name})=>({id:id,text:name,selected:newField.group===id})),multiple:false}).on("change",e=>newField.group=e.target.value);$("#property-field-type").on("change",e=>{newField.type=e.target.value;setContent(Templates.addField(newField));onAddFieldMount();$("#property-field-type").focus()});$("#create-property-field").on("click",e=>{if(isInternalNameInUse(newField.name,newField.id)){Groundhogg.element.errorDialog({message:`The internal name <code>${newField.name}</code> is already in use.`});return}if(onDone!==addField&&newField.name!==origField.name){dangerConfirmationModal({alert:`<p>Changing the internal name of a custom field might break replacement code references and other uses.</p> 129 129 <p>Are you sure you want to continue?</p>`,confirmText:"Continue",onConfirm:()=>{onDone(newField);close()},onCancel:()=>{updateField({name:origField.name});$("#property-field-name").val(origField.name)}});return}onDone(newField);close()});try{getFieldType(newField.type).onEditMount(newField,updateField)}catch(e){console.log(e)}};const{close,setContent}=modal({content:Templates.addField(newField)});onAddFieldMount()};const mount=()=>{if(!properties||!properties.groups||!properties.groups.length){if(!canEdit()){return}$(selector).html(Templates.noProperties());$("#add-custom-property").on("click",e=>{e.preventDefault();addPropertyGroupModal()});return}const{fields:fields=[]}=properties;$(selector).html(Templates.groups({...properties,fields:fields.map(f=>({...f,value:values[f.name]||""}))},canEdit()));onMount()};const onMount=()=>{const{fields:fields=[]}=properties;fields.forEach(f=>{try{getFieldType(f.type).onMount(f,props=>{values={...values,...props};onChange(props)})}catch(e){console.log(e)}});$(".property-field").on("dblclick",e=>{if(!canEdit()){return}moreMenu(e.currentTarget,{items:[{key:"edit",text:__("Edit field","groundhogg")},{key:"delete",text:`<span class="gh-text danger">${__("Delete")}</span>`}],onSelect:k=>{const fieldId=e.currentTarget.dataset.id;let field=properties.fields.find(f=>f.id==fieldId);switch(k){case"edit":addOrEditField({...field},field=>{editField(fieldId,field)});break;case"delete":dangerConfirmationModal({alert:`<p>${__("Are you sure you want to delete this property?","groundhogg")}</p>`,onConfirm:()=>{removeField(fieldId)}});break}}})});$(".property-group-add-field").on("click",e=>{if(!canEdit()){return}const groupId=e.currentTarget.dataset.id;let newField={type:"text",name:"",label:"",group:groupId};addOrEditField(newField,addField)});$(".property-group-more").on("click",e=>{const groupId=e.currentTarget.dataset.id;let index=properties.groups.findIndex(g=>g.id==groupId);moreMenu(e.currentTarget,{items:[{key:"add-field",text:__("Add Field","groundhogg")},{key:"add-group",text:__("Add Group","groundhogg")},{key:"edit-fields",text:__("Edit Fields","groundhogg")},{key:"rename",text:__("Rename")},index!==0?{key:"move_up",text:__("Move up","groundhogg")}:null,index<properties.groups.length-1?{key:"move_down",text:__("Move down","groundhogg")}:null,{key:"delete",text:`<span class="gh-text danger">${__("Delete")}</span>`}],onSelect:k=>{switch(k){case"edit-fields":confirmationModal({alert:`<p>${__("Double click a field to edit it!","groundhogg")}</p>`,confirmText:__("Got it!","groundhogg"),closeText:""});break;case"move_up":moveGroup(groupId,"up");break;case"move_down":moveGroup(groupId,"down");break;case"add-group":addPropertyGroupModal();break;case"add-field":let newField={type:"text",name:"",label:"",group:groupId};addOrEditField(newField,addField);break;case"rename":renamePropertyGroupModal(groupId);break;case"delete":dangerConfirmationModal({alert:`<p>${__("Are you sure you want to delete this property group?","groundhogg")}</p>`,onConfirm:()=>{removeGroup(groupId)}});break}}})})};mount()};Groundhogg.propertiesEditor=Properties})(jQuery); -
groundhogg/tags/4.2.5.1/assets/js/admin/emails/email-block-editor.js
r3347592 r3352650 3321 3321 let parent = $sortable.is('.column,.children') ? $sortable.closest('.builder-block').data('id') : false 3322 3322 let column = parseInt(e.target.dataset.col) 3323 3324 console.log({3325 parent,3326 column,3327 })3328 3323 3329 3324 // adding block … … 10747 10742 Groundhogg.emailEditor = { 10748 10743 PostTagReference, 10744 BlockRegistry, 10749 10745 registerBlock, 10750 10746 registerDynamicBlock, -
groundhogg/tags/4.2.5.1/assets/js/admin/emails/email-block-editor.min.js
r3347592 r3352650 25 25 ${BlockRegistry.blocks[blockType].svg} 26 26 </div> 27 </div>`};$(el).sortable({placeholder:"block-placeholder",connectWith:".sortable-blocks",handle:".move-block",helper:sortableHelper,cancel:"",tolerance:"pointer",start:(e,ui)=>{ui.helper.width(50);ui.helper.height(50)},cursorAt:{left:70,top:5},receive:(e,ui)=>{let $sortable=$(e.target);let parent=$sortable.is(".column,.children")?$sortable.closest(".builder-block").data("id"):false;let column=parseInt(e.target.dataset.col); console.log({parent:parent,column:column});if(ui.item.is(".new-block")){let type=ui.item.data("type");let index=ui.helper.index();addBlock(type,index,parent,column);return}let blockId=ui.item.data("id");let index=ui.item.index();if(blockId){moveBlock(blockId,index,parent,column)}},update:(e,ui)=>{let blockId=ui.item.data("id");let index=ui.item.index();let $sortable=$(e.target);if(!$sortable.has(`#edit-${blockId}`).length){return}let parent=$sortable.is(".column,.children")?$sortable.closest(".builder-block").data("id"):false;let column=parseInt(e.target.dataset.col);if(blockId){moveBlock(blockId,index,parent,column)}}})};const BlockEditorContent=()=>{return Div({id:"builder-content",className:"sortable-blocks",onCreate:el=>{makeSortable(el)}},getBlocks().filter(b=>b.type).map(block=>EditBlockWrapper(block)))};const Block=({type,name,svg})=>{return Div({className:"block-wrap",id:`add-${type}`,title:name,onDblclick:e=>{let newBlock=createBlock(type);if(hasActiveBlock()){insertBlockAfter(newBlock,getActiveBlock().id);return}insertBlock(newBlock,getBlocks().length);setActiveBlock(newBlock.id);document.getElementById(`edit-${newBlock.id}`).scrollIntoView(true)}},[`27 </div>`};$(el).sortable({placeholder:"block-placeholder",connectWith:".sortable-blocks",handle:".move-block",helper:sortableHelper,cancel:"",tolerance:"pointer",start:(e,ui)=>{ui.helper.width(50);ui.helper.height(50)},cursorAt:{left:70,top:5},receive:(e,ui)=>{let $sortable=$(e.target);let parent=$sortable.is(".column,.children")?$sortable.closest(".builder-block").data("id"):false;let column=parseInt(e.target.dataset.col);if(ui.item.is(".new-block")){let type=ui.item.data("type");let index=ui.helper.index();addBlock(type,index,parent,column);return}let blockId=ui.item.data("id");let index=ui.item.index();if(blockId){moveBlock(blockId,index,parent,column)}},update:(e,ui)=>{let blockId=ui.item.data("id");let index=ui.item.index();let $sortable=$(e.target);if(!$sortable.has(`#edit-${blockId}`).length){return}let parent=$sortable.is(".column,.children")?$sortable.closest(".builder-block").data("id"):false;let column=parseInt(e.target.dataset.col);if(blockId){moveBlock(blockId,index,parent,column)}}})};const BlockEditorContent=()=>{return Div({id:"builder-content",className:"sortable-blocks",onCreate:el=>{makeSortable(el)}},getBlocks().filter(b=>b.type).map(block=>EditBlockWrapper(block)))};const Block=({type,name,svg})=>{return Div({className:"block-wrap",id:`add-${type}`,title:name,onDblclick:e=>{let newBlock=createBlock(type);if(hasActiveBlock()){insertBlockAfter(newBlock,getActiveBlock().id);return}insertBlock(newBlock,getBlocks().length);setActiveBlock(newBlock.id);document.getElementById(`edit-${newBlock.id}`).scrollIntoView(true)}},[` 28 28 <div class="block new-block gh-panel" data-type="${type}"> 29 29 <div class="icon"> … … 210 210 maximus felis. Suspendisse potenti. Etiam fermentum magna nec diam lacinia, ut volutpat mauris accumsan. Nunc id convallis magna.</p> 211 211 <p>Regards,</p> 212 <p>{owner_signature}</p>`}),createBlock("footer")];page="templates"}if(!email.meta.template){email.meta.template=BOXED}setState({page:page,activeBlock:null,openPanels:{},blockControlsTab:"block",emailControlsTab:"email",isGeneratingHTML:false,email:email,preview:preview,previewPlainText:previewPlainText,previewFromName:previewFromName,previewFromEmail:previewFromEmail,previewFromAvatar:previewFromAvatar,previewSubject:previewSubject});setBlocks(blocks,false);syncReplacementCodes();renderEditor()};function optimizeCSS(css){const ruleMap={};css.replace(/\/\*[\s\S]*?\*\//g,"").split("}").forEach(rule=>{const[selectors,declarations]=rule.split("{");if(!selectors||!declarations){return}const cleaned=declarations.trim().replace(/\s+/g," ").replace(/;$/,"");if(!cleaned){return}const key=cleaned;ruleMap[key]=ruleMap[key]||[];ruleMap[key].push(selectors.trim())});let optimized="";for(const[declarations,selectors]of Object.entries(ruleMap)){optimized+=`${selectors.join(",")}{${declarations}}`}return optimized}const renderBlocksCSS=blocks=>{let css=blocks.map(b=>BlockRegistry.css(b)).join("\n").replaceAll(/(\s*\n|\s*\r\n|\s*\r){1,}/g,"\n");css=optimizeCSS(css);return css};const maybeAddReplacementProtocols=(el,tag,attr)=>{el.querySelectorAll(tag).forEach(el=>{let value=el.getAttribute(attr);if(!value||!value.startsWith("{")){return}el.setAttribute(attr,`replacement:${value}`)})};function fixStyleQuotes(htmlString){return htmlString.replace(/(\bstyle\s*=\s*")([^"]*)(")/gi,(_,prefix,contents,suffix)=>prefix+contents.replace(/"/g,"'")+suffix)}const renderBlocksHTML=blocks=>{let htmlEl=Table({cellpadding:"0",cellspacing:"0",width:"100%",role:"presentation"},blocks.filter(b=>b.type).map(block=>BlockHTML(block)));maybeAddReplacementProtocols(htmlEl,"img","src");maybeAddReplacementProtocols(htmlEl,"a","href");let html=htmlEl.outerHTML;html=html.replaceAll(new RegExp(`"(${subFontsWithSpaces.join("")})"`,"g"),"'$1'");html=fixStyleQuotes(html);return html};const renderBlocksGutenberg=blocks=>{return blocks.filter(b=>b.type).map(block=>{let text;let{hide_on_desktop:hide_on_desktop=false}=block;if(hide_on_desktop){return""}try{text=BlockRegistry.get(block.type).gutenberg(block)}catch(e){text=""}return text}).filter(text=>text.length>0).join("\n\n").replaceAll(/(\n|\r\n|\r){3,}/g,"\n\n")};const renderBlocksPlainText=blocks=>{return blocks.filter(b=>b.type).map(block=>{let text;let{hide_on_desktop:hide_on_desktop=false}=block;if(hide_on_desktop){return""}try{text=BlockRegistry.get(block.type).plainText(block);return[BlockStartComment(block),text,BlockEndComment(block)].join("")}catch(e){return""}}).filter(text=>text.length>0).join("\n\n").replaceAll(/(\n|\r\n|\r){3,}/g,"\n\n")};const morphBlocks=()=>{if(isHTMLEditor()){return}morph("#builder-content",BlockEditorContent())};const removeControls=()=>morph("#controls-panel",Div());const morphControls=()=>morph("#controls-panel",ControlsPanel());const morphContent=()=>morph("#content",ContentEditor());const morphBlockEditor=()=>morph("#email-block-editor",BlockEditor());const morphEmailEditor=()=>{morph("#email-editor",EmailEditor(),false);window.dispatchEvent(new Event("resize"))};const morphHeader=()=>morph("#email-header",Header());const updateStyles=()=>{$("#builder-style").text(`#block-editor-content-wrap{ \n\n${renderBlocksCSS(getBlocks())}\n\n${getEmailMeta().template_css??""}\n\n }`)};const updateStylesDebounced=Groundhogg.functions.debounce(updateStyles,300);const renderEditor=()=>{morphEmailEditor();updateStyles()};const parseBlocksFromLegacyBlockEditor=nodes=>{let blocks=[];let timeout;const parseBlock=node=>{let oldBlockType=node.dataset.block;if(!oldBlockType){let blockContainer=node.firstElementChild;oldBlockType=blockContainer.classList[blockContainer.classList.length-1]}let block,img,a,button,el,spacer,divider,html,text;switch(oldBlockType){case"image":case"image_block":img=node.querySelector("img");a=node.querySelector("a");block=createBlock("image",{src:img.src,alt:img.alt,title:img.title,width:img.width,link:a.href});break;case"text":case"text_block":let textContainer=node.querySelector(".text_block").firstElementChild;text=textContainer.innerHTML;let props={content:text,p:fontDefaults({fontSize:parseInt(textContainer.style.fontSize),fontFamily:textContainer.style.fontFamily})};const setFontProps=tag=>{el=textContainer.querySelector(tag);if(!el){return}props[tag]=fontDefaults({fontSize:parseInt(el.style.fontSize),fontFamily:el.style.fontFamily})};setFontProps("h1");setFontProps("h2");setFontProps("h3");block=createBlock("text",props);break;case"button":case"button_block":button=node.querySelector("td.email-button");a=button.querySelector("a");block=createBlock("button",{text:a.innerHTML,link:a.href,backgroundColor:button.getAttribute("bgcolor"),style:{color:a.style.color,fontSize:parseInt(a.style.fontSize),fontWeight:a.style.fontWeight,fontFamily:a.style.fontFamily}});break;case"spacer":case"spacer_block":spacer=node.querySelector("td.spacer");block=createBlock("spacer",{height:spacer.height});break;case"divider":case"divider_block":divider=node.querySelector("hr");block=createBlock("divider",{height:parseInt(divider.style.borderTopWidth),width:parseInt(divider.style.width),color:divider.style.borderTopColor});break;case"html":case"html_block":html=node.querySelector(".inner-content").innerHTML;block=createBlock("html",{content:html});break}return block};nodes.forEach(node=>{if(node.nodeType===Node.TEXT_NODE){return}try{blocks.push(parseBlock(node))}catch(e){clearTimeout(timeout);setTimeout(()=>{dialog({type:"error",message:"Some blocks could not be converted to the new editor."})},100)}});return blocks};const parseBlocksFromContent=content=>{const parser=new DOMParser;const doc=parser.parseFromString(content,"text/html");const parsers=[doc=>parseBlocksFromTable(doc.body.firstElementChild),doc=>parseBlocksFromLegacyBlockEditor(doc.body.childNodes)];let blocks=[];for(let parser of parsers){try{blocks=parser(doc);if(blocks&&blocks.length){return blocks}}catch(e){}}return[]};const parseBlocksFromTable=table=>{let blocks=[];let rows=table.querySelector("tbody")?.childNodes;if(!rows){return[]}for(let row of rows){let block=parseBlockFromRow(row);if(block){blocks.push(block)}}return blocks};const parseBlockFromRow=tr=>{let comment=tr.firstChild;let commentData=removeFontQuotesFromCommentData(comment?.nodeValue?.trim());if(!commentData){return null}let attributes={};let unused,type,id,json;try{if(commentData.indexOf("{")>-1){[unused,type,id,json]=commentData.match(/^([a-z]+):([a-zA-Z0-9\-]+) ({.*})$/);attributes=JSON.parse(json)}else{[unused,type,id]=commentData.match(/^([a-z]+):([a-zA-Z0-9\-]+)$/)}}catch(e){}const BlockType=BlockRegistry.get(type);const getAttributes=BlockType.attributes;const el=tr.querySelector(`td#b-${id}`);let block={type:type,id:id,...attributes};for(let getter in getAttributes){try{block[getter]=getAttributes[getter](el,block)}catch(e){block[getter]=BlockType.defaults[getter]}}let matches=el.innerText.trim().match(/^\[([a-z]+):([a-zA-Z0-9\-]+):dynamicContent ({.*})\/\]$/);if(matches&&matches.length){let compatDynamicAttrs=JSON.parse(matches[3]);if(compatDynamicAttrs){block={...block,...compatDynamicAttrs}}}block.advancedStyle=AdvancedStyleControls.parse(el);block.hide_on_mobile=el.classList.contains("hide-on-mobile");block.hide_on_desktop=el.classList.contains("hide-on-desktop");block.hide_in_browser=el.classList.contains("hide-in-browser");return block};const convertToGutenbergBlocks=content=>{if(!getState().gutenbergInitialized){setState({gutenbergInitialized:true});let gutenbergContainer=Div({id:"gutenberg-temp",style:{display:"none"}});document.querySelector("body").append(gutenbergContainer);initializeEditor("gutenberg-temp")}let blocks=rawHandler({HTML:content});return serialize(blocks)};$("head").append(`<style id="builder-style" type="text/css"></style>`);if(isEmailEditorPage()){window.addEventListener("beforeunload",e=>{if(getState().hasChanges){e.preventDefault();let msg=__("You have unsaved changes, are you sure you want to leave?","groundhogg");e.returnValue=msg;return msg}return null})}if(!globalFonts||!Array.isArray(globalFonts)||!globalFonts.length){GlobalFonts.fonts=[{name:"Paragraph",id:uuid(),style:fontDefaults({})},{name:"Heading 1",id:uuid(),style:fontDefaults({fontSize:42})},{name:"Heading 2",id:uuid(),style:fontDefaults({fontSize:36})},{name:"Heading 3",id:uuid(),style:fontDefaults({fontSize:24})}]}else{GlobalFonts.fonts=globalFonts}if(!colorPalette||!Array.isArray(colorPalette)||!colorPalette.length){colorPalette=["#000","#fff","#dd3333","#DD9933","#EEEE22","#81D742","#1E73BE","#8224E3"]}if(isEmailEditorPage()){let{email:email=null}=_BlockEditor;if(email){EmailsStore.itemsFetched([email]);window.addEventListener("load",()=>{initialize({email:email})})}}function selectText(node){if(document.body.createTextRange){const range=document.body.createTextRange();range.moveToElementText(node);range.select()}else if(window.getSelection){const selection=window.getSelection();const range=document.createRange();range.selectNodeContents(node);selection.removeAllRanges();selection.addRange(range)}else{console.warn("Could not select text in node: Unsupported browser.")}}$(document).on("click","code.copy-text",e=>{selectText(e.currentTarget);navigator.clipboard.writeText(e.currentTarget.innerText);dialog({message:"Copied to clipboard!"})});Groundhogg.EmailEditor=initialize;Groundhogg.emailEditor={PostTagReference:PostTagReference, registerBlock:registerBlock,registerDynamicBlock:registerDynamicBlock,getActiveBlock:getActiveBlock,isActiveBlock:isActiveBlock,isEditing:isEditing,isCreating:isCreating,isBlockEditor:isBlockEditor,isHTMLEditor:isHTMLEditor,functions:{optimizeCSS:optimizeCSS},components:{Control:Control,ControlGroup:ControlGroup,NumberControl:NumberControl,ImageControls:ImageControls,FontControls:FontControls,ColorPicker:ColorPicker,BorderControlGroup:BorderControlGroup,BorderControls:BorderControls,TopRightBottomLeft:TopRightBottomLeft}}})(jQuery);212 <p>{owner_signature}</p>`}),createBlock("footer")];page="templates"}if(!email.meta.template){email.meta.template=BOXED}setState({page:page,activeBlock:null,openPanels:{},blockControlsTab:"block",emailControlsTab:"email",isGeneratingHTML:false,email:email,preview:preview,previewPlainText:previewPlainText,previewFromName:previewFromName,previewFromEmail:previewFromEmail,previewFromAvatar:previewFromAvatar,previewSubject:previewSubject});setBlocks(blocks,false);syncReplacementCodes();renderEditor()};function optimizeCSS(css){const ruleMap={};css.replace(/\/\*[\s\S]*?\*\//g,"").split("}").forEach(rule=>{const[selectors,declarations]=rule.split("{");if(!selectors||!declarations){return}const cleaned=declarations.trim().replace(/\s+/g," ").replace(/;$/,"");if(!cleaned){return}const key=cleaned;ruleMap[key]=ruleMap[key]||[];ruleMap[key].push(selectors.trim())});let optimized="";for(const[declarations,selectors]of Object.entries(ruleMap)){optimized+=`${selectors.join(",")}{${declarations}}`}return optimized}const renderBlocksCSS=blocks=>{let css=blocks.map(b=>BlockRegistry.css(b)).join("\n").replaceAll(/(\s*\n|\s*\r\n|\s*\r){1,}/g,"\n");css=optimizeCSS(css);return css};const maybeAddReplacementProtocols=(el,tag,attr)=>{el.querySelectorAll(tag).forEach(el=>{let value=el.getAttribute(attr);if(!value||!value.startsWith("{")){return}el.setAttribute(attr,`replacement:${value}`)})};function fixStyleQuotes(htmlString){return htmlString.replace(/(\bstyle\s*=\s*")([^"]*)(")/gi,(_,prefix,contents,suffix)=>prefix+contents.replace(/"/g,"'")+suffix)}const renderBlocksHTML=blocks=>{let htmlEl=Table({cellpadding:"0",cellspacing:"0",width:"100%",role:"presentation"},blocks.filter(b=>b.type).map(block=>BlockHTML(block)));maybeAddReplacementProtocols(htmlEl,"img","src");maybeAddReplacementProtocols(htmlEl,"a","href");let html=htmlEl.outerHTML;html=html.replaceAll(new RegExp(`"(${subFontsWithSpaces.join("")})"`,"g"),"'$1'");html=fixStyleQuotes(html);return html};const renderBlocksGutenberg=blocks=>{return blocks.filter(b=>b.type).map(block=>{let text;let{hide_on_desktop:hide_on_desktop=false}=block;if(hide_on_desktop){return""}try{text=BlockRegistry.get(block.type).gutenberg(block)}catch(e){text=""}return text}).filter(text=>text.length>0).join("\n\n").replaceAll(/(\n|\r\n|\r){3,}/g,"\n\n")};const renderBlocksPlainText=blocks=>{return blocks.filter(b=>b.type).map(block=>{let text;let{hide_on_desktop:hide_on_desktop=false}=block;if(hide_on_desktop){return""}try{text=BlockRegistry.get(block.type).plainText(block);return[BlockStartComment(block),text,BlockEndComment(block)].join("")}catch(e){return""}}).filter(text=>text.length>0).join("\n\n").replaceAll(/(\n|\r\n|\r){3,}/g,"\n\n")};const morphBlocks=()=>{if(isHTMLEditor()){return}morph("#builder-content",BlockEditorContent())};const removeControls=()=>morph("#controls-panel",Div());const morphControls=()=>morph("#controls-panel",ControlsPanel());const morphContent=()=>morph("#content",ContentEditor());const morphBlockEditor=()=>morph("#email-block-editor",BlockEditor());const morphEmailEditor=()=>{morph("#email-editor",EmailEditor(),false);window.dispatchEvent(new Event("resize"))};const morphHeader=()=>morph("#email-header",Header());const updateStyles=()=>{$("#builder-style").text(`#block-editor-content-wrap{ \n\n${renderBlocksCSS(getBlocks())}\n\n${getEmailMeta().template_css??""}\n\n }`)};const updateStylesDebounced=Groundhogg.functions.debounce(updateStyles,300);const renderEditor=()=>{morphEmailEditor();updateStyles()};const parseBlocksFromLegacyBlockEditor=nodes=>{let blocks=[];let timeout;const parseBlock=node=>{let oldBlockType=node.dataset.block;if(!oldBlockType){let blockContainer=node.firstElementChild;oldBlockType=blockContainer.classList[blockContainer.classList.length-1]}let block,img,a,button,el,spacer,divider,html,text;switch(oldBlockType){case"image":case"image_block":img=node.querySelector("img");a=node.querySelector("a");block=createBlock("image",{src:img.src,alt:img.alt,title:img.title,width:img.width,link:a.href});break;case"text":case"text_block":let textContainer=node.querySelector(".text_block").firstElementChild;text=textContainer.innerHTML;let props={content:text,p:fontDefaults({fontSize:parseInt(textContainer.style.fontSize),fontFamily:textContainer.style.fontFamily})};const setFontProps=tag=>{el=textContainer.querySelector(tag);if(!el){return}props[tag]=fontDefaults({fontSize:parseInt(el.style.fontSize),fontFamily:el.style.fontFamily})};setFontProps("h1");setFontProps("h2");setFontProps("h3");block=createBlock("text",props);break;case"button":case"button_block":button=node.querySelector("td.email-button");a=button.querySelector("a");block=createBlock("button",{text:a.innerHTML,link:a.href,backgroundColor:button.getAttribute("bgcolor"),style:{color:a.style.color,fontSize:parseInt(a.style.fontSize),fontWeight:a.style.fontWeight,fontFamily:a.style.fontFamily}});break;case"spacer":case"spacer_block":spacer=node.querySelector("td.spacer");block=createBlock("spacer",{height:spacer.height});break;case"divider":case"divider_block":divider=node.querySelector("hr");block=createBlock("divider",{height:parseInt(divider.style.borderTopWidth),width:parseInt(divider.style.width),color:divider.style.borderTopColor});break;case"html":case"html_block":html=node.querySelector(".inner-content").innerHTML;block=createBlock("html",{content:html});break}return block};nodes.forEach(node=>{if(node.nodeType===Node.TEXT_NODE){return}try{blocks.push(parseBlock(node))}catch(e){clearTimeout(timeout);setTimeout(()=>{dialog({type:"error",message:"Some blocks could not be converted to the new editor."})},100)}});return blocks};const parseBlocksFromContent=content=>{const parser=new DOMParser;const doc=parser.parseFromString(content,"text/html");const parsers=[doc=>parseBlocksFromTable(doc.body.firstElementChild),doc=>parseBlocksFromLegacyBlockEditor(doc.body.childNodes)];let blocks=[];for(let parser of parsers){try{blocks=parser(doc);if(blocks&&blocks.length){return blocks}}catch(e){}}return[]};const parseBlocksFromTable=table=>{let blocks=[];let rows=table.querySelector("tbody")?.childNodes;if(!rows){return[]}for(let row of rows){let block=parseBlockFromRow(row);if(block){blocks.push(block)}}return blocks};const parseBlockFromRow=tr=>{let comment=tr.firstChild;let commentData=removeFontQuotesFromCommentData(comment?.nodeValue?.trim());if(!commentData){return null}let attributes={};let unused,type,id,json;try{if(commentData.indexOf("{")>-1){[unused,type,id,json]=commentData.match(/^([a-z]+):([a-zA-Z0-9\-]+) ({.*})$/);attributes=JSON.parse(json)}else{[unused,type,id]=commentData.match(/^([a-z]+):([a-zA-Z0-9\-]+)$/)}}catch(e){}const BlockType=BlockRegistry.get(type);const getAttributes=BlockType.attributes;const el=tr.querySelector(`td#b-${id}`);let block={type:type,id:id,...attributes};for(let getter in getAttributes){try{block[getter]=getAttributes[getter](el,block)}catch(e){block[getter]=BlockType.defaults[getter]}}let matches=el.innerText.trim().match(/^\[([a-z]+):([a-zA-Z0-9\-]+):dynamicContent ({.*})\/\]$/);if(matches&&matches.length){let compatDynamicAttrs=JSON.parse(matches[3]);if(compatDynamicAttrs){block={...block,...compatDynamicAttrs}}}block.advancedStyle=AdvancedStyleControls.parse(el);block.hide_on_mobile=el.classList.contains("hide-on-mobile");block.hide_on_desktop=el.classList.contains("hide-on-desktop");block.hide_in_browser=el.classList.contains("hide-in-browser");return block};const convertToGutenbergBlocks=content=>{if(!getState().gutenbergInitialized){setState({gutenbergInitialized:true});let gutenbergContainer=Div({id:"gutenberg-temp",style:{display:"none"}});document.querySelector("body").append(gutenbergContainer);initializeEditor("gutenberg-temp")}let blocks=rawHandler({HTML:content});return serialize(blocks)};$("head").append(`<style id="builder-style" type="text/css"></style>`);if(isEmailEditorPage()){window.addEventListener("beforeunload",e=>{if(getState().hasChanges){e.preventDefault();let msg=__("You have unsaved changes, are you sure you want to leave?","groundhogg");e.returnValue=msg;return msg}return null})}if(!globalFonts||!Array.isArray(globalFonts)||!globalFonts.length){GlobalFonts.fonts=[{name:"Paragraph",id:uuid(),style:fontDefaults({})},{name:"Heading 1",id:uuid(),style:fontDefaults({fontSize:42})},{name:"Heading 2",id:uuid(),style:fontDefaults({fontSize:36})},{name:"Heading 3",id:uuid(),style:fontDefaults({fontSize:24})}]}else{GlobalFonts.fonts=globalFonts}if(!colorPalette||!Array.isArray(colorPalette)||!colorPalette.length){colorPalette=["#000","#fff","#dd3333","#DD9933","#EEEE22","#81D742","#1E73BE","#8224E3"]}if(isEmailEditorPage()){let{email:email=null}=_BlockEditor;if(email){EmailsStore.itemsFetched([email]);window.addEventListener("load",()=>{initialize({email:email})})}}function selectText(node){if(document.body.createTextRange){const range=document.body.createTextRange();range.moveToElementText(node);range.select()}else if(window.getSelection){const selection=window.getSelection();const range=document.createRange();range.selectNodeContents(node);selection.removeAllRanges();selection.addRange(range)}else{console.warn("Could not select text in node: Unsupported browser.")}}$(document).on("click","code.copy-text",e=>{selectText(e.currentTarget);navigator.clipboard.writeText(e.currentTarget.innerText);dialog({message:"Copied to clipboard!"})});Groundhogg.EmailEditor=initialize;Groundhogg.emailEditor={PostTagReference:PostTagReference,BlockRegistry:BlockRegistry,registerBlock:registerBlock,registerDynamicBlock:registerDynamicBlock,getActiveBlock:getActiveBlock,isActiveBlock:isActiveBlock,isEditing:isEditing,isCreating:isCreating,isBlockEditor:isBlockEditor,isHTMLEditor:isHTMLEditor,functions:{optimizeCSS:optimizeCSS},components:{Control:Control,ControlGroup:ControlGroup,NumberControl:NumberControl,ImageControls:ImageControls,FontControls:FontControls,ColorPicker:ColorPicker,BorderControlGroup:BorderControlGroup,BorderControls:BorderControls,TopRightBottomLeft:TopRightBottomLeft}}})(jQuery); -
groundhogg/tags/4.2.5.1/groundhogg.php
r3347592 r3352650 4 4 * Plugin URI: https://www.groundhogg.io/?utm_source=wp-plugins&utm_campaign=plugin-uri&utm_medium=wp-dash 5 5 * Description: CRM and marketing automation for WordPress 6 * Version: 4.2.5 6 * Version: 4.2.5.1 7 7 * Author: Groundhogg Inc. 8 8 * Author URI: https://www.groundhogg.io/?utm_source=wp-plugins&utm_campaign=author-uri&utm_medium=wp-dash … … 25 25 if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly 26 26 27 define( 'GROUNDHOGG_VERSION', '4.2.5 ' );28 define( 'GROUNDHOGG_PREVIOUS_STABLE_VERSION', '4.2. 4.2' );27 define( 'GROUNDHOGG_VERSION', '4.2.5.1' ); 28 define( 'GROUNDHOGG_PREVIOUS_STABLE_VERSION', '4.2.5' ); 29 29 30 30 define( 'GROUNDHOGG__FILE__', __FILE__ ); -
groundhogg/tags/4.2.5.1/includes/functions.php
r3347592 r3352650 9015 9015 $id_col = $table->get_object_id_col(); 9016 9016 9017 // maybe we check if there are redactions to do first? 9018 $query = new Table_Query( $table ); 9019 $query->setSelect( 'meta_id' )->setLimit( 1 )->where()->startsWith( 'meta_key', '_redact_' ); 9020 $exists = $query->get_results(); 9021 9022 // there are no redactions found 9023 if ( empty( $exists ) ) { 9024 return; 9025 } 9026 9017 9027 $time = time(); 9018 9028 … … 9030 9040 AND expires.meta_key = CONCAT('_redact_', meta.meta_key) 9031 9041 SET meta.meta_value = REGEXP_REPLACE(meta.meta_value, '[^[:space:]]', '█') 9032 WHERE expires.meta_value < {$time} 9042 WHERE expires.meta_value REGEXP '^[0-9]+$' 9043 AND CAST(expires.meta_value AS UNSIGNED) < {$time}; 9033 9044 SQL; 9034 9045 } else { … … 9040 9051 AND expires.meta_key = CONCAT('_redact_', meta.meta_key) 9041 9052 SET meta.meta_value = REPEAT('█', CHAR_LENGTH(meta.meta_value)) 9042 WHERE expires.meta_value < {$time} 9053 WHERE expires.meta_value REGEXP '^[0-9]+$' 9054 AND CAST(expires.meta_value AS UNSIGNED) < {$time}; 9043 9055 SQL; 9044 9056 } -
groundhogg/tags/4.2.5.1/includes/steps/funnel-step.php
r3343709 r3352650 155 155 */ 156 156 public function get_icon() { 157 158 157 $file_name = str_replace( '_', '-', $this->get_type() ) . '.svg'; 159 160 158 return GROUNDHOGG_ASSETS_URL . 'images/funnel-icons/' . $file_name; 161 159 } … … 172 170 if ( $icon && str_ends_with( $icon, '.svg' ) ) { 173 171 174 // get the absolute path of the svg file relative to wp-content 175 $icon_path = preg_replace( '@https://.*/wp-content/plugins/@', WP_PLUGIN_DIR . '/', $icon ); 172 $icon_path = str_replace( trailingslashit( plugins_url() ), trailingslashit( WP_PLUGIN_DIR ), $icon ); 176 173 177 174 return files()->filesystem()->get_contents( $icon_path ); -
groundhogg/trunk/README.txt
r3347592 r3352650 7 7 Tested up to: 6.8 8 8 Requires PHP: 7.1 9 Stable tag: 4.2. 4.29 Stable tag: 4.2.5.1 10 10 License: GPLv3 11 11 License URI: https://www.gnu.org/licenses/gpl.md … … 375 375 376 376 == Changelog == 377 378 = 4.2.5.1 (2025-08-21) = 379 * FIXED Flow icons not loading correctly when using custom `wp-content` directory. 377 380 378 381 = 4.2.5 (2025-08-20) = -
groundhogg/trunk/assets/css/admin/elements.css
r3269144 r3352650 38 38 } 39 39 } 40 h3.no-margin-top { 41 margin-top: 0; 40 .no-margin-top { 41 margin-top: 0 !important; 42 } 43 44 .no-margin-bottom { 45 margin-bottom: 0 !important; 42 46 } 43 47 -
groundhogg/trunk/assets/css/admin/elements.css.map
r3269144 r3352650 1 {"version":3,"sourceRoot":"","sources":["elements.scss"],"names":[],"mappings":"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ACE;;AAMF;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AAMN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAIA;EACE;EACA;;AAMR;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;;AAGF;EACE;EACA,YA5yDc;EA6yDd;EACA;EACA;EACA;;AAGF;EACE;;AAIF;EACE;EACA;EACA;;AAGF;EACE;EACA;EAEA;;AAGF;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;;AAGF;EACE;;AAGF;EACE;;AAIA;EACE;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAIJ;EACE;;AAEA;EACE;;AAKN;EACE;EACA;EACA;EACA;;AAGF;EAOE;EAEA;EACA;EACA;;AAKA;EACE;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;;;AAMJ;EACE;EACA;;;AAIJ;EACE;;;AAMF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;AAAA;EAEE;EACA;;AAEA;AAAA;AAAA;AAAA;EAEE;EACA;;AAEA;AAAA;AAAA;AAAA;EACE;;AAIJ;AAAA;EAgBE;EACA;EACA;;AAfE;AAAA;EACE;EACA;EACA;;AAIJ;AAAA;EACE;EACA;EACA;;AAQJ;AAAA;EACE;EACA;;AAKE;AAAA;EACE;EACA;EACA;;AAKF;AAAA;EACE;EACA;;;AAMR;AAAA;EAEE,OA1/DU;;;AA8/DV;EACE;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EAEE;;AAEA;EACE;;AAEA;AAAA;EAEE;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;AAAA;EAEE;EACA;;AAGF;EAEE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAKF;AAAA;AAAA;EAGE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAKF;EACE;;AAKF;AAAA;EAEE;;AAKN;EACE;;AAGA;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;;AAKN;EACE;;;AAGF;EAEE;EACA;EACA;EACA;EACA;EACA;EACA,YAznEW;EA0nEX;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE,kBArqEY;EAsqEZ;;;AAKN;EAEE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EAEE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;EACE,OAnuEO;;AAsuET;EACE;EACA,kBAxuEO;EAyuEP,cAzuEO;EA0uEP;;;AAOR;EACE;EACA;EACA;EACA;;AAEA;EAEE;EACA;EAUA;EACA;EACA;EACA;;AAXA;EACE,kBAhvEW;;AAmvEb;EACE;;AASJ;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OA5wEW;;AA8wEX;AAAA;EACE,YAvwES;EAwwET;;AAGF;AAAA;EACE,YAlwEY;EAmwEZ;;AAGF;AAAA;EACE;EACA;EACA;;AAEA;AAAA;EACE,kBAxxES;;;AA+xEjB;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;;AAIJ;EACE;;AAGF;AAAA;EAEE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;EACE;;;AAQN;EACE;EACA;EACA;EACA;;;AAKA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;;AAIJ;EACE;EAEA,kBAl2EgB;EAm2EhB;EACA;EACA;;AAKA;EAGE,kBAj2EW;;AAm2EX;EACE,kBAt2EM;;AA02EV;EACE;EAKA;EACA,kBA/3EW;EAg4EX;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE,cAp3EW;;AAs3EX;EACE,kBAv3ES;;AA63EX;EAEE;;AAEA;EACE;EACA;EACA;;;AAMR;AAAA;EAGE;EACA;;AAGE;AAAA;EACE;;AAIJ;AAAA;EACE;EACA;EACA;EACA,kBA36EW;EA46EX;EACA,YAz5ES;EA05ET;EACA;EACA;EACA;EACA;EAEA;;AAEA;AAAA;EACE;EACA;EACA;;AAEA;AAAA;EACE;;AAIJ;AAAA;EACE;EACA;EAEA;;AAEA;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;;AAIJ;AAAA;EACE;EACA;EAEA;;AAEA;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;;AAIJ;AAAA;EACE;EACA;EACA;;AAEA;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIJ;AAAA;EACE;EACA;EACA;;AAEA;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIJ;AAAA;EACE;EACA;;AAEA;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAMR;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;;;AAIJ;EACE;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;;AAOR;EAEE;EACA;EACA;;AAEA;EACE;EACA;;AAIA;EACE,OAtlFa;;AA2lFf;EACE,OAzlFS;;AA6lFb;EACE;EACA;;;AAIJ;EACE;EACA;;;AAGF;EACE;;AAGE;EACE;;;AAMN;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAIA;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;;AAOJ;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA,qBACA;EACA;;AAIE;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAKN;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA,kBAxvFS;EAyvFT,cA1vFS;EA2vFT;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAKJ;EACE;;AAGF;EACE;;;AAMJ;AACA;EACE;EACA;EACA;;;AAIA;EAEE;EACA;EACA;;AAEA;EACE,cA3zFS;EA4zFT,YAzzFY;;AA6zFhB;AAAA;EAEE;;;AAKF;EACE;;;AAIJ;EACE;;AAEA;EACE;EAEA;EACA;EACA;;;AAKJ;AACA;EACE;AAAa;EACb;EACA;AAA2C;;;AAG7C;AACA;EACE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;AAIJ;EACE;EACA;EACA;;;AAGF;EACE;IACE;;;AAIJ;EACE;IACE;;;AAIJ;EACE;IACE;IACA;;;AAIJ;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA,kBA34Fa;;AA64Fb;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAMA;EACE,kBA55FU;;AAk6FhB;EACE;EACA;;;AAIJ;EACE;EACA,qBACE;EAEF;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;;AAKF;EACE;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE,OAl+FS;EAm+FT,YAr+FW;;;AA2+FjB;EAEE;EACA;EAWA;EACA;EACA;;AAXA;EACE;EACA;;AAEA;EACE;;AAQJ;EACE;;AAGF;EACE;EAmBA;EACA;EACA;EACA;;AAnBE;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAUN;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA,YAniGY;EAoiGZ;EACA;EACA;EACA;EACA;;AAEA;EACE,YAviGO;EAwiGP;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE,OA3jGK;EA4jGL;;AAMR;EACE;EACA;EACA;;AAGF;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;EACA;EACA;EAIA;;AASF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE,OAnnGO;EAonGP,YAtnGS;;;AA+nGf;EACE;EACA;EACA;EACA;EACA,kBA7nGc;EA8nGd;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE,kBAzoGW;EA0oGX;;AAKF;EACE;;AAGF;EACE;;;AAMJ;EACE;EACA,OAlqGW;EAmqGX;EACA;;AAEA;EACE,YAlqGY;;AAsqGhB;EACE;EACA;;;AAIJ;EACE;IACE,kBA7qGa;;EA+qGf;IACE,kBAnrGc;;;AAurGlB;EACE;;;AAGF;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE,OA5tGc;;AA+tGhB;EACE;;AAGF;EACE;EACA;EACA;;AAEA;EAKE;EACA;EACA;;AANA;EACE;;AASN;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EAEE;EAEA;EACA;EACA;;AAIA;EACE;;;AAKN;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;;AAOF;EACE,kBAryGa;;;AA0yGf;EACE;;;AAKF;EACE;EACA;;AAIA;EACE;EACA;;;AAKN;EACE;;AAEA;EACE;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE,kBA10GY;;;AA+0GlB;EAEE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGA;EACE;;AAIA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAGF;AAAA;EAEE","file":"elements.css"}1 {"version":3,"sourceRoot":"","sources":["elements.scss"],"names":[],"mappings":"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;EACA;EACA;;AAGF;EACE;;AAKJ;EACE;;AAEA;EACE;;AAIJ;EACE,YAxwBW;;AA2wBb;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA,OA9yBU;;AAizBZ;EACE,OArzBO;;AAwzBT;EACE;;AAGF;EACE;;AAIA;EACE;;AAKF;EACE;;AAGF;EACE;;AAKN;EAEE;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;;AAQJ;EACE;EACA;;AAKF;EACE;;AAGF;EACE;EACA;;;AAMJ;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;;;AAQR;EACE,cA74BQ;;AA+4BR;EACE,cAh5BM;EAi5BN;EACA;;;AAMJ;EACE;;AAIA;EACE;;;AAKN;EACE;EACA;EACA,YAz5BW;EA05BX;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA,kBA37BW;EA47BX;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EAEA;EACA,kBAz9BW;;AA49Bb;EACE;EACA;EACA;;AAKA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAEE;EACA;;AAGF;EACE;;AAGF;EACE,OAr/BU;;;AA2/BlB;EACE;EACA;EACA;;;AAGF;EACE,YAvgCe;EAwgCf;EACA;EACA;EACA,OAzgCa;;AA2gCb;EACE;;AACA;EACE,kBA1gCY;;AA8gChB;EAEE,YAxgCc;EAygCd;;AAGF;EAEE,YA1gCkB;EA2gClB;;AAGF;EAEE,YAriCc;;AAwiChB;EAEE,YAnhCc;EAohCd;;AAGF;EAEE,YAjiCW;EAkiCX;;AAGF;EACE,kBAhjCW;EAijCX;;AAGF;EACE,kBA1iCe;EA2iCf;;AAGF;EACE,kBAzjCc;EA0jCd;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAEA;EACE;;;AAWJ;AAAA;AAAA;AAAA;AAAA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ACA,kBAxoDW;;AA2oDb;EACE;EACA,kBAvpDQ;;AA0pDV;EACE;EACA,kBArpDe;;AAwpDjB;EACE;EACA,kBAxqDW;;;AA4qDf;EACE;;;AAKA;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;;AAIJ;EACE;;AAIA;EACE;;AAIJ;EACE;;AAEA;EACE;;AAMF;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AAMN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAIA;EACE;EACA;;AAMR;EACE;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;;AAGF;EACE;EACA,YA9yDc;EA+yDd;EACA;EACA;EACA;;AAGF;EACE;;AAIF;EACE;EACA;EACA;;AAGF;EACE;EACA;EAEA;;AAGF;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAIJ;EACE;;AAGF;EACE;;AAGF;EACE;;AAIA;EACE;;AAKF;EACE;EACA;EACA;;AAGF;EACE;;AAIJ;EACE;;AAEA;EACE;;AAKN;EACE;EACA;EACA;EACA;;AAGF;EAOE;EAEA;EACA;EACA;;AAKA;EACE;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;;;AAMJ;EACE;EACA;;;AAIJ;EACE;;;AAMF;EACE;EACA;;;AAGF;EACE;EACA;;;AAGF;AAAA;EAEE;EACA;;AAEA;AAAA;AAAA;AAAA;EAEE;EACA;;AAEA;AAAA;AAAA;AAAA;EACE;;AAIJ;AAAA;EAgBE;EACA;EACA;;AAfE;AAAA;EACE;EACA;EACA;;AAIJ;AAAA;EACE;EACA;EACA;;AAQJ;AAAA;EACE;EACA;;AAKE;AAAA;EACE;EACA;EACA;;AAKF;AAAA;EACE;EACA;;;AAMR;AAAA;EAEE,OA5/DU;;;AAggEV;EACE;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EAEE;;AAEA;EACE;;AAEA;AAAA;EAEE;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;AAAA;EAEE;EACA;;AAGF;EAEE;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAKF;AAAA;AAAA;EAGE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAKF;EACE;;AAKF;AAAA;EAEE;;AAKN;EACE;;AAGA;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;;AAKN;EACE;;;AAGF;EAEE;EACA;EACA;EACA;EACA;EACA;EACA,YA3nEW;EA4nEX;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE,kBAvqEY;EAwqEZ;;;AAKN;EAEE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EAEE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;EACE,OAruEO;;AAwuET;EACE;EACA,kBA1uEO;EA2uEP,cA3uEO;EA4uEP;;;AAOR;EACE;EACA;EACA;EACA;;AAEA;EAEE;EACA;EAUA;EACA;EACA;EACA;;AAXA;EACE,kBAlvEW;;AAqvEb;EACE;;AASJ;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OA9wEW;;AAgxEX;AAAA;EACE,YAzwES;EA0wET;;AAGF;AAAA;EACE,YApwEY;EAqwEZ;;AAGF;AAAA;EACE;EACA;EACA;;AAEA;AAAA;EACE,kBA1xES;;;AAiyEjB;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;;AAIJ;EACE;;AAGF;AAAA;EAEE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;EACE;;;AAQN;EACE;EACA;EACA;EACA;;;AAKA;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;;AAIJ;EACE;EAEA,kBAp2EgB;EAq2EhB;EACA;EACA;;AAKA;EAGE,kBAn2EW;;AAq2EX;EACE,kBAx2EM;;AA42EV;EACE;EAKA;EACA,kBAj4EW;EAk4EX;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE,cAt3EW;;AAw3EX;EACE,kBAz3ES;;AA+3EX;EAEE;;AAEA;EACE;EACA;EACA;;;AAMR;AAAA;EAGE;EACA;;AAGE;AAAA;EACE;;AAIJ;AAAA;EACE;EACA;EACA;EACA,kBA76EW;EA86EX;EACA,YA35ES;EA45ET;EACA;EACA;EACA;EACA;EAEA;;AAEA;AAAA;EACE;EACA;EACA;;AAEA;AAAA;EACE;;AAIJ;AAAA;EACE;EACA;EAEA;;AAEA;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;;AAIJ;AAAA;EACE;EACA;EAEA;;AAEA;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;;AAIJ;AAAA;EACE;EACA;EACA;;AAEA;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIJ;AAAA;EACE;EACA;EACA;;AAEA;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIJ;AAAA;EACE;EACA;;AAEA;AAAA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAMR;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;;;AAIJ;EACE;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;;;AAOR;EAEE;EACA;EACA;;AAEA;EACE;EACA;;AAIA;EACE,OAxlFa;;AA6lFf;EACE,OA3lFS;;AA+lFb;EACE;EACA;;;AAIJ;EACE;EACA;;;AAGF;EACE;;AAGE;EACE;;;AAMN;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAIA;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;;AAOJ;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA,qBACA;EACA;;AAIE;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;;AAKN;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA,kBA1vFS;EA2vFT,cA5vFS;EA6vFT;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAKJ;EACE;;AAGF;EACE;;;AAMJ;AACA;EACE;EACA;EACA;;;AAIA;EAEE;EACA;EACA;;AAEA;EACE,cA7zFS;EA8zFT,YA3zFY;;AA+zFhB;AAAA;EAEE;;;AAKF;EACE;;;AAIJ;EACE;;AAEA;EACE;EAEA;EACA;EACA;;;AAKJ;AACA;EACE;AAAa;EACb;EACA;AAA2C;;;AAG7C;AACA;EACE;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;EAEF;IACE;;;AAIJ;EACE;EACA;EACA;;;AAGF;EACE;IACE;;;AAIJ;EACE;IACE;;;AAIJ;EACE;IACE;IACA;;;AAIJ;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA,kBA74Fa;;AA+4Fb;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAMA;EACE,kBA95FU;;AAo6FhB;EACE;EACA;;;AAIJ;EACE;EACA,qBACE;EAEF;;AAEA;EACE;EACA;;AAGF;EACE;;AAGF;EACE;;;AAKF;EACE;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE,OAp+FS;EAq+FT,YAv+FW;;;AA6+FjB;EAEE;EACA;EAWA;EACA;EACA;;AAXA;EACE;EACA;;AAEA;EACE;;AAQJ;EACE;;AAGF;EACE;EAmBA;EACA;EACA;EACA;;AAnBE;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAUN;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAIJ;EACE;EACA,YAriGY;EAsiGZ;EACA;EACA;EACA;EACA;;AAEA;EACE,YAziGO;EA0iGP;;AAGF;EACE;EACA;EACA;EACA;;AAEA;EACE,OA7jGK;EA8jGL;;AAMR;EACE;EACA;EACA;;AAGF;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;EACA;EACA;EAIA;;AASF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE,OArnGO;EAsnGP,YAxnGS;;;AAioGf;EACE;EACA;EACA;EACA;EACA,kBA/nGc;EAgoGd;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE,kBA3oGW;EA4oGX;;AAKF;EACE;;AAGF;EACE;;;AAMJ;EACE;EACA,OApqGW;EAqqGX;EACA;;AAEA;EACE,YApqGY;;AAwqGhB;EACE;EACA;;;AAIJ;EACE;IACE,kBA/qGa;;EAirGf;IACE,kBArrGc;;;AAyrGlB;EACE;;;AAGF;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;;AAEA;EACE;EACA;;AAIJ;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE,OA9tGc;;AAiuGhB;EACE;;AAGF;EACE;EACA;EACA;;AAEA;EAKE;EACA;EACA;;AANA;EACE;;AASN;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EAEE;EAEA;EACA;EACA;;AAIA;EACE;;;AAKN;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;;AAOF;EACE,kBAvyGa;;;AA4yGf;EACE;;;AAKF;EACE;EACA;;AAIA;EACE;EACA;;;AAKN;EACE;;AAEA;EACE;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE,kBA50GY;;;AAi1GlB;EAEE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAGA;EACE;;AAIA;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAGF;AAAA;EAEE","file":"elements.css"} -
groundhogg/trunk/assets/css/admin/elements.scss
r3269144 r3352650 80 80 } 81 81 82 h3 { 83 &.no-margin-top { 84 margin-top: 0; 85 } 82 .no-margin-top { 83 margin-top: 0 !important; 84 } 85 86 .no-margin-bottom { 87 margin-bottom: 0 !important; 86 88 } 87 89 -
groundhogg/trunk/assets/js/admin/admin.js
r3275088 r3352650 721 721 } 722 722 723 function arrayToggle(arr, value) { 724 const index = arr.indexOf(value); 725 if (index === -1) { 726 arr.push(value); // not in array → add 727 } else { 728 arr.splice(index, 1); // in array → remove 729 } 730 return arr; 731 } 732 723 733 const dismissNotice = (id) => Groundhogg.api.ajax({ 724 734 action: 'gh_dismiss_notice', … … 735 745 gh.functions.maybeCall = maybeCall 736 746 gh.functions.dismissNotice = dismissNotice 747 gh.functions.arrayToggle = arrayToggle 737 748 738 749 $(document).on('click', 'button.hide-panel', e => { -
groundhogg/trunk/assets/js/admin/admin.min.js
r3275088 r3352650 1 (function($,nonces,endpoints,gh){const{currentUser,isSuperAdmin}=Groundhogg;Groundhogg.user={getCurrentUser:()=>{return currentUser},userHasCap:cap=>{return currentUser.allcaps[cap]||currentUser.caps[cap]||isSuperAdmin},getOwner:id=>{return Groundhogg.filters.owners.find(u=>u.ID==id)},getOwnerDisplayName:id=>{return Groundhogg.filters.owners.find(u=>u.ID==id).data.display_name}};$.fn.serializeFormJSON=function(){var o={};var a=this.serializeArray();$.each(a,function(){if(o[this.name]){if(!o[this.name].push){o[this.name]=[o[this.name]]}o[this.name].push(this.value||"")}else{o[this.name]=this.value||""}});return o};function picker(selector,args){return $(selector).select2(args)}$.fn.ghPicker=function({endpoint,getResults:getResults=r=>r.items,getParams:getParams=q=>({...q,search:q.term}),...rest}){this.select2({tokenSeparators:["/",",",";"],delay:100,ajax:{url:endpoint,dataType:"json",data:getParams,beforeSend:function(xhr){xhr.setRequestHeader("X-WP-Nonce",wpApiSettings.nonce)},processResults:function(data,page){return{results:getResults(data,page)}}},...rest});return this};function apiPicker(selector,endpoint,multiple=false,tags=false,getResults=d=>d.results,getParams=q=>({...q,search:q.term}),select2opts={}){return $(selector).select2({tags:tags,multiple:multiple,tokenSeparators:["/",",",";"],delay:100,ajax:{url:endpoint,dataType:"json",data:getParams,beforeSend:function(xhr){xhr.setRequestHeader("X-WP-Nonce",wpApiSettings.nonce)},processResults:function(data,page){return{results:getResults(data,page)}}},...select2opts})}function linkPicker(selector){let $input=$(selector);return $input.autocomplete({source:function(request,response){$.ajax({url:ajaxurl,method:"post",dataType:"json",data:{action:"wp-link-ajax",_ajax_linking_nonce:nonces._ajax_linking_nonce,term:request.term},success:function(data){var $return=[];for(var item in data){if(data.hasOwnProperty(item)){item=data[item];$return.push({label:item.title+" ("+item.info+")",value:item.permalink})}}response($return)},select:(e,ui)=>{$input.value(ui.item.value).trigger("change")}})},minLength:0})}function userMetaPicker(selector){let $input=$(selector);return $input.autocomplete({source:function(request,response){$.ajax({url:ajaxurl,method:"post",dataType:"json",data:{action:"user_meta_picker",nonce:nonces._meta_nonce,term:request.term},success:function(data){response(data);$(selector).removeClass("ui-autocomplete-loading")},select:(e,ui)=>{$input.value(ui.item.value).trigger("change")}})},minLength:0})}function metaPicker(selector){let $input=$(selector);return $input.autocomplete({source:function(request,response){$.ajax({url:ajaxurl,method:"post",dataType:"json",data:{action:"gh_meta_picker",nonce:nonces._meta_nonce,term:request.term},success:function(data){response(data);$(selector).removeClass("ui-autocomplete-loading")},select:(e,ui)=>{$input.value(ui.item.value).trigger("change")}})},minLength:0})}function metaValuePicker(selector,meta_key){let $input=$(selector);return $input.autocomplete({source:function(request,response){$.ajax({url:ajaxurl,method:"post",dataType:"json",data:{action:"gh_meta_value_picker",nonce:nonces._meta_nonce,term:request.term,meta_key:meta_key},success:function(data){response(data);$(selector).removeClass("ui-autocomplete-loading")},select:(e,ui)=>{$input.value(ui.item.value).trigger("change")}})},minLength:0})}function tagPicker(selector,multiple=true,onReceiveItems=items=>{},...opts){return apiPicker(selector,gh.api.routes.v4.tags,multiple,Groundhogg.user.userHasCap("add_tags"),data=>{onReceiveItems(data.items);return data.items.map(item=>({id:item.ID,text:`${item.data.tag_name}`}))},query=>{return{search:query.term,limit:50}},...opts)}function contactPicker(selector,onReceiveItems=items=>{},...opts){return apiPicker(selector,gh.api.routes.v4.contacts,false,false,data=>{onReceiveItems(data.items);return data.items.map(item=>({id:item.ID,text:`${item.data.first_name} ${item.data.last_name} (${item.data.email})`}))},query=>{return{search:query.term,limit:50}},...opts)}function campaignPicker(selector,multiple=true,onReceiveItems=items=>{},...opts){return apiPicker(selector,gh.api.routes.v4.campaigns,multiple,true,data=>{onReceiveItems(data.items);return data.items.map(item=>({id:item.ID,text:`${item.data.name}`}))},query=>{return{search:query.term}},...opts)}function emailPicker(selector,multiple=false,onReceiveItems=items=>{},queryOpts={},...opts){return apiPicker(selector,gh.api.routes.v4.emails,multiple,false,data=>{onReceiveItems(data.items);return data.items.map(item=>({id:item.ID,text:`${item.data.title} (${item.data.status})`}))},query=>{return{search:query.term,...queryOpts}},...opts)}function funnelPicker(selector,multiple=false,onReceiveItems=items=>{},queryOpts={},...opts){return apiPicker(selector,gh.api.routes.v4.funnels,multiple,false,data=>{onReceiveItems(data.items);return data.items.map(item=>({id:item.ID,text:`${item.data.title}`}))},query=>{return{search:query.term,...queryOpts}},...opts)}function broadcastPicker(selector,multiple=false,onReceiveItems=items=>{},queryOpts={},...opts){return apiPicker(selector,gh.api.routes.v4.broadcasts,multiple,false,data=>{onReceiveItems(data.items);return data.items.map(item=>({id:item.ID,text:`${item.object.data.title} (${item.date_sent_pretty})`}))},query=>{return{search:query.term,...queryOpts}},...opts)}function searchesPicker(selector,onReceiveItems=items=>{},queryOpts={},...opts){return apiPicker(selector,gh.api.routes.v4.searches,false,false,data=>{onReceiveItems(data.items);return data.items.map(item=>({id:item.id,text:item.name}))},query=>{return{search:query.term,...queryOpts}},...opts)}const Select2Picker=selectEl=>{let pickerId=`${selectEl.id}-picker`;if(selectEl.previousElementSibling&&selectEl.previousElementSibling.id===pickerId){return}const convertOpt=selector=>[...selectEl.querySelectorAll(selector)].map(opt=>({id:opt.value,text:opt.innerHTML})).filter(opt=>opt.id&&opt.text);let picker=MakeEl.ItemPicker({id:pickerId,fetchOptions:async search=>{let opts=convertOpt("option[value]:not(:empty)");if(search){opts=opts.filter(item=>item.id.match(search)||item.text.match(search))}return opts},selected:convertOpt("option[selected]"),multiple:selectEl.multiple,tags:selectEl.dataset.tags,clearable:selectEl.multiple||selectEl.dataset.clearable,noneSelected:selectEl.dataset.placeholder??"Any...",createOption:async opt=>{selectEl.appendChild(MakeEl.makeEl("option",{value:opt,selected:true},opt));return{id:opt,text:opt}},onChange:items=>{if(!selectEl.multiple){items=[items]}let selected=items.filter(item=>item).map(item=>item.id);for(let option of selectEl.options){option.selected=selected.includes(option.value)}$(selectEl).trigger("change");selectEl.dispatchEvent(new Event("change"))}});selectEl.classList.add("hidden","picker-initialized");selectEl.pickerInitialized=true;selectEl.insertAdjacentElement("beforebegin",picker)};function buildPickers(){picker(".gh-select2",{});tagPicker(".gh-tag-picker",true);tagPicker(".gh-single-tag-picker",false);emailPicker(".gh-email-picker",false);emailPicker(".gh-email-picker-multiple",true);apiPicker(".gh-sms-picker",endpoints.sms,false,false);contactPicker(".gh-contact-picker");contactPicker(".gh-contact-picker-multiple",items=>{},{multiple:true});apiPicker(".gh-benchmark-picker",endpoints.benchmarks,false,false);apiPicker(".gh-metakey-picker",endpoints.metakeys,false,false);linkPicker(".gh-link-picker");metaPicker(".gh-meta-picker");document.querySelectorAll("select.gh-select-2-picker").forEach(select=>Select2Picker(select))}$(function(){buildPickers()});$(document).on("gh-init-pickers",function(){buildPickers()});$(document).on("click",".dropdown-button .button.dropdown",function(){var $button=$(this);$button.next().toggleClass("show");$("<div class='dropdown-overlay'></div>").insertAfter($button)});$(document).on("click",".dropdown-button .dropdown-overlay",function(){var $overlay=$(this);$overlay.next().toggleClass("show");$overlay.remove()});function moveChildren(source,target){while(source.firstChild){target.appendChild(source.firstChild)}}$(document).on("click",".gh-open-modal",e=>{e.preventDefault();let a=e.currentTarget;let source=document.querySelector(a.getAttribute("href"));let modalProps=JSON.parse(a.dataset.modalProps);const{title:title="Modal",...restModalProps}=modalProps;MakeEl.Modal({...restModalProps,onOpen:({modal})=>{let target=modal.querySelector(".source-content");moveChildren(source,target)},onClose:modal=>{let target=modal.querySelector(".source-content");moveChildren(target,source)}},({close})=>MakeEl.Fragment([MakeEl.Div({className:"gh-header modal-header"},[MakeEl.H3({},"Modal header"),MakeEl.Button({className:"gh-button icon secondary text",onClick:close},MakeEl.Dashicon("no-alt"))]),MakeEl.Div({className:"source-content"})]))});gh.pickers={picker:picker,tagPicker:tagPicker,emailPicker:emailPicker,apiPicker:apiPicker,linkPicker:linkPicker,metaPicker:metaPicker,userMetaPicker:userMetaPicker,campaignPicker:campaignPicker,searchesPicker:searchesPicker,funnelPicker:funnelPicker,broadcastPicker:broadcastPicker,metaValuePicker:metaValuePicker,contactPicker:contactPicker};gh.nonces=nonces;gh.endpoints=endpoints;if(!gh.functions){gh.functions={}}gh.functions.setCookie=(cname,cvalue,duration)=>{var d=new Date;d.setTime(d.getTime()+duration*1e3);var expires="expires="+d.toUTCString();document.cookie=cname+"="+cvalue+";"+expires+";path=/"};gh.functions.getCookie=(cname,none=null)=>{var name=cname+"=";var ca=document.cookie.split(";");for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==" "){c=c.substring(1)}if(c.indexOf(name)==0){return c.substring(name.length,c.length)}}return none};function utf8_to_b64(str){return window.btoa(unescape(encodeURIComponent(str)))}const base64_json_encode=stuff=>{return utf8_to_b64(JSON.stringify(stuff)).replaceAll("+","-").replaceAll("/","_").replaceAll("=","")};const assoc2array=(obj,a="id",b="text")=>{let array=[];Object.keys(obj).forEach(key=>{array.push({[a]:key,[b]:obj[key]})});return array};const jsonCopy=stuff=>JSON.parse(JSON.stringify(stuff));function setNestedValue(obj,path,value){const keys=path.split(".");let current=obj;for(let i=0;i<keys.length-1;i++){const key=keys[i];if(!current[key]){current[key]={}}current=current[key]}current[keys[keys.length-1]]=value}function getNestedValue(obj,path){const keys=path.split(".");let current=obj;for(let i=0;i<keys.length;i++){if(!current.hasOwnProperty(keys[i])){return undefined}current=current[keys[i]]}return current}const debounce=(callback,wait)=>{let timeoutId=null;return(...args)=>{window.clearTimeout(timeoutId);timeoutId=window.setTimeout(()=>{callback(...args)},wait)}};const maybeCall=(maybeFunc,...args)=>{if(maybeFunc instanceof Function){return maybeFunc(...args)}return maybeFunc}; const dismissNotice=id=>Groundhogg.api.ajax({action:"gh_dismiss_notice",notice:id});gh.functions.utf8_to_b64=utf8_to_b64;gh.functions.base64_json_encode=base64_json_encode;gh.functions.assoc2array=assoc2array;gh.functions.jsonCopy=jsonCopy;gh.functions.setNestedValue=setNestedValue;gh.functions.getNestedValue=getNestedValue;gh.functions.debounce=debounce;gh.functions.maybeCall=maybeCall;gh.functions.dismissNotice=dismissNotice;$(document).on("click","button.hide-panel",e=>{let btn=e.currentTarget;let id=btn.dataset.id;btn.parentElement.remove();dismissNotice(id)});var check,timeout;function schedule(){check=false;window.clearTimeout(timeout);timeout=window.setTimeout(function(){check=true},3e5)}$(function(){schedule()}).on("heartbeat-send.groundhogg-refresh-nonces",function(e,data){if(check){data["groundhogg-refresh-nonces"]=true}}).on("heartbeat-tick.groundhogg-refresh-nonces",function(e,data){let newNonces=data.groundhogg_nonces;if(newNonces){Object.keys(newNonces).forEach(nonce=>{groundhogg_nonces[nonce]=newNonces[nonce];Groundhogg.nonces[nonce]=newNonces[nonce]})}});$(document).on("click","[data-gh-href]",e=>{console.log("clicked!",e.currentTarget.dataset);window.open(e.currentTarget.dataset.ghHref,"_self")})})(jQuery,groundhogg_nonces,groundhogg_endpoints,Groundhogg);1 (function($,nonces,endpoints,gh){const{currentUser,isSuperAdmin}=Groundhogg;Groundhogg.user={getCurrentUser:()=>{return currentUser},userHasCap:cap=>{return currentUser.allcaps[cap]||currentUser.caps[cap]||isSuperAdmin},getOwner:id=>{return Groundhogg.filters.owners.find(u=>u.ID==id)},getOwnerDisplayName:id=>{return Groundhogg.filters.owners.find(u=>u.ID==id).data.display_name}};$.fn.serializeFormJSON=function(){var o={};var a=this.serializeArray();$.each(a,function(){if(o[this.name]){if(!o[this.name].push){o[this.name]=[o[this.name]]}o[this.name].push(this.value||"")}else{o[this.name]=this.value||""}});return o};function picker(selector,args){return $(selector).select2(args)}$.fn.ghPicker=function({endpoint,getResults:getResults=r=>r.items,getParams:getParams=q=>({...q,search:q.term}),...rest}){this.select2({tokenSeparators:["/",",",";"],delay:100,ajax:{url:endpoint,dataType:"json",data:getParams,beforeSend:function(xhr){xhr.setRequestHeader("X-WP-Nonce",wpApiSettings.nonce)},processResults:function(data,page){return{results:getResults(data,page)}}},...rest});return this};function apiPicker(selector,endpoint,multiple=false,tags=false,getResults=d=>d.results,getParams=q=>({...q,search:q.term}),select2opts={}){return $(selector).select2({tags:tags,multiple:multiple,tokenSeparators:["/",",",";"],delay:100,ajax:{url:endpoint,dataType:"json",data:getParams,beforeSend:function(xhr){xhr.setRequestHeader("X-WP-Nonce",wpApiSettings.nonce)},processResults:function(data,page){return{results:getResults(data,page)}}},...select2opts})}function linkPicker(selector){let $input=$(selector);return $input.autocomplete({source:function(request,response){$.ajax({url:ajaxurl,method:"post",dataType:"json",data:{action:"wp-link-ajax",_ajax_linking_nonce:nonces._ajax_linking_nonce,term:request.term},success:function(data){var $return=[];for(var item in data){if(data.hasOwnProperty(item)){item=data[item];$return.push({label:item.title+" ("+item.info+")",value:item.permalink})}}response($return)},select:(e,ui)=>{$input.value(ui.item.value).trigger("change")}})},minLength:0})}function userMetaPicker(selector){let $input=$(selector);return $input.autocomplete({source:function(request,response){$.ajax({url:ajaxurl,method:"post",dataType:"json",data:{action:"user_meta_picker",nonce:nonces._meta_nonce,term:request.term},success:function(data){response(data);$(selector).removeClass("ui-autocomplete-loading")},select:(e,ui)=>{$input.value(ui.item.value).trigger("change")}})},minLength:0})}function metaPicker(selector){let $input=$(selector);return $input.autocomplete({source:function(request,response){$.ajax({url:ajaxurl,method:"post",dataType:"json",data:{action:"gh_meta_picker",nonce:nonces._meta_nonce,term:request.term},success:function(data){response(data);$(selector).removeClass("ui-autocomplete-loading")},select:(e,ui)=>{$input.value(ui.item.value).trigger("change")}})},minLength:0})}function metaValuePicker(selector,meta_key){let $input=$(selector);return $input.autocomplete({source:function(request,response){$.ajax({url:ajaxurl,method:"post",dataType:"json",data:{action:"gh_meta_value_picker",nonce:nonces._meta_nonce,term:request.term,meta_key:meta_key},success:function(data){response(data);$(selector).removeClass("ui-autocomplete-loading")},select:(e,ui)=>{$input.value(ui.item.value).trigger("change")}})},minLength:0})}function tagPicker(selector,multiple=true,onReceiveItems=items=>{},...opts){return apiPicker(selector,gh.api.routes.v4.tags,multiple,Groundhogg.user.userHasCap("add_tags"),data=>{onReceiveItems(data.items);return data.items.map(item=>({id:item.ID,text:`${item.data.tag_name}`}))},query=>{return{search:query.term,limit:50}},...opts)}function contactPicker(selector,onReceiveItems=items=>{},...opts){return apiPicker(selector,gh.api.routes.v4.contacts,false,false,data=>{onReceiveItems(data.items);return data.items.map(item=>({id:item.ID,text:`${item.data.first_name} ${item.data.last_name} (${item.data.email})`}))},query=>{return{search:query.term,limit:50}},...opts)}function campaignPicker(selector,multiple=true,onReceiveItems=items=>{},...opts){return apiPicker(selector,gh.api.routes.v4.campaigns,multiple,true,data=>{onReceiveItems(data.items);return data.items.map(item=>({id:item.ID,text:`${item.data.name}`}))},query=>{return{search:query.term}},...opts)}function emailPicker(selector,multiple=false,onReceiveItems=items=>{},queryOpts={},...opts){return apiPicker(selector,gh.api.routes.v4.emails,multiple,false,data=>{onReceiveItems(data.items);return data.items.map(item=>({id:item.ID,text:`${item.data.title} (${item.data.status})`}))},query=>{return{search:query.term,...queryOpts}},...opts)}function funnelPicker(selector,multiple=false,onReceiveItems=items=>{},queryOpts={},...opts){return apiPicker(selector,gh.api.routes.v4.funnels,multiple,false,data=>{onReceiveItems(data.items);return data.items.map(item=>({id:item.ID,text:`${item.data.title}`}))},query=>{return{search:query.term,...queryOpts}},...opts)}function broadcastPicker(selector,multiple=false,onReceiveItems=items=>{},queryOpts={},...opts){return apiPicker(selector,gh.api.routes.v4.broadcasts,multiple,false,data=>{onReceiveItems(data.items);return data.items.map(item=>({id:item.ID,text:`${item.object.data.title} (${item.date_sent_pretty})`}))},query=>{return{search:query.term,...queryOpts}},...opts)}function searchesPicker(selector,onReceiveItems=items=>{},queryOpts={},...opts){return apiPicker(selector,gh.api.routes.v4.searches,false,false,data=>{onReceiveItems(data.items);return data.items.map(item=>({id:item.id,text:item.name}))},query=>{return{search:query.term,...queryOpts}},...opts)}const Select2Picker=selectEl=>{let pickerId=`${selectEl.id}-picker`;if(selectEl.previousElementSibling&&selectEl.previousElementSibling.id===pickerId){return}const convertOpt=selector=>[...selectEl.querySelectorAll(selector)].map(opt=>({id:opt.value,text:opt.innerHTML})).filter(opt=>opt.id&&opt.text);let picker=MakeEl.ItemPicker({id:pickerId,fetchOptions:async search=>{let opts=convertOpt("option[value]:not(:empty)");if(search){opts=opts.filter(item=>item.id.match(search)||item.text.match(search))}return opts},selected:convertOpt("option[selected]"),multiple:selectEl.multiple,tags:selectEl.dataset.tags,clearable:selectEl.multiple||selectEl.dataset.clearable,noneSelected:selectEl.dataset.placeholder??"Any...",createOption:async opt=>{selectEl.appendChild(MakeEl.makeEl("option",{value:opt,selected:true},opt));return{id:opt,text:opt}},onChange:items=>{if(!selectEl.multiple){items=[items]}let selected=items.filter(item=>item).map(item=>item.id);for(let option of selectEl.options){option.selected=selected.includes(option.value)}$(selectEl).trigger("change");selectEl.dispatchEvent(new Event("change"))}});selectEl.classList.add("hidden","picker-initialized");selectEl.pickerInitialized=true;selectEl.insertAdjacentElement("beforebegin",picker)};function buildPickers(){picker(".gh-select2",{});tagPicker(".gh-tag-picker",true);tagPicker(".gh-single-tag-picker",false);emailPicker(".gh-email-picker",false);emailPicker(".gh-email-picker-multiple",true);apiPicker(".gh-sms-picker",endpoints.sms,false,false);contactPicker(".gh-contact-picker");contactPicker(".gh-contact-picker-multiple",items=>{},{multiple:true});apiPicker(".gh-benchmark-picker",endpoints.benchmarks,false,false);apiPicker(".gh-metakey-picker",endpoints.metakeys,false,false);linkPicker(".gh-link-picker");metaPicker(".gh-meta-picker");document.querySelectorAll("select.gh-select-2-picker").forEach(select=>Select2Picker(select))}$(function(){buildPickers()});$(document).on("gh-init-pickers",function(){buildPickers()});$(document).on("click",".dropdown-button .button.dropdown",function(){var $button=$(this);$button.next().toggleClass("show");$("<div class='dropdown-overlay'></div>").insertAfter($button)});$(document).on("click",".dropdown-button .dropdown-overlay",function(){var $overlay=$(this);$overlay.next().toggleClass("show");$overlay.remove()});function moveChildren(source,target){while(source.firstChild){target.appendChild(source.firstChild)}}$(document).on("click",".gh-open-modal",e=>{e.preventDefault();let a=e.currentTarget;let source=document.querySelector(a.getAttribute("href"));let modalProps=JSON.parse(a.dataset.modalProps);const{title:title="Modal",...restModalProps}=modalProps;MakeEl.Modal({...restModalProps,onOpen:({modal})=>{let target=modal.querySelector(".source-content");moveChildren(source,target)},onClose:modal=>{let target=modal.querySelector(".source-content");moveChildren(target,source)}},({close})=>MakeEl.Fragment([MakeEl.Div({className:"gh-header modal-header"},[MakeEl.H3({},"Modal header"),MakeEl.Button({className:"gh-button icon secondary text",onClick:close},MakeEl.Dashicon("no-alt"))]),MakeEl.Div({className:"source-content"})]))});gh.pickers={picker:picker,tagPicker:tagPicker,emailPicker:emailPicker,apiPicker:apiPicker,linkPicker:linkPicker,metaPicker:metaPicker,userMetaPicker:userMetaPicker,campaignPicker:campaignPicker,searchesPicker:searchesPicker,funnelPicker:funnelPicker,broadcastPicker:broadcastPicker,metaValuePicker:metaValuePicker,contactPicker:contactPicker};gh.nonces=nonces;gh.endpoints=endpoints;if(!gh.functions){gh.functions={}}gh.functions.setCookie=(cname,cvalue,duration)=>{var d=new Date;d.setTime(d.getTime()+duration*1e3);var expires="expires="+d.toUTCString();document.cookie=cname+"="+cvalue+";"+expires+";path=/"};gh.functions.getCookie=(cname,none=null)=>{var name=cname+"=";var ca=document.cookie.split(";");for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==" "){c=c.substring(1)}if(c.indexOf(name)==0){return c.substring(name.length,c.length)}}return none};function utf8_to_b64(str){return window.btoa(unescape(encodeURIComponent(str)))}const base64_json_encode=stuff=>{return utf8_to_b64(JSON.stringify(stuff)).replaceAll("+","-").replaceAll("/","_").replaceAll("=","")};const assoc2array=(obj,a="id",b="text")=>{let array=[];Object.keys(obj).forEach(key=>{array.push({[a]:key,[b]:obj[key]})});return array};const jsonCopy=stuff=>JSON.parse(JSON.stringify(stuff));function setNestedValue(obj,path,value){const keys=path.split(".");let current=obj;for(let i=0;i<keys.length-1;i++){const key=keys[i];if(!current[key]){current[key]={}}current=current[key]}current[keys[keys.length-1]]=value}function getNestedValue(obj,path){const keys=path.split(".");let current=obj;for(let i=0;i<keys.length;i++){if(!current.hasOwnProperty(keys[i])){return undefined}current=current[keys[i]]}return current}const debounce=(callback,wait)=>{let timeoutId=null;return(...args)=>{window.clearTimeout(timeoutId);timeoutId=window.setTimeout(()=>{callback(...args)},wait)}};const maybeCall=(maybeFunc,...args)=>{if(maybeFunc instanceof Function){return maybeFunc(...args)}return maybeFunc};function arrayToggle(arr,value){const index=arr.indexOf(value);if(index===-1){arr.push(value)}else{arr.splice(index,1)}return arr}const dismissNotice=id=>Groundhogg.api.ajax({action:"gh_dismiss_notice",notice:id});gh.functions.utf8_to_b64=utf8_to_b64;gh.functions.base64_json_encode=base64_json_encode;gh.functions.assoc2array=assoc2array;gh.functions.jsonCopy=jsonCopy;gh.functions.setNestedValue=setNestedValue;gh.functions.getNestedValue=getNestedValue;gh.functions.debounce=debounce;gh.functions.maybeCall=maybeCall;gh.functions.dismissNotice=dismissNotice;gh.functions.arrayToggle=arrayToggle;$(document).on("click","button.hide-panel",e=>{let btn=e.currentTarget;let id=btn.dataset.id;btn.parentElement.remove();dismissNotice(id)});var check,timeout;function schedule(){check=false;window.clearTimeout(timeout);timeout=window.setTimeout(function(){check=true},3e5)}$(function(){schedule()}).on("heartbeat-send.groundhogg-refresh-nonces",function(e,data){if(check){data["groundhogg-refresh-nonces"]=true}}).on("heartbeat-tick.groundhogg-refresh-nonces",function(e,data){let newNonces=data.groundhogg_nonces;if(newNonces){Object.keys(newNonces).forEach(nonce=>{groundhogg_nonces[nonce]=newNonces[nonce];Groundhogg.nonces[nonce]=newNonces[nonce]})}});$(document).on("click","[data-gh-href]",e=>{console.log("clicked!",e.currentTarget.dataset);window.open(e.currentTarget.dataset.ghHref,"_self")})})(jQuery,groundhogg_nonces,groundhogg_endpoints,Groundhogg); -
groundhogg/trunk/assets/js/admin/components/properties.js
r3335438 r3352650 532 532 */ 533 533 function isInternalNameInUse (name, fieldId) { 534 535 // there are no properties, thus, we're good 536 if ( ! properties || typeof properties.fields === 'undefined' ) { 537 return false 538 } 539 534 540 return properties.fields.some(field => field.name === name && field.id !== fieldId) 535 541 } -
groundhogg/trunk/assets/js/admin/components/properties.min.js
r3335438 r3352650 126 126 <div class="property-field col-width-${width}" data-group="${group}" data-id="${field.id}"> 127 127 ${fieldUI} 128 </div>`}};const Properties=(selector,{properties:properties={groups:[],fields:[]},values:values={},onPropertiesUpdated:onPropertiesUpdated=properties=>{},onChange:onChange=properties=>{},canEdit:canEdit=()=>true})=>{properties=copyObject(properties);values=copyObject(values);function isInternalNameInUse(name,fieldId){ return properties.fields.some(field=>field.name===name&&field.id!==fieldId)}const removeGroup=id=>{const{fields:fields=[],groups:groups=[]}=properties;properties={...properties,groups:[...groups.filter(g=>g.id!=id)],fields:[...fields.filter(f=>f.group!=id)]};onPropertiesUpdated(properties);mount()};const removeField=id=>{properties={...properties,fields:[...properties.fields.filter(f=>f.id!=id)]};onPropertiesUpdated(properties);mount()};const addField=field=>{if(!properties.fields){properties.fields=[]}properties.fields.push({...field,id:uuid()});onPropertiesUpdated(properties);mount()};const editField=(fieldId,field)=>{properties.fields=[...properties.fields.map(f=>f.id===fieldId?field:f)];onPropertiesUpdated(properties);mount()};const editGroup=(groupId,group)=>{properties.groups=[...properties.groups.map(g=>g.id===groupId?{...g,...group}:g)];onPropertiesUpdated(properties);mount()};const moveGroup=(groupId,direction="down")=>{let group=properties.groups.find(g=>g.id==groupId);let index=properties.groups.findIndex(g=>g.id==groupId);properties.groups.splice(index,1);properties.groups.splice(direction==="down"?index+1:index-1,0,group);onPropertiesUpdated(properties);mount()};const addGroup=name=>{if(!properties.groups){properties.groups=[]}let groupId=uuid();properties.groups.push({id:groupId,name:name});onPropertiesUpdated(properties);mount();addOrEditField({type:"text",name:"",label:"",group:groupId},addField)};const addPropertyGroupModal=()=>{const{close}=modal({content:Templates.addPropertyGroup()});let groupName;$("#property-group-name").on("change input",e=>{groupName=e.target.value});$("#create-property-group").on("click",e=>{if(groupName.length){close();addGroup(groupName)}})};const renamePropertyGroupModal=groupId=>{let groupName=properties.groups.find(g=>g.id==groupId).name;const{close}=modal({content:Templates.renamePropertyGroup(groupName)});$("#property-group-name").on("change input",e=>{groupName=e.target.value});$("#create-property-group").on("click",e=>{if(groupName.length){close();editGroup(groupId,{name:groupName})}})};const addOrEditField=(newField,onDone)=>{let origField=Groundhogg.functions.jsonCopy(newField);const onAddFieldMount=()=>{const sanitizeKey=label=>{return label.toLowerCase().replace(/[^a-z0-9]/g,"_")};const updateField=(props,r=false)=>{newField={...newField,...props};if(r){setContent(Templates.addField(newField));onAddFieldMount()}};$("#property-field-label").on("input change",e=>{let label=e.target.value;if(onDone===addField){let name=sanitizeKey(label);updateField({label:label,name:name});$("#property-field-name").val(name)}else{updateField({label:label})}});$("#property-field-name").on("input change",e=>{updateField({name:e.target.value})});$("#property-field-order").on("input change",e=>{updateField({order:parseInt(e.target.value)})});$("#property-field-width").on("change",e=>{updateField({width:parseInt(e.target.value)})});$("#property-field-group").select2({data:properties.groups.map(({id,name})=>({id:id,text:name,selected:newField.group===id})),multiple:false}).on("change",e=>newField.group=e.target.value);$("#property-field-type").on("change",e=>{newField.type=e.target.value;setContent(Templates.addField(newField));onAddFieldMount();$("#property-field-type").focus()});$("#create-property-field").on("click",e=>{if(isInternalNameInUse(newField.name,newField.id)){Groundhogg.element.errorDialog({message:`The internal name <code>${newField.name}</code> is already in use.`});return}if(onDone!==addField&&newField.name!==origField.name){dangerConfirmationModal({alert:`<p>Changing the internal name of a custom field might break replacement code references and other uses.</p>128 </div>`}};const Properties=(selector,{properties:properties={groups:[],fields:[]},values:values={},onPropertiesUpdated:onPropertiesUpdated=properties=>{},onChange:onChange=properties=>{},canEdit:canEdit=()=>true})=>{properties=copyObject(properties);values=copyObject(values);function isInternalNameInUse(name,fieldId){if(!properties||typeof properties.fields==="undefined"){return false}return properties.fields.some(field=>field.name===name&&field.id!==fieldId)}const removeGroup=id=>{const{fields:fields=[],groups:groups=[]}=properties;properties={...properties,groups:[...groups.filter(g=>g.id!=id)],fields:[...fields.filter(f=>f.group!=id)]};onPropertiesUpdated(properties);mount()};const removeField=id=>{properties={...properties,fields:[...properties.fields.filter(f=>f.id!=id)]};onPropertiesUpdated(properties);mount()};const addField=field=>{if(!properties.fields){properties.fields=[]}properties.fields.push({...field,id:uuid()});onPropertiesUpdated(properties);mount()};const editField=(fieldId,field)=>{properties.fields=[...properties.fields.map(f=>f.id===fieldId?field:f)];onPropertiesUpdated(properties);mount()};const editGroup=(groupId,group)=>{properties.groups=[...properties.groups.map(g=>g.id===groupId?{...g,...group}:g)];onPropertiesUpdated(properties);mount()};const moveGroup=(groupId,direction="down")=>{let group=properties.groups.find(g=>g.id==groupId);let index=properties.groups.findIndex(g=>g.id==groupId);properties.groups.splice(index,1);properties.groups.splice(direction==="down"?index+1:index-1,0,group);onPropertiesUpdated(properties);mount()};const addGroup=name=>{if(!properties.groups){properties.groups=[]}let groupId=uuid();properties.groups.push({id:groupId,name:name});onPropertiesUpdated(properties);mount();addOrEditField({type:"text",name:"",label:"",group:groupId},addField)};const addPropertyGroupModal=()=>{const{close}=modal({content:Templates.addPropertyGroup()});let groupName;$("#property-group-name").on("change input",e=>{groupName=e.target.value});$("#create-property-group").on("click",e=>{if(groupName.length){close();addGroup(groupName)}})};const renamePropertyGroupModal=groupId=>{let groupName=properties.groups.find(g=>g.id==groupId).name;const{close}=modal({content:Templates.renamePropertyGroup(groupName)});$("#property-group-name").on("change input",e=>{groupName=e.target.value});$("#create-property-group").on("click",e=>{if(groupName.length){close();editGroup(groupId,{name:groupName})}})};const addOrEditField=(newField,onDone)=>{let origField=Groundhogg.functions.jsonCopy(newField);const onAddFieldMount=()=>{const sanitizeKey=label=>{return label.toLowerCase().replace(/[^a-z0-9]/g,"_")};const updateField=(props,r=false)=>{newField={...newField,...props};if(r){setContent(Templates.addField(newField));onAddFieldMount()}};$("#property-field-label").on("input change",e=>{let label=e.target.value;if(onDone===addField){let name=sanitizeKey(label);updateField({label:label,name:name});$("#property-field-name").val(name)}else{updateField({label:label})}});$("#property-field-name").on("input change",e=>{updateField({name:e.target.value})});$("#property-field-order").on("input change",e=>{updateField({order:parseInt(e.target.value)})});$("#property-field-width").on("change",e=>{updateField({width:parseInt(e.target.value)})});$("#property-field-group").select2({data:properties.groups.map(({id,name})=>({id:id,text:name,selected:newField.group===id})),multiple:false}).on("change",e=>newField.group=e.target.value);$("#property-field-type").on("change",e=>{newField.type=e.target.value;setContent(Templates.addField(newField));onAddFieldMount();$("#property-field-type").focus()});$("#create-property-field").on("click",e=>{if(isInternalNameInUse(newField.name,newField.id)){Groundhogg.element.errorDialog({message:`The internal name <code>${newField.name}</code> is already in use.`});return}if(onDone!==addField&&newField.name!==origField.name){dangerConfirmationModal({alert:`<p>Changing the internal name of a custom field might break replacement code references and other uses.</p> 129 129 <p>Are you sure you want to continue?</p>`,confirmText:"Continue",onConfirm:()=>{onDone(newField);close()},onCancel:()=>{updateField({name:origField.name});$("#property-field-name").val(origField.name)}});return}onDone(newField);close()});try{getFieldType(newField.type).onEditMount(newField,updateField)}catch(e){console.log(e)}};const{close,setContent}=modal({content:Templates.addField(newField)});onAddFieldMount()};const mount=()=>{if(!properties||!properties.groups||!properties.groups.length){if(!canEdit()){return}$(selector).html(Templates.noProperties());$("#add-custom-property").on("click",e=>{e.preventDefault();addPropertyGroupModal()});return}const{fields:fields=[]}=properties;$(selector).html(Templates.groups({...properties,fields:fields.map(f=>({...f,value:values[f.name]||""}))},canEdit()));onMount()};const onMount=()=>{const{fields:fields=[]}=properties;fields.forEach(f=>{try{getFieldType(f.type).onMount(f,props=>{values={...values,...props};onChange(props)})}catch(e){console.log(e)}});$(".property-field").on("dblclick",e=>{if(!canEdit()){return}moreMenu(e.currentTarget,{items:[{key:"edit",text:__("Edit field","groundhogg")},{key:"delete",text:`<span class="gh-text danger">${__("Delete")}</span>`}],onSelect:k=>{const fieldId=e.currentTarget.dataset.id;let field=properties.fields.find(f=>f.id==fieldId);switch(k){case"edit":addOrEditField({...field},field=>{editField(fieldId,field)});break;case"delete":dangerConfirmationModal({alert:`<p>${__("Are you sure you want to delete this property?","groundhogg")}</p>`,onConfirm:()=>{removeField(fieldId)}});break}}})});$(".property-group-add-field").on("click",e=>{if(!canEdit()){return}const groupId=e.currentTarget.dataset.id;let newField={type:"text",name:"",label:"",group:groupId};addOrEditField(newField,addField)});$(".property-group-more").on("click",e=>{const groupId=e.currentTarget.dataset.id;let index=properties.groups.findIndex(g=>g.id==groupId);moreMenu(e.currentTarget,{items:[{key:"add-field",text:__("Add Field","groundhogg")},{key:"add-group",text:__("Add Group","groundhogg")},{key:"edit-fields",text:__("Edit Fields","groundhogg")},{key:"rename",text:__("Rename")},index!==0?{key:"move_up",text:__("Move up","groundhogg")}:null,index<properties.groups.length-1?{key:"move_down",text:__("Move down","groundhogg")}:null,{key:"delete",text:`<span class="gh-text danger">${__("Delete")}</span>`}],onSelect:k=>{switch(k){case"edit-fields":confirmationModal({alert:`<p>${__("Double click a field to edit it!","groundhogg")}</p>`,confirmText:__("Got it!","groundhogg"),closeText:""});break;case"move_up":moveGroup(groupId,"up");break;case"move_down":moveGroup(groupId,"down");break;case"add-group":addPropertyGroupModal();break;case"add-field":let newField={type:"text",name:"",label:"",group:groupId};addOrEditField(newField,addField);break;case"rename":renamePropertyGroupModal(groupId);break;case"delete":dangerConfirmationModal({alert:`<p>${__("Are you sure you want to delete this property group?","groundhogg")}</p>`,onConfirm:()=>{removeGroup(groupId)}});break}}})})};mount()};Groundhogg.propertiesEditor=Properties})(jQuery); -
groundhogg/trunk/assets/js/admin/emails/email-block-editor.js
r3347592 r3352650 3321 3321 let parent = $sortable.is('.column,.children') ? $sortable.closest('.builder-block').data('id') : false 3322 3322 let column = parseInt(e.target.dataset.col) 3323 3324 console.log({3325 parent,3326 column,3327 })3328 3323 3329 3324 // adding block … … 10747 10742 Groundhogg.emailEditor = { 10748 10743 PostTagReference, 10744 BlockRegistry, 10749 10745 registerBlock, 10750 10746 registerDynamicBlock, -
groundhogg/trunk/assets/js/admin/emails/email-block-editor.min.js
r3347592 r3352650 25 25 ${BlockRegistry.blocks[blockType].svg} 26 26 </div> 27 </div>`};$(el).sortable({placeholder:"block-placeholder",connectWith:".sortable-blocks",handle:".move-block",helper:sortableHelper,cancel:"",tolerance:"pointer",start:(e,ui)=>{ui.helper.width(50);ui.helper.height(50)},cursorAt:{left:70,top:5},receive:(e,ui)=>{let $sortable=$(e.target);let parent=$sortable.is(".column,.children")?$sortable.closest(".builder-block").data("id"):false;let column=parseInt(e.target.dataset.col); console.log({parent:parent,column:column});if(ui.item.is(".new-block")){let type=ui.item.data("type");let index=ui.helper.index();addBlock(type,index,parent,column);return}let blockId=ui.item.data("id");let index=ui.item.index();if(blockId){moveBlock(blockId,index,parent,column)}},update:(e,ui)=>{let blockId=ui.item.data("id");let index=ui.item.index();let $sortable=$(e.target);if(!$sortable.has(`#edit-${blockId}`).length){return}let parent=$sortable.is(".column,.children")?$sortable.closest(".builder-block").data("id"):false;let column=parseInt(e.target.dataset.col);if(blockId){moveBlock(blockId,index,parent,column)}}})};const BlockEditorContent=()=>{return Div({id:"builder-content",className:"sortable-blocks",onCreate:el=>{makeSortable(el)}},getBlocks().filter(b=>b.type).map(block=>EditBlockWrapper(block)))};const Block=({type,name,svg})=>{return Div({className:"block-wrap",id:`add-${type}`,title:name,onDblclick:e=>{let newBlock=createBlock(type);if(hasActiveBlock()){insertBlockAfter(newBlock,getActiveBlock().id);return}insertBlock(newBlock,getBlocks().length);setActiveBlock(newBlock.id);document.getElementById(`edit-${newBlock.id}`).scrollIntoView(true)}},[`27 </div>`};$(el).sortable({placeholder:"block-placeholder",connectWith:".sortable-blocks",handle:".move-block",helper:sortableHelper,cancel:"",tolerance:"pointer",start:(e,ui)=>{ui.helper.width(50);ui.helper.height(50)},cursorAt:{left:70,top:5},receive:(e,ui)=>{let $sortable=$(e.target);let parent=$sortable.is(".column,.children")?$sortable.closest(".builder-block").data("id"):false;let column=parseInt(e.target.dataset.col);if(ui.item.is(".new-block")){let type=ui.item.data("type");let index=ui.helper.index();addBlock(type,index,parent,column);return}let blockId=ui.item.data("id");let index=ui.item.index();if(blockId){moveBlock(blockId,index,parent,column)}},update:(e,ui)=>{let blockId=ui.item.data("id");let index=ui.item.index();let $sortable=$(e.target);if(!$sortable.has(`#edit-${blockId}`).length){return}let parent=$sortable.is(".column,.children")?$sortable.closest(".builder-block").data("id"):false;let column=parseInt(e.target.dataset.col);if(blockId){moveBlock(blockId,index,parent,column)}}})};const BlockEditorContent=()=>{return Div({id:"builder-content",className:"sortable-blocks",onCreate:el=>{makeSortable(el)}},getBlocks().filter(b=>b.type).map(block=>EditBlockWrapper(block)))};const Block=({type,name,svg})=>{return Div({className:"block-wrap",id:`add-${type}`,title:name,onDblclick:e=>{let newBlock=createBlock(type);if(hasActiveBlock()){insertBlockAfter(newBlock,getActiveBlock().id);return}insertBlock(newBlock,getBlocks().length);setActiveBlock(newBlock.id);document.getElementById(`edit-${newBlock.id}`).scrollIntoView(true)}},[` 28 28 <div class="block new-block gh-panel" data-type="${type}"> 29 29 <div class="icon"> … … 210 210 maximus felis. Suspendisse potenti. Etiam fermentum magna nec diam lacinia, ut volutpat mauris accumsan. Nunc id convallis magna.</p> 211 211 <p>Regards,</p> 212 <p>{owner_signature}</p>`}),createBlock("footer")];page="templates"}if(!email.meta.template){email.meta.template=BOXED}setState({page:page,activeBlock:null,openPanels:{},blockControlsTab:"block",emailControlsTab:"email",isGeneratingHTML:false,email:email,preview:preview,previewPlainText:previewPlainText,previewFromName:previewFromName,previewFromEmail:previewFromEmail,previewFromAvatar:previewFromAvatar,previewSubject:previewSubject});setBlocks(blocks,false);syncReplacementCodes();renderEditor()};function optimizeCSS(css){const ruleMap={};css.replace(/\/\*[\s\S]*?\*\//g,"").split("}").forEach(rule=>{const[selectors,declarations]=rule.split("{");if(!selectors||!declarations){return}const cleaned=declarations.trim().replace(/\s+/g," ").replace(/;$/,"");if(!cleaned){return}const key=cleaned;ruleMap[key]=ruleMap[key]||[];ruleMap[key].push(selectors.trim())});let optimized="";for(const[declarations,selectors]of Object.entries(ruleMap)){optimized+=`${selectors.join(",")}{${declarations}}`}return optimized}const renderBlocksCSS=blocks=>{let css=blocks.map(b=>BlockRegistry.css(b)).join("\n").replaceAll(/(\s*\n|\s*\r\n|\s*\r){1,}/g,"\n");css=optimizeCSS(css);return css};const maybeAddReplacementProtocols=(el,tag,attr)=>{el.querySelectorAll(tag).forEach(el=>{let value=el.getAttribute(attr);if(!value||!value.startsWith("{")){return}el.setAttribute(attr,`replacement:${value}`)})};function fixStyleQuotes(htmlString){return htmlString.replace(/(\bstyle\s*=\s*")([^"]*)(")/gi,(_,prefix,contents,suffix)=>prefix+contents.replace(/"/g,"'")+suffix)}const renderBlocksHTML=blocks=>{let htmlEl=Table({cellpadding:"0",cellspacing:"0",width:"100%",role:"presentation"},blocks.filter(b=>b.type).map(block=>BlockHTML(block)));maybeAddReplacementProtocols(htmlEl,"img","src");maybeAddReplacementProtocols(htmlEl,"a","href");let html=htmlEl.outerHTML;html=html.replaceAll(new RegExp(`"(${subFontsWithSpaces.join("")})"`,"g"),"'$1'");html=fixStyleQuotes(html);return html};const renderBlocksGutenberg=blocks=>{return blocks.filter(b=>b.type).map(block=>{let text;let{hide_on_desktop:hide_on_desktop=false}=block;if(hide_on_desktop){return""}try{text=BlockRegistry.get(block.type).gutenberg(block)}catch(e){text=""}return text}).filter(text=>text.length>0).join("\n\n").replaceAll(/(\n|\r\n|\r){3,}/g,"\n\n")};const renderBlocksPlainText=blocks=>{return blocks.filter(b=>b.type).map(block=>{let text;let{hide_on_desktop:hide_on_desktop=false}=block;if(hide_on_desktop){return""}try{text=BlockRegistry.get(block.type).plainText(block);return[BlockStartComment(block),text,BlockEndComment(block)].join("")}catch(e){return""}}).filter(text=>text.length>0).join("\n\n").replaceAll(/(\n|\r\n|\r){3,}/g,"\n\n")};const morphBlocks=()=>{if(isHTMLEditor()){return}morph("#builder-content",BlockEditorContent())};const removeControls=()=>morph("#controls-panel",Div());const morphControls=()=>morph("#controls-panel",ControlsPanel());const morphContent=()=>morph("#content",ContentEditor());const morphBlockEditor=()=>morph("#email-block-editor",BlockEditor());const morphEmailEditor=()=>{morph("#email-editor",EmailEditor(),false);window.dispatchEvent(new Event("resize"))};const morphHeader=()=>morph("#email-header",Header());const updateStyles=()=>{$("#builder-style").text(`#block-editor-content-wrap{ \n\n${renderBlocksCSS(getBlocks())}\n\n${getEmailMeta().template_css??""}\n\n }`)};const updateStylesDebounced=Groundhogg.functions.debounce(updateStyles,300);const renderEditor=()=>{morphEmailEditor();updateStyles()};const parseBlocksFromLegacyBlockEditor=nodes=>{let blocks=[];let timeout;const parseBlock=node=>{let oldBlockType=node.dataset.block;if(!oldBlockType){let blockContainer=node.firstElementChild;oldBlockType=blockContainer.classList[blockContainer.classList.length-1]}let block,img,a,button,el,spacer,divider,html,text;switch(oldBlockType){case"image":case"image_block":img=node.querySelector("img");a=node.querySelector("a");block=createBlock("image",{src:img.src,alt:img.alt,title:img.title,width:img.width,link:a.href});break;case"text":case"text_block":let textContainer=node.querySelector(".text_block").firstElementChild;text=textContainer.innerHTML;let props={content:text,p:fontDefaults({fontSize:parseInt(textContainer.style.fontSize),fontFamily:textContainer.style.fontFamily})};const setFontProps=tag=>{el=textContainer.querySelector(tag);if(!el){return}props[tag]=fontDefaults({fontSize:parseInt(el.style.fontSize),fontFamily:el.style.fontFamily})};setFontProps("h1");setFontProps("h2");setFontProps("h3");block=createBlock("text",props);break;case"button":case"button_block":button=node.querySelector("td.email-button");a=button.querySelector("a");block=createBlock("button",{text:a.innerHTML,link:a.href,backgroundColor:button.getAttribute("bgcolor"),style:{color:a.style.color,fontSize:parseInt(a.style.fontSize),fontWeight:a.style.fontWeight,fontFamily:a.style.fontFamily}});break;case"spacer":case"spacer_block":spacer=node.querySelector("td.spacer");block=createBlock("spacer",{height:spacer.height});break;case"divider":case"divider_block":divider=node.querySelector("hr");block=createBlock("divider",{height:parseInt(divider.style.borderTopWidth),width:parseInt(divider.style.width),color:divider.style.borderTopColor});break;case"html":case"html_block":html=node.querySelector(".inner-content").innerHTML;block=createBlock("html",{content:html});break}return block};nodes.forEach(node=>{if(node.nodeType===Node.TEXT_NODE){return}try{blocks.push(parseBlock(node))}catch(e){clearTimeout(timeout);setTimeout(()=>{dialog({type:"error",message:"Some blocks could not be converted to the new editor."})},100)}});return blocks};const parseBlocksFromContent=content=>{const parser=new DOMParser;const doc=parser.parseFromString(content,"text/html");const parsers=[doc=>parseBlocksFromTable(doc.body.firstElementChild),doc=>parseBlocksFromLegacyBlockEditor(doc.body.childNodes)];let blocks=[];for(let parser of parsers){try{blocks=parser(doc);if(blocks&&blocks.length){return blocks}}catch(e){}}return[]};const parseBlocksFromTable=table=>{let blocks=[];let rows=table.querySelector("tbody")?.childNodes;if(!rows){return[]}for(let row of rows){let block=parseBlockFromRow(row);if(block){blocks.push(block)}}return blocks};const parseBlockFromRow=tr=>{let comment=tr.firstChild;let commentData=removeFontQuotesFromCommentData(comment?.nodeValue?.trim());if(!commentData){return null}let attributes={};let unused,type,id,json;try{if(commentData.indexOf("{")>-1){[unused,type,id,json]=commentData.match(/^([a-z]+):([a-zA-Z0-9\-]+) ({.*})$/);attributes=JSON.parse(json)}else{[unused,type,id]=commentData.match(/^([a-z]+):([a-zA-Z0-9\-]+)$/)}}catch(e){}const BlockType=BlockRegistry.get(type);const getAttributes=BlockType.attributes;const el=tr.querySelector(`td#b-${id}`);let block={type:type,id:id,...attributes};for(let getter in getAttributes){try{block[getter]=getAttributes[getter](el,block)}catch(e){block[getter]=BlockType.defaults[getter]}}let matches=el.innerText.trim().match(/^\[([a-z]+):([a-zA-Z0-9\-]+):dynamicContent ({.*})\/\]$/);if(matches&&matches.length){let compatDynamicAttrs=JSON.parse(matches[3]);if(compatDynamicAttrs){block={...block,...compatDynamicAttrs}}}block.advancedStyle=AdvancedStyleControls.parse(el);block.hide_on_mobile=el.classList.contains("hide-on-mobile");block.hide_on_desktop=el.classList.contains("hide-on-desktop");block.hide_in_browser=el.classList.contains("hide-in-browser");return block};const convertToGutenbergBlocks=content=>{if(!getState().gutenbergInitialized){setState({gutenbergInitialized:true});let gutenbergContainer=Div({id:"gutenberg-temp",style:{display:"none"}});document.querySelector("body").append(gutenbergContainer);initializeEditor("gutenberg-temp")}let blocks=rawHandler({HTML:content});return serialize(blocks)};$("head").append(`<style id="builder-style" type="text/css"></style>`);if(isEmailEditorPage()){window.addEventListener("beforeunload",e=>{if(getState().hasChanges){e.preventDefault();let msg=__("You have unsaved changes, are you sure you want to leave?","groundhogg");e.returnValue=msg;return msg}return null})}if(!globalFonts||!Array.isArray(globalFonts)||!globalFonts.length){GlobalFonts.fonts=[{name:"Paragraph",id:uuid(),style:fontDefaults({})},{name:"Heading 1",id:uuid(),style:fontDefaults({fontSize:42})},{name:"Heading 2",id:uuid(),style:fontDefaults({fontSize:36})},{name:"Heading 3",id:uuid(),style:fontDefaults({fontSize:24})}]}else{GlobalFonts.fonts=globalFonts}if(!colorPalette||!Array.isArray(colorPalette)||!colorPalette.length){colorPalette=["#000","#fff","#dd3333","#DD9933","#EEEE22","#81D742","#1E73BE","#8224E3"]}if(isEmailEditorPage()){let{email:email=null}=_BlockEditor;if(email){EmailsStore.itemsFetched([email]);window.addEventListener("load",()=>{initialize({email:email})})}}function selectText(node){if(document.body.createTextRange){const range=document.body.createTextRange();range.moveToElementText(node);range.select()}else if(window.getSelection){const selection=window.getSelection();const range=document.createRange();range.selectNodeContents(node);selection.removeAllRanges();selection.addRange(range)}else{console.warn("Could not select text in node: Unsupported browser.")}}$(document).on("click","code.copy-text",e=>{selectText(e.currentTarget);navigator.clipboard.writeText(e.currentTarget.innerText);dialog({message:"Copied to clipboard!"})});Groundhogg.EmailEditor=initialize;Groundhogg.emailEditor={PostTagReference:PostTagReference, registerBlock:registerBlock,registerDynamicBlock:registerDynamicBlock,getActiveBlock:getActiveBlock,isActiveBlock:isActiveBlock,isEditing:isEditing,isCreating:isCreating,isBlockEditor:isBlockEditor,isHTMLEditor:isHTMLEditor,functions:{optimizeCSS:optimizeCSS},components:{Control:Control,ControlGroup:ControlGroup,NumberControl:NumberControl,ImageControls:ImageControls,FontControls:FontControls,ColorPicker:ColorPicker,BorderControlGroup:BorderControlGroup,BorderControls:BorderControls,TopRightBottomLeft:TopRightBottomLeft}}})(jQuery);212 <p>{owner_signature}</p>`}),createBlock("footer")];page="templates"}if(!email.meta.template){email.meta.template=BOXED}setState({page:page,activeBlock:null,openPanels:{},blockControlsTab:"block",emailControlsTab:"email",isGeneratingHTML:false,email:email,preview:preview,previewPlainText:previewPlainText,previewFromName:previewFromName,previewFromEmail:previewFromEmail,previewFromAvatar:previewFromAvatar,previewSubject:previewSubject});setBlocks(blocks,false);syncReplacementCodes();renderEditor()};function optimizeCSS(css){const ruleMap={};css.replace(/\/\*[\s\S]*?\*\//g,"").split("}").forEach(rule=>{const[selectors,declarations]=rule.split("{");if(!selectors||!declarations){return}const cleaned=declarations.trim().replace(/\s+/g," ").replace(/;$/,"");if(!cleaned){return}const key=cleaned;ruleMap[key]=ruleMap[key]||[];ruleMap[key].push(selectors.trim())});let optimized="";for(const[declarations,selectors]of Object.entries(ruleMap)){optimized+=`${selectors.join(",")}{${declarations}}`}return optimized}const renderBlocksCSS=blocks=>{let css=blocks.map(b=>BlockRegistry.css(b)).join("\n").replaceAll(/(\s*\n|\s*\r\n|\s*\r){1,}/g,"\n");css=optimizeCSS(css);return css};const maybeAddReplacementProtocols=(el,tag,attr)=>{el.querySelectorAll(tag).forEach(el=>{let value=el.getAttribute(attr);if(!value||!value.startsWith("{")){return}el.setAttribute(attr,`replacement:${value}`)})};function fixStyleQuotes(htmlString){return htmlString.replace(/(\bstyle\s*=\s*")([^"]*)(")/gi,(_,prefix,contents,suffix)=>prefix+contents.replace(/"/g,"'")+suffix)}const renderBlocksHTML=blocks=>{let htmlEl=Table({cellpadding:"0",cellspacing:"0",width:"100%",role:"presentation"},blocks.filter(b=>b.type).map(block=>BlockHTML(block)));maybeAddReplacementProtocols(htmlEl,"img","src");maybeAddReplacementProtocols(htmlEl,"a","href");let html=htmlEl.outerHTML;html=html.replaceAll(new RegExp(`"(${subFontsWithSpaces.join("")})"`,"g"),"'$1'");html=fixStyleQuotes(html);return html};const renderBlocksGutenberg=blocks=>{return blocks.filter(b=>b.type).map(block=>{let text;let{hide_on_desktop:hide_on_desktop=false}=block;if(hide_on_desktop){return""}try{text=BlockRegistry.get(block.type).gutenberg(block)}catch(e){text=""}return text}).filter(text=>text.length>0).join("\n\n").replaceAll(/(\n|\r\n|\r){3,}/g,"\n\n")};const renderBlocksPlainText=blocks=>{return blocks.filter(b=>b.type).map(block=>{let text;let{hide_on_desktop:hide_on_desktop=false}=block;if(hide_on_desktop){return""}try{text=BlockRegistry.get(block.type).plainText(block);return[BlockStartComment(block),text,BlockEndComment(block)].join("")}catch(e){return""}}).filter(text=>text.length>0).join("\n\n").replaceAll(/(\n|\r\n|\r){3,}/g,"\n\n")};const morphBlocks=()=>{if(isHTMLEditor()){return}morph("#builder-content",BlockEditorContent())};const removeControls=()=>morph("#controls-panel",Div());const morphControls=()=>morph("#controls-panel",ControlsPanel());const morphContent=()=>morph("#content",ContentEditor());const morphBlockEditor=()=>morph("#email-block-editor",BlockEditor());const morphEmailEditor=()=>{morph("#email-editor",EmailEditor(),false);window.dispatchEvent(new Event("resize"))};const morphHeader=()=>morph("#email-header",Header());const updateStyles=()=>{$("#builder-style").text(`#block-editor-content-wrap{ \n\n${renderBlocksCSS(getBlocks())}\n\n${getEmailMeta().template_css??""}\n\n }`)};const updateStylesDebounced=Groundhogg.functions.debounce(updateStyles,300);const renderEditor=()=>{morphEmailEditor();updateStyles()};const parseBlocksFromLegacyBlockEditor=nodes=>{let blocks=[];let timeout;const parseBlock=node=>{let oldBlockType=node.dataset.block;if(!oldBlockType){let blockContainer=node.firstElementChild;oldBlockType=blockContainer.classList[blockContainer.classList.length-1]}let block,img,a,button,el,spacer,divider,html,text;switch(oldBlockType){case"image":case"image_block":img=node.querySelector("img");a=node.querySelector("a");block=createBlock("image",{src:img.src,alt:img.alt,title:img.title,width:img.width,link:a.href});break;case"text":case"text_block":let textContainer=node.querySelector(".text_block").firstElementChild;text=textContainer.innerHTML;let props={content:text,p:fontDefaults({fontSize:parseInt(textContainer.style.fontSize),fontFamily:textContainer.style.fontFamily})};const setFontProps=tag=>{el=textContainer.querySelector(tag);if(!el){return}props[tag]=fontDefaults({fontSize:parseInt(el.style.fontSize),fontFamily:el.style.fontFamily})};setFontProps("h1");setFontProps("h2");setFontProps("h3");block=createBlock("text",props);break;case"button":case"button_block":button=node.querySelector("td.email-button");a=button.querySelector("a");block=createBlock("button",{text:a.innerHTML,link:a.href,backgroundColor:button.getAttribute("bgcolor"),style:{color:a.style.color,fontSize:parseInt(a.style.fontSize),fontWeight:a.style.fontWeight,fontFamily:a.style.fontFamily}});break;case"spacer":case"spacer_block":spacer=node.querySelector("td.spacer");block=createBlock("spacer",{height:spacer.height});break;case"divider":case"divider_block":divider=node.querySelector("hr");block=createBlock("divider",{height:parseInt(divider.style.borderTopWidth),width:parseInt(divider.style.width),color:divider.style.borderTopColor});break;case"html":case"html_block":html=node.querySelector(".inner-content").innerHTML;block=createBlock("html",{content:html});break}return block};nodes.forEach(node=>{if(node.nodeType===Node.TEXT_NODE){return}try{blocks.push(parseBlock(node))}catch(e){clearTimeout(timeout);setTimeout(()=>{dialog({type:"error",message:"Some blocks could not be converted to the new editor."})},100)}});return blocks};const parseBlocksFromContent=content=>{const parser=new DOMParser;const doc=parser.parseFromString(content,"text/html");const parsers=[doc=>parseBlocksFromTable(doc.body.firstElementChild),doc=>parseBlocksFromLegacyBlockEditor(doc.body.childNodes)];let blocks=[];for(let parser of parsers){try{blocks=parser(doc);if(blocks&&blocks.length){return blocks}}catch(e){}}return[]};const parseBlocksFromTable=table=>{let blocks=[];let rows=table.querySelector("tbody")?.childNodes;if(!rows){return[]}for(let row of rows){let block=parseBlockFromRow(row);if(block){blocks.push(block)}}return blocks};const parseBlockFromRow=tr=>{let comment=tr.firstChild;let commentData=removeFontQuotesFromCommentData(comment?.nodeValue?.trim());if(!commentData){return null}let attributes={};let unused,type,id,json;try{if(commentData.indexOf("{")>-1){[unused,type,id,json]=commentData.match(/^([a-z]+):([a-zA-Z0-9\-]+) ({.*})$/);attributes=JSON.parse(json)}else{[unused,type,id]=commentData.match(/^([a-z]+):([a-zA-Z0-9\-]+)$/)}}catch(e){}const BlockType=BlockRegistry.get(type);const getAttributes=BlockType.attributes;const el=tr.querySelector(`td#b-${id}`);let block={type:type,id:id,...attributes};for(let getter in getAttributes){try{block[getter]=getAttributes[getter](el,block)}catch(e){block[getter]=BlockType.defaults[getter]}}let matches=el.innerText.trim().match(/^\[([a-z]+):([a-zA-Z0-9\-]+):dynamicContent ({.*})\/\]$/);if(matches&&matches.length){let compatDynamicAttrs=JSON.parse(matches[3]);if(compatDynamicAttrs){block={...block,...compatDynamicAttrs}}}block.advancedStyle=AdvancedStyleControls.parse(el);block.hide_on_mobile=el.classList.contains("hide-on-mobile");block.hide_on_desktop=el.classList.contains("hide-on-desktop");block.hide_in_browser=el.classList.contains("hide-in-browser");return block};const convertToGutenbergBlocks=content=>{if(!getState().gutenbergInitialized){setState({gutenbergInitialized:true});let gutenbergContainer=Div({id:"gutenberg-temp",style:{display:"none"}});document.querySelector("body").append(gutenbergContainer);initializeEditor("gutenberg-temp")}let blocks=rawHandler({HTML:content});return serialize(blocks)};$("head").append(`<style id="builder-style" type="text/css"></style>`);if(isEmailEditorPage()){window.addEventListener("beforeunload",e=>{if(getState().hasChanges){e.preventDefault();let msg=__("You have unsaved changes, are you sure you want to leave?","groundhogg");e.returnValue=msg;return msg}return null})}if(!globalFonts||!Array.isArray(globalFonts)||!globalFonts.length){GlobalFonts.fonts=[{name:"Paragraph",id:uuid(),style:fontDefaults({})},{name:"Heading 1",id:uuid(),style:fontDefaults({fontSize:42})},{name:"Heading 2",id:uuid(),style:fontDefaults({fontSize:36})},{name:"Heading 3",id:uuid(),style:fontDefaults({fontSize:24})}]}else{GlobalFonts.fonts=globalFonts}if(!colorPalette||!Array.isArray(colorPalette)||!colorPalette.length){colorPalette=["#000","#fff","#dd3333","#DD9933","#EEEE22","#81D742","#1E73BE","#8224E3"]}if(isEmailEditorPage()){let{email:email=null}=_BlockEditor;if(email){EmailsStore.itemsFetched([email]);window.addEventListener("load",()=>{initialize({email:email})})}}function selectText(node){if(document.body.createTextRange){const range=document.body.createTextRange();range.moveToElementText(node);range.select()}else if(window.getSelection){const selection=window.getSelection();const range=document.createRange();range.selectNodeContents(node);selection.removeAllRanges();selection.addRange(range)}else{console.warn("Could not select text in node: Unsupported browser.")}}$(document).on("click","code.copy-text",e=>{selectText(e.currentTarget);navigator.clipboard.writeText(e.currentTarget.innerText);dialog({message:"Copied to clipboard!"})});Groundhogg.EmailEditor=initialize;Groundhogg.emailEditor={PostTagReference:PostTagReference,BlockRegistry:BlockRegistry,registerBlock:registerBlock,registerDynamicBlock:registerDynamicBlock,getActiveBlock:getActiveBlock,isActiveBlock:isActiveBlock,isEditing:isEditing,isCreating:isCreating,isBlockEditor:isBlockEditor,isHTMLEditor:isHTMLEditor,functions:{optimizeCSS:optimizeCSS},components:{Control:Control,ControlGroup:ControlGroup,NumberControl:NumberControl,ImageControls:ImageControls,FontControls:FontControls,ColorPicker:ColorPicker,BorderControlGroup:BorderControlGroup,BorderControls:BorderControls,TopRightBottomLeft:TopRightBottomLeft}}})(jQuery); -
groundhogg/trunk/groundhogg.php
r3347592 r3352650 4 4 * Plugin URI: https://www.groundhogg.io/?utm_source=wp-plugins&utm_campaign=plugin-uri&utm_medium=wp-dash 5 5 * Description: CRM and marketing automation for WordPress 6 * Version: 4.2.5 6 * Version: 4.2.5.1 7 7 * Author: Groundhogg Inc. 8 8 * Author URI: https://www.groundhogg.io/?utm_source=wp-plugins&utm_campaign=author-uri&utm_medium=wp-dash … … 25 25 if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly 26 26 27 define( 'GROUNDHOGG_VERSION', '4.2.5 ' );28 define( 'GROUNDHOGG_PREVIOUS_STABLE_VERSION', '4.2. 4.2' );27 define( 'GROUNDHOGG_VERSION', '4.2.5.1' ); 28 define( 'GROUNDHOGG_PREVIOUS_STABLE_VERSION', '4.2.5' ); 29 29 30 30 define( 'GROUNDHOGG__FILE__', __FILE__ ); -
groundhogg/trunk/includes/functions.php
r3347592 r3352650 9015 9015 $id_col = $table->get_object_id_col(); 9016 9016 9017 // maybe we check if there are redactions to do first? 9018 $query = new Table_Query( $table ); 9019 $query->setSelect( 'meta_id' )->setLimit( 1 )->where()->startsWith( 'meta_key', '_redact_' ); 9020 $exists = $query->get_results(); 9021 9022 // there are no redactions found 9023 if ( empty( $exists ) ) { 9024 return; 9025 } 9026 9017 9027 $time = time(); 9018 9028 … … 9030 9040 AND expires.meta_key = CONCAT('_redact_', meta.meta_key) 9031 9041 SET meta.meta_value = REGEXP_REPLACE(meta.meta_value, '[^[:space:]]', '█') 9032 WHERE expires.meta_value < {$time} 9042 WHERE expires.meta_value REGEXP '^[0-9]+$' 9043 AND CAST(expires.meta_value AS UNSIGNED) < {$time}; 9033 9044 SQL; 9034 9045 } else { … … 9040 9051 AND expires.meta_key = CONCAT('_redact_', meta.meta_key) 9041 9052 SET meta.meta_value = REPEAT('█', CHAR_LENGTH(meta.meta_value)) 9042 WHERE expires.meta_value < {$time} 9053 WHERE expires.meta_value REGEXP '^[0-9]+$' 9054 AND CAST(expires.meta_value AS UNSIGNED) < {$time}; 9043 9055 SQL; 9044 9056 } -
groundhogg/trunk/includes/steps/funnel-step.php
r3343709 r3352650 155 155 */ 156 156 public function get_icon() { 157 158 157 $file_name = str_replace( '_', '-', $this->get_type() ) . '.svg'; 159 160 158 return GROUNDHOGG_ASSETS_URL . 'images/funnel-icons/' . $file_name; 161 159 } … … 172 170 if ( $icon && str_ends_with( $icon, '.svg' ) ) { 173 171 174 // get the absolute path of the svg file relative to wp-content 175 $icon_path = preg_replace( '@https://.*/wp-content/plugins/@', WP_PLUGIN_DIR . '/', $icon ); 172 $icon_path = str_replace( trailingslashit( plugins_url() ), trailingslashit( WP_PLUGIN_DIR ), $icon ); 176 173 177 174 return files()->filesystem()->get_contents( $icon_path );
Note: See TracChangeset
for help on using the changeset viewer.