{"version":3,"file":"./registrationpoint.bundle.js","mappings":"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;EAEvDlB,CAAC,CAAC,MAAM,CAAC,CAAC6H,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE1H,OAAO,CAACe,WAAW,CAAC;EAE3DlB,CAAC,CAAC,MAAM,CAAC,CAAC6H,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE1H,OAAO,CAACqB,iBAAiB,CAAC;EAEhExB,CAAC,CAAC,MAAM,CAAC,CAAC6H,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE/H,eAAe,CAAC;AACzD,CAAC,CAAC;;;;;;;;;;AChpBF;;AAEA,8GAAwC;;AAExC,mBAAO,CAAC,oFAAoB;AAC5B,mBAAO,CAAC,kFAAmB;AAC3B,mBAAO,CAAC,oFAAoB;AAC5B,mBAAO,CAAC,kFAAmB;AAC3B,mBAAO,CAAC,0FAAuB;AAC/B,mBAAO,CAAC,kFAAmB;AAC3B,mBAAO,CAAC,0FAAuB;AAC/B,mBAAO,CAAC,gGAA0B;;;;;;;;;;;ACXlC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;AACD;AACA,MAAM,IAA0C;AAChD;AACA,IAAI,iCAAO,CAAC,6FAAc,EAAE,uGAAmB,CAAC,oCAAE,OAAO;AAAA;AAAA;AAAA,kGAAC;AAC1D,IAAI,KAAK,EAKN;AACH,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;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,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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;;;ACvaD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,CAAC;AACD;AACA,MAAM,IAA0C;AAChD;AACA,IAAI,iCAAO,CAAC,6FAAc,EAAE,uGAAmB,CAAC,oCAAE,OAAO;AAAA;AAAA;AAAA,kGAAC;AAC1D,IAAI,KAAK,EAKN;AACH,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAY,+CAA+C;AAC3D,cAAc,uBAAuB;AACrC,cAAc,0BAA0B;AACxC,cAAc;AACd;;AAEA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,eAAe;AAC5B,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,eAAe;AAC5B,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,aAAa,QAAQ;AACrB,aAAa,QAAQ;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;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;AC3cD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;AACD;AACA,MAAM,IAA0C;AAChD;AACA,IAAI,iCAAO,CAAC,6FAAc,CAAC,oCAAE,OAAO;AAAA;AAAA;AAAA,kGAAC;AACrC,IAAI,KAAK,EAKN;AACH,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,UAAU;AAC3B,mBAAmB,MAAM;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,UAAU;AAC3B,iBAAiB,UAAU;AAC3B;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACzGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;AACD;AACA,MAAM,IAA0C;AAChD;AACA,IAAI,iCAAO,CAAC,6FAAc,EAAE,uGAAmB,CAAC,oCAAE,OAAO;AAAA;AAAA;AAAA,kGAAC;AAC1D,IAAI,KAAK,EAKN;AACH,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;;;ACxKD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;AACD;AACA,MAAM,IAA0C;AAChD;AACA,IAAI,iCAAO,CAAC,6FAAc,EAAE,uGAAmB,CAAC,oCAAE,OAAO;AAAA;AAAA;AAAA,kGAAC;AAC1D,IAAI,KAAK,EAKN;AACH,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA,yBAAyB,SAAS;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,QAAQ;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;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,YAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;AC9OD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;AACD;AACA,MAAM,IAA0C;AAChD;AACA,IAAI,iCAAO,CAAC,6FAAc,CAAC,oCAAE,OAAO;AAAA;AAAA;AAAA,kGAAC;AACrC,IAAI,KAAK,EAKN;AACH,CAAC;AACD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,2BAA2B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,UAAU;AACzB,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,aAAa;AAC1B,aAAa,aAAa;AAC1B,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,aAAa;AAC1B,aAAa,UAAU;AACvB,eAAe,8BAA8B;AAC7C;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;AClQD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,CAAC;AACD;AACA,MAAM,IAA0C;AAChD;AACA,IAAI,iCAAO,CAAC,6FAAc,EAAE,yGAAoB,EAAE,uGAAmB,CAAC,oCAAE,OAAO;AAAA;AAAA;AAAA,kGAAC;AAChF,IAAI,KAAK,EASN;AACH,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,SAAS;AACxB;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACheD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;AACD;AACA,MAAM,IAA0C;AAChD;AACA,IAAI,iCAAO,CAAC,6FAAc,CAAC,oCAAE,OAAO;AAAA;AAAA;AAAA,kGAAC;AACrC,IAAI,KAAK,EAKN;AACH,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;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;;AAEA;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,QAAQ;AACR;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,MAAM;AACN;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACtUD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA,aAAa,MAAM;AACnB,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,MAAM;AACnB,aAAa,UAAU;AACvB,aAAa,UAAU;AACvB,aAAa,QAAQ;AACrB,eAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,qCAAqC;AACrD;;AAEA;AACA;AACA;AACA,aAAa,aAAa;AAC1B,aAAa,iBAAiB;AAC9B,aAAa,QAAQ;AACrB,eAAe,6CAA6C;AAC5D;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,eAAe,UAAU;AACzB,iBAAiB,6BAA6B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oCAAoC;AACrD,iBAAiB,QAAQ;AACzB,mBAAmB,WAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,MAAM,IAA0C;AAChD,IAAI,mCAAO;AACX;AACA,KAAK;AAAA,kGAAC;AACN,IAAI,KAAK,EAIN;AACH,CAAC;;;;;;;UCpOD;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;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;;ACN4B","sources":["webpack://erfgoed-zeeland-frontend/./scripts/registrationpoint/RegistrationPoint.js","webpack://erfgoed-zeeland-frontend/./node_modules/blueimp-load-image/js/index.js","webpack://erfgoed-zeeland-frontend/./node_modules/blueimp-load-image/js/load-image-exif-map.js","webpack://erfgoed-zeeland-frontend/./node_modules/blueimp-load-image/js/load-image-exif.js","webpack://erfgoed-zeeland-frontend/./node_modules/blueimp-load-image/js/load-image-fetch.js","webpack://erfgoed-zeeland-frontend/./node_modules/blueimp-load-image/js/load-image-iptc-map.js","webpack://erfgoed-zeeland-frontend/./node_modules/blueimp-load-image/js/load-image-iptc.js","webpack://erfgoed-zeeland-frontend/./node_modules/blueimp-load-image/js/load-image-meta.js","webpack://erfgoed-zeeland-frontend/./node_modules/blueimp-load-image/js/load-image-orientation.js","webpack://erfgoed-zeeland-frontend/./node_modules/blueimp-load-image/js/load-image-scale.js","webpack://erfgoed-zeeland-frontend/./node_modules/blueimp-load-image/js/load-image.js","webpack://erfgoed-zeeland-frontend/webpack/bootstrap","webpack://erfgoed-zeeland-frontend/webpack/runtime/compat get default export","webpack://erfgoed-zeeland-frontend/webpack/runtime/define property getters","webpack://erfgoed-zeeland-frontend/webpack/runtime/hasOwnProperty shorthand","webpack://erfgoed-zeeland-frontend/webpack/runtime/make namespace object","webpack://erfgoed-zeeland-frontend/./scripts/registrationpoint.js"],"sourcesContent":["function SwitchToGallery(evt) {\r\n\t$('.SubmitPhoto').removeClass('visible');\r\n\t$('.PreviewPhoto').addClass('visible');\r\n}\r\n\r\nvar InfoBox = {\r\n\tinfo: {},\r\n\tmenubox: {},\r\n\tfocusableElementsString: 'a, a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [contenteditable]',\r\n\tinit: function () {\r\n\t\tconsole.log('init');\r\n\t\tif ($(\".reportMenu\").length > 0) {\r\n\t\t\tthis.info = document.querySelector(\".infoBox\");\r\n\t\t\tthis.menubox = document.querySelector(\".reportMenu\");\r\n\r\n\t\t\tvar menuElements = InfoBox.info.querySelectorAll(InfoBox.focusableElementsString);\r\n\t\t\tmenuElements.forEach(function(element){\r\n\t\t\t\telement.setAttribute('tabindex', \"-1\");\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\tOpenInfoBox: function (evt) {\r\n\t\tconsole.log('opening');\r\n\t\tevt.preventDefault();\r\n\t\tif ($(\".reportMenu\").hasClass(\"open\")) {\r\n\t\t\tInfoBox.CloseInfoBox();\r\n\t\t} else {\r\n\t\t\t$('.reportMenu').addClass(\"open\");\r\n\t\t\t$('.infoBox').addClass(\"open\");\r\n\t\t\t$('.infoSlider').attr(\"title\", \"Sluit het menu\");\r\n\r\n\t\t\tvar focusableElements = document.querySelector('section.content').querySelectorAll(InfoBox.focusableElementsString);\r\n\t\t\tfocusableElements.forEach(function(element){\r\n\t\t\t\telement.setAttribute('tabindex', \"-1\");\r\n\t\t\t});\r\n\r\n\t\t\tvar menuElements = InfoBox.info.querySelectorAll(InfoBox.focusableElementsString);\r\n\t\t\tmenuElements.forEach(function(element){\r\n\t\t\t\telement.setAttribute('tabindex', \"0\");\r\n\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t\tInfoBox.SetInfoBoxSubject(evt);\r\n\t},\r\n\r\n\tCloseInfoBox: function (evt) {\r\n\t\t$('.reportMenu').removeClass(\"open\");\r\n\t\t$('.infoBox').removeClass(\"open\");\r\n\t\t$('.infoSlider').attr(\"title\", \"Open het menu\");\r\n\r\n\t\tvar focusableElements = document.querySelector('section.content').querySelectorAll(InfoBox.focusableElementsString);\r\n\t\tfocusableElements.forEach(function(element){\r\n\t\t\telement.setAttribute('tabindex', \"0\");\r\n\t\t});\r\n\r\n\t\tvar menuElements = InfoBox.info.querySelectorAll(InfoBox.focusableElementsString);\r\n\t\tmenuElements.forEach(function(element){\r\n\t\t\telement.setAttribute('tabindex', \"-1\");\r\n\t\t});\r\n\r\n\r\n\t\tInfoBox.ResetInfoBoxMenu();\r\n\t},\r\n\r\n\tSetInfoBoxSubject: function (evt) {\r\n\t\tInfoBox.ResetInfoBoxMenu();\r\n\t\tif ($('.infoBox').find('.' + $(evt.currentTarget).data(\"id\")).length > 0) {\r\n\t\t\t$('.backToMainMenu').attr(\"data-id\", $(evt.currentTarget).data(\"id\"));\r\n\r\n\t\t\t$('.infoBox').attr(\"data-id\", $(evt.currentTarget).data(\"id\"));\r\n\t\t\t$('.infoBox').find('.' + $(evt.currentTarget).data(\"id\")).addClass(\"visible\");\r\n\r\n\r\n\t\t\tInfoBox.checkSiblingSubMenu();\r\n\t\t}\r\n\t},\r\n\r\n\tResetInfoBoxMenu: function () {\r\n\t\t$('.infoBox').removeAttr(\"data-id\");\r\n\t\t$('.backToMainMenu').removeAttr(\"data-id\");\r\n\t\t$('.infoBox .subMenu').removeClass(\"visible\");\r\n\t},\r\n\r\n\tMoveToNextSubMenu: function (evt) {\r\n\t\tevt.preventDefault();\r\n\t\tvar currentActive = document.querySelector('.infoBox .subMenu.visible');\r\n\t\t$(currentActive.nextElementSibling).addClass(\"visible\");\r\n\t\t$(currentActive).removeClass(\"visible\");\r\n\t\tInfoBox.checkSiblingSubMenu();\r\n\t},\r\n\r\n\tMoveToPreviousSubMenu: function (evt) {\r\n\t\tevt.preventDefault();\r\n\t\tvar currentActive = document.querySelector('.infoBox .subMenu.visible');\r\n\t\t$(currentActive.previousElementSibling).addClass(\"visible\");\r\n\t\t$(currentActive).removeClass(\"visible\");\r\n\t\tInfoBox.checkSiblingSubMenu();\r\n\t},\r\n\r\n\tcheckSiblingSubMenu: function () {\r\n\t\tvar currentActive = document.querySelector('.infoBox .subMenu.visible');\r\n\t\tif (currentActive != undefined) {\r\n\t\t\tif ($(currentActive.previousElementSibling).hasClass(\"subMenu\")) {\r\n\t\t\t\t$('.infoBoxPager .previous').addClass(\"visible\");\r\n\t\t\t} else {\r\n\t\t\t\t$('.infoBoxPager .previous').removeClass(\"visible\");\r\n\t\t\t}\r\n\r\n\t\t\tif ($(currentActive.nextElementSibling).hasClass(\"subMenu\")) {\r\n\t\t\t\t$('.infoBoxPager .next').addClass(\"visible\");\r\n\t\t\t} else {\r\n\t\t\t\t$('.infoBoxPager .next').removeClass(\"visible\");\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t$('.infoBoxPager .previous').removeClass(\"visible\");\r\n\t\t\t$('.infoBoxPager .next').removeClass(\"visible\");\r\n\t\t}\r\n\t}\r\n}\r\n\r\nvar Maps = {\r\n\tmap: {},\r\n\tcurrentLatLng: {},\r\n\tcurrentMarker: {},\r\n\tinit: function () {\r\n\t\tif ($('#map').length > 0) {\r\n\t\t\tMaps.initMap();\r\n\t\t\tif (location.protocol === 'https:') {\r\n\t\t\t\tMaps.GetCurrentUserLocation();\r\n\t\t\t} else {\r\n\t\t\t\tMaps.GeoStopped();\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tinitMap: function () {\r\n\t\tMaps.currentLatLng = new google.maps.LatLng(51.570003, 4.029191);\r\n\r\n\t\tif ($(\"#locationOutput\").val()) {\r\n\t\t\tvar latlngOut = $('#locationOutput').val().replace(/[()]/g, '').split(',')\r\n\t\t\tlatlngOut = new google.maps.LatLng(latlngOut[0], latlngOut[1])\r\n\r\n\t\t\tMaps.currentLatLng = latlngOut;\r\n\t\t}\r\n\r\n\t\tvar mapOptions = {\r\n\t\t\tcenter: Maps.currentLatLng,\r\n\t\t\tzoom: 15,\r\n\t\t\tmapTypeId: google.maps.MapTypeId.ROADMAP,\r\n\t\t\tdisableDefaultUI: true,\r\n\t\t\tclickableIcons: false,\r\n\t\t};\r\n\t\tMaps.map = new google.maps.Map(document.getElementById('map'), mapOptions);\r\n\t\tvar zoomControlDiv = document.createElement('div');\r\n\t\tvar zoomControl = new Maps.ZoomControl(zoomControlDiv, map);\r\n\r\n\t\tzoomControlDiv.index = 1;\r\n\t\tMaps.map.controls[google.maps.ControlPosition.RIGHT_BOTTOM].push(zoomControlDiv);\r\n\r\n\t\tgoogle.maps.event.addDomListener(Maps.map, 'click', function (e) {\r\n\t\t\tMaps.PlaceMarker(e.latLng, Maps.map);\r\n\t\t});\r\n\t},\r\n\r\n\tGetCurrentUserLocation: function () {\r\n\t\tif (navigator.geolocation) {\r\n\t\t\tnavigator.geolocation.getCurrentPosition(Maps.GeoSuccess, Maps.GeoStopped);\r\n\t\t} else {\r\n\t\t\tconsole.log(\"current geolocation not supported\");\r\n\t\t}\r\n\t},\r\n\r\n\tGeoSuccess: function (position) {\r\n\t\t$('.loader').removeClass(\"visible\");\r\n\t\tMaps.currentLatLng = position;\r\n\t\tMaps.PlaceMarker(latLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude), Maps.map);\r\n\t},\r\n\r\n\tGeoStopped: function () {\r\n\t\t$('.loader').removeClass(\"visible\");\r\n\t\tMaps.PlaceMarker(Maps.currentLatLng, Maps.map);\r\n\t},\r\n\tPlaceMarker: function (latLng, map) {\r\n\t\tif ($.isEmptyObject(Maps.currentMarker)) {\r\n\t\t\tMaps.currentMarker = new google.maps.Marker({\r\n\t\t\t\tposition: latLng,\r\n\t\t\t\tdraggable: true,\r\n\t\t\t\tmap: map\r\n\t\t\t});\r\n\r\n\t\t\tgoogle.maps.event.addListener(Maps.currentMarker, 'dragend', function (ev) {\r\n\t\t\t\tMaps.UpdateLocationInformation(Maps.currentMarker.getPosition());\r\n\t\t\t})\r\n\t\t} else {\r\n\t\t\tMaps.currentMarker.setPosition(latLng);\r\n\t\t}\r\n\t\tMaps.currentLatLng = latLng;\r\n\t\tmap.panTo(latLng);\r\n\t\tMaps.UpdateLocationInformation(latLng);\r\n\t},\r\n\r\n\tUpdateLocationInformation: function (latLng) {\r\n\t\t$(\"#locationOutput\").val(latLng);\r\n\t\tvar googleGeocode = new google.maps.Geocoder();\r\n\t\tgoogleGeocode.geocode({\r\n\t\t\t'latLng': latLng\r\n\t\t}, function (results, status) {\r\n\t\t\tif (status == google.maps.GeocoderStatus.OK && results[0]) {\r\n\t\t\t\tvar locInfo = results[0].formatted_address.split(',')\r\n\r\n\t\t\t\tvar locationText = locInfo[0];\r\n\t\t\t\tlocationText += \"
\" + locInfo[1];\r\n\t\t\t\tlocationText += \"
\" + latLng.lat() + \", \" + latLng.lng()\r\n\t\t\t\t$('.mapInformation').html(locationText);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t},\r\n\r\n\tZoomControl: function (controlDiv, map) {\r\n\r\n\t\t// Creating divs & styles for custom zoom control\r\n\r\n\t\t// Set CSS for the control wrapper\r\n\t\tvar controlWrapper = document.createElement('div');\r\n\t\tcontrolWrapper.style.cursor = 'pointer';\r\n\t\tcontrolWrapper.style.position = 'relative';\r\n\t\tcontrolWrapper.style.bottom = '10px';\r\n\t\tcontrolDiv.appendChild(controlWrapper);\r\n\r\n\t\t// Set CSS for the zoomOut\r\n\t\tvar zoomOutButton = document.createElement('div');\r\n\t\tzoomOutButton.style.width = '50px';\r\n\t\tzoomOutButton.style.height = '50px';\r\n\t\tzoomOutButton.style.backgroundColor = 'white';\r\n\t\tzoomOutButton.style.display = 'inline-block';\r\n\t\t/* Change this to be the .png image you want to use */\r\n\t\tcontrolWrapper.appendChild(zoomOutButton);\r\n\r\n\t\t// Set CSS for the zoomIn\r\n\t\tvar zoomInButton = document.createElement('div');\r\n\t\tzoomInButton.style.width = '50px';\r\n\t\tzoomInButton.style.height = '50px';\r\n\t\tzoomInButton.style.backgroundColor = 'white';\r\n\t\tzoomInButton.style.display = 'inline-block';\r\n\t\t/* Change this to be the .png image you want to use */\r\n\t\tcontrolWrapper.appendChild(zoomInButton);\r\n\r\n\t\t// Setup the click event listener - zoomIn\r\n\t\tgoogle.maps.event.addDomListener(zoomInButton, 'click', function () {\r\n\t\t\tMaps.map.setZoom(Maps.map.getZoom() + 1);\r\n\t\t});\r\n\r\n\t\t// Setup the click event listener - zoomOut\r\n\t\tgoogle.maps.event.addDomListener(zoomOutButton, 'click', function () {\r\n\t\t\tMaps.map.setZoom(Maps.map.getZoom() - 1);\r\n\t\t});\r\n\r\n\t}\r\n\r\n\r\n}\r\nvar validationErrors = false;\r\n\r\nvar forms = {\r\n\tinit: function () {\r\n\t\tforms.validation.listeners();\r\n\r\n\t\t$('body').on('click', \".menuButton.closebtn\", InfoBox.CloseInfoBox);\r\n\r\n\t\t//$('body').on('click', '.subMenuLink', SetInfoBoxSubject($(this).data('id')));\r\n\r\n\t\tforms.setStep();\r\n\t\texperienceGallery.init();\r\n\t},\r\n\r\n\tsetStep: function () {\r\n\t\tvar step = $('.RegistrationPointForm form').data('step');\r\n\r\n\t\tif (step != null) {\r\n\t\t\tvar strokeOffset = (113 / 6) * (6 - step);\r\n\t\t\t//console.log(strokeOffset);\r\n\t\t\t$('.icon.indicator').css({\r\n\t\t\t\t'strokeDashoffset': strokeOffset\r\n\t\t\t});\r\n\t\t\t$('.indicatorText').html(step + \" / 6\");\r\n\t\t}\r\n\t},\r\n\r\n\topenSubDialog(evt) {\r\n\t\t$('.FindLocation').removeClass('visible');\r\n\t\t$('.EnterLocation').addClass('visible');\r\n\t\t$('.subdialog.' + $(evt.target).data(\"subdialog\") + '').addClass(\"visible\");\r\n\t\t$('#locationTypeChoice').val($(evt.target).data(\"subdialog\"));\r\n\t},\r\n\r\n\tvalidation: {\r\n\t\tlisteners: function () {\r\n\r\n\t\t\t$('body').on('blur change paste keyup', 'input', function () {\r\n\t\t\t\tforms.validation.inputRules($(this));\r\n\t\t\t\tforms.validation.checkEmptyField();\r\n\t\t\t});\r\n\r\n\t\t\t$('body').on('blur change paste keyup', 'input', function () {\r\n\t\t\t\tforms.validation.inputRules($(this));\r\n\t\t\t\tforms.validation.checkEmptyField();\r\n\t\t\t});\r\n\r\n\t\t\t$('body').on('blur change paste keyup', 'textarea', function () {\r\n\t\t\t\tforms.validation.checkRequired($(this));\r\n\t\t\t\tforms.validation.checkEmptyField();\r\n\t\t\t});\r\n\r\n\t\t\t$('body').on('change change paste keyup', 'select', function () {\r\n\t\t\t\tforms.validation.checkRequired($(this));\r\n\t\t\t\tforms.validation.checkEmptyField();\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tcheckEmptyField: function (element) {\r\n\t\t\t$('.formStep.currentStep input[required=\"required\"]').each(function () {\r\n\t\t\t\tif ($(this).val() === '') {\r\n\t\t\t\t\t$('.formStep.currentStep button[type=\"submit\"]').prop('disabled', true);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tsetValid: function (element) {\r\n\t\t\telement.closest('.fieldRow').removeClass('error');\r\n\t\t\telement.closest('.selectRow').removeClass('error');\r\n\t\t\t$('.formStep.currentStep button[type=\"submit\"]').prop('disabled', false);\r\n\t\t},\r\n\r\n\t\tsetInvalid: function (element) {\r\n\t\t\telement.closest('.fieldRow').addClass('error');\r\n\t\t\telement.closest('.selectRow').addClass('error');\r\n\t\t\t$('.formStep.currentStep button[type=\"submit\"]').prop('disabled', 'disabled');\r\n\t\t\tvalidationErrors = true;\r\n\t\t},\r\n\r\n\t\texecuteAll: function (parentForm) {\r\n\t\t\tvalidationErrors = false;\r\n\r\n\t\t\tparentForm.find('input').each(function () {\r\n\t\t\t\tforms.validation.inputRules($(this));\r\n\t\t\t});\r\n\r\n\t\t\tparentForm.find('textarea').each(function () {\r\n\t\t\t\tforms.validation.checkRequired($(this));\r\n\t\t\t});\r\n\r\n\t\t\tparentForm.find('select').each(function () {\r\n\t\t\t\tforms.validation.checkRequired($(this));\r\n\t\t\t});\r\n\r\n\t\t\tparentForm.find('.inputHolder.checkbox.required').each(function (element) {\r\n\t\t\t\tforms.validation.checkRequiredCheckboxes($(this));\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tinputRules: function (element) {\r\n\t\t\tforms.validation.checkRequired(element);\r\n\t\t\tforms.validation.checkValidMail(element);\r\n\t\t},\r\n\r\n\t\tcheckRequired: function (element) {\r\n\t\t\tif (!element.val() && element[0].required == true) {\r\n\t\t\t\tforms.validation.setInvalid(element);\r\n\t\t\t} else {\r\n\t\t\t\tforms.validation.setValid(element);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tcheckRequiredCheckboxes: function (element) {\r\n\t\t\tif (element.find(':checkbox:checked').length == 0) {\r\n\t\t\t\tforms.validation.setInvalid(element);\r\n\t\t\t} else {\r\n\t\t\t\tforms.validation.setValid(element);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tcheckValidMail: function (element) {\r\n\t\t\tif (element.hasClass('email')) {\r\n\t\t\t\tvar regex = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n\t\t\t\tvar input = element.val();\r\n\t\t\t\tif (regex.test(input)) {\r\n\t\t\t\t\tforms.validation.setValid(element);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tforms.validation.setInvalid(element);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tgetvalidationMessages: function () {\r\n\t\t\t$('.field-validation-valid').each(function () {\r\n\t\t\t\tvar message = $(this).parent().find('input').data('val-required');\r\n\t\t\t\t$(this).text(message).removeClass('field-validation-valid').addClass('errorMessage');\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tmaskDates: function () {\r\n\t\t\t//$('input#Birthdate').mask('00-00-0000');\r\n\t\t\t//$('input#CareStartDate').mask('00-00-0000');\r\n\t\t\tif ($('input#Birthdate').length || $('input#CareStartDate').length) {\r\n\t\t\t\tvar dateToday = new Date(); // Set today's date\r\n\t\t\t\tif (window.windowWidth < 667) {\r\n\t\t\t\t\t$('input#Birthdate').attr('type', 'date');\r\n\t\t\t\t\t$('input#CareStartDate').attr('type', 'date');\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$('input#Birthdate').datepicker({\r\n\t\t\t\t\t\tonSelect: function (dateText) {\r\n\t\t\t\t\t\t\tforms.validation.checkRequired($(this));\r\n\t\t\t\t\t\t\tforms.validation.checkEmptyField();\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdateFormat: 'dd-mm-yy',\r\n\t\t\t\t\t\tchangeYear: true,\r\n\t\t\t\t\t\tyearRange: '-70:+0'\r\n\t\t\t\t\t});\r\n\t\t\t\t\t$('input#CareStartDate').datepicker({\r\n\t\t\t\t\t\tonSelect: function (dateText) {\r\n\t\t\t\t\t\t\tforms.validation.checkRequired($(this));\r\n\t\t\t\t\t\t\tforms.validation.checkEmptyField();\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdateFormat: 'dd-mm-yy',\r\n\t\t\t\t\t\tminDate: dateToday\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tloadAjax: function (url) {\r\n\t\t$.get(url, function (data) {\r\n\t\t\t//success\r\n\t\t\t$('.formPopup').removeClass('loading');\r\n\t\t\t$('.formPopup .inner .scrollWrap .content').html(data);\r\n\t\t\t$('.conditionalDropdown select').each(function () {\r\n\t\t\t\tforms.conditionalDropdown($(this));\r\n\t\t\t});\r\n\t\t\tforms.validation.getvalidationMessages();\r\n\t\t\tforms.validation.maskDates();\r\n\t\t});\r\n\t},\r\n\r\n\tnextStep: function (data) {\r\n\r\n\t\tvar dataObj = $(data);\r\n\r\n\t\tvar targetId = dataObj.find('form').attr('id');\r\n\t\tvar currentId = $('.RegistrationPointForm form').attr('id');\r\n\r\n\t\tvar targetContent = $('.RegistrationPointForm');\r\n\r\n\t\tsetTimeout(function () {\r\n\r\n\t\t\tif (targetId != currentId) {}\r\n\r\n\t\t\ttargetContent.html(dataObj);\r\n\r\n\t\t\tforms.setStep();\r\n\r\n\t\t\tforms.validation.getvalidationMessages();\r\n\t\t}, 200);\r\n\r\n\t},\r\n\r\n\tsubmitAjax: function () {\r\n\t\tvar targetContent = $('.RegistrationPointForm');\r\n\t\tvar url = targetContent.find(\"form\").attr('action');\r\n\t\t$.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: url,\r\n\t\t\tdata: targetContent.find(\"form\").serialize(),\r\n\t\t\tsuccess: function (data) {\r\n\t\t\t\tforms.nextStep(data);\r\n\t\t\t},\r\n\t\t\tcomplete: function () {\r\n\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n};\r\n\r\nvar experienceGallery = {\r\n\tgalleryAddButton: {},\r\n\tinit: function () {\r\n\t\texperienceGallery.onPageLoad();\r\n\t\texperienceGallery.onChange();\r\n\t\texperienceGallery.PreviewHandler();\r\n\t},\r\n\r\n\tonPageLoad: function () {\r\n\r\n\r\n\r\n\t\tif ($('.currentImages li').length > 1) {\r\n\t\t\tSwitchToGallery();\r\n\t\t}\r\n\t},\r\n\r\n\tPreviewHandler: function () {\r\n\t\t$('body').on('click', 'img.thumb', function (e) {\r\n\t\t\t$('.imagePreview .imageHolder').html($(e.target).clone());\r\n\t\t\t$('.imagePreview').addClass('open');\r\n\t\t\tslimmageTools.reload();\r\n\t\t});\r\n\r\n\t\t$('body').on('click', '.imagePreview #close', function (e) {\r\n\t\t\t$('.imagePreview').removeClass('open');\r\n\t\t});\r\n\r\n\t\t$('body').on('click', '.imagePreview #remove', experienceGallery.removals);\r\n\t},\r\n\r\n\tloadImage: function (file, callback) {\r\n\t\tvar reader = new FileReader();\r\n\r\n\t\treader.onload = function (event) {\r\n\t\t\tvar img = new Image();\r\n\r\n\t\t\timg.onload = function () {\r\n\t\t\t\tcallback(img);\r\n\t\t\t};\r\n\r\n\t\t\timg.src = event.target.result;\r\n\t\t};\r\n\r\n\t\treader.onerror = function (error) {\r\n\t\t\tconsole.error('Error reading the file:', error);\r\n\t\t};\r\n\r\n\t\treader.readAsDataURL(file);\r\n\t},\r\n\r\n\tonChange: function () {\r\n\r\n\t\t$('body').on('change', 'input.gallery', function (e) {\r\n\t\t\tvar filename = \"\";\r\n\r\n\t\t\tvar fileArray = [];\r\n\t\t\tif (e.target) {\r\n\t\t\t\tfileArray = e.target.files;\r\n\t\t\t} else {\r\n\t\t\t\tfileArray = e.originalEvent.srcElement.files;\r\n\t\t\t}\r\n\t\t\tfor (var i = 0; i < fileArray.length; i++) {\r\n\r\n\t\t\t\tvar file = fileArray[i];\r\n\t\t\t\tfilename = file.name;\r\n\t\t\t\tvar img = document.createElement('img');\r\n\t\t\t\tvar reader = new FileReader();\r\n\r\n\t\t\t\texperienceGallery.loadImage(e.target.files[0], function (img) {\r\n\t\t\t\t\tvar canvas = document.createElement('canvas');\r\n\t\t\t\t\tvar maxWidth = 1280;\r\n\t\t\t\t\tvar maxHeight = 1280;\r\n\t\t\t\t\tvar width = img.width;\r\n\t\t\t\t\tvar height = img.height;\r\n\r\n\t\t\t\t\tif (width > height) {\r\n\t\t\t\t\t\tif (width > maxWidth) {\r\n\t\t\t\t\t\t\theight *= maxWidth / width;\r\n\t\t\t\t\t\t\twidth = maxWidth;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (height > maxHeight) {\r\n\t\t\t\t\t\t\twidth *= maxHeight / height;\r\n\t\t\t\t\t\t\theight = maxHeight;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tcanvas.width = width;\r\n\t\t\t\t\tcanvas.height = height;\r\n\r\n\t\t\t\t\tvar ctx = canvas.getContext(\"2d\");\r\n\t\t\t\t\tctx.drawImage(img, 0, 0, width, height);\r\n\r\n\t\t\t\t\tvar dataUrl = canvas.toDataURL(\"image/jpeg\", 1);\r\n\t\t\t\t\tvar index = experienceGallery.checkImgIndex();\r\n\t\t\t\t\texperienceGallery.placeImg(dataUrl, index, filename);\r\n\t\t\t\t\texperienceGallery.checkAllowedToPlace();\r\n\t\t\t\t}, {\r\n\t\t\t\t\torientation: true\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\tremovals: function (e) {\r\n\t\tvar preview = $(e.target).closest('.imagePreview').find('img.thumb');\r\n\t\te.preventDefault();\r\n\t\t//console.log(preview.data(\"number\"));\r\n\t\tif (typeof preview.data(\"number\") != \"undefined\") {\r\n\t\t\t$('.currentImages li[data-number=\"' + preview.data(\"number\") + '\"').remove();\r\n\t\t\tpreview.remove();\r\n\t\t\t$('.imagePreview').removeClass(\"open\");\r\n\t\t\texperienceGallery.checkAllowedToPlace();\r\n\t\t}\r\n\t},\r\n\r\n\tcheckImgIndex: function (img) {\r\n\t\tfor (i = 1; i <= 6; i++) {\r\n\t\t\tif ($('.currentImages li[data-number=\"' + i + '\"]').length == 0) {\r\n\t\t\t\treturn i;\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tplaceImg: function (img, index, filename) {\r\n\r\n\t\tvar valueObject = {\r\n\t\t\tname: filename,\r\n\t\t\ttype: \"image/jpg\",\r\n\t\t\timage: img\r\n\t\t}\r\n\r\n\t\tvar html = '' +\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\texperienceGallery.galleryAddButton = $('.currentImages ul li[data-id=\"plus\"]');\r\n\t\t$('.currentImages ul li[data-id=\"plus\"]').replaceWith(html);\r\n\t},\r\n\r\n\tcheckAllowedToPlace: function () {\r\n\t\tif ($('.currentImages li').length != 6) {\r\n\t\t\t$('.currentImages ul').append(experienceGallery.galleryAddButton);\r\n\t\t}\r\n\t}\r\n};\r\n\r\n$(function () {\r\n\tforms.init();\r\n\tMaps.init();\r\n\tInfoBox.init();\r\n\r\n\t$('body').on('click', '.infoSlider', InfoBox.OpenInfoBox);\r\n\r\n\t$('body').on('click', '.infoBoxPager .previous', InfoBox.MoveToPreviousSubMenu);\r\n\r\n\t$('body').on('click', '.infoBoxPager .next', InfoBox.MoveToNextSubMenu);\r\n\r\n\t$('body').on('click', '.backToMainMenu', InfoBox.ResetInfoBoxMenu);\r\n\r\n\t$('body').on('click', '.infoLink', InfoBox.OpenInfoBox);\r\n\r\n\t$('body').on('click', '.infoIconLink', InfoBox.OpenInfoBox);\r\n\r\n\t$('body').on('click', \".infoSubLink\", InfoBox.SetInfoBoxSubject);\r\n\r\n\t$('body').on('change', 'input.gallery', SwitchToGallery);\r\n})","/* global module, require */\n\nmodule.exports = require('./load-image')\n\nrequire('./load-image-scale')\nrequire('./load-image-meta')\nrequire('./load-image-fetch')\nrequire('./load-image-exif')\nrequire('./load-image-exif-map')\nrequire('./load-image-iptc')\nrequire('./load-image-iptc-map')\nrequire('./load-image-orientation')\n","/*\n * JavaScript Load Image Exif Map\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Exif tags mapping based on\n * https://github.com/jseidelin/exif-js\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, module, require */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['./load-image', './load-image-exif'], factory)\n } else if (typeof module === 'object' && module.exports) {\n factory(require('./load-image'), require('./load-image-exif'))\n } else {\n // Browser globals:\n factory(window.loadImage)\n }\n})(function (loadImage) {\n 'use strict'\n\n var ExifMapProto = loadImage.ExifMap.prototype\n\n ExifMapProto.tags = {\n // =================\n // TIFF tags (IFD0):\n // =================\n 0x0100: 'ImageWidth',\n 0x0101: 'ImageHeight',\n 0x0102: 'BitsPerSample',\n 0x0103: 'Compression',\n 0x0106: 'PhotometricInterpretation',\n 0x0112: 'Orientation',\n 0x0115: 'SamplesPerPixel',\n 0x011c: 'PlanarConfiguration',\n 0x0212: 'YCbCrSubSampling',\n 0x0213: 'YCbCrPositioning',\n 0x011a: 'XResolution',\n 0x011b: 'YResolution',\n 0x0128: 'ResolutionUnit',\n 0x0111: 'StripOffsets',\n 0x0116: 'RowsPerStrip',\n 0x0117: 'StripByteCounts',\n 0x0201: 'JPEGInterchangeFormat',\n 0x0202: 'JPEGInterchangeFormatLength',\n 0x012d: 'TransferFunction',\n 0x013e: 'WhitePoint',\n 0x013f: 'PrimaryChromaticities',\n 0x0211: 'YCbCrCoefficients',\n 0x0214: 'ReferenceBlackWhite',\n 0x0132: 'DateTime',\n 0x010e: 'ImageDescription',\n 0x010f: 'Make',\n 0x0110: 'Model',\n 0x0131: 'Software',\n 0x013b: 'Artist',\n 0x8298: 'Copyright',\n 0x8769: {\n // ExifIFDPointer\n 0x9000: 'ExifVersion', // EXIF version\n 0xa000: 'FlashpixVersion', // Flashpix format version\n 0xa001: 'ColorSpace', // Color space information tag\n 0xa002: 'PixelXDimension', // Valid width of meaningful image\n 0xa003: 'PixelYDimension', // Valid height of meaningful image\n 0xa500: 'Gamma',\n 0x9101: 'ComponentsConfiguration', // Information about channels\n 0x9102: 'CompressedBitsPerPixel', // Compressed bits per pixel\n 0x927c: 'MakerNote', // Any desired information written by the manufacturer\n 0x9286: 'UserComment', // Comments by user\n 0xa004: 'RelatedSoundFile', // Name of related sound file\n 0x9003: 'DateTimeOriginal', // Date and time when the original image was generated\n 0x9004: 'DateTimeDigitized', // Date and time when the image was stored digitally\n 0x9010: 'OffsetTime', // Time zone when the image file was last changed\n 0x9011: 'OffsetTimeOriginal', // Time zone when the image was stored digitally\n 0x9012: 'OffsetTimeDigitized', // Time zone when the image was stored digitally\n 0x9290: 'SubSecTime', // Fractions of seconds for DateTime\n 0x9291: 'SubSecTimeOriginal', // Fractions of seconds for DateTimeOriginal\n 0x9292: 'SubSecTimeDigitized', // Fractions of seconds for DateTimeDigitized\n 0x829a: 'ExposureTime', // Exposure time (in seconds)\n 0x829d: 'FNumber',\n 0x8822: 'ExposureProgram', // Exposure program\n 0x8824: 'SpectralSensitivity', // Spectral sensitivity\n 0x8827: 'PhotographicSensitivity', // EXIF 2.3, ISOSpeedRatings in EXIF 2.2\n 0x8828: 'OECF', // Optoelectric conversion factor\n 0x8830: 'SensitivityType',\n 0x8831: 'StandardOutputSensitivity',\n 0x8832: 'RecommendedExposureIndex',\n 0x8833: 'ISOSpeed',\n 0x8834: 'ISOSpeedLatitudeyyy',\n 0x8835: 'ISOSpeedLatitudezzz',\n 0x9201: 'ShutterSpeedValue', // Shutter speed\n 0x9202: 'ApertureValue', // Lens aperture\n 0x9203: 'BrightnessValue', // Value of brightness\n 0x9204: 'ExposureBias', // Exposure bias\n 0x9205: 'MaxApertureValue', // Smallest F number of lens\n 0x9206: 'SubjectDistance', // Distance to subject in meters\n 0x9207: 'MeteringMode', // Metering mode\n 0x9208: 'LightSource', // Kind of light source\n 0x9209: 'Flash', // Flash status\n 0x9214: 'SubjectArea', // Location and area of main subject\n 0x920a: 'FocalLength', // Focal length of the lens in mm\n 0xa20b: 'FlashEnergy', // Strobe energy in BCPS\n 0xa20c: 'SpatialFrequencyResponse',\n 0xa20e: 'FocalPlaneXResolution', // Number of pixels in width direction per FPRUnit\n 0xa20f: 'FocalPlaneYResolution', // Number of pixels in height direction per FPRUnit\n 0xa210: 'FocalPlaneResolutionUnit', // Unit for measuring the focal plane resolution\n 0xa214: 'SubjectLocation', // Location of subject in image\n 0xa215: 'ExposureIndex', // Exposure index selected on camera\n 0xa217: 'SensingMethod', // Image sensor type\n 0xa300: 'FileSource', // Image source (3 == DSC)\n 0xa301: 'SceneType', // Scene type (1 == directly photographed)\n 0xa302: 'CFAPattern', // Color filter array geometric pattern\n 0xa401: 'CustomRendered', // Special processing\n 0xa402: 'ExposureMode', // Exposure mode\n 0xa403: 'WhiteBalance', // 1 = auto white balance, 2 = manual\n 0xa404: 'DigitalZoomRatio', // Digital zoom ratio\n 0xa405: 'FocalLengthIn35mmFilm',\n 0xa406: 'SceneCaptureType', // Type of scene\n 0xa407: 'GainControl', // Degree of overall image gain adjustment\n 0xa408: 'Contrast', // Direction of contrast processing applied by camera\n 0xa409: 'Saturation', // Direction of saturation processing applied by camera\n 0xa40a: 'Sharpness', // Direction of sharpness processing applied by camera\n 0xa40b: 'DeviceSettingDescription',\n 0xa40c: 'SubjectDistanceRange', // Distance to subject\n 0xa420: 'ImageUniqueID', // Identifier assigned uniquely to each image\n 0xa430: 'CameraOwnerName',\n 0xa431: 'BodySerialNumber',\n 0xa432: 'LensSpecification',\n 0xa433: 'LensMake',\n 0xa434: 'LensModel',\n 0xa435: 'LensSerialNumber'\n },\n 0x8825: {\n // GPSInfoIFDPointer\n 0x0000: 'GPSVersionID',\n 0x0001: 'GPSLatitudeRef',\n 0x0002: 'GPSLatitude',\n 0x0003: 'GPSLongitudeRef',\n 0x0004: 'GPSLongitude',\n 0x0005: 'GPSAltitudeRef',\n 0x0006: 'GPSAltitude',\n 0x0007: 'GPSTimeStamp',\n 0x0008: 'GPSSatellites',\n 0x0009: 'GPSStatus',\n 0x000a: 'GPSMeasureMode',\n 0x000b: 'GPSDOP',\n 0x000c: 'GPSSpeedRef',\n 0x000d: 'GPSSpeed',\n 0x000e: 'GPSTrackRef',\n 0x000f: 'GPSTrack',\n 0x0010: 'GPSImgDirectionRef',\n 0x0011: 'GPSImgDirection',\n 0x0012: 'GPSMapDatum',\n 0x0013: 'GPSDestLatitudeRef',\n 0x0014: 'GPSDestLatitude',\n 0x0015: 'GPSDestLongitudeRef',\n 0x0016: 'GPSDestLongitude',\n 0x0017: 'GPSDestBearingRef',\n 0x0018: 'GPSDestBearing',\n 0x0019: 'GPSDestDistanceRef',\n 0x001a: 'GPSDestDistance',\n 0x001b: 'GPSProcessingMethod',\n 0x001c: 'GPSAreaInformation',\n 0x001d: 'GPSDateStamp',\n 0x001e: 'GPSDifferential',\n 0x001f: 'GPSHPositioningError'\n },\n 0xa005: {\n // InteroperabilityIFDPointer\n 0x0001: 'InteroperabilityIndex'\n }\n }\n\n // IFD1 directory can contain any IFD0 tags:\n ExifMapProto.tags.ifd1 = ExifMapProto.tags\n\n ExifMapProto.stringValues = {\n ExposureProgram: {\n 0: 'Undefined',\n 1: 'Manual',\n 2: 'Normal program',\n 3: 'Aperture priority',\n 4: 'Shutter priority',\n 5: 'Creative program',\n 6: 'Action program',\n 7: 'Portrait mode',\n 8: 'Landscape mode'\n },\n MeteringMode: {\n 0: 'Unknown',\n 1: 'Average',\n 2: 'CenterWeightedAverage',\n 3: 'Spot',\n 4: 'MultiSpot',\n 5: 'Pattern',\n 6: 'Partial',\n 255: 'Other'\n },\n LightSource: {\n 0: 'Unknown',\n 1: 'Daylight',\n 2: 'Fluorescent',\n 3: 'Tungsten (incandescent light)',\n 4: 'Flash',\n 9: 'Fine weather',\n 10: 'Cloudy weather',\n 11: 'Shade',\n 12: 'Daylight fluorescent (D 5700 - 7100K)',\n 13: 'Day white fluorescent (N 4600 - 5400K)',\n 14: 'Cool white fluorescent (W 3900 - 4500K)',\n 15: 'White fluorescent (WW 3200 - 3700K)',\n 17: 'Standard light A',\n 18: 'Standard light B',\n 19: 'Standard light C',\n 20: 'D55',\n 21: 'D65',\n 22: 'D75',\n 23: 'D50',\n 24: 'ISO studio tungsten',\n 255: 'Other'\n },\n Flash: {\n 0x0000: 'Flash did not fire',\n 0x0001: 'Flash fired',\n 0x0005: 'Strobe return light not detected',\n 0x0007: 'Strobe return light detected',\n 0x0009: 'Flash fired, compulsory flash mode',\n 0x000d: 'Flash fired, compulsory flash mode, return light not detected',\n 0x000f: 'Flash fired, compulsory flash mode, return light detected',\n 0x0010: 'Flash did not fire, compulsory flash mode',\n 0x0018: 'Flash did not fire, auto mode',\n 0x0019: 'Flash fired, auto mode',\n 0x001d: 'Flash fired, auto mode, return light not detected',\n 0x001f: 'Flash fired, auto mode, return light detected',\n 0x0020: 'No flash function',\n 0x0041: 'Flash fired, red-eye reduction mode',\n 0x0045: 'Flash fired, red-eye reduction mode, return light not detected',\n 0x0047: 'Flash fired, red-eye reduction mode, return light detected',\n 0x0049: 'Flash fired, compulsory flash mode, red-eye reduction mode',\n 0x004d:\n 'Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected',\n 0x004f:\n 'Flash fired, compulsory flash mode, red-eye reduction mode, return light detected',\n 0x0059: 'Flash fired, auto mode, red-eye reduction mode',\n 0x005d:\n 'Flash fired, auto mode, return light not detected, red-eye reduction mode',\n 0x005f:\n 'Flash fired, auto mode, return light detected, red-eye reduction mode'\n },\n SensingMethod: {\n 1: 'Undefined',\n 2: 'One-chip color area sensor',\n 3: 'Two-chip color area sensor',\n 4: 'Three-chip color area sensor',\n 5: 'Color sequential area sensor',\n 7: 'Trilinear sensor',\n 8: 'Color sequential linear sensor'\n },\n SceneCaptureType: {\n 0: 'Standard',\n 1: 'Landscape',\n 2: 'Portrait',\n 3: 'Night scene'\n },\n SceneType: {\n 1: 'Directly photographed'\n },\n CustomRendered: {\n 0: 'Normal process',\n 1: 'Custom process'\n },\n WhiteBalance: {\n 0: 'Auto white balance',\n 1: 'Manual white balance'\n },\n GainControl: {\n 0: 'None',\n 1: 'Low gain up',\n 2: 'High gain up',\n 3: 'Low gain down',\n 4: 'High gain down'\n },\n Contrast: {\n 0: 'Normal',\n 1: 'Soft',\n 2: 'Hard'\n },\n Saturation: {\n 0: 'Normal',\n 1: 'Low saturation',\n 2: 'High saturation'\n },\n Sharpness: {\n 0: 'Normal',\n 1: 'Soft',\n 2: 'Hard'\n },\n SubjectDistanceRange: {\n 0: 'Unknown',\n 1: 'Macro',\n 2: 'Close view',\n 3: 'Distant view'\n },\n FileSource: {\n 3: 'DSC'\n },\n ComponentsConfiguration: {\n 0: '',\n 1: 'Y',\n 2: 'Cb',\n 3: 'Cr',\n 4: 'R',\n 5: 'G',\n 6: 'B'\n },\n Orientation: {\n 1: 'Original',\n 2: 'Horizontal flip',\n 3: 'Rotate 180° CCW',\n 4: 'Vertical flip',\n 5: 'Vertical flip + Rotate 90° CW',\n 6: 'Rotate 90° CW',\n 7: 'Horizontal flip + Rotate 90° CW',\n 8: 'Rotate 90° CCW'\n }\n }\n\n ExifMapProto.getText = function (name) {\n var value = this.get(name)\n switch (name) {\n case 'LightSource':\n case 'Flash':\n case 'MeteringMode':\n case 'ExposureProgram':\n case 'SensingMethod':\n case 'SceneCaptureType':\n case 'SceneType':\n case 'CustomRendered':\n case 'WhiteBalance':\n case 'GainControl':\n case 'Contrast':\n case 'Saturation':\n case 'Sharpness':\n case 'SubjectDistanceRange':\n case 'FileSource':\n case 'Orientation':\n return this.stringValues[name][value]\n case 'ExifVersion':\n case 'FlashpixVersion':\n if (!value) return\n return String.fromCharCode(value[0], value[1], value[2], value[3])\n case 'ComponentsConfiguration':\n if (!value) return\n return (\n this.stringValues[name][value[0]] +\n this.stringValues[name][value[1]] +\n this.stringValues[name][value[2]] +\n this.stringValues[name][value[3]]\n )\n case 'GPSVersionID':\n if (!value) return\n return value[0] + '.' + value[1] + '.' + value[2] + '.' + value[3]\n }\n return String(value)\n }\n\n ExifMapProto.getAll = function () {\n var map = {}\n var prop\n var obj\n var name\n for (prop in this) {\n if (Object.prototype.hasOwnProperty.call(this, prop)) {\n obj = this[prop]\n if (obj && obj.getAll) {\n map[this.ifds[prop].name] = obj.getAll()\n } else {\n name = this.tags[prop]\n if (name) map[name] = this.getText(name)\n }\n }\n }\n return map\n }\n\n ExifMapProto.getName = function (tagCode) {\n var name = this.tags[tagCode]\n if (typeof name === 'object') return this.ifds[tagCode].name\n return name\n }\n\n // Extend the map of tag names to tag codes:\n ;(function () {\n var tags = ExifMapProto.tags\n var prop\n var ifd\n var subTags\n // Map the tag names to tags:\n for (prop in tags) {\n if (Object.prototype.hasOwnProperty.call(tags, prop)) {\n ifd = ExifMapProto.ifds[prop]\n if (ifd) {\n subTags = tags[prop]\n for (prop in subTags) {\n if (Object.prototype.hasOwnProperty.call(subTags, prop)) {\n ifd.map[subTags[prop]] = Number(prop)\n }\n }\n } else {\n ExifMapProto.map[tags[prop]] = Number(prop)\n }\n }\n }\n })()\n})\n","/*\n * JavaScript Load Image Exif Parser\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, module, require, DataView */\n\n/* eslint-disable no-console */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['./load-image', './load-image-meta'], factory)\n } else if (typeof module === 'object' && module.exports) {\n factory(require('./load-image'), require('./load-image-meta'))\n } else {\n // Browser globals:\n factory(window.loadImage)\n }\n})(function (loadImage) {\n 'use strict'\n\n /**\n * Exif tag map\n *\n * @name ExifMap\n * @class\n * @param {number|string} tagCode IFD tag code\n */\n function ExifMap(tagCode) {\n if (tagCode) {\n Object.defineProperty(this, 'map', {\n value: this.ifds[tagCode].map\n })\n Object.defineProperty(this, 'tags', {\n value: (this.tags && this.tags[tagCode]) || {}\n })\n }\n }\n\n ExifMap.prototype.map = {\n Orientation: 0x0112,\n Thumbnail: 'ifd1',\n Blob: 0x0201, // Alias for JPEGInterchangeFormat\n Exif: 0x8769,\n GPSInfo: 0x8825,\n Interoperability: 0xa005\n }\n\n ExifMap.prototype.ifds = {\n ifd1: { name: 'Thumbnail', map: ExifMap.prototype.map },\n 0x8769: { name: 'Exif', map: {} },\n 0x8825: { name: 'GPSInfo', map: {} },\n 0xa005: { name: 'Interoperability', map: {} }\n }\n\n /**\n * Retrieves exif tag value\n *\n * @param {number|string} id Exif tag code or name\n * @returns {object} Exif tag value\n */\n ExifMap.prototype.get = function (id) {\n return this[id] || this[this.map[id]]\n }\n\n /**\n * Returns the Exif Thumbnail data as Blob.\n *\n * @param {DataView} dataView Data view interface\n * @param {number} offset Thumbnail data offset\n * @param {number} length Thumbnail data length\n * @returns {undefined|Blob} Returns the Thumbnail Blob or undefined\n */\n function getExifThumbnail(dataView, offset, length) {\n if (!length) return\n if (offset + length > dataView.byteLength) {\n console.log('Invalid Exif data: Invalid thumbnail data.')\n return\n }\n return new Blob(\n [loadImage.bufferSlice.call(dataView.buffer, offset, offset + length)],\n {\n type: 'image/jpeg'\n }\n )\n }\n\n var ExifTagTypes = {\n // byte, 8-bit unsigned int:\n 1: {\n getValue: function (dataView, dataOffset) {\n return dataView.getUint8(dataOffset)\n },\n size: 1\n },\n // ascii, 8-bit byte:\n 2: {\n getValue: function (dataView, dataOffset) {\n return String.fromCharCode(dataView.getUint8(dataOffset))\n },\n size: 1,\n ascii: true\n },\n // short, 16 bit int:\n 3: {\n getValue: function (dataView, dataOffset, littleEndian) {\n return dataView.getUint16(dataOffset, littleEndian)\n },\n size: 2\n },\n // long, 32 bit int:\n 4: {\n getValue: function (dataView, dataOffset, littleEndian) {\n return dataView.getUint32(dataOffset, littleEndian)\n },\n size: 4\n },\n // rational = two long values, first is numerator, second is denominator:\n 5: {\n getValue: function (dataView, dataOffset, littleEndian) {\n return (\n dataView.getUint32(dataOffset, littleEndian) /\n dataView.getUint32(dataOffset + 4, littleEndian)\n )\n },\n size: 8\n },\n // slong, 32 bit signed int:\n 9: {\n getValue: function (dataView, dataOffset, littleEndian) {\n return dataView.getInt32(dataOffset, littleEndian)\n },\n size: 4\n },\n // srational, two slongs, first is numerator, second is denominator:\n 10: {\n getValue: function (dataView, dataOffset, littleEndian) {\n return (\n dataView.getInt32(dataOffset, littleEndian) /\n dataView.getInt32(dataOffset + 4, littleEndian)\n )\n },\n size: 8\n }\n }\n // undefined, 8-bit byte, value depending on field:\n ExifTagTypes[7] = ExifTagTypes[1]\n\n /**\n * Returns Exif tag value.\n *\n * @param {DataView} dataView Data view interface\n * @param {number} tiffOffset TIFF offset\n * @param {number} offset Tag offset\n * @param {number} type Tag type\n * @param {number} length Tag length\n * @param {boolean} littleEndian Little endian encoding\n * @returns {object} Tag value\n */\n function getExifValue(\n dataView,\n tiffOffset,\n offset,\n type,\n length,\n littleEndian\n ) {\n var tagType = ExifTagTypes[type]\n var tagSize\n var dataOffset\n var values\n var i\n var str\n var c\n if (!tagType) {\n console.log('Invalid Exif data: Invalid tag type.')\n return\n }\n tagSize = tagType.size * length\n // Determine if the value is contained in the dataOffset bytes,\n // or if the value at the dataOffset is a pointer to the actual data:\n dataOffset =\n tagSize > 4\n ? tiffOffset + dataView.getUint32(offset + 8, littleEndian)\n : offset + 8\n if (dataOffset + tagSize > dataView.byteLength) {\n console.log('Invalid Exif data: Invalid data offset.')\n return\n }\n if (length === 1) {\n return tagType.getValue(dataView, dataOffset, littleEndian)\n }\n values = []\n for (i = 0; i < length; i += 1) {\n values[i] = tagType.getValue(\n dataView,\n dataOffset + i * tagType.size,\n littleEndian\n )\n }\n if (tagType.ascii) {\n str = ''\n // Concatenate the chars:\n for (i = 0; i < values.length; i += 1) {\n c = values[i]\n // Ignore the terminating NULL byte(s):\n if (c === '\\u0000') {\n break\n }\n str += c\n }\n return str\n }\n return values\n }\n\n /**\n * Determines if the given tag should be included.\n *\n * @param {object} includeTags Map of tags to include\n * @param {object} excludeTags Map of tags to exclude\n * @param {number|string} tagCode Tag code to check\n * @returns {boolean} True if the tag should be included\n */\n function shouldIncludeTag(includeTags, excludeTags, tagCode) {\n return (\n (!includeTags || includeTags[tagCode]) &&\n (!excludeTags || excludeTags[tagCode] !== true)\n )\n }\n\n /**\n * Parses Exif tags.\n *\n * @param {DataView} dataView Data view interface\n * @param {number} tiffOffset TIFF offset\n * @param {number} dirOffset Directory offset\n * @param {boolean} littleEndian Little endian encoding\n * @param {ExifMap} tags Map to store parsed exif tags\n * @param {ExifMap} tagOffsets Map to store parsed exif tag offsets\n * @param {object} includeTags Map of tags to include\n * @param {object} excludeTags Map of tags to exclude\n * @returns {number} Next directory offset\n */\n function parseExifTags(\n dataView,\n tiffOffset,\n dirOffset,\n littleEndian,\n tags,\n tagOffsets,\n includeTags,\n excludeTags\n ) {\n var tagsNumber, dirEndOffset, i, tagOffset, tagNumber, tagValue\n if (dirOffset + 6 > dataView.byteLength) {\n console.log('Invalid Exif data: Invalid directory offset.')\n return\n }\n tagsNumber = dataView.getUint16(dirOffset, littleEndian)\n dirEndOffset = dirOffset + 2 + 12 * tagsNumber\n if (dirEndOffset + 4 > dataView.byteLength) {\n console.log('Invalid Exif data: Invalid directory size.')\n return\n }\n for (i = 0; i < tagsNumber; i += 1) {\n tagOffset = dirOffset + 2 + 12 * i\n tagNumber = dataView.getUint16(tagOffset, littleEndian)\n if (!shouldIncludeTag(includeTags, excludeTags, tagNumber)) continue\n tagValue = getExifValue(\n dataView,\n tiffOffset,\n tagOffset,\n dataView.getUint16(tagOffset + 2, littleEndian), // tag type\n dataView.getUint32(tagOffset + 4, littleEndian), // tag length\n littleEndian\n )\n tags[tagNumber] = tagValue\n if (tagOffsets) {\n tagOffsets[tagNumber] = tagOffset\n }\n }\n // Return the offset to the next directory:\n return dataView.getUint32(dirEndOffset, littleEndian)\n }\n\n /**\n * Parses tags in a given IFD (Image File Directory).\n *\n * @param {object} data Data object to store exif tags and offsets\n * @param {number|string} tagCode IFD tag code\n * @param {DataView} dataView Data view interface\n * @param {number} tiffOffset TIFF offset\n * @param {boolean} littleEndian Little endian encoding\n * @param {object} includeTags Map of tags to include\n * @param {object} excludeTags Map of tags to exclude\n */\n function parseExifIFD(\n data,\n tagCode,\n dataView,\n tiffOffset,\n littleEndian,\n includeTags,\n excludeTags\n ) {\n var dirOffset = data.exif[tagCode]\n if (dirOffset) {\n data.exif[tagCode] = new ExifMap(tagCode)\n if (data.exifOffsets) {\n data.exifOffsets[tagCode] = new ExifMap(tagCode)\n }\n parseExifTags(\n dataView,\n tiffOffset,\n tiffOffset + dirOffset,\n littleEndian,\n data.exif[tagCode],\n data.exifOffsets && data.exifOffsets[tagCode],\n includeTags && includeTags[tagCode],\n excludeTags && excludeTags[tagCode]\n )\n }\n }\n\n loadImage.parseExifData = function (dataView, offset, length, data, options) {\n if (options.disableExif) {\n return\n }\n var includeTags = options.includeExifTags\n var excludeTags = options.excludeExifTags || {\n 0x8769: {\n // ExifIFDPointer\n 0x927c: true // MakerNote\n }\n }\n var tiffOffset = offset + 10\n var littleEndian\n var dirOffset\n var thumbnailIFD\n // Check for the ASCII code for \"Exif\" (0x45786966):\n if (dataView.getUint32(offset + 4) !== 0x45786966) {\n // No Exif data, might be XMP data instead\n return\n }\n if (tiffOffset + 8 > dataView.byteLength) {\n console.log('Invalid Exif data: Invalid segment size.')\n return\n }\n // Check for the two null bytes:\n if (dataView.getUint16(offset + 8) !== 0x0000) {\n console.log('Invalid Exif data: Missing byte alignment offset.')\n return\n }\n // Check the byte alignment:\n switch (dataView.getUint16(tiffOffset)) {\n case 0x4949:\n littleEndian = true\n break\n case 0x4d4d:\n littleEndian = false\n break\n default:\n console.log('Invalid Exif data: Invalid byte alignment marker.')\n return\n }\n // Check for the TIFF tag marker (0x002A):\n if (dataView.getUint16(tiffOffset + 2, littleEndian) !== 0x002a) {\n console.log('Invalid Exif data: Missing TIFF marker.')\n return\n }\n // Retrieve the directory offset bytes, usually 0x00000008 or 8 decimal:\n dirOffset = dataView.getUint32(tiffOffset + 4, littleEndian)\n // Create the exif object to store the tags:\n data.exif = new ExifMap()\n if (!options.disableExifOffsets) {\n data.exifOffsets = new ExifMap()\n data.exifTiffOffset = tiffOffset\n data.exifLittleEndian = littleEndian\n }\n // Parse the tags of the main image directory (IFD0) and retrieve the\n // offset to the next directory (IFD1), usually the thumbnail directory:\n dirOffset = parseExifTags(\n dataView,\n tiffOffset,\n tiffOffset + dirOffset,\n littleEndian,\n data.exif,\n data.exifOffsets,\n includeTags,\n excludeTags\n )\n if (dirOffset && shouldIncludeTag(includeTags, excludeTags, 'ifd1')) {\n data.exif.ifd1 = dirOffset\n if (data.exifOffsets) {\n data.exifOffsets.ifd1 = tiffOffset + dirOffset\n }\n }\n Object.keys(data.exif.ifds).forEach(function (tagCode) {\n parseExifIFD(\n data,\n tagCode,\n dataView,\n tiffOffset,\n littleEndian,\n includeTags,\n excludeTags\n )\n })\n thumbnailIFD = data.exif.ifd1\n // Check for JPEG Thumbnail offset and data length:\n if (thumbnailIFD && thumbnailIFD[0x0201]) {\n thumbnailIFD[0x0201] = getExifThumbnail(\n dataView,\n tiffOffset + thumbnailIFD[0x0201],\n thumbnailIFD[0x0202] // Thumbnail data length\n )\n }\n }\n\n // Registers the Exif parser for the APP1 JPEG metadata segment:\n loadImage.metaDataParsers.jpeg[0xffe1].push(loadImage.parseExifData)\n\n loadImage.exifWriters = {\n // Orientation writer:\n 0x0112: function (buffer, data, value) {\n var orientationOffset = data.exifOffsets[0x0112]\n if (!orientationOffset) return buffer\n var view = new DataView(buffer, orientationOffset + 8, 2)\n view.setUint16(0, value, data.exifLittleEndian)\n return buffer\n }\n }\n\n loadImage.writeExifData = function (buffer, data, id, value) {\n return loadImage.exifWriters[data.exif.map[id]](buffer, data, value)\n }\n\n loadImage.ExifMap = ExifMap\n\n // Adds the following properties to the parseMetaData callback data:\n // - exif: The parsed Exif tags\n // - exifOffsets: The parsed Exif tag offsets\n // - exifTiffOffset: TIFF header offset (used for offset pointers)\n // - exifLittleEndian: little endian order if true, big endian if false\n\n // Adds the following options to the parseMetaData method:\n // - disableExif: Disables Exif parsing when true.\n // - disableExifOffsets: Disables storing Exif tag offsets when true.\n // - includeExifTags: A map of Exif tags to include for parsing.\n // - excludeExifTags: A map of Exif tags to exclude from parsing.\n})\n","/*\n * JavaScript Load Image Fetch\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2017, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, module, require, Promise */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['./load-image'], factory)\n } else if (typeof module === 'object' && module.exports) {\n factory(require('./load-image'))\n } else {\n // Browser globals:\n factory(window.loadImage)\n }\n})(function (loadImage) {\n 'use strict'\n\n var global = loadImage.global\n\n if (\n global.fetch &&\n global.Request &&\n global.Response &&\n global.Response.prototype.blob\n ) {\n loadImage.fetchBlob = function (url, callback, options) {\n /**\n * Fetch response handler.\n *\n * @param {Response} response Fetch response\n * @returns {Blob} Fetched Blob.\n */\n function responseHandler(response) {\n return response.blob()\n }\n if (global.Promise && typeof callback !== 'function') {\n return fetch(new Request(url, callback)).then(responseHandler)\n }\n fetch(new Request(url, options))\n .then(responseHandler)\n .then(callback)\n [\n // Avoid parsing error in IE<9, where catch is a reserved word.\n // eslint-disable-next-line dot-notation\n 'catch'\n ](function (err) {\n callback(null, err)\n })\n }\n } else if (\n global.XMLHttpRequest &&\n // https://xhr.spec.whatwg.org/#the-responsetype-attribute\n new XMLHttpRequest().responseType === ''\n ) {\n loadImage.fetchBlob = function (url, callback, options) {\n /**\n * Promise executor\n *\n * @param {Function} resolve Resolution function\n * @param {Function} reject Rejection function\n */\n function executor(resolve, reject) {\n options = options || {} // eslint-disable-line no-param-reassign\n var req = new XMLHttpRequest()\n req.open(options.method || 'GET', url)\n if (options.headers) {\n Object.keys(options.headers).forEach(function (key) {\n req.setRequestHeader(key, options.headers[key])\n })\n }\n req.withCredentials = options.credentials === 'include'\n req.responseType = 'blob'\n req.onload = function () {\n resolve(req.response)\n }\n req.onerror =\n req.onabort =\n req.ontimeout =\n function (err) {\n if (resolve === reject) {\n // Not using Promises\n reject(null, err)\n } else {\n reject(err)\n }\n }\n req.send(options.body)\n }\n if (global.Promise && typeof callback !== 'function') {\n options = callback // eslint-disable-line no-param-reassign\n return new Promise(executor)\n }\n return executor(callback, callback)\n }\n }\n})\n","/*\n * JavaScript Load Image IPTC Map\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2013, Sebastian Tschan\n * Copyright 2018, Dave Bevan\n *\n * IPTC tags mapping based on\n * https://iptc.org/standards/photo-metadata\n * https://exiftool.org/TagNames/IPTC.html\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, module, require */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['./load-image', './load-image-iptc'], factory)\n } else if (typeof module === 'object' && module.exports) {\n factory(require('./load-image'), require('./load-image-iptc'))\n } else {\n // Browser globals:\n factory(window.loadImage)\n }\n})(function (loadImage) {\n 'use strict'\n\n var IptcMapProto = loadImage.IptcMap.prototype\n\n IptcMapProto.tags = {\n 0: 'ApplicationRecordVersion',\n 3: 'ObjectTypeReference',\n 4: 'ObjectAttributeReference',\n 5: 'ObjectName',\n 7: 'EditStatus',\n 8: 'EditorialUpdate',\n 10: 'Urgency',\n 12: 'SubjectReference',\n 15: 'Category',\n 20: 'SupplementalCategories',\n 22: 'FixtureIdentifier',\n 25: 'Keywords',\n 26: 'ContentLocationCode',\n 27: 'ContentLocationName',\n 30: 'ReleaseDate',\n 35: 'ReleaseTime',\n 37: 'ExpirationDate',\n 38: 'ExpirationTime',\n 40: 'SpecialInstructions',\n 42: 'ActionAdvised',\n 45: 'ReferenceService',\n 47: 'ReferenceDate',\n 50: 'ReferenceNumber',\n 55: 'DateCreated',\n 60: 'TimeCreated',\n 62: 'DigitalCreationDate',\n 63: 'DigitalCreationTime',\n 65: 'OriginatingProgram',\n 70: 'ProgramVersion',\n 75: 'ObjectCycle',\n 80: 'Byline',\n 85: 'BylineTitle',\n 90: 'City',\n 92: 'Sublocation',\n 95: 'State',\n 100: 'CountryCode',\n 101: 'Country',\n 103: 'OriginalTransmissionReference',\n 105: 'Headline',\n 110: 'Credit',\n 115: 'Source',\n 116: 'CopyrightNotice',\n 118: 'Contact',\n 120: 'Caption',\n 121: 'LocalCaption',\n 122: 'Writer',\n 125: 'RasterizedCaption',\n 130: 'ImageType',\n 131: 'ImageOrientation',\n 135: 'LanguageIdentifier',\n 150: 'AudioType',\n 151: 'AudioSamplingRate',\n 152: 'AudioSamplingResolution',\n 153: 'AudioDuration',\n 154: 'AudioOutcue',\n 184: 'JobID',\n 185: 'MasterDocumentID',\n 186: 'ShortDocumentID',\n 187: 'UniqueDocumentID',\n 188: 'OwnerID',\n 200: 'ObjectPreviewFileFormat',\n 201: 'ObjectPreviewFileVersion',\n 202: 'ObjectPreviewData',\n 221: 'Prefs',\n 225: 'ClassifyState',\n 228: 'SimilarityIndex',\n 230: 'DocumentNotes',\n 231: 'DocumentHistory',\n 232: 'ExifCameraInfo',\n 255: 'CatalogSets'\n }\n\n IptcMapProto.stringValues = {\n 10: {\n 0: '0 (reserved)',\n 1: '1 (most urgent)',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5 (normal urgency)',\n 6: '6',\n 7: '7',\n 8: '8 (least urgent)',\n 9: '9 (user-defined priority)'\n },\n 75: {\n a: 'Morning',\n b: 'Both Morning and Evening',\n p: 'Evening'\n },\n 131: {\n L: 'Landscape',\n P: 'Portrait',\n S: 'Square'\n }\n }\n\n IptcMapProto.getText = function (id) {\n var value = this.get(id)\n var tagCode = this.map[id]\n var stringValue = this.stringValues[tagCode]\n if (stringValue) return stringValue[value]\n return String(value)\n }\n\n IptcMapProto.getAll = function () {\n var map = {}\n var prop\n var name\n for (prop in this) {\n if (Object.prototype.hasOwnProperty.call(this, prop)) {\n name = this.tags[prop]\n if (name) map[name] = this.getText(name)\n }\n }\n return map\n }\n\n IptcMapProto.getName = function (tagCode) {\n return this.tags[tagCode]\n }\n\n // Extend the map of tag names to tag codes:\n ;(function () {\n var tags = IptcMapProto.tags\n var map = IptcMapProto.map || {}\n var prop\n // Map the tag names to tags:\n for (prop in tags) {\n if (Object.prototype.hasOwnProperty.call(tags, prop)) {\n map[tags[prop]] = Number(prop)\n }\n }\n })()\n})\n","/*\n * JavaScript Load Image IPTC Parser\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2013, Sebastian Tschan\n * Copyright 2018, Dave Bevan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, module, require, DataView */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['./load-image', './load-image-meta'], factory)\n } else if (typeof module === 'object' && module.exports) {\n factory(require('./load-image'), require('./load-image-meta'))\n } else {\n // Browser globals:\n factory(window.loadImage)\n }\n})(function (loadImage) {\n 'use strict'\n\n /**\n * IPTC tag map\n *\n * @name IptcMap\n * @class\n */\n function IptcMap() {}\n\n IptcMap.prototype.map = {\n ObjectName: 5\n }\n\n IptcMap.prototype.types = {\n 0: 'Uint16', // ApplicationRecordVersion\n 200: 'Uint16', // ObjectPreviewFileFormat\n 201: 'Uint16', // ObjectPreviewFileVersion\n 202: 'binary' // ObjectPreviewData\n }\n\n /**\n * Retrieves IPTC tag value\n *\n * @param {number|string} id IPTC tag code or name\n * @returns {object} IPTC tag value\n */\n IptcMap.prototype.get = function (id) {\n return this[id] || this[this.map[id]]\n }\n\n /**\n * Retrieves string for the given DataView and range\n *\n * @param {DataView} dataView Data view interface\n * @param {number} offset Offset start\n * @param {number} length Offset length\n * @returns {string} String value\n */\n function getStringValue(dataView, offset, length) {\n var outstr = ''\n var end = offset + length\n for (var n = offset; n < end; n += 1) {\n outstr += String.fromCharCode(dataView.getUint8(n))\n }\n return outstr\n }\n\n /**\n * Retrieves tag value for the given DataView and range\n *\n * @param {number} tagCode tag code\n * @param {IptcMap} map IPTC tag map\n * @param {DataView} dataView Data view interface\n * @param {number} offset Range start\n * @param {number} length Range length\n * @returns {object} Tag value\n */\n function getTagValue(tagCode, map, dataView, offset, length) {\n if (map.types[tagCode] === 'binary') {\n return new Blob([dataView.buffer.slice(offset, offset + length)])\n }\n if (map.types[tagCode] === 'Uint16') {\n return dataView.getUint16(offset)\n }\n return getStringValue(dataView, offset, length)\n }\n\n /**\n * Combines IPTC value with existing ones.\n *\n * @param {object} value Existing IPTC field value\n * @param {object} newValue New IPTC field value\n * @returns {object} Resulting IPTC field value\n */\n function combineTagValues(value, newValue) {\n if (value === undefined) return newValue\n if (value instanceof Array) {\n value.push(newValue)\n return value\n }\n return [value, newValue]\n }\n\n /**\n * Parses IPTC tags.\n *\n * @param {DataView} dataView Data view interface\n * @param {number} segmentOffset Segment offset\n * @param {number} segmentLength Segment length\n * @param {object} data Data export object\n * @param {object} includeTags Map of tags to include\n * @param {object} excludeTags Map of tags to exclude\n */\n function parseIptcTags(\n dataView,\n segmentOffset,\n segmentLength,\n data,\n includeTags,\n excludeTags\n ) {\n var value, tagSize, tagCode\n var segmentEnd = segmentOffset + segmentLength\n var offset = segmentOffset\n while (offset < segmentEnd) {\n if (\n dataView.getUint8(offset) === 0x1c && // tag marker\n dataView.getUint8(offset + 1) === 0x02 // record number, only handles v2\n ) {\n tagCode = dataView.getUint8(offset + 2)\n if (\n (!includeTags || includeTags[tagCode]) &&\n (!excludeTags || !excludeTags[tagCode])\n ) {\n tagSize = dataView.getInt16(offset + 3)\n value = getTagValue(tagCode, data.iptc, dataView, offset + 5, tagSize)\n data.iptc[tagCode] = combineTagValues(data.iptc[tagCode], value)\n if (data.iptcOffsets) {\n data.iptcOffsets[tagCode] = offset\n }\n }\n }\n offset += 1\n }\n }\n\n /**\n * Tests if field segment starts at offset.\n *\n * @param {DataView} dataView Data view interface\n * @param {number} offset Segment offset\n * @returns {boolean} True if '8BIM' exists at offset\n */\n function isSegmentStart(dataView, offset) {\n return (\n dataView.getUint32(offset) === 0x3842494d && // Photoshop segment start\n dataView.getUint16(offset + 4) === 0x0404 // IPTC segment start\n )\n }\n\n /**\n * Returns header length.\n *\n * @param {DataView} dataView Data view interface\n * @param {number} offset Segment offset\n * @returns {number} Header length\n */\n function getHeaderLength(dataView, offset) {\n var length = dataView.getUint8(offset + 7)\n if (length % 2 !== 0) length += 1\n // Check for pre photoshop 6 format\n if (length === 0) {\n // Always 4\n length = 4\n }\n return length\n }\n\n loadImage.parseIptcData = function (dataView, offset, length, data, options) {\n if (options.disableIptc) {\n return\n }\n var markerLength = offset + length\n while (offset + 8 < markerLength) {\n if (isSegmentStart(dataView, offset)) {\n var headerLength = getHeaderLength(dataView, offset)\n var segmentOffset = offset + 8 + headerLength\n if (segmentOffset > markerLength) {\n // eslint-disable-next-line no-console\n console.log('Invalid IPTC data: Invalid segment offset.')\n break\n }\n var segmentLength = dataView.getUint16(offset + 6 + headerLength)\n if (offset + segmentLength > markerLength) {\n // eslint-disable-next-line no-console\n console.log('Invalid IPTC data: Invalid segment size.')\n break\n }\n // Create the iptc object to store the tags:\n data.iptc = new IptcMap()\n if (!options.disableIptcOffsets) {\n data.iptcOffsets = new IptcMap()\n }\n parseIptcTags(\n dataView,\n segmentOffset,\n segmentLength,\n data,\n options.includeIptcTags,\n options.excludeIptcTags || { 202: true } // ObjectPreviewData\n )\n return\n }\n // eslint-disable-next-line no-param-reassign\n offset += 1\n }\n }\n\n // Registers this IPTC parser for the APP13 JPEG metadata segment:\n loadImage.metaDataParsers.jpeg[0xffed].push(loadImage.parseIptcData)\n\n loadImage.IptcMap = IptcMap\n\n // Adds the following properties to the parseMetaData callback data:\n // - iptc: The iptc tags, parsed by the parseIptcData method\n\n // Adds the following options to the parseMetaData method:\n // - disableIptc: Disables IPTC parsing when true.\n // - disableIptcOffsets: Disables storing IPTC tag offsets when true.\n // - includeIptcTags: A map of IPTC tags to include for parsing.\n // - excludeIptcTags: A map of IPTC tags to exclude from parsing.\n})\n","/*\n * JavaScript Load Image Meta\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Image metadata handling implementation\n * based on the help and contribution of\n * Achim Stöhr.\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, module, require, Promise, DataView, Uint8Array, ArrayBuffer */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['./load-image'], factory)\n } else if (typeof module === 'object' && module.exports) {\n factory(require('./load-image'))\n } else {\n // Browser globals:\n factory(window.loadImage)\n }\n})(function (loadImage) {\n 'use strict'\n\n var global = loadImage.global\n var originalTransform = loadImage.transform\n\n var blobSlice =\n global.Blob &&\n (Blob.prototype.slice ||\n Blob.prototype.webkitSlice ||\n Blob.prototype.mozSlice)\n\n var bufferSlice =\n (global.ArrayBuffer && ArrayBuffer.prototype.slice) ||\n function (begin, end) {\n // Polyfill for IE10, which does not support ArrayBuffer.slice\n // eslint-disable-next-line no-param-reassign\n end = end || this.byteLength - begin\n var arr1 = new Uint8Array(this, begin, end)\n var arr2 = new Uint8Array(end)\n arr2.set(arr1)\n return arr2.buffer\n }\n\n var metaDataParsers = {\n jpeg: {\n 0xffe1: [], // APP1 marker\n 0xffed: [] // APP13 marker\n }\n }\n\n /**\n * Parses image metadata and calls the callback with an object argument\n * with the following property:\n * - imageHead: The complete image head as ArrayBuffer\n * The options argument accepts an object and supports the following\n * properties:\n * - maxMetaDataSize: Defines the maximum number of bytes to parse.\n * - disableImageHead: Disables creating the imageHead property.\n *\n * @param {Blob} file Blob object\n * @param {Function} [callback] Callback function\n * @param {object} [options] Parsing options\n * @param {object} [data] Result data object\n * @returns {Promise|undefined} Returns Promise if no callback given.\n */\n function parseMetaData(file, callback, options, data) {\n var that = this\n /**\n * Promise executor\n *\n * @param {Function} resolve Resolution function\n * @param {Function} reject Rejection function\n * @returns {undefined} Undefined\n */\n function executor(resolve, reject) {\n if (\n !(\n global.DataView &&\n blobSlice &&\n file &&\n file.size >= 12 &&\n file.type === 'image/jpeg'\n )\n ) {\n // Nothing to parse\n return resolve(data)\n }\n // 256 KiB should contain all EXIF/ICC/IPTC segments:\n var maxMetaDataSize = options.maxMetaDataSize || 262144\n if (\n !loadImage.readFile(\n blobSlice.call(file, 0, maxMetaDataSize),\n function (buffer) {\n // Note on endianness:\n // Since the marker and length bytes in JPEG files are always\n // stored in big endian order, we can leave the endian parameter\n // of the DataView methods undefined, defaulting to big endian.\n var dataView = new DataView(buffer)\n // Check for the JPEG marker (0xffd8):\n if (dataView.getUint16(0) !== 0xffd8) {\n return reject(\n new Error('Invalid JPEG file: Missing JPEG marker.')\n )\n }\n var offset = 2\n var maxOffset = dataView.byteLength - 4\n var headLength = offset\n var markerBytes\n var markerLength\n var parsers\n var i\n while (offset < maxOffset) {\n markerBytes = dataView.getUint16(offset)\n // Search for APPn (0xffeN) and COM (0xfffe) markers,\n // which contain application-specific metadata like\n // Exif, ICC and IPTC data and text comments:\n if (\n (markerBytes >= 0xffe0 && markerBytes <= 0xffef) ||\n markerBytes === 0xfffe\n ) {\n // The marker bytes (2) are always followed by\n // the length bytes (2), indicating the length of the\n // marker segment, which includes the length bytes,\n // but not the marker bytes, so we add 2:\n markerLength = dataView.getUint16(offset + 2) + 2\n if (offset + markerLength > dataView.byteLength) {\n // eslint-disable-next-line no-console\n console.log('Invalid JPEG metadata: Invalid segment size.')\n break\n }\n parsers = metaDataParsers.jpeg[markerBytes]\n if (parsers && !options.disableMetaDataParsers) {\n for (i = 0; i < parsers.length; i += 1) {\n parsers[i].call(\n that,\n dataView,\n offset,\n markerLength,\n data,\n options\n )\n }\n }\n offset += markerLength\n headLength = offset\n } else {\n // Not an APPn or COM marker, probably safe to\n // assume that this is the end of the metadata\n break\n }\n }\n // Meta length must be longer than JPEG marker (2)\n // plus APPn marker (2), followed by length bytes (2):\n if (!options.disableImageHead && headLength > 6) {\n data.imageHead = bufferSlice.call(buffer, 0, headLength)\n }\n resolve(data)\n },\n reject,\n 'readAsArrayBuffer'\n )\n ) {\n // No support for the FileReader interface, nothing to parse\n resolve(data)\n }\n }\n options = options || {} // eslint-disable-line no-param-reassign\n if (global.Promise && typeof callback !== 'function') {\n options = callback || {} // eslint-disable-line no-param-reassign\n data = options // eslint-disable-line no-param-reassign\n return new Promise(executor)\n }\n data = data || {} // eslint-disable-line no-param-reassign\n return executor(callback, callback)\n }\n\n /**\n * Replaces the head of a JPEG Blob\n *\n * @param {Blob} blob Blob object\n * @param {ArrayBuffer} oldHead Old JPEG head\n * @param {ArrayBuffer} newHead New JPEG head\n * @returns {Blob} Combined Blob\n */\n function replaceJPEGHead(blob, oldHead, newHead) {\n if (!blob || !oldHead || !newHead) return null\n return new Blob([newHead, blobSlice.call(blob, oldHead.byteLength)], {\n type: 'image/jpeg'\n })\n }\n\n /**\n * Replaces the image head of a JPEG blob with the given one.\n * Returns a Promise or calls the callback with the new Blob.\n *\n * @param {Blob} blob Blob object\n * @param {ArrayBuffer} head New JPEG head\n * @param {Function} [callback] Callback function\n * @returns {Promise|undefined} Combined Blob\n */\n function replaceHead(blob, head, callback) {\n var options = { maxMetaDataSize: 1024, disableMetaDataParsers: true }\n if (!callback && global.Promise) {\n return parseMetaData(blob, options).then(function (data) {\n return replaceJPEGHead(blob, data.imageHead, head)\n })\n }\n parseMetaData(\n blob,\n function (data) {\n callback(replaceJPEGHead(blob, data.imageHead, head))\n },\n options\n )\n }\n\n loadImage.transform = function (img, options, callback, file, data) {\n if (loadImage.requiresMetaData(options)) {\n data = data || {} // eslint-disable-line no-param-reassign\n parseMetaData(\n file,\n function (result) {\n if (result !== data) {\n // eslint-disable-next-line no-console\n if (global.console) console.log(result)\n result = data // eslint-disable-line no-param-reassign\n }\n originalTransform.call(\n loadImage,\n img,\n options,\n callback,\n file,\n result\n )\n },\n options,\n data\n )\n } else {\n originalTransform.apply(loadImage, arguments)\n }\n }\n\n loadImage.blobSlice = blobSlice\n loadImage.bufferSlice = bufferSlice\n loadImage.replaceHead = replaceHead\n loadImage.parseMetaData = parseMetaData\n loadImage.metaDataParsers = metaDataParsers\n})\n","/*\n * JavaScript Load Image Orientation\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/*\nExif orientation values to correctly display the letter F:\n\n 1 2\n ██████ ██████\n ██ ██\n ████ ████\n ██ ██\n ██ ██\n\n 3 4\n ██ ██\n ██ ██\n ████ ████\n ██ ██\n ██████ ██████\n\n 5 6\n██████████ ██\n██ ██ ██ ██\n██ ██████████\n\n 7 8\n ██ ██████████\n ██ ██ ██ ██\n██████████ ██\n\n*/\n\n/* global define, module, require */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['./load-image', './load-image-scale', './load-image-meta'], factory)\n } else if (typeof module === 'object' && module.exports) {\n factory(\n require('./load-image'),\n require('./load-image-scale'),\n require('./load-image-meta')\n )\n } else {\n // Browser globals:\n factory(window.loadImage)\n }\n})(function (loadImage) {\n 'use strict'\n\n var originalTransform = loadImage.transform\n var originalRequiresCanvas = loadImage.requiresCanvas\n var originalRequiresMetaData = loadImage.requiresMetaData\n var originalTransformCoordinates = loadImage.transformCoordinates\n var originalGetTransformedOptions = loadImage.getTransformedOptions\n\n ;(function ($) {\n // Guard for non-browser environments (e.g. server-side rendering):\n if (!$.global.document) return\n // black+white 3x2 JPEG, with the following meta information set:\n // - EXIF Orientation: 6 (Rotated 90° CCW)\n // Image data layout (B=black, F=white):\n // BFF\n // BBB\n var testImageURL =\n 'data:image/jpeg;base64,/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAA' +\n 'AAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA' +\n 'QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE' +\n 'BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAIAAwMBEQACEQEDEQH/x' +\n 'ABRAAEAAAAAAAAAAAAAAAAAAAAKEAEBAQADAQEAAAAAAAAAAAAGBQQDCAkCBwEBAAAAAAA' +\n 'AAAAAAAAAAAAAABEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AG8T9NfSMEVMhQ' +\n 'voP3fFiRZ+MTHDifa/95OFSZU5OzRzxkyejv8ciEfhSceSXGjS8eSdLnZc2HDm4M3BxcXw' +\n 'H/9k='\n var img = document.createElement('img')\n img.onload = function () {\n // Check if the browser supports automatic image orientation:\n $.orientation = img.width === 2 && img.height === 3\n if ($.orientation) {\n var canvas = $.createCanvas(1, 1, true)\n var ctx = canvas.getContext('2d')\n ctx.drawImage(img, 1, 1, 1, 1, 0, 0, 1, 1)\n // Check if the source image coordinates (sX, sY, sWidth, sHeight) are\n // correctly applied to the auto-orientated image, which should result\n // in a white opaque pixel (e.g. in Safari).\n // Browsers that show a transparent pixel (e.g. Chromium) fail to crop\n // auto-oriented images correctly and require a workaround, e.g.\n // drawing the complete source image to an intermediate canvas first.\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=1074354\n $.orientationCropBug =\n ctx.getImageData(0, 0, 1, 1).data.toString() !== '255,255,255,255'\n }\n }\n img.src = testImageURL\n })(loadImage)\n\n /**\n * Determines if the orientation requires a canvas element.\n *\n * @param {object} [options] Options object\n * @param {boolean} [withMetaData] Is metadata required for orientation\n * @returns {boolean} Returns true if orientation requires canvas/meta\n */\n function requiresCanvasOrientation(options, withMetaData) {\n var orientation = options && options.orientation\n return (\n // Exif orientation for browsers without automatic image orientation:\n (orientation === true && !loadImage.orientation) ||\n // Orientation reset for browsers with automatic image orientation:\n (orientation === 1 && loadImage.orientation) ||\n // Orientation to defined value, requires meta for orientation reset only:\n ((!withMetaData || loadImage.orientation) &&\n orientation > 1 &&\n orientation < 9)\n )\n }\n\n /**\n * Determines if the image requires an orientation change.\n *\n * @param {number} [orientation] Defined orientation value\n * @param {number} [autoOrientation] Auto-orientation based on Exif data\n * @returns {boolean} Returns true if an orientation change is required\n */\n function requiresOrientationChange(orientation, autoOrientation) {\n return (\n orientation !== autoOrientation &&\n ((orientation === 1 && autoOrientation > 1 && autoOrientation < 9) ||\n (orientation > 1 && orientation < 9))\n )\n }\n\n /**\n * Determines orientation combinations that require a rotation by 180°.\n *\n * The following is a list of combinations that return true:\n *\n * 2 (flip) => 5 (rot90,flip), 7 (rot90,flip), 6 (rot90), 8 (rot90)\n * 4 (flip) => 5 (rot90,flip), 7 (rot90,flip), 6 (rot90), 8 (rot90)\n *\n * 5 (rot90,flip) => 2 (flip), 4 (flip), 6 (rot90), 8 (rot90)\n * 7 (rot90,flip) => 2 (flip), 4 (flip), 6 (rot90), 8 (rot90)\n *\n * 6 (rot90) => 2 (flip), 4 (flip), 5 (rot90,flip), 7 (rot90,flip)\n * 8 (rot90) => 2 (flip), 4 (flip), 5 (rot90,flip), 7 (rot90,flip)\n *\n * @param {number} [orientation] Defined orientation value\n * @param {number} [autoOrientation] Auto-orientation based on Exif data\n * @returns {boolean} Returns true if rotation by 180° is required\n */\n function requiresRot180(orientation, autoOrientation) {\n if (autoOrientation > 1 && autoOrientation < 9) {\n switch (orientation) {\n case 2:\n case 4:\n return autoOrientation > 4\n case 5:\n case 7:\n return autoOrientation % 2 === 0\n case 6:\n case 8:\n return (\n autoOrientation === 2 ||\n autoOrientation === 4 ||\n autoOrientation === 5 ||\n autoOrientation === 7\n )\n }\n }\n return false\n }\n\n // Determines if the target image should be a canvas element:\n loadImage.requiresCanvas = function (options) {\n return (\n requiresCanvasOrientation(options) ||\n originalRequiresCanvas.call(loadImage, options)\n )\n }\n\n // Determines if metadata should be loaded automatically:\n loadImage.requiresMetaData = function (options) {\n return (\n requiresCanvasOrientation(options, true) ||\n originalRequiresMetaData.call(loadImage, options)\n )\n }\n\n loadImage.transform = function (img, options, callback, file, data) {\n originalTransform.call(\n loadImage,\n img,\n options,\n function (img, data) {\n if (data) {\n var autoOrientation =\n loadImage.orientation && data.exif && data.exif.get('Orientation')\n if (autoOrientation > 4 && autoOrientation < 9) {\n // Automatic image orientation switched image dimensions\n var originalWidth = data.originalWidth\n var originalHeight = data.originalHeight\n data.originalWidth = originalHeight\n data.originalHeight = originalWidth\n }\n }\n callback(img, data)\n },\n file,\n data\n )\n }\n\n // Transforms coordinate and dimension options\n // based on the given orientation option:\n loadImage.getTransformedOptions = function (img, opts, data) {\n var options = originalGetTransformedOptions.call(loadImage, img, opts)\n var exifOrientation = data.exif && data.exif.get('Orientation')\n var orientation = options.orientation\n var autoOrientation = loadImage.orientation && exifOrientation\n if (orientation === true) orientation = exifOrientation\n if (!requiresOrientationChange(orientation, autoOrientation)) {\n return options\n }\n var top = options.top\n var right = options.right\n var bottom = options.bottom\n var left = options.left\n var newOptions = {}\n for (var i in options) {\n if (Object.prototype.hasOwnProperty.call(options, i)) {\n newOptions[i] = options[i]\n }\n }\n newOptions.orientation = orientation\n if (\n (orientation > 4 && !(autoOrientation > 4)) ||\n (orientation < 5 && autoOrientation > 4)\n ) {\n // Image dimensions and target dimensions are switched\n newOptions.maxWidth = options.maxHeight\n newOptions.maxHeight = options.maxWidth\n newOptions.minWidth = options.minHeight\n newOptions.minHeight = options.minWidth\n newOptions.sourceWidth = options.sourceHeight\n newOptions.sourceHeight = options.sourceWidth\n }\n if (autoOrientation > 1) {\n // Browsers which correctly apply source image coordinates to\n // auto-oriented images\n switch (autoOrientation) {\n case 2:\n // Horizontal flip\n right = options.left\n left = options.right\n break\n case 3:\n // 180° Rotate CCW\n top = options.bottom\n right = options.left\n bottom = options.top\n left = options.right\n break\n case 4:\n // Vertical flip\n top = options.bottom\n bottom = options.top\n break\n case 5:\n // Horizontal flip + 90° Rotate CCW\n top = options.left\n right = options.bottom\n bottom = options.right\n left = options.top\n break\n case 6:\n // 90° Rotate CCW\n top = options.left\n right = options.top\n bottom = options.right\n left = options.bottom\n break\n case 7:\n // Vertical flip + 90° Rotate CCW\n top = options.right\n right = options.top\n bottom = options.left\n left = options.bottom\n break\n case 8:\n // 90° Rotate CW\n top = options.right\n right = options.bottom\n bottom = options.left\n left = options.top\n break\n }\n // Some orientation combinations require additional rotation by 180°:\n if (requiresRot180(orientation, autoOrientation)) {\n var tmpTop = top\n var tmpRight = right\n top = bottom\n right = left\n bottom = tmpTop\n left = tmpRight\n }\n }\n newOptions.top = top\n newOptions.right = right\n newOptions.bottom = bottom\n newOptions.left = left\n // Account for defined browser orientation:\n switch (orientation) {\n case 2:\n // Horizontal flip\n newOptions.right = left\n newOptions.left = right\n break\n case 3:\n // 180° Rotate CCW\n newOptions.top = bottom\n newOptions.right = left\n newOptions.bottom = top\n newOptions.left = right\n break\n case 4:\n // Vertical flip\n newOptions.top = bottom\n newOptions.bottom = top\n break\n case 5:\n // Vertical flip + 90° Rotate CW\n newOptions.top = left\n newOptions.right = bottom\n newOptions.bottom = right\n newOptions.left = top\n break\n case 6:\n // 90° Rotate CW\n newOptions.top = right\n newOptions.right = bottom\n newOptions.bottom = left\n newOptions.left = top\n break\n case 7:\n // Horizontal flip + 90° Rotate CW\n newOptions.top = right\n newOptions.right = top\n newOptions.bottom = left\n newOptions.left = bottom\n break\n case 8:\n // 90° Rotate CCW\n newOptions.top = left\n newOptions.right = top\n newOptions.bottom = right\n newOptions.left = bottom\n break\n }\n return newOptions\n }\n\n // Transform image orientation based on the given EXIF orientation option:\n loadImage.transformCoordinates = function (canvas, options, data) {\n originalTransformCoordinates.call(loadImage, canvas, options, data)\n var orientation = options.orientation\n var autoOrientation =\n loadImage.orientation && data.exif && data.exif.get('Orientation')\n if (!requiresOrientationChange(orientation, autoOrientation)) {\n return\n }\n var ctx = canvas.getContext('2d')\n var width = canvas.width\n var height = canvas.height\n var sourceWidth = width\n var sourceHeight = height\n if (\n (orientation > 4 && !(autoOrientation > 4)) ||\n (orientation < 5 && autoOrientation > 4)\n ) {\n // Image dimensions and target dimensions are switched\n canvas.width = height\n canvas.height = width\n }\n if (orientation > 4) {\n // Destination and source dimensions are switched\n sourceWidth = height\n sourceHeight = width\n }\n // Reset automatic browser orientation:\n switch (autoOrientation) {\n case 2:\n // Horizontal flip\n ctx.translate(sourceWidth, 0)\n ctx.scale(-1, 1)\n break\n case 3:\n // 180° Rotate CCW\n ctx.translate(sourceWidth, sourceHeight)\n ctx.rotate(Math.PI)\n break\n case 4:\n // Vertical flip\n ctx.translate(0, sourceHeight)\n ctx.scale(1, -1)\n break\n case 5:\n // Horizontal flip + 90° Rotate CCW\n ctx.rotate(-0.5 * Math.PI)\n ctx.scale(-1, 1)\n break\n case 6:\n // 90° Rotate CCW\n ctx.rotate(-0.5 * Math.PI)\n ctx.translate(-sourceWidth, 0)\n break\n case 7:\n // Vertical flip + 90° Rotate CCW\n ctx.rotate(-0.5 * Math.PI)\n ctx.translate(-sourceWidth, sourceHeight)\n ctx.scale(1, -1)\n break\n case 8:\n // 90° Rotate CW\n ctx.rotate(0.5 * Math.PI)\n ctx.translate(0, -sourceHeight)\n break\n }\n // Some orientation combinations require additional rotation by 180°:\n if (requiresRot180(orientation, autoOrientation)) {\n ctx.translate(sourceWidth, sourceHeight)\n ctx.rotate(Math.PI)\n }\n switch (orientation) {\n case 2:\n // Horizontal flip\n ctx.translate(width, 0)\n ctx.scale(-1, 1)\n break\n case 3:\n // 180° Rotate CCW\n ctx.translate(width, height)\n ctx.rotate(Math.PI)\n break\n case 4:\n // Vertical flip\n ctx.translate(0, height)\n ctx.scale(1, -1)\n break\n case 5:\n // Vertical flip + 90° Rotate CW\n ctx.rotate(0.5 * Math.PI)\n ctx.scale(1, -1)\n break\n case 6:\n // 90° Rotate CW\n ctx.rotate(0.5 * Math.PI)\n ctx.translate(0, -height)\n break\n case 7:\n // Horizontal flip + 90° Rotate CW\n ctx.rotate(0.5 * Math.PI)\n ctx.translate(width, -height)\n ctx.scale(-1, 1)\n break\n case 8:\n // 90° Rotate CCW\n ctx.rotate(-0.5 * Math.PI)\n ctx.translate(-width, 0)\n break\n }\n }\n})\n","/*\n * JavaScript Load Image Scaling\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, module, require */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['./load-image'], factory)\n } else if (typeof module === 'object' && module.exports) {\n factory(require('./load-image'))\n } else {\n // Browser globals:\n factory(window.loadImage)\n }\n})(function (loadImage) {\n 'use strict'\n\n var originalTransform = loadImage.transform\n\n loadImage.createCanvas = function (width, height, offscreen) {\n if (offscreen && loadImage.global.OffscreenCanvas) {\n return new OffscreenCanvas(width, height)\n }\n var canvas = document.createElement('canvas')\n canvas.width = width\n canvas.height = height\n return canvas\n }\n\n loadImage.transform = function (img, options, callback, file, data) {\n originalTransform.call(\n loadImage,\n loadImage.scale(img, options, data),\n options,\n callback,\n file,\n data\n )\n }\n\n // Transform image coordinates, allows to override e.g.\n // the canvas orientation based on the orientation option,\n // gets canvas, options and data passed as arguments:\n loadImage.transformCoordinates = function () {}\n\n // Returns transformed options, allows to override e.g.\n // maxWidth, maxHeight and crop options based on the aspectRatio.\n // gets img, options, data passed as arguments:\n loadImage.getTransformedOptions = function (img, options) {\n var aspectRatio = options.aspectRatio\n var newOptions\n var i\n var width\n var height\n if (!aspectRatio) {\n return options\n }\n newOptions = {}\n for (i in options) {\n if (Object.prototype.hasOwnProperty.call(options, i)) {\n newOptions[i] = options[i]\n }\n }\n newOptions.crop = true\n width = img.naturalWidth || img.width\n height = img.naturalHeight || img.height\n if (width / height > aspectRatio) {\n newOptions.maxWidth = height * aspectRatio\n newOptions.maxHeight = height\n } else {\n newOptions.maxWidth = width\n newOptions.maxHeight = width / aspectRatio\n }\n return newOptions\n }\n\n // Canvas render method, allows to implement a different rendering algorithm:\n loadImage.drawImage = function (\n img,\n canvas,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n destWidth,\n destHeight,\n options\n ) {\n var ctx = canvas.getContext('2d')\n if (options.imageSmoothingEnabled === false) {\n ctx.msImageSmoothingEnabled = false\n ctx.imageSmoothingEnabled = false\n } else if (options.imageSmoothingQuality) {\n ctx.imageSmoothingQuality = options.imageSmoothingQuality\n }\n ctx.drawImage(\n img,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n 0,\n 0,\n destWidth,\n destHeight\n )\n return ctx\n }\n\n // Determines if the target image should be a canvas element:\n loadImage.requiresCanvas = function (options) {\n return options.canvas || options.crop || !!options.aspectRatio\n }\n\n // Scales and/or crops the given image (img or canvas HTML element)\n // using the given options:\n loadImage.scale = function (img, options, data) {\n // eslint-disable-next-line no-param-reassign\n options = options || {}\n // eslint-disable-next-line no-param-reassign\n data = data || {}\n var useCanvas =\n img.getContext ||\n (loadImage.requiresCanvas(options) &&\n !!loadImage.global.HTMLCanvasElement)\n var width = img.naturalWidth || img.width\n var height = img.naturalHeight || img.height\n var destWidth = width\n var destHeight = height\n var maxWidth\n var maxHeight\n var minWidth\n var minHeight\n var sourceWidth\n var sourceHeight\n var sourceX\n var sourceY\n var pixelRatio\n var downsamplingRatio\n var tmp\n var canvas\n /**\n * Scales up image dimensions\n */\n function scaleUp() {\n var scale = Math.max(\n (minWidth || destWidth) / destWidth,\n (minHeight || destHeight) / destHeight\n )\n if (scale > 1) {\n destWidth *= scale\n destHeight *= scale\n }\n }\n /**\n * Scales down image dimensions\n */\n function scaleDown() {\n var scale = Math.min(\n (maxWidth || destWidth) / destWidth,\n (maxHeight || destHeight) / destHeight\n )\n if (scale < 1) {\n destWidth *= scale\n destHeight *= scale\n }\n }\n if (useCanvas) {\n // eslint-disable-next-line no-param-reassign\n options = loadImage.getTransformedOptions(img, options, data)\n sourceX = options.left || 0\n sourceY = options.top || 0\n if (options.sourceWidth) {\n sourceWidth = options.sourceWidth\n if (options.right !== undefined && options.left === undefined) {\n sourceX = width - sourceWidth - options.right\n }\n } else {\n sourceWidth = width - sourceX - (options.right || 0)\n }\n if (options.sourceHeight) {\n sourceHeight = options.sourceHeight\n if (options.bottom !== undefined && options.top === undefined) {\n sourceY = height - sourceHeight - options.bottom\n }\n } else {\n sourceHeight = height - sourceY - (options.bottom || 0)\n }\n destWidth = sourceWidth\n destHeight = sourceHeight\n }\n maxWidth = options.maxWidth\n maxHeight = options.maxHeight\n minWidth = options.minWidth\n minHeight = options.minHeight\n if (useCanvas && maxWidth && maxHeight && options.crop) {\n destWidth = maxWidth\n destHeight = maxHeight\n tmp = sourceWidth / sourceHeight - maxWidth / maxHeight\n if (tmp < 0) {\n sourceHeight = (maxHeight * sourceWidth) / maxWidth\n if (options.top === undefined && options.bottom === undefined) {\n sourceY = (height - sourceHeight) / 2\n }\n } else if (tmp > 0) {\n sourceWidth = (maxWidth * sourceHeight) / maxHeight\n if (options.left === undefined && options.right === undefined) {\n sourceX = (width - sourceWidth) / 2\n }\n }\n } else {\n if (options.contain || options.cover) {\n minWidth = maxWidth = maxWidth || minWidth\n minHeight = maxHeight = maxHeight || minHeight\n }\n if (options.cover) {\n scaleDown()\n scaleUp()\n } else {\n scaleUp()\n scaleDown()\n }\n }\n if (useCanvas) {\n pixelRatio = options.pixelRatio\n if (\n pixelRatio > 1 &&\n // Check if the image has not yet had the device pixel ratio applied:\n !(\n img.style.width &&\n Math.floor(parseFloat(img.style.width, 10)) ===\n Math.floor(width / pixelRatio)\n )\n ) {\n destWidth *= pixelRatio\n destHeight *= pixelRatio\n }\n // Check if workaround for Chromium orientation crop bug is required:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1074354\n if (\n loadImage.orientationCropBug &&\n !img.getContext &&\n (sourceX || sourceY || sourceWidth !== width || sourceHeight !== height)\n ) {\n // Write the complete source image to an intermediate canvas first:\n tmp = img\n // eslint-disable-next-line no-param-reassign\n img = loadImage.createCanvas(width, height, true)\n loadImage.drawImage(\n tmp,\n img,\n 0,\n 0,\n width,\n height,\n width,\n height,\n options\n )\n }\n downsamplingRatio = options.downsamplingRatio\n if (\n downsamplingRatio > 0 &&\n downsamplingRatio < 1 &&\n destWidth < sourceWidth &&\n destHeight < sourceHeight\n ) {\n while (sourceWidth * downsamplingRatio > destWidth) {\n canvas = loadImage.createCanvas(\n sourceWidth * downsamplingRatio,\n sourceHeight * downsamplingRatio,\n true\n )\n loadImage.drawImage(\n img,\n canvas,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n canvas.width,\n canvas.height,\n options\n )\n sourceX = 0\n sourceY = 0\n sourceWidth = canvas.width\n sourceHeight = canvas.height\n // eslint-disable-next-line no-param-reassign\n img = canvas\n }\n }\n canvas = loadImage.createCanvas(destWidth, destHeight)\n loadImage.transformCoordinates(canvas, options, data)\n if (pixelRatio > 1) {\n canvas.style.width = canvas.width / pixelRatio + 'px'\n }\n loadImage\n .drawImage(\n img,\n canvas,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n destWidth,\n destHeight,\n options\n )\n .setTransform(1, 0, 0, 1, 0, 0) // reset to the identity matrix\n return canvas\n }\n img.width = destWidth\n img.height = destHeight\n return img\n }\n})\n","/*\n * JavaScript Load Image\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, module, Promise */\n\n;(function ($) {\n 'use strict'\n\n var urlAPI = $.URL || $.webkitURL\n\n /**\n * Creates an object URL for a given File object.\n *\n * @param {Blob} blob Blob object\n * @returns {string|boolean} Returns object URL if API exists, else false.\n */\n function createObjectURL(blob) {\n return urlAPI ? urlAPI.createObjectURL(blob) : false\n }\n\n /**\n * Revokes a given object URL.\n *\n * @param {string} url Blob object URL\n * @returns {undefined|boolean} Returns undefined if API exists, else false.\n */\n function revokeObjectURL(url) {\n return urlAPI ? urlAPI.revokeObjectURL(url) : false\n }\n\n /**\n * Helper function to revoke an object URL\n *\n * @param {string} url Blob Object URL\n * @param {object} [options] Options object\n */\n function revokeHelper(url, options) {\n if (url && url.slice(0, 5) === 'blob:' && !(options && options.noRevoke)) {\n revokeObjectURL(url)\n }\n }\n\n /**\n * Loads a given File object via FileReader interface.\n *\n * @param {Blob} file Blob object\n * @param {Function} onload Load event callback\n * @param {Function} [onerror] Error/Abort event callback\n * @param {string} [method=readAsDataURL] FileReader method\n * @returns {FileReader|boolean} Returns FileReader if API exists, else false.\n */\n function readFile(file, onload, onerror, method) {\n if (!$.FileReader) return false\n var reader = new FileReader()\n reader.onload = function () {\n onload.call(reader, this.result)\n }\n if (onerror) {\n reader.onabort = reader.onerror = function () {\n onerror.call(reader, this.error)\n }\n }\n var readerMethod = reader[method || 'readAsDataURL']\n if (readerMethod) {\n readerMethod.call(reader, file)\n return reader\n }\n }\n\n /**\n * Cross-frame instanceof check.\n *\n * @param {string} type Instance type\n * @param {object} obj Object instance\n * @returns {boolean} Returns true if the object is of the given instance.\n */\n function isInstanceOf(type, obj) {\n // Cross-frame instanceof check\n return Object.prototype.toString.call(obj) === '[object ' + type + ']'\n }\n\n /**\n * @typedef { HTMLImageElement|HTMLCanvasElement } Result\n */\n\n /**\n * Loads an image for a given File object.\n *\n * @param {Blob|string} file Blob object or image URL\n * @param {Function|object} [callback] Image load event callback or options\n * @param {object} [options] Options object\n * @returns {HTMLImageElement|FileReader|Promise} Object\n */\n function loadImage(file, callback, options) {\n /**\n * Promise executor\n *\n * @param {Function} resolve Resolution function\n * @param {Function} reject Rejection function\n * @returns {HTMLImageElement|FileReader} Object\n */\n function executor(resolve, reject) {\n var img = document.createElement('img')\n var url\n /**\n * Callback for the fetchBlob call.\n *\n * @param {HTMLImageElement|HTMLCanvasElement} img Error object\n * @param {object} data Data object\n * @returns {undefined} Undefined\n */\n function resolveWrapper(img, data) {\n if (resolve === reject) {\n // Not using Promises\n if (resolve) resolve(img, data)\n return\n } else if (img instanceof Error) {\n reject(img)\n return\n }\n data = data || {} // eslint-disable-line no-param-reassign\n data.image = img\n resolve(data)\n }\n /**\n * Callback for the fetchBlob call.\n *\n * @param {Blob} blob Blob object\n * @param {Error} err Error object\n */\n function fetchBlobCallback(blob, err) {\n if (err && $.console) console.log(err) // eslint-disable-line no-console\n if (blob && isInstanceOf('Blob', blob)) {\n file = blob // eslint-disable-line no-param-reassign\n url = createObjectURL(file)\n } else {\n url = file\n if (options && options.crossOrigin) {\n img.crossOrigin = options.crossOrigin\n }\n }\n img.src = url\n }\n img.onerror = function (event) {\n revokeHelper(url, options)\n if (reject) reject.call(img, event)\n }\n img.onload = function () {\n revokeHelper(url, options)\n var data = {\n originalWidth: img.naturalWidth || img.width,\n originalHeight: img.naturalHeight || img.height\n }\n try {\n loadImage.transform(img, options, resolveWrapper, file, data)\n } catch (error) {\n if (reject) reject(error)\n }\n }\n if (typeof file === 'string') {\n if (loadImage.requiresMetaData(options)) {\n loadImage.fetchBlob(file, fetchBlobCallback, options)\n } else {\n fetchBlobCallback()\n }\n return img\n } else if (isInstanceOf('Blob', file) || isInstanceOf('File', file)) {\n url = createObjectURL(file)\n if (url) {\n img.src = url\n return img\n }\n return readFile(\n file,\n function (url) {\n img.src = url\n },\n reject\n )\n }\n }\n if ($.Promise && typeof callback !== 'function') {\n options = callback // eslint-disable-line no-param-reassign\n return new Promise(executor)\n }\n return executor(callback, callback)\n }\n\n // Determines if metadata should be loaded automatically.\n // Requires the load image meta extension to load metadata.\n loadImage.requiresMetaData = function (options) {\n return options && options.meta\n }\n\n // If the callback given to this function returns a blob, it is used as image\n // source instead of the original url and overrides the file argument used in\n // the onload and onerror event callbacks:\n loadImage.fetchBlob = function (url, callback) {\n callback()\n }\n\n loadImage.transform = function (img, options, callback, file, data) {\n callback(img, data)\n }\n\n loadImage.global = $\n loadImage.readFile = readFile\n loadImage.isInstanceOf = isInstanceOf\n loadImage.createObjectURL = createObjectURL\n loadImage.revokeObjectURL = revokeObjectURL\n\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return loadImage\n })\n } else if (typeof module === 'object' && module.exports) {\n module.exports = loadImage\n } else {\n $.loadImage = loadImage\n }\n})((typeof window !== 'undefined' && window) || this)\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].call(module.exports, 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 'blueimp-load-image';\r\nimport './registrationpoint/RegistrationPoint';"],"names":["SwitchToGallery","evt","$","removeClass","addClass","InfoBox","info","menubox","focusableElementsString","init","console","log","length","document","querySelector","menuElements","querySelectorAll","forEach","element","setAttribute","OpenInfoBox","preventDefault","hasClass","CloseInfoBox","attr","focusableElements","SetInfoBoxSubject","ResetInfoBoxMenu","find","currentTarget","data","checkSiblingSubMenu","removeAttr","MoveToNextSubMenu","currentActive","nextElementSibling","MoveToPreviousSubMenu","previousElementSibling","undefined","Maps","map","currentLatLng","currentMarker","initMap","location","protocol","GetCurrentUserLocation","GeoStopped","google","maps","LatLng","val","latlngOut","replace","split","mapOptions","center","zoom","mapTypeId","MapTypeId","ROADMAP","disableDefaultUI","clickableIcons","Map","getElementById","zoomControlDiv","createElement","zoomControl","ZoomControl","index","controls","ControlPosition","RIGHT_BOTTOM","push","event","addDomListener","e","PlaceMarker","latLng","navigator","geolocation","getCurrentPosition","GeoSuccess","position","coords","latitude","longitude","isEmptyObject","Marker","draggable","addListener","ev","UpdateLocationInformation","getPosition","setPosition","panTo","googleGeocode","Geocoder","geocode","results","status","GeocoderStatus","OK","locInfo","formatted_address","locationText","lat","lng","html","controlDiv","controlWrapper","style","cursor","bottom","appendChild","zoomOutButton","width","height","backgroundColor","display","zoomInButton","setZoom","getZoom","validationErrors","forms","validation","listeners","on","setStep","experienceGallery","step","strokeOffset","css","openSubDialog","target","inputRules","checkEmptyField","checkRequired","each","prop","setValid","closest","setInvalid","executeAll","parentForm","checkRequiredCheckboxes","checkValidMail","required","regex","input","test","getvalidationMessages","message","parent","text","maskDates","dateToday","Date","window","windowWidth","datepicker","onSelect","dateText","dateFormat","changeYear","yearRange","minDate","loadAjax","url","get","conditionalDropdown","nextStep","dataObj","targetId","currentId","targetContent","setTimeout","submitAjax","ajax","type","serialize","success","complete","galleryAddButton","onPageLoad","onChange","PreviewHandler","clone","slimmageTools","reload","removals","loadImage","file","callback","reader","FileReader","onload","img","Image","src","result","onerror","error","readAsDataURL","filename","fileArray","files","originalEvent","srcElement","i","name","canvas","maxWidth","maxHeight","ctx","getContext","drawImage","dataUrl","toDataURL","checkImgIndex","placeImg","checkAllowedToPlace","orientation","preview","remove","valueObject","image","JSON","stringify","replaceWith","append"],"sourceRoot":""}