{"version":3,"file":"js/jobOverview.js","mappings":";;;;;;;;;;;;;;AAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2CAA2C,qBAAqB;AAChE,EAAE;;AAEF;AACA;AACA,iDAAiD,sBAAsB;AACvE,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEO;AACP;;AAEA;AACA,6DAA6D,iCAAiC;;AAE9F;AACA;AACA,EAAE;AACF;;;;;;;;;;;;;;;;;;;ACrDA,CAA0C;AAC2B;;AAErE;AACA;AACA;AACA,gBAAgB,WAAW,IAAI,sBAAsB;AACrD;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEO;AACP;AACA,mBAAmB,sDAAU;;AAE7B;AACA;AACA;AACA;AACA,cAAc,MAAM,IAAI,UAAU;AAClC,EAAE;AACF;;AAEO;AACP,cAAc,sEAAc,CAAC,gEAAY;AACzC,kBAAkB,sEAAc,CAAC,gEAAY;AAC7C,gBAAgB,sEAAc,CAAC,gEAAY;;AAE3C,uCAAuC,UAAU,IAAI,OAAO;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACpDuD;AACiB;AACd;AACE;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,kEAAU,YAAY,GAAG,MAAM;;AAE3D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,kEAAU,qBAAqB;AACrC;AACA;AACA,kCAAkC,kEAAU;AAC5C,6DAA6D,OAAO;AACpE;AACA,EAAE;AACF;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,qDAAqD,2CAA2C;AAChG;AACA,EAAE;AACF;;AAEA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,aAAa;AACrC;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,mBAAmB;AAC3C;;AAEA;AACA;AACA,GAAG;AACH,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA,EAAE,yEAAuB;AACzB;AACA,GAAG;AACH,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA,GAAG,2EAAwB;AAC3B;;AAEA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE,yEAAiB;AACnB,EAAE,oEAAY;AACd;AACA;;AAEA;AACA,mDAAmD,oBAAoB;;AAEvE;AACA;AACA,EAAE;;AAEF;AACA;AACA,MAAM,kEAAU,iBAAiB;AACjC;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;;AAEO;AACP;;AAEA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;;;;;;;;;;;;;;;;ACvQA,CAAwD;;AAExD,2DAA2D,kEAAU,aAAa,IAAI,kEAAU,YAAY,GAAG,KAAK;;AAEpH;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;;;;;;;;;;;;;;;;AC5BO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACtBA,CAAwD;AACrB;AACoB;;AAEvD;AACA,mCAAmC,kEAAU,iBAAiB,GAAG,OAAO;AACxE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA,2CAA2C,oBAAoB;AAC/D,iCAAiC,kDAAe,CAAC,qBAAqB,SAAS,aAAa,UAAU;;AAEtG;AACA;;AAEA,OAAO,sEAAc;AACrB;;AAEO;AACP;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;AC/BA,CAA2C;AACO;AACgE;AACzD;;AAEzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA,2CAA2C,kEAAU,YAAY,GAAG,KAAK,IAAI,kEAAU,mBAAmB;AAC1G;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,yEAAiB;AACnB;AACA,EAAE,yEAAiB;;AAEnB;AACA,OAAO,uDAAI;AACX;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA,mDAAmD,SAAS,SAAS,kEAAU,0BAA0B;AACzG;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP,sBAAsB,sEAAkB;AACxC,mCAAmC,sEAAkB;AACrD,6BAA6B,wBAAwB;AACrD,uBAAuB,sEAAkB;AACzC,0BAA0B,sEAAkB;AAC5C;AACA;AACA;;AAEO;AACP,gBAAgB,uEAAe;;AAE/B,qBAAqB,sEAAkB;AACvC,mCAAmC,sEAAkB;AACrD;AACA,0BAA0B,sEAAkB;AAC5C,GAAG;AACH;AACA;;AAEO;AACP,sBAAsB,sEAAkB;AACxC;AACA,iDAAiD,sEAAkB;AACnE,oBAAoB,qBAAqB;AACzC,2BAA2B,sEAAkB;;AAE7C;AACA,GAAG;AACH;AACA;;AAEO;AACP,sBAAsB,sEAAkB;AACxC;AACA,mCAAmC,kEAAU,aAAa,IAAI,sEAAkB,SAAS;AACzF;AACA;;AAEA;AACA;;AAEO;AACP,0CAA0C,kEAAU,aAAa,IAAI,OAAO;;AAE5E;AACA;AACA,EAAE,iEAAS;AACX;AACA;;;;;;;;;;;;;;;;;;;;;;ACxGA,CAAkE;AACK;AACV;AACP;AACG;;AAElD;AACP;AACA;AACA;AACA;;AAEA,8DAA8D,kEAAU,aAAa,GAAG,MAAM;;AAE9F;AACA;AACA;;AAEA;AACA,EAAE,sFAAwB;AAC1B,EAAE,4EAAoB;AACtB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA,gDAAgD,kEAAU,qBAAqB;AAC/E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA,OAAO,uDAAI;AACX;;AAEA;AACA;;AAEA,CAAC,mEAAW;AACZ,CAAC,sFAAwB;AACzB,OAAO,uDAAI;AACX;;AAEA;AACA,OAAO,yDAAM;AACb;AACA,CAAC,kEAAe;AAChB;;AAEO;AACP,mDAAmD,kEAAU,iBAAiB,GAAG,MAAM;;AAEvF;AACA,2CAA2C,uBAAuB;AAClE,EAAE;;AAEF;;AAEA;AACA;;AAEA,kDAAkD,kEAAU,iBAAiB;AAC7E;AACA,iDAAiD,oBAAoB;AACrE,EAAE;;AAEF,mDAAmD,kEAAU,kBAAkB;AAC/E;AACA,iDAAiD,sBAAsB;AACvE,EAAE;;AAEF,qDAAqD,kEAAU,oBAAoB;AACnF;AACA,iDAAiD,uBAAuB;AACxE,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;AACF;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpIA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;AC9EA,CAA6C;AAKZ;AACsB;;AAEvD,8DAA8D,kEAAU,cAAc,IAAI,kEAAU,YAAY,GAAG,OAAO;;AAEnH;AACP,sBAAsB,iEAAa;AACnC,8BAA8B,iEAAa;AAC3C;AACA;AACA,GAAG;AACH;AACA;;AAEO;AACP,sBAAsB,iEAAa;AACnC,yCAAyC,iEAAa;AACtD;AACA;AACA;;AAEA;AACA;;AAEO;AACP;;AAEA;AACA;AACA;AACA,IAAI,sEAAc,CAAC,iEAAa;AAChC;AACA,IAAI,yEAAiB,CAAC,iEAAa;;AAEnC,SAAS,yDAAM;AACf,GAAG;AACH,EAAE;AACF;;AAEO;AACP,gBAAgB,uEAAe;AAC/B,sBAAsB,iEAAa;AACnC,8BAA8B,iEAAa;AAC3C;AACA,0BAA0B,iEAAa;AACvC,GAAG;AACH;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpDA,CAA2C;AACS;AAOnB;AACwB;;AAEzD;AACA;AACA,MAAM,kEAAU,aAAa,IAAI,kEAAU,YAAY,GAAG,OAAO;AACjE;AACA;;AAEA;AACA,mCAAmC,kEAAU,kBAAkB,GAAG,OAAO;AACzE;;AAEA;AACA,sCAAsC,kEAAU,kBAAkB;AAClE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,qBAAqB,yCAAyC;AAC9D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,iEAAa;AACnD,sCAAsC,iEAAa;AACnD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP,sBAAsB,iEAAa;AACnC,qCAAqC,iEAAa;AAClD;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA,yBAAyB,YAAY;AACrC;AACA;AACA,+BAA+B,YAAY;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,EAAE;AACF;;AAEO;AACP;AACA;;AAEA;AACA;AACA;;AAEO;AACP,wCAAwC,gEAAY;AACpD;AACA,EAAE,sEAAc,CAAC,gEAAY;;AAE7B,MAAM,yEAAiB,CAAC,gEAAY;;AAEpC,iCAAiC,gEAAY;AAC7C,+BAA+B,gEAAY;;AAE3C;AACA,EAAE,sEAAc,CAAC,gEAAY;AAC7B,EAAE,sEAAc,CAAC,gEAAY;AAC7B,GAAG;AACH,EAAE,yEAAiB,CAAC,gEAAY;AAChC,EAAE,yEAAiB,CAAC,gEAAY;AAChC;AACA;;AAEO;AACP,sBAAsB,iEAAa;AACnC,+BAA+B,iEAAa;AAC5C;AACA;AACA,qBAAqB,iEAAa,WAAW,iEAAa;;AAE1D;AACA,SAAS,uDAAI;AACb,GAAG;AACH;AACA;;AAEO;AACP,CAAC,iEAAS;AACV;AACA;AACA;AACA;;AAEO;AACP,gBAAgB,uEAAe;AAC/B,6BAA6B,iEAAa;AAC1C,6BAA6B,iEAAa;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG,sEAAc;AACjB,GAAG;AACH,GAAG;AACH,8BAA8B,yEAAiB;AAC/C;AACA;;AAEO;AACP,gBAAgB,uEAAe;AAC/B,sBAAsB,gEAAY;AAClC,+BAA+B,gEAAY;AAC3C,iBAAiB,gEAAY;AAC7B,4BAA4B,gEAAY;AACxC,IAAI;AACJ;AACA;AACA;AACA;;AAEO;AACP,gBAAgB,uEAAe;AAC/B,sBAAsB,iEAAa;AACnC,+BAA+B,iEAAa;AAC5C,iBAAiB,iEAAa;AAC9B,4BAA4B,iEAAa;AACzC;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpNuC;AACa;AACwD;AAW3E;AACyB;AACY;AACnC;AASF;AACsB;AACD;;;AAG/C;AACP,CAAC,kFAA0B;;AAE3B;;AAEA,CAAC,sEAAc,CAAC,gEAAY;AAC5B,CAAC,sEAAc,CAAC,gEAAY;AAC5B,CAAC,sEAAc,CAAC,gEAAY;AAC5B,CAAC,qFAA0B,CAAC,gEAAY;;AAExC,qBAAqB,0DAAM;AAC3B,EAAE,iEAAS,CAAC,0DAAM;;AAElB,CAAC,kFAAoB,CAAC,sEAAkB,SAAS,sEAAkB;AACnE,CAAC,kFAAoB,CAAC,sEAAkB;AACxC,CAAC,oEAAW,CAAC,iEAAa;;AAE1B,CAAC,wEAAgB;;AAEjB;;AAEA;;AAEA;;AAEA;AACA;;AAEA,CAAC,mEAAW;AACZ,CAAC,qEAAkB;AACnB;;AAEA;AACA,CAAC,yEAAgB;AACjB,sBAAsB,sEAAkB;AACxC,EAAE,oFAAsB,CAAC,sEAAkB;AAC3C;;AAEA;AACA;AACA,EAAE,oEAAW;AACb,EAAE,6EAAoB;AACtB,EAAE,4EAAoB;AACtB,EAAE,sFAAwB;AAC1B,EAAE,iFAAyB;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE,wEAAgB;AAClB,EAAE,qEAAkB;AACpB;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,IAAI,wEAAgB;AACpB,IAAI,qEAAkB;AACtB;AACA;AACA,GAAG;AACH,EAAE;AACF;;AAEA;AACA,iDAAiD,WAAW;AAC5D;AACA,EAAE,oEAAY;;AAEd;AACA,EAAE,oFAAsB;AACxB,EAAE,0EAAiB;AACnB,EAAE,yEAAiB;;AAEnB;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEO;AACP;AACA,cAAc,oEAAY;AAC1B;AACA;;AAEA,QAAQ,mEAAgB;AACxB;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEO;AACP,CAAC,oEAAW;AACZ,CAAC,sFAAwB;AACzB;AACA;;AAEA;AACA,iCAAiC,kDAAe,CAAC,oBAAoB,uEAAe,cAAc;;AAElG;AACA;;AAEA;;AAEA;AACA,CAAC,qFAAuB;AACxB;AACA;;AAEA;AACA;;AAEA,KAAK,sEAAc,MAAM,mFAAqB,MAAM,qEAAY;AAChE;AACA;AACA;AACA;;AAEA;AACA,8CAA8C,kEAAU,iBAAiB;AACzE,oDAAoD,kEAAU,wBAAwB;AACtF,sDAAsD,kEAAU,0BAA0B;;AAE1F;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA,+CAA+C,kEAAU,qBAAqB;AAC9E;AACA;AACA;AACA;AACA;;AAEO;AACP,+CAA+C,kEAAU,qBAAqB;;AAE9E;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,gDAAgD,kEAAU,qBAAqB;;AAE/E;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;;;;;;;;;;;;;;;;;ACtPqE;AAC3B;;AAEnC;AACP;;AAEA;AACA;AACA;AACA,GAAG,sEAAc,CAAC,8DAAU;AAC5B,SAAS,yDAAM;AACf,GAAG;AACH,EAAE;AACF;;;;;;;;;;;;;;;;;;ACbiE;AAC9B;AACW;;AAE9C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC,iFAA0B;AAC3B,CAAC,6DAAiB;AAClB;;AAEA;AACO;AACP;AACA;AACA;;AAEA;AACA,kCAAkC,kDAAe,CAAC,kBAAkB,uBAAuB;AAC3F;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACrCA,CAAQ;AACR;AACA;AACA;;;;;;;;;;;;;;;;;UCHA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;ACNuE;AACJ;AACf;AACe;AACnE,gCAAgC;AAChC;AACA,CAAC,oEAAiB;AAClB,CAAC,gFAA0B;AAC3B,CAAC,6DAAiB;AAClB,CAAC,8DAAkB;AACnB,CAAC,iEAAiB;AAClB,CAAC,mEAAgB;AACjB;;AAEA","sources":["webpack://client-vacancy/./scripts/captcha-handler.js","webpack://client-vacancy/./scripts/generic-popup.js","webpack://client-vacancy/./scripts/google-analytics.js","webpack://client-vacancy/./scripts/job-alert.js","webpack://client-vacancy/./scripts/overview-filter-badge.js","webpack://client-vacancy/./scripts/overview-filter-constants.js","webpack://client-vacancy/./scripts/overview-filter-location.js","webpack://client-vacancy/./scripts/overview-filter-multichoice.js","webpack://client-vacancy/./scripts/overview-filter-popup.js","webpack://client-vacancy/./scripts/overview-filter-state.js","webpack://client-vacancy/./scripts/overview-filter-toggle.js","webpack://client-vacancy/./scripts/overview-filter-value.js","webpack://client-vacancy/./scripts/overview-filters.js","webpack://client-vacancy/./scripts/overview-pagination.js","webpack://client-vacancy/./scripts/overview-results.js","webpack://client-vacancy/./scripts/utilities.js","webpack://client-vacancy/webpack/bootstrap","webpack://client-vacancy/webpack/runtime/define property getters","webpack://client-vacancy/webpack/runtime/hasOwnProperty shorthand","webpack://client-vacancy/webpack/runtime/make namespace object","webpack://client-vacancy/./scripts/job-overview.js"],"sourcesContent":["export const executeOnCaptchaSuccess = (callback) => {\n\t// Execute the captcha\n\t// The user might need to do a manual check\n\tconst executeCaptcha = new CustomEvent(\"executeCaptcha\");\n\tdocument.dispatchEvent(executeCaptcha);\n\n\tconst sendAlertHandler = async () => {\n\t\t// Call the callback\n\t\tcallback();\n\n\t\t// Reset the captcha\n\t\tconst resetCaptcha = new CustomEvent(\"resetCaptcha\");\n\t\tdocument.dispatchEvent(resetCaptcha);\n\n\t\t// Remove the event handler to execute when the captcha is done\n\t\tdocument.removeEventListener(\"captchaDone\", sendAlertHandler);\n\t};\n\n\t// Add the event handler to execute when the captcha is done\n\tdocument.addEventListener(\"captchaDone\", sendAlertHandler);\n}\n","const open = (popup) => {\n\tconst headerEl = document.querySelector(\".dg-driessen-header\");\n\tpopup.style.display = \"block\";\n\tdocument.body.classList.add(\"dg-body-no-scroll\");\n\tif(popup.dataset['popup'] === 'fixed-contract-info-modal' && window.innerWidth >= 1200){\n\t\tdocument.body.classList.add(\"dg-opened-on-large-display\");\n\t}\n\theaderEl.style.zIndex = \"10\";\n}\n\nconst close = (popup) => {\n\tconst headerEl = document.querySelector(\".dg-driessen-header\");\n\tpopup.style.display = \"none\";\n\tconsole.log(popup.dataset);\n\tif(popup.dataset['popup'] === 'fixed-contract-info-modal' && window.innerWidth >= 1200){\n\t\tdocument.body.classList.remove(\"dg-body-no-scroll\");\n\t}\n\tif(popup.dataset['popup'] !== 'fixed-contract-info-modal'){\n\t\tdocument.body.classList.remove(\"dg-body-no-scroll\");\n\t}\n\tif(popup.dataset['popup'] === 'fixed-contract-info-modal' && window.innerWidth <= 1200 && document.body.classList.contains(\"dg-opened-on-large-display\")){\n\t\tdocument.body.classList.remove(\"dg-body-no-scroll\");\n\t\tdocument.body.classList.remove(\"dg-opened-on-large-display\");\n\t}\n\theaderEl.style.zIndex = \"\";\n}\n\nconst bindPopup = (openButtonElements, popupElement) => {\n\topenButtonElements.forEach(button => {\n\t\tbutton.addEventListener(\"click\", () => { open(popupElement); });\n\t});\n\n\tconst closeButtons = popupElement.querySelectorAll(`[data-popup-close]`);\n\tcloseButtons.forEach(button => {\n\t\tbutton.addEventListener(\"click\", async () => { close(popupElement);} );\n\t});\n\n\tdocument.addEventListener(\"keydown\", async (event) => {\n\t\tif (event.key === \"Escape\") {\n\t\t\tawait close(popupElement);\n\t\t}\n\t});\n}\n\nexport const bindGenericPopups = () => {\n\tconst popupButtons = document.querySelectorAll(\"[data-popup-button]\");\n\n\tpopupButtons.forEach(popupTrigger => {\n\t\tconst popupElement = document.querySelector(`[data-popup=${popupTrigger.dataset.popupButton}]`);\n\n\t\tif(popupElement)\n\t\t\tbindPopup(popupButtons, popupElement);\n\t});\n}\n","import { isLoggedIn } from \"./utilities\";\nimport {getSearchParam, valueFilters} from \"./overview-filter-state\";\n\nconst track = (items) => {\n\twindow.dataLayer = window.dataLayer || [];\n\twindow.dataLayer.push(items);\n\tconsole.log(`${new Date()}: ${JSON.stringify(items)}`);\n}\n\nexport const trackContactSuccess = () => {\n\ttrack({\n\t\t\"event\": \"event-track\",\n\t\t\"category\": \"website action\",\n\t\t\"action\": \"webform submission\",\n\t\t\"label\": \"vacature_email\",\n\t});\n}\n\nexport const trackVacancyAlertSuccess = () => {\n\tconst page = window.location.pathname.indexOf(\"/vacature/\") === 0 ? \"vdp\" : \"vop\";\n\tconst userState = isLoggedIn() ? \"ingelogd\" : \"uitgelogd\";\n\n\ttrack({\n\t\t\"event\": \"event-track\",\n\t\t\"category\": \"website action\",\n\t\t\"action\": \"send vacancy alert\",\n\t\t\"label\": `${page} - ${userState}`\n\t});\n}\n\nexport const trackVacancySearch = () => {\n\tconst term = getSearchParam(valueFilters.searchTerm);\n\tconst location = getSearchParam(valueFilters.location);\n\tconst radius = getSearchParam(valueFilters.radius);\n\n\tconst label = location && radius ? `${location} + ${radius}km` : \"-\";\n\tconst action = term ? term : \"-\";\n\tconst currentSearchTrackingObject =\n\t\t{\n\t\t\t\"event\": \"event-track\",\n\t\t\t\"category\": \"vacature zoekactie\",\n\t\t\t\"action\": action,\n\t\t\t\"label\": label,\n\t\t};\n\n\tconst existingSearchTracking = localStorage.getItem(\"vacancySearchTracking\");\n\tconst currentSearchTracking = JSON.stringify(currentSearchTrackingObject);\n\n\tif (existingSearchTracking !== currentSearchTracking && (action !== \"-\" || label !== \"-\")) {\n\t\ttrack(currentSearchTrackingObject);\n\t\tlocalStorage.setItem(\"vacancySearchTracking\", currentSearchTracking);\n\t}\n}\n\n\n","import {attributes} from \"./overview-filter-constants\";\nimport {deleteSearchParam, trySaveToUrl} from \"./overview-filter-state\";\nimport {executeOnCaptchaSuccess} from \"./captcha-handler\";\nimport {trackVacancyAlertSuccess} from \"./google-analytics\";\n\nconst classesValidationMessageInvalid = [\n\t\"invalid-feedback\",\n\t\"mt-1\",\n\t\"d-block\",\n\t\"errorMessage\",\n];\nconst classesFieldInValid = [\"is-invalid\", \"error\"];\nlet formEnabled = true;\n\nconst getPopupElement = (popup) =>\n\tdocument.querySelector(`[${attributes.alertPopup}=${popup}]`);\n\nconst prefillPopupContent = () => {\n\tconst jobAlertLocation = document.querySelector(\"#job-alert-location\");\n\tconst jobAlertSearchTerm = document.querySelector(\"#job-alert-term\");\n\tconst jobAlertRadius = document.querySelector(\"#job-alert-radius\");\n\n\tconst queryString = window.location.search;\n\tconst urlParams = new URLSearchParams(queryString);\n\n\tif (urlParams.has(\"Location\")) {\n\t\tjobAlertLocation.value = urlParams.get(\"Location\");\n\t}\n\tif (urlParams.has(\"SearchTerm\")) {\n\t\tjobAlertSearchTerm.value = urlParams.get(\"SearchTerm\");\n\t}\n\tif (urlParams.has(\"Radius\")) {\n\t\tjobAlertRadius.value = urlParams.get(\"Radius\");\n\t}\n};\n\nconst prefill = () => {\n\tconst inputsToFill = document.querySelectorAll(\n\t\t`[${attributes.alertFieldForFilter}]`\n\t);\n\tinputsToFill.forEach((input) => {\n\t\tconst filter = input.attributes[attributes.alertFieldForFilter].value;\n\t\tconst source = document.querySelector(`[data-filter-name=${filter}]`);\n\t\tinput.value = source.value;\n\t});\n};\n\nconst setOpen = (popup, open) => {\n\tprefillPopupContent();\n\tconst element = getPopupElement(popup);\n\n\tif (open) {\n\t\tprefill();\n\n\t\tshowStep(popup, \"form\");\n\n\t\telement.style.display = \"block\";\n\t\tdocument.body.classList.add(\"dg-body-no-scroll\");\n\t} else {\n\t\telement.style.display = \"none\";\n\t\tdocument.body.classList.remove(\"dg-body-no-scroll\");\n\t}\n};\n\nconst elementsToValidate = [\"Term\", \"Location\", \"Email\", \"ReCaptcha\"];\n\nconst showValidationMessage = (validationMessageElement, message) => {\n\tif (validationMessageElement) {\n\t\tvalidationMessageElement.innerHTML = message;\n\t\tvalidationMessageElement.classList.add(\n\t\t\t...classesValidationMessageInvalid\n\t\t);\n\t}\n\n\tconst fieldName = validationMessageElement.attributes[\"data-valmsg-for\"].value;\n\tconst field =\n\t\tdocument.querySelector(`[name=${fieldName}]`) ||\n\t\tdocument.getElementById(fieldName);\n\tif (field) {\n\t\tfield.classList.add(...classesFieldInValid);\n\t}\n};\n\nconst resetValidationMessage = (validationMessageElements) => {\n\tvalidationMessageElements.forEach(validationMessageElement => {\n\t\tvalidationMessageElement.classList.remove(\n\t\t\t...classesValidationMessageInvalid\n\t\t);\n\t\tvalidationMessageElement.innerHTML = \"\";\n\n\t\tconst fields = document.querySelectorAll(`[name=\"${validationMessageElement.dataset.valmsgFor}\"]`);\n\t\tfields.forEach(field => field.classList.remove(...classesFieldInValid))\n\t});\n};\n\nconst removeValidationErrors = () => {\n\tconst validationMessages = Array.from(document.querySelectorAll(\"[data-valmsg-for]\"));\n\tconst elementsToValidate = validationMessages.map(elem => elem.dataset.valmsgFor);\n\n\telementsToValidate.forEach((propertyName) => {\n\t\tconst validation = document.querySelectorAll(\n\t\t\t`[data-valmsg-for=\"${propertyName}\"]`\n\t\t);\n\t\tresetValidationMessage(validation);\n\t});\n};\n\nconst disableSubmitButton = (disable) => {\n\tconst submitButton = document.getElementById(\"job-alert-submit\");\n\tif (disable) {\n\t\tsubmitButton.setAttribute(\"disabled\", \"true\");\n\t} else {\n\t\tsubmitButton.removeAttribute(\"disabled\");\n\t}\n};\n\nconst addValidationErrors = (errors) => {\n\terrors.forEach((error) => {\n\t\tif (!elementsToValidate.includes(error.propertyName)) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst validationMessages = document.querySelectorAll(\n\t\t\t`[data-valmsg-for=\"${error.propertyName}\"]`\n\t\t);\n\n\t\tvalidationMessages.forEach((validation) => {\n\t\t\tshowValidationMessage(validation, error.errorMessage);\n\t\t});\n\t});\n};\n\nconst addGenericError = () => {\n\tconst genericError = document.querySelector(\"#generic-error\");\n\tshowValidationMessage(\n\t\tgenericError,\n\t\tgenericError.attributes[\"val-msg-generic\"].value\n\t);\n};\n\nconst handleFormSubmit = async (event) => {\n\tconst form = event.target.closest(\"form\");\n\n\tremoveValidationErrors();\n\n\tdisableSubmitButton(true);\n\n\tconst hasCaptcha = form.querySelectorAll('#google-recaptcha-placeholder').length > 0;\n\n\tif (hasCaptcha) {\n\t\texecuteOnCaptchaSuccess(async () => {\n\t\t\tawait sendAlert(form);\n\t\t});\n\t} else {\n\t\tawait sendAlert(form);\n\t}\n};\n\nasync function sendAlert(form) {\n\tconst action = form.action;\n\tconst method = form.method;\n\n\ttry {\n\t\tconst formData = new FormData(form);\n\n\t\tconst response = await fetch(action, {\n\t\t\tmethod,\n\t\t\tbody: formData,\n\t\t});\n\n\t\tif (response.ok) {\n\t\t\ttrackVacancyAlertSuccess();\n\t\t\tdisableSubmitButton(false);\n\n\t\t\tif (form.dataset.popup) {\n\t\t\t\tshowStep(form.dataset.popup, \"success\");\n\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\tform.classList.add(\"d-none\");\n\t\t\t\tdocument\n\t\t\t\t\t.getElementById(\"job-alert-success-message\")\n\t\t\t\t\t.classList.remove(\"d-none\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tconst errorResponse = await response.json();\n\t\tconst validationErrors = JSON.parse(errorResponse.detail);\n\t\taddValidationErrors(validationErrors);\n\t\tdisableSubmitButton(false);\n\t} catch (error) {\n\t\taddGenericError();\n\t\tdisableSubmitButton(false);\n\t}\n}\n\nconst showStep = (popup, step) => {\n\tconst popupElement = getPopupElement(popup);\n\n\tconst formStepElements = popupElement.querySelectorAll(\"[data-step=form]\");\n\tconst successStepElements = popupElement.querySelectorAll(\"[data-step=success]\");\n\n\tif (step === \"success\") {\n\t\tformStepElements.forEach(element => {\n\t\t\telement.classList.add(\"tw-hidden\")\n\t\t});\n\t\tsuccessStepElements.forEach(element => {\n\t\t\telement.classList.remove(\"tw-hidden\")\n\t\t});\n\t} else {\n\t\tformStepElements.forEach(element => {\n\t\t\telement.classList.remove(\"tw-hidden\")\n\t\t});\n\t\tsuccessStepElements.forEach(element => {\n\t\t\telement.classList.add(\"tw-hidden\")\n\t\t});\n\t}\n}\n\nconst handleDirectOpen = (popup) => {\n\tconst params = new URLSearchParams(window.location.search);\n\tif (params.has(\"alert\")) {\n\t\tsetOpen(popup, true);\n\t\tdeleteSearchParam(\"alert\");\n\t\ttrySaveToUrl(false);\n\t}\n};\n\nconst bindPopup = (openButtonAttribute, popup) => {\n\tconst openButtons = document.querySelectorAll(`[${openButtonAttribute}]`);\n\n\topenButtons.forEach((button) => {\n\t\tbutton.addEventListener(\"click\", () => setOpen(popup, true));\n\t});\n\n\tconst element = getPopupElement(popup);\n\tconst closeButtons = element.querySelectorAll(\n\t\t`[${attributes.alertPopupClose}]`\n\t);\n\tcloseButtons.forEach((button) => {\n\t\tbutton.addEventListener(\"click\", () => setOpen(popup, false));\n\t});\n\n\tdocument.addEventListener(\"keydown\", (event) => {\n\t\tif (event.key === \"Escape\") setOpen(popup, false);\n\t});\n\n\thandleDirectOpen(popup);\n};\n\nexport const bindJobAlertPopup = () => {\n\tconst form = document.getElementById(\"jobalert-form\");\n\n\tif (form.dataset.popup)\n\t\tbindPopup(\"data-open-button-alert\", form.dataset.popup);\n\n\tdisableSubmitButton(false);\n};\n\nexport const bindJobAlertSubmit = () => {\n\tconst button = document.getElementById(\"job-alert-submit\");\n\tbutton.addEventListener(\"click\", handleFormSubmit);\n};\n","import {attributes} from \"./overview-filter-constants\";\n\nconst findBadges = (name) => document.querySelectorAll(`[${attributes.filterBadge}][${attributes.filterName}=${name}]`);\n\nconst showBadges = (name, content) => {\n\tconst badges = findBadges(name);\n\tbadges.forEach((badge) => {\n\t\tif (!badge.dataset.badgeContentStatic)\n\t\t\tbadge.innerHTML = content;\n\n\t\tbadge.classList.remove(\"tw-hidden\");\n\t});\n}\nconst hideBadges = (name) => {\n\tconst badges = findBadges(name);\n\tbadges.forEach((badge) => {\n\t\tif (!badge.dataset.badgeContentStatic)\n\t\t\tbadge.innerHTML = \"\";\n\n\t\tbadge.classList.add(\"tw-hidden\");\n\t});\n}\n\nexport const setBadges = (name, value) => {\n\tif (value) {\n\t\tshowBadges(name, value);\n\t} else {\n\t\thideBadges(name);\n\t}\n}\n","\nexport const attributes = {\n\talertPopup: \"data-alert-popup\",\n\talertPopupClose: \"data-alert-popup-close\",\n\talertFieldForFilter: \"data-jobalert-field-for-filter\",\n\tfilterMultiChoiceCounter: \"data-filter-multichoice-counter\",\n\tfilterMultiChoice: \"data-filter-multichoice\",\n\tfilterValue: \"data-filter-value\",\n\tfilterValueReset: \"data-filter-reset-target\",\n\tfilterToggle: \"data-filter-toggle\",\n\tfilterShowCount: \"data-filter-show-count\",\n\tfilterName: \"data-filter-name\",\n\tfilterVacancyAttribute: \"data-filter-vacancy-text\",\n\tfilterVacanciesAttribute: \"data-filter-vacancies-text\",\n\tfilterListAttribute: \"data-filter-list\",\n\tfilterGeoButton: \"data-filter-geo-target\",\n\tfilterPopup: \"data-filter-popup\",\n\tfilterPopupClose: \"data-filter-popup-close\",\n\tfilterPopupBack: \"data-filter-popup-back\",\n\tfilterPopupOpen: \"data-filter-popup-open\",\n\tfilterPopupConfirm: \"data-filter-popup-confirm\",\n\tfilterBadge: \"data-filter-badge\"\n}\n","import {setFilterValue} from \"./overview-filter-value\";\nimport config from './config.json';\nimport {attributes} from \"./overview-filter-constants\";\n\nconst findGeolocationButton = (filter) => {\n\treturn document.querySelector(`[${attributes.filterGeoButton}=${filter}]`);\n}\n\nconst fetchLocation = (filter) => {\n\tconst geolocation = navigator.geolocation;\n\n\tif (geolocation) {\n\t\tgeolocation.getCurrentPosition(\n\t\t\t(geolocation) => setCurrentPosition(filter, geolocation.coords),\n\t\t\t() => {\n\t\t\t});\n\t}\n}\n\nconst setCurrentPosition = async (filter, {latitude, longitude}) => {\n\tconst response = await fetch(`${config.basepath}/location?latitude=${latitude}&longitude=${longitude}`);\n\n\tif (!response.ok) return;\n\tconst data = await response.json();\n\n\tawait setFilterValue(filter, data);\n}\n\nexport const bindLocationForValueFilter = (filter) => {\n\tconst geolocationButton = findGeolocationButton(filter);\n\tgeolocationButton.addEventListener(\"click\", () => fetchLocation(filter));\n}\n","import { peek } from './overview-filters';\nimport {setBadges} from \"./overview-filter-badge\";\nimport {appendSearchParam, deleteSearchParam, getSearchParams, multiChoiceFilters} from \"./overview-filter-state\";\nimport { attributes } from \"./overview-filter-constants\";\n\nconst findInput = (filter, key) => {\n\tlet result = undefined;\n\tconst inputs = findFilterInputs(filter);\n\n\tinputs.forEach(input => {\n\t\tif (input.value === key) {\n\t\t\tresult = input;\n\t\t}\n\t});\n\n\treturn result;\n}\n\nconst findFilterInputs = (name) => {\n\treturn document.querySelectorAll(`input[${attributes.filterName}=${name}][${attributes.filterMultiChoice}]`);\n}\n\nconst handleMultiChoiceChange = async (event) => {\n\tconst target = event.target;\n\tconst name = target.name;\n\tconst value = target.value;\n\tconst checked = target.checked;\n\n\tif(checked)\n\t\tappendSearchParam(name, value);\n\telse\n\t\tdeleteSearchParam(name, value);\n\n\tupdateMultiChoiceBadge(name);\n\tawait peek();\n}\n\nconst bindMultiChoiceEdit = (...filters) => {\n\tfilters.forEach(filter => {\n\t\tconst boxes = findFilterInputs(filter);\n\t\tboxes.forEach(box => box.addEventListener(\"change\", handleMultiChoiceChange));\n\t});\n}\n\nconst setVacancyCounter = (input, value) => {\n\tconst label = document.querySelector(`label[for=${input.id}] span[${attributes.filterMultiChoiceCounter}]`);\n\tif (label)\n\t\tlabel.innerHTML = value;\n}\n\nexport const bindMultiChoiceGroup = (...filters) => {\n\tbindMultiChoiceEdit(...filters);\n}\n\nexport const clearMultiChoiceInputs = () => {\n\tfor (const filter in multiChoiceFilters) {\n\t\tconst options = findFilterInputs(multiChoiceFilters[filter]);\n\t\toptions.forEach(input => { input.checked = false; })\n\t\tfor (const filter in multiChoiceFilters) {\n\t\t\tupdateMultiChoiceBadge(multiChoiceFilters[filter]);\n\t\t}\n\t}\n}\n\nexport const setMultiChoiceFromParams = () => {\n\tconst params = getSearchParams();\n\n\tfor(const filter in multiChoiceFilters) {\n\t\tconst options = findFilterInputs(multiChoiceFilters[filter]);\n\t\toptions.forEach(x => {\n\t\t\tx.checked = params.has(multiChoiceFilters[filter], x.value);\n\t\t});\n\t}\n}\n\nexport const updateMultiChoiceCounts = (filterData) => {\n\tfor (const filter in multiChoiceFilters)\n\t{\n\t\tconst options = filterData.find(x => x.key === multiChoiceFilters[filter]).options;\n\t\toptions.forEach(({key, numberOfResults}) => {\n\t\t\tconst input = findInput(multiChoiceFilters[filter], key);\n\n\t\t\tsetVacancyCounter(input, numberOfResults);\n\t\t});\n\t}\n}\n\nexport const anyMultiChoiceFilters = () => {\n\tfor (const filter in multiChoiceFilters)\n\t{\n\t\tif(document.querySelectorAll(`[${attributes.filterPopup}=\"${multiChoiceFilters[filter]}\"] input:checked`).length > 0)\n\t\t\treturn true;\n\t}\n\n\treturn false;\n}\n\nexport const updateMultiChoiceBadge = (filter) => {\n\tconst popup = document.querySelector(`[${attributes.filterPopup}=\"${filter}\"]`);\n\n\tif(popup) {\n\t\tconst count = popup.querySelectorAll(\":checked\").length;\n\t\tsetBadges(filter, count);\n\t}\n}\n\n","import {closeFilterList, peek, search} from \"./overview-filters\";\nimport {setMultiChoiceFromParams} from \"./overview-filter-multichoice\";\nimport {setNumbersFromParams} from \"./overview-filter-value\";\nimport { loadFromUrl } from \"./overview-filter-state\";\nimport { attributes } from \"./overview-filter-constants\";\n\nexport const popups = {\n\tjobField: \"JobField\",\n\teducationLevel: \"EducationLevel\",\n\thours: \"Hours\"\n}\n\nconst getPopupElement = (popup) => document.querySelector(`[${attributes.filterPopup}=${popup}]`);\n\nconst setOpen = (popup, open) => {\n\tconst element = getPopupElement(popup);\n\tconst headerEl = document.querySelector(\".dg-driessen-header\");\n\n\tif (open) {\n\t\tsetMultiChoiceFromParams();\n\t\tsetNumbersFromParams();\n\t\ttrapFocus(element);\n\n\n\t\telement.style.display = \"block\";\n\t\tif(!document.body.classList.contains(\"dg-body-no-scroll\")){\n\t\t\tdocument.body.classList.add(\"dg-body-no-scroll\");\n\t\t\tif(window.innerWidth >= 1200){\n\t\t\t\tdocument.body.classList.add(\"dg-opened-on-large-display\");\n\t\t\t}\n\t\t}\n\t\theaderEl.style.zIndex = \"10\";\n\n\t\tconst firstInput = element.querySelector(\"input\");\n\t\tif(firstInput)\n\t\t\tfirstInput.select();\n\t} else {\n\t\telement.style.display = \"none\";\n\t\tif(window.innerWidth >= 1200 && document.body.classList.contains(\"dg-body-no-scroll\")){\n\t\t\tdocument.body.classList.remove(\"dg-body-no-scroll\");\n\t\t}\n\t\tif(window.innerWidth <= 1200 && document.body.classList.contains(\"dg-opened-on-large-display\") && document.body.classList.contains(\"dg-body-no-scroll\")){\n\t\t\tdocument.body.classList.remove(\"dg-body-no-scroll\");\n\t\t\tdocument.body.classList.remove(\"dg-opened-on-large-display\");\n\t\t}\n\t\theaderEl.style.zIndex = \"\";\n\t}\n}\n\nconst trapFocus = (element) => {\n\tconst focusableEls = element.querySelectorAll('.dg-modal-focus-item');\n\tconst firstFocusableEl = focusableEls[0];\n\tconst lastFocusableEl = focusableEls[focusableEls.length - 1];\n\n\tfirstFocusableEl.focus(element);\n\n\telement.addEventListener('keydown', function (e) {\n\t\tconst isTabPressed = (e.key === 'Tab');\n\t\tif (isTabPressed) {\n\t\t} else if (!isTabPressed) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst filterList = document.querySelector(`[${attributes.filterListAttribute}]`);\n\t\tif (!filterList.classList.contains(\"tw-left-[-101%]\") && document.body.classList.contains(\"dg-body-no-scroll\")){\n\t\t\tfilterList.classList.add(\"tw-left-[-101%]\");\n\t\t\tdocument.body.classList.remove(\"dg-body-no-scroll\");\n\t\t}\n\n\t\tif (e.shiftKey) {\n\t\t\tif (document.activeElement === firstFocusableEl) {\n\t\t\t\te.preventDefault();\n\t\t\t\tlastFocusableEl.focus();\n\t\t\t}\n\t\t} else if (document.activeElement === lastFocusableEl && element.contains(lastFocusableEl)) {\n\t\t\te.preventDefault();\n\t\t\tfirstFocusableEl.focus();\n\t\t}\n\t});\n};\n\nconst back = async (popup) => {\n\tsetOpen(popup, false);\n\tawait peek();\n}\n\nconst cancel = async (popup) => {\n\tsetOpen(popup, false);\n\n\tloadFromUrl();\n\tsetMultiChoiceFromParams();\n\tawait peek();\n}\n\nconst confirm = async (popup) => {\n\tawait search();\n\tsetOpen(popup, false);\n\tcloseFilterList();\n}\n\nexport const bindPopup = (popup) => {\n\tconst openButtons = document.querySelectorAll(`[${attributes.filterPopupOpen}=${popup}]`);\n\n\topenButtons.forEach(button => {\n\t\tbutton.addEventListener(\"click\", () => { setOpen(popup, true); });\n\t});\n\n\tconst element = getPopupElement(popup);\n\n\tif(!element)\n\t\treturn;\n\n\tconst backButtons = element.querySelectorAll(`[${attributes.filterPopupBack}]`);\n\tbackButtons.forEach(button => {\n\t\tbutton.addEventListener(\"click\", async () => { await back(popup); });\n\t});\n\n\tconst closeButtons = element.querySelectorAll(`[${attributes.filterPopupClose}]`);\n\tcloseButtons.forEach(button => {\n\t\tbutton.addEventListener(\"click\", async () => { await cancel(popup); });\n\t});\n\n\tconst confirmButtons = element.querySelectorAll(`[${attributes.filterPopupConfirm}]`);\n\tconfirmButtons.forEach(button => {\n\t\tbutton.addEventListener(\"click\", async () => { await confirm(popup); });\n\t});\n\n\tdocument.addEventListener(\"keydown\", async (event) => {\n\t\tif (event.key === \"Escape\") {\n\t\t\tawait cancel(popup);\n\t\t}\n\t});\n}\n","let searchParams = new URLSearchParams(window.location.search);\n\nexport const valueFilters = {\n\tsearchTerm: \"SearchTerm\",\n\tlocation: \"Location\",\n\tradius: \"Radius\"\n}\n\nexport const numberFilters = {\n\tminHours: \"MinHours\",\n\tmaxHours: \"MaxHours\",\n}\n\nexport const multiChoiceFilters = {\n\tsector: \"Sector\",\n\tjobField: \"JobField\",\n\teducationLevel: \"EducationLevel\"\n}\n\nexport const pageFilter = {\n\tpage: \"Page\"\n}\n\nexport const toggleFilters = {\n\tpermanentContract: \"PermanentContract\"\n}\n\nexport const loadFromUrl = () => {\n\tsearchParams = new URLSearchParams(window.location.search);\n}\n\nexport const trySaveToUrl = (resetPages) => {\n\tlet newUrl = window.location.protocol + \"//\" + window.location.host + window.location.pathname + '?' + searchParams.toString();\n\n\tif(newUrl === history.state?.path)\n\t\treturn false;\n\n\tif(resetPages)\n\t{\n\t\tdeleteSearchParam(pageFilter.page);\n\t\tnewUrl = window.location.protocol + \"//\" + window.location.host + window.location.pathname + '?' + searchParams.toString();\n\t}\n\n\twindow.history.pushState(undefined, '', newUrl);\n\treturn true;\n}\n\nexport const getSearchParam = (key) => {\n\treturn searchParams.get(key);\n}\n\nexport const getSearchParams = () => {\n\treturn searchParams;\n}\n\nexport const deleteSearchParam = (key, value) => {\n\tsearchParams.delete(key, value);\n}\n\nexport const setSearchParam = (key, value) => {\n\tsearchParams.set(key, value);\n}\n\nexport const appendSearchParam = (key, value) => {\n\tsearchParams.append(key, value);\n}\n\nexport const clearFilters = () => {\n\tconst clearedFilters = new URLSearchParams();\n\n\t// Copy only valueFilters to clearedFilters\n\tfor (const [key, value] of searchParams.entries()) {\n if (Object.values(valueFilters).indexOf(key) > -1) {\n\t\t clearedFilters.set(key, value);\n }\n }\n\n\tsearchParams = clearedFilters;\n}\n","import { search } from \"./overview-filters\";\nimport {\n\tdeleteSearchParam, getSearchParams,\n\tsetSearchParam,\n\ttoggleFilters,\n} from \"./overview-filter-state\";\nimport {attributes} from \"./overview-filter-constants\";\n\nconst findToggles = (filter) => document.querySelectorAll(`[${attributes.filterToggle}][${attributes.filterName}=${filter}]`);\n\nexport const clearToggleInputs = () => {\n\tfor (const filter in toggleFilters) {\n\t\tconst toggles = findToggles(toggleFilters[filter])\n\t\ttoggles.forEach(toggle => {\n\t\t\ttoggle.checked = false\n\t\t});\n\t}\n}\n\nexport const anyTogglesOn = () => {\n\tfor (const filter in toggleFilters) {\n\t\tconst toggles = Array.from(findToggles(toggleFilters[filter]));\n\t\tif(toggles.filter(toggle => toggle.checked).length > 0)\n\t\t\treturn true;\n\t}\n\n\treturn false;\n}\n\nexport const bindToggles = (filter) => {\n\tconst toggle = findToggles(filter);\n\n\ttoggle.forEach(toggle => {\n\t\ttoggle.addEventListener(\"change\", async () => {\n\t\t\tif (toggle.checked)\n\t\t\t\tsetSearchParam(toggleFilters.permanentContract, \"true\");\n\t\t\telse\n\t\t\t\tdeleteSearchParam(toggleFilters.permanentContract);\n\n\t\t\tawait search();\n\t\t});\n\t});\n}\n\nexport const setTogglesFromParams = () => {\n\tconst params = getSearchParams();\n\tfor (const filter in toggleFilters) {\n\t\tconst options = findToggles(toggleFilters[filter]);\n\t\toptions.forEach(x => {\n\t\t\tx.checked = params.has(toggleFilters[filter]);\n\t\t});\n\t}\n}\n","import { peek } from \"./overview-filters\";\nimport { setBadges } from \"./overview-filter-badge\";\nimport {\n\tdeleteSearchParam,\n\tgetSearchParams,\n\tnumberFilters,\n\tsetSearchParam,\n\tvalueFilters,\n} from \"./overview-filter-state\";\nimport { attributes } from \"./overview-filter-constants\";\n\nconst findValueInput = (filter) => {\n\treturn document.querySelector(\n\t\t`[${attributes.filterValue}][${attributes.filterName}=${filter}]`\n\t);\n};\n\nconst findValueResetButton = (filter) => {\n\treturn document.querySelector(`[${attributes.filterValueReset}=${filter}]`);\n};\n\nconst findValueResetButtons = () => {\n\treturn document.querySelectorAll(`[${attributes.filterValueReset}]`);\n};\n\nconst bindResetTriggers = (filter) => {\n\tconst button = findValueResetButton(filter);\n\n\tif (button)\n\t\tbutton.addEventListener(\n\t\t\t\"click\",\n\t\t\tasync () =>\n\t\t\t{\n\t\t\t\tconst input = findValueInput(filter);\n\t\t\t\tawait setFilterValue(filter, \"\", false);\n\t\t\t\tinput.focus();\n\t\t\t}\n\t\t);\n};\n\nconst handleInputButtonsVisibility = (\n\tresetButton,\n\tlocationButton,\n\tinputElement\n) => {\n\tif (inputElement.value && inputElement === document.activeElement) {\n\t\tresetButton.classList.remove(\"tw-hidden\");\n\t} else {\n\t\tsetTimeout(() => { resetButton.classList.add(\"tw-hidden\"); }, 100);\n\t}\n\n\tif(locationButton)\n\t{\n\t\tif(inputElement.value)\n\t\t\tlocationButton.classList.add(\"tw-hidden\");\n\t\telse\n\t\t\tlocationButton.classList.remove(\"tw-hidden\");\n\t}\n};\n\nconst validateHours = () => {\n\tconst minValueInput = findValueInput(numberFilters.minHours);\n\tconst maxValueInput = findValueInput(numberFilters.maxHours);\n\tvalidateValue(minValueInput);\n\tvalidateValue(maxValueInput);\n\n\tlet minValue = Number.parseInt(minValueInput.value);\n\tlet maxValue = Number.parseInt(maxValueInput.value);\n\tconst minValueValid = typeof minValue === \"number\" && isFinite(minValue);\n\tconst maxValueValid = typeof maxValue === \"number\" && isFinite(maxValue);\n\n\tif(minValueValid && !maxValueValid)\n\t\tmaxValue = maxValueInput.max;\n\telse if (!minValueValid && maxValueValid)\n\t\tminValue = minValueInput.min;\n\n\t// Minimum > Maximum\n\tif (minValue > maxValue) {\n\t\tconst tempMaxValue = maxValue;\n\t\tmaxValue = minValue;\n\t\tminValue = tempMaxValue;\n\t}\n\n\tminValueInput.value = minValue;\n\tmaxValueInput.value = maxValue;\n};\n\nconst validateValue = (input) => {\n\tif (!input.checkValidity()) {\n\t\tif (input.type === \"number\" && input.value > input.max)\n\t\t\tinput.value = input.max;\n\t\telse if (input.type === \"number\" && input.value < input.min)\n\t\t\tinput.value = input.min;\n\t}\n};\n\nexport const clearNumberInputs = () => {\n\tfor (const filter in numberFilters) {\n\t\tconst numberInput = findValueInput(numberFilters[filter]);\n\t\tnumberInput.value = undefined;\n\t}\n};\n\nexport const bindValueGroup = (filter) => {\n\tbindResetTriggers(filter);\n};\n\nexport const bindResetButtonsVisibility = () => {\n\tconst resetButtons = findValueResetButtons();\n\tresetButtons.forEach((resetButton) => {\n\t\tconst resetTarget = resetButton.dataset.filterResetTarget;\n\t\tconst inputElement = document.querySelector(\n\t\t\t`[data-filter-name=\"${resetTarget}\"]`\n\t\t);\n\t\tconst locationButton = document.querySelector(\n\t\t\t`[data-filter-geo-target=\"${resetTarget}\"]`\n\t\t);\n\n\t\t[\"input\", \"change\", \"focusin\", \"focusout\"].forEach(eventName => {\n\t\t\tinputElement.addEventListener(eventName, () =>\n\t\t\t\thandleInputButtonsVisibility(\n\t\t\t\t\tresetButton,\n\t\t\t\t\tlocationButton,\n\t\t\t\t\tinputElement\n\t\t\t\t)\n\t\t\t);\n\t\t});\n\n\t\thandleInputButtonsVisibility(resetButton, locationButton, inputElement);\n\t});\n};\n\nexport const setFilterValue = async (filter, value) => {\n\tconst input = findValueInput(filter);\n\tinput.value = value;\n\n\tconst event = new Event(\"change\");\n\tinput.dispatchEvent(event);\n};\n\nexport const saveFilterValues = () => {\n\tconst searchTermValue = findValueInput(valueFilters.searchTerm).value;\n\tif (searchTermValue)\n\t\tsetSearchParam(valueFilters.searchTerm, searchTermValue);\n\n\telse deleteSearchParam(valueFilters.searchTerm);\n\n\tconst location = findValueInput(valueFilters.location).value;\n\tconst radius = findValueInput(valueFilters.radius).value;\n\n\tif (location && radius) {\n\t\tsetSearchParam(valueFilters.location, location);\n\t\tsetSearchParam(valueFilters.radius, radius);\n\t} else {\n\t\tdeleteSearchParam(valueFilters.location);\n\t\tdeleteSearchParam(valueFilters.radius);\n\t}\n};\n\nexport const bindHoursRefresh = () => {\n\tfor (const filter in numberFilters) {\n\t\tconst input = findValueInput(numberFilters[filter]);\n\t\tinput.addEventListener(\"change\", async () => {\n\t\t\tvalidateHours();\n\t\t\tparamsFromNumbers(numberFilters.minHours, numberFilters.maxHours);\n\n\t\t\tupdateHoursBadge();\n\t\t\tawait peek();\n\t\t});\n\t}\n};\n\nexport const updateHoursBadge = () => {\n\tsetBadges(\n\t\t\"Hours\",\n\t\tanyHourFilters()\n\t);\n};\n\nexport const anyHourFilters = () => {\n\tconst params = getSearchParams();\n\tconst minHours = params.get(numberFilters.minHours);\n\tconst maxHours = params.get(numberFilters.maxHours);\n\n\treturn (minHours != null && minHours !== \"0\") ||\n\t\t(maxHours != null && maxHours !== \"40\");\n}\n\nconst paramsFromNumbers = (...filters) => {\n\tif (filters.every((filter) => findValueInput(filter)?.value)) {\n\t\tfilters.forEach((filter) => {\n\t\t\tconst value = findValueInput(filter).value;\n\t\t\tsetSearchParam(filter, value);\n\t\t});\n\t} else {\n\t\tfilters.forEach((filter) => deleteSearchParam(filter));\n\t}\n};\n\nexport const setSearchFieldsFromParams = () => {\n\tconst params = getSearchParams();\n\tfor (const filter in valueFilters) {\n\t\tconst input = findValueInput(valueFilters[filter]);\n\t\tif (params.has(valueFilters[filter])) {\n\t\t\tinput.value = params.get(valueFilters[filter]);\n\t\t} else {\n\t\t\tinput.value = \"\";\n\t\t}\n\t}\n};\n\nexport const setNumbersFromParams = () => {\n\tconst params = getSearchParams();\n\tfor (const filter in numberFilters) {\n\t\tconst input = findValueInput(numberFilters[filter]);\n\t\tif (params.has(numberFilters[filter])) {\n\t\t\tinput.value = params.get(numberFilters[filter]);\n\t\t}\n\t}\n};\n","import {\n\tanyMultiChoiceFilters,\n\tbindMultiChoiceGroup,\n\tclearMultiChoiceInputs,\n\tsetMultiChoiceFromParams,\n\tupdateMultiChoiceBadge,\n\tupdateMultiChoiceCounts\n} from './overview-filter-multichoice';\nimport {updateResultView} from './overview-results';\nimport {anyTogglesOn, bindToggles, clearToggleInputs, setTogglesFromParams} from './overview-filter-toggle';\nimport {\n\tanyHourFilters,\n\tbindHoursRefresh,\n\tbindResetButtonsVisibility,\n\tbindValueGroup,\n\tclearNumberInputs,\n\tsaveFilterValues,\n\tsetNumbersFromParams,\n\tsetSearchFieldsFromParams,\n\tupdateHoursBadge\n} from \"./overview-filter-value\";\nimport {bindPopup, popups} from \"./overview-filter-popup\";\nimport {bindLocationForValueFilter} from \"./overview-filter-location\";\nimport config from './config.json';\nimport {\n\tclearFilters,\n\tgetSearchParams,\n\tloadFromUrl,\n\tmultiChoiceFilters,\n\ttoggleFilters,\n\ttrySaveToUrl,\n\tvalueFilters\n} from \"./overview-filter-state\";\nimport {attributes} from \"./overview-filter-constants\";\nimport {trackVacancySearch} from \"./google-analytics\";\n\n\nexport const bindFilterButtons = () => {\n\tbindResetButtonsVisibility();\n\n\tbindSearchTriggers();\n\n\tbindValueGroup(valueFilters.searchTerm);\n\tbindValueGroup(valueFilters.location);\n\tbindValueGroup(valueFilters.radius);\n\tbindLocationForValueFilter(valueFilters.location);\n\n\tfor (const popup in popups)\n\t\tbindPopup(popups[popup]);\n\n\tbindMultiChoiceGroup(multiChoiceFilters.sector, multiChoiceFilters.jobField);\n\tbindMultiChoiceGroup(multiChoiceFilters.educationLevel);\n\tbindToggles(toggleFilters.permanentContract);\n\n\tbindHoursRefresh();\n\n\tbindClearButton(\"button-clear-filters\");\n\n\tbindFilterList();\n\n\tbindNavigationTriggers();\n\n\tupdateBadges();\n\ttoggleClearFiltersLink();\n\n\tloadFromUrl();\n\ttrackVacancySearch();\n}\n\nconst updateBadges = () => {\n\tupdateHoursBadge();\n\tfor (const filter in multiChoiceFilters)\n\t\tupdateMultiChoiceBadge(multiChoiceFilters[filter]);\n}\n\nconst bindNavigationTriggers = () => {\n\tconst handlePopstate = async () => {\n\t\tloadFromUrl();\n\t\tsetTogglesFromParams();\n\t\tsetNumbersFromParams();\n\t\tsetMultiChoiceFromParams();\n\t\tsetSearchFieldsFromParams();\n\t\tawait search(false);\n\t};\n\twindow.addEventListener(\"popstate\", handlePopstate);\n}\n\nconst bindSearchTriggers = () => {\n\tconst searchButtons = document.querySelectorAll(\"[data-filter-button-search]\");\n\tsearchButtons.forEach((button) => button.addEventListener(\"click\", async () => {\n\t\tsaveFilterValues();\n\t\ttrackVacancySearch();\n\t\tawait search();\n\t}));\n\n\tconst enterTriggers = document.querySelectorAll(\"[data-enter-trigger]\");\n\tenterTriggers.forEach(input => {\n\t\tinput.addEventListener(\"keydown\", async (event) => {\n\t\t\tif (event.key === \"Enter\") {\n\t\t\t\tevent.target.blur();\n\t\t\t\tsaveFilterValues();\n\t\t\t\ttrackVacancySearch();\n\t\t\t\tawait search();\n\t\t\t}\n\t\t});\n\t});\n}\n\nconst bindClearButton = (buttonAttr) => {\n\tconst button = document.querySelector(`button[${buttonAttr}]`);\n\tbutton.addEventListener(\"click\", async () => {\n\t\tclearFilters();\n\n\t\t// Update filters in the ui\n\t\tclearMultiChoiceInputs();\n\t\tclearToggleInputs();\n\t\tclearNumberInputs();\n\n\t\tawait search(true, true);\n\t});\n}\n\nconst scrollUp = () => {\n\tconst main = document.querySelector(\"main\");\n\tconst mainTop = main.getBoundingClientRect().top;\n\tconst mainMarginTop = parseInt(getComputedStyle(main).marginTop);\n\tconst nav = document.querySelector(\"nav\").getBoundingClientRect().height;\n\n\twindow.scrollTo({\n\t\ttop: mainTop + window.scrollY - nav - mainMarginTop,\n\t\tbehavior: \"smooth\"\n\t});\n}\n\nexport const search = async (save = true, resetPages = true, updateFilterCounts = true) => {\n\t// If we don't need to save to the url but we do want to search save should be false\n\tif (!save || trySaveToUrl(resetPages)) {\n\t\tif (updateFilterCounts)\n\t\t\tawait fetchFilterCounts();\n\n\t\tawait updateResultView();\n\t\tscrollUp();\n\n\t\tupdateBadges();\n\t}\n}\n\nexport const peek = async () => {\n\tawait fetchFilterCounts();\n\tupdateBadges();\n}\n\nexport const undo = async () => {\n\tloadFromUrl();\n\tsetMultiChoiceFromParams();\n\tawait peek();\n}\n\nconst fetchFilterCounts = async () => {\n\tconst response = await fetch(`${config.basepath}/overview/filters?${getSearchParams().toString()}`);\n\n\tif (!response.ok)\n\t\treturn;\n\n\tconst data = await response.json();\n\n\ttoggleClearFiltersLink();\n\tupdateMultiChoiceCounts(data.filters);\n\tupdateTotals(data.totalRecords);\n}\n\nconst toggleClearFiltersLink = () => {\n\tconst clearFiltersElement = document.getElementById(\"clear-filter-button\");\n\n\tif (anyHourFilters() || anyMultiChoiceFilters() || anyTogglesOn())\n\t\tclearFiltersElement.classList.remove(\"tw-hidden\");\n\telse\n\t\tclearFiltersElement.classList.add(\"tw-hidden\");\n}\n\nconst updateTotals = (count) => {\n\tconst totals = document.querySelectorAll(`[${attributes.filterShowCount}]`);\n\tconst vacancyTexts = document.querySelectorAll(`[${attributes.filterVacancyAttribute}]`);\n\tconst vacanciesTexts = document.querySelectorAll(`[${attributes.filterVacanciesAttribute}]`);\n\n\ttotals.forEach(element => element.innerText = count);\n\n\tif (count === 1) {\n\t\tvacancyTexts.forEach(vacancyText => vacancyText.removeAttribute(\"hidden\"));\n\t\tvacanciesTexts.forEach(vacanciesText => vacanciesText.setAttribute(\"hidden\", \"\"));\n\t} else {\n\t\tvacancyTexts.forEach(vacancyText => vacancyText.setAttribute(\"hidden\", \"\"));\n\t\tvacanciesTexts.forEach(vacanciesText => vacanciesText.removeAttribute(\"hidden\"));\n\t}\n}\n\nconst bindFilterList = () => {\n\tconst openButtons = document.querySelectorAll(\"[data-filter-list-button-open]\");\n\topenButtons.forEach(button => button.addEventListener(\"click\", openFilterList));\n\n\tconst closeButtons = document.querySelectorAll(\"[data-filter-list-button-close]\");\n\tcloseButtons.forEach(button => button.addEventListener(\"click\", async () => {\n\t\tcloseFilterList();\n\t\tawait undo();\n\t}));\n\n\tconst confirmButtons = document.querySelectorAll(\"[data-filter-list-button-confirm]\");\n\tconfirmButtons.forEach(button => button.addEventListener(\"click\", async () => {\n\t\tcloseFilterList();\n\t\tawait search();\n\t}));\n}\n\nconst openFilterList = () => {\n\tconst filterList = document.querySelector(`[${attributes.filterListAttribute}]`);\n\tif (filterList.classList.contains(\"tw-left-[-101%]\")) {\n\t\tfilterList.classList.remove(\"tw-left-[-101%]\");\n\t\tdocument.body.classList.add(\"dg-body-no-scroll\");\n\t}\n}\n\nexport const closeFilterList = () => {\n\tconst filterList = document.querySelector(`[${attributes.filterListAttribute}]`);\n\n\tif (!filterList.classList.contains(\"tw-left-[-101%]\")) {\n\t\tfilterList.classList.add(\"tw-left-[-101%]\");\n\t\tdocument.body.classList.remove(\"dg-body-no-scroll\");\n\t}\n}\n\n//Script and listener to close filters when screen is resized and larger than 1199px\n\nconst toggleFilterListResize = () => {\n\tif (window.innerWidth >= 1200) {\n\t\tconst filterList = document.querySelector(`[${attributes.filterListAttribute}]`);\n\n\t\tif (!filterList.classList.contains(\"tw-left-[-101%]\") && document.body.classList.contains(\"dg-body-no-scroll\")) {\n\t\t\tcloseFilterList();\n\t\t}\n\t}\n}\n\nexport const bindWindowResize = () => {\n\twindow.addEventListener(\"resize\", toggleFilterListResize);\n}\n\n// Code om de filter popup te sluiten zit generiek in overview-filter-popup.setOpen\n","import { pageFilter, setSearchParam } from \"./overview-filter-state\";\nimport {search} from \"./overview-filters\";\n\nexport const registerPaginationTriggers = () => {\n\tlet paginationButtons = document.querySelectorAll('button.pagination[data-pagination-page]:not([disabled])');\n\n\tpaginationButtons.forEach(button => {\n\t\tconst page = button.getAttribute(\"data-pagination-page\");\n\t\tbutton.addEventListener('click', async () => {\n\t\t\tsetSearchParam(pageFilter.page, page);\n\t\t\tawait search(true, false, false);\n\t\t});\n\t});\n}\n","import {registerPaginationTriggers} from \"./overview-pagination\";\nimport config from './config.json';\nimport {bindJobAlertPopup} from \"./job-alert\";\n\nconst showVacancyPlaceholders = () => {\n\tconst vacancyCards = document.querySelectorAll(\"[data-vacancy-card]\");\n\tconst placeHolder = document.querySelector(\"[data-vacancy-card-placeholder]\");\n\n\tvacancyCards.forEach(card => card.replaceWith(placeHolder.cloneNode(true)));\n\n\tconst vacancyCount = document.getElementById(\"vacancy-count\");\n\tconst vacancyCountPlaceHolder = document.getElementById(\"vacancy-count-placeholder\");\n\tvacancyCount.innerText = vacancyCountPlaceHolder.innerText;\n}\n\nconst showResults = () => {\n\tregisterPaginationTriggers();\n\tbindJobAlertPopup();\n}\n\nlet loading = false;\nexport const updateResultView = async () => {\n\tif (!loading) {\n\t\tloading = true;\n\t\tshowVacancyPlaceholders();\n\n\t\tconst results = document.getElementById(\"result-view\");\n\t\tconst response = await fetch(`${config.basepath}/overview/search${window.location.search}`);\n\t\tif (response.ok) {\n\t\t\tresults.innerHTML = await response.text();\n\t\t} else {\n\t\t\tresults.innerHTML = response.statusText;\n\t\t}\n\n\t\tshowResults();\n\t\tloading = false;\n\t}\n}\n","export const isLoggedIn = () =>\n{\n\treturn document.querySelector(\"meta[name=loggedin][content=true]\") != null;\n}\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","// 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 {bindFilterButtons, bindWindowResize} from \"./overview-filters\";\nimport { registerPaginationTriggers } from \"./overview-pagination\";\nimport { bindGenericPopups } from \"./generic-popup\";\nimport { bindJobAlertPopup, bindJobAlertSubmit} from \"./job-alert\";\n//import \"./mobile-vop-search\"; Due to deadline this feature is now disabled (NOt DONE YET)\nconst initialize = () => {\n\tbindFilterButtons();\n\tregisterPaginationTriggers();\n\tbindJobAlertPopup();\n\tbindJobAlertSubmit();\n\tbindGenericPopups();\n\tbindWindowResize();\n}\n\ninitialize();\n"],"names":[],"sourceRoot":""}