var ewww_webp_supported=!1;function check_webp_feature(A,e){var w;e=void 0!==e?e:function(){},ewww_webp_supported?e(ewww_webp_supported):((w=new Image).onload=function(){ewww_webp_supported=0<w.width&&0<w.height,e&&e(ewww_webp_supported)},w.onerror=function(){e&&e(!1)},w.src="data:image/webp;base64,"+{alpha:"UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA=="}[A])}check_webp_feature("alpha");
var Arrive=function(c,w){"use strict";if(c.MutationObserver&&"undefined"!=typeof HTMLElement){var r,a=0,u=(r=HTMLElement.prototype.matches||HTMLElement.prototype.webkitMatchesSelector||HTMLElement.prototype.mozMatchesSelector||HTMLElement.prototype.msMatchesSelector,{matchesSelector:function(e,t){return e instanceof HTMLElement&&r.call(e,t)},addMethod:function(e,t,r){var a=e[t];e[t]=function(){return r.length==arguments.length?r.apply(this,arguments):"function"==typeof a?a.apply(this,arguments):void 0}},callCallbacks:function(e,t){t&&t.options.onceOnly&&1==t.firedElems.length&&(e=[e[0]]);for(var r,a=0;r=e[a];a++)r&&r.callback&&r.callback.call(r.elem,r.elem);t&&t.options.onceOnly&&1==t.firedElems.length&&t.me.unbindEventWithSelectorAndCallback.call(t.target,t.selector,t.callback)},checkChildNodesRecursively:function(e,t,r,a){for(var i,n=0;i=e[n];n++)r(i,t,a)&&a.push({callback:t.callback,elem:i}),0<i.childNodes.length&&u.checkChildNodesRecursively(i.childNodes,t,r,a)},mergeArrays:function(e,t){var r,a={};for(r in e)e.hasOwnProperty(r)&&(a[r]=e[r]);for(r in t)t.hasOwnProperty(r)&&(a[r]=t[r]);return a},toElementsArray:function(e){return e=void 0!==e&&("number"!=typeof e.length||e===c)?[e]:e}}),e=(l.prototype.addEvent=function(e,t,r,a){a={target:e,selector:t,options:r,callback:a,firedElems:[]};return this._beforeAdding&&this._beforeAdding(a),this._eventsBucket.push(a),a},l.prototype.removeEvent=function(e){for(var t,r=this._eventsBucket.length-1;t=this._eventsBucket[r];r--)e(t)&&(this._beforeRemoving&&this._beforeRemoving(t),(t=this._eventsBucket.splice(r,1))&&t.length&&(t[0].callback=null))},l.prototype.beforeAdding=function(e){this._beforeAdding=e},l.prototype.beforeRemoving=function(e){this._beforeRemoving=e},l),t=function(i,n){var o=new e,l=this,s={fireOnAttributesModification:!1};return o.beforeAdding(function(t){var e=t.target;e!==c.document&&e!==c||(e=document.getElementsByTagName("html")[0]);var r=new MutationObserver(function(e){n.call(this,e,t)}),a=i(t.options);r.observe(e,a),t.observer=r,t.me=l}),o.beforeRemoving(function(e){e.observer.disconnect()}),this.bindEvent=function(e,t,r){t=u.mergeArrays(s,t);for(var a=u.toElementsArray(this),i=0;i<a.length;i++)o.addEvent(a[i],e,t,r)},this.unbindEvent=function(){var r=u.toElementsArray(this);o.removeEvent(function(e){for(var t=0;t<r.length;t++)if(this===w||e.target===r[t])return!0;return!1})},this.unbindEventWithSelectorOrCallback=function(r){var a=u.toElementsArray(this),i=r,e="function"==typeof r?function(e){for(var t=0;t<a.length;t++)if((this===w||e.target===a[t])&&e.callback===i)return!0;return!1}:function(e){for(var t=0;t<a.length;t++)if((this===w||e.target===a[t])&&e.selector===r)return!0;return!1};o.removeEvent(e)},this.unbindEventWithSelectorAndCallback=function(r,a){var i=u.toElementsArray(this);o.removeEvent(function(e){for(var t=0;t<i.length;t++)if((this===w||e.target===i[t])&&e.selector===r&&e.callback===a)return!0;return!1})},this},i=new function(){var s={fireOnAttributesModification:!1,onceOnly:!1,existing:!1};function n(e,t,r){return!(!u.matchesSelector(e,t.selector)||(e._id===w&&(e._id=a++),-1!=t.firedElems.indexOf(e._id)))&&(t.firedElems.push(e._id),!0)}var c=(i=new t(function(e){var t={attributes:!1,childList:!0,subtree:!0};return e.fireOnAttributesModification&&(t.attributes=!0),t},function(e,i){e.forEach(function(e){var t=e.addedNodes,r=e.target,a=[];null!==t&&0<t.length?u.checkChildNodesRecursively(t,i,n,a):"attributes"===e.type&&n(r,i)&&a.push({callback:i.callback,elem:r}),u.callCallbacks(a,i)})})).bindEvent;return i.bindEvent=function(e,t,r){t=void 0===r?(r=t,s):u.mergeArrays(s,t);var a=u.toElementsArray(this);if(t.existing){for(var i=[],n=0;n<a.length;n++)for(var o=a[n].querySelectorAll(e),l=0;l<o.length;l++)i.push({callback:r,elem:o[l]});if(t.onceOnly&&i.length)return r.call(i[0].elem,i[0].elem);setTimeout(u.callCallbacks,1,i)}c.call(this,e,t,r)},i},o=new function(){var a={};function i(e,t){return u.matchesSelector(e,t.selector)}var n=(o=new t(function(){return{childList:!0,subtree:!0}},function(e,r){e.forEach(function(e){var t=e.removedNodes,e=[];null!==t&&0<t.length&&u.checkChildNodesRecursively(t,r,i,e),u.callCallbacks(e,r)})})).bindEvent;return o.bindEvent=function(e,t,r){t=void 0===r?(r=t,a):u.mergeArrays(a,t),n.call(this,e,t,r)},o};d(HTMLElement.prototype),d(NodeList.prototype),d(HTMLCollection.prototype),d(HTMLDocument.prototype),d(Window.prototype);var n={};return s(i,n,"unbindAllArrive"),s(o,n,"unbindAllLeave"),n}function l(){this._eventsBucket=[],this._beforeAdding=null,this._beforeRemoving=null}function s(e,t,r){u.addMethod(t,r,e.unbindEvent),u.addMethod(t,r,e.unbindEventWithSelectorOrCallback),u.addMethod(t,r,e.unbindEventWithSelectorAndCallback)}function d(e){e.arrive=i.bindEvent,s(i,e,"unbindArrive"),e.leave=o.bindEvent,s(o,e,"unbindLeave")}}(window,void 0),ewww_webp_supported=!1;function check_webp_feature(e,t){var r;ewww_webp_supported?t(ewww_webp_supported):((r=new Image).onload=function(){ewww_webp_supported=0<r.width&&0<r.height,t(ewww_webp_supported)},r.onerror=function(){t(!1)},r.src="data:image/webp;base64,"+{alpha:"UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA==",animation:"UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA"}[e])}function ewwwLoadImages(e){if(e){for(var t=document.querySelectorAll(".batch-image img, .image-wrapper a, .ngg-pro-masonry-item a, .ngg-galleria-offscreen-seo-wrapper a"),r=0,a=t.length;r<a;r++)ewwwAttr(t[r],"data-src",t[r].getAttribute("data-webp")),ewwwAttr(t[r],"data-thumbnail",t[r].getAttribute("data-webp-thumbnail"));for(var i=document.querySelectorAll("div.woocommerce-product-gallery__image"),r=0,a=i.length;r<a;r++)ewwwAttr(i[r],"data-thumb",i[r].getAttribute("data-webp-thumb"))}for(var n=document.querySelectorAll("video"),r=0,a=n.length;r<a;r++)ewwwAttr(n[r],"poster",e?n[r].getAttribute("data-poster-webp"):n[r].getAttribute("data-poster-image"));for(var o,l=document.querySelectorAll("img.ewww_webp_lazy_load"),r=0,a=l.length;r<a;r++)e&&(ewwwAttr(l[r],"data-lazy-srcset",l[r].getAttribute("data-lazy-srcset-webp")),ewwwAttr(l[r],"data-srcset",l[r].getAttribute("data-srcset-webp")),ewwwAttr(l[r],"data-lazy-src",l[r].getAttribute("data-lazy-src-webp")),ewwwAttr(l[r],"data-src",l[r].getAttribute("data-src-webp")),ewwwAttr(l[r],"data-orig-file",l[r].getAttribute("data-webp-orig-file")),ewwwAttr(l[r],"data-medium-file",l[r].getAttribute("data-webp-medium-file")),ewwwAttr(l[r],"data-large-file",l[r].getAttribute("data-webp-large-file")),null!=(o=l[r].getAttribute("srcset"))&&!1!==o&&o.includes("R0lGOD")&&ewwwAttr(l[r],"src",l[r].getAttribute("data-lazy-src-webp"))),l[r].className=l[r].className.replace(/\bewww_webp_lazy_load\b/,"");for(var s=document.querySelectorAll(".ewww_webp"),r=0,a=s.length;r<a;r++)e?(ewwwAttr(s[r],"srcset",s[r].getAttribute("data-srcset-webp")),ewwwAttr(s[r],"src",s[r].getAttribute("data-src-webp")),ewwwAttr(s[r],"data-orig-file",s[r].getAttribute("data-webp-orig-file")),ewwwAttr(s[r],"data-medium-file",s[r].getAttribute("data-webp-medium-file")),ewwwAttr(s[r],"data-large-file",s[r].getAttribute("data-webp-large-file")),ewwwAttr(s[r],"data-large_image",s[r].getAttribute("data-webp-large_image")),ewwwAttr(s[r],"data-src",s[r].getAttribute("data-webp-src"))):(ewwwAttr(s[r],"srcset",s[r].getAttribute("data-srcset-img")),ewwwAttr(s[r],"src",s[r].getAttribute("data-src-img"))),s[r].className=s[r].className.replace(/\bewww_webp\b/,"ewww_webp_loaded");window.jQuery&&jQuery.fn.isotope&&jQuery.fn.imagesLoaded&&(jQuery(".fusion-posts-container-infinite").imagesLoaded(function(){jQuery(".fusion-posts-container-infinite").hasClass("isotope")&&jQuery(".fusion-posts-container-infinite").isotope()}),jQuery(".fusion-portfolio:not(.fusion-recent-works) .fusion-portfolio-wrapper").imagesLoaded(function(){jQuery(".fusion-portfolio:not(.fusion-recent-works) .fusion-portfolio-wrapper").isotope()}))}function ewwwWebPInit(e){ewwwLoadImages(e),ewwwNggLoadGalleries(e),document.arrive(".ewww_webp",function(){ewwwLoadImages(e)}),document.arrive(".ewww_webp_lazy_load",function(){ewwwLoadImages(e)}),document.arrive("videos",function(){ewwwLoadImages(e)}),"loading"==document.readyState?document.addEventListener("DOMContentLoaded",ewwwJSONParserInit):("undefined"!=typeof galleries&&ewwwNggParseGalleries(e),ewwwWooParseVariations(e))}function ewwwAttr(e,t,r){null!=r&&!1!==r&&e.setAttribute(t,r)}function ewwwJSONParserInit(){"undefined"!=typeof galleries&&check_webp_feature("alpha",ewwwNggParseGalleries),check_webp_feature("alpha",ewwwWooParseVariations)}function ewwwWooParseVariations(e){if(e)for(var t=document.querySelectorAll("form.variations_form"),r=0,a=t.length;r<a;r++){var i=t[r].getAttribute("data-product_variations"),n=!1;try{for(var o in i=JSON.parse(i))void 0!==i[o]&&void 0!==i[o].image&&(void 0!==i[o].image.src_webp&&(i[o].image.src=i[o].image.src_webp,n=!0),void 0!==i[o].image.srcset_webp&&(i[o].image.srcset=i[o].image.srcset_webp,n=!0),void 0!==i[o].image.full_src_webp&&(i[o].image.full_src=i[o].image.full_src_webp,n=!0),void 0!==i[o].image.gallery_thumbnail_src_webp&&(i[o].image.gallery_thumbnail_src=i[o].image.gallery_thumbnail_src_webp,n=!0),void 0!==i[o].image.thumb_src_webp&&(i[o].image.thumb_src=i[o].image.thumb_src_webp,n=!0));n&&ewwwAttr(t[r],"data-product_variations",JSON.stringify(i))}catch(e){}}}function ewwwNggParseGalleries(e){if(e)for(var t in galleries){var r=galleries[t];galleries[t].images_list=ewwwNggParseImageList(r.images_list)}}function ewwwNggLoadGalleries(e){e&&document.addEventListener("ngg.galleria.themeadded",function(e,t){window.ngg_galleria._create_backup=window.ngg_galleria.create,window.ngg_galleria.create=function(e,t){var r=$(e).data("id");return galleries["gallery_"+r].images_list=ewwwNggParseImageList(galleries["gallery_"+r].images_list),window.ngg_galleria._create_backup(e,t)}})}function ewwwNggParseImageList(e){for(var t in e){var r=e[t];if(void 0!==r["image-webp"]&&(e[t].image=r["image-webp"],delete e[t]["image-webp"]),void 0!==r["thumb-webp"]&&(e[t].thumb=r["thumb-webp"],delete e[t]["thumb-webp"]),void 0!==r.full_image_webp&&(e[t].full_image=r.full_image_webp,delete e[t].full_image_webp),void 0!==r.srcsets)for(var a in r.srcsets)nggSrcset=r.srcsets[a],void 0!==r.srcsets[a+"-webp"]&&(e[t].srcsets[a]=r.srcsets[a+"-webp"],delete e[t].srcsets[a+"-webp"]);if(void 0!==r.full_srcsets)for(var i in r.full_srcsets)nggFSrcset=r.full_srcsets[i],void 0!==r.full_srcsets[i+"-webp"]&&(e[t].full_srcsets[i]=r.full_srcsets[i+"-webp"],delete e[t].full_srcsets[i+"-webp"])}return e}check_webp_feature("alpha",ewwwWebPInit);
var lpData = {"site_url":"https:\/\/fnacompany.gr","user_id":"0","theme":"blocksy-child","lp_rest_url":"https:\/\/fnacompany.gr\/wp-json\/","nonce":"45619c746f","is_course_archive":"","courses_url":"https:\/\/fnacompany.gr\/404-2\/","urlParams":[],"lp_version":"4.4.0","lp_rest_load_ajax":"https:\/\/fnacompany.gr\/wp-json\/lp\/v1\/load_content_via_ajax\/","ajaxUrl":"https:\/\/fnacompany.gr\/wp-admin\/admin-ajax.php","lpAjaxUrl":"https:\/\/fnacompany.gr\/lp-ajax-handle","coverImageRatio":"5.16","toast":{"gravity":"bottom","position":"center","duration":3000,"close":1,"stopOnFocus":1,"classPrefix":"lp-toast"},"i18n":{"yes":"\u039d\u03b1\u03b9","cancel":"\u0391\u03ba\u03cd\u03c1\u03c9\u03c3\u03b7","generate_with_ai":"Generate with AI","confirm_close_ai":"Are you sure you want to close? Generate data will stop."},"enable_open_ai":"","lp_woo_version":"4.2.3"};
var lpSettingCourses = {"lpArchiveLoadAjax":"1","lpArchiveNoLoadAjaxFirst":"0","lpArchivePaginationType":"number","noLoadCoursesJs":"0"};
var _ckyGcm = {"status":true,"default_settings":[{"analytics":"denied","advertisement":"denied","functional":"denied","necessary":"granted","ad_user_data":"denied","ad_personalization":"denied","regions":"All"}],"wait_for_update":2000,"url_passthrough":false,"ads_data_redaction":false}
Όταν το πάθος για εξέλιξη… συναντά το #Formulation
Το Formulation είναι ένας ευρέως γνωστός όρος που χρησιμοποιείται ιδιαίτερα στις σχολές του εξωτερικού. Όλοι οι σπουδαστές μαθαίνουν από τα πρώτα τους βήματα να υπολογίζουν τις δικές τους συνταγές χρησιμοποιώντας αυτή τη μέθοδο.
Το Formulation μας δίνει τη δυνατότητα μέσα από τις παραμέτρους της τεχνολογίας τροφίμων και της τεχνογνωσίας των πρώτων υλών, να υπολογίζουμε τις δικές μας συνταγές, σύμφωνα με τα τεχνικά χαρακτηριστικά που θέλουμε να έχει το τελικό προϊόν.
Αν ο επαγγελματίας ασχοληθεί, λοιπόν, με αυτό, μπορεί να υπολογίζει τις δικές του συνταγές σύμφωνα με τις παραμέτρους που ο ίδιος θέλει. Επίσης, μπορεί να διορθώσει προβλήματα κατά τη διάρκεια της παραγωγής, έχοντας την τεχνογνωσία των πρώτων υλών, ενώ παράλληλα μπορεί να εξηγήσει πολλά φαινόμενα που συμβαίνουν στην καθημερινότητα του συνδυάζοντας τα μεταξύ τους.
Βασικός πυλώνας του Formulation είναι η τεχνογνωσία και η τροφογνωσία των πρώτων υλών ενώ το συντριπτικό πλεονέκτημα του τεχνίτη που το γνωρίζει, είναι ότι μπορεί να δημιουργήσει μία μεγάλη ποικιλία προϊόντων η οποία καλύπτει πολλές ανάγκες, όπως είναι η δημιουργία καινοτόμων συνταγών και συνταγών χαμηλού κόστους με σεβασμό στην ποιότητα.
Στο εξωτερικό, οι σπουδαστές εκπαιδεύονται πάνω στο Formulation και στη συνέχεια εξειδικεύονται στον τομέα που τους ενδιαφέρει, πρακτική η οποία δυστυχώς δεν ακολουθείται στην Ελλάδα.
Στόχος μας είναι να εκσυγχρονίσουμε τη δική μας κουλτούρα και να συστήσουμε το Formulation σε περισσότερο κόσμο, προκειμένου ο καθένας να ασχολείται με τον τομέα που τον ενδιαφέρει, αποκτώντας εξειδικευμένη γνώση για την δουλειά του.
Μέσα από βιβλία, σεμινάρια και άρθρα τεχνολογικού περιεχομένου, μπορείς να μάθεις περισσότερα για το Formulation.
Έλα στον μαγικό κόσμο της FnA Company, να γνωρίσουμε παρέα το #Formutation. Βάλε φαντασία και δημιούργησε τις δικές σου συνταγές απο το μηδέν!
What is the Formulation for you Chef? How much does this help you in your daily life?
For me the formulation is the tool that help us to create recipes from scratch. And also is the application of specific knowledge of raw ingredients and manufacturing processes that give open way to creativity
On my daily work, formulation gives me the freedom to create and to understand almost any recipe
Jordi Puigvert, Technical adviser of Sossa, Pastry Chef Consultant, www.sweetngo.com
Τι είναι για εσάς το Formulation? Πώς αυτό σας βοηθάει στην καθημερινότητά σας;
Το Formulation και αυτό που μας προσφέρει είναι άκρως απαραίτητο για κάθε τύπο επιχείρησης.
Η δουλειά που έχει γίνει πίσω από την FnA Company μας δίνει την ευκαιρία να έχουμε τον έλεγχο και την τεχνογνωσία για την ημερήσια παραγωγή μας
Σπύρος Πεδιαδιτάκης, CO-Founder, Ourse Pastry & Brand Ambassandor Cacao Barry Group, Αθήνα
Τι είναι για εσάς το Formulation? Πώς αυτό σας βοηθάει στην καθημερινότητά σας;
Είμαι πεπεισμένος ότι το Formulation είναι εσωτερική ανάγκη για μια επιχείρηση αλλά και ένα τεχνήτη, προκειμένου και οι δυο να γνωρίζουν το (τεχνικό) αποτέλεσμα ενός προϊόντος πριν βγει στην παραγωγή, αλλά και αφού ξεκινήσει η όλη διαδικασία να μπορούν αμφότεροι να νιώθουν ασφαλείς για την ημερήσια παραγωγή τους.
Τι είναι για εσάς το Formulation? Πώς αυτό σας βοηθάει στην καθημερινότητά σας;
Στη ζαχαροπλαστική, είναι διαρκής η ανάγκη για εξέλιξη και διαφοροποίηση. Το Formulation είναι για εμάς ο τρόπος να το επιτύχουμε.
Αυτή η τεχνογνωσία μας παρέχει τη δυνατότητα της δημιουργίας των δικών μας συνταγών που καλύπτουν προσαρμοσμένα τις ανάγκες μας, χρησιμοποιώντας αποκλειστικά πρωτογενείς πρώτες ύλες χωρίς τη χρήση έτοιμων μειγμάτων.
Τι είναι για εσάς το Formulation? Πώς αυτό σας βοηθάει στην καθημερινότητά σας;
Tο Formulation με βοήθησε να κατανοήσω σε βάθος τη χρησιμότητα καθε πρώτης ύλης και το πως αυτή συμπεριφέρεται μέσα σε μία συνταγή. Επίσης μέσα απο το Formulation μου δίνεται η δυνατότητα να εναλλάσω τις πρώτες ύλες μεταξύ τους προσδίδοντας όμοια τεχνικά χαρακτηριστικά στο τελικό προϊόν.
Τέλος με βοηθάει στη διαχείρηση του food cost του τελικού προϊόντος. Έχοντας στα ”χέρια” μας το εργαλείο αυτό, μπορώ να κρατήσω χαμηλά το κόστος της πρώτης ύλης, πράγμα το οποίο βρίσκει αντίκτυπο στην τελική τιμή πώλησης του προϊόντος.
Τι είναι για εσάς το Formulation? Πώς αυτό σας βοηθάει στην καθημερινότητά σας;
Το Formulation είναι το εργαλείο για να κατανοήσεις, να δοκιμάσεις και δημιουργήσεις τα δικά σου προϊόντα που έχεις μεράκι.
Γιατί στο τέλος αυτό μετράει να ασχολείσαι με πράγματα που αγαπάς.
Γιάννης Κουτσούκος, CEO, glykaki.gr, Αθήνα
Τι είναι για εσάς το Formulation? Πώς αυτό σας βοηθάει στην καθημερινότητά σας;
Το Formulation ειναι σημαντικό τόσο για τον τεχνίτη οσο και για ολόκληρη την επιχείρηση.
Προσωπικά η δημιουργικότητα είναι το όπλο μου και η μέθοδος αυτή με βοήθησε να εξελιχθώ, να λύσω απορίες και να προχωρήσω ενα βήμα μπροστά.
“Απο την θεωρία στην πράξη” είναι λοιπόν είναι το slogan το οποίο θα μπορούσε να χαρακτηρίσει απόλυτα για μένα την έννοια του Formulation και το πως επιδρά στην καθημερινότητα μου.
Τι είναι για εσάς το Formulation? Πώς αυτό σας βοηθάει στην καθημερινότητά σας;
To Formulation στη ζαχαροπλαστική είναι σαν να βάζεις ένα προϊόν μέσα στο μικροσκόπιο και από κει μέσα να βλέπεις μόνο νούμερα, τα νούμερα που αποτελείται από τις πρώτες ύλες του, το κάθε προϊόν.
Έτσι μπορείς να ισορροπήσεις δύο διαφορετικά γλυκά, δύο διαφορετικές γεύσεις παγωτού προκειμένου να έχουν την ίδια συμπεριφορά και την ίδια δομή.
Αυτό σε βοηθάει στο να εξελιχθείς να δημιουργήσεις καινούργιες γεύσεις και να τις προσαρμοσεις στις δικές σου ανάγκες .
Δεμενεόπουλος Ειρηναίος, CEO, Μία ζωή Λουκουμάδες & Παγωτό Ειρηναίος, Ηράκλειο Κρήτης
(function () {
'use strict';var syncTimer = null;/* Read the current count from the Blocksy header cart element. */
function getHeaderCartCount() {
var el = document.querySelector('.ct-dynamic-count-cart');
if (!el) { return null; }
var raw = el.getAttribute('data-count') || el.textContent || '0';
var n = parseInt(raw, 10);
return isNaN(n) ? 0 : n;
}/* Push a count value to every footer cart element on the page. */
function applyCount(count) {
var n = Math.max(0, parseInt(count || 0, 10));document.querySelectorAll('[data-dl-footer-cart-count]').forEach(function (el) {
el.textContent = n > 0 ? String(n) : '';
});document.querySelectorAll('.dl-footer-cart').forEach(function (el) {
el.classList.toggle('has-items', n > 0);
});
}function syncFromHeader() {
var count = getHeaderCartCount();
if (count !== null) {
applyCount(count);
}
}/* Debounced wrapper – MutationObserver can fire many times per frame. */
function debouncedSync() {
clearTimeout(syncTimer);
syncTimer = setTimeout(syncFromHeader, 60);
}/*
* Watch the Blocksy header cart container for fragment replacements.
* When wc-cart-fragments replaces .ct-dynamic-count-cart the observer
* fires and we re-read the count from the new element.
*/
function setupObserver() {
var target =
document.querySelector('.ct-header-cart') ||
document.querySelector('.ct-header') ||
document.querySelector('[data-id="header"]') ||
document.querySelector('header');if (!target) { return; }var observer = new MutationObserver(debouncedSync);
observer.observe(target, {
childList : true,
subtree : true,
characterData : true,
attributes : true,
attributeFilter : ['data-count']
});
}/* WC jQuery events and add-to-cart click detection. */
function setupEvents() {
if (window.jQuery) {
jQuery(document.body).on(
'wc_fragments_refreshed wc_fragments_loaded ' +
'added_to_cart removed_from_cart ' +
'updated_cart_totals wc_fragment_refresh',
function () {
/* Two passes: immediately after the event, and after
Blocksy finishes its own DOM update. */
setTimeout(syncFromHeader, 120);
setTimeout(syncFromHeader, 700);
}
);
}/* Catch add-to-cart button clicks (Woo + LearnPress). */
document.addEventListener('click', function (e) {
if (e.target.closest &&
e.target.closest(
'.lp-btn-add-item-to-cart, .add_to_cart_button, ' +
'.single_add_to_cart_button, button[name="add-to-cart"]'
)
) {
setTimeout(syncFromHeader, 500);
setTimeout(syncFromHeader, 1300);
setTimeout(syncFromHeader, 3000);
}
});
}function init() {
syncFromHeader();
setupObserver();
setupEvents();
}if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', init);
} else {
init();
}/* BFCache: re-sync when user navigates back/forward. */
window.addEventListener('pageshow', function (e) {
if (e.persisted) {
/* Page restored from BFCache – force a fresh read. */
setTimeout(syncFromHeader, 100);
} else {
syncFromHeader();
}
});})();