PK
qhYJF F ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
Notice: ob_end_clean(): Failed to delete buffer. No buffer to delete in /home/telusvwg/public_html/da754d/index.php on line 8
| Dir : /home/telusvwg/techinnovo.co/wp-content/plugins/secure-custom-fields/assets/build/js/ |
| Server: Linux premium279.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64 IP: 66.29.132.192 |
| Dir : /home/telusvwg/techinnovo.co/wp-content/plugins/secure-custom-fields/assets/build/js/acf.js.map |
{"version":3,"file":"js/acf.js","mappings":"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E,GAAG;MACNC,CAAC,EAAE,IAAI;MACPC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,IAAI;MACPC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,IAAI;MACPC,CAAC,EAAE,IAAI;MACPC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,IAAI;MACPC,CAAC,EAAE,IAAI;MACPC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MACNC,CAAC,EAAE,GAAG;MA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AE,CAAE,QAAQ,EAAE,YAAY;IACrC7E,GAAG,CAACvC,QAAQ,CAAE,QAAS,CAAC;EACzB,CAAE,CAAC;EAEHwC,CAAC,CAAEiF,QAAS,CAAC,CAACL,EAAE,CAAE,WAAW,EAAE,UAAWI,KAAK,EAAE0jB,EAAE,EAAG;IACrD3oB,GAAG,CAACvC,QAAQ,CAAE,WAAW,EAAEkrB,EAAE,CAACtK,IAAI,EAAEsK,EAAE,CAACC,WAAY,CAAC;EACrD,CAAE,CAAC;EAEH3oB,CAAC,CAAEiF,QAAS,CAAC,CAACL,EAAE,CAAE,UAAU,EAAE,UAAWI,KAAK,EAAE0jB,EAAE,EAAG;IACpD3oB,GAAG,CAACvC,QAAQ,CAAE,UAAU,EAAEkrB,EAAE,CAACtK,IAAI,EAAEsK,EAAE,CAACC,WAAY,CAAC;EACpD,CAAE,CAAC;AACJ,CAAC,EAAIlmB,MAAO,CAAC,C;;;;;;;;;;;ACvxFb;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE,UAAU;AACZ;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,aAAa;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,eAAe;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,eAAe;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,eAAe;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sBAAsB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,EAAE,iBAAiB,EAAE,MAAM;AACzD;AACA,8BAA8B,aAAa;AAC3C,wDAAwD;AACxD,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA,0CAA0C;AAC1C;AACA;AACA,gBAAgB,sBAAsB;AACtC,gBAAgB,sBAAsB;AACtC,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA,2CAA2C;AAC3C;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD,kDAAkD;AAClD,2CAA2C;AAC3C;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E;AAC1E,0EAA0E;AAC1E,sFAAsF;AACtF;AACA;AACA,gFAAgF;AAChF,wEAAwE,gDAAgD;AACxH,wEAAwE,gDAAgD;AACxH;AACA,qDAAqD;AACrD,qDAAqD;AACrD,oEAAoE;AACpE,uEAAuE;AACvE,0DAA0D;AAC1D,+CAA+C;AAC/C,kDAAkD;AAClD,0CAA0C;AAC1C,4DAA4D;AAC5D,4DAA4D;AAC5D,0CAA0C;AAC1C,+CAA+C;AAC/C,8DAA8D;AAC9D,+CAA+C;AAC/C,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,QAAQ;AACR;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,oFAAoF,6DAA6D,8HAA8H;AAC/Q;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qTAAqT;AACrT;AACA;AACA;AACA,MAAM,wCAAwC,oFAAoF,oKAAoK,iHAAiH;AACvZ;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;UCr2CA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA,E;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA,E;;;;;WCPA,wF;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNmB;AACM;AACA;AACA;AACA;AACA;AACC","sources":["webpack:///./assets/src/js/_acf-hooks.js","webpack:///./assets/src/js/_acf-modal.js","webpack:///./assets/src/js/_acf-model.js","webpack:///./assets/src/js/_acf-notice.js","webpack:///./assets/src/js/_acf-panel.js","webpack:///./assets/src/js/_acf-popup.js","webpack:///./assets/src/js/_acf-tooltip.js","webpack:///./assets/src/js/_acf.js","webpack:///./node_modules/dompurify/dist/purify.cjs.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///./assets/src/js/acf.js"],"sourcesContent":["( function ( window, undefined ) {\n\t'use strict';\n\n\t/**\n\t * Handles managing all events for whatever you plug it into. Priorities for hooks are based on lowest to highest in\n\t * that, lowest priority hooks are fired first.\n\t */\n\tvar EventManager = function () {\n\t\t/**\n\t\t * Maintain a reference to the object scope so our public methods never get confusing.\n\t\t */\n\t\tvar MethodsAvailable = {\n\t\t\tremoveFilter: removeFilter,\n\t\t\tapplyFilters: applyFilters,\n\t\t\taddFilter: addFilter,\n\t\t\tremoveAction: removeAction,\n\t\t\tdoAction: doAction,\n\t\t\taddAction: addAction,\n\t\t\tstorage: getStorage,\n\t\t};\n\n\t\t/**\n\t\t * Contains the hooks that get registered with this EventManager. The array for storage utilizes a \"flat\"\n\t\t * object literal such that looking up the hook utilizes the native object literal hash.\n\t\t */\n\t\tvar STORAGE = {\n\t\t\tactions: {},\n\t\t\tfilters: {},\n\t\t};\n\n\t\tfunction getStorage() {\n\t\t\treturn STORAGE;\n\t\t}\n\n\t\t/**\n\t\t * Adds an action to the event manager.\n\t\t *\n\t\t * @param action Must contain namespace.identifier\n\t\t * @param callback Must be a valid callback function before this action is added\n\t\t * @param [priority=10] Used to control when the function is executed in relation to other callbacks bound to the same hook\n\t\t * @param [context] Supply a value to be used for this\n\t\t */\n\t\tfunction addAction( action, callback, priority, context ) {\n\t\t\tif (\n\t\t\t\ttypeof action === 'string' &&\n\t\t\t\ttypeof callback === 'function'\n\t\t\t) {\n\t\t\t\tpriority = parseInt( priority || 10, 10 );\n\t\t\t\t_addHook( 'actions', action, callback, priority, context );\n\t\t\t}\n\n\t\t\treturn MethodsAvailable;\n\t\t}\n\n\t\t/**\n\t\t * Performs an action if it exists. You can pass as many arguments as you want to this function; the only rule is\n\t\t * that the first argument must always be the action.\n\t\t */\n\t\tfunction doAction(/* action, arg1, arg2, ... */) {\n\t\t\tvar args = Array.prototype.slice.call( arguments );\n\t\t\tvar action = args.shift();\n\n\t\t\tif ( typeof action === 'string' ) {\n\t\t\t\t_runHook( 'actions', action, args );\n\t\t\t}\n\n\t\t\treturn MethodsAvailable;\n\t\t}\n\n\t\t/**\n\t\t * Removes the specified action if it contains a namespace.identifier & exists.\n\t\t *\n\t\t * @param action The action to remove\n\t\t * @param [callback] Callback function to remove\n\t\t */\n\t\tfunction removeAction( action, callback ) {\n\t\t\tif ( typeof action === 'string' ) {\n\t\t\t\t_removeHook( 'actions', action, callback );\n\t\t\t}\n\n\t\t\treturn MethodsAvailable;\n\t\t}\n\n\t\t/**\n\t\t * Adds a filter to the event manager.\n\t\t *\n\t\t * @param filter Must contain namespace.identifier\n\t\t * @param callback Must be a valid callback function before this action is added\n\t\t * @param [priority=10] Used to control when the function is executed in relation to other callbacks bound to the same hook\n\t\t * @param [context] Supply a value to be used for this\n\t\t */\n\t\tfunction addFilter( filter, callback, priority, context ) {\n\t\t\tif (\n\t\t\t\ttypeof filter === 'string' &&\n\t\t\t\ttypeof callback === 'function'\n\t\t\t) {\n\t\t\t\tpriority = parseInt( priority || 10, 10 );\n\t\t\t\t_addHook( 'filters', filter, callback, priority, context );\n\t\t\t}\n\n\t\t\treturn MethodsAvailable;\n\t\t}\n\n\t\t/**\n\t\t * Performs a filter if it exists. You should only ever pass 1 argument to be filtered. The only rule is that\n\t\t * the first argument must always be the filter.\n\t\t */\n\t\tfunction applyFilters(/* filter, filtered arg, arg2, ... */) {\n\t\t\tvar args = Array.prototype.slice.call( arguments );\n\t\t\tvar filter = args.shift();\n\n\t\t\tif ( typeof filter === 'string' ) {\n\t\t\t\treturn _runHook( 'filters', filter, args );\n\t\t\t}\n\n\t\t\treturn MethodsAvailable;\n\t\t}\n\n\t\t/**\n\t\t * Removes the specified filter if it contains a namespace.identifier & exists.\n\t\t *\n\t\t * @param filter The action to remove\n\t\t * @param [callback] Callback function to remove\n\t\t */\n\t\tfunction removeFilter( filter, callback ) {\n\t\t\tif ( typeof filter === 'string' ) {\n\t\t\t\t_removeHook( 'filters', filter, callback );\n\t\t\t}\n\n\t\t\treturn MethodsAvailable;\n\t\t}\n\n\t\t/**\n\t\t * Removes the specified hook by resetting the value of it.\n\t\t *\n\t\t * @param type Type of hook, either 'actions' or 'filters'\n\t\t * @param hook The hook (namespace.identifier) to remove\n\t\t * @private\n\t\t */\n\t\tfunction _removeHook( type, hook, callback, context ) {\n\t\t\tif ( ! STORAGE[ type ][ hook ] ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( ! callback ) {\n\t\t\t\tSTORAGE[ type ][ hook ] = [];\n\t\t\t} else {\n\t\t\t\tvar handlers = STORAGE[ type ][ hook ];\n\t\t\t\tvar i;\n\t\t\t\tif ( ! context ) {\n\t\t\t\t\tfor ( i = handlers.length; i--; ) {\n\t\t\t\t\t\tif ( handlers[ i ].callback === callback ) {\n\t\t\t\t\t\t\thandlers.splice( i, 1 );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfor ( i = handlers.length; i--; ) {\n\t\t\t\t\t\tvar handler = handlers[ i ];\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\thandler.callback === callback &&\n\t\t\t\t\t\t\thandler.context === context\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\thandlers.splice( i, 1 );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Adds the hook to the appropriate storage container\n\t\t *\n\t\t * @param type 'actions' or 'filters'\n\t\t * @param hook The hook (namespace.identifier) to add to our event manager\n\t\t * @param callback The function that will be called when the hook is executed.\n\t\t * @param priority The priority of this hook. Must be an integer.\n\t\t * @param [context] A value to be used for this\n\t\t * @private\n\t\t */\n\t\tfunction _addHook( type, hook, callback, priority, context ) {\n\t\t\tvar hookObject = {\n\t\t\t\tcallback: callback,\n\t\t\t\tpriority: priority,\n\t\t\t\tcontext: context,\n\t\t\t};\n\n\t\t\t// Utilize 'prop itself' : http://jsperf.com/hasownproperty-vs-in-vs-undefined/19\n\t\t\tvar hooks = STORAGE[ type ][ hook ];\n\t\t\tif ( hooks ) {\n\t\t\t\thooks.push( hookObject );\n\t\t\t\thooks = _hookInsertSort( hooks );\n\t\t\t} else {\n\t\t\t\thooks = [ hookObject ];\n\t\t\t}\n\n\t\t\tSTORAGE[ type ][ hook ] = hooks;\n\t\t}\n\n\t\t/**\n\t\t * Use an insert sort for keeping our hooks organized based on priority. This function is ridiculously faster\n\t\t * than bubble sort, etc: http://jsperf.com/javascript-sort\n\t\t *\n\t\t * @param hooks The custom array containing all of the appropriate hooks to perform an insert sort on.\n\t\t * @private\n\t\t */\n\t\tfunction _hookInsertSort( hooks ) {\n\t\t\tvar tmpHook, j, prevHook;\n\t\t\tfor ( var i = 1, len = hooks.length; i < len; i++ ) {\n\t\t\t\ttmpHook = hooks[ i ];\n\t\t\t\tj = i;\n\t\t\t\twhile (\n\t\t\t\t\t( prevHook = hooks[ j - 1 ] ) &&\n\t\t\t\t\tprevHook.priority > tmpHook.priority\n\t\t\t\t) {\n\t\t\t\t\thooks[ j ] = hooks[ j - 1 ];\n\t\t\t\t\t--j;\n\t\t\t\t}\n\t\t\t\thooks[ j ] = tmpHook;\n\t\t\t}\n\n\t\t\treturn hooks;\n\t\t}\n\n\t\t/**\n\t\t * Runs the specified hook. If it is an action, the value is not modified but if it is a filter, it is.\n\t\t *\n\t\t * @param type 'actions' or 'filters'\n\t\t * @param hook The hook ( namespace.identifier ) to be ran.\n\t\t * @param args Arguments to pass to the action/filter. If it's a filter, args is actually a single parameter.\n\t\t * @private\n\t\t */\n\t\tfunction _runHook( type, hook, args ) {\n\t\t\tvar handlers = STORAGE[ type ][ hook ];\n\n\t\t\tif ( ! handlers ) {\n\t\t\t\treturn type === 'filters' ? args[ 0 ] : false;\n\t\t\t}\n\n\t\t\tvar i = 0,\n\t\t\t\tlen = handlers.length;\n\t\t\tif ( type === 'filters' ) {\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\targs[ 0 ] = handlers[ i ].callback.apply(\n\t\t\t\t\t\thandlers[ i ].context,\n\t\t\t\t\t\targs\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\thandlers[ i ].callback.apply( handlers[ i ].context, args );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn type === 'filters' ? args[ 0 ] : true;\n\t\t}\n\n\t\t// return all of the publicly available methods\n\t\treturn MethodsAvailable;\n\t};\n\n\t// instantiate\n\tacf.hooks = new EventManager();\n} )( window );\n","( function ( $, undefined ) {\n\tacf.models.Modal = acf.Model.extend( {\n\t\tdata: {\n\t\t\ttitle: '',\n\t\t\tcontent: '',\n\t\t\ttoolbar: '',\n\t\t},\n\t\tevents: {\n\t\t\t'click .acf-modal-close': 'onClickClose',\n\t\t},\n\t\tsetup: function ( props ) {\n\t\t\t$.extend( this.data, props );\n\t\t\tthis.$el = $();\n\t\t\tthis.render();\n\t\t},\n\t\tinitialize: function () {\n\t\t\tthis.open();\n\t\t},\n\t\trender: function () {\n\t\t\t// Extract vars.\n\t\t\tvar title = this.get( 'title' );\n\t\t\tvar content = this.get( 'content' );\n\t\t\tvar toolbar = this.get( 'toolbar' );\n\n\t\t\t// Create element.\n\t\t\tvar $el = $(\n\t\t\t\t[\n\t\t\t\t\t'<div>',\n\t\t\t\t\t'<div class=\"acf-modal\">',\n\t\t\t\t\t'<div class=\"acf-modal-title\">',\n\t\t\t\t\t'<h2>' + title + '</h2>',\n\t\t\t\t\t'<button class=\"acf-modal-close\" type=\"button\"><span class=\"dashicons dashicons-no\"></span></button>',\n\t\t\t\t\t'</div>',\n\t\t\t\t\t'<div class=\"acf-modal-content\">' + content + '</div>',\n\t\t\t\t\t'<div class=\"acf-modal-toolbar\">' + toolbar + '</div>',\n\t\t\t\t\t'</div>',\n\t\t\t\t\t'<div class=\"acf-modal-backdrop acf-modal-close\"></div>',\n\t\t\t\t\t'</div>',\n\t\t\t\t].join( '' )\n\t\t\t);\n\n\t\t\t// Update DOM.\n\t\t\tif ( this.$el ) {\n\t\t\t\tthis.$el.replaceWith( $el );\n\t\t\t}\n\t\t\tthis.$el = $el;\n\n\t\t\t// Trigger action.\n\t\t\tacf.doAction( 'append', $el );\n\t\t},\n\t\tupdate: function ( props ) {\n\t\t\tthis.data = acf.parseArgs( props, this.data );\n\t\t\tthis.render();\n\t\t},\n\t\ttitle: function ( title ) {\n\t\t\tthis.$( '.acf-modal-title h2' ).html( title );\n\t\t},\n\t\tcontent: function ( content ) {\n\t\t\tthis.$( '.acf-modal-content' ).html( content );\n\t\t},\n\t\ttoolbar: function ( toolbar ) {\n\t\t\tthis.$( '.acf-modal-toolbar' ).html( toolbar );\n\t\t},\n\t\topen: function () {\n\t\t\t$( 'body' ).append( this.$el );\n\t\t},\n\t\tclose: function () {\n\t\t\tthis.remove();\n\t\t},\n\t\tonClickClose: function ( e, $el ) {\n\t\t\te.preventDefault();\n\t\t\tthis.close();\n\t\t},\n\n\t\t/**\n\t\t * Places focus within the popup.\n\t\t */\n\t\tfocus: function() {\n\t\t\tthis.$el.find( '.acf-icon' ).first().trigger( 'focus' );\n\t\t},\n\n\t\t/**\n\t\t * Locks focus within the modal.\n\t\t *\n\t\t * @param {boolean} locked True to lock focus, false to unlock.\n\t\t */\n\t\tlockFocusToModal: function( locked ) {\n\t\t\tlet inertElement = $( '#wpwrap' );\n\n\t\t\tif ( ! inertElement.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tinertElement[ 0 ].inert = locked;\n\t\t\tinertElement.attr( 'aria-hidden', locked );\n\t\t},\n\n\t\t/**\n\t\t * Returns focus to the element that opened the popup\n\t\t * if it still exists in the DOM.\n\t\t */\n\t\treturnFocusToOrigin: function() {\n\t\t\tif (\n\t\t\t\tthis.data.openedBy instanceof $\n\t\t\t\t&& this.data.openedBy.closest( 'body' ).length > 0\n\t\t\t) {\n\t\t\t\tthis.data.openedBy.trigger( 'focus' );\n\t\t\t}\n\t\t}\n\t} );\n\n\t/**\n\t * Returns a new modal.\n\t *\n\t * @date\t21/4/20\n\t * @since\tACF 5.9.0\n\t *\n\t * @param\tobject props The modal props.\n\t * @return\tobject\n\t */\n\tacf.newModal = function ( props ) {\n\t\treturn new acf.models.Modal( props );\n\t};\n} )( jQuery );\n","( function ( $, undefined ) {\n\t// Cached regex to split keys for `addEvent`.\n\tvar delegateEventSplitter = /^(\\S+)\\s*(.*)$/;\n\n\t/**\n\t * extend\n\t *\n\t * Helper function to correctly set up the prototype chain for subclasses\n\t * Heavily inspired by backbone.js\n\t *\n\t * @date\t14/12/17\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\tobject protoProps New properties for this object.\n\t * @return\tfunction.\n\t */\n\n\tvar extend = function ( protoProps ) {\n\t\t// vars\n\t\tvar Parent = this;\n\t\tvar Child;\n\n\t\t// The constructor function for the new subclass is either defined by you\n\t\t// (the \"constructor\" property in your `extend` definition), or defaulted\n\t\t// by us to simply call the parent constructor.\n\t\tif ( protoProps && protoProps.hasOwnProperty( 'constructor' ) ) {\n\t\t\tChild = protoProps.constructor;\n\t\t} else {\n\t\t\tChild = function () {\n\t\t\t\treturn Parent.apply( this, arguments );\n\t\t\t};\n\t\t}\n\n\t\t// Add static properties to the constructor function, if supplied.\n\t\t$.extend( Child, Parent );\n\n\t\t// Set the prototype chain to inherit from `parent`, without calling\n\t\t// `parent`'s constructor function and add the prototype properties.\n\t\tChild.prototype = Object.create( Parent.prototype );\n\t\t$.extend( Child.prototype, protoProps );\n\t\tChild.prototype.constructor = Child;\n\n\t\t// Set a convenience property in case the parent's prototype is needed later.\n\t\t//Child.prototype.__parent__ = Parent.prototype;\n\n\t\t// return\n\t\treturn Child;\n\t};\n\n\t/**\n\t * Model\n\t *\n\t * Base class for all inheritance\n\t *\n\t * @date\t14/12/17\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\tobject props\n\t * @return\tfunction.\n\t */\n\n\tvar Model = ( acf.Model = function () {\n\t\t// generate unique client id\n\t\tthis.cid = acf.uniqueId( 'acf' );\n\n\t\t// set vars to avoid modifying prototype\n\t\tthis.data = $.extend( true, {}, this.data );\n\n\t\t// pass props to setup function\n\t\tthis.setup.apply( this, arguments );\n\n\t\t// store on element (allow this.setup to create this.$el)\n\t\tif ( this.$el && ! this.$el.data( 'acf' ) ) {\n\t\t\tthis.$el.data( 'acf', this );\n\t\t}\n\n\t\t// initialize\n\t\tvar initialize = function () {\n\t\t\tthis.initialize();\n\t\t\tthis.addEvents();\n\t\t\tthis.addActions();\n\t\t\tthis.addFilters();\n\t\t};\n\n\t\t// initialize on action\n\t\tif ( this.wait && ! acf.didAction( this.wait ) ) {\n\t\t\tthis.addAction( this.wait, initialize );\n\n\t\t\t// initialize now\n\t\t} else {\n\t\t\tinitialize.apply( this );\n\t\t}\n\t} );\n\n\t// Attach all inheritable methods to the Model prototype.\n\t$.extend( Model.prototype, {\n\t\t// Unique model id\n\t\tid: '',\n\n\t\t// Unique client id\n\t\tcid: '',\n\n\t\t// jQuery element\n\t\t$el: null,\n\n\t\t// Data specific to this instance\n\t\tdata: {},\n\n\t\t// toggle used when changing data\n\t\tbusy: false,\n\t\tchanged: false,\n\n\t\t// Setup events hooks\n\t\tevents: {},\n\t\tactions: {},\n\t\tfilters: {},\n\n\t\t// class used to avoid nested event triggers\n\t\teventScope: '',\n\n\t\t// action to wait until initialize\n\t\twait: false,\n\n\t\t// action priority default\n\t\tpriority: 10,\n\n\t\t/**\n\t\t * get\n\t\t *\n\t\t * Gets a specific data value\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\tACF 5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @return\tmixed\n\t\t */\n\n\t\tget: function ( name ) {\n\t\t\treturn this.data[ name ];\n\t\t},\n\n\t\t/**\n\t\t * has\n\t\t *\n\t\t * Returns `true` if the data exists and is not null\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\tACF 5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @return\tboolean\n\t\t */\n\n\t\thas: function ( name ) {\n\t\t\treturn this.get( name ) != null;\n\t\t},\n\n\t\t/**\n\t\t * set\n\t\t *\n\t\t * Sets a specific data value\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\tACF 5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @param\tmixed value\n\t\t * @return\tthis\n\t\t */\n\n\t\tset: function ( name, value, silent ) {\n\t\t\t// bail if unchanged\n\t\t\tvar prevValue = this.get( name );\n\t\t\tif ( prevValue == value ) {\n\t\t\t\treturn this;\n\t\t\t}\n\n\t\t\t// set data\n\t\t\tthis.data[ name ] = value;\n\n\t\t\t// trigger events\n\t\t\tif ( ! silent ) {\n\t\t\t\tthis.changed = true;\n\t\t\t\tthis.trigger( 'changed:' + name, [ value, prevValue ] );\n\t\t\t\tthis.trigger( 'changed', [ name, value, prevValue ] );\n\t\t\t}\n\n\t\t\t// return\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * inherit\n\t\t *\n\t\t * Inherits the data from a jQuery element\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\tACF 5.6.5\n\t\t *\n\t\t * @param\tjQuery $el\n\t\t * @return\tthis\n\t\t */\n\n\t\tinherit: function ( data ) {\n\t\t\t// allow jQuery\n\t\t\tif ( data instanceof jQuery ) {\n\t\t\t\tdata = data.data();\n\t\t\t}\n\n\t\t\t// extend\n\t\t\t$.extend( this.data, data );\n\n\t\t\t// return\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * prop\n\t\t *\n\t\t * mimics the jQuery prop function\n\t\t *\n\t\t * @date\t4/6/18\n\t\t * @since\tACF 5.6.9\n\t\t *\n\t\t * @param\ttype $var Description. Default.\n\t\t * @return\ttype Description.\n\t\t */\n\n\t\tprop: function () {\n\t\t\treturn this.$el.prop.apply( this.$el, arguments );\n\t\t},\n\n\t\t/**\n\t\t * setup\n\t\t *\n\t\t * Run during constructor function\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\tACF 5.6.5\n\t\t *\n\t\t * @param\tn/a\n\t\t * @return\tn/a\n\t\t */\n\n\t\tsetup: function ( props ) {\n\t\t\t$.extend( this, props );\n\t\t},\n\n\t\t/**\n\t\t * initialize\n\t\t *\n\t\t * Also run during constructor function\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\tACF 5.6.5\n\t\t *\n\t\t * @param\tn/a\n\t\t * @return\tn/a\n\t\t */\n\n\t\tinitialize: function () {},\n\n\t\t/**\n\t\t * addElements\n\t\t *\n\t\t * Adds multiple jQuery elements to this object\n\t\t *\n\t\t * @date\t9/5/18\n\t\t * @since\tACF 5.6.9\n\t\t *\n\t\t * @param\ttype $var Description. Default.\n\t\t * @return\ttype Description.\n\t\t */\n\n\t\taddElements: function ( elements ) {\n\t\t\telements = elements || this.elements || null;\n\t\t\tif ( ! elements || ! Object.keys( elements ).length ) return false;\n\t\t\tfor ( var i in elements ) {\n\t\t\t\tthis.addElement( i, elements[ i ] );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * addElement\n\t\t *\n\t\t * description\n\t\t *\n\t\t * @date\t9/5/18\n\t\t * @since\tACF 5.6.9\n\t\t *\n\t\t * @param\ttype $var Description. Default.\n\t\t * @return\ttype Description.\n\t\t */\n\n\t\taddElement: function ( name, selector ) {\n\t\t\tthis[ '$' + name ] = this.$( selector );\n\t\t},\n\n\t\t/**\n\t\t * addEvents\n\t\t *\n\t\t * Adds multiple event handlers\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\tACF 5.6.5\n\t\t *\n\t\t * @param\tobject events {event1 : callback, event2 : callback, etc }\n\t\t * @return\tn/a\n\t\t */\n\n\t\taddEvents: function ( events ) {\n\t\t\tevents = events || this.events || null;\n\t\t\tif ( ! events ) return false;\n\t\t\tfor ( var key in events ) {\n\t\t\t\tvar match = key.match( delegateEventSplitter );\n\t\t\t\tthis.on( match[ 1 ], match[ 2 ], events[ key ] );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * removeEvents\n\t\t *\n\t\t * Removes multiple event handlers\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\tACF 5.6.5\n\t\t *\n\t\t * @param\tobject events {event1 : callback, event2 : callback, etc }\n\t\t * @return\tn/a\n\t\t */\n\n\t\tremoveEvents: function ( events ) {\n\t\t\tevents = events || this.events || null;\n\t\t\tif ( ! events ) return false;\n\t\t\tfor ( var key in events ) {\n\t\t\t\tvar match = key.match( delegateEventSplitter );\n\t\t\t\tthis.off( match[ 1 ], match[ 2 ], events[ key ] );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * getEventTarget\n\t\t *\n\t\t * Returns a jQuery element to trigger an event on.\n\t\t *\n\t\t * @date\t5/6/18\n\t\t * @since\tACF 5.6.9\n\t\t *\n\t\t * @param\tjQuery $el\t\tThe default jQuery element. Optional.\n\t\t * @param\tstring event\tThe event name. Optional.\n\t\t * @return\tjQuery\n\t\t */\n\n\t\tgetEventTarget: function ( $el, event ) {\n\t\t\treturn $el || this.$el || $( document );\n\t\t},\n\n\t\t/**\n\t\t * validateEvent\n\t\t *\n\t\t * Returns true if the event target's closest $el is the same as this.$el\n\t\t * Requires both this.el and this.$el to be defined\n\t\t *\n\t\t * @date\t5/6/18\n\t\t * @since\tACF 5.6.9\n\t\t *\n\t\t * @param\ttype $var Description. Default.\n\t\t * @return\ttype Description.\n\t\t */\n\n\t\tvalidateEvent: function ( e ) {\n\t\t\tif ( this.eventScope ) {\n\t\t\t\treturn $( e.target ).closest( this.eventScope ).is( this.$el );\n\t\t\t} else {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * proxyEvent\n\t\t *\n\t\t * Returns a new event callback function scoped to this model\n\t\t *\n\t\t * @date\t29/3/18\n\t\t * @since\tACF 5.6.9\n\t\t *\n\t\t * @param\tfunction callback\n\t\t * @return\tfunction\n\t\t */\n\n\t\tproxyEvent: function ( callback ) {\n\t\t\treturn this.proxy( function ( e ) {\n\t\t\t\t// validate\n\t\t\t\tif ( ! this.validateEvent( e ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// construct args\n\t\t\t\tvar args = acf.arrayArgs( arguments );\n\t\t\t\tvar extraArgs = args.slice( 1 );\n\t\t\t\tvar eventArgs = [ e, $( e.currentTarget ) ].concat( extraArgs );\n\n\t\t\t\t// callback\n\t\t\t\tcallback.apply( this, eventArgs );\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * on\n\t\t *\n\t\t * Adds an event handler similar to jQuery\n\t\t * Uses the instance 'cid' to namespace event\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\tACF 5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @param\tstring callback\n\t\t * @return\tn/a\n\t\t */\n\n\t\ton: function ( a1, a2, a3, a4 ) {\n\t\t\t// vars\n\t\t\tvar $el, event, selector, callback, args;\n\n\t\t\t// find args\n\t\t\tif ( a1 instanceof jQuery ) {\n\t\t\t\t// 1. args( $el, event, selector, callback )\n\t\t\t\tif ( a4 ) {\n\t\t\t\t\t$el = a1;\n\t\t\t\t\tevent = a2;\n\t\t\t\t\tselector = a3;\n\t\t\t\t\tcallback = a4;\n\n\t\t\t\t\t// 2. args( $el, event, callback )\n\t\t\t\t} else {\n\t\t\t\t\t$el = a1;\n\t\t\t\t\tevent = a2;\n\t\t\t\t\tcallback = a3;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// 3. args( event, selector, callback )\n\t\t\t\tif ( a3 ) {\n\t\t\t\t\tevent = a1;\n\t\t\t\t\tselector = a2;\n\t\t\t\t\tcallback = a3;\n\n\t\t\t\t\t// 4. args( event, callback )\n\t\t\t\t} else {\n\t\t\t\t\tevent = a1;\n\t\t\t\t\tcallback = a2;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// element\n\t\t\t$el = this.getEventTarget( $el );\n\n\t\t\t// modify callback\n\t\t\tif ( typeof callback === 'string' ) {\n\t\t\t\tcallback = this.proxyEvent( this[ callback ] );\n\t\t\t}\n\n\t\t\t// modify event\n\t\t\tevent = event + '.' + this.cid;\n\n\t\t\t// args\n\t\t\tif ( selector ) {\n\t\t\t\targs = [ event, selector, callback ];\n\t\t\t} else {\n\t\t\t\targs = [ event, callback ];\n\t\t\t}\n\n\t\t\t// on()\n\t\t\t$el.on.apply( $el, args );\n\t\t},\n\n\t\t/**\n\t\t * off\n\t\t *\n\t\t * Removes an event handler similar to jQuery\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\tACF 5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @param\tstring callback\n\t\t * @return\tn/a\n\t\t */\n\n\t\toff: function ( a1, a2, a3 ) {\n\t\t\t// vars\n\t\t\tvar $el, event, selector, args;\n\n\t\t\t// find args\n\t\t\tif ( a1 instanceof jQuery ) {\n\t\t\t\t// 1. args( $el, event, selector )\n\t\t\t\tif ( a3 ) {\n\t\t\t\t\t$el = a1;\n\t\t\t\t\tevent = a2;\n\t\t\t\t\tselector = a3;\n\n\t\t\t\t\t// 2. args( $el, event )\n\t\t\t\t} else {\n\t\t\t\t\t$el = a1;\n\t\t\t\t\tevent = a2;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// 3. args( event, selector )\n\t\t\t\tif ( a2 ) {\n\t\t\t\t\tevent = a1;\n\t\t\t\t\tselector = a2;\n\n\t\t\t\t\t// 4. args( event )\n\t\t\t\t} else {\n\t\t\t\t\tevent = a1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// element\n\t\t\t$el = this.getEventTarget( $el );\n\n\t\t\t// modify event\n\t\t\tevent = event + '.' + this.cid;\n\n\t\t\t// args\n\t\t\tif ( selector ) {\n\t\t\t\targs = [ event, selector ];\n\t\t\t} else {\n\t\t\t\targs = [ event ];\n\t\t\t}\n\n\t\t\t// off()\n\t\t\t$el.off.apply( $el, args );\n\t\t},\n\n\t\t/**\n\t\t * trigger\n\t\t *\n\t\t * Triggers an event similar to jQuery\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\tACF 5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @param\tstring callback\n\t\t * @return\tn/a\n\t\t */\n\n\t\ttrigger: function ( name, args, bubbles ) {\n\t\t\tvar $el = this.getEventTarget();\n\t\t\tif ( bubbles ) {\n\t\t\t\t$el.trigger.apply( $el, arguments );\n\t\t\t} else {\n\t\t\t\t$el.triggerHandler.apply( $el, arguments );\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\t/**\n\t\t * addActions\n\t\t *\n\t\t * Adds multiple action handlers\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\tACF 5.6.5\n\t\t *\n\t\t * @param\tobject actions {action1 : callback, action2 : callback, etc }\n\t\t * @return\tn/a\n\t\t */\n\n\t\taddActions: function ( actions ) {\n\t\t\tactions = actions || this.actions || null;\n\t\t\tif ( ! actions ) return false;\n\t\t\tfor ( var i in actions ) {\n\t\t\t\tthis.addAction( i, actions[ i ] );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * removeActions\n\t\t *\n\t\t * Removes multiple action handlers\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\tACF 5.6.5\n\t\t *\n\t\t * @param\tobject actions {action1 : callback, action2 : callback, etc }\n\t\t * @return\tn/a\n\t\t */\n\n\t\tremoveActions: function ( actions ) {\n\t\t\tactions = actions || this.actions || null;\n\t\t\tif ( ! actions ) return false;\n\t\t\tfor ( var i in actions ) {\n\t\t\t\tthis.removeAction( i, actions[ i ] );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * addAction\n\t\t *\n\t\t * Adds an action using the wp.hooks library\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\tACF 5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @param\tstring callback\n\t\t * @return\tn/a\n\t\t */\n\n\t\taddAction: function ( name, callback, priority ) {\n\t\t\t//console.log('addAction', name, priority);\n\t\t\t// defaults\n\t\t\tpriority = priority || this.priority;\n\n\t\t\t// modify callback\n\t\t\tif ( typeof callback === 'string' ) {\n\t\t\t\tcallback = this[ callback ];\n\t\t\t}\n\n\t\t\t// add\n\t\t\tacf.addAction( name, callback, priority, this );\n\t\t},\n\n\t\t/**\n\t\t * removeAction\n\t\t *\n\t\t * Remove an action using the wp.hooks library\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\tACF 5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @param\tstring callback\n\t\t * @return\tn/a\n\t\t */\n\n\t\tremoveAction: function ( name, callback ) {\n\t\t\tacf.removeAction( name, this[ callback ] );\n\t\t},\n\n\t\t/**\n\t\t * addFilters\n\t\t *\n\t\t * Adds multiple filter handlers\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\tACF 5.6.5\n\t\t *\n\t\t * @param\tobject filters {filter1 : callback, filter2 : callback, etc }\n\t\t * @return\tn/a\n\t\t */\n\n\t\taddFilters: function ( filters ) {\n\t\t\tfilters = filters || this.filters || null;\n\t\t\tif ( ! filters ) return false;\n\t\t\tfor ( var i in filters ) {\n\t\t\t\tthis.addFilter( i, filters[ i ] );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * addFilter\n\t\t *\n\t\t * Adds a filter using the wp.hooks library\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\tACF 5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @param\tstring callback\n\t\t * @return\tn/a\n\t\t */\n\n\t\taddFilter: function ( name, callback, priority ) {\n\t\t\t// defaults\n\t\t\tpriority = priority || this.priority;\n\n\t\t\t// modify callback\n\t\t\tif ( typeof callback === 'string' ) {\n\t\t\t\tcallback = this[ callback ];\n\t\t\t}\n\n\t\t\t// add\n\t\t\tacf.addFilter( name, callback, priority, this );\n\t\t},\n\n\t\t/**\n\t\t * removeFilters\n\t\t *\n\t\t * Removes multiple filter handlers\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\tACF 5.6.5\n\t\t *\n\t\t * @param\tobject filters {filter1 : callback, filter2 : callback, etc }\n\t\t * @return\tn/a\n\t\t */\n\n\t\tremoveFilters: function ( filters ) {\n\t\t\tfilters = filters || this.filters || null;\n\t\t\tif ( ! filters ) return false;\n\t\t\tfor ( var i in filters ) {\n\t\t\t\tthis.removeFilter( i, filters[ i ] );\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * removeFilter\n\t\t *\n\t\t * Remove a filter using the wp.hooks library\n\t\t *\n\t\t * @date\t14/12/17\n\t\t * @since\tACF 5.6.5\n\t\t *\n\t\t * @param\tstring name\n\t\t * @param\tstring callback\n\t\t * @return\tn/a\n\t\t */\n\n\t\tremoveFilter: function ( name, callback ) {\n\t\t\tacf.removeFilter( name, this[ callback ] );\n\t\t},\n\n\t\t/**\n\t\t * $\n\t\t *\n\t\t * description\n\t\t *\n\t\t * @date\t16/12/17\n\t\t * @since\tACF 5.6.5\n\t\t *\n\t\t * @param\ttype $var Description. Default.\n\t\t * @return\ttype Description.\n\t\t */\n\n\t\t$: function ( selector ) {\n\t\t\treturn this.$el.find( selector );\n\t\t},\n\n\t\t/**\n\t\t * remove\n\t\t *\n\t\t * Removes the element and listeners\n\t\t *\n\t\t * @date\t19/12/17\n\t\t * @since\tACF 5.6.5\n\t\t *\n\t\t * @param\ttype $var Description. Default.\n\t\t * @return\ttype Description.\n\t\t */\n\n\t\tremove: function () {\n\t\t\tthis.removeEvents();\n\t\t\tthis.removeActions();\n\t\t\tthis.removeFilters();\n\t\t\tthis.$el.remove();\n\t\t},\n\n\t\t/**\n\t\t * setTimeout\n\t\t *\n\t\t * description\n\t\t *\n\t\t * @date\t16/1/18\n\t\t * @since\tACF 5.6.5\n\t\t *\n\t\t * @param\ttype $var Description. Default.\n\t\t * @return\ttype Description.\n\t\t */\n\n\t\tsetTimeout: function ( callback, milliseconds ) {\n\t\t\treturn setTimeout( this.proxy( callback ), milliseconds );\n\t\t},\n\n\t\t/**\n\t\t * time\n\t\t *\n\t\t * used for debugging\n\t\t *\n\t\t * @date\t7/3/18\n\t\t * @since\tACF 5.6.9\n\t\t *\n\t\t * @param\ttype $var Description. Default.\n\t\t * @return\ttype Description.\n\t\t */\n\n\t\ttime: function () {\n\t\t\tconsole.time( this.id || this.cid );\n\t\t},\n\n\t\t/**\n\t\t * timeEnd\n\t\t *\n\t\t * used for debugging\n\t\t *\n\t\t * @date\t7/3/18\n\t\t * @since\tACF 5.6.9\n\t\t *\n\t\t * @param\ttype $var Description. Default.\n\t\t * @return\ttype Description.\n\t\t */\n\n\t\ttimeEnd: function () {\n\t\t\tconsole.timeEnd( this.id || this.cid );\n\t\t},\n\n\t\t/**\n\t\t * show\n\t\t *\n\t\t * description\n\t\t *\n\t\t * @date\t15/3/18\n\t\t * @since\tACF 5.6.9\n\t\t *\n\t\t * @param\ttype $var Description. Default.\n\t\t * @return\ttype Description.\n\t\t */\n\n\t\tshow: function () {\n\t\t\tacf.show( this.$el );\n\t\t},\n\n\t\t/**\n\t\t * hide\n\t\t *\n\t\t * description\n\t\t *\n\t\t * @date\t15/3/18\n\t\t * @since\tACF 5.6.9\n\t\t *\n\t\t * @param\ttype $var Description. Default.\n\t\t * @return\ttype Description.\n\t\t */\n\n\t\thide: function () {\n\t\t\tacf.hide( this.$el );\n\t\t},\n\n\t\t/**\n\t\t * proxy\n\t\t *\n\t\t * Returns a new function scoped to this model\n\t\t *\n\t\t * @date\t29/3/18\n\t\t * @since\tACF 5.6.9\n\t\t *\n\t\t * @param\tfunction callback\n\t\t * @return\tfunction\n\t\t */\n\n\t\tproxy: function ( callback ) {\n\t\t\treturn $.proxy( callback, this );\n\t\t},\n\t} );\n\n\t// Set up inheritance for the model\n\tModel.extend = extend;\n\n\t// Global model storage\n\tacf.models = {};\n\n\t/**\n\t * acf.getInstance\n\t *\n\t * This function will get an instance from an element\n\t *\n\t * @date\t5/3/18\n\t * @since\tACF 5.6.9\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.getInstance = function ( $el ) {\n\t\treturn $el.data( 'acf' );\n\t};\n\n\t/**\n\t * acf.getInstances\n\t *\n\t * This function will get an array of instances from multiple elements\n\t *\n\t * @date\t5/3/18\n\t * @since\tACF 5.6.9\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.getInstances = function ( $el ) {\n\t\tvar instances = [];\n\t\t$el.each( function () {\n\t\t\tinstances.push( acf.getInstance( $( this ) ) );\n\t\t} );\n\t\treturn instances;\n\t};\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar Notice = acf.Model.extend( {\n\t\tdata: {\n\t\t\ttext: '',\n\t\t\ttype: '',\n\t\t\ttimeout: 0,\n\t\t\tdismiss: true,\n\t\t\ttarget: false,\n\t\t\tlocation: 'before',\n\t\t\tclose: function () {},\n\t\t},\n\n\t\tevents: {\n\t\t\t'click .acf-notice-dismiss': 'onClickClose',\n\t\t},\n\n\t\ttmpl: function () {\n\t\t\treturn '<div class=\"acf-notice\"></div>';\n\t\t},\n\n\t\tsetup: function ( props ) {\n\t\t\t$.extend( this.data, props );\n\t\t\tthis.$el = $( this.tmpl() );\n\t\t},\n\n\t\tinitialize: function () {\n\t\t\t// render\n\t\t\tthis.render();\n\n\t\t\t// show\n\t\t\tthis.show();\n\t\t},\n\n\t\trender: function () {\n\t\t\t// class\n\t\t\tthis.type( this.get( 'type' ) );\n\n\t\t\t// text\n\t\t\tthis.html( '<p>' + acf.escHtml( this.get( 'text' ) ) + '</p>' );\n\n\t\t\t// close\n\t\t\tif ( this.get( 'dismiss' ) ) {\n\t\t\t\tthis.$el.append(\n\t\t\t\t\t'<a href=\"#\" class=\"acf-notice-dismiss acf-icon -cancel small\"></a>'\n\t\t\t\t);\n\t\t\t\tthis.$el.addClass( '-dismiss' );\n\t\t\t}\n\n\t\t\t// timeout\n\t\t\tvar timeout = this.get( 'timeout' );\n\t\t\tif ( timeout ) {\n\t\t\t\tthis.away( timeout );\n\t\t\t}\n\t\t},\n\n\t\tupdate: function ( props ) {\n\t\t\t// update\n\t\t\t$.extend( this.data, props );\n\n\t\t\t// re-initialize\n\t\t\tthis.initialize();\n\n\t\t\t// refresh events\n\t\t\tthis.removeEvents();\n\t\t\tthis.addEvents();\n\t\t},\n\n\t\tshow: function () {\n\t\t\tvar $target = this.get( 'target' );\n\t\t\tvar location = this.get( 'location' );\n\t\t\tif ( $target ) {\n\t\t\t\tif ( location === 'after' ) {\n\t\t\t\t\t$target.append( this.$el );\n\t\t\t\t} else {\n\t\t\t\t\t$target.prepend( this.$el );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\thide: function () {\n\t\t\tthis.$el.remove();\n\t\t},\n\n\t\taway: function ( timeout ) {\n\t\t\tthis.setTimeout( function () {\n\t\t\t\tacf.remove( this.$el );\n\t\t\t}, timeout );\n\t\t},\n\n\t\ttype: function ( type ) {\n\t\t\t// remove prev type\n\t\t\tvar prevType = this.get( 'type' );\n\t\t\tif ( prevType ) {\n\t\t\t\tthis.$el.removeClass( '-' + prevType );\n\t\t\t}\n\n\t\t\t// add new type\n\t\t\tthis.$el.addClass( '-' + type );\n\n\t\t\t// backwards compatibility\n\t\t\tif ( type == 'error' ) {\n\t\t\t\tthis.$el.addClass( 'acf-error-message' );\n\t\t\t}\n\t\t},\n\n\t\thtml: function ( html ) {\n\t\t\tthis.$el.html( acf.escHtml( html ) );\n\t\t},\n\n\t\ttext: function ( text ) {\n\t\t\tthis.$( 'p' ).html( acf.escHtml( text ) );\n\t\t},\n\n\t\tonClickClose: function ( e, $el ) {\n\t\t\te.preventDefault();\n\t\t\tthis.get( 'close' ).apply( this, arguments );\n\t\t\tthis.remove();\n\t\t},\n\t} );\n\n\tacf.newNotice = function ( props ) {\n\t\t// ensure object\n\t\tif ( typeof props !== 'object' ) {\n\t\t\tprops = { text: props };\n\t\t}\n\n\t\t// instantiate\n\t\treturn new Notice( props );\n\t};\n\n\tvar noticeManager = new acf.Model( {\n\t\twait: 'prepare',\n\t\tpriority: 1,\n\t\tinitialize: function () {\n\t\t\tconst $notices = $( '.acf-admin-notice' );\n\t\t\tif ( ! $notices.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t$notices.each( function () {\n\t\t\t\tif ( $( this ).data( 'persisted' ) ) {\n\t\t\t\t\tlet dismissed = acf.getPreference( 'dismissed-notices' );\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tdismissed &&\n\t\t\t\t\t\ttypeof dismissed == 'object' &&\n\t\t\t\t\t\tdismissed.includes( $( this ).data( 'persist-id' ) )\n\t\t\t\t\t) {\n\t\t\t\t\t\t$( this ).remove();\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$( this ).show();\n\t\t\t\t\t\t$( this ).on(\n\t\t\t\t\t\t\t'click',\n\t\t\t\t\t\t\t'.notice-dismiss',\n\t\t\t\t\t\t\tfunction ( e ) {\n\t\t\t\t\t\t\t\tdismissed =\n\t\t\t\t\t\t\t\t\tacf.getPreference( 'dismissed-notices' );\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\t! dismissed ||\n\t\t\t\t\t\t\t\t\ttypeof dismissed != 'object'\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\tdismissed = [];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdismissed.push(\n\t\t\t\t\t\t\t\t\t$( this )\n\t\t\t\t\t\t\t\t\t\t.closest( '.acf-admin-notice' )\n\t\t\t\t\t\t\t\t\t\t.data( 'persist-id' )\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tacf.setPreference(\n\t\t\t\t\t\t\t\t\t'dismissed-notices',\n\t\t\t\t\t\t\t\t\tdismissed\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t},\n\t} );\n} )( jQuery );\n","( function ( $, undefined ) {\n\tvar panel = new acf.Model( {\n\t\tevents: {\n\t\t\t'click .acf-panel-title': 'onClick',\n\t\t},\n\n\t\tonClick: function ( e, $el ) {\n\t\t\te.preventDefault();\n\t\t\tthis.toggle( $el.parent() );\n\t\t},\n\n\t\tisOpen: function ( $el ) {\n\t\t\treturn $el.hasClass( '-open' );\n\t\t},\n\n\t\ttoggle: function ( $el ) {\n\t\t\tthis.isOpen( $el ) ? this.close( $el ) : this.open( $el );\n\t\t},\n\n\t\topen: function ( $el ) {\n\t\t\t$el.addClass( '-open' );\n\t\t\t$el.find( '.acf-panel-title i' ).attr(\n\t\t\t\t'class',\n\t\t\t\t'dashicons dashicons-arrow-down'\n\t\t\t);\n\t\t},\n\n\t\tclose: function ( $el ) {\n\t\t\t$el.removeClass( '-open' );\n\t\t\t$el.find( '.acf-panel-title i' ).attr(\n\t\t\t\t'class',\n\t\t\t\t'dashicons dashicons-arrow-right'\n\t\t\t);\n\t\t},\n\t} );\n} )( jQuery );\n","( function ( $, undefined ) {\n\tacf.models.Popup = acf.Model.extend( {\n\t\tdata: {\n\t\t\ttitle: '',\n\t\t\tcontent: '',\n\t\t\twidth: 0,\n\t\t\theight: 0,\n\t\t\tloading: false,\n\t\t\topenedBy: null,\n\t\t\tconfirmRemove: false,\n\t\t},\n\n\t\tevents: {\n\t\t\t'click [data-event=\"close\"]': 'onClickClose',\n\t\t\t'click .acf-close-popup': 'onClickClose',\n\t\t\tkeydown: 'onPressEscapeClose',\n\t\t},\n\n\t\tsetup: function ( props ) {\n\t\t\t$.extend( this.data, props );\n\t\t\tthis.$el = $( this.tmpl() );\n\t\t},\n\n\t\tinitialize: function () {\n\t\t\tthis.render();\n\t\t\tthis.open();\n\t\t\tthis.focus();\n\t\t\tthis.lockFocusToPopup( true );\n\t\t},\n\n\t\ttmpl: function () {\n\t\t\treturn [\n\t\t\t\t'<div id=\"acf-popup\" role=\"dialog\" tabindex=\"-1\">',\n\t\t\t\t'<div class=\"acf-popup-box acf-box\">',\n\t\t\t\t'<div class=\"title\"><h3></h3><a href=\"#\" class=\"acf-icon -cancel grey\" data-event=\"close\" aria-label=\"' +\n\t\t\t\t\tacf.__( 'Close modal' ) +\n\t\t\t\t\t'\"></a></div>',\n\t\t\t\t'<div class=\"inner\"></div>',\n\t\t\t\t'<div class=\"loading\"><i class=\"acf-loading\"></i></div>',\n\t\t\t\t'</div>',\n\t\t\t\t'<div class=\"bg\" data-event=\"close\"></div>',\n\t\t\t\t'</div>',\n\t\t\t].join( '' );\n\t\t},\n\n\t\trender: function () {\n\t\t\t// Extract Vars.\n\t\t\tvar title = this.get( 'title' );\n\t\t\tvar content = this.get( 'content' );\n\t\t\tvar loading = this.get( 'loading' );\n\t\t\tvar width = this.get( 'width' );\n\t\t\tvar height = this.get( 'height' );\n\n\t\t\t// Update.\n\t\t\tthis.title( title );\n\t\t\tthis.content( content );\n\t\t\tif ( width ) {\n\t\t\t\tthis.$( '.acf-popup-box' ).css( 'width', width );\n\t\t\t}\n\t\t\tif ( height ) {\n\t\t\t\tthis.$( '.acf-popup-box' ).css( 'min-height', height );\n\t\t\t}\n\t\t\tthis.loading( loading );\n\n\t\t\t// Trigger action.\n\t\t\tacf.doAction( 'append', this.$el );\n\t\t},\n\n\t\t/**\n\t\t * Places focus within the popup.\n\t\t */\n\t\tfocus: function () {\n\t\t\tthis.$el.find( '.acf-icon' ).first().trigger( 'focus' );\n\t\t},\n\n\t\t/**\n\t\t * Locks focus within the popup.\n\t\t *\n\t\t * @param {boolean} locked True to lock focus, false to unlock.\n\t\t */\n\t\tlockFocusToPopup: function ( locked ) {\n\t\t\tlet inertElement = $( '#wpwrap' );\n\n\t\t\tif ( ! inertElement.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tinertElement[ 0 ].inert = locked;\n\t\t\tinertElement.attr( 'aria-hidden', locked );\n\t\t},\n\n\t\tupdate: function ( props ) {\n\t\t\tthis.data = acf.parseArgs( props, this.data );\n\t\t\tthis.render();\n\t\t},\n\n\t\ttitle: function ( title ) {\n\t\t\tthis.$( '.title:first h3' ).html( title );\n\t\t},\n\n\t\tcontent: function ( content ) {\n\t\t\tthis.$( '.inner:first' ).html( content );\n\t\t},\n\n\t\tloading: function ( show ) {\n\t\t\tvar $loading = this.$( '.loading:first' );\n\t\t\tshow ? $loading.show() : $loading.hide();\n\t\t},\n\n\t\topen: function () {\n\t\t\t$( 'body' ).append( this.$el );\n\t\t},\n\n\t\tclose: function () {\n\t\t\tthis.lockFocusToPopup( false );\n\t\t\tthis.returnFocusToOrigin();\n\t\t\tthis.remove();\n\t\t},\n\n\t\tonClickClose: function ( e, $el ) {\n\t\t\te.preventDefault();\n\t\t\tthis.close();\n\t\t},\n\n\t\t/**\n\t\t * Closes the popup when the escape key is pressed.\n\t\t *\n\t\t * @param {KeyboardEvent} e\n\t\t */\n\t\tonPressEscapeClose: function ( e ) {\n\t\t\tif ( e.key === 'Escape' ) {\n\t\t\t\tthis.close();\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Returns focus to the element that opened the popup\n\t\t * if it still exists in the DOM.\n\t\t */\n\t\treturnFocusToOrigin: function () {\n\t\t\tif (\n\t\t\t\tthis.data.openedBy instanceof $ &&\n\t\t\t\tthis.data.openedBy.closest( 'body' ).length > 0\n\t\t\t) {\n\t\t\t\tthis.data.openedBy.trigger( 'focus' );\n\t\t\t}\n\t\t},\n\t} );\n\n\t/**\n\t * PopupConfirm\n\t *\n\t * Extends the Popup model to provide confirmation functionality\n\t *\n\t * @date\t17/12/17\n\t * @since\tACF 5.6.5\n\t */\n\n\tacf.models.PopupConfirm = acf.models.Popup.extend( {\n\t\tdata: {\n\t\t\ttext: '',\n\t\t\ttextConfirm: '',\n\t\t\ttextCancel: '',\n\t\t\tcontext: false,\n\t\t\tconfirm: function () {},\n\t\t\tcancel: function () {},\n\t\t},\n\n\t\tevents: {\n\t\t\t'click [data-event=\"close\"]': 'onCancel',\n\t\t\t'click .acf-close-popup': 'onClickClose',\n\t\t\tkeydown: 'onPressEscapeClose',\n\t\t\t'click [data-event=\"confirm\"]': 'onConfirm',\n\t\t},\n\n\t\ttmpl: function () {\n\t\t\treturn `\n <div id=\"acf-popup\" role=\"dialog\" tabindex=\"-1\">\n <div class=\"acf-popup-box acf-box acf-confirm-popup\">\n <div class=\"title\">\n <h3>${ this.get( 'title' ) }</h3>\n <a href=\"#\" data-event=\"close\" aria-label=\"${ acf.__(\n\t\t\t\t\t\t\t'Close modal'\n\t\t\t\t\t\t) }\">\n <i class=\"acf-icon -close\"></i>\n </a>\n </div>\n <div class=\"inner\">\n <p>${ acf.escHtml( this.get( 'text' ) ) }</p>\n <div class=\"acf-actions\">\n <button tabindex=\"0\" type=\"button\" data-event=\"close\" class=\"acf-btn acf-btn-secondary acf-close-popup\">${ acf.strEscape(\n\t\t\t\t\t\t\t\tthis.get( 'textCancel' )\n\t\t\t\t\t\t\t) }</button>\n <button tabindex=\"0\" type=\"submit\" data-event=\"confirm\" class=\"acf-btn acf-btn-primary acf-confirm\">${ acf.strEscape(\n\t\t\t\t\t\t\t\tthis.get( 'textConfirm' )\n\t\t\t\t\t\t\t) }</button>\n </div>\n </div>\n </div>\n <div class=\"bg\" data-event=\"close\"></div>\n </div>`;\n\t\t},\n\n\t\trender: function () {\n\t\t\tconst loading = this.get( 'loading' );\n\t\t\tconst width = this.get( 'width' );\n\t\t\tconst height = this.get( 'height' );\n\t\t\tconst self = this;\n\n\t\t\tif ( width ) {\n\t\t\t\tthis.$( '.acf-popup-box' ).css( 'width', width );\n\t\t\t}\n\t\t\tif ( height ) {\n\t\t\t\tthis.$( '.acf-popup-box' ).css( 'min-height', height );\n\t\t\t}\n\n\t\t\tthis.loading( loading );\n\t\t\tacf.doAction( 'append', this.$el );\n\n\t\t\tsetTimeout( function () {\n\t\t\t\tself.$el.find( '.acf-close-popup' ).trigger( 'focus' );\n\t\t\t}, 1 );\n\t\t},\n\n\t\tonConfirm: function ( e, $el ) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis.close();\n\n\t\t\tconst confirm = this.get( 'confirm' );\n\t\t\tconst context = this.get( 'context' ) || this;\n\t\t\tconfirm.apply( context, arguments );\n\t\t},\n\n\t\tonCancel: function ( e, $el ) {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\t\t\tthis.close();\n\n\t\t\tconst cancel = this.get( 'cancel' );\n\t\t\tconst context = this.get( 'context' ) || this;\n\t\t\tcancel.apply( context, arguments );\n\t\t},\n\t} );\n\n\t/**\n\t * newPopup\n\t *\n\t * Creates a new Popup with the supplied props\n\t *\n\t * @date\t17/12/17\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\tobject props\n\t * @return\tobject\n\t */\n\n\tacf.newPopup = function ( props ) {\n\t\treturn props.confirmRemove\n\t\t\t? new acf.models.PopupConfirm( props )\n\t\t\t: new acf.models.Popup( props );\n\t};\n} )( jQuery );\n","( function ( $, undefined ) {\n\tacf.newTooltip = function ( props ) {\n\t\t// ensure object\n\t\tif ( typeof props !== 'object' ) {\n\t\t\tprops = { text: props };\n\t\t}\n\n\t\t// confirmRemove\n\t\tif ( props.confirmRemove !== undefined ) {\n\t\t\tprops.textConfirm = acf.__( 'Remove' );\n\t\t\tprops.textCancel = acf.__( 'Cancel' );\n\t\t\treturn new TooltipConfirm( props );\n\n\t\t\t// confirm\n\t\t} else if ( props.confirm !== undefined ) {\n\t\t\treturn new TooltipConfirm( props );\n\n\t\t\t// default\n\t\t} else {\n\t\t\treturn new Tooltip( props );\n\t\t}\n\t};\n\n\tvar Tooltip = acf.Model.extend( {\n\t\tdata: {\n\t\t\ttext: '',\n\t\t\ttimeout: 0,\n\t\t\ttarget: null,\n\t\t},\n\n\t\ttmpl: function () {\n\t\t\treturn '<div class=\"acf-tooltip\"></div>';\n\t\t},\n\n\t\tsetup: function ( props ) {\n\t\t\t$.extend( this.data, props );\n\t\t\tthis.$el = $( this.tmpl() );\n\t\t},\n\n\t\tinitialize: function () {\n\t\t\t// render\n\t\t\tthis.render();\n\n\t\t\t// append\n\t\t\tthis.show();\n\n\t\t\t// position\n\t\t\tthis.position();\n\n\t\t\t// timeout\n\t\t\tvar timeout = this.get( 'timeout' );\n\t\t\tif ( timeout ) {\n\t\t\t\tsetTimeout( $.proxy( this.fade, this ), timeout );\n\t\t\t}\n\t\t},\n\n\t\tupdate: function ( props ) {\n\t\t\t$.extend( this.data, props );\n\t\t\tthis.initialize();\n\t\t},\n\n\t\trender: function () {\n\t\t\tthis.$el.text( this.get( 'text' ) );\n\t\t},\n\n\t\tshow: function () {\n\t\t\t$( 'body' ).append( this.$el );\n\t\t},\n\n\t\thide: function () {\n\t\t\tthis.$el.remove();\n\t\t},\n\n\t\tfade: function () {\n\t\t\t// add class\n\t\t\tthis.$el.addClass( 'acf-fade-up' );\n\n\t\t\t// remove\n\t\t\tthis.setTimeout( function () {\n\t\t\t\tthis.remove();\n\t\t\t}, 250 );\n\t\t},\n\n\t\thtml: function ( html ) {\n\t\t\tthis.$el.html( html );\n\t\t},\n\n\t\tposition: function () {\n\t\t\t// vars\n\t\t\tvar $tooltip = this.$el;\n\t\t\tvar $target = this.get( 'target' );\n\t\t\tif ( ! $target ) return;\n\n\t\t\t// Reset position.\n\t\t\t$tooltip\n\t\t\t\t.removeClass( 'right left bottom top' )\n\t\t\t\t.css( { top: 0, left: 0 } );\n\n\t\t\t// Declare tolerance to edge of screen.\n\t\t\tvar tolerance = 10;\n\n\t\t\t// Find target position.\n\t\t\tvar targetWidth = $target.outerWidth();\n\t\t\tvar targetHeight = $target.outerHeight();\n\t\t\tvar targetTop = $target.offset().top;\n\t\t\tvar targetLeft = $target.offset().left;\n\n\t\t\t// Find tooltip position.\n\t\t\tvar tooltipWidth = $tooltip.outerWidth();\n\t\t\tvar tooltipHeight = $tooltip.outerHeight();\n\t\t\tvar tooltipTop = $tooltip.offset().top; // Should be 0, but WP media grid causes this to be 32 (toolbar padding).\n\n\t\t\t// Assume default top alignment.\n\t\t\tvar top = targetTop - tooltipHeight - tooltipTop;\n\t\t\tvar left = targetLeft + targetWidth / 2 - tooltipWidth / 2;\n\n\t\t\t// Check if too far left.\n\t\t\tif ( left < tolerance ) {\n\t\t\t\t$tooltip.addClass( 'right' );\n\t\t\t\tleft = targetLeft + targetWidth;\n\t\t\t\ttop =\n\t\t\t\t\ttargetTop +\n\t\t\t\t\ttargetHeight / 2 -\n\t\t\t\t\ttooltipHeight / 2 -\n\t\t\t\t\ttooltipTop;\n\n\t\t\t\t// Check if too far right.\n\t\t\t} else if (\n\t\t\t\tleft + tooltipWidth + tolerance >\n\t\t\t\t$( window ).width()\n\t\t\t) {\n\t\t\t\t$tooltip.addClass( 'left' );\n\t\t\t\tleft = targetLeft - tooltipWidth;\n\t\t\t\ttop =\n\t\t\t\t\ttargetTop +\n\t\t\t\t\ttargetHeight / 2 -\n\t\t\t\t\ttooltipHeight / 2 -\n\t\t\t\t\ttooltipTop;\n\n\t\t\t\t// Check if too far up.\n\t\t\t} else if ( top - $( window ).scrollTop() < tolerance ) {\n\t\t\t\t$tooltip.addClass( 'bottom' );\n\t\t\t\ttop = targetTop + targetHeight - tooltipTop;\n\n\t\t\t\t// No collision with edges.\n\t\t\t} else {\n\t\t\t\t$tooltip.addClass( 'top' );\n\t\t\t}\n\n\t\t\t// update css\n\t\t\t$tooltip.css( { top: top, left: left } );\n\t\t},\n\t} );\n\n\tvar TooltipConfirm = Tooltip.extend( {\n\t\tdata: {\n\t\t\ttext: '',\n\t\t\ttextConfirm: '',\n\t\t\ttextCancel: '',\n\t\t\ttarget: null,\n\t\t\ttargetConfirm: true,\n\t\t\tconfirm: function () {},\n\t\t\tcancel: function () {},\n\t\t\tcontext: false,\n\t\t},\n\n\t\tevents: {\n\t\t\t'click [data-event=\"cancel\"]': 'onCancel',\n\t\t\t'click [data-event=\"confirm\"]': 'onConfirm',\n\t\t},\n\n\t\taddEvents: function () {\n\t\t\t// add events\n\t\t\tacf.Model.prototype.addEvents.apply( this );\n\n\t\t\t// vars\n\t\t\tvar $document = $( document );\n\t\t\tvar $target = this.get( 'target' );\n\n\t\t\t// add global 'cancel' click event\n\t\t\t// - use timeout to avoid the current 'click' event triggering the onCancel function\n\t\t\tthis.setTimeout( function () {\n\t\t\t\tthis.on( $document, 'click', 'onCancel' );\n\t\t\t} );\n\n\t\t\t// add target 'confirm' click event\n\t\t\t// - allow setting to control this feature\n\t\t\tif ( this.get( 'targetConfirm' ) ) {\n\t\t\t\tthis.on( $target, 'click', 'onConfirm' );\n\t\t\t}\n\t\t},\n\n\t\tremoveEvents: function () {\n\t\t\t// remove events\n\t\t\tacf.Model.prototype.removeEvents.apply( this );\n\n\t\t\t// vars\n\t\t\tvar $document = $( document );\n\t\t\tvar $target = this.get( 'target' );\n\n\t\t\t// remove custom events\n\t\t\tthis.off( $document, 'click' );\n\t\t\tthis.off( $target, 'click' );\n\t\t},\n\n\t\trender: function () {\n\t\t\t// defaults\n\t\t\tvar text = this.get( 'text' ) || acf.__( 'Are you sure?' );\n\t\t\tvar textConfirm = this.get( 'textConfirm' ) || acf.__( 'Yes' );\n\t\t\tvar textCancel = this.get( 'textCancel' ) || acf.__( 'No' );\n\n\t\t\t// html\n\t\t\tvar html = [\n\t\t\t\ttext,\n\t\t\t\t'<a href=\"#\" data-event=\"confirm\">' + textConfirm + '</a>',\n\t\t\t\t'<a href=\"#\" data-event=\"cancel\">' + textCancel + '</a>',\n\t\t\t].join( ' ' );\n\n\t\t\t// html\n\t\t\tthis.html( html );\n\n\t\t\t// class\n\t\t\tthis.$el.addClass( '-confirm' );\n\t\t},\n\n\t\tonCancel: function ( e, $el ) {\n\t\t\t// prevent default\n\t\t\te.preventDefault();\n\t\t\te.stopImmediatePropagation();\n\n\t\t\t// callback\n\t\t\tvar callback = this.get( 'cancel' );\n\t\t\tvar context = this.get( 'context' ) || this;\n\t\t\tcallback.apply( context, arguments );\n\n\t\t\t//remove\n\t\t\tthis.remove();\n\t\t},\n\n\t\tonConfirm: function ( e, $el ) {\n\t\t\t// Prevent event from propagating completely to allow \"targetConfirm\" to be clicked.\n\t\t\te.preventDefault();\n\t\t\te.stopImmediatePropagation();\n\n\t\t\t// callback\n\t\t\tvar callback = this.get( 'confirm' );\n\t\t\tvar context = this.get( 'context' ) || this;\n\t\t\tcallback.apply( context, arguments );\n\n\t\t\t//remove\n\t\t\tthis.remove();\n\t\t},\n\t} );\n\n\t// storage\n\tacf.models.Tooltip = Tooltip;\n\tacf.models.TooltipConfirm = TooltipConfirm;\n\n\t/**\n\t * tooltipManager\n\t *\n\t * description\n\t *\n\t * @date\t17/4/18\n\t * @since\tACF 5.6.9\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tvar tooltipHoverHelper = new acf.Model( {\n\t\ttooltip: false,\n\n\t\tevents: {\n\t\t\t'mouseenter .acf-js-tooltip': 'showTitle',\n\t\t\t'mouseup .acf-js-tooltip': 'hideTitle',\n\t\t\t'mouseleave .acf-js-tooltip': 'hideTitle',\n\t\t\t'focus .acf-js-tooltip': 'showTitle',\n\t\t\t'blur .acf-js-tooltip': 'hideTitle',\n\t\t\t'keyup .acf-js-tooltip': 'onKeyUp',\n\t\t},\n\n\t\tshowTitle: function ( e, $el ) {\n\t\t\t// vars\n\t\t\tlet title = $el.attr( 'title' );\n\n\t\t\t// bail early if no title\n\t\t\tif ( ! title ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// clear title to avoid default browser tooltip\n\t\t\t$el.attr( 'title', '' );\n\n\t\t\t$el.data( 'acf-js-tooltip-title', title );\n\t\t\ttitle = acf.strEscape( title );\n\n\t\t\t// create\n\t\t\tif ( ! this.tooltip ) {\n\t\t\t\tthis.tooltip = acf.newTooltip( {\n\t\t\t\t\ttext: title,\n\t\t\t\t\ttarget: $el,\n\t\t\t\t} );\n\n\t\t\t\t// update\n\t\t\t} else {\n\t\t\t\tthis.tooltip.update( {\n\t\t\t\t\ttext: title,\n\t\t\t\t\ttarget: $el,\n\t\t\t\t} );\n\t\t\t}\n\t\t},\n\n\t\thideTitle: function ( e, $el ) {\n\t\t\t// hide tooltip\n\t\t\tthis.tooltip.hide();\n\t\t\t$el.attr( 'title', $el.data( 'acf-js-tooltip-title' ) );\n\n\t\t\t// restore title\n\t\t\t$el.removeData( 'acf-js-tooltip-title' );\n\t\t},\n\n\t\tonKeyUp: function ( e, $el ) {\n\t\t\tif ( 'Escape' === e.key ) {\n\t\t\t\tthis.hideTitle( e, $el );\n\t\t\t}\n\t\t},\n\t} );\n} )( jQuery );\n","( function ( $, undefined ) {\n\t/**\n\t * acf\n\t *\n\t * description\n\t *\n\t * @date\t14/12/17\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\t// The global acf object\n\tvar acf = {};\n\n\t// Set as a browser global\n\twindow.acf = acf;\n\n\t/** @var object Data sent from PHP */\n\tacf.data = {};\n\n\t/**\n\t * get\n\t *\n\t * Gets a specific data value\n\t *\n\t * @date\t14/12/17\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\tstring name\n\t * @return\tmixed\n\t */\n\n\tacf.get = function ( name ) {\n\t\treturn this.data[ name ] || null;\n\t};\n\n\t/**\n\t * has\n\t *\n\t * Returns `true` if the data exists and is not null\n\t *\n\t * @date\t14/12/17\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\tstring name\n\t * @return\tboolean\n\t */\n\n\tacf.has = function ( name ) {\n\t\treturn this.get( name ) !== null;\n\t};\n\n\t/**\n\t * set\n\t *\n\t * Sets a specific data value\n\t *\n\t * @date\t14/12/17\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\tstring name\n\t * @param\tmixed value\n\t * @return\tthis\n\t */\n\n\tacf.set = function ( name, value ) {\n\t\tthis.data[ name ] = value;\n\t\treturn this;\n\t};\n\n\t/**\n\t * uniqueId\n\t *\n\t * Returns a unique ID\n\t *\n\t * @date\t9/11/17\n\t * @since\tACF 5.6.3\n\t *\n\t * @param\tstring prefix Optional prefix.\n\t * @return\tstring\n\t */\n\n\tvar idCounter = 0;\n\tacf.uniqueId = function ( prefix ) {\n\t\tvar id = ++idCounter + '';\n\t\treturn prefix ? prefix + id : id;\n\t};\n\n\t/**\n\t * acf.uniqueArray\n\t *\n\t * Returns a new array with only unique values\n\t * Credit: https://stackoverflow.com/questions/1960473/get-all-unique-values-in-an-array-remove-duplicates\n\t *\n\t * @date\t23/3/18\n\t * @since\tACF 5.6.9\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.uniqueArray = function ( array ) {\n\t\tfunction onlyUnique( value, index, self ) {\n\t\t\treturn self.indexOf( value ) === index;\n\t\t}\n\t\treturn array.filter( onlyUnique );\n\t};\n\n\t/**\n\t * uniqid\n\t *\n\t * Returns a unique ID (PHP version)\n\t *\n\t * @date\t9/11/17\n\t * @since\tACF 5.6.3\n\t * @source\thttp://locutus.io/php/misc/uniqid/\n\t *\n\t * @param\tstring prefix Optional prefix.\n\t * @return\tstring\n\t */\n\n\tvar uniqidSeed = '';\n\tacf.uniqid = function ( prefix, moreEntropy ) {\n\t\t// discuss at: http://locutus.io/php/uniqid/\n\t\t// original by: Kevin van Zonneveld (http://kvz.io)\n\t\t// revised by: Kankrelune (http://www.webfaktory.info/)\n\t\t// note 1: Uses an internal counter (in locutus global) to avoid collision\n\t\t// example 1: var $id = uniqid()\n\t\t// example 1: var $result = $id.length === 13\n\t\t// returns 1: true\n\t\t// example 2: var $id = uniqid('foo')\n\t\t// example 2: var $result = $id.length === (13 + 'foo'.length)\n\t\t// returns 2: true\n\t\t// example 3: var $id = uniqid('bar', true)\n\t\t// example 3: var $result = $id.length === (23 + 'bar'.length)\n\t\t// returns 3: true\n\t\tif ( typeof prefix === 'undefined' ) {\n\t\t\tprefix = '';\n\t\t}\n\n\t\tvar retId;\n\t\tvar formatSeed = function ( seed, reqWidth ) {\n\t\t\tseed = parseInt( seed, 10 ).toString( 16 ); // to hex str\n\t\t\tif ( reqWidth < seed.length ) {\n\t\t\t\t// so long we split\n\t\t\t\treturn seed.slice( seed.length - reqWidth );\n\t\t\t}\n\t\t\tif ( reqWidth > seed.length ) {\n\t\t\t\t// so short we pad\n\t\t\t\treturn (\n\t\t\t\t\tArray( 1 + ( reqWidth - seed.length ) ).join( '0' ) + seed\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn seed;\n\t\t};\n\n\t\tif ( ! uniqidSeed ) {\n\t\t\t// init seed with big random int\n\t\t\tuniqidSeed = Math.floor( Math.random() * 0x75bcd15 );\n\t\t}\n\t\tuniqidSeed++;\n\n\t\tretId = prefix; // start with prefix, add current milliseconds hex string\n\t\tretId += formatSeed( parseInt( new Date().getTime() / 1000, 10 ), 8 );\n\t\tretId += formatSeed( uniqidSeed, 5 ); // add seed hex string\n\t\tif ( moreEntropy ) {\n\t\t\t// for more entropy we add a float lower to 10\n\t\t\tretId += ( Math.random() * 10 ).toFixed( 8 ).toString();\n\t\t}\n\n\t\treturn retId;\n\t};\n\n\t/**\n\t * strReplace\n\t *\n\t * Performs a string replace\n\t *\n\t * @date\t14/12/17\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\tstring search\n\t * @param\tstring replace\n\t * @param\tstring subject\n\t * @return\tstring\n\t */\n\n\tacf.strReplace = function ( search, replace, subject ) {\n\t\treturn subject.split( search ).join( replace );\n\t};\n\n\t/**\n\t * strCamelCase\n\t *\n\t * Converts a string into camelCase\n\t * Thanks to https://stackoverflow.com/questions/2970525/converting-any-string-into-camel-case\n\t *\n\t * @date\t14/12/17\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\tstring str\n\t * @return\tstring\n\t */\n\n\tacf.strCamelCase = function ( str ) {\n\t\tvar matches = str.match( /([a-zA-Z0-9]+)/g );\n\t\treturn matches\n\t\t\t? matches\n\t\t\t\t\t.map( function ( s, i ) {\n\t\t\t\t\t\tvar c = s.charAt( 0 );\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t( i === 0 ? c.toLowerCase() : c.toUpperCase() ) +\n\t\t\t\t\t\t\ts.slice( 1 )\n\t\t\t\t\t\t);\n\t\t\t\t\t} )\n\t\t\t\t\t.join( '' )\n\t\t\t: '';\n\t};\n\n\t/**\n\t * strPascalCase\n\t *\n\t * Converts a string into PascalCase\n\t * Thanks to https://stackoverflow.com/questions/1026069/how-do-i-make-the-first-letter-of-a-string-uppercase-in-javascript\n\t *\n\t * @date\t14/12/17\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\tstring str\n\t * @return\tstring\n\t */\n\n\tacf.strPascalCase = function ( str ) {\n\t\tvar camel = acf.strCamelCase( str );\n\t\treturn camel.charAt( 0 ).toUpperCase() + camel.slice( 1 );\n\t};\n\n\t/**\n\t * acf.strSlugify\n\t *\n\t * Converts a string into a HTML class friendly slug\n\t *\n\t * @date\t21/3/18\n\t * @since\tACF 5.6.9\n\t *\n\t * @param\tstring str\n\t * @return\tstring\n\t */\n\n\tacf.strSlugify = function ( str ) {\n\t\treturn acf.strReplace( '_', '-', str.toLowerCase() );\n\t};\n\n\tacf.strSanitize = function ( str, toLowerCase = true ) {\n\t\t// chars (https://jsperf.com/replace-foreign-characters)\n\t\tvar map = {\n\t\t\tÀ: 'A',\n\t\t\tÁ: 'A',\n\t\t\tÂ: 'A',\n\t\t\tÃ: 'A',\n\t\t\tÄ: 'A',\n\t\t\tÅ: 'A',\n\t\t\tÆ: 'AE',\n\t\t\tÇ: 'C',\n\t\t\tÈ: 'E',\n\t\t\tÉ: 'E',\n\t\t\tÊ: 'E',\n\t\t\tË: 'E',\n\t\t\tÌ: 'I',\n\t\t\tÍ: 'I',\n\t\t\tÎ: 'I',\n\t\t\tÏ: 'I',\n\t\t\tÐ: 'D',\n\t\t\tÑ: 'N',\n\t\t\tÒ: 'O',\n\t\t\tÓ: 'O',\n\t\t\tÔ: 'O',\n\t\t\tÕ: 'O',\n\t\t\tÖ: 'O',\n\t\t\tØ: 'O',\n\t\t\tÙ: 'U',\n\t\t\tÚ: 'U',\n\t\t\tÛ: 'U',\n\t\t\tÜ: 'U',\n\t\t\tÝ: 'Y',\n\t\t\tß: 's',\n\t\t\tà: 'a',\n\t\t\tá: 'a',\n\t\t\tâ: 'a',\n\t\t\tã: 'a',\n\t\t\tä: 'a',\n\t\t\tå: 'a',\n\t\t\tæ: 'ae',\n\t\t\tç: 'c',\n\t\t\tè: 'e',\n\t\t\té: 'e',\n\t\t\tê: 'e',\n\t\t\të: 'e',\n\t\t\tì: 'i',\n\t\t\tí: 'i',\n\t\t\tî: 'i',\n\t\t\tï: 'i',\n\t\t\tñ: 'n',\n\t\t\tò: 'o',\n\t\t\tó: 'o',\n\t\t\tô: 'o',\n\t\t\tõ: 'o',\n\t\t\tö: 'o',\n\t\t\tø: 'o',\n\t\t\tù: 'u',\n\t\t\tú: 'u',\n\t\t\tû: 'u',\n\t\t\tü: 'u',\n\t\t\tý: 'y',\n\t\t\tÿ: 'y',\n\t\t\tĀ: 'A',\n\t\t\tā: 'a',\n\t\t\tĂ: 'A',\n\t\t\tă: 'a',\n\t\t\tĄ: 'A',\n\t\t\tą: 'a',\n\t\t\tĆ: 'C',\n\t\t\tć: 'c',\n\t\t\tĈ: 'C',\n\t\t\tĉ: 'c',\n\t\t\tĊ: 'C',\n\t\t\tċ: 'c',\n\t\t\tČ: 'C',\n\t\t\tč: 'c',\n\t\t\tĎ: 'D',\n\t\t\tď: 'd',\n\t\t\tĐ: 'D',\n\t\t\tđ: 'd',\n\t\t\tĒ: 'E',\n\t\t\tē: 'e',\n\t\t\tĔ: 'E',\n\t\t\tĕ: 'e',\n\t\t\tĖ: 'E',\n\t\t\tė: 'e',\n\t\t\tĘ: 'E',\n\t\t\tę: 'e',\n\t\t\tĚ: 'E',\n\t\t\tě: 'e',\n\t\t\tĜ: 'G',\n\t\t\tĝ: 'g',\n\t\t\tĞ: 'G',\n\t\t\tğ: 'g',\n\t\t\tĠ: 'G',\n\t\t\tġ: 'g',\n\t\t\tĢ: 'G',\n\t\t\tģ: 'g',\n\t\t\tĤ: 'H',\n\t\t\tĥ: 'h',\n\t\t\tĦ: 'H',\n\t\t\tħ: 'h',\n\t\t\tĨ: 'I',\n\t\t\tĩ: 'i',\n\t\t\tĪ: 'I',\n\t\t\tī: 'i',\n\t\t\tĬ: 'I',\n\t\t\tĭ: 'i',\n\t\t\tĮ: 'I',\n\t\t\tį: 'i',\n\t\t\tİ: 'I',\n\t\t\tı: 'i',\n\t\t\tIJ: 'IJ',\n\t\t\tij: 'ij',\n\t\t\tĴ: 'J',\n\t\t\tĵ: 'j',\n\t\t\tĶ: 'K',\n\t\t\tķ: 'k',\n\t\t\tĹ: 'L',\n\t\t\tĺ: 'l',\n\t\t\tĻ: 'L',\n\t\t\tļ: 'l',\n\t\t\tĽ: 'L',\n\t\t\tľ: 'l',\n\t\t\tĿ: 'L',\n\t\t\tŀ: 'l',\n\t\t\tŁ: 'l',\n\t\t\tł: 'l',\n\t\t\tŃ: 'N',\n\t\t\tń: 'n',\n\t\t\tŅ: 'N',\n\t\t\tņ: 'n',\n\t\t\tŇ: 'N',\n\t\t\tň: 'n',\n\t\t\tʼn: 'n',\n\t\t\tŌ: 'O',\n\t\t\tō: 'o',\n\t\t\tŎ: 'O',\n\t\t\tŏ: 'o',\n\t\t\tŐ: 'O',\n\t\t\tő: 'o',\n\t\t\tŒ: 'OE',\n\t\t\tœ: 'oe',\n\t\t\tŔ: 'R',\n\t\t\tŕ: 'r',\n\t\t\tŖ: 'R',\n\t\t\tŗ: 'r',\n\t\t\tŘ: 'R',\n\t\t\tř: 'r',\n\t\t\tŚ: 'S',\n\t\t\tś: 's',\n\t\t\tŜ: 'S',\n\t\t\tŝ: 's',\n\t\t\tŞ: 'S',\n\t\t\tş: 's',\n\t\t\tŠ: 'S',\n\t\t\tš: 's',\n\t\t\tŢ: 'T',\n\t\t\tţ: 't',\n\t\t\tŤ: 'T',\n\t\t\tť: 't',\n\t\t\tŦ: 'T',\n\t\t\tŧ: 't',\n\t\t\tŨ: 'U',\n\t\t\tũ: 'u',\n\t\t\tŪ: 'U',\n\t\t\tū: 'u',\n\t\t\tŬ: 'U',\n\t\t\tŭ: 'u',\n\t\t\tŮ: 'U',\n\t\t\tů: 'u',\n\t\t\tŰ: 'U',\n\t\t\tű: 'u',\n\t\t\tŲ: 'U',\n\t\t\tų: 'u',\n\t\t\tŴ: 'W',\n\t\t\tŵ: 'w',\n\t\t\tŶ: 'Y',\n\t\t\tŷ: 'y',\n\t\t\tŸ: 'Y',\n\t\t\tŹ: 'Z',\n\t\t\tź: 'z',\n\t\t\tŻ: 'Z',\n\t\t\tż: 'z',\n\t\t\tŽ: 'Z',\n\t\t\tž: 'z',\n\t\t\tſ: 's',\n\t\t\tƒ: 'f',\n\t\t\tƠ: 'O',\n\t\t\tơ: 'o',\n\t\t\tƯ: 'U',\n\t\t\tư: 'u',\n\t\t\tǍ: 'A',\n\t\t\tǎ: 'a',\n\t\t\tǏ: 'I',\n\t\t\tǐ: 'i',\n\t\t\tǑ: 'O',\n\t\t\tǒ: 'o',\n\t\t\tǓ: 'U',\n\t\t\tǔ: 'u',\n\t\t\tǕ: 'U',\n\t\t\tǖ: 'u',\n\t\t\tǗ: 'U',\n\t\t\tǘ: 'u',\n\t\t\tǙ: 'U',\n\t\t\tǚ: 'u',\n\t\t\tǛ: 'U',\n\t\t\tǜ: 'u',\n\t\t\tǺ: 'A',\n\t\t\tǻ: 'a',\n\t\t\tǼ: 'AE',\n\t\t\tǽ: 'ae',\n\t\t\tǾ: 'O',\n\t\t\tǿ: 'o',\n\n\t\t\t// extra\n\t\t\t' ': '_',\n\t\t\t\"'\": '',\n\t\t\t'?': '',\n\t\t\t'/': '',\n\t\t\t'\\\\': '',\n\t\t\t'.': '',\n\t\t\t',': '',\n\t\t\t'`': '',\n\t\t\t'>': '',\n\t\t\t'<': '',\n\t\t\t'\"': '',\n\t\t\t'[': '',\n\t\t\t']': '',\n\t\t\t'|': '',\n\t\t\t'{': '',\n\t\t\t'}': '',\n\t\t\t'(': '',\n\t\t\t')': '',\n\t\t};\n\n\t\t// vars\n\t\tvar nonWord = /\\W/g;\n\t\tvar mapping = function ( c ) {\n\t\t\treturn map[ c ] !== undefined ? map[ c ] : c;\n\t\t};\n\n\t\t// replace\n\t\tstr = str.replace( nonWord, mapping );\n\n\t\t// lowercase\n\t\tif ( toLowerCase ) {\n\t\t\tstr = str.toLowerCase();\n\t\t}\n\n\t\t// return\n\t\treturn str;\n\t};\n\n\t/**\n\t * acf.strMatch\n\t *\n\t * Returns the number of characters that match between two strings\n\t *\n\t * @date\t1/2/18\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.strMatch = function ( s1, s2 ) {\n\t\t// vars\n\t\tvar val = 0;\n\t\tvar min = Math.min( s1.length, s2.length );\n\n\t\t// loop\n\t\tfor ( var i = 0; i < min; i++ ) {\n\t\t\tif ( s1[ i ] !== s2[ i ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tval++;\n\t\t}\n\n\t\t// return\n\t\treturn val;\n\t};\n\n\t/**\n\t * Escapes HTML entities from a string.\n\t *\n\t * @date\t08/06/2020\n\t * @since\tACF 5.9.0\n\t *\n\t * @param\tstring string The input string.\n\t * @return\tstring\n\t */\n\tacf.strEscape = function ( string ) {\n\t\tvar htmlEscapes = {\n\t\t\t'&': '&',\n\t\t\t'<': '<',\n\t\t\t'>': '>',\n\t\t\t'\"': '"',\n\t\t\t\"'\": ''',\n\t\t};\n\t\treturn ( '' + string ).replace( /[&<>\"']/g, function ( chr ) {\n\t\t\treturn htmlEscapes[ chr ];\n\t\t} );\n\t};\n\n\t// Tests.\n\t//console.log( acf.strEscape('Test 1') );\n\t//console.log( acf.strEscape('Test & 1') );\n\t//console.log( acf.strEscape('Test\\'s & 1') );\n\t//console.log( acf.strEscape('<script>js</script>') );\n\n\t/**\n\t * Unescapes HTML entities from a string.\n\t *\n\t * @date\t08/06/2020\n\t * @since\tACF 5.9.0\n\t *\n\t * @param\tstring string The input string.\n\t * @return\tstring\n\t */\n\tacf.strUnescape = function ( string ) {\n\t\tvar htmlUnescapes = {\n\t\t\t'&': '&',\n\t\t\t'<': '<',\n\t\t\t'>': '>',\n\t\t\t'"': '\"',\n\t\t\t''': \"'\",\n\t\t};\n\t\treturn ( '' + string ).replace(\n\t\t\t/&|<|>|"|'/g,\n\t\t\tfunction ( entity ) {\n\t\t\t\treturn htmlUnescapes[ entity ];\n\t\t\t}\n\t\t);\n\t};\n\n\t// Tests.\n\t//console.log( acf.strUnescape( acf.strEscape('Test 1') ) );\n\t//console.log( acf.strUnescape( acf.strEscape('Test & 1') ) );\n\t//console.log( acf.strUnescape( acf.strEscape('Test\\'s & 1') ) );\n\t//console.log( acf.strUnescape( acf.strEscape('<script>js</script>') ) );\n\n\t/**\n\t * Escapes HTML entities from a string.\n\t *\n\t * @date\t08/06/2020\n\t * @since\tACF 5.9.0\n\t *\n\t * @param\tstring string The input string.\n\t * @return\tstring\n\t */\n\tacf.escAttr = acf.strEscape;\n\n\t/**\n\t * Encodes <script> tags for safe HTML output.\n\t *\n\t * @date\t08/06/2020\n\t * @since\tACF 5.9.0\n\t * @since\tACF 6.4.3 - Use DOMPurify for better security.\n\t *\n\t * @param\tstring string The input string.\n\t * @return\tstring\n\t */\n\n\tacf.escHtml = function ( string ) {\n\t\tstring = '' + string; // Convert to string if not already.\n\t\tconst DOMPurify = require( 'dompurify' );\n\t\tif ( DOMPurify === undefined || ! DOMPurify.isSupported ) {\n\t\t\tconsole.warn(\n\t\t\t\t'ACF: DOMPurify not loaded or not supported. Falling back to basic HTML escaping for security.'\n\t\t\t);\n\t\t\treturn acf.strEscape( string ); // Fallback to basic escaping.\n\t\t}\n\t\tconst options = acf.applyFilters( 'esc_html_dompurify_config', {\n\t\t\tUSE_PROFILES: { html: true },\n\t\t\tADD_TAGS: [ 'audio', 'video' ],\n\t\t\tADD_ATTR: [ 'controls', 'loop', 'muted', 'preload' ],\n\t\t\tFORBID_TAGS: [\n\t\t\t\t'script',\n\t\t\t\t'style',\n\t\t\t\t'iframe',\n\t\t\t\t'object',\n\t\t\t\t'embed',\n\t\t\t\t'base',\n\t\t\t\t'meta',\n\t\t\t\t'form',\n\t\t\t],\n\t\t\tFORBID_ATTR: [\n\t\t\t\t'style',\n\t\t\t\t'srcset',\n\t\t\t\t'action',\n\t\t\t\t'background',\n\t\t\t\t'dynsrc',\n\t\t\t\t'lowsrc',\n\t\t\t\t'on*',\n\t\t\t],\n\t\t\tALLOW_DATA_ATTR: false,\n\t\t\tALLOW_ARIA_ATTR: false,\n\t\t} );\n\t\treturn DOMPurify.sanitize( string, options );\n\t};\n\n\t// Tests.\n\t//console.log( acf.escHtml('<script>js</script>') );\n\t//console.log( acf.escHtml( acf.strEscape('<script>js</script>') ) );\n\t//console.log( acf.escHtml( '<script>js1</script><script>js2</script>' ) );\n\n\t/**\n\t * Encode a string potentially containing HTML into it's HTML entities equivalent.\n\t *\n\t * @since ACF 6.3.6\n\t *\n\t * @param {string} string String to encode.\n\t * @return {string} The encoded string\n\t */\n\tacf.encode = function ( string ) {\n\t\treturn $( '<textarea/>' ).text( string ).html();\n\t};\n\n\t/**\n\t * Decode a HTML encoded string into it's original form.\n\t *\n\t * @since ACF 5.6.5\n\t *\n\t * @param {string} string String to encode.\n\t * @return {string} The encoded string\n\t */\n\tacf.decode = function ( string ) {\n\t\treturn $( '<textarea/>' ).html( string ).text();\n\t};\n\n\t/**\n\t * parseArgs\n\t *\n\t * Merges together defaults and args much like the WP wp_parse_args function\n\t *\n\t * @date\t14/12/17\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\tobject args\n\t * @param\tobject defaults\n\t * @return\tobject\n\t */\n\n\tacf.parseArgs = function ( args, defaults ) {\n\t\tif ( typeof args !== 'object' ) args = {};\n\t\tif ( typeof defaults !== 'object' ) defaults = {};\n\t\treturn $.extend( {}, defaults, args );\n\t};\n\n\t/**\n\t * __\n\t *\n\t * Retrieve the translation of $text.\n\t *\n\t * @date\t16/4/18\n\t * @since\tACF 5.6.9\n\t *\n\t * @param\tstring text Text to translate.\n\t * @return\tstring Translated text.\n\t */\n\n\t// Make sure a global acfL10n object exists to prevent errors in other scopes\n\twindow.acfL10n = window.acfL10n || {};\n\n\tacf.__ = function ( text ) {\n\t\treturn acfL10n[ text ] || text;\n\t};\n\n\t/**\n\t * _x\n\t *\n\t * Retrieve translated string with gettext context.\n\t *\n\t * @date\t16/4/18\n\t * @since\tACF 5.6.9\n\t *\n\t * @param\tstring text Text to translate.\n\t * @param\tstring context Context information for the translators.\n\t * @return\tstring Translated text.\n\t */\n\n\tacf._x = function ( text, context ) {\n\t\treturn acfL10n[ text + '.' + context ] || acfL10n[ text ] || text;\n\t};\n\n\t/**\n\t * _n\n\t *\n\t * Retrieve the plural or single form based on the amount.\n\t *\n\t * @date\t16/4/18\n\t * @since\tACF 5.6.9\n\t *\n\t * @param\tstring single Single text to translate.\n\t * @param\tstring plural Plural text to translate.\n\t * @param\tint number The number to compare against.\n\t * @return\tstring Translated text.\n\t */\n\n\tacf._n = function ( single, plural, number ) {\n\t\tif ( number == 1 ) {\n\t\t\treturn acf.__( single );\n\t\t} else {\n\t\t\treturn acf.__( plural );\n\t\t}\n\t};\n\n\tacf.isArray = function ( a ) {\n\t\treturn Array.isArray( a );\n\t};\n\n\tacf.isObject = function ( a ) {\n\t\treturn typeof a === 'object';\n\t};\n\n\t/**\n\t * serialize\n\t *\n\t * description\n\t *\n\t * @date\t24/12/17\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tvar buildObject = function ( obj, name, value ) {\n\t\t// replace [] with placeholder\n\t\tname = name.replace( '[]', '[%%index%%]' );\n\n\t\t// vars\n\t\tvar keys = name.match( /([^\\[\\]])+/g );\n\t\tif ( ! keys ) return;\n\t\tvar length = keys.length;\n\t\tvar ref = obj;\n\n\t\t// loop\n\t\tfor ( var i = 0; i < length; i++ ) {\n\t\t\t// vars\n\t\t\tvar key = String( keys[ i ] );\n\n\t\t\t// value\n\t\t\tif ( i == length - 1 ) {\n\t\t\t\t// %%index%%\n\t\t\t\tif ( key === '%%index%%' ) {\n\t\t\t\t\tref.push( value );\n\n\t\t\t\t\t// default\n\t\t\t\t} else {\n\t\t\t\t\tref[ key ] = value;\n\t\t\t\t}\n\n\t\t\t\t// path\n\t\t\t} else {\n\t\t\t\t// array\n\t\t\t\tif ( keys[ i + 1 ] === '%%index%%' ) {\n\t\t\t\t\tif ( ! acf.isArray( ref[ key ] ) ) {\n\t\t\t\t\t\tref[ key ] = [];\n\t\t\t\t\t}\n\n\t\t\t\t\t// object\n\t\t\t\t} else {\n\t\t\t\t\tif ( ! acf.isObject( ref[ key ] ) ) {\n\t\t\t\t\t\tref[ key ] = {};\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// crawl\n\t\t\t\tref = ref[ key ];\n\t\t\t}\n\t\t}\n\t};\n\n\tacf.serialize = function ( $el, prefix ) {\n\t\t// vars\n\t\tvar obj = {};\n\t\tvar inputs = acf.serializeArray( $el );\n\n\t\t// prefix\n\t\tif ( prefix !== undefined ) {\n\t\t\t// filter and modify\n\t\t\tinputs = inputs\n\t\t\t\t.filter( function ( item ) {\n\t\t\t\t\treturn item.name.indexOf( prefix ) === 0;\n\t\t\t\t} )\n\t\t\t\t.map( function ( item ) {\n\t\t\t\t\titem.name = item.name.slice( prefix.length );\n\t\t\t\t\treturn item;\n\t\t\t\t} );\n\t\t}\n\n\t\t// loop\n\t\tfor ( var i = 0; i < inputs.length; i++ ) {\n\t\t\tbuildObject( obj, inputs[ i ].name, inputs[ i ].value );\n\t\t}\n\n\t\t// return\n\t\treturn obj;\n\t};\n\n\t/**\n\t * Check if an object has only numeric string keys.\n\t * Used to detect objects that should be converted to arrays (e.g., checkbox values).\n\t *\n\t * Semantics:\n\t * - Accepts base-10, non-negative integer strings composed of digits only (e.g. \"0\", \"12\").\n\t * - Leading zeros are allowed (e.g. \"0012\") and treated as numeric by downstream logic.\n\t * - Negative (\"-1\"), decimal (\"1.0\"), and non-numeric keys are rejected.\n\t *\n\t * @since SCF 6.6.0\n\t * @private\n\t *\n\t * @param object obj The object to check\n\t * @return boolean True if all keys are numeric strings\n\t */\n\tconst hasOnlyNumericKeys = function ( obj ) {\n\t\tconst keys = Object.keys( obj );\n\t\tif ( keys.length === 0 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tfor ( let i = 0; i < keys.length; i++ ) {\n\t\t\tif ( ! /^\\d+$/.test( keys[ i ] ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t};\n\n\t/**\n\t * Convert an object with numeric string keys to a numerically sorted array.\n\t * Example: {\"0\": \"one\", \"2\": \"three\", \"1\": \"two\"} becomes [\"one\", \"two\", \"three\"].\n\t *\n\t * Notes on edge-cases:\n\t * - Leading zeros (e.g. \"00123\") are supported; order is based on the numeric value\n\t * but the original string key is used to read the value to avoid lookup mismatches.\n\t * - Assumes {@link hasOnlyNumericKeys} has already gated out negatives/decimals.\n\t *\n\t * @since SCF 6.6.0\n\t * @private\n\t *\n\t * @param object obj The object to convert\n\t * @return array The numerically sorted array of values\n\t */\n\tconst numericObjectToArray = function ( obj ) {\n\t\tconst arr = [];\n\t\t// Pair each original key with its numeric value for stable lookup and sorting.\n\t\tconst entries = Object.keys( obj )\n\t\t\t.map( function ( k ) {\n\t\t\t\treturn { k: k, n: parseInt( k, 10 ) };\n\t\t\t} )\n\t\t\t.sort( function ( a, b ) {\n\t\t\t\treturn a.n - b.n;\n\t\t\t} );\n\n\t\tfor ( let i = 0; i < entries.length; i++ ) {\n\t\t\tarr.push( obj[ entries[ i ].k ] );\n\t\t}\n\t\treturn arr;\n\t};\n\n\t/**\n\t * Check if a value looks like flexible content data.\n\t * Flexible content objects contain rows where each row object has an 'acf_fc_layout' property.\n\t * Keys for flexible rows are not guaranteed to be numeric: they are typically unique IDs\n\t * (e.g. '69171156640b5') or strings like 'row-0'. Therefore, flexible content detection does\n\t * not rely on numeric keys and is handled separately from numeric-keyed object normalization.\n\t *\n\t * @since SCF 6.6.0\n\t *\n\t * @param object value The value to check\n\t * @return boolean True if this looks like flexible content data\n\t */\n\tacf.isFlexibleContentData = function ( value ) {\n\t\tif ( ! acf.isObject( value ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar keys = Object.keys( value );\n\t\tfor ( var i = 0; i < keys.length; i++ ) {\n\t\t\tvar key = keys[ i ];\n\t\t\tif ( key === 'acfcloneindex' ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tvar subvalue = value[ key ];\n\t\t\tif ( acf.isObject( subvalue ) && subvalue.acf_fc_layout ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t};\n\n\t/**\n\t * Normalizes flexible content data structure by converting objects to arrays.\n\t * Private helper function.\n\t *\n\t * @since 6.6.0\n\t *\n\t * @param {Object} obj The object to normalize.\n\t * @return {Object|Array} The normalized data.\n\t */\n\tconst normalizeFlexibleContentData = function ( obj ) {\n\t\tif ( ! acf.isObject( obj ) ) {\n\t\t\treturn obj;\n\t\t}\n\n\t\tlet result = {};\n\n\t\tfor ( let key in obj ) {\n\t\t\tif ( ! obj.hasOwnProperty( key ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tvar value = obj[ key ];\n\n\t\t\t// Primitives pass through unchanged\n\t\t\tif ( ! acf.isObject( value ) ) {\n\t\t\t\tresult[ key ] = value;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Convert numeric-keyed objects to arrays (e.g., checkbox values)\n\t\t\tif ( hasOnlyNumericKeys( value ) ) {\n\t\t\t\tresult[ key ] = numericObjectToArray( value );\n\t\t\t\tcontinue;\n\t\t\t} // Convert flexible content to arrays\n\t\t\tif ( acf.isFlexibleContentData( value ) ) {\n\t\t\t\tvar arr = [];\n\t\t\t\tvar keys = Object.keys( value );\n\n\t\t\t\tfor ( var i = 0; i < keys.length; i++ ) {\n\t\t\t\t\tvar subkey = keys[ i ];\n\t\t\t\t\tif ( subkey === 'acfcloneindex' ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar subvalue = value[ subkey ];\n\t\t\t\t\tif ( acf.isObject( subvalue ) && subvalue.acf_fc_layout ) {\n\t\t\t\t\t\tarr.push( normalizeFlexibleContentData( subvalue ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tresult[ key ] = arr;\n\t\t\t} else {\n\t\t\t\t// Recursively process nested objects\n\t\t\t\tresult[ key ] = normalizeFlexibleContentData( value );\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t/**\n\t * Public API wrapper for normalizeFlexibleContentData.\n\t * Normalizes flexible content data structure by converting objects to arrays.\n\t *\n\t * @since 6.6.0\n\t *\n\t * @param {Object} obj The object to normalize.\n\t * @return {Object|Array} The normalized data.\n\t */\n\tacf.normalizeFlexibleContentData = function ( obj ) {\n\t\treturn normalizeFlexibleContentData( obj );\n\t};\n\n\t/**\n\t * acf.serializeArray\n\t *\n\t * Similar to $.serializeArray() but works with a parent wrapping element.\n\t *\n\t * @date\t19/8/18\n\t * @since\tACF 5.7.3\n\t *\n\t * @param\tjQuery $el The element or form to serialize.\n\t * @return\tarray\n\t */\n\n\tacf.serializeArray = function ( $el ) {\n\t\treturn $el.find( 'select, textarea, input' ).serializeArray();\n\t};\n\n\t/**\n\t * acf.serializeForAjax\n\t *\n\t * Returns an object containing name => value data ready to be encoded for Ajax.\n\t *\n\t * @date\t17/12/18\n\t * @since\tACF 5.8.0\n\t *\n\t * @param\tjQuery $el The element or form to serialize.\n\t * @return\tobject\n\t */\n\tacf.serializeForAjax = function ( $el ) {\n\t\t// vars\n\t\tvar data = {};\n\t\tvar index = {};\n\n\t\t// Serialize inputs.\n\t\tvar inputs = acf.serializeArray( $el );\n\n\t\t// Loop over inputs and build data.\n\t\tinputs.map( function ( item ) {\n\t\t\t// Append to array.\n\t\t\tif ( item.name.slice( -2 ) === '[]' ) {\n\t\t\t\tdata[ item.name ] = data[ item.name ] || [];\n\t\t\t\tdata[ item.name ].push( item.value );\n\t\t\t\t// Append\n\t\t\t} else {\n\t\t\t\tdata[ item.name ] = item.value;\n\t\t\t}\n\t\t} );\n\n\t\t// return\n\t\treturn data;\n\t};\n\n\t/**\n\t * addAction\n\t *\n\t * Wrapper for acf.hooks.addAction\n\t *\n\t * @date\t14/12/17\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\tn/a\n\t * @return\tthis\n\t */\n\n\t/*\n\tvar prefixAction = function( action ){\n\t\treturn 'acf_' + action;\n\t}\n*/\n\n\tacf.addAction = function () {\n\t\t//action = prefixAction(action);\n\t\tacf.hooks.addAction.apply( this, arguments );\n\t\treturn this;\n\t};\n\n\t/**\n\t * removeAction\n\t *\n\t * Wrapper for acf.hooks.removeAction\n\t *\n\t * @date\t14/12/17\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\tn/a\n\t * @return\tthis\n\t */\n\n\tacf.removeAction = function () {\n\t\t//action = prefixAction(action);\n\t\tacf.hooks.removeAction.apply( this, arguments );\n\t\treturn this;\n\t};\n\n\t/**\n\t * doAction\n\t *\n\t * Wrapper for acf.hooks.doAction\n\t *\n\t * @date\t14/12/17\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\tn/a\n\t * @return\tthis\n\t */\n\n\tvar actionHistory = {};\n\t//var currentAction = false;\n\tacf.doAction = function ( action ) {\n\t\t//action = prefixAction(action);\n\t\t//currentAction = action;\n\t\tactionHistory[ action ] = 1;\n\t\tacf.hooks.doAction.apply( this, arguments );\n\t\tactionHistory[ action ] = 0;\n\t\treturn this;\n\t};\n\n\t/**\n\t * doingAction\n\t *\n\t * Return true if doing action\n\t *\n\t * @date\t14/12/17\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\tn/a\n\t * @return\tthis\n\t */\n\n\tacf.doingAction = function ( action ) {\n\t\t//action = prefixAction(action);\n\t\treturn actionHistory[ action ] === 1;\n\t};\n\n\t/**\n\t * didAction\n\t *\n\t * Wrapper for acf.hooks.doAction\n\t *\n\t * @date\t14/12/17\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\tn/a\n\t * @return\tthis\n\t */\n\n\tacf.didAction = function ( action ) {\n\t\t//action = prefixAction(action);\n\t\treturn actionHistory[ action ] !== undefined;\n\t};\n\n\t/**\n\t * currentAction\n\t *\n\t * Wrapper for acf.hooks.doAction\n\t *\n\t * @date\t14/12/17\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\tn/a\n\t * @return\tthis\n\t */\n\n\tacf.currentAction = function () {\n\t\tfor ( var k in actionHistory ) {\n\t\t\tif ( actionHistory[ k ] ) {\n\t\t\t\treturn k;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t};\n\n\t/**\n\t * addFilter\n\t *\n\t * Wrapper for acf.hooks.addFilter\n\t *\n\t * @date\t14/12/17\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\tn/a\n\t * @return\tthis\n\t */\n\n\tacf.addFilter = function () {\n\t\t//action = prefixAction(action);\n\t\tacf.hooks.addFilter.apply( this, arguments );\n\t\treturn this;\n\t};\n\n\t/**\n\t * removeFilter\n\t *\n\t * Wrapper for acf.hooks.removeFilter\n\t *\n\t * @date\t14/12/17\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\tn/a\n\t * @return\tthis\n\t */\n\n\tacf.removeFilter = function () {\n\t\t//action = prefixAction(action);\n\t\tacf.hooks.removeFilter.apply( this, arguments );\n\t\treturn this;\n\t};\n\n\t/**\n\t * applyFilters\n\t *\n\t * Wrapper for acf.hooks.applyFilters\n\t *\n\t * @date\t14/12/17\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\tn/a\n\t * @return\tthis\n\t */\n\n\tacf.applyFilters = function () {\n\t\t//action = prefixAction(action);\n\t\treturn acf.hooks.applyFilters.apply( this, arguments );\n\t};\n\n\t/**\n\t * getArgs\n\t *\n\t * description\n\t *\n\t * @date\t15/12/17\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.arrayArgs = function ( args ) {\n\t\treturn Array.prototype.slice.call( args );\n\t};\n\n\t/**\n\t * extendArgs\n\t *\n\t * description\n\t *\n\t * @date\t15/12/17\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\t/*\n\tacf.extendArgs = function( ){\n\t\tvar args = Array.prototype.slice.call( arguments );\n\t\tvar realArgs = args.shift();\n\t\t\t\n\t\tArray.prototype.push.call(arguments, 'bar')\n\t\treturn Array.prototype.push.apply( args, arguments );\n\t};\n*/\n\n\t// Preferences\n\t// - use try/catch to avoid JS error if cookies are disabled on front-end form\n\ttry {\n\t\tvar preferences = JSON.parse( localStorage.getItem( 'acf' ) ) || {};\n\t} catch ( e ) {\n\t\tvar preferences = {};\n\t}\n\n\t/**\n\t * getPreferenceName\n\t *\n\t * Gets the true preference name.\n\t * Converts \"this.thing\" to \"thing-123\" if editing post 123.\n\t *\n\t * @date\t11/11/17\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\tstring name\n\t * @return\tstring\n\t */\n\n\tvar getPreferenceName = function ( name ) {\n\t\tif ( name.substr( 0, 5 ) === 'this.' ) {\n\t\t\tname = name.substr( 5 ) + '-' + acf.get( 'post_id' );\n\t\t}\n\t\treturn name;\n\t};\n\n\t/**\n\t * acf.getPreference\n\t *\n\t * Gets a preference setting or null if not set.\n\t *\n\t * @date\t11/11/17\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\tstring name\n\t * @return\tmixed\n\t */\n\n\tacf.getPreference = function ( name ) {\n\t\tname = getPreferenceName( name );\n\t\treturn preferences[ name ] || null;\n\t};\n\n\t/**\n\t * acf.setPreference\n\t *\n\t * Sets a preference setting.\n\t *\n\t * @date\t11/11/17\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\tstring name\n\t * @param\tmixed value\n\t * @return\tn/a\n\t */\n\n\tacf.setPreference = function ( name, value ) {\n\t\tname = getPreferenceName( name );\n\t\tif ( value === null ) {\n\t\t\tdelete preferences[ name ];\n\t\t} else {\n\t\t\tpreferences[ name ] = value;\n\t\t}\n\t\tlocalStorage.setItem( 'acf', JSON.stringify( preferences ) );\n\t};\n\n\t/**\n\t * acf.removePreference\n\t *\n\t * Removes a preference setting.\n\t *\n\t * @date\t11/11/17\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\tstring name\n\t * @return\tn/a\n\t */\n\n\tacf.removePreference = function ( name ) {\n\t\tacf.setPreference( name, null );\n\t};\n\n\t/**\n\t * remove\n\t *\n\t * Removes an element with fade effect\n\t *\n\t * @date\t1/1/18\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.remove = function ( props ) {\n\t\t// allow jQuery\n\t\tif ( props instanceof jQuery ) {\n\t\t\tprops = {\n\t\t\t\ttarget: props,\n\t\t\t};\n\t\t}\n\n\t\t// defaults\n\t\tprops = acf.parseArgs( props, {\n\t\t\ttarget: false,\n\t\t\tendHeight: 0,\n\t\t\tcomplete: function () {},\n\t\t} );\n\n\t\t// action\n\t\tacf.doAction( 'remove', props.target );\n\n\t\t// tr\n\t\tif ( props.target.is( 'tr' ) ) {\n\t\t\tremoveTr( props );\n\n\t\t\t// div\n\t\t} else {\n\t\t\tremoveDiv( props );\n\t\t}\n\t};\n\n\t/**\n\t * removeDiv\n\t *\n\t * description\n\t *\n\t * @date\t16/2/18\n\t * @since\tACF 5.6.9\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tvar removeDiv = function ( props ) {\n\t\t// vars\n\t\tvar $el = props.target;\n\t\tvar height = $el.height();\n\t\tvar width = $el.width();\n\t\tvar margin = $el.css( 'margin' );\n\t\tvar outerHeight = $el.outerHeight( true );\n\t\tvar style = $el.attr( 'style' ) + ''; // needed to copy\n\n\t\t// wrap\n\t\t$el.wrap(\n\t\t\t'<div class=\"acf-temp-remove\" style=\"height:' +\n\t\t\t\touterHeight +\n\t\t\t\t'px\"></div>'\n\t\t);\n\t\tvar $wrap = $el.parent();\n\n\t\t// set pos\n\t\t$el.css( {\n\t\t\theight: height,\n\t\t\twidth: width,\n\t\t\tmargin: margin,\n\t\t\tposition: 'absolute',\n\t\t} );\n\n\t\t// fade wrap\n\t\tsetTimeout( function () {\n\t\t\t$wrap.css( {\n\t\t\t\topacity: 0,\n\t\t\t\theight: props.endHeight,\n\t\t\t} );\n\t\t}, 50 );\n\n\t\t// remove\n\t\tsetTimeout( function () {\n\t\t\t$el.attr( 'style', style );\n\t\t\t$wrap.remove();\n\t\t\tprops.complete();\n\t\t}, 301 );\n\t};\n\n\t/**\n\t * removeTr\n\t *\n\t * description\n\t *\n\t * @date\t16/2/18\n\t * @since\tACF 5.6.9\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tvar removeTr = function ( props ) {\n\t\t// vars\n\t\tvar $tr = props.target;\n\t\tvar height = $tr.height();\n\t\tvar children = $tr.children().length;\n\n\t\t// create dummy td\n\t\tvar $td = $(\n\t\t\t'<td class=\"acf-temp-remove\" style=\"padding:0; height:' +\n\t\t\t\theight +\n\t\t\t\t'px\" colspan=\"' +\n\t\t\t\tchildren +\n\t\t\t\t'\"></td>'\n\t\t);\n\n\t\t// fade away tr\n\t\t$tr.addClass( 'acf-remove-element' );\n\n\t\t// update HTML after fade animation\n\t\tsetTimeout( function () {\n\t\t\t$tr.html( $td );\n\t\t}, 251 );\n\n\t\t// allow .acf-temp-remove to exist before changing CSS\n\t\tsetTimeout( function () {\n\t\t\t// remove class\n\t\t\t$tr.removeClass( 'acf-remove-element' );\n\n\t\t\t// collapse\n\t\t\t$td.css( {\n\t\t\t\theight: props.endHeight,\n\t\t\t} );\n\t\t}, 300 );\n\n\t\t// remove\n\t\tsetTimeout( function () {\n\t\t\t$tr.remove();\n\t\t\tprops.complete();\n\t\t}, 451 );\n\t};\n\n\t/**\n\t * duplicate\n\t *\n\t * description\n\t *\n\t * @date\t3/1/18\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.duplicate = function ( args ) {\n\t\t// allow jQuery\n\t\tif ( args instanceof jQuery ) {\n\t\t\targs = {\n\t\t\t\ttarget: args,\n\t\t\t};\n\t\t}\n\n\t\t// defaults\n\t\targs = acf.parseArgs( args, {\n\t\t\ttarget: false,\n\t\t\tsearch: '',\n\t\t\treplace: '',\n\t\t\trename: true,\n\t\t\tbefore: function ( $el ) {},\n\t\t\tafter: function ( $el, $el2 ) {},\n\t\t\tappend: function ( $el, $el2 ) {\n\t\t\t\t$el.after( $el2 );\n\t\t\t},\n\t\t} );\n\n\t\t// compatibility\n\t\targs.target = args.target || args.$el;\n\n\t\t// vars\n\t\tvar $el = args.target;\n\n\t\t// search\n\t\targs.search = args.search || $el.attr( 'data-id' );\n\t\targs.replace = args.replace || acf.uniqid();\n\n\t\t// before\n\t\t// - allow acf to modify DOM\n\t\t// - fixes bug where select field option is not selected\n\t\targs.before( $el );\n\t\tacf.doAction( 'before_duplicate', $el );\n\n\t\t// clone\n\t\tvar $el2 = $el.clone();\n\n\t\t// rename\n\t\tif ( args.rename ) {\n\t\t\tacf.rename( {\n\t\t\t\ttarget: $el2,\n\t\t\t\tsearch: args.search,\n\t\t\t\treplace: args.replace,\n\t\t\t\treplacer:\n\t\t\t\t\ttypeof args.rename === 'function' ? args.rename : null,\n\t\t\t} );\n\t\t}\n\n\t\t// remove classes\n\t\t$el2.removeClass( 'acf-clone' );\n\t\t$el2.find( '.ui-sortable' ).removeClass( 'ui-sortable' );\n\n\t\t// remove any initialised select2s prevent the duplicated object stealing the previous select2.\n\t\t$el2.find( '[data-select2-id]' ).removeAttr( 'data-select2-id' );\n\t\t$el2.find( '.select2' ).remove();\n\n\t\t// subfield select2 renames happen after init and contain a duplicated ID. force change those IDs to prevent this.\n\t\t$el2.find( '.acf-is-subfields select[data-ui=\"1\"]' ).each( function () {\n\t\t\t$( this ).prop(\n\t\t\t\t'id',\n\t\t\t\t$( this )\n\t\t\t\t\t.prop( 'id' )\n\t\t\t\t\t.replace(\n\t\t\t\t\t\t'acf_fields',\n\t\t\t\t\t\tacf.uniqid( 'duplicated_' ) + '_acf_fields'\n\t\t\t\t\t)\n\t\t\t);\n\t\t} );\n\n\t\t// remove tab wrapper to ensure proper init\n\t\t$el2.find( '.acf-field-settings > .acf-tab-wrap' ).remove();\n\n\t\t// after\n\t\t// - allow acf to modify DOM\n\t\targs.after( $el, $el2 );\n\t\tacf.doAction( 'after_duplicate', $el, $el2 );\n\n\t\t// append\n\t\targs.append( $el, $el2 );\n\n\t\t/**\n\t\t * Fires after an element has been duplicated and appended to the DOM.\n\t\t *\n\t\t * @date\t30/10/19\n\t\t * @since\tACF 5.8.7\n\t\t *\n\t\t * @param\tjQuery $el The original element.\n\t\t * @param\tjQuery $el2 The duplicated element.\n\t\t */\n\t\tacf.doAction( 'duplicate', $el, $el2 );\n\n\t\t// append\n\t\tacf.doAction( 'append', $el2 );\n\n\t\t// return\n\t\treturn $el2;\n\t};\n\n\t/**\n\t * rename\n\t *\n\t * description\n\t *\n\t * @date\t7/1/18\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.rename = function ( args ) {\n\t\t// Allow jQuery param.\n\t\tif ( args instanceof jQuery ) {\n\t\t\targs = {\n\t\t\t\ttarget: args,\n\t\t\t};\n\t\t}\n\n\t\t// Apply default args.\n\t\targs = acf.parseArgs( args, {\n\t\t\ttarget: false,\n\t\t\tdestructive: false,\n\t\t\tsearch: '',\n\t\t\treplace: '',\n\t\t\treplacer: null,\n\t\t} );\n\n\t\t// Extract args.\n\t\tvar $el = args.target;\n\n\t\t// Provide backup for empty args.\n\t\tif ( ! args.search ) {\n\t\t\targs.search = $el.attr( 'data-id' );\n\t\t}\n\t\tif ( ! args.replace ) {\n\t\t\targs.replace = acf.uniqid( 'acf' );\n\t\t}\n\t\tif ( ! args.replacer ) {\n\t\t\targs.replacer = function ( name, value, search, replace ) {\n\t\t\t\treturn value.replace( search, replace );\n\t\t\t};\n\t\t}\n\n\t\t// Callback function for jQuery replacing.\n\t\tvar withReplacer = function ( name ) {\n\t\t\treturn function ( i, value ) {\n\t\t\t\treturn args.replacer( name, value, args.search, args.replace );\n\t\t\t};\n\t\t};\n\n\t\t// Destructive Replace.\n\t\tif ( args.destructive ) {\n\t\t\tvar html = acf.strReplace(\n\t\t\t\targs.search,\n\t\t\t\targs.replace,\n\t\t\t\t$el.outerHTML()\n\t\t\t);\n\t\t\t$el.replaceWith( html );\n\n\t\t\t// Standard Replace.\n\t\t} else {\n\t\t\t$el.attr( 'data-id', args.replace );\n\t\t\t$el.find( '[id*=\"' + args.search + '\"]' ).attr(\n\t\t\t\t'id',\n\t\t\t\twithReplacer( 'id' )\n\t\t\t);\n\t\t\t$el.find( '[for*=\"' + args.search + '\"]' ).attr(\n\t\t\t\t'for',\n\t\t\t\twithReplacer( 'for' )\n\t\t\t);\n\t\t\t$el.find( '[name*=\"' + args.search + '\"]' ).attr(\n\t\t\t\t'name',\n\t\t\t\twithReplacer( 'name' )\n\t\t\t);\n\t\t}\n\n\t\t// return\n\t\treturn $el;\n\t};\n\n\t/**\n\t * Prepares AJAX data prior to being sent.\n\t *\n\t * @since ACF 5.6.5\n\t *\n\t * @param Object data The data to prepare\n\t * @param boolean use_global_nonce Should we ignore any nonce provided in the data object and force ACF's global nonce for this request\n\t * @return Object The prepared data.\n\t */\n\tacf.prepareForAjax = function ( data, use_global_nonce = false ) {\n\t\t// Set a default nonce if we don't have one already.\n\t\tif ( use_global_nonce || 'undefined' === typeof data.nonce ) {\n\t\t\tdata.nonce = acf.get( 'nonce' );\n\t\t}\n\n\t\tdata.post_id = acf.get( 'post_id' );\n\n\t\tif ( acf.has( 'language' ) ) {\n\t\t\tdata.lang = acf.get( 'language' );\n\t\t}\n\n\t\t// Filter for 3rd party customization.\n\t\tdata = acf.applyFilters( 'prepare_for_ajax', data );\n\n\t\treturn data;\n\t};\n\n\t/**\n\t * acf.startButtonLoading\n\t *\n\t * description\n\t *\n\t * @date\t5/1/18\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.startButtonLoading = function ( $el ) {\n\t\t$el.prop( 'disabled', true );\n\t\t$el.after( ' <i class=\"acf-loading\"></i>' );\n\t};\n\n\tacf.stopButtonLoading = function ( $el ) {\n\t\t$el.prop( 'disabled', false );\n\t\t$el.next( '.acf-loading' ).remove();\n\t};\n\n\t/**\n\t * acf.showLoading\n\t *\n\t * description\n\t *\n\t * @date\t12/1/18\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.showLoading = function ( $el ) {\n\t\t$el.append(\n\t\t\t'<div class=\"acf-loading-overlay\"><i class=\"acf-loading\"></i></div>'\n\t\t);\n\t};\n\n\tacf.hideLoading = function ( $el ) {\n\t\t$el.children( '.acf-loading-overlay' ).remove();\n\t};\n\n\t/**\n\t * acf.updateUserSetting\n\t *\n\t * description\n\t *\n\t * @date\t5/1/18\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.updateUserSetting = function ( name, value ) {\n\t\tvar ajaxData = {\n\t\t\taction: 'acf/ajax/user_setting',\n\t\t\tname: name,\n\t\t\tvalue: value,\n\t\t};\n\n\t\t$.ajax( {\n\t\t\turl: acf.get( 'ajaxurl' ),\n\t\t\tdata: acf.prepareForAjax( ajaxData ),\n\t\t\ttype: 'post',\n\t\t\tdataType: 'html',\n\t\t} );\n\t};\n\n\t/**\n\t * acf.val\n\t *\n\t * description\n\t *\n\t * @date\t8/1/18\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.val = function ( $input, value, silent ) {\n\t\t// vars\n\t\tvar prevValue = $input.val();\n\n\t\t// bail if no change\n\t\tif ( value === prevValue ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// update value\n\t\t$input.val( value );\n\n\t\t// prevent select elements displaying blank value if option doesn't exist\n\t\tif ( $input.is( 'select' ) && $input.val() === null ) {\n\t\t\t$input.val( prevValue );\n\t\t\treturn false;\n\t\t}\n\n\t\t// update with trigger\n\t\tif ( silent !== true ) {\n\t\t\t$input.trigger( 'change' );\n\t\t}\n\n\t\t// return\n\t\treturn true;\n\t};\n\n\t/**\n\t * acf.show\n\t *\n\t * description\n\t *\n\t * @date\t9/2/18\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.show = function ( $el, lockKey ) {\n\t\t// unlock\n\t\tif ( lockKey ) {\n\t\t\tacf.unlock( $el, 'hidden', lockKey );\n\t\t}\n\n\t\t// bail early if $el is still locked\n\t\tif ( acf.isLocked( $el, 'hidden' ) ) {\n\t\t\t//console.log( 'still locked', getLocks( $el, 'hidden' ));\n\t\t\treturn false;\n\t\t}\n\n\t\t// $el is hidden, remove class and return true due to change in visibility\n\t\tif ( $el.hasClass( 'acf-hidden' ) ) {\n\t\t\t$el.removeClass( 'acf-hidden' );\n\t\t\treturn true;\n\n\t\t\t// $el is visible, return false due to no change in visibility\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\t/**\n\t * acf.hide\n\t *\n\t * description\n\t *\n\t * @date\t9/2/18\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.hide = function ( $el, lockKey ) {\n\t\t// lock\n\t\tif ( lockKey ) {\n\t\t\tacf.lock( $el, 'hidden', lockKey );\n\t\t}\n\n\t\t// $el is hidden, return false due to no change in visibility\n\t\tif ( $el.hasClass( 'acf-hidden' ) ) {\n\t\t\treturn false;\n\n\t\t\t// $el is visible, add class and return true due to change in visibility\n\t\t} else {\n\t\t\t$el.addClass( 'acf-hidden' );\n\t\t\treturn true;\n\t\t}\n\t};\n\n\t/**\n\t * acf.isHidden\n\t *\n\t * description\n\t *\n\t * @date\t9/2/18\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.isHidden = function ( $el ) {\n\t\treturn $el.hasClass( 'acf-hidden' );\n\t};\n\n\t/**\n\t * acf.isVisible\n\t *\n\t * description\n\t *\n\t * @date\t9/2/18\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.isVisible = function ( $el ) {\n\t\treturn ! acf.isHidden( $el );\n\t};\n\n\t/**\n\t * enable\n\t *\n\t * description\n\t *\n\t * @date\t12/3/18\n\t * @since\tACF 5.6.9\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tvar enable = function ( $el, lockKey ) {\n\t\t// check class. Allow .acf-disabled to overrule all JS\n\t\tif ( $el.hasClass( 'acf-disabled' ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// unlock\n\t\tif ( lockKey ) {\n\t\t\tacf.unlock( $el, 'disabled', lockKey );\n\t\t}\n\n\t\t// bail early if $el is still locked\n\t\tif ( acf.isLocked( $el, 'disabled' ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// $el is disabled, remove prop and return true due to change\n\t\tif ( $el.prop( 'disabled' ) ) {\n\t\t\t$el.prop( 'disabled', false );\n\t\t\treturn true;\n\n\t\t\t// $el is enabled, return false due to no change\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\t/**\n\t * acf.enable\n\t *\n\t * description\n\t *\n\t * @date\t9/2/18\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.enable = function ( $el, lockKey ) {\n\t\t// enable single input\n\t\tif ( $el.attr( 'name' ) ) {\n\t\t\treturn enable( $el, lockKey );\n\t\t}\n\n\t\t// find and enable child inputs\n\t\t// return true if any inputs have changed\n\t\tvar results = false;\n\t\t$el.find( '[name]' ).each( function () {\n\t\t\tvar result = enable( $( this ), lockKey );\n\t\t\tif ( result ) {\n\t\t\t\tresults = true;\n\t\t\t}\n\t\t} );\n\t\treturn results;\n\t};\n\n\t/**\n\t * disable\n\t *\n\t * description\n\t *\n\t * @date\t12/3/18\n\t * @since\tACF 5.6.9\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tvar disable = function ( $el, lockKey ) {\n\t\t// lock\n\t\tif ( lockKey ) {\n\t\t\tacf.lock( $el, 'disabled', lockKey );\n\t\t}\n\n\t\t// $el is disabled, return false due to no change\n\t\tif ( $el.prop( 'disabled' ) ) {\n\t\t\treturn false;\n\n\t\t\t// $el is enabled, add prop and return true due to change\n\t\t} else {\n\t\t\t$el.prop( 'disabled', true );\n\t\t\treturn true;\n\t\t}\n\t};\n\n\t/**\n\t * acf.disable\n\t *\n\t * description\n\t *\n\t * @date\t9/2/18\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.disable = function ( $el, lockKey ) {\n\t\t// disable single input\n\t\tif ( $el.attr( 'name' ) ) {\n\t\t\treturn disable( $el, lockKey );\n\t\t}\n\n\t\t// find and enable child inputs\n\t\t// return true if any inputs have changed\n\t\tvar results = false;\n\t\t$el.find( '[name]' ).each( function () {\n\t\t\tvar result = disable( $( this ), lockKey );\n\t\t\tif ( result ) {\n\t\t\t\tresults = true;\n\t\t\t}\n\t\t} );\n\t\treturn results;\n\t};\n\n\t/**\n\t * acf.isset\n\t *\n\t * description\n\t *\n\t * @date\t10/1/18\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.isset = function ( obj /*, level1, level2, ... */ ) {\n\t\tfor ( var i = 1; i < arguments.length; i++ ) {\n\t\t\tif ( ! obj || ! obj.hasOwnProperty( arguments[ i ] ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tobj = obj[ arguments[ i ] ];\n\t\t}\n\t\treturn true;\n\t};\n\n\t/**\n\t * acf.isget\n\t *\n\t * description\n\t *\n\t * @date\t10/1/18\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.isget = function ( obj /*, level1, level2, ... */ ) {\n\t\tfor ( var i = 1; i < arguments.length; i++ ) {\n\t\t\tif ( ! obj || ! obj.hasOwnProperty( arguments[ i ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tobj = obj[ arguments[ i ] ];\n\t\t}\n\t\treturn obj;\n\t};\n\n\t/**\n\t * acf.getFileInputData\n\t *\n\t * description\n\t *\n\t * @date\t10/1/18\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.getFileInputData = function ( $input, callback ) {\n\t\t// vars\n\t\tvar value = $input.val();\n\n\t\t// bail early if no value\n\t\tif ( ! value ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// data\n\t\tvar data = {\n\t\t\turl: value,\n\t\t};\n\n\t\t// modern browsers\n\t\tvar file = $input[ 0 ].files.length\n\t\t\t? acf.isget( $input[ 0 ].files, 0 )\n\t\t\t: false;\n\t\tif ( file ) {\n\t\t\t// update data\n\t\t\tdata.size = file.size;\n\t\t\tdata.type = file.type;\n\n\t\t\t// image\n\t\t\tif ( file.type.indexOf( 'image' ) > -1 ) {\n\t\t\t\t// vars\n\t\t\t\tvar windowURL = window.URL || window.webkitURL;\n\t\t\t\tvar img = new Image();\n\n\t\t\t\timg.onload = function () {\n\t\t\t\t\t// update\n\t\t\t\t\tdata.width = this.width;\n\t\t\t\t\tdata.height = this.height;\n\n\t\t\t\t\tcallback( data );\n\t\t\t\t};\n\t\t\t\timg.src = windowURL.createObjectURL( file );\n\t\t\t} else {\n\t\t\t\tcallback( data );\n\t\t\t}\n\t\t} else {\n\t\t\tcallback( data );\n\t\t}\n\t};\n\n\t/**\n\t * acf.isAjaxSuccess\n\t *\n\t * description\n\t *\n\t * @date\t18/1/18\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.isAjaxSuccess = function ( json ) {\n\t\treturn json && json.success;\n\t};\n\n\t/**\n\t * acf.getAjaxMessage\n\t *\n\t * description\n\t *\n\t * @date\t18/1/18\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.getAjaxMessage = function ( json ) {\n\t\treturn acf.isget( json, 'data', 'message' );\n\t};\n\n\t/**\n\t * acf.getAjaxError\n\t *\n\t * description\n\t *\n\t * @date\t18/1/18\n\t * @since\tACF 5.6.5\n\t *\n\t * @param\ttype $var Description. Default.\n\t * @return\ttype Description.\n\t */\n\n\tacf.getAjaxError = function ( json ) {\n\t\treturn acf.isget( json, 'data', 'error' );\n\t};\n\n\t/**\n\t * Returns the error message from an XHR object.\n\t *\n\t * @date\t17/3/20\n\t * @since\tACF 5.8.9\n\t *\n\t * @param\tobject xhr The XHR object.\n\t * @return\t(string)\n\t */\n\tacf.getXhrError = function ( xhr ) {\n\t\tif ( xhr.responseJSON ) {\n\t\t\t// Responses via `return new WP_Error();`\n\t\t\tif ( xhr.responseJSON.message ) {\n\t\t\t\treturn xhr.responseJSON.message;\n\t\t\t}\n\n\t\t\t// Responses via `wp_send_json_error();`.\n\t\t\tif ( xhr.responseJSON.data && xhr.responseJSON.data.error ) {\n\t\t\t\treturn xhr.responseJSON.data.error;\n\t\t\t}\n\t\t} else if ( xhr.statusText ) {\n\t\t\treturn xhr.statusText;\n\t\t}\n\n\t\treturn '';\n\t};\n\n\t/**\n\t * acf.renderSelect\n\t *\n\t * Renders the inner html for a select field.\n\t *\n\t * @date\t19/2/18\n\t * @since\tACF 5.6.9\n\t *\n\t * @param\tjQuery $select The select element.\n\t * @param\tarray choices An array of choices.\n\t * @return\tvoid\n\t */\n\n\tacf.renderSelect = function ( $select, choices ) {\n\t\t// vars\n\t\tvar value = $select.val();\n\t\tvar values = [];\n\n\t\t// callback\n\t\tvar crawl = function ( items ) {\n\t\t\t// vars\n\t\t\tvar itemsHtml = '';\n\n\t\t\t// loop\n\t\t\titems.map( function ( item ) {\n\t\t\t\t// vars\n\t\t\t\tvar text = item.text || item.label || '';\n\t\t\t\tvar id = item.id || item.value || '';\n\n\t\t\t\t// append\n\t\t\t\tvalues.push( id );\n\n\t\t\t\t// optgroup\n\t\t\t\tif ( item.children ) {\n\t\t\t\t\titemsHtml +=\n\t\t\t\t\t\t'<optgroup label=\"' +\n\t\t\t\t\t\tacf.escAttr( text ) +\n\t\t\t\t\t\t'\">' +\n\t\t\t\t\t\tcrawl( item.children ) +\n\t\t\t\t\t\t'</optgroup>';\n\n\t\t\t\t\t// option\n\t\t\t\t} else {\n\t\t\t\t\titemsHtml +=\n\t\t\t\t\t\t'<option value=\"' +\n\t\t\t\t\t\tacf.escAttr( id ) +\n\t\t\t\t\t\t'\"' +\n\t\t\t\t\t\t( item.disabled ? ' disabled=\"disabled\"' : '' ) +\n\t\t\t\t\t\t'>' +\n\t\t\t\t\t\tacf.strEscape( text ) +\n\t\t\t\t\t\t'</option>';\n\t\t\t\t}\n\t\t\t} );\n\t\t\t// return\n\t\t\treturn itemsHtml;\n\t\t};\n\n\t\t// update HTML\n\t\t$select.html( crawl( choices ) );\n\n\t\t// update value\n\t\tif ( values.indexOf( value ) > -1 ) {\n\t\t\t$select.val( value );\n\t\t}\n\n\t\t// return selected value\n\t\treturn $select.val();\n\t};\n\n\t/**\n\t * acf.lock\n\t *\n\t * Creates a \"lock\" on an element for a given type and key\n\t *\n\t * @date\t22/2/18\n\t * @since\tACF 5.6.9\n\t *\n\t * @param\tjQuery $el The element to lock.\n\t * @param\tstring type The type of lock such as \"condition\" or \"visibility\".\n\t * @param\tstring key The key that will be used to unlock.\n\t * @return\tvoid\n\t */\n\n\tvar getLocks = function ( $el, type ) {\n\t\treturn $el.data( 'acf-lock-' + type ) || [];\n\t};\n\n\tvar setLocks = function ( $el, type, locks ) {\n\t\t$el.data( 'acf-lock-' + type, locks );\n\t};\n\n\tacf.lock = function ( $el, type, key ) {\n\t\tvar locks = getLocks( $el, type );\n\t\tvar i = locks.indexOf( key );\n\t\tif ( i < 0 ) {\n\t\t\tlocks.push( key );\n\t\t\tsetLocks( $el, type, locks );\n\t\t}\n\t};\n\n\t/**\n\t * acf.unlock\n\t *\n\t * Unlocks a \"lock\" on an element for a given type and key\n\t *\n\t * @date\t22/2/18\n\t * @since\tACF 5.6.9\n\t *\n\t * @param\tjQuery $el The element to lock.\n\t * @param\tstring type The type of lock such as \"condition\" or \"visibility\".\n\t * @param\tstring key The key that will be used to unlock.\n\t * @return\tvoid\n\t */\n\n\tacf.unlock = function ( $el, type, key ) {\n\t\tvar locks = getLocks( $el, type );\n\t\tvar i = locks.indexOf( key );\n\t\tif ( i > -1 ) {\n\t\t\tlocks.splice( i, 1 );\n\t\t\tsetLocks( $el, type, locks );\n\t\t}\n\n\t\t// return true if is unlocked (no locks)\n\t\treturn locks.length === 0;\n\t};\n\n\t/**\n\t * acf.isLocked\n\t *\n\t * Returns true if a lock exists for a given type\n\t *\n\t * @date\t22/2/18\n\t * @since\tACF 5.6.9\n\t *\n\t * @param\tjQuery $el The element to lock.\n\t * @param\tstring type The type of lock such as \"condition\" or \"visibility\".\n\t * @return\tvoid\n\t */\n\n\tacf.isLocked = function ( $el, type ) {\n\t\treturn getLocks( $el, type ).length > 0;\n\t};\n\n\t/**\n\t * acf.isGutenberg\n\t *\n\t * Returns true if the Gutenberg editor is being used.\n\t *\n\t * @since\tACF 5.8.0\n\t *\n\t * @return\tbool\n\t */\n\tacf.isGutenberg = function () {\n\t\treturn !! (\n\t\t\twindow.wp &&\n\t\t\twp.data &&\n\t\t\twp.data.select &&\n\t\t\twp.data.select( 'core/editor' )\n\t\t);\n\t};\n\n\t/**\n\t * acf.isGutenbergPostEditor\n\t *\n\t * Returns true if the Gutenberg post editor is being used.\n\t *\n\t * @since\tACF 6.2.2\n\t *\n\t * @return\tbool\n\t */\n\tacf.isGutenbergPostEditor = function () {\n\t\treturn !! (\n\t\t\twindow.wp &&\n\t\t\twp.data &&\n\t\t\twp.data.select &&\n\t\t\twp.data.select( 'core/edit-post' )\n\t\t);\n\t};\n\n\t/**\n\t * acf.objectToArray\n\t *\n\t * Returns an array of items from the given object.\n\t *\n\t * @date\t20/11/18\n\t * @since\tACF 5.8.0\n\t *\n\t * @param\tobject obj The object of items.\n\t * @return\tarray\n\t */\n\tacf.objectToArray = function ( obj ) {\n\t\treturn Object.keys( obj ).map( function ( key ) {\n\t\t\treturn obj[ key ];\n\t\t} );\n\t};\n\n\t/**\n\t * acf.debounce\n\t *\n\t * Returns a debounced version of the passed function which will postpone its execution until after `wait` milliseconds have elapsed since the last time it was invoked.\n\t *\n\t * @date\t28/8/19\n\t * @since\tACF 5.8.1\n\t *\n\t * @param\tfunction callback The callback function.\n\t * @return\tint wait The number of milliseconds to wait.\n\t */\n\tacf.debounce = function ( callback, wait ) {\n\t\tvar timeout;\n\t\treturn function () {\n\t\t\tvar context = this;\n\t\t\tvar args = arguments;\n\t\t\tvar later = function () {\n\t\t\t\tcallback.apply( context, args );\n\t\t\t};\n\t\t\tclearTimeout( timeout );\n\t\t\ttimeout = setTimeout( later, wait );\n\t\t};\n\t};\n\n\t/**\n\t * acf.throttle\n\t *\n\t * Returns a throttled version of the passed function which will allow only one execution per `limit` time period.\n\t *\n\t * @date\t28/8/19\n\t * @since\tACF 5.8.1\n\t *\n\t * @param\tfunction callback The callback function.\n\t * @return\tint wait The number of milliseconds to wait.\n\t */\n\tacf.throttle = function ( callback, limit ) {\n\t\tvar busy = false;\n\t\treturn function () {\n\t\t\tif ( busy ) return;\n\t\t\tbusy = true;\n\t\t\tsetTimeout( function () {\n\t\t\t\tbusy = false;\n\t\t\t}, limit );\n\t\t\tcallback.apply( this, arguments );\n\t\t};\n\t};\n\n\t/**\n\t * acf.isInView\n\t *\n\t * Returns true if the given element is in view.\n\t *\n\t * @date\t29/8/19\n\t * @since\tACF 5.8.1\n\t *\n\t * @param\telem el The dom element to inspect.\n\t * @return\tbool\n\t */\n\tacf.isInView = function ( el ) {\n\t\tif ( el instanceof jQuery ) {\n\t\t\tel = el[ 0 ];\n\t\t}\n\t\tvar rect = el.getBoundingClientRect();\n\t\treturn (\n\t\t\trect.top !== rect.bottom &&\n\t\t\trect.top >= 0 &&\n\t\t\trect.left >= 0 &&\n\t\t\trect.bottom <=\n\t\t\t\t( window.innerHeight ||\n\t\t\t\t\tdocument.documentElement.clientHeight ) &&\n\t\t\trect.right <=\n\t\t\t\t( window.innerWidth || document.documentElement.clientWidth )\n\t\t);\n\t};\n\n\t/**\n\t * acf.onceInView\n\t *\n\t * Watches for a dom element to become visible in the browser and then executes the passed callback.\n\t *\n\t * @date\t28/8/19\n\t * @since\tACF 5.8.1\n\t *\n\t * @param\tdom el The dom element to inspect.\n\t * @param\tfunction callback The callback function.\n\t */\n\tacf.onceInView = ( function () {\n\t\t// Define list.\n\t\tvar items = [];\n\t\tvar id = 0;\n\n\t\t// Define check function.\n\t\tvar check = function () {\n\t\t\titems.forEach( function ( item ) {\n\t\t\t\tif ( acf.isInView( item.el ) ) {\n\t\t\t\t\titem.callback.apply( this );\n\t\t\t\t\tpop( item.id );\n\t\t\t\t}\n\t\t\t} );\n\t\t};\n\n\t\t// And create a debounced version.\n\t\tvar debounced = acf.debounce( check, 300 );\n\n\t\t// Define add function.\n\t\tvar push = function ( el, callback ) {\n\t\t\t// Add event listener.\n\t\t\tif ( ! items.length ) {\n\t\t\t\t$( window )\n\t\t\t\t\t.on( 'scroll resize', debounced )\n\t\t\t\t\t.on( 'acfrefresh orientationchange', check );\n\t\t\t}\n\n\t\t\t// Append to list.\n\t\t\titems.push( { id: id++, el: el, callback: callback } );\n\t\t};\n\n\t\t// Define remove function.\n\t\tvar pop = function ( id ) {\n\t\t\t// Remove from list.\n\t\t\titems = items.filter( function ( item ) {\n\t\t\t\treturn item.id !== id;\n\t\t\t} );\n\n\t\t\t// Clean up listener.\n\t\t\tif ( ! items.length ) {\n\t\t\t\t$( window )\n\t\t\t\t\t.off( 'scroll resize', debounced )\n\t\t\t\t\t.off( 'acfrefresh orientationchange', check );\n\t\t\t}\n\t\t};\n\n\t\t// Define returned function.\n\t\treturn function ( el, callback ) {\n\t\t\t// Allow jQuery object.\n\t\t\tif ( el instanceof jQuery ) el = el[ 0 ];\n\n\t\t\t// Execute callback if already in view or add to watch list.\n\t\t\tif ( acf.isInView( el ) ) {\n\t\t\t\tcallback.apply( this );\n\t\t\t} else {\n\t\t\t\tpush( el, callback );\n\t\t\t}\n\t\t};\n\t} )();\n\n\t/**\n\t * acf.once\n\t *\n\t * Creates a function that is restricted to invoking `func` once.\n\t *\n\t * @date\t2/9/19\n\t * @since\tACF 5.8.1\n\t *\n\t * @param\tfunction func The function to restrict.\n\t * @return\tfunction\n\t */\n\tacf.once = function ( func ) {\n\t\tvar i = 0;\n\t\treturn function () {\n\t\t\tif ( i++ > 0 ) {\n\t\t\t\treturn ( func = undefined );\n\t\t\t}\n\t\t\treturn func.apply( this, arguments );\n\t\t};\n\t};\n\n\t/**\n\t * Focuses attention to a specific element.\n\t *\n\t * @date\t05/05/2020\n\t * @since\tACF 5.9.0\n\t *\n\t * @param\tjQuery $el The jQuery element to focus.\n\t * @return\tvoid\n\t */\n\tacf.focusAttention = function ( $el ) {\n\t\tvar wait = 1000;\n\n\t\t// Apply class to focus attention.\n\t\t$el.addClass( 'acf-attention -focused' );\n\n\t\t// Scroll to element if needed.\n\t\tvar scrollTime = 500;\n\t\tif ( ! acf.isInView( $el ) ) {\n\t\t\t$( 'body, html' ).animate(\n\t\t\t\t{\n\t\t\t\t\tscrollTop: $el.offset().top - $( window ).height() / 2,\n\t\t\t\t},\n\t\t\t\tscrollTime\n\t\t\t);\n\t\t\twait += scrollTime;\n\t\t}\n\n\t\t// Remove class after $wait amount of time.\n\t\tvar fadeTime = 250;\n\t\tsetTimeout( function () {\n\t\t\t$el.removeClass( '-focused' );\n\t\t\tsetTimeout( function () {\n\t\t\t\t$el.removeClass( 'acf-attention' );\n\t\t\t}, fadeTime );\n\t\t}, wait );\n\t};\n\n\t/**\n\t * Description\n\t *\n\t * @date\t05/05/2020\n\t * @since\tACF 5.9.0\n\t *\n\t * @param\ttype Var Description.\n\t * @return\ttype Description.\n\t */\n\tacf.onFocus = function ( $el, callback ) {\n\t\t// Only run once per element.\n\t\t// if( $el.data('acf.onFocus') ) {\n\t\t// \treturn false;\n\t\t// }\n\n\t\t// Vars.\n\t\tvar ignoreBlur = false;\n\t\tvar focus = false;\n\n\t\t// Functions.\n\t\tvar onFocus = function () {\n\t\t\tignoreBlur = true;\n\t\t\tsetTimeout( function () {\n\t\t\t\tignoreBlur = false;\n\t\t\t}, 1 );\n\t\t\tsetFocus( true );\n\t\t};\n\t\tvar onBlur = function () {\n\t\t\tif ( ! ignoreBlur ) {\n\t\t\t\tsetFocus( false );\n\t\t\t}\n\t\t};\n\t\tvar addEvents = function () {\n\t\t\t$( document ).on( 'click', onBlur );\n\t\t\t//$el.on('acfBlur', onBlur);\n\t\t\t$el.on( 'blur', 'input, select, textarea', onBlur );\n\t\t};\n\t\tvar removeEvents = function () {\n\t\t\t$( document ).off( 'click', onBlur );\n\t\t\t//$el.off('acfBlur', onBlur);\n\t\t\t$el.off( 'blur', 'input, select, textarea', onBlur );\n\t\t};\n\t\tvar setFocus = function ( value ) {\n\t\t\tif ( focus === value ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( value ) {\n\t\t\t\taddEvents();\n\t\t\t} else {\n\t\t\t\tremoveEvents();\n\t\t\t}\n\t\t\tfocus = value;\n\t\t\tcallback( value );\n\t\t};\n\n\t\t// Add events and set data.\n\t\t$el.on( 'click', onFocus );\n\t\t//$el.on('acfFocus', onFocus);\n\t\t$el.on( 'focus', 'input, select, textarea', onFocus );\n\t\t//$el.data('acf.onFocus', true);\n\t};\n\n\t/**\n\t * Disable form submit buttons\n\t *\n\t * @since ACF 6.2.3\n\t *\n\t * @param event e\n\t * @returns void\n\t */\n\tacf.disableForm = function ( e ) {\n\t\t// Disable submit button.\n\t\tif ( e.submitter ) e.submitter.classList.add( 'disabled' );\n\t};\n\n\t/*\n\t * exists\n\t *\n\t * This function will return true if a jQuery selection exists\n\t *\n\t * @type\tfunction\n\t * @date\t8/09/2014\n\t * @since\tACF 5.0.0\n\t *\n\t * @param\tn/a\n\t * @return\t(boolean)\n\t */\n\n\t$.fn.exists = function () {\n\t\treturn $( this ).length > 0;\n\t};\n\n\t/*\n\t * outerHTML\n\t *\n\t * This function will return a string containing the HTML of the selected element\n\t *\n\t * @type\tfunction\n\t * @date\t19/11/2013\n\t * @since\tACF 5.0.0\n\t *\n\t * @param\t$.fn\n\t * @return\t(string)\n\t */\n\n\t$.fn.outerHTML = function () {\n\t\treturn $( this ).get( 0 ).outerHTML;\n\t};\n\n\t/*\n\t * indexOf\n\t *\n\t * This function will provide compatibility for ie8\n\t *\n\t * @type\tfunction\n\t * @date\t5/3/17\n\t * @since\tACF 5.5.10\n\t *\n\t * @param\tn/a\n\t * @return\tn/a\n\t */\n\n\tif ( ! Array.prototype.indexOf ) {\n\t\tArray.prototype.indexOf = function ( val ) {\n\t\t\treturn $.inArray( val, this );\n\t\t};\n\t}\n\n\t/**\n\t * Returns true if value is a number or a numeric string.\n\t *\n\t * @date\t30/11/20\n\t * @since\tACF 5.9.4\n\t * @link\thttps://stackoverflow.com/questions/9716468/pure-javascript-a-function-like-jquerys-isnumeric/9716488#9716488\n\t *\n\t * @param\tmixed n The variable being evaluated.\n\t * @return\tbool.\n\t */\n\tacf.isNumeric = function ( n ) {\n\t\treturn ! isNaN( parseFloat( n ) ) && isFinite( n );\n\t};\n\n\t/**\n\t * Triggers a \"refresh\" action used by various Components to redraw the DOM.\n\t *\n\t * @date\t26/05/2020\n\t * @since\tACF 5.9.0\n\t *\n\t * @param\tvoid\n\t * @return\tvoid\n\t */\n\tacf.refresh = acf.debounce( function () {\n\t\t$( window ).trigger( 'acfrefresh' );\n\t\tacf.doAction( 'refresh' );\n\t}, 0 );\n\n\t/**\n\t * Log something to console if we're in debug mode.\n\t *\n\t * @since ACF 6.3\n\t */\n\tacf.debug = function () {\n\t\tif ( acf.get( 'debug' ) ) console.log.apply( null, arguments );\n\t};\n\n\t// Set up actions from events\n\t$( document ).ready( function () {\n\t\tacf.doAction( 'ready' );\n\t} );\n\n\t$( window ).on( 'load', function () {\n\t\t// Use timeout to ensure action runs after Gutenberg has modified DOM elements during \"DOMContentLoaded\".\n\t\tsetTimeout( function () {\n\t\t\tacf.doAction( 'load' );\n\t\t} );\n\t} );\n\n\t$( window ).on( 'beforeunload', function () {\n\t\tacf.doAction( 'unload' );\n\t} );\n\n\t$( window ).on( 'resize', function () {\n\t\tacf.doAction( 'resize' );\n\t} );\n\n\t$( document ).on( 'sortstart', function ( event, ui ) {\n\t\tacf.doAction( 'sortstart', ui.item, ui.placeholder );\n\t} );\n\n\t$( document ).on( 'sortstop', function ( event, ui ) {\n\t\tacf.doAction( 'sortstop', ui.item, ui.placeholder );\n\t} );\n} )( jQuery );\n","/*! @license DOMPurify 3.3.0 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.0/LICENSE */\n\n'use strict';\n\nconst {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor\n} = Object;\nlet {\n freeze,\n seal,\n create\n} = Object; // eslint-disable-line import/no-mutable-exports\nlet {\n apply,\n construct\n} = typeof Reflect !== 'undefined' && Reflect;\nif (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n}\nif (!seal) {\n seal = function seal(x) {\n return x;\n };\n}\nif (!apply) {\n apply = function apply(func, thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n return func.apply(thisArg, args);\n };\n}\nif (!construct) {\n construct = function construct(Func) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n return new Func(...args);\n };\n}\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nconst arraySplice = unapply(Array.prototype.splice);\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\nconst objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\nconst regExpTest = unapply(RegExp.prototype.test);\nconst typeErrorCreate = unconstruct(TypeError);\n/**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param func - The function to be wrapped and called.\n * @returns A new function that calls the given function with a specified thisArg and arguments.\n */\nfunction unapply(func) {\n return function (thisArg) {\n if (thisArg instanceof RegExp) {\n thisArg.lastIndex = 0;\n }\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n return apply(func, thisArg, args);\n };\n}\n/**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param func - The constructor function to be wrapped and called.\n * @returns A new function that constructs an instance of the given constructor function with the provided arguments.\n */\nfunction unconstruct(Func) {\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return construct(Func, args);\n };\n}\n/**\n * Add properties to a lookup table\n *\n * @param set - The set to which elements will be added.\n * @param array - The array containing elements to be added to the set.\n * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns The modified set with added elements.\n */\nfunction addToSet(set, array) {\n let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n}\n/**\n * Clean up an array to harden against CSPP\n *\n * @param array - The array to be cleaned.\n * @returns The cleaned version of the array\n */\nfunction cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n return array;\n}\n/**\n * Shallow clone an object\n *\n * @param object - The object to be cloned.\n * @returns A new object that copies the original.\n */\nfunction clone(object) {\n const newObject = create(null);\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n if (isPropertyExist) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (value && typeof value === 'object' && value.constructor === Object) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n return newObject;\n}\n/**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param object - The object to look up the getter function in its prototype chain.\n * @param prop - The property name for which to find the getter function.\n * @returns The getter function found in the prototype chain or a fallback function.\n */\nfunction lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue() {\n return null;\n }\n return fallbackValue;\n}\n\nconst html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'search', 'section', 'select', 'shadow', 'slot', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\nconst svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'enterkeyhint', 'exportparts', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'inputmode', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'part', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\nconst svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n// List of SVG elements that are disallowed by default.\n// We still need to know them so that we can do namespace\n// checks properly in case one wants to add them to\n// allow-list.\nconst svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\nconst mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n// Similarly to SVG, we want to know all MathML elements,\n// even those that we disallow by default.\nconst mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\nconst text = freeze(['#text']);\n\nconst html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'exportparts', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inert', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'part', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);\nconst svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'mask-type', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\nconst mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\nconst xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n// eslint-disable-next-line unicorn/better-regex\nconst MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nconst ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\nconst TMPLIT_EXPR = seal(/\\$\\{[\\w\\W]*/gm); // eslint-disable-line unicorn/better-regex\nconst DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/); // eslint-disable-line no-useless-escape\nconst ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nconst IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n);\nconst IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nconst ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nconst DOCTYPE_NAME = seal(/^html$/i);\nconst CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\nvar EXPRESSIONS = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ARIA_ATTR: ARIA_ATTR,\n ATTR_WHITESPACE: ATTR_WHITESPACE,\n CUSTOM_ELEMENT: CUSTOM_ELEMENT,\n DATA_ATTR: DATA_ATTR,\n DOCTYPE_NAME: DOCTYPE_NAME,\n ERB_EXPR: ERB_EXPR,\n IS_ALLOWED_URI: IS_ALLOWED_URI,\n IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n MUSTACHE_EXPR: MUSTACHE_EXPR,\n TMPLIT_EXPR: TMPLIT_EXPR\n});\n\n/* eslint-disable @typescript-eslint/indent */\n// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\nconst NODE_TYPE = {\n element: 1,\n attribute: 2,\n text: 3,\n cdataSection: 4,\n entityReference: 5,\n // Deprecated\n entityNode: 6,\n // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9,\n documentType: 10,\n documentFragment: 11,\n notation: 12 // Deprecated\n};\nconst getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n};\n/**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param trustedTypes The policy factory.\n * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\nconst _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n};\nconst _createHooksMap = function _createHooksMap() {\n return {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: []\n };\n};\nfunction createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n DOMPurify.version = '3.3.0';\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n let {\n document\n } = window;\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes\n } = window;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n let trustedTypesPolicy;\n let emptyHTML = '';\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName\n } = document;\n const {\n importNode\n } = originalDocument;\n let hooks = _createHooksMap();\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT\n } = EXPRESSIONS;\n let {\n IS_ALLOWED_URI: IS_ALLOWED_URI$1\n } = EXPRESSIONS;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n /*\n * Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n /* Config object to store ADD_TAGS/ADD_ATTR functions (when used as functions) */\n const EXTRA_ELEMENT_HANDLING = Object.seal(create(null, {\n tagCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n }\n }));\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n /* Decide if document with <html>... should be returned */\n let WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n let HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n const formElement = document.createElement('form');\n const isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n /**\n * _parseConfig\n *\n * @param cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function _parseConfig() {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : clone({});\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : clone({});\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n MATHML_TEXT_INTEGRATION_POINTS = cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS;\n HTML_INTEGRATION_POINTS = cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, text);\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (typeof cfg.ADD_TAGS === 'function') {\n EXTRA_ELEMENT_HANDLING.tagCheck = cfg.ADD_TAGS;\n } else {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n }\n if (cfg.ADD_ATTR) {\n if (typeof cfg.ADD_ATTR === 'function') {\n EXTRA_ELEMENT_HANDLING.attributeCheck = cfg.ADD_ATTR;\n } else {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n }\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n }\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n }\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n }\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n /**\n * @param element a DOM element whose namespace is being checked\n * @returns Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function _checkValidNamespace(element) {\n let parent = getParentNode(element);\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via <svg>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either <annotation-xml> or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via <math>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n // The only way to switch from SVG to MathML is via\n // <math> and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n // For XHTML and XML documents that support custom namespaces\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n }\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n /**\n * _forceRemove\n *\n * @param node a DOM node\n */\n const _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n getParentNode(node).removeChild(node);\n } catch (_) {\n remove(node);\n }\n };\n /**\n * _removeAttribute\n *\n * @param name an Attribute name\n * @param element a DOM node\n */\n const _removeAttribute = function _removeAttribute(name, element) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: element.getAttributeNode(name),\n from: element\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: element\n });\n }\n element.removeAttribute(name);\n // We void attribute values for unremovable \"is\" attributes\n if (name === 'is') {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(element);\n } catch (_) {}\n } else {\n try {\n element.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _initDocument\n *\n * @param dirty - a string of dirty markup\n * @return a DOM, filled with the dirty markup\n */\n const _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n }\n const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n const body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param root The root element or node to start traversing on.\n * @return The created NodeIterator\n */\n const _createNodeIterator = function _createNodeIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n };\n /**\n * _isClobbered\n *\n * @param element element to check for clobbering attacks\n * @return true if clobbered, false if safe\n */\n const _isClobbered = function _isClobbered(element) {\n return element instanceof HTMLFormElement && (typeof element.nodeName !== 'string' || typeof element.textContent !== 'string' || typeof element.removeChild !== 'function' || !(element.attributes instanceof NamedNodeMap) || typeof element.removeAttribute !== 'function' || typeof element.setAttribute !== 'function' || typeof element.namespaceURI !== 'string' || typeof element.insertBefore !== 'function' || typeof element.hasChildNodes !== 'function');\n };\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param value object to check whether it's a DOM node\n * @return true is object is a DOM node\n */\n const _isNode = function _isNode(value) {\n return typeof Node === 'function' && value instanceof Node;\n };\n function _executeHooks(hooks, currentNode, data) {\n arrayForEach(hooks, hook => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n }\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n * @param currentNode to check for permission to exist\n * @return true if node was killed, false if left alive\n */\n const _sanitizeElements = function _sanitizeElements(currentNode) {\n let content = null;\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeElements, currentNode, null);\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeElement, currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS\n });\n /* Detect mXSS attempts abusing namespace confusion */\n if (SAFE_FOR_XML && currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w!]/g, currentNode.innerHTML) && regExpTest(/<[/\\w!]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any occurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any kind of possibly harmful comments */\n if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\\w]/g, currentNode.data)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove element if anything forbids its presence */\n if (!(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName])) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n return false;\n }\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n return false;\n }\n }\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n _forceRemove(currentNode);\n return true;\n }\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n content = stringReplace(content, expr, ' ');\n });\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeElements, currentNode, null);\n return false;\n };\n /**\n * _isValidAttribute\n *\n * @param lcTag Lowercase tag name of containing element.\n * @param lcName Lowercase attribute name.\n * @param value Attribute value.\n * @return Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (EXTRA_ELEMENT_HANDLING.attributeCheck instanceof Function && EXTRA_ELEMENT_HANDLING.attributeCheck(lcName, lcTag)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName, lcTag)) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {\n return false;\n } else ;\n return true;\n };\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param tagName name of the tag of the node to sanitize\n * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n };\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param currentNode to sanitize\n */\n const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);\n const {\n attributes\n } = currentNode;\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes || _isClobbered(currentNode)) {\n return;\n }\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n forceKeepAttr: undefined\n };\n let l = attributes.length;\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const {\n name,\n namespaceURI,\n value: attrValue\n } = attr;\n const lcName = transformCaseFunc(name);\n const initValue = attrValue;\n let value = name === 'value' ? initValue : stringTrim(initValue);\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|title|textarea)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Make sure we cannot easily use animated hrefs, even if animations are allowed */\n if (lcName === 'attributename' && stringMatch(value, 'href')) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n value = stringReplace(value, expr, ' ');\n });\n }\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Handle attributes that require Trusted Types */\n if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n case 'TrustedScriptURL':\n {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n }\n /* Handle invalid data-* attribute set by try-catching it */\n if (value !== initValue) {\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {\n _removeAttribute(name, currentNode);\n }\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);\n };\n /**\n * _sanitizeShadowDOM\n *\n * @param fragment to iterate over recursively\n */\n const _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);\n /* Sanitize tags and elements */\n _sanitizeElements(shadowNode);\n /* Check attributes next */\n _sanitizeAttributes(shadowNode);\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);\n };\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty) {\n let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '<!-->';\n }\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n /* Clean up removed elements */\n DOMPurify.removed = [];\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!---->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Sanitize tags and elements */\n _sanitizeElements(currentNode);\n /* Check attributes next */\n _sanitizeAttributes(currentNode);\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n }\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\n' + serializedHTML;\n }\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n DOMPurify.setConfig = function () {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n arrayPush(hooks[entryPoint], hookFunction);\n };\n DOMPurify.removeHook = function (entryPoint, hookFunction) {\n if (hookFunction !== undefined) {\n const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);\n return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0];\n }\n return arrayPop(hooks[entryPoint]);\n };\n DOMPurify.removeHooks = function (entryPoint) {\n hooks[entryPoint] = [];\n };\n DOMPurify.removeAllHooks = function () {\n hooks = _createHooksMap();\n };\n return DOMPurify;\n}\nvar purify = createDOMPurify();\n\nmodule.exports = purify;\n//# sourceMappingURL=purify.cjs.js.map\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import './_acf.js';\nimport './_acf-hooks.js';\nimport './_acf-model.js';\nimport './_acf-popup.js';\nimport './_acf-modal.js';\nimport './_acf-panel.js';\nimport './_acf-notice.js';\nimport './_acf-tooltip.js';\n"],"names":["window","undefined","EventManager","MethodsAvailable","removeFilter","applyFilters","addFilter","removeAction","doAction","addAction","storage","getStorage","STORAGE","actions","filters","action","callback","priority","context","parseInt","_addHook","args","Array","prototype","slice","call","arguments","shift","_runHook","_removeHook","filter","type","hook","handlers","i","length","splice","handler","hookObject","hooks","push","_hookInsertSort","tmpHook","j","prevHook","len","apply","acf","$","models","Modal","Model","extend","data","title","content","toolbar","events","setup","props","$el","render","initialize","open","get","join","replaceWith","update","parseArgs","html","append","close","remove","onClickClose","e","preventDefault","focus","find","first","trigger","lockFocusToModal","locked","inertElement","inert","attr","returnFocusToOrigin","openedBy","closest","newModal","jQuery","delegateEventSplitter","protoProps","Parent","Child","hasOwnProperty","constructor","Object","create","cid","uniqueId","addEvents","addActions","addFilters","wait","didAction","id","busy","changed","eventScope","name","has","set","value","silent","prevValue","inherit","prop","addElements","elements","keys","addElement","selector","key","match","on","removeEvents","off","getEventTarget","event","document","validateEvent","target","is","proxyEvent","proxy","arrayArgs","extraArgs","eventArgs","currentTarget","concat","a1","a2","a3","a4","bubbles","triggerHandler","removeActions","removeFilters","setTimeout","milliseconds","time","console","timeEnd","show","hide","getInstance","getInstances","instances","each","Notice","text","timeout","dismiss","location","tmpl","escHtml","addClass","away","$target","prepend","prevType","removeClass","newNotice","noticeManager","$notices","dismissed","getPreference","includes","setPreference","panel","onClick","toggle","parent","isOpen","hasClass","Popup","width","height","loading","confirmRemove","keydown","lockFocusToPopup","__","css","$loading","onPressEscapeClose","PopupConfirm","textConfirm","textCancel","confirm","cancel","strEscape","self","onConfirm","stopPropagation","onCancel","newPopup","newTooltip","TooltipConfirm","Tooltip","position","fade","$tooltip","top","left","tolerance","targetWidth","outerWidth","targetHeight","outerHeight","targetTop","offset","targetLeft","tooltipWidth","tooltipHeight","tooltipTop","scrollTop","targetConfirm","$document","stopImmediatePropagation","tooltipHoverHelper","tooltip","showTitle","hideTitle","removeData","onKeyUp","idCounter","prefix","uniqueArray","array","onlyUnique","index","indexOf","uniqidSeed","uniqid","moreEntropy","retId","formatSeed","seed","reqWidth","toString","Math","floor","random","Date","getTime","toFixed","strReplace","search","replace","subject","split","strCamelCase","str","matches","map","s","c","charAt","toLowerCase","toUpperCase","strPascalCase","camel","strSlugify","strSanitize","À","Á","Â","Ã","Ä","Å","Æ","Ç","È","É","Ê","Ë","Ì","Í","Î","Ï","Ð","Ñ","Ò","Ó","Ô","Õ","Ö","Ø","Ù","Ú","Û","Ü","Ý","ß","à","á","â","ã","ä","å","æ","ç","è","é","ê","ë","ì","í","î","ï","ñ","ò","ó","ô","õ","ö","ø","ù","ú","û","ü","ý","ÿ","Ā","ā","Ă","ă","Ą","ą","Ć","ć","Ĉ","ĉ","Ċ","ċ","Č","č","Ď","ď","Đ","đ","Ē","ē","Ĕ","ĕ","Ė","ė","Ę","ę","Ě","ě","Ĝ","ĝ","Ğ","ğ","Ġ","ġ","Ģ","ģ","Ĥ","ĥ","Ħ","ħ","Ĩ","ĩ","Ī","ī","Ĭ","ĭ","Į","į","İ","ı","IJ","ij","Ĵ","ĵ","Ķ","ķ","Ĺ","ĺ","Ļ","ļ","Ľ","ľ","Ŀ","ŀ","Ł","ł","Ń","ń","Ņ","ņ","Ň","ň","ʼn","Ō","ō","Ŏ","ŏ","Ő","ő","Œ","œ","Ŕ","ŕ","Ŗ","ŗ","Ř","ř","Ś","ś","Ŝ","ŝ","Ş","ş","Š","š","Ţ","ţ","Ť","ť","Ŧ","ŧ","Ũ","ũ","Ū","ū","Ŭ","ŭ","Ů","ů","Ű","ű","Ų","ų","Ŵ","ŵ","Ŷ","ŷ","Ÿ","Ź","ź","Ż","ż","Ž","ž","ſ","ƒ","Ơ","ơ","Ư","ư","Ǎ","ǎ","Ǐ","ǐ","Ǒ","ǒ","Ǔ","ǔ","Ǖ","ǖ","Ǘ","ǘ","Ǚ","ǚ","Ǜ","ǜ","Ǻ","ǻ","Ǽ","ǽ","Ǿ","ǿ","nonWord","mapping","strMatch","s1","s2","val","min","string","htmlEscapes","chr","strUnescape","htmlUnescapes","entity","escAttr","DOMPurify","require","isSupported","warn","options","USE_PROFILES","ADD_TAGS","ADD_ATTR","FORBID_TAGS","FORBID_ATTR","ALLOW_DATA_ATTR","ALLOW_ARIA_ATTR","sanitize","encode","decode","defaults","acfL10n","_x","_n","single","plural","number","isArray","a","isObject","buildObject","obj","ref","String","serialize","inputs","serializeArray","item","hasOnlyNumericKeys","test","numericObjectToArray","arr","entries","k","n","sort","b","isFlexibleContentData","subvalue","acf_fc_layout","normalizeFlexibleContentData","result","subkey","serializeForAjax","actionHistory","doingAction","currentAction","preferences","JSON","parse","localStorage","getItem","getPreferenceName","substr","setItem","stringify","removePreference","endHeight","complete","removeTr","removeDiv","margin","style","wrap","$wrap","opacity","$tr","children","$td","duplicate","rename","before","after","$el2","clone","replacer","removeAttr","destructive","withReplacer","outerHTML","prepareForAjax","use_global_nonce","nonce","post_id","lang","startButtonLoading","stopButtonLoading","next","showLoading","hideLoading","updateUserSetting","ajaxData","ajax","url","dataType","$input","lockKey","unlock","isLocked","lock","isHidden","isVisible","enable","results","disable","isset","isget","getFileInputData","file","files","size","windowURL","URL","webkitURL","img","Image","onload","src","createObjectURL","isAjaxSuccess","json","success","getAjaxMessage","getAjaxError","getXhrError","xhr","responseJSON","message","error","statusText","renderSelect","$select","choices","values","crawl","items","itemsHtml","label","disabled","getLocks","setLocks","locks","isGutenberg","wp","select","isGutenbergPostEditor","objectToArray","debounce","later","clearTimeout","throttle","limit","isInView","el","rect","getBoundingClientRect","bottom","innerHeight","documentElement","clientHeight","right","innerWidth","clientWidth","onceInView","check","forEach","pop","debounced","once","func","focusAttention","scrollTime","animate","fadeTime","onFocus","ignoreBlur","setFocus","onBlur","disableForm","submitter","classList","add","fn","exists","inArray","isNumeric","isNaN","parseFloat","isFinite","refresh","debug","log","ready","ui","placeholder"],"sourceRoot":""}